From d2755f00bc2a6507f122f79d54ee009e2cdd26b3 Mon Sep 17 00:00:00 2001 From: ageerle Date: Tue, 8 Apr 2025 16:48:06 +0800 Subject: [PATCH 01/27] =?UTF-8?q?feat:=20=E6=B5=8B=E8=AF=95=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 8 +- ruoyi-admin/Dockerfile | 35 - ruoyi-admin/pom.xml | 129 ---- .../ruoyi/controller/KnowledgeController.java | 184 ----- ruoyi-modules-api/pom.xml | 61 ++ ruoyi-modules-api/ruoyi-chat-api/pom.xml | 22 + .../java/org/ruoyi}/domain/ChatAppStore.java | 4 +- .../java/org/ruoyi}/domain/ChatConfig.java | 6 +- .../main/java/org/ruoyi}/domain/ChatGpts.java | 2 +- .../java/org/ruoyi}/domain/ChatMessage.java | 2 +- .../java/org/ruoyi}/domain/ChatPlugin.java | 5 +- .../java/org/ruoyi}/domain/ChatToken.java | 6 +- .../org/ruoyi}/domain/ChatVisitorUsage.java | 2 +- .../java/org/ruoyi}/domain/ChatVoucher.java | 9 +- .../org/ruoyi}/domain/bo/ChatAppStoreBo.java | 7 +- .../org/ruoyi}/domain/bo/ChatConfigBo.java | 5 +- .../java/org/ruoyi}/domain/bo/ChatGptsBo.java | 4 +- .../org/ruoyi}/domain/bo/ChatMessageBo.java | 5 +- .../org/ruoyi}/domain/bo/ChatPluginBo.java | 14 +- .../ruoyi}/domain/bo/ChatVisitorUsageBo.java | 5 +- .../org/ruoyi}/domain/bo/ChatVoucherBo.java | 5 +- .../org/ruoyi/domain/vo/CacheListInfoVo.java | 23 + .../java/org/ruoyi/domain/vo/CaptchaVo.java | 25 + .../org/ruoyi}/domain/vo/ChatAppStoreVo.java | 6 +- .../org/ruoyi}/domain/vo/ChatConfigVo.java | 5 +- .../java/org/ruoyi}/domain/vo/ChatGptsVo.java | 5 +- .../org/ruoyi}/domain/vo/ChatMessageVo.java | 5 +- .../org/ruoyi}/domain/vo/ChatPluginVo.java | 7 +- .../org/ruoyi}/domain/vo/ChatTokenVo.java | 6 +- .../ruoyi}/domain/vo/ChatVisitorUsageVo.java | 4 +- .../org/ruoyi}/domain/vo/ChatVoucherVo.java | 5 +- .../org/ruoyi/mapper/ChatAppStoreMapper.java | 16 + .../org/ruoyi/mapper/ChatConfigMapper.java | 17 + .../java/org/ruoyi/mapper/ChatGptsMapper.java | 16 + .../org/ruoyi/mapper/ChatMessageMapper.java | 16 + .../org/ruoyi/mapper/ChatPluginMapper.java | 16 + .../org/ruoyi/mapper/ChatTokenMapper.java | 16 + .../ruoyi/mapper/ChatVisitorUsageMapper.java | 16 + .../org/ruoyi/mapper/ChatVoucherMapper.java | 16 + .../ruoyi}/service/IChatAppStoreService.java | 34 +- .../ruoyi}/service/IChatConfigService.java | 6 +- .../org/ruoyi}/service/IChatCostService.java | 4 +- .../org/ruoyi}/service/IChatGptsService.java | 8 +- .../ruoyi}/service/IChatMessageService.java | 6 +- .../ruoyi}/service/IChatPluginService.java | 9 +- .../org/ruoyi}/service/IChatTokenService.java | 6 +- .../service/IChatVisitorUsageService.java | 8 +- .../ruoyi}/service/IChatVoucherService.java | 8 +- .../resources/mapper}/ChatConfigMapper.xml | 2 +- ruoyi-modules-api/ruoyi-device-api/pom.xml | 21 + ruoyi-modules-api/ruoyi-knowledge-api/pom.xml | 20 + ruoyi-modules-api/ruoyi-system-api/pom.xml | 20 + ruoyi-modules-api/ruoyi-weixin-api/pom.xml | 21 + .../ruoyi/chat/controller/ChatController.java | 3 - .../ruoyi/chat/controller/FaceController.java | 1 - .../ruoyi/chat/controller/LumaController.java | 1 - .../chat/controller/SubmitController.java | 1 - .../ruoyi/chat/controller/SunoController.java | 1 - .../chat/controller/VoiceController.java | 1 - ruoyi-modules/ruoyi-device/pom.xml | 21 + ruoyi-modules/ruoyi-system/pom.xml | 4 + .../org/ruoyi/system}/RuoYiAIApplication.java | 2 +- .../system}/RuoYiAIServletInitializer.java | 2 +- .../controller/system}/AuthController.java | 16 +- .../controller/system}/CaptchaController.java | 13 +- .../system/ChatConfigController.java | 3 - .../controller/system/ChatGptsController.java | 3 - .../system/ChatMessageController.java | 3 - .../system/ChatPluginController.java | 3 - .../system/ChatStoreController.java | 4 - .../system/ChatVisitorUsageController.java | 3 - .../system/ChatVoucherController.java | 3 - .../controller/system}/IndexController.java | 2 +- .../system/KnowledgeController.java | 184 +++++ .../controller/system/PayController.java | 664 +++++++++--------- .../controller/system/WeChatController.java | 162 ++--- .../ruoyi/system/handler/wxcp/MsgHandler.java | 6 +- .../listener/SSEEventSourceListener.java | 3 - .../system/mapper/ChatAppStoreMapper.java | 2 - .../ruoyi/system/mapper/ChatConfigMapper.java | 2 - .../ruoyi/system/mapper/ChatGptsMapper.java | 2 - .../system/mapper/ChatMessageMapper.java | 2 - .../ruoyi/system/mapper/ChatPluginMapper.java | 2 - .../ruoyi/system/mapper/ChatTokenMapper.java | 2 - .../system/mapper/ChatVisitorUsageMapper.java | 2 - .../system/mapper/ChatVoucherMapper.java | 2 - .../system/service/impl/ChatAppStoreImpl.java | 259 ------- .../service/impl/ChatConfigServiceImpl.java | 159 ----- .../service/impl/ChatCostServiceImpl.java | 161 ----- .../service/impl/ChatGptsServiceImpl.java | 118 ---- .../service/impl/ChatMessageServiceImpl.java | 144 ---- .../service/impl/ChatPluginServiceImpl.java | 110 --- .../service/impl/ChatTokenServiceImpl.java | 55 -- .../impl/ChatVisitorUsageServiceImpl.java | 112 --- .../service/impl/ChatVoucherServiceImpl.java | 180 ----- .../system/service/impl/CoverServiceImpl.java | 1 - .../system/service/impl/PptServiceImpl.java | 4 - .../system/service/impl/SseServiceImpl.java | 5 +- .../src/main/resources/application-prod.yml | 0 .../src/main/resources/application.yml | 0 .../src/main/resources/banner.txt | 0 .../main/resources/i18n/messages.properties | 0 .../resources/i18n/messages_en_US.properties | 0 .../resources/i18n/messages_zh_CN.properties | 0 .../src/main/resources/ip2region.xdb | Bin .../src/main/resources/logback-plus.xml | 0 .../mapper/system/ChatPluginMapper.xml | 7 - .../mapper/system/ChatVisitorUsageMapper.xml | 7 - .../mapper/system/ChatVoucherMapper.xml | 7 - .../src/main/resources/spy.properties | 0 ruoyi-modules/ruoyi-weixin/pom.xml | 21 + 111 files changed, 1112 insertions(+), 2276 deletions(-) delete mode 100644 ruoyi-admin/Dockerfile delete mode 100644 ruoyi-admin/pom.xml delete mode 100644 ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java create mode 100644 ruoyi-modules-api/pom.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/pom.xml rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatAppStore.java (96%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatConfig.java (90%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatGpts.java (98%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatMessage.java (98%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatPlugin.java (83%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatToken.java (96%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatVisitorUsage.java (97%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/ChatVoucher.java (88%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatAppStoreBo.java (93%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatConfigBo.java (95%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatGptsBo.java (95%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatMessageBo.java (94%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatPluginBo.java (87%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatVisitorUsageBo.java (94%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/bo/ChatVoucherBo.java (94%) create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CacheListInfoVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CaptchaVo.java rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatAppStoreVo.java (93%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatConfigVo.java (94%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatGptsVo.java (96%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatMessageVo.java (95%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatPluginVo.java (89%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatTokenVo.java (96%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatVisitorUsageVo.java (93%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/domain/vo/ChatVoucherVo.java (95%) create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatTokenMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVisitorUsageMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatAppStoreService.java (50%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatConfigService.java (88%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatCostService.java (88%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatGptsService.java (87%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatMessageService.java (87%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatPluginService.java (83%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatTokenService.java (68%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatVisitorUsageService.java (87%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi}/service/IChatVoucherService.java (88%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper}/ChatConfigMapper.xml (71%) create mode 100644 ruoyi-modules-api/ruoyi-device-api/pom.xml create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/pom.xml create mode 100644 ruoyi-modules-api/ruoyi-system-api/pom.xml create mode 100644 ruoyi-modules-api/ruoyi-weixin-api/pom.xml create mode 100644 ruoyi-modules/ruoyi-device/pom.xml rename {ruoyi-admin/src/main/java/org/ruoyi => ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system}/RuoYiAIApplication.java (96%) rename {ruoyi-admin/src/main/java/org/ruoyi => ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system}/RuoYiAIServletInitializer.java (94%) rename {ruoyi-admin/src/main/java/org/ruoyi/controller => ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system}/AuthController.java (94%) rename {ruoyi-admin/src/main/java/org/ruoyi/controller => ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system}/CaptchaController.java (98%) rename {ruoyi-admin/src/main/java/org/ruoyi/controller => ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system}/IndexController.java (91%) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatAppStoreImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatCostServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatGptsServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatMessageServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatPluginServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatTokenServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVisitorUsageServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVoucherServiceImpl.java rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/application-prod.yml (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/application.yml (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/banner.txt (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/i18n/messages.properties (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/i18n/messages_en_US.properties (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/i18n/messages_zh_CN.properties (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/ip2region.xdb (100%) rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/logback-plus.xml (100%) delete mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatPluginMapper.xml delete mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVisitorUsageMapper.xml delete mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVoucherMapper.xml rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/spy.properties (100%) create mode 100644 ruoyi-modules/ruoyi-weixin/pom.xml diff --git a/pom.xml b/pom.xml index d8f67281..d8d596c1 100644 --- a/pom.xml +++ b/pom.xml @@ -344,10 +344,16 @@ - ruoyi-admin ruoyi-common ruoyi-modules + ruoyi-modules-api + ruoyi-modules-api + ruoyi-modules-api/ruoyi-device-api + ruoyi-modules-api/ruoyi-weixin-api + ruoyi-modules/ruoyi-weixin + ruoyi-modules/ruoyi-device + pom diff --git a/ruoyi-admin/Dockerfile b/ruoyi-admin/Dockerfile deleted file mode 100644 index bf14c4ee..00000000 --- a/ruoyi-admin/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -#基础镜像 -FROM findepi/graalvm:java17-native - -# 设置环境变量 -ENV LANG C.UTF-8 -ENV LANGUAGE C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV SERVER_PORT=6039 - -MAINTAINER ageerle - -RUN mkdir -p /ruoyi/server/logs \ - /ruoyi/server/temp \ - /ruoyi/skywalking/agent - - -#工作空间 -WORKDIR /ruoyi/server - - - -EXPOSE ${SERVER_PORT} - -ADD ./target/ruoyi-admin.jar ./app.jar - - -ENTRYPOINT ["java", \ - "-Djava.security.egd=file:/dev/./urandom", \ - "-Dserver.port=${SERVER_PORT}", \ - # 应用名称 如果想区分集群节点监控 改成不同的名称即可 -# "-Dskywalking.agent.service_name=ruoyi-server", \ -# "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \ - "-jar", "app.jar"] - - diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml deleted file mode 100644 index 5ad40cdd..00000000 --- a/ruoyi-admin/pom.xml +++ /dev/null @@ -1,129 +0,0 @@ - - - - ruoyi-ai - org.ruoyi - ${revision} - ../pom.xml - - 4.0.0 - jar - ruoyi-admin - - - web服务入口 - - - - - - - com.mysql - mysql-connector-j - - - - - com.oracle.database.jdbc - ojdbc8 - - - - - org.postgresql - postgresql - - - - - com.microsoft.sqlserver - mssql-jdbc - - - - org.ruoyi - ruoyi-common-doc - - - - org.ruoyi - ruoyi-system - - - - org.ruoyi - ruoyi-chat - - - - org.ruoyi - ruoyi-knowledge - - - - org.ruoyi - ruoyi-generator - - - - - org.ruoyi - ruoyi-demo - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - net.coobird - thumbnailator - 0.4.11 - - - io.github.ollama4j - ollama4j - 1.0.79 - compile - - - - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - ${spring-boot.version} - - - - repackage - - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - org.apache.maven.plugins - maven-war-plugin - ${maven-war-plugin.version} - - false - ${project.artifactId} - - - - - - diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java deleted file mode 100644 index e399e888..00000000 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.ruoyi.controller; - -import cn.dev33.satoken.stp.StpUtil; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.entity.chat.Message; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.knowledge.chain.vectorstore.VectorStore; -import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.EmbeddingService; -import org.ruoyi.knowledge.service.IKnowledgeAttachService; -import org.ruoyi.knowledge.service.IKnowledgeFragmentService; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.ruoyi.system.service.ISseService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import java.util.List; - - -/** - * 知识库 - * - * @author Lion Li - * @date 2024-10-21 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/knowledge") -public class KnowledgeController extends BaseController { - - private final IKnowledgeInfoService knowledgeInfoService; - - private final VectorStore vectorStore; - - private final IKnowledgeAttachService attachService; - - private final IKnowledgeFragmentService fragmentService; - - private final EmbeddingService embeddingService; - - private final ISseService sseService; - - /** - * 知识库对话 - */ - @PostMapping("/send") - public SseEmitter send(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) { - List messages = chatRequest.getMessages(); - // 获取知识库信息 - Message message = messages.get(messages.size() - 1); - StringBuilder sb = new StringBuilder(message.getContent().toString()); - List nearestList; - List queryVector = embeddingService.getQueryVector(message.getContent().toString(), chatRequest.getKid()); - nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); - for (String prompt : nearestList) { - sb.append("\n####").append(prompt); - } - sb.append( (nearestList.size() > 0 ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")); - message.setContent(sb.toString()); - return sseService.sseChat(chatRequest, request); - } - - /** - * 根据用户信息查询本地知识库 - */ - @GetMapping("/list") - public TableDataInfo list(KnowledgeInfoBo bo, PageQuery pageQuery) { - if(!StpUtil.isLogin()){ - return null; - } - bo.setUid(LoginHelper.getUserId()); - return knowledgeInfoService.queryPageList(bo, pageQuery); - } - - /** - * 新增知识库 - */ - @Log(title = "知识库", businessType = BusinessType.INSERT) - @PostMapping("/save") - public R save(@Validated(AddGroup.class) @RequestBody KnowledgeInfoBo bo) { - knowledgeInfoService.saveOne(bo); - return R.ok(); - } - - /** - * 删除知识库 - */ - @PostMapping("/remove/{id}") - public R remove(@PathVariable String id){ - knowledgeInfoService.removeKnowledge(id); - return R.ok("删除知识库成功!"); - } - - /** - * 修改知识库 - */ - @Log(title = "知识库", businessType = BusinessType.UPDATE) - @PostMapping("/edit") - public R edit( @RequestBody KnowledgeInfoBo bo) { - return toAjax(knowledgeInfoService.updateByBo(bo)); - } - - /** - * 导出知识库列表 - */ - @Log(title = "知识库", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(KnowledgeInfoBo bo, HttpServletResponse response) { - List list = knowledgeInfoService.queryList(bo); - ExcelUtil.exportExcel(list, "知识库", KnowledgeInfoVo.class, response); - } - - /** - * 查询知识附件信息 - */ - @GetMapping("/detail/{kid}") - public TableDataInfo attach(KnowledgeAttachBo bo, PageQuery pageQuery,@PathVariable String kid){ - bo.setKid(kid); - return attachService.queryPageList(bo, pageQuery); - } - - /** - * 上传知识库附件 - */ - @PostMapping(value = "/attach/upload") - public R upload(KnowledgeInfoUploadRequest request){ - knowledgeInfoService.upload(request); - return R.ok("上传知识库附件成功!"); - } - - /** - * 获取知识库附件详细信息 - * - * @param id 主键 - */ - @GetMapping("attach/info/{id}") - public R getAttachInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(attachService.queryById(id)); - } - - /** - * 删除知识库附件 - * - */ - @PostMapping("attach/remove/{docId}") - public R removeAttach(@NotEmpty(message = "主键不能为空") @PathVariable String docId) { - attachService.removeKnowledgeAttach(docId); - return R.ok(); - } - - - /** - * 查询知识片段 - */ - @GetMapping("/fragment/list/{docId}") - public TableDataInfo fragmentList(KnowledgeFragmentBo bo, PageQuery pageQuery, @PathVariable String docId) { - bo.setDocId(docId); - return fragmentService.queryPageList(bo, pageQuery); - } - -} diff --git a/ruoyi-modules-api/pom.xml b/ruoyi-modules-api/pom.xml new file mode 100644 index 00000000..5acc7101 --- /dev/null +++ b/ruoyi-modules-api/pom.xml @@ -0,0 +1,61 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + + + ruoyi-modules-api + pom + + ruoyi-system-api + ruoyi-chat-api + ruoyi-knowledge-api + + + + 17 + 17 + UTF-8 + + + + + + + org.ruoyi + ruoyi-common-core + + + + + + org.ruoyi + ruoyi-common-mybatis + + + + + + org.ruoyi + ruoyi-common-sensitive + + + + + + org.ruoyi + ruoyi-common-excel + + + + + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml new file mode 100644 index 00000000..fde7a466 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-modules-api + 1.0.0 + + + ruoyi-chat-api + + + 17 + 17 + UTF-8 + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatAppStore.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatAppStore.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java index b98cbeae..298984ce 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatAppStore.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java @@ -1,10 +1,10 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatConfig.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java similarity index 90% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatConfig.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java index a38b2f0a..385bd2d9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatConfig.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java @@ -1,13 +1,13 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import org.ruoyi.common.sensitive.annotation.Sensitive; import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.common.tenant.core.TenantEntity; import java.io.Serial; @@ -20,7 +20,7 @@ import java.io.Serial; @Data @EqualsAndHashCode(callSuper = true) @TableName("chat_config") -public class ChatConfig extends TenantEntity { +public class ChatConfig extends BaseEntity { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatGpts.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java similarity index 98% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatGpts.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java index 8734eaa0..675d7698 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatGpts.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java similarity index 98% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java index b60a0870..7ef7886d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableName; import jakarta.validation.constraints.NotBlank; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatPlugin.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java similarity index 83% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatPlugin.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java index 768c6678..d2c88432 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatPlugin.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java @@ -1,6 +1,7 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatToken.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatToken.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatToken.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatToken.java index 865762f7..e1d04ead 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatToken.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatToken.java @@ -1,11 +1,11 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableName; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVisitorUsage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVisitorUsage.java similarity index 97% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVisitorUsage.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVisitorUsage.java index 3b203811..3883ca92 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVisitorUsage.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVisitorUsage.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVoucher.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVoucher.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java index ec4b6313..047a1087 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatVoucher.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java @@ -1,12 +1,13 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; +import java.math.BigDecimal; /** * 用户兑换记录对象 chat_voucher diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatAppStoreBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java similarity index 93% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatAppStoreBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java index 5af1096a..b4c04908 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatAppStoreBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java @@ -1,12 +1,13 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.ChatAppStore; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import org.ruoyi.domain.ChatAppStore; + /** * 应用市场业务对象 voice_role diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java index fbada8b9..bf2d7bb7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; @@ -10,7 +10,8 @@ import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import org.ruoyi.common.sensitive.annotation.Sensitive; import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.system.domain.ChatConfig; +import org.ruoyi.domain.ChatConfig; + /** * 对话配置信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatGptsBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatGptsBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java index dd08528f..27614672 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatGptsBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; @@ -8,7 +8,7 @@ import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.ChatGpts; +import org.ruoyi.domain.ChatGpts; /** * gpts管理业务对象 chat_gpts diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java index 4610ab81..e66dc71e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; @@ -8,7 +8,8 @@ import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.ChatMessage; +import org.ruoyi.domain.ChatMessage; + /** * 聊天消息业务对象 chat_message diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatPluginBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java similarity index 87% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatPluginBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java index 141215e6..1e20837a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatPluginBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java @@ -1,13 +1,15 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatPlugin; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import org.ruoyi.domain.ChatPlugin; + /** * 插件管理业务对象 chat_plugin diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVisitorUsageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVisitorUsageBo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVisitorUsageBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVisitorUsageBo.java index 6518350d..1755d2f3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVisitorUsageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVisitorUsageBo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotBlank; @@ -8,7 +8,8 @@ import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.ChatVisitorUsage; +import org.ruoyi.domain.ChatVisitorUsage; + /** * 访客管理业务对象 chat_visitor_usage diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVoucherBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVoucherBo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java index 98ff3c72..60983b7e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatVoucherBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.bo; +package org.ruoyi.domain.bo; import io.github.linpeilie.annotations.AutoMapper; import jakarta.validation.constraints.NotNull; @@ -7,7 +7,8 @@ import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.ChatVoucher; +import org.ruoyi.domain.ChatVoucher; + import java.math.BigDecimal; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CacheListInfoVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CacheListInfoVo.java new file mode 100644 index 00000000..b865940e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CacheListInfoVo.java @@ -0,0 +1,23 @@ +package org.ruoyi.domain.vo; + +import lombok.Data; + +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + * 缓存监控列表信息 + * + * @author Michelle.Chung + */ +@Data +public class CacheListInfoVo { + + private Properties info; + + private Long dbSize; + + private List> commandStats; + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CaptchaVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CaptchaVo.java new file mode 100644 index 00000000..492d2425 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CaptchaVo.java @@ -0,0 +1,25 @@ +package org.ruoyi.domain.vo; + +import lombok.Data; + +/** + * 验证码信息 + * + * @author Michelle.Chung + */ +@Data +public class CaptchaVo { + + /** + * 是否开启验证码 + */ + private Boolean captchaEnabled = true; + + private String uuid; + + /** + * 验证码图片 + */ + private String img; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatAppStoreVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java similarity index 93% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatAppStoreVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java index ff46912a..4ae8a95d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatAppStoreVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java @@ -1,10 +1,12 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.system.domain.ChatAppStore; +import org.ruoyi.domain.ChatAppStore; + import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java index 3444ed35..ba028868 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -6,7 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.ruoyi.common.sensitive.annotation.Sensitive; import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.system.domain.ChatConfig; +import org.ruoyi.domain.ChatConfig; + import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatGptsVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatGptsVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java index b6331798..ead5f6c8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatGptsVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java @@ -1,10 +1,11 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.system.domain.ChatGpts; +import org.ruoyi.domain.ChatGpts; + import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java index 641e0f7f..f21e41de 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import io.github.linpeilie.annotations.AutoMapper; @@ -7,7 +7,8 @@ import jakarta.validation.constraints.NotNull; import lombok.Data; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatMessage; +import org.ruoyi.domain.ChatMessage; + import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatPluginVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java similarity index 89% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatPluginVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java index 4e4b0968..c4d41fec 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatPluginVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java @@ -1,16 +1,13 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatPlugin; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; - import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatPlugin; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatTokenVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatTokenVo.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatTokenVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatTokenVo.java index ce7eff4a..60a3c20d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatTokenVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatTokenVo.java @@ -1,10 +1,10 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVisitorUsageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVisitorUsageVo.java similarity index 93% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVisitorUsageVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVisitorUsageVo.java index 217ae449..d85963de 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVisitorUsageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVisitorUsageVo.java @@ -1,10 +1,10 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatVisitorUsage; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatVisitorUsage; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVoucherVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVoucherVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java index 0b13b59c..b1462c56 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatVoucherVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java @@ -1,11 +1,10 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatVoucher; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; - import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatVoucher; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java new file mode 100644 index 00000000..9f142440 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatAppStore; +import org.ruoyi.domain.vo.ChatAppStoreVo; + + +/** + * 应用市场Mapper接口 + * + * @author Lion Li + * @date 2024-03-19 + */ +public interface ChatAppStoreMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java new file mode 100644 index 00000000..8b8069ae --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java @@ -0,0 +1,17 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatConfig; +import org.ruoyi.domain.vo.ChatConfigVo; + + +/** + * 对话配置信息Mapper接口 + * + * @author Lion Li + * @date 2024-04-13 + */ +public interface ChatConfigMapper extends BaseMapperPlus { + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java new file mode 100644 index 00000000..1d9b0a5d --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatGpts; +import org.ruoyi.domain.vo.ChatGptsVo; + + +/** + * gpts管理Mapper接口 + * + * @author Lion Li + * @date 2024-07-09 + */ +public interface ChatGptsMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java new file mode 100644 index 00000000..239a5a4d --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatMessage; +import org.ruoyi.domain.vo.ChatMessageVo; + + +/** + * 聊天消息Mapper接口 + * + * @author Lion Li + * @date 2023-11-26 + */ +public interface ChatMessageMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java new file mode 100644 index 00000000..e0c64565 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatPlugin; +import org.ruoyi.domain.vo.ChatPluginVo; + + +/** + * 插件管理Mapper接口 + * + * @author ageerle + * @date 2025-03-30 + */ +public interface ChatPluginMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatTokenMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatTokenMapper.java new file mode 100644 index 00000000..894b2408 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatTokenMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatToken; +import org.ruoyi.domain.vo.ChatTokenVo; + + +/** + * 聊天消息Mapper接口 + * + * @author Lion Li + * @date 2023-11-26 + */ +public interface ChatTokenMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVisitorUsageMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVisitorUsageMapper.java new file mode 100644 index 00000000..95cac453 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVisitorUsageMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatVisitorUsage; +import org.ruoyi.domain.vo.ChatVisitorUsageVo; + + +/** + * 访客管理Mapper接口 + * + * @author Lion Li + * @date 2024-07-14 + */ +public interface ChatVisitorUsageMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java new file mode 100644 index 00000000..7c859302 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatVoucher; +import org.ruoyi.domain.vo.ChatVoucherVo; + + +/** + * 用户兑换记录Mapper接口 + * + * @author Lion Li + * @date 2024-05-03 + */ +public interface ChatVoucherMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatAppStoreService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java similarity index 50% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatAppStoreService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java index 44b49675..3c5f4efd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatAppStoreService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java @@ -1,14 +1,10 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; -import org.ruoyi.system.domain.bo.ChatAppStoreBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.system.request.RoleListDto; -import org.ruoyi.system.request.RoleRequest; -import org.ruoyi.system.request.SimpleGenerateRequest; -import org.ruoyi.system.response.SimpleGenerateDataResponse; -import org.ruoyi.system.response.rolelist.ChatAppStoreVO; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatAppStoreBo; +import org.ruoyi.domain.vo.ChatAppStoreVo; + import java.util.Collection; import java.util.List; @@ -36,15 +32,6 @@ public interface IChatAppStoreService { */ List queryList(ChatAppStoreBo bo); - /** - * 新增应用市场 - */ - Boolean insertByBo(RoleRequest roleRequest); - - /** - * 生成音频 - */ - SimpleGenerateDataResponse simpleGenerate(SimpleGenerateRequest simpleGenerateRequest); /** * 修改应用市场 @@ -56,16 +43,5 @@ public interface IChatAppStoreService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - /** - * 查询市场角色 - * - * @return 角色列表 - */ - List roleList(); - /** - * 收藏市场角色 - * - */ - void copyRole(RoleListDto roleListDto); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatConfigService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatConfigService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java index 45e0067a..6c77647f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatConfigService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.ChatConfigBo; -import org.ruoyi.system.domain.vo.ChatConfigVo; +import org.ruoyi.domain.bo.ChatConfigBo; +import org.ruoyi.domain.vo.ChatConfigVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatCostService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatCostService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java index c1174656..e5825b0f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatCostService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java @@ -1,6 +1,6 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.bo.ChatMessageBo; +import org.ruoyi.domain.bo.ChatMessageBo; public interface IChatCostService { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatGptsService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java similarity index 87% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatGptsService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java index 7f4bb365..808225d9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatGptsService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.vo.ChatGptsVo; -import org.ruoyi.system.domain.bo.ChatGptsBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatGptsBo; +import org.ruoyi.domain.vo.ChatGptsVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatMessageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java similarity index 87% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatMessageService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java index 671cdc04..f8bef4e0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatMessageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.ChatMessageBo; -import org.ruoyi.system.domain.vo.ChatMessageVo; +import org.ruoyi.domain.bo.ChatMessageBo; +import org.ruoyi.domain.vo.ChatMessageVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatPluginService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java similarity index 83% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatPluginService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java index d1981444..08ed858a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatPluginService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java @@ -1,10 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.ChatPlugin; -import org.ruoyi.system.domain.vo.ChatPluginVo; -import org.ruoyi.system.domain.bo.ChatPluginBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatPluginBo; +import org.ruoyi.domain.vo.ChatPluginVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatTokenService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java similarity index 68% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatTokenService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java index c758a0d8..7eb1b1f2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatTokenService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java @@ -1,6 +1,6 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.ChatToken; +import org.ruoyi.domain.ChatToken; /** * 聊天消息Service接口 @@ -13,7 +13,7 @@ public interface IChatTokenService { /** * 查询用户token */ - ChatToken queryByUserId(Long userId,String modelName); + ChatToken queryByUserId(Long userId, String modelName); /** * 清空用户token diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVisitorUsageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java similarity index 87% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVisitorUsageService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java index 87ab91ce..20c39263 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVisitorUsageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.vo.ChatVisitorUsageVo; -import org.ruoyi.system.domain.bo.ChatVisitorUsageBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatVisitorUsageBo; +import org.ruoyi.domain.vo.ChatVisitorUsageVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVoucherService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVoucherService.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java index 4dfb6843..2f81822b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IChatVoucherService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.service; +package org.ruoyi.service; -import org.ruoyi.system.domain.vo.ChatVoucherVo; -import org.ruoyi.system.domain.bo.ChatVoucherBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatVoucherBo; +import org.ruoyi.domain.vo.ChatVoucherVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatConfigMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml similarity index 71% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatConfigMapper.xml rename to ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml index b620c1e1..509a739a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatConfigMapper.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml @@ -2,6 +2,6 @@ - + diff --git a/ruoyi-modules-api/ruoyi-device-api/pom.xml b/ruoyi-modules-api/ruoyi-device-api/pom.xml new file mode 100644 index 00000000..7a9cb1a6 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-device-api/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + ../../pom.xml + + + ruoyi-device-api + + + 17 + 17 + UTF-8 + + + diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml new file mode 100644 index 00000000..1ba1e998 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-modules-api + 1.0.0 + + + ruoyi-knowledge-api + + + 17 + 17 + UTF-8 + + + diff --git a/ruoyi-modules-api/ruoyi-system-api/pom.xml b/ruoyi-modules-api/ruoyi-system-api/pom.xml new file mode 100644 index 00000000..1b458738 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-system-api/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-modules-api + 1.0.0 + + + ruoyi-system-api + + + 17 + 17 + UTF-8 + + + diff --git a/ruoyi-modules-api/ruoyi-weixin-api/pom.xml b/ruoyi-modules-api/ruoyi-weixin-api/pom.xml new file mode 100644 index 00000000..1d16920e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-weixin-api/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + ../../pom.xml + + + ruoyi-weixin-api + + + 17 + 17 + UTF-8 + + + diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java index a2d1614e..e6a44464 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java @@ -17,10 +17,7 @@ import org.ruoyi.common.core.exception.base.BaseException; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.bo.ChatMessageBo; import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.domain.vo.ChatMessageVo; -import org.ruoyi.system.service.IChatMessageService; import org.ruoyi.system.service.ISseService; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java index d84a3ade..cb2f2591 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java @@ -9,7 +9,6 @@ import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.chat.domain.InsightFace; import org.ruoyi.chat.util.MjOkHttpUtil; -import org.ruoyi.system.service.IChatCostService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java index 4d60cb6d..f3628f42 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java @@ -9,7 +9,6 @@ import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.common.core.utils.OkHttpUtil; import org.ruoyi.system.cofing.OkHttpConfig; import org.ruoyi.system.domain.GenerateLuma; -import org.ruoyi.system.service.IChatCostService; import org.springframework.web.bind.annotation.*; /** diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java index 3723fc18..a5e9208b 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java @@ -10,7 +10,6 @@ import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.chat.dto.*; import org.ruoyi.chat.enums.ActionType; import org.ruoyi.chat.util.MjOkHttpUtil; -import org.ruoyi.system.service.IChatCostService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java index 0c51f302..07754fe5 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java @@ -10,7 +10,6 @@ import org.ruoyi.common.core.utils.OkHttpUtil; import org.ruoyi.system.cofing.OkHttpConfig; import org.ruoyi.system.domain.GenerateLyric; import org.ruoyi.system.domain.GenerateSuno; -import org.ruoyi.system.service.IChatCostService; import org.springframework.web.bind.annotation.*; @RestController diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java index 6ea57d65..a551cbff 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java @@ -7,7 +7,6 @@ import org.ruoyi.system.request.RoleListDto; import org.ruoyi.system.request.SimpleGenerateRequest; import org.ruoyi.system.response.SimpleGenerateDataResponse; import org.ruoyi.system.response.rolelist.ChatAppStoreVO; -import org.ruoyi.system.service.IChatAppStoreService; import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/ruoyi-modules/ruoyi-device/pom.xml b/ruoyi-modules/ruoyi-device/pom.xml new file mode 100644 index 00000000..ec4cbc40 --- /dev/null +++ b/ruoyi-modules/ruoyi-device/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + ../../pom.xml + + + ruoyi-device + + + 17 + 17 + UTF-8 + + + diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index cdce8241..17d37c57 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -124,6 +124,10 @@ 1.0.79 compile + + org.ruoyi + ruoyi-common-mail + diff --git a/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java similarity index 96% rename from ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java index 2d0693c3..68748bc1 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java @@ -1,4 +1,4 @@ -package org.ruoyi; +package org.ruoyi.system; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java similarity index 94% rename from ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java index 626d7a31..16d037c5 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java @@ -1,4 +1,4 @@ -package org.ruoyi; +package org.ruoyi.system; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java similarity index 94% rename from ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java index 10931863..9be06e69 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java @@ -1,16 +1,14 @@ -package org.ruoyi.controller; +package org.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.error.WxErrorException; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.domain.model.EmailLoginBody; -import org.ruoyi.common.core.domain.model.LoginBody; -import org.ruoyi.common.core.domain.model.RegisterBody; -import org.ruoyi.common.core.domain.model.SmsLoginBody; -import org.ruoyi.common.core.domain.model.VisitorLoginBody; +import org.ruoyi.common.core.domain.model.*; import org.ruoyi.common.core.utils.MapstructUtils; import org.ruoyi.common.core.utils.StreamUtils; import org.ruoyi.common.core.utils.StringUtils; @@ -18,16 +16,12 @@ import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.tenant.helper.TenantHelper; import org.ruoyi.system.domain.bo.SysTenantBo; import org.ruoyi.system.domain.vo.LoginTenantVo; +import org.ruoyi.system.domain.vo.LoginVo; import org.ruoyi.system.domain.vo.SysTenantVo; import org.ruoyi.system.domain.vo.TenantListVo; import org.ruoyi.system.service.ISysTenantService; - import org.ruoyi.system.service.SysLoginService; import org.ruoyi.system.service.SysRegisterService; -import org.ruoyi.system.domain.vo.LoginVo; - -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java similarity index 98% rename from ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java index 89cf2437..dda65dcc 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java @@ -1,10 +1,14 @@ -package org.ruoyi.controller; +package org.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.captcha.AbstractCaptcha; import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.constant.GlobalConstants; import org.ruoyi.common.core.domain.R; @@ -22,10 +26,6 @@ import org.ruoyi.common.web.config.properties.CaptchaProperties; import org.ruoyi.common.web.enums.CaptchaType; import org.ruoyi.system.domain.request.EmailRequest; import org.ruoyi.system.domain.vo.CaptchaVo; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotBlank; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -36,7 +36,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.time.Duration; -import java.util.*; +import java.util.HashMap; +import java.util.Map; /** * 验证码操作处理 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java index 045f3838..a3db5ad8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java @@ -8,9 +8,6 @@ import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.service.ConfigService; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.ChatConfigBo; -import org.ruoyi.system.domain.vo.ChatConfigVo; -import org.ruoyi.system.service.IChatConfigService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java index 5610e868..96e5b19a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java @@ -15,9 +15,6 @@ import org.ruoyi.common.log.enums.BusinessType; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.ChatGptsBo; -import org.ruoyi.system.domain.vo.ChatGptsVo; -import org.ruoyi.system.service.IChatGptsService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java index 8487e932..5d0486df 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java @@ -16,9 +16,6 @@ import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.ChatMessageBo; -import org.ruoyi.system.domain.vo.ChatMessageVo; -import org.ruoyi.system.service.IChatMessageService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java index 01f65a49..a0d9a1b4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java @@ -17,9 +17,6 @@ import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.system.domain.vo.ChatPluginVo; -import org.ruoyi.system.domain.bo.ChatPluginBo; -import org.ruoyi.system.service.IChatPluginService; import org.ruoyi.common.mybatis.core.page.TableDataInfo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java index a5a6bb07..532fb330 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java @@ -3,10 +3,6 @@ package org.ruoyi.system.controller.system; import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.ChatAppStoreBo; -import org.ruoyi.system.domain.bo.ChatMessageBo; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; -import org.ruoyi.system.service.IChatAppStoreService; import org.springframework.web.bind.annotation.*; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java index 5871128e..f4022782 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java @@ -15,9 +15,6 @@ import org.ruoyi.common.log.enums.BusinessType; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.ChatVisitorUsageBo; -import org.ruoyi.system.domain.vo.ChatVisitorUsageVo; -import org.ruoyi.system.service.IChatVisitorUsageService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java index cd9fae7d..88cc4f40 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java @@ -16,9 +16,6 @@ import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.web.core.BaseController; import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; -import org.ruoyi.system.domain.bo.ChatVoucherBo; -import org.ruoyi.system.domain.vo.ChatVoucherVo; -import org.ruoyi.system.service.IChatVoucherService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java similarity index 91% rename from ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java index ecbfe71e..72b6828d 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java @@ -1,4 +1,4 @@ -package org.ruoyi.controller; +package org.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaIgnore; import lombok.RequiredArgsConstructor; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java new file mode 100644 index 00000000..3ea10afe --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java @@ -0,0 +1,184 @@ +//package org.ruoyi.system.controller.system; +// +//import cn.dev33.satoken.stp.StpUtil; +//import jakarta.servlet.http.HttpServletRequest; +//import jakarta.servlet.http.HttpServletResponse; +//import jakarta.validation.Valid; +//import jakarta.validation.constraints.NotEmpty; +//import jakarta.validation.constraints.NotNull; +//import lombok.RequiredArgsConstructor; +//import org.ruoyi.common.chat.domain.request.ChatRequest; +//import org.ruoyi.common.chat.entity.chat.Message; +//import org.ruoyi.common.core.domain.R; +//import org.ruoyi.common.core.validate.AddGroup; +//import org.ruoyi.common.excel.utils.ExcelUtil; +//import org.ruoyi.common.log.annotation.Log; +//import org.ruoyi.common.log.enums.BusinessType; +//import org.ruoyi.common.mybatis.core.page.PageQuery; +//import org.ruoyi.common.mybatis.core.page.TableDataInfo; +//import org.ruoyi.common.satoken.utils.LoginHelper; +//import org.ruoyi.common.web.core.BaseController; +//import org.ruoyi.knowledge.chain.vectorstore.VectorStore; +//import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; +//import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; +//import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; +//import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; +//import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; +//import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; +//import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; +//import org.ruoyi.knowledge.service.EmbeddingService; +//import org.ruoyi.knowledge.service.IKnowledgeAttachService; +//import org.ruoyi.knowledge.service.IKnowledgeFragmentService; +//import org.ruoyi.knowledge.service.IKnowledgeInfoService; +//import org.ruoyi.system.service.ISseService; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.*; +//import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +// +//import java.util.List; +// +// +///** +// * 知识库 +// * +// * @author Lion Li +// * @date 2024-10-21 +// */ +//@Validated +//@RequiredArgsConstructor +//@RestController +//@RequestMapping("/knowledge") +//public class KnowledgeController extends BaseController { +// +// private final IKnowledgeInfoService knowledgeInfoService; +// +// private final VectorStore vectorStore; +// +// private final IKnowledgeAttachService attachService; +// +// private final IKnowledgeFragmentService fragmentService; +// +// private final EmbeddingService embeddingService; +// +// private final ISseService sseService; +// +// /** +// * 知识库对话 +// */ +// @PostMapping("/send") +// public SseEmitter send(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) { +// List messages = chatRequest.getMessages(); +// // 获取知识库信息 +// Message message = messages.get(messages.size() - 1); +// StringBuilder sb = new StringBuilder(message.getContent().toString()); +// List nearestList; +// List queryVector = embeddingService.getQueryVector(message.getContent().toString(), chatRequest.getKid()); +// nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); +// for (String prompt : nearestList) { +// sb.append("\n####").append(prompt); +// } +// sb.append( (nearestList.size() > 0 ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")); +// message.setContent(sb.toString()); +// return sseService.sseChat(chatRequest, request); +// } +// +// /** +// * 根据用户信息查询本地知识库 +// */ +// @GetMapping("/list") +// public TableDataInfo list(KnowledgeInfoBo bo, PageQuery pageQuery) { +// if(!StpUtil.isLogin()){ +// return null; +// } +// bo.setUid(LoginHelper.getUserId()); +// return knowledgeInfoService.queryPageList(bo, pageQuery); +// } +// +// /** +// * 新增知识库 +// */ +// @Log(title = "知识库", businessType = BusinessType.INSERT) +// @PostMapping("/save") +// public R save(@Validated(AddGroup.class) @RequestBody KnowledgeInfoBo bo) { +// knowledgeInfoService.saveOne(bo); +// return R.ok(); +// } +// +// /** +// * 删除知识库 +// */ +// @PostMapping("/remove/{id}") +// public R remove(@PathVariable String id){ +// knowledgeInfoService.removeKnowledge(id); +// return R.ok("删除知识库成功!"); +// } +// +// /** +// * 修改知识库 +// */ +// @Log(title = "知识库", businessType = BusinessType.UPDATE) +// @PostMapping("/edit") +// public R edit( @RequestBody KnowledgeInfoBo bo) { +// return toAjax(knowledgeInfoService.updateByBo(bo)); +// } +// +// /** +// * 导出知识库列表 +// */ +// @Log(title = "知识库", businessType = BusinessType.EXPORT) +// @PostMapping("/export") +// public void export(KnowledgeInfoBo bo, HttpServletResponse response) { +// List list = knowledgeInfoService.queryList(bo); +// ExcelUtil.exportExcel(list, "知识库", KnowledgeInfoVo.class, response); +// } +// +// /** +// * 查询知识附件信息 +// */ +// @GetMapping("/detail/{kid}") +// public TableDataInfo attach(KnowledgeAttachBo bo, PageQuery pageQuery,@PathVariable String kid){ +// bo.setKid(kid); +// return attachService.queryPageList(bo, pageQuery); +// } +// +// /** +// * 上传知识库附件 +// */ +// @PostMapping(value = "/attach/upload") +// public R upload(KnowledgeInfoUploadRequest request){ +// knowledgeInfoService.upload(request); +// return R.ok("上传知识库附件成功!"); +// } +// +// /** +// * 获取知识库附件详细信息 +// * +// * @param id 主键 +// */ +// @GetMapping("attach/info/{id}") +// public R getAttachInfo(@NotNull(message = "主键不能为空") +// @PathVariable Long id) { +// return R.ok(attachService.queryById(id)); +// } +// +// /** +// * 删除知识库附件 +// * +// */ +// @PostMapping("attach/remove/{docId}") +// public R removeAttach(@NotEmpty(message = "主键不能为空") @PathVariable String docId) { +// attachService.removeKnowledgeAttach(docId); +// return R.ok(); +// } +// +// +// /** +// * 查询知识片段 +// */ +// @GetMapping("/fragment/list/{docId}") +// public TableDataInfo fragmentList(KnowledgeFragmentBo bo, PageQuery pageQuery, @PathVariable String docId) { +// bo.setDocId(docId); +// return fragmentService.queryPageList(bo, pageQuery); +// } +// +//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java index 5e9d1930..eef83314 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java @@ -1,333 +1,333 @@ -package org.ruoyi.system.controller.system; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.extra.qrcode.QrCodeUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; -import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; -import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult; -import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; -import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; -import com.github.binarywang.wxpay.exception.WxPayException; -import com.github.binarywang.wxpay.service.WxPayService; -import com.stripe.Stripe; -import com.stripe.exception.StripeException; -import com.stripe.model.Event; -import com.stripe.model.Price; -import com.stripe.model.Product; -import com.stripe.model.checkout.Session; -import com.stripe.net.Webhook; -import com.stripe.param.checkout.SessionCreateParams; -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.config.PayConfig; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.oss.core.OssClient; -import org.ruoyi.common.oss.entity.UploadResult; -import org.ruoyi.common.oss.factory.OssFactory; -import org.ruoyi.common.response.PayResponse; -import org.ruoyi.common.service.PayService; -import org.ruoyi.common.utils.MD5Util; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.bo.SysUserBo; -import org.ruoyi.system.domain.request.OrderRequest; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.service.IPaymentOrdersService; -import org.ruoyi.system.service.ISysUserService; -import org.springframework.web.bind.annotation.*; - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - - -@RequiredArgsConstructor -@RestController -@RequestMapping("/pay") -@Slf4j -public class PayController { - - private final PayService payService; - - private final ISysUserService userService; - - private final IPaymentOrdersService paymentOrdersService; - - private final PayConfig payConfig; - - private final WxPayService wxService; - - private final ConfigService configService; - - /** - * 获取支付二维码 - * - * @Date 2023/7/3 - * @return void - **/ - @PostMapping("/payUrl") - public R payUrl(@RequestBody OrderRequest orderRequest) { - PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); - PaymentOrdersVo paymentOrdersVo = new PaymentOrdersVo(); - if(!Boolean.parseBoolean(getKey("enabled"))){ - String payUrl = payService.getPayUrl(payOrder.getOrderNo(), orderRequest.getName(), Double.parseDouble(orderRequest.getMoney()), "192.168.1.6"); - byte[] bytes = QrCodeUtil.generatePng(payUrl, 300, 300); - OssClient storage = OssFactory.instance(); - UploadResult upload=storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); - BeanUtil.copyProperties(payOrder,paymentOrdersVo); - paymentOrdersVo.setUrl(upload.getUrl()); - }else { - WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); - request.setTradeType("NATIVE"); - request.setBody(orderRequest.getName()); - request.setOutTradeNo(payOrder.getOrderNo()); - request.setTotalFee(BaseWxPayRequest.yuanToFen(orderRequest.getMoney())); - request.setSpbillCreateIp("127.0.0.1"); - request.setNotifyUrl(getKey("notifyUrl")); - request.setProductId(payOrder.getId().toString()); - try { - WxPayNativeOrderResult order = wxService.createOrder(request); - byte[] bytes = QrCodeUtil.generatePng(order.getCodeUrl(), 300, 300); - OssClient storage = OssFactory.instance(); - UploadResult upload = storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); - BeanUtil.copyProperties(payOrder,paymentOrdersVo); - paymentOrdersVo.setUrl(upload.getUrl()); - } catch (WxPayException e) { - throw new BaseException("获取微信支付二维码发生错误:{}"+e.getMessage()); - } - } - return R.ok(paymentOrdersVo); - } - - /** - * 回调通知地址 - * - * @Date 2023/7/3 - * @param - * @return void - **/ - @GetMapping("/notifyUrl") - public String notifyUrl(PayResponse payResponse) { - // 校验签名 - String mdString = "money=" + payResponse.getMoney() + "&name=" + payResponse.getName() + - "&out_trade_no=" + payResponse.getOut_trade_no() + "&pid=" + payConfig.getPid() + - "&trade_no=" + payResponse.getTrade_no() + "&trade_status=" + payResponse.getTrade_status() + - "&type=" + payResponse.getType() + payConfig.getKey(); - String sign = MD5Util.GetMD5Code(mdString); - if(!sign.equals(payResponse.getSign())){ - throw new BaseException("校验签名失败!"); - } - double money = Double.parseDouble(payResponse.getMoney()); - log.info("支付订单号{}",payResponse); - PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); - paymentOrdersBo.setOrderNo(payResponse.getOut_trade_no()); - List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); - if (CollectionUtil.isEmpty(paymentOrdersList)){ - throw new BaseException("订单不存在!"); - } - // 订单状态修改为已支付 - PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); - paymentOrdersVo.setPaymentStatus("2"); - paymentOrdersVo.setPaymentMethod(payResponse.getType()); - BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); - paymentOrdersService.updateByBo(paymentOrdersBo); - - SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); - sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); - SysUserBo sysUserBo = new SysUserBo(); - BeanUtil.copyProperties(sysUserVo,sysUserBo); - // 设置为付费用户 - sysUserBo.setUserGrade("1"); - userService.updateUser(sysUserBo); - return "success"; - } - - /** - * 跳转通知地址 - * - * @Date 2023/7/3 - * @param - * @return void - **/ - @GetMapping("/return_url") - public void returnUrl() { - log.info("return_url==========="); - } - - - @PostMapping("/notify/wxOrder") - public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException { - WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData); - // TODO 根据自己业务场景需要构造返回对象 - PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); - paymentOrdersBo.setOrderNo(notifyResult.getOutTradeNo()); - List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); - PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); - paymentOrdersVo.setPaymentStatus("2"); - paymentOrdersVo.setPaymentMethod("wx"); - BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); - paymentOrdersService.updateByBo(paymentOrdersBo); - SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); - sysUserVo.setUserBalance(sysUserVo.getUserBalance() + convertCentsToYuan(notifyResult.getTotalFee())); - SysUserBo sysUserBo = new SysUserBo(); - BeanUtil.copyProperties(sysUserVo,sysUserBo); - // 设置为付费用户 - sysUserBo.setUserGrade("1"); - userService.updateUser(sysUserBo); - return WxPayNotifyResponse.success("success"); - } - - /** - * 将分转换为元,并保留精度。 - * - * @param cents 分的金额,类型为Integer - * @return 转换后的元金额,类型为double - */ - public static double convertCentsToYuan(Integer cents) { - // 处理空输入 - if (cents == null) { - throw new IllegalArgumentException("输入的分金额不能为空"); - } - - // 100分 = 1元 - BigDecimal centsBigDecimal = new BigDecimal(cents); - BigDecimal yuan = centsBigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); - // 转换为double并返回 - return yuan.doubleValue(); - } - - /** - * 获取订单信息 - * - */ - @PostMapping("/orderInfo") - public R orderInfo(@RequestBody OrderRequest orderRequest) { - if(StringUtils.isEmpty(orderRequest.getOrderNo())){ - throw new BaseException("订单号不能为空!"); - } - PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); - paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); - List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); - if (CollectionUtil.isEmpty(paymentOrdersList)){ - throw new BaseException("订单不存在!"); - } - PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); - return R.ok(paymentOrdersVo); - } - - // 获取支付链接 -// static { -// Stripe.apiKey = "sk_test_51PMMj2KcfX4oNioqXkoKpScTsgmR55xQki2tg8MEZJYc0gjhYV85t2FzDasE06eqZb0sqyYhOp3UXhcGGQLWI4A9008aq8SOnb"; +//package org.ruoyi.system.controller.system; +// +//import cn.hutool.core.bean.BeanUtil; +//import cn.hutool.core.collection.CollectionUtil; +//import cn.hutool.extra.qrcode.QrCodeUtil; +//import cn.hutool.json.JSONObject; +//import cn.hutool.json.JSONUtil; +//import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; +//import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; +//import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult; +//import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; +//import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; +//import com.github.binarywang.wxpay.exception.WxPayException; +//import com.github.binarywang.wxpay.service.WxPayService; +//import com.stripe.Stripe; +//import com.stripe.exception.StripeException; +//import com.stripe.model.Event; +//import com.stripe.model.Price; +//import com.stripe.model.Product; +//import com.stripe.model.checkout.Session; +//import com.stripe.net.Webhook; +//import com.stripe.param.checkout.SessionCreateParams; +//import jakarta.servlet.http.HttpServletRequest; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.ruoyi.common.config.PayConfig; +//import org.ruoyi.common.core.domain.R; +//import org.ruoyi.common.core.exception.base.BaseException; +//import org.ruoyi.common.core.service.ConfigService; +//import org.ruoyi.common.core.utils.StringUtils; +//import org.ruoyi.common.oss.core.OssClient; +//import org.ruoyi.common.oss.entity.UploadResult; +//import org.ruoyi.common.oss.factory.OssFactory; +//import org.ruoyi.common.response.PayResponse; +//import org.ruoyi.common.service.PayService; +//import org.ruoyi.common.utils.MD5Util; +//import org.ruoyi.system.domain.bo.PaymentOrdersBo; +//import org.ruoyi.system.domain.bo.SysUserBo; +//import org.ruoyi.system.domain.request.OrderRequest; +//import org.ruoyi.system.domain.vo.PaymentOrdersVo; +//import org.ruoyi.system.domain.vo.SysUserVo; +//import org.ruoyi.system.service.IPaymentOrdersService; +//import org.ruoyi.system.service.ISysUserService; +//import org.springframework.web.bind.annotation.*; +// +//import java.io.ByteArrayOutputStream; +//import java.io.InputStream; +//import java.math.BigDecimal; +//import java.math.RoundingMode; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +// +//@RequiredArgsConstructor +//@RestController +//@RequestMapping("/pay") +//@Slf4j +//public class PayController { +// +// private final PayService payService; +// +// private final ISysUserService userService; +// +// private final IPaymentOrdersService paymentOrdersService; +// +// private final PayConfig payConfig; +// +// private final WxPayService wxService; +// +// private final ConfigService configService; +// +// /** +// * 获取支付二维码 +// * +// * @Date 2023/7/3 +// * @return void +// **/ +// @PostMapping("/payUrl") +// public R payUrl(@RequestBody OrderRequest orderRequest) { +// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); +// PaymentOrdersVo paymentOrdersVo = new PaymentOrdersVo(); +// if(!Boolean.parseBoolean(getKey("enabled"))){ +// String payUrl = payService.getPayUrl(payOrder.getOrderNo(), orderRequest.getName(), Double.parseDouble(orderRequest.getMoney()), "192.168.1.6"); +// byte[] bytes = QrCodeUtil.generatePng(payUrl, 300, 300); +// OssClient storage = OssFactory.instance(); +// UploadResult upload=storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); +// BeanUtil.copyProperties(payOrder,paymentOrdersVo); +// paymentOrdersVo.setUrl(upload.getUrl()); +// }else { +// WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); +// request.setTradeType("NATIVE"); +// request.setBody(orderRequest.getName()); +// request.setOutTradeNo(payOrder.getOrderNo()); +// request.setTotalFee(BaseWxPayRequest.yuanToFen(orderRequest.getMoney())); +// request.setSpbillCreateIp("127.0.0.1"); +// request.setNotifyUrl(getKey("notifyUrl")); +// request.setProductId(payOrder.getId().toString()); +// try { +// WxPayNativeOrderResult order = wxService.createOrder(request); +// byte[] bytes = QrCodeUtil.generatePng(order.getCodeUrl(), 300, 300); +// OssClient storage = OssFactory.instance(); +// UploadResult upload = storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); +// BeanUtil.copyProperties(payOrder,paymentOrdersVo); +// paymentOrdersVo.setUrl(upload.getUrl()); +// } catch (WxPayException e) { +// throw new BaseException("获取微信支付二维码发生错误:{}"+e.getMessage()); +// } +// } +// return R.ok(paymentOrdersVo); // } - - /** - * 去支付 - * 1、创建产品 - * 2、设置价格 - * 3、创建支付信息 得到url - * @return - */ - @PostMapping("/stripePay") - public String pay(@RequestBody OrderRequest orderRequest) throws StripeException { - - String enabled = configService.getConfigValue("stripe", "enabled"); - if(!Boolean.parseBoolean(enabled)){ - String prompt = configService.getConfigValue("stripe", "prompt"); - throw new BaseException(prompt); - } - - // 获取支付链接 - Stripe.apiKey = configService.getConfigValue("stripe", "key"); - - // 获取金额字符串并解析为 double - double moneyDouble = Double.parseDouble(orderRequest.getMoney()); - - // 将金额转换为以分为单位的整数 - int randMoney = (int) (moneyDouble * 100); - - Map params = new HashMap<>(); - params.put("name", orderRequest.getName()); - Product product = Product.create(params); - - Map recurring = new HashMap<>(); - recurring.put("interval", "month"); - Map params2 = new HashMap<>(); - params2.put("unit_amount", randMoney); - params2.put("currency", "usd"); - params2.put("recurring", recurring); - params2.put("product", product.getId()); - Price price = Price.create(params2); - - // 创建支付订单 - PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); - - //创建支付信息 得到url - SessionCreateParams params3 = SessionCreateParams.builder() - .setMode(SessionCreateParams.Mode.SUBSCRIPTION) - .setSuccessUrl(configService.getConfigValue("stripe", "success")) - .setCancelUrl(configService.getConfigValue("stripe", "cancel")) - .addLineItem( - SessionCreateParams.LineItem.builder() - .setQuantity(1L) - .setPrice(price.getId()) - .build()).putMetadata("orderId", payOrder.getOrderNo()) - .build(); - Session session = Session.create(params3); - return session.getUrl(); - } - - /** - * 支付回调 - * - */ - @PostMapping("/stripe_events") - public R stripeEvent(HttpServletRequest request) { - try { - String endpointSecret = configService.getConfigValue("stripe", "secret");//webhook秘钥签名 - InputStream inputStream = request.getInputStream(); - ByteArrayOutputStream output = new ByteArrayOutputStream(); - byte[] buffer = new byte[1024*4]; - int n = 0; - while (-1 != (n = inputStream.read(buffer))) { - output.write(buffer, 0, n); - } - byte[] bytes = output.toByteArray(); - String payload = new String(bytes, "UTF-8"); - String sigHeader = request.getHeader("Stripe-Signature"); - Event event = Webhook.constructEvent(payload, sigHeader, endpointSecret);//验签,并获取事件 - if("checkout.session.completed".equals(event.getType())){ - // 解析 JSON 字符串为 JSONObject - JSONObject jsonObject = JSONUtil.parseObj(event); - // 获取 metadata 对象 - JSONObject metadata = jsonObject.getJSONObject("data") - .getJSONObject("object") - .getJSONObject("metadata"); - - OrderRequest orderRequest = new OrderRequest(); - orderRequest.setPayType("stripe"); - orderRequest.setOrderNo(metadata.getStr("orderId")); - paymentOrdersService.updatePayOrder(orderRequest); - } - } catch (Exception e) { - System.out.println("stripe异步通知(webhook事件)"+e); - } - return R.ok(); - } - - public String getKey(String key) { - return configService.getConfigValue("weixin", key); - } - -} - +// +// /** +// * 回调通知地址 +// * +// * @Date 2023/7/3 +// * @param +// * @return void +// **/ +// @GetMapping("/notifyUrl") +// public String notifyUrl(PayResponse payResponse) { +// // 校验签名 +// String mdString = "money=" + payResponse.getMoney() + "&name=" + payResponse.getName() + +// "&out_trade_no=" + payResponse.getOut_trade_no() + "&pid=" + payConfig.getPid() + +// "&trade_no=" + payResponse.getTrade_no() + "&trade_status=" + payResponse.getTrade_status() + +// "&type=" + payResponse.getType() + payConfig.getKey(); +// String sign = MD5Util.GetMD5Code(mdString); +// if(!sign.equals(payResponse.getSign())){ +// throw new BaseException("校验签名失败!"); +// } +// double money = Double.parseDouble(payResponse.getMoney()); +// log.info("支付订单号{}",payResponse); +// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); +// paymentOrdersBo.setOrderNo(payResponse.getOut_trade_no()); +// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); +// if (CollectionUtil.isEmpty(paymentOrdersList)){ +// throw new BaseException("订单不存在!"); +// } +// // 订单状态修改为已支付 +// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); +// paymentOrdersVo.setPaymentStatus("2"); +// paymentOrdersVo.setPaymentMethod(payResponse.getType()); +// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); +// paymentOrdersService.updateByBo(paymentOrdersBo); +// +// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); +// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); +// SysUserBo sysUserBo = new SysUserBo(); +// BeanUtil.copyProperties(sysUserVo,sysUserBo); +// // 设置为付费用户 +// sysUserBo.setUserGrade("1"); +// userService.updateUser(sysUserBo); +// return "success"; +// } +// +// /** +// * 跳转通知地址 +// * +// * @Date 2023/7/3 +// * @param +// * @return void +// **/ +// @GetMapping("/return_url") +// public void returnUrl() { +// log.info("return_url==========="); +// } +// +// +// @PostMapping("/notify/wxOrder") +// public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException { +// WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData); +// // TODO 根据自己业务场景需要构造返回对象 +// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); +// paymentOrdersBo.setOrderNo(notifyResult.getOutTradeNo()); +// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); +// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); +// paymentOrdersVo.setPaymentStatus("2"); +// paymentOrdersVo.setPaymentMethod("wx"); +// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); +// paymentOrdersService.updateByBo(paymentOrdersBo); +// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); +// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + convertCentsToYuan(notifyResult.getTotalFee())); +// SysUserBo sysUserBo = new SysUserBo(); +// BeanUtil.copyProperties(sysUserVo,sysUserBo); +// // 设置为付费用户 +// sysUserBo.setUserGrade("1"); +// userService.updateUser(sysUserBo); +// return WxPayNotifyResponse.success("success"); +// } +// +// /** +// * 将分转换为元,并保留精度。 +// * +// * @param cents 分的金额,类型为Integer +// * @return 转换后的元金额,类型为double +// */ +// public static double convertCentsToYuan(Integer cents) { +// // 处理空输入 +// if (cents == null) { +// throw new IllegalArgumentException("输入的分金额不能为空"); +// } +// +// // 100分 = 1元 +// BigDecimal centsBigDecimal = new BigDecimal(cents); +// BigDecimal yuan = centsBigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); +// // 转换为double并返回 +// return yuan.doubleValue(); +// } +// +// /** +// * 获取订单信息 +// * +// */ +// @PostMapping("/orderInfo") +// public R orderInfo(@RequestBody OrderRequest orderRequest) { +// if(StringUtils.isEmpty(orderRequest.getOrderNo())){ +// throw new BaseException("订单号不能为空!"); +// } +// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); +// paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); +// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); +// if (CollectionUtil.isEmpty(paymentOrdersList)){ +// throw new BaseException("订单不存在!"); +// } +// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); +// return R.ok(paymentOrdersVo); +// } +// +// // 获取支付链接 +//// static { +//// Stripe.apiKey = "sk_test_51PMMj2KcfX4oNioqXkoKpScTsgmR55xQki2tg8MEZJYc0gjhYV85t2FzDasE06eqZb0sqyYhOp3UXhcGGQLWI4A9008aq8SOnb"; +//// } +// +// /** +// * 去支付 +// * 1、创建产品 +// * 2、设置价格 +// * 3、创建支付信息 得到url +// * @return +// */ +// @PostMapping("/stripePay") +// public String pay(@RequestBody OrderRequest orderRequest) throws StripeException { +// +// String enabled = configService.getConfigValue("stripe", "enabled"); +// if(!Boolean.parseBoolean(enabled)){ +// String prompt = configService.getConfigValue("stripe", "prompt"); +// throw new BaseException(prompt); +// } +// +// // 获取支付链接 +// Stripe.apiKey = configService.getConfigValue("stripe", "key"); +// +// // 获取金额字符串并解析为 double +// double moneyDouble = Double.parseDouble(orderRequest.getMoney()); +// +// // 将金额转换为以分为单位的整数 +// int randMoney = (int) (moneyDouble * 100); +// +// Map params = new HashMap<>(); +// params.put("name", orderRequest.getName()); +// Product product = Product.create(params); +// +// Map recurring = new HashMap<>(); +// recurring.put("interval", "month"); +// Map params2 = new HashMap<>(); +// params2.put("unit_amount", randMoney); +// params2.put("currency", "usd"); +// params2.put("recurring", recurring); +// params2.put("product", product.getId()); +// Price price = Price.create(params2); +// +// // 创建支付订单 +// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); +// +// //创建支付信息 得到url +// SessionCreateParams params3 = SessionCreateParams.builder() +// .setMode(SessionCreateParams.Mode.SUBSCRIPTION) +// .setSuccessUrl(configService.getConfigValue("stripe", "success")) +// .setCancelUrl(configService.getConfigValue("stripe", "cancel")) +// .addLineItem( +// SessionCreateParams.LineItem.builder() +// .setQuantity(1L) +// .setPrice(price.getId()) +// .build()).putMetadata("orderId", payOrder.getOrderNo()) +// .build(); +// Session session = Session.create(params3); +// return session.getUrl(); +// } +// +// /** +// * 支付回调 +// * +// */ +// @PostMapping("/stripe_events") +// public R stripeEvent(HttpServletRequest request) { +// try { +// String endpointSecret = configService.getConfigValue("stripe", "secret");//webhook秘钥签名 +// InputStream inputStream = request.getInputStream(); +// ByteArrayOutputStream output = new ByteArrayOutputStream(); +// byte[] buffer = new byte[1024*4]; +// int n = 0; +// while (-1 != (n = inputStream.read(buffer))) { +// output.write(buffer, 0, n); +// } +// byte[] bytes = output.toByteArray(); +// String payload = new String(bytes, "UTF-8"); +// String sigHeader = request.getHeader("Stripe-Signature"); +// Event event = Webhook.constructEvent(payload, sigHeader, endpointSecret);//验签,并获取事件 +// if("checkout.session.completed".equals(event.getType())){ +// // 解析 JSON 字符串为 JSONObject +// JSONObject jsonObject = JSONUtil.parseObj(event); +// // 获取 metadata 对象 +// JSONObject metadata = jsonObject.getJSONObject("data") +// .getJSONObject("object") +// .getJSONObject("metadata"); +// +// OrderRequest orderRequest = new OrderRequest(); +// orderRequest.setPayType("stripe"); +// orderRequest.setOrderNo(metadata.getStr("orderId")); +// paymentOrdersService.updatePayOrder(orderRequest); +// } +// } catch (Exception e) { +// System.out.println("stripe异步通知(webhook事件)"+e); +// } +// return R.ok(); +// } +// +// public String getKey(String key) { +// return configService.getConfigValue("weixin", key); +// } +// +//} +// diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java index a2702b2b..eeaeb908 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java @@ -1,81 +1,81 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaIgnore; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.core.exception.ServiceException; -import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -import org.ruoyi.common.wechat.itchat4j.controller.LoginController; -import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; -import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -import org.ruoyi.common.wechat.web.base.BaseException; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.handler.MyMsgHandler; -import org.ruoyi.system.service.ISseService; -import org.ruoyi.system.service.IWxRobConfigService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - * 个人微信扩展控制器 - * - * @author WangLe - */ -@SaIgnore -@Slf4j -@Validated -@RequiredArgsConstructor -@RestController -public class WeChatController { - - private final ISseService sseService; - - private final IWxRobConfigService wxRobConfigService; - - /** - * 登录第一步,获取二维码链接 - * @throws BaseException - */ - @PostMapping("/getQr") - public String getQr(@RequestParam String uniqueKey) { - LoginController login = new LoginController(uniqueKey); - try { - return login.login_1(); - } catch (BaseException e) { - throw new ServiceException("获取二维码失败:"+ e.getMessage()); - } - } - - @PostMapping("/wxLogin") - public Boolean wxLogin(@RequestParam String uniqueKey) { - LoginController login = new LoginController(uniqueKey); - return login.login_2(); - } - - @PostMapping("/wxInit") - public Boolean wxInit(@RequestParam String uniqueKey) { - LoginController login = new LoginController(uniqueKey); - // 开启消息处理线程 - WxRobConfigBo wxRobConfigBo = new WxRobConfigBo(); - wxRobConfigBo.setUniqueKey(uniqueKey); - List wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo); - //查询机器人对应的用户 - start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0))); - return login.login_3(); - } - - @PostMapping("/wxLogout") - public void wxLogout(@RequestParam String uniqueKey) { - WechatTools.logout(uniqueKey); - } - - public void start(String uniqueKey,IMsgHandlerFace msgHandler) { - log.info("7.+++开启消息处理线程["+uniqueKey+"]+++"); - new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start(); - } -} +//package org.ruoyi.system.controller.system; +// +//import cn.dev33.satoken.annotation.SaIgnore; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.ruoyi.common.core.exception.ServiceException; +//import org.ruoyi.common.wechat.itchat4j.api.WechatTools; +//import org.ruoyi.common.wechat.itchat4j.controller.LoginController; +//import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; +//import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; +//import org.ruoyi.common.wechat.web.base.BaseException; +//import org.ruoyi.system.domain.bo.WxRobConfigBo; +//import org.ruoyi.system.domain.vo.WxRobConfigVo; +//import org.ruoyi.system.handler.MyMsgHandler; +//import org.ruoyi.system.service.ISseService; +//import org.ruoyi.system.service.IWxRobConfigService; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestParam; +//import org.springframework.web.bind.annotation.RestController; +// +//import java.util.List; +// +///** +// * 个人微信扩展控制器 +// * +// * @author WangLe +// */ +//@SaIgnore +//@Slf4j +//@Validated +//@RequiredArgsConstructor +//@RestController +//public class WeChatController { +// +// private final ISseService sseService; +// +// private final IWxRobConfigService wxRobConfigService; +// +// /** +// * 登录第一步,获取二维码链接 +// * @throws BaseException +// */ +// @PostMapping("/getQr") +// public String getQr(@RequestParam String uniqueKey) { +// LoginController login = new LoginController(uniqueKey); +// try { +// return login.login_1(); +// } catch (BaseException e) { +// throw new ServiceException("获取二维码失败:"+ e.getMessage()); +// } +// } +// +// @PostMapping("/wxLogin") +// public Boolean wxLogin(@RequestParam String uniqueKey) { +// LoginController login = new LoginController(uniqueKey); +// return login.login_2(); +// } +// +// @PostMapping("/wxInit") +// public Boolean wxInit(@RequestParam String uniqueKey) { +// LoginController login = new LoginController(uniqueKey); +// // 开启消息处理线程 +// WxRobConfigBo wxRobConfigBo = new WxRobConfigBo(); +// wxRobConfigBo.setUniqueKey(uniqueKey); +// List wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo); +// //查询机器人对应的用户 +// start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0))); +// return login.login_3(); +// } +// +// @PostMapping("/wxLogout") +// public void wxLogout(@RequestParam String uniqueKey) { +// WechatTools.logout(uniqueKey); +// } +// +// public void start(String uniqueKey,IMsgHandlerFace msgHandler) { +// log.info("7.+++开启消息处理线程["+uniqueKey+"]+++"); +// new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start(); +// } +//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java index 155f042d..b52a628f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java @@ -19,7 +19,7 @@ import java.util.Map; @RequiredArgsConstructor public class MsgHandler extends AbstractHandler { - private final ISseService sseService; +// private final ISseService sseService; @@ -34,8 +34,10 @@ public class MsgHandler extends AbstractHandler { if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) { //TODO 可以选择将消息保存到本地 } + //TODO 组装回复消息 - String content = sseService.wxCpChat(wxMessage.getContent()); + String content = ""; + //sseService.wxCpChat(wxMessage.getContent()); return new TextBuilder().build(content, wxMessage, cpService); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java index 1bbe226d..92d767ba 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java @@ -15,11 +15,8 @@ import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; import org.ruoyi.common.chat.utils.TikTokensUtil; import org.ruoyi.common.core.utils.SpringUtils; import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.system.domain.bo.ChatMessageBo; import org.ruoyi.system.domain.bo.SysModelBo; import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.IChatCostService; -import org.ruoyi.system.service.IChatMessageService; import org.ruoyi.system.service.ISysModelService; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java index db27f687..a47df631 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.ChatAppStore; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; /** * 应用市场Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java index d230e9a4..5f767814 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.ChatConfig; -import org.ruoyi.system.domain.vo.ChatConfigVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java index 75555a60..f1f2f739 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.ChatGpts; -import org.ruoyi.system.domain.vo.ChatGptsVo; /** * gpts管理Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java index a58d611d..7c4e7476 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.ChatMessage; -import org.ruoyi.system.domain.vo.ChatMessageVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java index 3070d159..29fb348e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.ChatPlugin; -import org.ruoyi.system.domain.vo.ChatPluginVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java index 5bd62065..aeea71e7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.ChatToken; -import org.ruoyi.system.domain.vo.ChatTokenVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java index 7b4a8fc5..56424e66 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.ChatVisitorUsage; -import org.ruoyi.system.domain.vo.ChatVisitorUsageVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java index 490270dc..d54e7054 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.ChatVoucher; -import org.ruoyi.system.domain.vo.ChatVoucherVo; /** * 用户兑换记录Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatAppStoreImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatAppStoreImpl.java deleted file mode 100644 index 25a76867..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatAppStoreImpl.java +++ /dev/null @@ -1,259 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.ChatAppStore; -import org.ruoyi.system.domain.bo.ChatAppStoreBo; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; -import org.ruoyi.system.mapper.ChatAppStoreMapper; -import org.ruoyi.system.request.RoleListDto; -import org.ruoyi.system.request.RoleRequest; -import org.ruoyi.system.request.SimpleGenerateRequest; -import org.ruoyi.system.response.RoleResponse; -import org.ruoyi.system.response.SimpleGenerateDataResponse; -import org.ruoyi.system.response.SimpleGenerateResponse; -import org.ruoyi.system.response.rolelist.ContentResponse; -import org.ruoyi.system.response.rolelist.RoleListResponse; -import org.ruoyi.system.response.rolelist.ChatAppStoreVO; -import org.ruoyi.system.service.IChatCostService; -import org.ruoyi.system.service.IChatAppStoreService; -import org.ruoyi.system.util.AudioOkHttpUtil; -import org.springframework.stereotype.Service; - -import java.io.IOException; -import java.util.*; - -/** - * 应用市场Service业务层处理 - * - * @author Lion Li - * @date 2024-03-19 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class ChatAppStoreImpl implements IChatAppStoreService { - - private final ChatAppStoreMapper baseMapper; - - private final IChatCostService chatService; - - private final AudioOkHttpUtil audioOkHttpUtil; - - /** - * 查询应用市场 - */ - @Override - public ChatAppStoreVo queryById(Long id) { - return baseMapper.selectVoById(id); - } - - /** - * 查询应用市场列表 - */ - @Override - public TableDataInfo queryPageList(ChatAppStoreBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询应用市场列表 - */ - @Override - public List queryList(ChatAppStoreBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatAppStoreBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getName()), ChatAppStore::getName, bo.getName()); - lqw.eq(StringUtils.isNotBlank(bo.getDescription()), ChatAppStore::getDescription, bo.getDescription()); - lqw.eq(StringUtils.isNotBlank(bo.getAvatar()), ChatAppStore::getAvatar, bo.getAvatar()); - lqw.eq(bo.getCreateBy()!=null, ChatAppStore::getCreateBy, bo.getCreateBy()); - return lqw; - } - - /** - * 新增应用市场 - */ - @Override - public Boolean insertByBo(RoleRequest roleRequest) { - try { - String prompt = convertFileToBase64(roleRequest.getPrompt()); - roleRequest.setPrompt("data:audio/x-m4a;base64," + prompt); - - String avatar = convertFileToBase64(roleRequest.getAvatar()); - roleRequest.setAvatar("data:image/png;base64," + avatar); - - } catch (IOException e) { - log.error("转换base64出现错误:{}", e.getMessage()); - } - // 创建一个Request对象来配置你的请求 - String json = JSONUtil.toJsonStr(roleRequest); - Request postRequest = audioOkHttpUtil.createPostRequest("api/tts/voice", json); - String body = audioOkHttpUtil.executeRequest(postRequest); - RoleResponse bean = JSONUtil.toBean(body, RoleResponse.class); - ChatAppStore addVoiceRole = new ChatAppStore(); - addVoiceRole.setName(roleRequest.getName()); - addVoiceRole.setDescription(roleRequest.getDescription()); - addVoiceRole.setAvatar(bean.getData().getMetadata().getAvatar()); - - return baseMapper.insert(addVoiceRole) > 0; - } - - private static String convertFileToBase64(String fileUrl) throws IOException { - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url(fileUrl).build(); - Response response = client.newCall(request).execute(); - if (!response.isSuccessful()) throw new IOException("Failed to download file: " + response); - byte[] fileData = response.body().bytes(); - return Base64.getEncoder().encodeToString(fileData); - } - - /** - * 修改应用市场 - */ - @Override - public Boolean updateByBo(ChatAppStoreBo bo) { - ChatAppStore update = MapstructUtils.convert(bo, ChatAppStore.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatAppStore entity) { - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除应用市场 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - /** - * 实时生成语音 - * - * @param simpleGenerateRequest 生成语音对象 - * @return 生成的语音信息 - */ - @Override - public SimpleGenerateDataResponse simpleGenerate(SimpleGenerateRequest simpleGenerateRequest) { - double charge = calculateCharge(simpleGenerateRequest.getText()); - // 扣除费用并且保存消息记录 - chatService.taskDeduct(simpleGenerateRequest.getModel(), simpleGenerateRequest.getText(), charge); - // 创建一个Request对象来配置你的请求 - String json = JSONUtil.toJsonStr(simpleGenerateRequest); - Request postRequest = audioOkHttpUtil.createPostRequest("api/tts/simple-generate", json); - String body = audioOkHttpUtil.executeRequest(postRequest); - SimpleGenerateResponse bean = JSONUtil.toBean(body, SimpleGenerateResponse.class); - return bean.getData(); - } - - /** - * 查询市场角色 - * - * @return 角色列表 - */ - @Override - public List roleList() { - Request postRequest = audioOkHttpUtil.createGetRequest("api/tts/voice"); - String body = audioOkHttpUtil.executeRequest(postRequest); - RoleListResponse bean = JSONUtil.toBean(body, RoleListResponse.class); - List roleList = new ArrayList<>(); - for (ContentResponse element : bean.getData()) { - String name = element.getName(); - String description = element.getMetadata().getDescription(); - String voicesId = element.getId(); - String avatar = element.getMetadata().getAvatar(); - String previewAudio; - if (element.getMetadata().getPrompts() == null) { - // 从JSON中解析出的数据没有prompts - previewAudio = element.getMetadata().getPreviewAudio(); - } else { - previewAudio = element.getMetadata().getPrompts().get(0).getPromptOriginAudioStorageUrl(); - } - //roleList.add(new ChatAppStoreVO()); - } - return roleList; - - } - - /** - * 收藏市场角色 - */ - @Override - public void copyRole(RoleListDto roleListDto) { - // 保存至数据库 - ChatAppStore voiceRole = new ChatAppStore(); - voiceRole.setName(roleListDto.getName()); - voiceRole.setDescription(roleListDto.getDescription()); - voiceRole.setAvatar(roleListDto.getAvatar()); - baseMapper.insert(voiceRole); - } - - /** - * 根据文本长度计算扣除的金额。 - * - * @param text 输入的文本 - * @return 扣除的金额 - */ - public static double calculateCharge(String text) { - if (text == null || text.isEmpty()) { - return 0.0; - } - - int length = text.length(); - double charge = 0.0; - - while (length > 0) { - if (length >= 500) { - // 对于每500个字符,扣除0.5元 - charge += (length / 500) * 0.5; - length %= 500; // 处理剩余字符 - } else if (length >= 100) { - // 对于100到499个字符,扣除0.2元 - charge += 0.2; - break; // 处理完毕,退出循环 - } else { - // 对于少于100个字符,扣除0.1元 - charge += 0.1; - break; // 处理完毕,退出循环 - } - } - return charge; - } - - public Long getUserId() { - LoginUser loginUser = LoginHelper.getLoginUser(); - if (loginUser == null) { - throw new BaseException("用户未登录!"); - } - return loginUser.getUserId(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java deleted file mode 100644 index 7d2c99f6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.core.event.ConfigChangeEvent; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.ChatConfig; -import org.ruoyi.system.domain.bo.ChatConfigBo; -import org.ruoyi.system.domain.vo.ChatConfigVo; -import org.ruoyi.system.mapper.ChatConfigMapper; -import org.ruoyi.system.service.IChatConfigService; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; - -/** - * 对话配置信息 -Service业务层处理 - * - * @author Lion Li - * @date 2024-04-13 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class ChatConfigServiceImpl implements IChatConfigService, ConfigService { - - private final ChatConfigMapper baseMapper; - - private final ApplicationEventPublisher eventPublisher; - - /** - * 查询对话配置信息 - - */ - @Override - public ChatConfigVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询对话配置信息列表 - */ - @Override - public TableDataInfo queryPageList(ChatConfigBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询对话配置信息列表 - */ - @Override - public List queryList(ChatConfigBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatConfigBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory()); - lqw.like(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); - lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue()); - return lqw; - } - - /** - * 新增对话配置信息 - - */ - @Override - public Boolean insertByBo(ChatConfigBo bo) { - ChatConfig add = MapstructUtils.convert(bo, ChatConfig.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改对话配置信息 - - */ - @Override - public Boolean updateByBo(ChatConfigBo bo) { - ChatConfig update = MapstructUtils.convert(bo, ChatConfig.class); - validEntityBeforeSave(update); - // 更新配置信息(类型区分) - eventPublisher.publishEvent(new ConfigChangeEvent(this)); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatConfig entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除对话配置信息 - - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - /** - * 根据配置类型和配置key获取值 - * - * @param category - * @param configKey - * @return - */ - @Override - public String getConfigValue(String category,String configKey) { - ChatConfigBo bo = new ChatConfigBo(); - bo.setCategory(category); - bo.setConfigName(configKey); - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - ChatConfigVo chatConfigVo = baseMapper.selectVoOne(lqw); - if(chatConfigVo != null){ - return chatConfigVo.getConfigValue(); - }else { - return ""; - } - } - - /** - * 根据配置类型和配置key获取值 - * - * @param category - * @return - */ - @Override - public List getSysConfigValue(String category) { - ChatConfigBo bo = new ChatConfigBo(); - bo.setCategory(category); - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatCostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatCostServiceImpl.java deleted file mode 100644 index 137bea06..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatCostServiceImpl.java +++ /dev/null @@ -1,161 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.ServiceException; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.ChatToken; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.domain.bo.ChatMessageBo; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.mapper.SysUserMapper; -import org.ruoyi.system.service.IChatCostService; -import org.ruoyi.system.service.IChatMessageService; -import org.ruoyi.system.service.IChatTokenService; -import org.ruoyi.system.service.ISysModelService; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author hncboy - * @date 2023/3/22 19:41 - * 聊天相关业务实现类 - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class ChatCostServiceImpl implements IChatCostService { - - private final SysUserMapper sysUserMapper; - - private final IChatMessageService chatMessageService; - - private final IChatTokenService chatTokenService; - - private final ISysModelService sysModelService; - - /** - * 根据消耗的tokens扣除余额 - * - * @param chatMessageBo - */ - public void deductToken(ChatMessageBo chatMessageBo) { - // 计算总token数 - ChatToken chatToken = chatTokenService.queryByUserId(chatMessageBo.getUserId(), chatMessageBo.getModelName()); - if (chatToken == null) { - chatToken = new ChatToken(); - chatToken.setToken(0); - } - int totalTokens = chatToken.getToken() + chatMessageBo.getTotalTokens(); - // 如果总token数大于等于1000,进行费用扣除 - if (totalTokens >= 1000) { - // 计算费用 - int token1 = totalTokens / 1000; - int token2 = totalTokens % 1000; - if (token2 > 0) { - // 保存剩余tokens - chatToken.setModelName(chatMessageBo.getModelName()); - chatToken.setUserId(chatMessageBo.getUserId()); - chatToken.setToken(token2); - chatTokenService.editToken(chatToken); - } else { - chatTokenService.resetToken(chatMessageBo.getUserId(), chatMessageBo.getModelName()); - } - // 扣除用户余额 - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelName(chatMessageBo.getModelName()); - List sysModelList = sysModelService.queryList(sysModelBo); - double modelPrice = sysModelList.get(0).getModelPrice(); - Double numberCost = token1 * modelPrice; - deductUserBalance(chatMessageBo.getUserId(), numberCost); - chatMessageBo.setDeductCost(numberCost); - } else { - // 扣除用户余额 - deductUserBalance(chatMessageBo.getUserId(), 0.0); - chatMessageBo.setDeductCost(0d); - chatMessageBo.setRemark("不满1kToken,计入下一次!"); - chatToken.setToken(totalTokens); - chatToken.setModelName(chatMessageBo.getModelName()); - chatToken.setUserId(chatMessageBo.getUserId()); - chatTokenService.editToken(chatToken); - } - // 保存消息记录 - chatMessageService.insertByBo(chatMessageBo); - } - - - - /** - * 从用户余额中扣除费用 - * - * @param userId 用户ID - * @param numberCost 要扣除的费用 - */ - @Override - public void deductUserBalance(Long userId, Double numberCost) { - SysUser sysUser = sysUserMapper.selectById(userId); - if (sysUser == null) { - return; - } - - Double userBalance = sysUser.getUserBalance(); - if (userBalance < numberCost || userBalance == 0) { - throw new ServiceException("余额不足, 请充值"); - } - sysUserMapper.update(null, - new LambdaUpdateWrapper() - .set(SysUser::getUserBalance, Math.max(userBalance - numberCost, 0)) - .eq(SysUser::getUserId, userId)); - } - - - - /** - * 扣除任务费用 - * - */ - @Override - public void taskDeduct(String type,String prompt, double cost) { - // 判断用户是否付费 - checkUserGrade(); - // 扣除费用 - deductUserBalance(getUserId(), cost); - // 保存消息记录 - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(type); - chatMessageBo.setContent(prompt); - chatMessageBo.setDeductCost(cost); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - } - - /** - * 判断用户是否付费 - */ - @Override - public void checkUserGrade() { - SysUser sysUser = sysUserMapper.selectById(getUserId()); - if("0".equals(sysUser.getUserGrade())){ - throw new BaseException("This model is currently unavailable for free users. Please make any amount of deposit to access."); - } - } - - /** - * 获取用户Id - * - * @return - */ - public Long getUserId() { - LoginUser loginUser = LoginHelper.getLoginUser(); - if (loginUser == null) { - throw new BaseException("用户未登录!"); - } - return loginUser.getUserId(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatGptsServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatGptsServiceImpl.java deleted file mode 100644 index 38ca74a5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatGptsServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.ChatGpts; -import org.ruoyi.system.domain.bo.ChatGptsBo; -import org.ruoyi.system.domain.vo.ChatGptsVo; -import org.ruoyi.system.mapper.ChatGptsMapper; -import org.ruoyi.system.service.IChatGptsService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * gpts管理Service业务层处理 - * - * @author Lion Li - * @date 2024-07-09 - */ -@RequiredArgsConstructor -@Service -public class ChatGptsServiceImpl implements IChatGptsService { - - private final ChatGptsMapper baseMapper; - - /** - * 查询gpts管理 - */ - @Override - public ChatGptsVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询gpts管理列表 - */ - @Override - public TableDataInfo queryPageList(ChatGptsBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询gpts管理列表 - */ - @Override - public List queryList(ChatGptsBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatGptsBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getGid()), ChatGpts::getGid, bo.getGid()); - lqw.like(StringUtils.isNotBlank(bo.getName()), ChatGpts::getName, bo.getName()); - lqw.eq(StringUtils.isNotBlank(bo.getLogo()), ChatGpts::getLogo, bo.getLogo()); - lqw.eq(StringUtils.isNotBlank(bo.getInfo()), ChatGpts::getInfo, bo.getInfo()); - lqw.eq(StringUtils.isNotBlank(bo.getAuthorId()), ChatGpts::getAuthorId, bo.getAuthorId()); - lqw.like(StringUtils.isNotBlank(bo.getAuthorName()), ChatGpts::getAuthorName, bo.getAuthorName()); - lqw.eq(StringUtils.isNotBlank(bo.getUseCnt()), ChatGpts::getUseCnt, bo.getUseCnt()); - lqw.eq(StringUtils.isNotBlank(bo.getBad()), ChatGpts::getBad, bo.getBad()); - lqw.eq(StringUtils.isNotBlank(bo.getType()), ChatGpts::getType, bo.getType()); - lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatGpts::getUpdateIp, bo.getUpdateIp()); - return lqw; - } - - /** - * 新增gpts管理 - */ - @Override - public Boolean insertByBo(ChatGptsBo bo) { - ChatGpts add = MapstructUtils.convert(bo, ChatGpts.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改gpts管理 - */ - @Override - public Boolean updateByBo(ChatGptsBo bo) { - ChatGpts update = MapstructUtils.convert(bo, ChatGpts.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatGpts entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除gpts管理 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatMessageServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatMessageServiceImpl.java deleted file mode 100644 index 421c6cfc..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatMessageServiceImpl.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.ChatMessage; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.domain.bo.ChatMessageBo; -import org.ruoyi.system.domain.vo.ChatMessageVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.mapper.ChatMessageMapper; -import org.ruoyi.system.mapper.SysUserMapper; -import org.ruoyi.system.service.IChatMessageService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 聊天消息Service业务层处理 - * - * @author Lion Li - * @date 2023-11-26 - */ -@RequiredArgsConstructor -@Service -public class ChatMessageServiceImpl implements IChatMessageService { - - private final ChatMessageMapper baseMapper; - - private final SysUserMapper sysUserMapper; - /** - * 查询聊天消息 - */ - @Override - public ChatMessageVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询聊天消息列表 - */ - @Override - public TableDataInfo queryPageList(ChatMessageBo bo, PageQuery pageQuery) { - // 根据用户名称查询用户 - if(StringUtils.isNotEmpty(bo.getUserName())){ - SysUserVo sysUserVo = sysUserMapper.selectUserByUserName(bo.getUserName()); - bo.setUserId(sysUserVo.getUserId()); - } - - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - List userIds = result.getRecords().stream() - .map(ChatMessageVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(chatMessageVo -> { - chatMessageVo.setUserName(userIdToUserNameMap.get(chatMessageVo.getUserId())); - }); - return TableDataInfo.build(result); - } - - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - - /** - * 查询聊天消息列表 - */ - @Override - public List queryList(ChatMessageBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatMessageBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getUserId() != null, ChatMessage::getUserId, bo.getUserId()); - lqw.eq(StringUtils.isNotBlank(bo.getContent()), ChatMessage::getContent, bo.getContent()); - lqw.eq(bo.getDeductCost() != null, ChatMessage::getDeductCost, bo.getDeductCost()); - lqw.eq(bo.getTotalTokens() != null, ChatMessage::getTotalTokens, bo.getTotalTokens()); - lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatMessage::getModelName, bo.getModelName()); - return lqw; - } - - /** - * 新增聊天消息 - */ - @Override - public Boolean insertByBo(ChatMessageBo bo) { - ChatMessage add = MapstructUtils.convert(bo, ChatMessage.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改聊天消息 - */ - @Override - public Boolean updateByBo(ChatMessageBo bo) { - ChatMessage update = MapstructUtils.convert(bo, ChatMessage.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatMessage entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除聊天消息 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatPluginServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatPluginServiceImpl.java deleted file mode 100644 index 6b84e0cc..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatPluginServiceImpl.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.ChatPluginBo; -import org.ruoyi.system.domain.vo.ChatPluginVo; -import org.ruoyi.system.domain.ChatPlugin; -import org.ruoyi.system.mapper.ChatPluginMapper; -import org.ruoyi.system.service.IChatPluginService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 插件管理Service业务层处理 - * - * @author ageerle - * @date 2025-03-30 - */ -@RequiredArgsConstructor -@Service -public class ChatPluginServiceImpl implements IChatPluginService { - - private final ChatPluginMapper baseMapper; - - /** - * 查询插件管理 - */ - @Override - public ChatPluginVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询插件管理列表 - */ - @Override - public TableDataInfo queryPageList(ChatPluginBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询插件管理列表 - */ - @Override - public List queryList(ChatPluginBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatPluginBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getName()), ChatPlugin::getName, bo.getName()); - lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatPlugin::getCode, bo.getCode()); - return lqw; - } - - /** - * 新增插件管理 - */ - @Override - public Boolean insertByBo(ChatPluginBo bo) { - ChatPlugin add = MapstructUtils.convert(bo, ChatPlugin.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改插件管理 - */ - @Override - public Boolean updateByBo(ChatPluginBo bo) { - ChatPlugin update = MapstructUtils.convert(bo, ChatPlugin.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatPlugin entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除插件管理 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatTokenServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatTokenServiceImpl.java deleted file mode 100644 index f5e69bc3..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatTokenServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import org.ruoyi.system.domain.ChatToken; -import org.ruoyi.system.mapper.ChatTokenMapper; -import org.ruoyi.system.service.IChatTokenService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -/** - * 聊天消息Service业务层处理 - * - * @author Lion Li - * @date 2023-11-26 - */ -@RequiredArgsConstructor -@Service -public class ChatTokenServiceImpl implements IChatTokenService { - - private final ChatTokenMapper baseMapper; - - @Override - public ChatToken queryByUserId(Long userId,String modelName) { - return baseMapper.selectOne( - new LambdaQueryWrapper() - .eq(ChatToken::getUserId, userId) - .eq(ChatToken::getModelName, modelName) - .last("limit 1") - ); - } - - /** - * 清空用户token - * - */ - @Override - public void resetToken(Long userId,String modelName) { - ChatToken chatToken = queryByUserId(userId, modelName); - chatToken.setToken(0); - baseMapper.updateById(chatToken); - } - - /** - * 增加用户token - * - */ - @Override - public void editToken(ChatToken chatToken) { - if(chatToken.getId() == null){ - baseMapper.insert(chatToken); - }else { - baseMapper.updateById(chatToken); - } - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVisitorUsageServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVisitorUsageServiceImpl.java deleted file mode 100644 index 85f1e767..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVisitorUsageServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.ChatVisitorUsageBo; -import org.ruoyi.system.domain.vo.ChatVisitorUsageVo; -import org.ruoyi.system.domain.ChatVisitorUsage; -import org.ruoyi.system.mapper.ChatVisitorUsageMapper; -import org.ruoyi.system.service.IChatVisitorUsageService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 访客管理Service业务层处理 - * - * @author Lion Li - * @date 2024-07-14 - */ -@RequiredArgsConstructor -@Service -public class ChatVisitorUsageServiceImpl implements IChatVisitorUsageService { - - private final ChatVisitorUsageMapper baseMapper; - - /** - * 查询访客管理 - */ - @Override - public ChatVisitorUsageVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询访客管理列表 - */ - @Override - public TableDataInfo queryPageList(ChatVisitorUsageBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询访客管理列表 - */ - @Override - public List queryList(ChatVisitorUsageBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatVisitorUsageBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getFingerprint()), ChatVisitorUsage::getFingerprint, bo.getFingerprint()); - lqw.eq(StringUtils.isNotBlank(bo.getUsageCount()), ChatVisitorUsage::getUsageCount, bo.getUsageCount()); - lqw.eq(StringUtils.isNotBlank(bo.getIpAddress()), ChatVisitorUsage::getIpAddress, bo.getIpAddress()); - lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatVisitorUsage::getUpdateIp, bo.getUpdateIp()); - return lqw; - } - - /** - * 新增访客管理 - */ - @Override - public Boolean insertByBo(ChatVisitorUsageBo bo) { - ChatVisitorUsage add = MapstructUtils.convert(bo, ChatVisitorUsage.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改访客管理 - */ - @Override - public Boolean updateByBo(ChatVisitorUsageBo bo) { - ChatVisitorUsage update = MapstructUtils.convert(bo, ChatVisitorUsage.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatVisitorUsage entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除访客管理 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVoucherServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVoucherServiceImpl.java deleted file mode 100644 index 41078ab6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/ChatVoucherServiceImpl.java +++ /dev/null @@ -1,180 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.domain.bo.SysUserBo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.mapper.SysUserMapper; -import org.ruoyi.system.service.ISysUserService; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.ChatVoucherBo; -import org.ruoyi.system.domain.vo.ChatVoucherVo; -import org.ruoyi.system.domain.ChatVoucher; -import org.ruoyi.system.mapper.ChatVoucherMapper; -import org.ruoyi.system.service.IChatVoucherService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; -import java.util.stream.Collectors; - -/** - * 用户兑换记录Service业务层处理 - * - * @author Lion Li - * @date 2024-05-03 - */ -@RequiredArgsConstructor -@Service -public class ChatVoucherServiceImpl implements IChatVoucherService { - - private final ChatVoucherMapper baseMapper; - - private final ISysUserService sysUserService; - - private final SysUserMapper sysUserMapper; - - /** - * 查询用户兑换记录 - */ - @Override - public ChatVoucherVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询用户兑换记录列表 - */ - @Override - public TableDataInfo queryPageList(ChatVoucherBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - // 获取所有userId - List userIds = result.getRecords().stream() - .map(ChatVoucherVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(chatVoucherVo -> { - chatVoucherVo.setUserName(userIdToUserNameMap.get(chatVoucherVo.getUserId())); - }); - return TableDataInfo.build(result); - } - - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - - /** - * 查询用户兑换记录列表 - */ - @Override - public List queryList(ChatVoucherBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatVoucherBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getUserId() != null, ChatVoucher::getUserId, bo.getUserId()); - lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatVoucher::getCode, bo.getCode()); - lqw.eq(bo.getAmount() != null, ChatVoucher::getAmount, bo.getAmount()); - lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ChatVoucher::getStatus, bo.getStatus()); - return lqw; - } - - /** - * 新增用户兑换记录 - */ - @Override - public Boolean insertByBo(ChatVoucherBo bo) { - ChatVoucher add = MapstructUtils.convert(bo, ChatVoucher.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改用户兑换记录 - */ - @Override - public Boolean updateByBo(ChatVoucherBo bo) { - ChatVoucher update = MapstructUtils.convert(bo, ChatVoucher.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatVoucher entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除用户兑换记录 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - /** - * 兑换卡密 - * - * @param bo 卡密信息 - */ - @Override - public Boolean redeem(ChatVoucherBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatVoucher::getCode, bo.getCode()); - ChatVoucherVo chatVoucherVo = baseMapper.selectVoOne(lqw); - if(chatVoucherVo != null){ - // 如果卡密已经兑换 - if("2".equals(chatVoucherVo.getStatus())){ - return false; - } - SysUserVo sysUserVo = sysUserService.selectUserById(LoginHelper.getLoginUser().getUserId()); - // 更新卡密记录 - chatVoucherVo.setUserId(LoginHelper.getLoginUser().getUserId()); - chatVoucherVo.setStatus("2"); - chatVoucherVo.setBalanceBefore(sysUserVo.getUserBalance()); - chatVoucherVo.setBalanceAfter(sysUserVo.getUserBalance()+chatVoucherVo.getAmount()); - // 添加用户余额 - sysUserVo.setUserBalance(sysUserVo.getUserBalance() + chatVoucherVo.getAmount()); - SysUserBo user = new SysUserBo(); - BeanUtil.copyProperties(sysUserVo,user); - sysUserService.updateUser(user); - - ChatVoucher update = MapstructUtils.convert(chatVoucherVo, ChatVoucher.class); - baseMapper.updateById(update); - }else { - return false; - } - return true; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java index b2dbba6c..4b6d96ef 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java @@ -24,7 +24,6 @@ import org.ruoyi.system.domain.model.ApiResult; import org.ruoyi.system.domain.vo.cover.*; import org.ruoyi.system.mapper.CoverMapper; import org.ruoyi.system.mapper.CoverPromptAudioMapper; -import org.ruoyi.system.service.IChatCostService; import org.ruoyi.system.service.ICoverService; import org.ruoyi.system.util.WeChatScanHttpUtil; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java index dcb3c2c9..a3f17e94 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java @@ -9,13 +9,11 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; import org.ruoyi.common.core.service.ConfigService; import org.ruoyi.common.redis.utils.RedisUtils; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.system.cofing.OkHttpConfig; import org.ruoyi.system.domain.vo.ppt.*; -import org.ruoyi.system.service.IChatCostService; import org.ruoyi.system.service.IPptService; import org.ruoyi.system.util.HttpUtils; import org.ruoyi.system.util.WddPptApi; @@ -26,8 +24,6 @@ import javax.swing.filechooser.FileSystemView; import java.io.File; import java.time.Duration; -import static org.ruoyi.common.satoken.utils.LoginHelper.getLoginUser; - /** * AI-PPTService业务层处理 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java index 7310b233..807650d9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java @@ -42,9 +42,7 @@ import org.ruoyi.common.core.utils.file.FileUtils; import org.ruoyi.common.core.utils.file.MimeTypeUtils; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.bo.ChatMessageBo; import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.domain.vo.ChatGptsVo; import org.ruoyi.system.listener.SSEEventSourceListener; import org.ruoyi.system.service.*; import org.springframework.core.io.InputStreamResource; @@ -78,8 +76,7 @@ public class SseServiceImpl implements ISseService { private OpenAiStreamClient openAiStreamClient; - private final ChatConfig chatConfig; - + ChatConfig chatConfig; private final IChatCostService chatService; diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-modules/ruoyi-system/src/main/resources/application-prod.yml similarity index 100% rename from ruoyi-admin/src/main/resources/application-prod.yml rename to ruoyi-modules/ruoyi-system/src/main/resources/application-prod.yml diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-modules/ruoyi-system/src/main/resources/application.yml similarity index 100% rename from ruoyi-admin/src/main/resources/application.yml rename to ruoyi-modules/ruoyi-system/src/main/resources/application.yml diff --git a/ruoyi-admin/src/main/resources/banner.txt b/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt similarity index 100% rename from ruoyi-admin/src/main/resources/banner.txt rename to ruoyi-modules/ruoyi-system/src/main/resources/banner.txt diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages.properties similarity index 100% rename from ruoyi-admin/src/main/resources/i18n/messages.properties rename to ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages.properties diff --git a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties b/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_en_US.properties similarity index 100% rename from ruoyi-admin/src/main/resources/i18n/messages_en_US.properties rename to ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_en_US.properties diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_zh_CN.properties similarity index 100% rename from ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties rename to ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_zh_CN.properties diff --git a/ruoyi-admin/src/main/resources/ip2region.xdb b/ruoyi-modules/ruoyi-system/src/main/resources/ip2region.xdb similarity index 100% rename from ruoyi-admin/src/main/resources/ip2region.xdb rename to ruoyi-modules/ruoyi-system/src/main/resources/ip2region.xdb diff --git a/ruoyi-admin/src/main/resources/logback-plus.xml b/ruoyi-modules/ruoyi-system/src/main/resources/logback-plus.xml similarity index 100% rename from ruoyi-admin/src/main/resources/logback-plus.xml rename to ruoyi-modules/ruoyi-system/src/main/resources/logback-plus.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatPluginMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatPluginMapper.xml deleted file mode 100644 index 3a678fba..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatPluginMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVisitorUsageMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVisitorUsageMapper.xml deleted file mode 100644 index 7a49c859..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVisitorUsageMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVoucherMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVoucherMapper.xml deleted file mode 100644 index e5a80225..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ChatVoucherMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-admin/src/main/resources/spy.properties b/ruoyi-modules/ruoyi-system/src/main/resources/spy.properties similarity index 100% rename from ruoyi-admin/src/main/resources/spy.properties rename to ruoyi-modules/ruoyi-system/src/main/resources/spy.properties diff --git a/ruoyi-modules/ruoyi-weixin/pom.xml b/ruoyi-modules/ruoyi-weixin/pom.xml new file mode 100644 index 00000000..3e067c04 --- /dev/null +++ b/ruoyi-modules/ruoyi-weixin/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + ../../pom.xml + + + ruoyi-weixin + + + 17 + 17 + UTF-8 + + + From e5da648941a4fe76797a6859eec524187bad1a8f Mon Sep 17 00:00:00 2001 From: ageer Date: Tue, 8 Apr 2025 21:30:01 +0800 Subject: [PATCH 02/27] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/批量代码生成_1744118848843.zip | Bin 0 -> 169133 bytes script/批量代码生成_1744118860425.zip | Bin 0 -> 33805 bytes script/批量代码生成_1744118916838.zip | Bin 0 -> 51586 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 script/批量代码生成_1744118848843.zip create mode 100644 script/批量代码生成_1744118860425.zip create mode 100644 script/批量代码生成_1744118916838.zip diff --git a/script/批量代码生成_1744118848843.zip b/script/批量代码生成_1744118848843.zip new file mode 100644 index 0000000000000000000000000000000000000000..341fc2a2d78fa95a4312625477e71df24b08b644 GIT binary patch literal 169133 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

<2i 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

l0YPiuHu~Yg9+Dep4WsRJj0Y%5d&M9$CEM z8p1pQcX$l@51E;O{@C?|M_K6sy=0p`MH2dYOa_3~iKcOErWD0kBJPb2joJiUwre$j zjbr2kl+i162(Pwu}&Uu(@sju=$E!@%m^|}8ppal9?EmlhB{SQ z1XR8Ok}Tb;u9`0NT9rmj?UIlw;bjEMUMp4wCFq@DND+OY4WpcMhI6je$-;9?M1GZ) z>^vcr(%cEn)7`t$NJykSXt+hoJ7_dXPLky&-(;7epQ=Z_Q!L2ag`iuGia*4I_0A(k z>09{sk~*qDiR#$)yH*Qg7-@)oN0Kb_bfx9b~Tg7wgc1Ux{dn@+f zV7La(nJj>PLw-i#=ix^oM>`l#-onrzlpGv?z&IIC-Y)$$TmRJI^o{+#;*mUNV=Q=z zndpT|I=psP<69dJLt6^NxnkD&=br>abu*I;&lkbq{Fl%n)qh64|G&%lZ^79=fQM?^ zO2}e3KGS-&1-OnJ5>@aoNO9_eYX(KQm|NCmo15+9q!5kpUZb1mkHg*%x9^RVkEl?oovuF37gqXWE59nm zD!HSlTD@`cCQq9cUZ1NgGc5_MyE?Gxe3rXBQ5T@temTuiPJn<=Ze|8`X7Z;~hfk8r zF*9#CSl4wsR(CcweZDK6ZlXa5bTqfG>2ARIY?$$F!MY~*r&F6)dYOKHXx{b~fz>=N z_dk>;O6ST?CbS+X$q~qk>=6FU9F9dS6-B?!qB<0~a~$$^o?tt13bxG_u6Mp_}~i0&eSc^J({v{HI> z+=lJo!O9?7x(oE6eBlWP#VlH4xxNiUf9ECe2%5` zYlpK3VFxCaN{?1Ft+I)IEQh9*K9xgaJahMBKjs2b3VsSbC}u_;U<4M#l*4xW137GE zJ5&NCVpS{v&CmwfqZb@=e*;WwJ4FFXdw8xro;9or!u-9qZ1~j^6zCQVz*Ez{&m#)l zR7)P>LjcQzCarkX0Bd!+Ojvw4bcxP`ZJ7G7s}MhJ4^ddk%2k!8jiWl=nf{oT>P!Jg zW}sEo4@%@rB@en<0LJ(P!{_z`??&-kbKuaBLcYZv`B;Kj3l)=dB$i2ruQD_!sk2g<1 zRKA_1^W`~w+f4s>ySVDr18ugzr2k5Ue($JV&wywvDSfWN8FZLNYriTggH#L(91ces z1UEc1TvdD)>8gf%lBeSEhm!^4yf{KrwpE~%Yr3l*OLCKM4GL8%jC>`BVI6b zbF&bn+%u*Q9xA_~E3uG+7ndJt6RoT)X>zQ2wbvG?xJu+$!1j>#zm!ZJIu;6nrQz;! zJl~9bZcRMA2s^yH!AsWkh-qEFOV+Bh?k6!?em}t_OqJROSs)jvx&n?9bME5=X$q{H zJjl+W4Q@`>Jf(lwqG_z|TKA~me6i*Z#~O3zsm4pYg?C+9(=q4matQ3_FvQ|C@|!IDyms=sQ|Yl1YfMlOYY@!tYZd-c z1jreaqH=hwxMhDyZv?K45fzsMMJGQCBG>_ieLj>fFn0`*PAN+cnf_dBfdsJ<+x>ZK z+GxVB!(WU!Wl&)UvcW>6&N{wQjh;s3Cn(0wKPVY_1l4;TG)TFlTY__uGX)~W$>$VZ zH4D{$rx9zgD5c~?>5RHGF6U)PhJs(^+AQak+X$07H%PK^md$-51+a;wOkN$RHadtT z$r&uTN88JdJ)I_E1~eTy{s67YQVi}*WWMbGMRooOU6th<47m8E5y<+{?;l6%L~%93 zRr!K18{2fVsi8ZXB~FXy{_VZ;X7-GPGS8vL{F4+Bh z5R9;yfs>%Av5k|AfsKKw@!wQe6Sn`*`5XE}=TE!P&&E&z!9QjV1*T!Ez+Fq$Wyoma zY=Vm!8K$#yruu@>{KVo!s-ySO#BlSepHeWD zppdHd?{Kn46(#fCHT4#OA6s=Lr;w$w#MiisYCnfB-*R{8NWvjaP2 z-8>QQy5*+0MoRs*SnC}-Pl4F6&y~$0M+6tAB zqIxLD+X7tuiZc(9JS}ml>d_a?dzK`;3gz{Dh0a*uOd|W*PV*9($3b@ z{Gk1d(?D(F4I~){NI1&ypt@i(Lr! z%;X-`dKojbWdo;nmxn2Zvc_o^(f&J%YH>~D+cqjTe;kVGAj8bnB zHuL~PZPM=i0b8e}Z5VpP1x&MRfy#aLn)G7*)yzZbfT{eVi8qS=<9(0#WbXm`c69&< z>-AHE-@n-R^V`c=!i{>!!u?ytz{e`i1c zP5}Oct^NlFn5bp>N6~rvol+!wO<=LgiUA@Z!6ZO{8BFI@6Gh9hVI(g0z-ko(1qwGm zA)%4J9r@TSJ1#Nu3$lMS-sN~li$B-RP&En7s@S{b?{=&;LQiEi`rZ=+8#Ij#;tnfk z2(Gyy7}(1-jSXh6O=nazt%y1*ip{L?O?q%l?K?5jeWn==g|=xvnIID^&+rxOiUq5TB?sh)NAA4Mg6L&eRS8)G#r< zm$(^k`{QQZ}rpmweP{>q(x^Ox;H&EbubPFkItnfi};pIR;M5j~0sY@C!?NBFUOhi$r>aUWcUgo{AjNemS2#@X+C zdKD};N=d8SL;7i@Sr1C~wx3a0xJ|Kb$p|(RewU7do(wMQauNr)k@P>9&v^6q!XOJC z!Yra939Hp4jP0Ahta+|qzT@25>2aL?pu4y3lS~uF^M2+!vjW}hWaOmu+2mFH{)Rc2 z6zN>Cvva@mI_pLop>sb7aYmpJ{()T`@n;WtLl#AQ)7S9;h4?E!{_h=+zr&3Ga6JA~ zv{g$A`%AQS`%wwTYc3~W92yi6iC#VT#cf=kamDBVgBKnNTfpMoVh-ilt$XJ5vOfc9Z zgdydqK1q}(8=6(VUS5Fe$goHialY2%^`7mKXDUZ+j99cl7s~UTCz?dpFsx)Q693l> zX&J&kA?d_$AQBAXckTbj*f~aLwrvSJuGqG1+o*~wwr$&H#kQ@ARk3Y572D4Dp7ULt z?jC(^kBt1vkBqVRTyyO;*L>z6={b=<+Rjv$1A9Gka`O_ z(hK5h^PHVWj11i)BN}dKV989LG_57s8#U=golqwT(XhqF-HuTeSx~AG4*#fepKv8Z zR{4ICsp?l%za?n@f|EU>%hM0I!Yl>B5Y(*AT~58D#~hcQ;!Vx`CBXGAzgApn1#4~m z$~a^tdhC%~59TNs4iuxgvNk@1icGKaGM9BCl0i&G;n$s^_O+us&8Nb6yf%y@2UPB! zojaLepQ_IP`&Km56tGVjqa$gHHNx^w+FSy~_@@y+l}>keEwaf4kI{~LORXyK#2@Zz zqfcfN{+>&{D({5VhMh>>*6SHS)!Y6Ije0P&T%vSCWAp;c_#8c6LhOcTLz%69ob}$2 z`g@$*{4fXz`3zexj0aQ(13Eu+?)8#0_wI6~-(sw_q4JNNG#6t-zYvKZPF(HzX!KWm zfQ89PehBto-AS})%4&-h-~;bQd_a96Y8v}JxiuesQ7+-v5>`YPMi3JPHoL{M^D17^ zO2CGo5c^OXDpNj`x-F|m;n*}qT_$U!%3;MW7sHt@&&#J|Nzm(X?r`X=(e0C?-?wTK zA?YYl2@k|UQLXrnq9Qk&Jq7sJhl+A8eQiIIX35j0-)`1aZcTfSE^I%O9F|l0;k0^H zkWD=9jvY&yFxY=6tkd$X<^iXV6%RkbMBrgiAcd6FtZq#yG^`wjXmk1Vkw&DCt~UMu zsRDUP>cq2vrPKYl&78b{zq9-W(EQ7~`75RQqfQc32r=Z<8_+de&lM1Wh*aR*P5r)a z(?Q$1q3&|nFH#96g;q%`X5|e;WLpp(vy;B;hID4~@%-WI6ElEI0|K7}57#U{#15@) zJ>v;2QWSNMYlK6&l5hWF6vA9SJc6kWjr}o{drG+R{>am_#pN%@7d70=M;xdH)!ZShf@4k)NdmkYzuyvag_iyR}KqD}lG9lW377ZI0H2Z^nyV zo5Uqh{d`4h?R^9v`ojt<@=gQ%g&WJ496k^$|7#jUXN8@P0KXXFUNzEKp}1WkW#3!? zlN}mbMdcS6Z1Rk18!u8sR( z<_?R_eJO1@UCz~sm(sajxs4{;nK!G~GV&r@;qwCWE`~G6qJ@HBH0ZdeLqF%RAEtk| zj*QCd{T@mxa#tR&s(eSX{!1GE@#A+D9T;e@^WoiZ1sAJGp}LIb!($ag#4}1pl3V<< zyWCCw*DTiRS>5P|sc573+)mGRk%f+`k}ZZ8WRGsa9*pwxNPrp^Rxd2>rUeD*Wf?H=3ngQ{|udf1DvYg<<`X!eY$k( zyjj99Q5zM|AOiyVGok&_C9{_fI}IJ1md>hUGKmXGqcxD(EDDRwg)_)SQI(TGj&Xz{ zUQ93GpD?nt*D}v}w(P$?`S-PNjdQ$CT#T;{{l>0F?sr?*2ey<~WDO#%rh=@QV`eHl z85cW)843LPCfg}{klq3ZBSkH&NH9F1Y{g}SFQs)u zZH3uq{B$cL=(e{GnOhv3CS{G@5Ah2HGGRTb9|d*2+cL>R*gY42yf5~KWjXkOj%BKN z^lK_k#EMpTwXq@Ifb|dWoGTcQ_$V$m>WSgbg(0W}z@!=)eGt!KEaPPp`r>SJCPy2*u@&m;ec}hfaDy7$!srui zam&DHX7pz_RhakzhT?&Vjk=9#iQsO2Z=;`g$i!+(WpbiOMHE3r|O8 zz|r{+6?=1+0&D{B4i2@RH)o+?BhjlaP7d(AJs{4S zmM>GT41(O2hpm!43Ugf95rbZk?fNBFL{&0b11*1x-e^;Et2*D3b^XN0H7e(paSrCi z8?2NJTa^`G(icX@5jjkPe!li4DXnj~AdV+X7oQv?Zws&V<90zdQ=`>r_CS@Z!Q?{n zCrR>d_81-HL>QZg9UM+2mUjCwFIR@7FLJ0_@N1S;^-im&Ms)4%y=3obxG{-e2?HuO z!(;j*Ii_zOAc@D**i5~c zPE#CZEdxd~JvtMRB&qlBn$sCkNXxQV`8XWhw}zB3awu`p{;U<#w=XlL&tNiO1nI?K z?_C7Z>2lMeS9#_K;gpUi6((~rbih)v#nGXA^zQL2Jd}^dvH=F0Q9E{(k>ljD^jX=_ z?gmG8VAJAxO_1Jer*ezIQQ@AgnA|n;GYx@g#AHBXUHc|=;joW(ELxOfFYvH3EHMHQ z{e@70^u>tRjYI5s2CCs8c~dq3?`-DgB+B%%?`T{50f?fFtNV4{{l!#X4Zc{5H_92& z6EdL|I*u57?XJlIQj;}h;_(#zy*H56th|hXq239Mrh&clnfxn_oWcraJhT@|5~Nn7s{qXV48oLRo1FwL<1mC;!qjhPxU7zB#9(VT*$K0u z^=$cx9}t7hkue3YV%L88l;Zvd?%eK40?Q?{eQ=9?x=e z6u1YPgSZP^WcAdc!XQX(2KV+Vq;923@AXRDox0rLJmak@8$WCB-w?@Ve>|?$Z0+L} z3=vHEytOvIKb$RW7R^B`$9;9k7`71rAPX^ZCUj1^Xq>@O#hNy{~Kr8_}|>J$p3K5Dias=IM4b8aYp^s zE&D|Y;Fb*)Ri1~5g+>HuM1x}$?sMu;9=o?9sJK3pB5I)>q{{&5$P#D`sumyvx zd~n!{a$Y6a9&<5huX-F6gnR(GEW{sj*{>HI52Ux-{;@JIKqn28-W2C~oD0N_ zt%(yhwBV+C86G2ef@u)ChP>IK@kAfkVBL2vYL6}W>Kr~I@XG;H_kF&n_>mW zqLkTtAMiU!LxTRuiWaK3ig0`J-HWxw$`c~-Lw`A+< z4f_#zL?nw0c*|Rq;K53bD%IrM=>=vO>oV=OmooKu&!T?|q7zzrNYk;_gSTZNxIT+W z6Tgr8?j8|$jBEqCfmy%u<9EupE%=J|+DX>6t4F(mUWYn0LNSMrx5~#O<->($j3Eh( zEne}sxMa1`$6!)3$l2hpM%w^Gqv}@Y&zs4lq(}KCElN1a4*AhzuUp|`{gHtP%C?CB zpp0P+wI6}nCVfxn=rBTRuB|dwDO6&Ey#yX4c7AmGl*}4S`}%o;S3T_3Y1WtaIjy9j z#C49_;`GF_2SO?WZ|gknOyZTV`|X=EHQ}QUciN*-IF>{|u05y+Pw6M+U|D~*fK%a@ zVL%1P?RVyswPp0Ds-^W3JJ*RqcuNI*)QIhi#7hLg7v=Q%ZE~Cp24X!V+jBTMklfg( z_RRA=x4#aotTXobQ(f~@W;!Gvtb*SFt7B>!>W9xOzW=~Jeke(jD<@cRK^9PstL~0t zLq4GE!9(sECgRyy7S6nmVKwNZXE1LWF+V~%gR;DZJwS~A1XaJeB_`-F7M}qolO<~*MYD@Q2Z^z~yi}26mCl8nFHT7M)1I2RY&aN?14(qS% z!CT#o6s+H)BZ}GRvVK2=80MMN-`$#ax$1i5V2!3wjNqEW)795CYGXA>zo;0hZj`o_zELqGOqflDbdBouD+aIXSDWt3!>%Wj=I33BoaWO!5HdQsme|h=v4{&!wnNloSG$im$e@!>_Bb+#_3f6Hur4)`Hn^8Xx7~! z|J-*xnu8XBB`DEY7M=QmcF!(++ZZkcic(r7A?OHlpt6u>}?81Ou2kTU*id|1Ft9=Hyhc6l^&g%dG)P$As z+Lf3iZj19QHrJS$-Z!fdd3b3;;oumztTp^;#NSE{;RSh|dCQ=1;Hki9_6w%)j2R)> zFb%3cgtWm=1fI}gZ_I7TWxNoY@*#3%mJ6+sDNs^nUFNDf>;sT8(_yNX<)!038B zh+z+X2Ax^Z`3E8Xx5@wk12-r_{eo9<#0H|V71wq{M36{kn^9|Kq@3*6+S*kP z)2J&+6K*GcL?+__{3Di-%&P}HngzG4TXMkl-;+`G#~3;SX(+y9~q!9K-tK>G6hUkJ82_HWea_L74GL%C>& zoKJDOtF))C!9Nd9>;gC#?SO+*=-(DE{_O7iuO#YULg8OHYG-`AEQk>5A2o_OI>M2M z^`ODY(&*?q%nc+8eTH!||7{iWpjpv^yzfjFmE9_E*TyZCfH`IK+ZO@(s4hI8A1sHT zlU)6^bff;e<=s(zNR6=ak?Groy$#{zCTPgZ*hScN%T26EAz9%#?i$OAgXCMH~NhJaU_t z`O%cjxhH(bIRGj(9TuBPBAZRDhfQE6&seenTAx=5<0kg1rrPuXguDn9WI}BB;v9oe z*DnMF5jB&YVdooAfC_W2Mdc(XJL{dZ@-1?y`IeEMkJa(4>Y(CCiGCUt0_RBOF0FaU znkQ}-o5%!Vn;brH3Yo#WsESD@ay=}C9`qj296_8axQf0ExrSf|(B+N0n=4))jQ??1 zfjevADHH1y23Bcvz{tYQkg2g|{WG|6fV_QTkEg5C^^Gd3z7*akMf4Ngc&+p6%&$*; zlbPP*mY-fb`x4;_N>c-Oy%BDaDKg?cxS24yt_(&tJlg{Wl6iw}_JPJ)(86yBil zmABRRc9ROFSS*R{qa=q|73*i?@ROyn4{$vZ>Kuu&=$Wt$i^V052U0Ji>Kv!=rtdn$Qo6;T^}P*U9 zeP}u4yu(s2US`$N&V9r7@^<00oEWQ&cviT?|8pt-p|{mMw?!So`ux%V$!JCLEbZl5jEu(Z1y6|xMFrI`?IRQxWjl08<=LLG z!PkXKD<%m_T4qdxxJrm^u-|YeVqGo{3`_bMbvfyE(lu?mX=D2E`)6d2uGQr@?>nPP2)uM7hjvVYpDeTuPx~s6_Z;2ZOxegNmKZW}vC7+YU^e>Mzi{ zN~WE;f!KIc05E?({XL^&fn%D0_f{v15N$~R4MeAD3@0)B9Yy{4#s$f5!hlTZWwi;?LeZzSA3(@c9@7s}5<5X&k zOA-4^#143e$c5%sH#|CC=c)kEZAO5`b|ughCsw#oOZs;<6^hAt67Remp4YbhM^6!_*P$n69! z{GWxcww{M8DS@Umqp~OB{-&;)HF`xt>81rl4g^+b0$P{euSGw9SZdGG3MClE7<3WL zta`My-#>1iERMS6n; zVzr32q-htnL0&{RN97pBvfnB6%8Z(GERLjCU^YSlI|t;Ye@2yAUreSC#XS?S;W{v{ z*Vg4?d({UDP~r}o0+hJYP+v>y0x6IIH^8=)usT);_G68DOKDumgKBhBLebMh zdLMDCGnLT^=f3iO)LmJQZTid*6xJC;!(6!8BtoI=Rgs1}3Xtg>b~sIAUzUTn;H=gR zQwSAY@$d1ycxIb(4|SXo+N;o^L=+$A*rS0mR#}a3Rzs9y+i~Mr4s+W|CZr$+fS_3#cMZG_uHRt>YNUrc)PTi^h$1g6d1 zvJpL679`Ouu8fMNqtz7URF>-A<;{*!_z)SBgcDDnV<9Ci=~#1t1YHo`Y6wuHk(dU- zfP{_#k6d^wBZRO3Yb9QQDdM(>1-_djutsI!HHXQ>(`oxH5W#$|T^rFlpN5Z~ z9h;gHKr(y}S6jfOD+NCphEf9=@CT4_Rrw!#rkxDGPPaNp*gZcp&Nt+A&pKMzmbC~f zwK0x=cKP5bS42RkE~E13;8YeN1ybzR4dzs~NGJB)vKF#f32Q$kBzzF#+H6r&!}U~5 zx;-f1LM>n)XzN)6y0!I2va140a!(N{<)3OqO`nzvSFkoUbvX+VO~ywX15ZcJQ`H~O z%f@(wr*q^lsW3nUncfXcr#de26BZX{W z0kNHNHy3|7&48TzZbL$roL{QBY+VOCquCkwBCt7LJik_mr51|X%eJYYCo7 zi3SiEFb#WothjKKLS=9zey>8mfFKZF`Z(65OQ2sQGBNcYWGDc2oRqry*6`C0r+bvD zZ#gohmN&PH{RA(16p|S^cYJjg}+}t8mGMunmN>Lw`QFbYI?R>mj zh}9VhAQToar^?_O8AIS=;i`TX`79TnjLhwCFdxp+C`}$^_LGUMktmkEj;qJ5l~H{X zioNRcZ$Wu(+6xv2jgH3St*yK*s2+wXu?xZ(*#kD<6tLisUkbL!ZtFidBL$kmH0f-N z(uW9S31O>E%UsCQa*$QB2=77V9EnZocubI*e^19b1`$DDYEY@S=us38+G&zw@3R0@{_Y;3$HC_%mptkT{)T!=dgrDOBt0Qw|F zgp1do$%qbVlqY}i#nFf}*wWpc$BBCF6GQpt7xd0sixenGAT79bEGeFOBl^jc=aop zE-a;|h>p2Q7s@_ggPvk?ePSTUJlL8`|HckAo>;Qd;f+OBoheeGNc%XoD8?qdJDj;T zbDR?e)v=^9e-w%-UXqAQ14>CYvCT1}HCpv6IQSK6YB!|neTGSZ?l%--5rAI`4tMBG}cnZ|3VsoQoV)u!nYxd?W|XnH z{3oBkZ&P%wEmR_2pdeXqpGv6F@={kCCJbP8POH4=_|0c99m&acb(W~X6>Eu(zl5`c z3q{v^#vl*Dx0;At?~dW>r?`DDq{{Q|Gc1pX4zy?oj04p|!SYc|t!0)_dkdBeshn9P z)K*k9vfZPXGC5t^Ih;)JeeCj?*IkiLOLe=QM8*82VVf)Jk5U2gdx(*+@4gZKfuOE|6@4UE^O_`!8FltUgc=m6nx2QHsN7`6)ddYgeGflwnm0fQ+eN4puJ?T z0{v{4NCxK-11JBcY9-deg9lx91EQ_)C?WO!c%&Q)H7OnNImE9o5p1Cy1 zxo=&Ms!J|S915*87r1GjBpl)0a-&m z(?4wnNAR%rwDCem~9PyF-Vr35>6N?#k|-q=|$6 zriJ59s{7b#^055GthBwbvH5yGPQvBpQ_}o`SsTq3vWfn4Q`~TI`yxk-+PC%N&UflE zhD;>hJ#3K88wizRQkSy$wt(b*t{}n1`^@S?X6>tKB*X9VK8k_0o4vLOuO!_icw=oJ zPL8}LT0#H$VA>PyyEt*z=c)>Nb-|LSr35zl7m)LA-LXb73avLYt&>UWkZK$x&8d@+ z;Iknm?L?EgF9>gca@d*#H!v>%Rjwx6-<>AN041US!D0W;)5ISz_IJQ#JL1sRr6Mfl zK5UO?Opj6nxKLfAnJ!<)H?5XVKG(;7yNQH``#SmBFujav^qeRJ{&1fR9qF!M&sH;= zz2Er?Ej-H`X`kb^CN@y_02UjEUl4^W7PDk^upP)9G+ll#N?3m} ze_W`U(G*iuQA>xq?D0KtC(-z|f7K+BSx)_Q&^GCUJEA*j@9Yv!_-m8Sz;I;{;_q&QNWfX^fM`Ng&J<@UklMDyD1;`!3l%+90EsdUz_ z8*3ZIBVVzO14_^fD9k-Qtkiuqm=5c2sb3yy!)Qdmvc#1q6DYev2!j&NEFqbkQquHU zC^!6?n92Z`Vhs|tC^As5hE}00vmgb|<6<#oMKPlko^So}OUqcKo0466Kg8>*&{j@V zu9+K$F1&CX!fb&$h+D@*(KAb6BT$Ztcej)x=Awrr#b%{~DS^|N?HR?Rlw)#zG#~>$ zd~SW#{0Dvh!|_)eD)^z~rjWX!7p+!x2F@Q?JjoKDuecC7P|yCuS<2sQ`k8)8$gz>5 zFCxj(qYe0qFJC3$@aGV_5s5lI-ELjiTqDLD9#f&7eqF(bhk)cCd^DB4Iaw78_xMOS zID-G<2%7u_`^PTe2>S51NH)cP3Yvd&+2@HuQtN^MhX0ic|BjG0xbsy1`)a@!O|fI| zbl$%0N$J#a4GfwvVX3B`3Y`2za(Ump?7Siret?vr~aB9f`J^h{7*X9#QQBeF$%4ORclM2=H z^eA8SS4FB1Ag9U!^NLQ<{4^TVv*d$&Vvc@p6xnI8uuysMMD<_V6{XP`5L*RrP=M{O^^Wz(>@lFJ!w^MnuNJ6SJ7z6PxqqMJf#tAUQ zkHTO1Dpy{Lmycg&WRcH5I>D+7?J|DgMe^v5vr4xt*RmeHOMB)xFSoCIy(1(Qsf%I7 z>SweDK)W|Jc;>YeOjyC4>>m+RCkgo*&t7d1act48Q9_>ktZf`7{IhEP@9twX6|MSUWb$ZJ+@x;8QO8bwx$^twbYDAb+;s* z3}v-5h-GDI4-*V?o5W*ZsCo%Qp9CKONk#KXM0FUF# z`Qs5`j$`d*t_;3;w=-c&;07y<)QXd7r>abPisp}4si`k7Tmr<(x4-Q-{9o*8e@!v} z67k9bWC@sqfN>9?_$qnv55!~&at6mjNE#i9_)YBzMn`7^6bbA_sKgP`4MaT@pnzPS5bPo_*z>+A3aT@o^D3JJ+_MI#`4(fx)>Jf| zf1Y0IIpZ1p8m+e6&+pxvxS-gl+a>g%KR{>p-E6u)$=b0D|gr#Vk|*2Qe+k1s#5C62v11Qjggk5<*ON)UlUX5 za?yC*P;pOB!%T*^m!7lsN^|J-YRib-SNasmkxW#-9kui^N;0W=y7*Kkm%}BYE3F@A z;9zFqI$rL)?K*pNOINYVoFa7m7Bf|RvuXY={=yoMQ`{Jwm+endzA>fSd7$ayjR{?2 z??{o5tIFVET9Y{mXA3bgk#R8<@*1LBRIs@Tyk%#pYEzaD^)|sxQK=1F=`koNQQ2^q zEZ1@1TJznBeoXc?HR+>;fZl83tC1P{Bn~;po;7>eN`3hqM-m$m&;Feo{nre_)i;>< z;MKu4WqFfs^jULuaQyKI!@@9w&rHXalZDARdVn3McX<6v_gDPjSWG>`Z$!$(`-~xj zORxzf!tezqv{XjIK~bjR(u6ji`r_BMvD*QU!i-TM>O!rKA{sXDb)7JSQFrvtjg_D? zp?SjnjmWe%4Y5%fiVwd_JlB1geq22!S@p;1OBk4xdM?w9+)foX8d)1Ni?U0Z9|7C-}`&)=>E%75j}{{r>>buF0N7#X|K z1B!P=YMQn# z4H_FQfE#IOWaP)>K^udO(VP{;;R>SbH{jj)RDTs=~#s>Dq8U*;I&pXpEJ~HDLX( zIen(Jpi>pzLe}Wv0wq3aPFc$r#O4RlZc4W)-m+G7Ln+`HiEolF69eZ8bQ{sGmaAcYJcO1 z$1J-Us4Pg2*VTgJZ9B3e#CadtLo;}kL9H?G*~2R4Yqzx(5(x9VDri+|Fu@H15=|E@*J!?>7ADb)1v!+O&!IMGDpvUtbaZK}fp_<~(1} z?AHzYPZ>T>ZyfcF^;4cw+uu4{RZ!aLA-!2V1<_M|o}m;OQ*tW481FlmJBt_2emt$> zd2H$p&vcohF)_UbuaxVbUT(GAyiXEOPAsdhs>6ooVfUB(qWXVPY!o);pqH4 z(3kk|F~2bRmf@Bj3@!Tt?-LkQhje|pU&d~aVtiqi@N=xr`z3A@)ed0$#j`GCEKu+! z2EQaw2(twujfZo}zK74c1pN`+5+bSU1 z0*tL3D_>AF%wJCycXlwNEWB>qFYnDWCnfR0NIA7)3dt`Mt~(o-Lu-!)ABp3CIDVZp zqg$mKzvV#58Ht4qG2|-TRXt`NZMDy2z3yRXQn+6B2;FVBn^}V%P{Zb4J%yhIM%VN; zR@t4~G<+DnogKSjco^VG;#I#>yf`YHfB_u8L>HT=L05GWyRnv>+tp5H{)m?$IE*A1 z@n76b6868P@Ets)L_YTu?D>Syh5zCBU15^<7CZ4XBP+Glry=~w83MC7JB6pa?=4O4H!CkkZVdj05#Onm z23WL4gc zmw}qgm-W9ZDL5|_cECH&>`>o*6U1WDECOF~PXkONLR2mbr#Ev>R|`s5`srDovp1j{ z11D9_B&8v$+)GiX^OFY!Ao(4{8No*_0yPFvL_y2%r;duc%SO>fd2eIIh?H0S3MsTO zsPmpw2c+UiKek&wVofJRQL+xwv5^0YGkw&E$$QZ&)6#Ub>jA+Ny)avKX1BsX5Z&}R z=*e?UED3Rj;ku~>e5n-4slACKs%std_|Uf(x-)p-8}sqPr%e zQ5WqV*7}sR@6ISIRd?B#()*n=;?JMXoFC`cS5I;Uoz}}wGkx!7-Zjbks+0M5W%Pq0 zR8S{(Hj_dcbU7v;%?(eQq9qFEJ)+mNYMXeR*5T&iPE1cpg{YDp@Y_-lupbr@>DI<9 zB3u>` znuUCNT5!FNZLS`t)84G9(S(64`Fs#Y&q54AUzsrbql#F@hES$5SC*{i^-nkkQcjCN z3UIG>`?u6R>wn&$|FT*Co4+4W({#iUL-$##IWlX`|0bE@?T4YRz|I-ufJQ`R=w|<% z$2a%Wb0ZzA*fg^xs=RkFqZ?vx-X+hh{2Nvb>1QP01|Q1_mb$S1 z*qBu1vE#9$fNqIPxzZ@!ucsnUSDdw9Xg)Wko{uwPLzX=`lcBEiwvPfE?-_#UUak!5 zPnG~3j~VPs11=(|`{NS)qwmpr*Mj?-u}xaW53wH)0_W#ec<ek$k+mX1#y<-mRz{_9z;6?@S?hPF);I7Kv96%EYws@Ae~T_1AXF zPrdSP4bLQ>y7AwrY6YmwICT&Ie(pk?ldzt@%S5LxoTxz5F%Jk14p(zPOOqXg^D;n- zlSmK8Wdv2s0qB2=iPMReya4)NQCk#8Cq<|NkKW3)vn1=eJ3NP5OIPLurUBmoAn+Zy^L<}yf5-c1(^V3-_)In3zncKglT+GX;|yXc+2$_bf|v+g zor!jIL}A_CbAA2s-L8jHN2QepCGsVhrIhm13JkZ9 zKI0yc#*&{l^edCf;dK@99j2xl#p~M`Dl77JEaN= z-w>%17d-J7{ULv))^)IxI3Sjorl6*vd$8)+tv4#85u-SgSdsWhTq3Y>ApFHb0pjJ{|cJ1uawSgee#ivnH zKAckPc=~!ZIB1qt=7F#4Y-(8WI97^S*sf1I@MWp*i)ZL-bNlNl393XV>yN?7hrJml zzTz)KKb;=kZ6Ebp>O7s^3v@g8mih4oraQB82JCRFy9B@op+^P@j z&UAUUbM$rk{!qd}$f?uXYFl`=c~vtmYXs)ex^uW3Ny(a8>ecj|aclX+y((eHR6(+$ zqFz*HdM0aP$H;|O85fgG9njxeBm<+7uz+h}!uJ_CYR)7Z(DIF${1w8*MixR9vD$yu zA$2I2@WW=mlnLt~_N8}W_N=1jW2BQ^HC7UIFc%c6P8Y^Y_bx(fz(IsDG-2$4G;u0k zsbB_|6N0+m25AkQ1fUIuilqFpQK&;hR3<0ZeunIcJSmpSq+2IrBu@{Y0FF?#COTO5 zuW6Hwn$>RHU!a?>Ret)L9D=j>U zQ7~$DXlMuw1&pJtf;USN%=rUi=CDI99WCKrr_i{cyis2xa0F3Jten0!@N8Y-8{sI# zV0(TjW#*Mr8*x(O>xyWJ)MxArSVfZSC)+BIugew|cW=;2FKJSqDk-++3eX5gmM0;Y z?5=KVyQ|KY>xc%IM;qrD$?v1xUAWy9Lz;GAjv2cqr^*~DkTftLYr0mAQkk|4ngJO* z7OxoczKIrJVK8P}EGMZ$uQ@b5R5%2cJM-|_rX*wJCe>Qy+(3{fez^fw;B*l617q|q ztCaLlm?#%6C5c*$t+DZZ^W`+_cstRUemb72IxuNFGe&pz#bYktX^ zy>9ocB79=>E&8&DQDPuaH;e1W1z#Z%F%Hk}54}t#-k^edEz|Kz5$=2cjk2>&sc%6`qk8lw0TOHAXdd| z&W9lrc+(kQ#le=l1=q+&IRl%cgfyPt?9VsdxvbBE$-9tsBm=1jjKmRFi!t^^MxAX< zX`bC{c~WT_@>pp=sj6K&TU{(&B%Df0sU@W)B8+agzPCrWp++j)AIhZ&$X*U_F!mi8 z=SxHD$F*~Ews7l?LO~a$R6i3%w)`Y%hm{o|&hHw!xHf;ke^;1o<*T_M>hkS)^8Oih zS2!bwJhEBW^+zG|L>h1PC!ml?2>N#+!TEm*iGR)&_(xRybErVVlm$R7J$QMGDkD20 z?6H(fNZT7yDNGnpYgL_RQk+HCT+)7gtgarmGAYDrr9<*Tx@ajB8)F9Chm;=e;sxS$VFoxY@DF zgW08lVZIr5aE=t|XvllHHQAz!7x`PT4MK!gQDZPkR7YbIFCNzyDokoei#Tq$`&ieW zp2`XaJ+MqYK7AykcK)au!bF2>!wY#2^x$JwoM=BbHG5|-N3ZXhxag_`6o;V$B{>62 z1PQh!wE0AM@?2li2vELtwt=?dn2ni%1|{Xg4u~3QR#kn;sCvz)3PrVqz|(b@E+f#K zPSbYY@RtcPj9GqDxcVxbYz;<^Kqg-4rHKfzYH=hGqm3F{eT<$tBQkPlQLFLeM3U$l z9cbd!9hM3z*edt_RA^wZ5+^yjbSeAc>3JR@&pw<3(f9OFre24kV&M(OjIpoP=Von4 zw39vMf6ZL`boFuY=0Ijf_71b|hz?anh&Fb0T2L@jv#_1ifR7(Z`_t^rf&MU-dxpmN zs@H?RiWIJ^m?MWFlEGH>REDY()K+?H6#H$Z{qz!}Vn@oHZ!-e*Z2I$?ZNSzaQTM(u zD~$*!8KVB}Rm=Y^>i&uA|0C-DWgnjUhkaNTmam8?D=42ZNYDphANGXG9vi!GWHE6u z$xMR_Q9uL(&ua*cAbgOgRFhNb==Xb?GRk5U55bvW`Gtnx&wlzV4 zZ3;GaamyMag-bgh&>l^bALbN+7XEq~U&Pper1=b%DD0ipYdoLi{enpQ*0tn=1j+%2 z#0xTKIilC|i2IUDHw|ouZq$gE#;C$WZ)rBus7;T~r$9RLWaQxx*WsHGB_J(Mkl<=M zvP4jCYufMXeaV%`m*8?ySk?w#cm7Rgy(s@6)w=cNYZJ}dV>9(*6E(uR&Pqi|iw@rx zwJZNy*|QfCHUsCV3?1(o$DRQAnYM!8QYHLf3?)VPfEs&}QEi%dDCJ8g*>1+&TZE}E z91aqs-{t&^NuOr(Az{^dp;jJwcg0=cjwzAR-_(=pTYu4<+l;#t2^-GpDv{vOrbfY= z*7(Yb?;WRHi-!kk434%Gc+bM8ZhY(GV&qyLAElgtpgJ_95;pxlu|hr+IyaTVbxQta zM)x86)aKC^tS8?4m_GZ*!Z;FC7~_k_6tyY| zAP__THW0b~KK=a_e*Z@l{*`=>k@DB~Q> z3D!*SjB*V`>=v?adWYQ<9tjK8QsHr_eBJ3cfHw)LW}<>^lND{PbhBs(Nor`Ai9p*1 z0N)EL&VS?H^9F_goPO%M;(NT|=s3*RyKHUxm6hL?s*)#w>FFO=y}0MR(BIEK&J2p> zRPp=qrry*0M8y{8^YppE(_L<}#ycc>Ql0Rgw9JeysT8ch%ZYUu;mfoAYzR5)+$h?% z1zGDrfL@04Eyj^h89m9}ciE9WV?Jl?L{c%f)oOR_aJE7veAh*W;JEvs%MlVjN^wTCwuRR#IhI?{R=`3j0T;+gSWlL@(C0I*@p}eQL)^6Oa zP?Ez6v2pxnqiN2de$R|yQFZAn48bXatI~iX)J~?x8 zmfcdWWOM;@g+f3bhC2W$i;1|2lK!QEK4aN!t&(O`k`mK=SfI|UNgc?t1#>f?WJTdz z(-0&SXm=@N4btyaa=Y9)x^v)^GgVK^JA)YjS6D3l=ia#O>wTj zUG_a-`dm9tMw+@Jj2K9enV{HjL?2eV;9OSWB*Hs%hhu>~=lIWjTbHE=SRD$ce9tQn z(_fE(ANN}mVg>71ZZWO-x-j=h{gwC#2sMQnBjpHn#An4K-YDOwSQ7KvcY730F-%I3#6;OBSjrp?Mi^ijdHU!6o;q$K&3S@a8D6;%#?# zN0iHIm)vg=4Fi@W7A!YM6hj$7FRSzR(7VrpLEaTu7e0FyYfL|Ja3S^m?4>fIoIeg3 zZNC+g2ld!m5)_*{JfcC+Rgw%0AyG>4%lE+1$C=#OVX~hT9u{#2RXO(a?(a+2ADW8( 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�G=0{z)GA)^cqN5F$r=)3}d4I5&Ni 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 Q|M5o_3IHJA>HA;*58_h~00000 literal 0 HcmV?d00001 diff --git a/script/批量代码生成_1744118916838.zip b/script/批量代码生成_1744118916838.zip new file mode 100644 index 0000000000000000000000000000000000000000..c59024f1172e8b08894d4089aa28882ed7e2fc08 GIT binary patch literal 51586 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 j-A@jDiBq~5iNla3 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 CdH Date: Tue, 8 Apr 2025 21:30:01 +0800 Subject: [PATCH 03/27] =?UTF-8?q?feat:=20ruoyi-chat-api=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/ruoyi/domain/ChatAgentManage.java | 86 +++++++++++++ .../java/org/ruoyi/domain/ChatAppStore.java | 16 +-- .../java/org/ruoyi/domain/ChatConfig.java | 20 +-- .../main/java/org/ruoyi/domain/ChatGpts.java | 25 +--- .../java/org/ruoyi/domain/ChatMessage.java | 40 +++--- .../main/java/org/ruoyi/domain/ChatModel.java | 82 ++++++++++++ .../org/ruoyi/domain/ChatPackagePlan.java | 58 +++++++++ .../java/org/ruoyi/domain/ChatPayOrder.java | 68 ++++++++++ .../java/org/ruoyi/domain/ChatPlugin.java | 5 +- .../java/org/ruoyi/domain/ChatVoucher.java | 20 +-- .../ruoyi/domain/bo/ChatAgentManageBo.java | 96 ++++++++++++++ .../org/ruoyi/domain/bo/ChatAppStoreBo.java | 36 +++--- .../org/ruoyi/domain/bo/ChatConfigBo.java | 24 ++-- .../java/org/ruoyi/domain/bo/ChatGptsBo.java | 39 +++--- .../org/ruoyi/domain/bo/ChatMessageBo.java | 49 +++---- .../java/org/ruoyi/domain/bo/ChatModelBo.java | 90 +++++++++++++ .../ruoyi/domain/bo/ChatPackagePlanBo.java | 61 +++++++++ .../org/ruoyi/domain/bo/ChatPayOrderBo.java | 73 +++++++++++ .../org/ruoyi/domain/bo/ChatPluginBo.java | 14 +- .../org/ruoyi/domain/bo/ChatVoucherBo.java | 36 +++--- .../ruoyi/domain/vo/ChatAgentManageVo.java | 104 +++++++++++++++ .../org/ruoyi/domain/vo/ChatAppStoreVo.java | 26 ++-- .../org/ruoyi/domain/vo/ChatConfigVo.java | 15 +-- .../java/org/ruoyi/domain/vo/ChatGptsVo.java | 27 ++-- .../org/ruoyi/domain/vo/ChatMessageVo.java | 61 ++++----- .../java/org/ruoyi/domain/vo/ChatModelVo.java | 97 ++++++++++++++ .../ruoyi/domain/vo/ChatPackagePlanVo.java | 68 ++++++++++ .../org/ruoyi/domain/vo/ChatPayOrderVo.java | 80 ++++++++++++ .../org/ruoyi/domain/vo/ChatPluginVo.java | 7 +- .../org/ruoyi/domain/vo/ChatVoucherVo.java | 35 ++--- .../ruoyi/mapper/ChatAgentManageMapper.java | 16 +++ .../org/ruoyi/mapper/ChatAppStoreMapper.java | 12 +- .../org/ruoyi/mapper/ChatConfigMapper.java | 9 +- .../java/org/ruoyi/mapper/ChatGptsMapper.java | 7 +- .../org/ruoyi/mapper/ChatMessageMapper.java | 6 +- .../org/ruoyi/mapper/ChatModelMapper.java | 15 +++ .../ruoyi/mapper/ChatPackagePlanMapper.java | 16 +++ .../org/ruoyi/mapper/ChatPayOrderMapper.java | 16 +++ .../org/ruoyi/mapper/ChatPluginMapper.java | 4 +- .../org/ruoyi/mapper/ChatVoucherMapper.java | 5 +- .../service/IChatAgentManageService.java | 49 +++++++ .../ruoyi/service/IChatAppStoreService.java | 30 +++-- .../org/ruoyi/service/IChatConfigService.java | 16 +-- .../org/ruoyi/service/IChatGptsService.java | 21 +-- .../ruoyi/service/IChatMessageService.java | 7 +- .../org/ruoyi/service/IChatModelService.java | 49 +++++++ .../service/IChatPackagePlanService.java | 49 +++++++ .../ruoyi/service/IChatPayOrderService.java | 48 +++++++ .../org/ruoyi/service/IChatPluginService.java | 5 +- .../ruoyi/service/IChatVoucherService.java | 12 +- .../impl/ChatAgentManageServiceImpl.java | 120 ++++++++++++++++++ .../service/impl/ChatAppStoreServiceImpl.java | 113 +++++++++++++++++ .../service/impl/ChatConfigServiceImpl.java | 114 +++++++++++++++++ .../service/impl/ChatGptsServiceImpl.java | 119 +++++++++++++++++ .../service/impl/ChatMessageServiceImpl.java | 115 +++++++++++++++++ .../service/impl/ChatModelServiceImpl.java | 118 +++++++++++++++++ .../impl/ChatPackagePlanServiceImpl.java | 113 +++++++++++++++++ .../service/impl/ChatPayOrderServiceImpl.java | 115 +++++++++++++++++ .../service/impl/ChatPluginServiceImpl.java | 110 ++++++++++++++++ .../service/impl/ChatVoucherServiceImpl.java | 114 +++++++++++++++++ .../mapper/ChatAgentManageMapper.xml | 7 + .../resources/mapper/ChatAppStoreMapper.xml | 7 + .../main/resources/mapper/ChatGptsMapper.xml | 7 + .../resources/mapper/ChatMessageMapper.xml | 7 + .../main/resources/mapper/ChatModelMapper.xml | 7 + .../mapper/ChatPackagePlanMapper.xml | 7 + .../resources/mapper/ChatPayOrderMapper.xml | 7 + .../resources/mapper/ChatPluginMapper.xml | 7 + .../resources/mapper/ChatVoucherMapper.xml | 7 + .../src/main/resources/application-dev.yml | 0 70 files changed, 2722 insertions(+), 342 deletions(-) create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml rename {ruoyi-admin => ruoyi-modules/ruoyi-system}/src/main/resources/application-dev.yml (100%) diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java new file mode 100644 index 00000000..3205ca4b --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAgentManage.java @@ -0,0 +1,86 @@ +package org.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; + +/** + * 智能体管理对象 chat_agent_manage + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_agent_manage") +public class ChatAgentManage extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 应用名称 + */ + private String appName; + + /** + * 应用类型 + */ + private String appType; + + /** + * 应用头像 + */ + private String appIcon; + + /** + * 应用描述 + */ + private String appDescription; + + /** + * 开场介绍 + */ + private String introduction; + + /** + * 模型 + */ + private String model; + + /** + * 对话可选模型 + */ + private String conversationModel; + + /** + * 应用设定 + */ + private String applicationSettings; + + /** + * 插件id + */ + private String pluginId; + + /** + * 知识库id + */ + private Long knowledgeId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java index 298984ce..7dc5e61c 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatAppStore.java @@ -1,7 +1,6 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; @@ -9,10 +8,10 @@ import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; /** - * 应用市场 + * 应用商店对象 chat_app_store * - * @author Lion Li - * @date 2024-03-19 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,7 +22,7 @@ public class ChatAppStore extends BaseEntity { private static final long serialVersionUID = 1L; /** - * 主键 + * id */ @TableId(value = "id") private Long id; @@ -39,16 +38,15 @@ public class ChatAppStore extends BaseEntity { private String description; /** - * 头像 + * logo */ private String avatar; /** - * 应用地址 + * 地址 */ private String appUrl; - /** * 备注 */ diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java index 385bd2d9..366d9a89 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java @@ -1,21 +1,18 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.common.sensitive.annotation.Sensitive; -import org.ruoyi.common.sensitive.core.SensitiveStrategy; import java.io.Serial; /** - * 对话配置信息对象 chat_config + * 配置信息对象 chat_config * - * @author Lion Li - * @date 2024-04-13 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -44,7 +41,6 @@ public class ChatConfig extends BaseEntity { /** * 配置值 */ - @Sensitive(strategy = SensitiveStrategy.SKY) private String configValue; /** @@ -57,6 +53,12 @@ public class ChatConfig extends BaseEntity { */ private String remark; + /** + * 版本 + */ + @Version + private Long version; + /** * 删除标志(0代表存在 1代表删除) */ diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java index 675d7698..a598f07e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatGpts.java @@ -1,9 +1,6 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; @@ -11,10 +8,10 @@ import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; /** - * gpts管理对象 chat_gpts + * 应用管理对象 chat_gpts * - * @author Lion Li - * @date 2024-07-09 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -63,12 +60,12 @@ public class ChatGpts extends BaseEntity { /** * 点赞 */ - private String useCnt; + private Long useCnt; /** * 差评 */ - private String bad; + private Long bad; /** * 类型 @@ -97,15 +94,5 @@ public class ChatGpts extends BaseEntity { */ private String updateIp; - /** - * 模型名称 - */ - private String modelName; - - - /** - * 模型system - */ - private String systemPrompt; } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java index 7ef7886d..b9caf73b 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java @@ -1,21 +1,19 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableName; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import java.math.BigDecimal; + import java.io.Serial; /** * 聊天消息对象 chat_message * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -28,49 +26,45 @@ public class ChatMessage extends BaseEntity { /** * 主键 */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + @TableId(value = "id") private Long id; /** - * 用户ID + * 用户id */ - @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class }) - private Long UserId; + private Long userId; + + /** + * 消息内容 + */ + private String content; /** * 对话角色 */ private String role; - /** - * 消息内容 - */ - @NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class }) - private String content; + * 扣除金额 - /** - * 扣除费用 */ - private Double deductCost; + private BigDecimal deductCost; /** * 累计 Tokens */ - @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer totalTokens; + private Long totalTokens; /** * 模型名称 */ - @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String modelName; /** * 备注 */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java new file mode 100644 index 00000000..89237f10 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatModel.java @@ -0,0 +1,82 @@ +package org.ruoyi.domain; + + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; + +/** + * 聊天模型对象 chat_model + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_model") +public class ChatModel extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 模型分类 + */ + private String category; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 模型描述 + */ + private String modelDescribe; + + /** + * 模型价格 + */ + private Long modelPrice; + + /** + * 计费类型 + */ + private String modelType; + + /** + * 是否显示 + */ + private String modelShow; + + /** + * 系统提示词 + */ + private String systemPrompt; + + /** + * 请求地址 + */ + private String apiHost; + + /** + * 密钥 + */ + private String apiKey; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java new file mode 100644 index 00000000..e834a254 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPackagePlan.java @@ -0,0 +1,58 @@ +package org.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 套餐管理对象 chat_package_plan + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_package_plan") +public class ChatPackagePlan extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 套餐名称 + */ + private String name; + + /** + * 套餐价格 + */ + private BigDecimal price; + + /** + * 有效时间 + */ + private Long duration; + + /** + * 计划详情 + */ + private String planDetail; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java new file mode 100644 index 00000000..00933957 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPayOrder.java @@ -0,0 +1,68 @@ +package org.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 支付订单对象 chat_pay_order + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_pay_order") +public class ChatPayOrder extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 订单编号 + */ + private String orderNo; + + /** + * 订单名称 + */ + private String orderName; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 支付状态 + */ + private String paymentStatus; + + /** + * 支付方式 + */ + private String paymentMethod; + + /** + * 用户ID + */ + private Long userId; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java index d2c88432..ace67ecd 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatPlugin.java @@ -1,7 +1,6 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; @@ -12,7 +11,7 @@ import java.io.Serial; * 插件管理对象 chat_plugin * * @author ageerle - * @date 2025-03-30 + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java index 047a1087..c69b0cf0 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatVoucher.java @@ -1,19 +1,19 @@ package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import java.io.Serial; import java.math.BigDecimal; +import java.io.Serial; + /** * 用户兑换记录对象 chat_voucher * - * @author Lion Li - * @date 2024-05-03 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,11 +29,6 @@ public class ChatVoucher extends BaseEntity { @TableId(value = "id") private Long id; - /** - * 用户id - */ - private Long userId; - /** * 兑换码 */ @@ -44,6 +39,11 @@ public class ChatVoucher extends BaseEntity { */ private BigDecimal amount; + /** + * 用户id + */ + private Long userId; + /** * 兑换状态 */ diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java new file mode 100644 index 00000000..6fd54c42 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java @@ -0,0 +1,96 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatAgentManage; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 智能体管理业务对象 chat_agent_manage + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatAgentManage.class, reverseConvertGenerate = false) +public class ChatAgentManageBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 应用名称 + */ + @NotBlank(message = "应用名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String appName; + + /** + * 应用类型 + */ + @NotBlank(message = "应用类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String appType; + + /** + * 应用头像 + */ + @NotBlank(message = "应用头像不能为空", groups = { AddGroup.class, EditGroup.class }) + private String appIcon; + + /** + * 应用描述 + */ + @NotBlank(message = "应用描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String appDescription; + + /** + * 开场介绍 + */ + @NotBlank(message = "开场介绍不能为空", groups = { AddGroup.class, EditGroup.class }) + private String introduction; + + /** + * 模型 + */ + @NotBlank(message = "模型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String model; + + /** + * 对话可选模型 + */ + @NotBlank(message = "对话可选模型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String conversationModel; + + /** + * 应用设定 + */ + @NotBlank(message = "应用设定不能为空", groups = { AddGroup.class, EditGroup.class }) + private String applicationSettings; + + /** + * 插件id + */ + @NotBlank(message = "插件id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String pluginId; + + /** + * 知识库id + */ + @NotNull(message = "知识库id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long knowledgeId; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java index b4c04908..b77431b5 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java @@ -1,19 +1,19 @@ package org.ruoyi.domain.bo; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatAppStore; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.domain.ChatAppStore; - +import jakarta.validation.constraints.*; /** - * 应用市场业务对象 voice_role + * 应用商店业务对象 chat_app_store * - * @author Lion Li - * @date 2024-03-19 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,37 +23,37 @@ public class ChatAppStoreBo extends BaseEntity { /** * id */ - @NotNull(message = "id不能为空") + @NotNull(message = "id不能为空", groups = { EditGroup.class }) private Long id; /** - * 角色名称 + * 名称 */ - @NotBlank(message = "名称不能为空") + @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String name; /** - * 角色描述 + * 描述 */ - @NotBlank(message = "描述不能为空") + @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class }) private String description; /** - * 头像 + * logo */ - @NotBlank(message = "头像不能为空") + @NotBlank(message = "logo不能为空", groups = { AddGroup.class, EditGroup.class }) private String avatar; /** - * 音频地址 + * 地址 */ - @NotBlank(message = "应用地址不能为空") + @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class }) private String appUrl; /** * 备注 */ - @NotBlank(message = "备注不能为空") + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java index bf2d7bb7..ca1b0384 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java @@ -1,24 +1,19 @@ package org.ruoyi.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatConfig; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.common.sensitive.annotation.Sensitive; -import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.domain.ChatConfig; - +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; /** - * 对话配置信息 -业务对象 chat_config + * 配置信息业务对象 chat_config * - * @author Lion Li - * @date 2024-04-13 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -46,14 +41,13 @@ public class ChatConfigBo extends BaseEntity { /** * 配置值 */ - @Sensitive(strategy = SensitiveStrategy.SKY) @NotBlank(message = "配置值不能为空", groups = { AddGroup.class, EditGroup.class }) private String configValue; /** * 说明 */ - @NotBlank(message = "参数说明不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "说明不能为空", groups = { AddGroup.class, EditGroup.class }) private String configDict; /** diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java index 27614672..2c77aa18 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java @@ -1,20 +1,19 @@ package org.ruoyi.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatGpts; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.domain.ChatGpts; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; /** - * gpts管理业务对象 chat_gpts + * 应用管理业务对象 chat_gpts * - * @author Lion Li - * @date 2024-07-09 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -42,56 +41,56 @@ public class ChatGptsBo extends BaseEntity { /** * gpts图标 */ + @NotBlank(message = "gpts图标不能为空", groups = { AddGroup.class, EditGroup.class }) private String logo; /** * gpts描述 */ + @NotBlank(message = "gpts描述不能为空", groups = { AddGroup.class, EditGroup.class }) private String info; /** * 作者id */ + @NotBlank(message = "作者id不能为空", groups = { AddGroup.class, EditGroup.class }) private String authorId; /** * 作者名称 */ + @NotBlank(message = "作者名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String authorName; /** * 点赞 */ - private String useCnt; + @NotNull(message = "点赞不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long useCnt; /** * 差评 */ - private String bad; + @NotNull(message = "差评不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long bad; /** * 类型 */ + @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class }) private String type; /** * 备注 */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; /** * 更新IP */ + @NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class }) private String updateIp; - /** - * 模型名称 - */ - private String modelName; - - /** - * 模型system - */ - private String systemPrompt; } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java index e66dc71e..43791eec 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java @@ -1,21 +1,20 @@ package org.ruoyi.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatMessage; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.domain.ChatMessage; - +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; /** * 聊天消息业务对象 chat_message * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,20 +28,11 @@ public class ChatMessageBo extends BaseEntity { private Long id; /** - * 用户ID + * 用户id */ + @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long userId; - /** - * 用户名称 - */ - private String userName; - - /** - * 对话角色 - */ - private String role; - /** * 消息内容 */ @@ -50,23 +40,36 @@ public class ChatMessageBo extends BaseEntity { private String content; /** - * 扣除费用 + * 对话角色 */ - private Double deductCost; + @NotBlank(message = "对话角色不能为空", groups = { AddGroup.class, EditGroup.class }) + private String role; + + /** + * 扣除金额 + + + */ + @NotNull(message = "扣除金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal deductCost; /** * 累计 Tokens */ - private Integer totalTokens; + @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalTokens; /** * 模型名称 */ + @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String modelName; /** * 备注 */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java new file mode 100644 index 00000000..a2a19ac7 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java @@ -0,0 +1,90 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatModel; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 聊天模型业务对象 chat_model + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatModel.class, reverseConvertGenerate = false) +public class ChatModelBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 模型分类 + */ + @NotBlank(message = "模型分类不能为空", groups = { AddGroup.class, EditGroup.class }) + private String category; + + /** + * 模型名称 + */ + @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelName; + + /** + * 模型描述 + */ + @NotBlank(message = "模型描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelDescribe; + + /** + * 模型价格 + */ + @NotNull(message = "模型价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long modelPrice; + + /** + * 计费类型 + */ + @NotBlank(message = "计费类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelType; + + /** + * 是否显示 + */ + @NotBlank(message = "是否显示不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelShow; + + /** + * 系统提示词 + */ + @NotBlank(message = "系统提示词不能为空", groups = { AddGroup.class, EditGroup.class }) + private String systemPrompt; + + /** + * 请求地址 + */ + @NotBlank(message = "请求地址不能为空", groups = { AddGroup.class, EditGroup.class }) + private String apiHost; + + /** + * 密钥 + */ + @NotBlank(message = "密钥不能为空", groups = { AddGroup.class, EditGroup.class }) + private String apiKey; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java new file mode 100644 index 00000000..ac0fdc14 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java @@ -0,0 +1,61 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatPackagePlan; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 套餐管理业务对象 chat_package_plan + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatPackagePlan.class, reverseConvertGenerate = false) +public class ChatPackagePlanBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 套餐名称 + */ + @NotBlank(message = "套餐名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String name; + + /** + * 套餐价格 + */ + @NotNull(message = "套餐价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal price; + + /** + * 有效时间 + */ + @NotNull(message = "有效时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long duration; + + /** + * 计划详情 + */ + @NotBlank(message = "计划详情不能为空", groups = { AddGroup.class, EditGroup.class }) + private String planDetail; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java new file mode 100644 index 00000000..41191d55 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java @@ -0,0 +1,73 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatPayOrder; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 支付订单业务对象 chat_pay_order + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatPayOrder.class, reverseConvertGenerate = false) +public class ChatPayOrderBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 订单编号 + */ + @NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderNo; + + /** + * 订单名称 + */ + @NotBlank(message = "订单名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderName; + + /** + * 金额 + */ + @NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal amount; + + /** + * 支付状态 + */ + @NotBlank(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paymentStatus; + + /** + * 支付方式 + */ + @NotBlank(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paymentMethod; + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java index 1e20837a..4f6357ba 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java @@ -1,21 +1,19 @@ package org.ruoyi.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatPlugin; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.domain.ChatPlugin; - +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; /** * 插件管理业务对象 chat_plugin * * @author ageerle - * @date 2025-03-30 + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java index 60983b7e..35782a7b 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java @@ -1,22 +1,20 @@ package org.ruoyi.domain.bo; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.system.domain.ChatVoucher; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.domain.ChatVoucher; - - +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; import java.math.BigDecimal; /** * 用户兑换记录业务对象 chat_voucher * - * @author Lion Li - * @date 2024-05-03 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,14 +27,10 @@ public class ChatVoucherBo extends BaseEntity { @NotNull(message = "主键不能为空", groups = { EditGroup.class }) private Long id; - /** - * 用户id - */ - private Long userId; - /** * 兑换码 */ + @NotBlank(message = "兑换码不能为空", groups = { AddGroup.class, EditGroup.class }) private String code; /** @@ -45,24 +39,34 @@ public class ChatVoucherBo extends BaseEntity { @NotNull(message = "兑换金额不能为空", groups = { AddGroup.class, EditGroup.class }) private BigDecimal amount; + /** + * 用户id + */ + @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + /** * 兑换状态 */ + @NotBlank(message = "兑换状态不能为空", groups = { AddGroup.class, EditGroup.class }) private String status; /** * 兑换前余额 */ - private Double balanceBefore; + @NotNull(message = "兑换前余额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal balanceBefore; /** * 兑换后余额 */ - private Double balanceAfter; + @NotNull(message = "兑换后余额不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal balanceAfter; /** * 备注 */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) private String remark; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java new file mode 100644 index 00000000..bb18e7f5 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java @@ -0,0 +1,104 @@ +package org.ruoyi.system.domain.vo; + +import org.ruoyi.system.domain.ChatAgentManage; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import annotation.excel.common.org.ruoyi.ExcelDictFormat; +import convert.excel.common.org.ruoyi.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 智能体管理视图对象 chat_agent_manage + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatAgentManage.class) +public class ChatAgentManageVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 应用名称 + */ + @ExcelProperty(value = "应用名称") + private String appName; + + /** + * 应用类型 + */ + @ExcelProperty(value = "应用类型") + private String appType; + + /** + * 应用头像 + */ + @ExcelProperty(value = "应用头像") + private String appIcon; + + /** + * 应用描述 + */ + @ExcelProperty(value = "应用描述") + private String appDescription; + + /** + * 开场介绍 + */ + @ExcelProperty(value = "开场介绍") + private String introduction; + + /** + * 模型 + */ + @ExcelProperty(value = "模型") + private String model; + + /** + * 对话可选模型 + */ + @ExcelProperty(value = "对话可选模型") + private String conversationModel; + + /** + * 应用设定 + */ + @ExcelProperty(value = "应用设定") + private String applicationSettings; + + /** + * 插件id + */ + @ExcelProperty(value = "插件id") + private String pluginId; + + /** + * 知识库id + */ + @ExcelProperty(value = "知识库id") + private Long knowledgeId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java index 4ae8a95d..24af7081 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java @@ -1,23 +1,23 @@ -package org.ruoyi.domain.vo; - +package org.ruoyi.system.domain.vo; +import org.ruoyi.system.domain.ChatAppStore; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.domain.ChatAppStore; - import java.io.Serial; import java.io.Serializable; + /** - * 应用市场视图对象 + * 应用商店视图对象 chat_app_store * - * @author Lion Li - * @date 2024-03-19 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -34,27 +34,27 @@ public class ChatAppStoreVo implements Serializable { private Long id; /** - * 角色名称 + * 名称 */ @ExcelProperty(value = "名称") private String name; /** - * 角色描述 + * 描述 */ @ExcelProperty(value = "描述") private String description; /** - * 头像 + * logo */ - @ExcelProperty(value = "头像") + @ExcelProperty(value = "logo") private String avatar; /** - * 音频地址 + * 地址 */ - @ExcelProperty(value = "应用地址") + @ExcelProperty(value = "地址") private String appUrl; /** diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java index ba028868..5ba209f7 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java @@ -1,25 +1,23 @@ package org.ruoyi.domain.vo; +import org.ruoyi.system.domain.ChatConfig; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.common.sensitive.annotation.Sensitive; -import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.domain.ChatConfig; - import java.io.Serial; import java.io.Serializable; + /** - * 对话配置信息 -视图对象 chat_config + * 配置信息视图对象 chat_config * - * @author Lion Li - * @date 2024-04-13 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -51,7 +49,6 @@ public class ChatConfigVo implements Serializable { * 配置值 */ @ExcelProperty(value = "配置值") - @Sensitive(strategy = SensitiveStrategy.SKY) private String configValue; /** diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java index ead5f6c8..1148b3dc 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java @@ -1,21 +1,23 @@ package org.ruoyi.domain.vo; +import org.ruoyi.system.domain.ChatGpts; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.domain.ChatGpts; - import java.io.Serial; import java.io.Serializable; + + /** - * gpts管理视图对象 chat_gpts + * 应用管理视图对象 chat_gpts * - * @author Lion Li - * @date 2024-07-09 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -71,13 +73,13 @@ public class ChatGptsVo implements Serializable { * 点赞 */ @ExcelProperty(value = "点赞") - private String useCnt; + private Long useCnt; /** * 差评 */ @ExcelProperty(value = "差评") - private String bad; + private Long bad; /** * 类型 @@ -97,16 +99,5 @@ public class ChatGptsVo implements Serializable { @ExcelProperty(value = "更新IP") private String updateIp; - /** - * 模型名称 - */ - @ExcelProperty(value = "模型名称") - private String modelName; - - /** - * 模型system - */ - private String systemPrompt; - } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java index f21e41de..bbc6867f 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java @@ -1,25 +1,24 @@ package org.ruoyi.domain.vo; +import java.math.BigDecimal; +import org.ruoyi.system.domain.ChatMessage; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.domain.ChatMessage; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; + + /** * 聊天消息视图对象 chat_message * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -32,60 +31,50 @@ public class ChatMessageVo implements Serializable { /** * 主键 */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + @ExcelProperty(value = "主键") private Long id; /** - * 用户ID + * 用户id */ - @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class }) + @ExcelProperty(value = "用户id") private Long userId; - /** - * 用户名称 - */ - @NotBlank(message = "用户名称") - private String userName; - - /** - * 对话角色 - */ - private String role; - - /** * 消息内容 */ - @NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class }) + @ExcelProperty(value = "消息内容") private String content; + /** + * 对话角色 + */ + @ExcelProperty(value = "对话角色") + private String role; /** - * 扣除费用 + * 扣除金额 */ - private Double deductCost; + @ExcelProperty(value = "扣除金额") + private BigDecimal deductCost; /** * 累计 Tokens */ - @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer totalTokens; + @ExcelProperty(value = "累计 Tokens") + private Long totalTokens; /** * 模型名称 */ - @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @ExcelProperty(value = "模型名称") private String modelName; /** * 备注 */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + @ExcelProperty(value = "备注") private String remark; - /** - * 创建时间 - */ - private Date createTime; } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java new file mode 100644 index 00000000..3e256946 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java @@ -0,0 +1,97 @@ +package org.ruoyi.domain.vo; + +import org.ruoyi.system.domain.ChatModel; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + + +/** + * 聊天模型视图对象 chat_model + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatModel.class) +public class ChatModelVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 模型分类 + */ + @ExcelProperty(value = "模型分类") + private String category; + + /** + * 模型名称 + */ + @ExcelProperty(value = "模型名称") + private String modelName; + + /** + * 模型描述 + */ + @ExcelProperty(value = "模型描述") + private String modelDescribe; + + /** + * 模型价格 + */ + @ExcelProperty(value = "模型价格") + private Long modelPrice; + + /** + * 计费类型 + */ + @ExcelProperty(value = "计费类型") + private String modelType; + + /** + * 是否显示 + */ + @ExcelProperty(value = "是否显示") + private String modelShow; + + /** + * 系统提示词 + */ + @ExcelProperty(value = "系统提示词") + private String systemPrompt; + + /** + * 请求地址 + */ + @ExcelProperty(value = "请求地址") + private String apiHost; + + /** + * 密钥 + */ + @ExcelProperty(value = "密钥") + private String apiKey; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java new file mode 100644 index 00000000..484c3d47 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java @@ -0,0 +1,68 @@ +package org.ruoyi.domain.vo; + +import java.math.BigDecimal; +import org.ruoyi.system.domain.ChatPackagePlan; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + + +/** + * 套餐管理视图对象 chat_package_plan + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatPackagePlan.class) +public class ChatPackagePlanVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 套餐名称 + */ + @ExcelProperty(value = "套餐名称") + private String name; + + /** + * 套餐价格 + */ + @ExcelProperty(value = "套餐价格") + private BigDecimal price; + + /** + * 有效时间 + */ + @ExcelProperty(value = "有效时间") + private Long duration; + + /** + * 计划详情 + */ + @ExcelProperty(value = "计划详情") + private String planDetail; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java new file mode 100644 index 00000000..220d1afd --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java @@ -0,0 +1,80 @@ +package org.ruoyi.domain.vo; + +import java.math.BigDecimal; +import org.ruoyi.system.domain.ChatPayOrder; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + + +/** + * 支付订单视图对象 chat_pay_order + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatPayOrder.class) +public class ChatPayOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 订单编号 + */ + @ExcelProperty(value = "订单编号") + private String orderNo; + + /** + * 订单名称 + */ + @ExcelProperty(value = "订单名称") + private String orderName; + + /** + * 金额 + */ + @ExcelProperty(value = "金额") + private BigDecimal amount; + + /** + * 支付状态 + */ + @ExcelProperty(value = "支付状态") + private String paymentStatus; + + /** + * 支付方式 + */ + @ExcelProperty(value = "支付方式") + private String paymentMethod; + + /** + * 用户ID + */ + @ExcelProperty(value = "用户ID") + private Long userId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java index c4d41fec..5246b585 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java @@ -1,20 +1,23 @@ package org.ruoyi.domain.vo; +import org.ruoyi.system.domain.ChatPlugin; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.domain.ChatPlugin; import java.io.Serial; import java.io.Serializable; + + /** * 插件管理视图对象 chat_plugin * * @author ageerle - * @date 2025-03-30 + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java index b1462c56..b1a6c6cb 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java @@ -1,10 +1,12 @@ package org.ruoyi.domain.vo; +import java.math.BigDecimal; +import org.ruoyi.system.domain.ChatVoucher; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.domain.ChatVoucher; import java.io.Serial; import java.io.Serializable; @@ -14,8 +16,8 @@ import java.io.Serializable; /** * 用户兑换记录视图对象 chat_voucher * - * @author Lion Li - * @date 2024-05-03 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -31,18 +33,6 @@ public class ChatVoucherVo implements Serializable { @ExcelProperty(value = "主键") private Long id; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - - /** - * 用户名称 - */ - @ExcelProperty(value = "用户名称") - private String userName; - /** * 兑换码 */ @@ -53,7 +43,13 @@ public class ChatVoucherVo implements Serializable { * 兑换金额 */ @ExcelProperty(value = "兑换金额") - private Double amount; + private BigDecimal amount; + + /** + * 用户id + */ + @ExcelProperty(value = "用户id") + private Long userId; /** * 兑换状态 @@ -65,13 +61,13 @@ public class ChatVoucherVo implements Serializable { * 兑换前余额 */ @ExcelProperty(value = "兑换前余额") - private Double balanceBefore; + private BigDecimal balanceBefore; /** * 兑换后余额 */ @ExcelProperty(value = "兑换后余额") - private Double balanceAfter; + private BigDecimal balanceAfter; /** * 备注 @@ -79,8 +75,5 @@ public class ChatVoucherVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - @ExcelProperty(value = "创建时间") - private String createTime; - } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java new file mode 100644 index 00000000..978b213a --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.domain.ChatAgentManage; +import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 智能体管理Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatAgentManageMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java index 9f142440..22aef7b3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java @@ -1,15 +1,15 @@ package org.ruoyi.mapper; -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.domain.ChatAppStore; -import org.ruoyi.domain.vo.ChatAppStoreVo; +import org.ruoyi.domain.ChatAppStore; +import org.ruoyi.system.domain.vo.ChatAppStoreVo; +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** - * 应用市场Mapper接口 + * 应用商店Mapper接口 * - * @author Lion Li - * @date 2024-03-19 + * @author ageerle + * @date 2025-04-08 */ public interface ChatAppStoreMapper extends BaseMapperPlus { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java index 8b8069ae..c9f85835 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java @@ -1,17 +1,16 @@ package org.ruoyi.mapper; + import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import org.ruoyi.domain.ChatConfig; import org.ruoyi.domain.vo.ChatConfigVo; - /** - * 对话配置信息Mapper接口 + * 配置信息Mapper接口 * - * @author Lion Li - * @date 2024-04-13 + * @author ageerle + * @date 2025-04-08 */ public interface ChatConfigMapper extends BaseMapperPlus { - } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java index 1d9b0a5d..2bd777e2 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatGptsMapper.java @@ -4,12 +4,11 @@ import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import org.ruoyi.domain.ChatGpts; import org.ruoyi.domain.vo.ChatGptsVo; - /** - * gpts管理Mapper接口 + * 应用管理Mapper接口 * - * @author Lion Li - * @date 2024-07-09 + * @author ageerle + * @date 2025-04-08 */ public interface ChatGptsMapper extends BaseMapperPlus { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java index 239a5a4d..f146a50a 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatMessageMapper.java @@ -1,15 +1,15 @@ package org.ruoyi.mapper; + import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import org.ruoyi.domain.ChatMessage; import org.ruoyi.domain.vo.ChatMessageVo; - /** * 聊天消息Mapper接口 * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ public interface ChatMessageMapper extends BaseMapperPlus { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java new file mode 100644 index 00000000..1f221826 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatModelMapper.java @@ -0,0 +1,15 @@ +package org.ruoyi.mapper; + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatModel; +import org.ruoyi.domain.vo.ChatModelVo; + +/** + * 聊天模型Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatModelMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java new file mode 100644 index 00000000..753475d4 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPackagePlanMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatPackagePlan; +import org.ruoyi.domain.vo.ChatPackagePlanVo; + +/** + * 套餐管理Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatPackagePlanMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java new file mode 100644 index 00000000..475981f1 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPayOrderMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatPayOrder; +import org.ruoyi.domain.vo.ChatPayOrderVo; + +/** + * 支付订单Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatPayOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java index e0c64565..2d0dc7d7 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatPluginMapper.java @@ -1,15 +1,15 @@ package org.ruoyi.mapper; + import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import org.ruoyi.domain.ChatPlugin; import org.ruoyi.domain.vo.ChatPluginVo; - /** * 插件管理Mapper接口 * * @author ageerle - * @date 2025-03-30 + * @date 2025-04-08 */ public interface ChatPluginMapper extends BaseMapperPlus { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java index 7c859302..63bf6e30 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatVoucherMapper.java @@ -4,12 +4,11 @@ import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import org.ruoyi.domain.ChatVoucher; import org.ruoyi.domain.vo.ChatVoucherVo; - /** * 用户兑换记录Mapper接口 * - * @author Lion Li - * @date 2024-05-03 + * @author ageerle + * @date 2025-04-08 */ public interface ChatVoucherMapper extends BaseMapperPlus { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java new file mode 100644 index 00000000..bf511ddc --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java @@ -0,0 +1,49 @@ +package org.ruoyi.service; + + +import org.ruoyi.domain.bo.ChatAgentManageBo; +import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 智能体管理Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatAgentManageService { + + /** + * 查询智能体管理 + */ + ChatAgentManageVo queryById(Long id); + + /** + * 查询智能体管理列表 + */ + TableDataInfo queryPageList(ChatAgentManageBo bo, PageQuery pageQuery); + + /** + * 查询智能体管理列表 + */ + List queryList(ChatAgentManageBo bo); + + /** + * 新增智能体管理 + */ + Boolean insertByBo(ChatAgentManageBo bo); + + /** + * 修改智能体管理 + */ + Boolean updateByBo(ChatAgentManageBo bo); + + /** + * 校验并批量删除智能体管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java index 3c5f4efd..03a55b8c 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java @@ -1,47 +1,49 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.domain.bo.ChatAppStoreBo; -import org.ruoyi.domain.vo.ChatAppStoreVo; +import org.ruoyi.domain.bo.ChatAppStoreBo; +import org.ruoyi.system.domain.vo.ChatAppStoreVo; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; /** - * 应用市场Service接口 + * 应用商店Service接口 * - * @author Lion Li - * @date 2024-03-19 + * @author ageerle + * @date 2025-04-08 */ public interface IChatAppStoreService { /** - * 查询应用市场 + * 查询应用商店 */ ChatAppStoreVo queryById(Long id); /** - * 查询应用市场列表 + * 查询应用商店列表 */ TableDataInfo queryPageList(ChatAppStoreBo bo, PageQuery pageQuery); /** - * 查询应用市场列表 + * 查询应用商店列表 */ List queryList(ChatAppStoreBo bo); + /** + * 新增应用商店 + */ + Boolean insertByBo(ChatAppStoreBo bo); /** - * 修改应用市场 + * 修改应用商店 */ Boolean updateByBo(ChatAppStoreBo bo); /** - * 校验并批量删除应用市场信息 + * 校验并批量删除应用商店信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java index 6c77647f..e0f6f8a8 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java @@ -1,7 +1,8 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.domain.bo.ChatConfigBo; import org.ruoyi.domain.vo.ChatConfigVo; @@ -9,14 +10,15 @@ import java.util.Collection; import java.util.List; /** - * 对话配置信息Service接口 - * @date 2024-04-13 + * 配置信息Service接口 + * + * @author ageerle + * @date 2025-04-08 */ public interface IChatConfigService { /** * 查询配置信息 - */ ChatConfigVo queryById(Long id); @@ -32,7 +34,6 @@ public interface IChatConfigService { /** * 新增配置信息 - */ Boolean insertByBo(ChatConfigBo bo); @@ -45,9 +46,4 @@ public interface IChatConfigService { * 校验并批量删除配置信息信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 查询系统参数 - */ - List getSysConfigValue(String category); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java index 808225d9..6b7f177b 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatGptsService.java @@ -1,7 +1,8 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.domain.bo.ChatGptsBo; import org.ruoyi.domain.vo.ChatGptsVo; @@ -9,40 +10,40 @@ import java.util.Collection; import java.util.List; /** - * gpts管理Service接口 + * 应用管理Service接口 * - * @author Lion Li - * @date 2024-07-09 + * @author ageerle + * @date 2025-04-08 */ public interface IChatGptsService { /** - * 查询gpts管理 + * 查询应用管理 */ ChatGptsVo queryById(Long id); /** - * 查询gpts管理列表 + * 查询应用管理列表 */ TableDataInfo queryPageList(ChatGptsBo bo, PageQuery pageQuery); /** - * 查询gpts管理列表 + * 查询应用管理列表 */ List queryList(ChatGptsBo bo); /** - * 新增gpts管理 + * 新增应用管理 */ Boolean insertByBo(ChatGptsBo bo); /** - * 修改gpts管理 + * 修改应用管理 */ Boolean updateByBo(ChatGptsBo bo); /** - * 校验并批量删除gpts管理信息 + * 校验并批量删除应用管理信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java index f8bef4e0..c83f178e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatMessageService.java @@ -1,7 +1,8 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.domain.bo.ChatMessageBo; import org.ruoyi.domain.vo.ChatMessageVo; @@ -11,8 +12,8 @@ import java.util.List; /** * 聊天消息Service接口 * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ public interface IChatMessageService { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java new file mode 100644 index 00000000..9657b59e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java @@ -0,0 +1,49 @@ +package org.ruoyi.service; + + +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.ChatModelBo; +import org.ruoyi.domain.vo.ChatModelVo; + +import java.util.Collection; +import java.util.List; + +/** + * 聊天模型Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatModelService { + + /** + * 查询聊天模型 + */ + ChatModelVo queryById(Long id); + + /** + * 查询聊天模型列表 + */ + TableDataInfo queryPageList(ChatModelBo bo, PageQuery pageQuery); + + /** + * 查询聊天模型列表 + */ + List queryList(ChatModelBo bo); + + /** + * 新增聊天模型 + */ + Boolean insertByBo(ChatModelBo bo); + + /** + * 修改聊天模型 + */ + Boolean updateByBo(ChatModelBo bo); + + /** + * 校验并批量删除聊天模型信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.java new file mode 100644 index 00000000..158fa252 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPackagePlanService.java @@ -0,0 +1,49 @@ +package org.ruoyi.service; + + +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.ChatPackagePlanBo; +import org.ruoyi.domain.vo.ChatPackagePlanVo; + +import java.util.Collection; +import java.util.List; + +/** + * 套餐管理Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatPackagePlanService { + + /** + * 查询套餐管理 + */ + ChatPackagePlanVo queryById(Long id); + + /** + * 查询套餐管理列表 + */ + TableDataInfo queryPageList(ChatPackagePlanBo bo, PageQuery pageQuery); + + /** + * 查询套餐管理列表 + */ + List queryList(ChatPackagePlanBo bo); + + /** + * 新增套餐管理 + */ + Boolean insertByBo(ChatPackagePlanBo bo); + + /** + * 修改套餐管理 + */ + Boolean updateByBo(ChatPackagePlanBo bo); + + /** + * 校验并批量删除套餐管理信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java new file mode 100644 index 00000000..b2f84949 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPayOrderService.java @@ -0,0 +1,48 @@ +package org.ruoyi.service; + +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.ChatPayOrderBo; +import org.ruoyi.domain.vo.ChatPayOrderVo; + +import java.util.Collection; +import java.util.List; + +/** + * 支付订单Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatPayOrderService { + + /** + * 查询支付订单 + */ + ChatPayOrderVo queryById(Long id); + + /** + * 查询支付订单列表 + */ + TableDataInfo queryPageList(ChatPayOrderBo bo, PageQuery pageQuery); + + /** + * 查询支付订单列表 + */ + List queryList(ChatPayOrderBo bo); + + /** + * 新增支付订单 + */ + Boolean insertByBo(ChatPayOrderBo bo); + + /** + * 修改支付订单 + */ + Boolean updateByBo(ChatPayOrderBo bo); + + /** + * 校验并批量删除支付订单信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java index 08ed858a..dbee18e8 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatPluginService.java @@ -1,7 +1,8 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.domain.bo.ChatPluginBo; import org.ruoyi.domain.vo.ChatPluginVo; @@ -12,7 +13,7 @@ import java.util.List; * 插件管理Service接口 * * @author ageerle - * @date 2025-03-30 + * @date 2025-04-08 */ public interface IChatPluginService { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java index 2f81822b..6b2fb96b 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVoucherService.java @@ -1,7 +1,8 @@ package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.domain.bo.ChatVoucherBo; import org.ruoyi.domain.vo.ChatVoucherVo; @@ -11,8 +12,8 @@ import java.util.List; /** * 用户兑换记录Service接口 * - * @author Lion Li - * @date 2024-05-03 + * @author ageerle + * @date 2025-04-08 */ public interface IChatVoucherService { @@ -45,9 +46,4 @@ public interface IChatVoucherService { * 校验并批量删除用户兑换记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 兑换卡密 - */ - Boolean redeem(ChatVoucherBo bo); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java new file mode 100644 index 00000000..abcb4f72 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java @@ -0,0 +1,120 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatAgentManage; +import org.ruoyi.domain.bo.ChatAgentManageBo; +import org.ruoyi.mapper.ChatAgentManageMapper; +import org.ruoyi.service.IChatAgentManageService; +import org.springframework.stereotype.Service; + +import org.ruoyi.system.domain.vo.ChatAgentManageVo; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 智能体管理Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatAgentManageServiceImpl implements IChatAgentManageService { + + private final ChatAgentManageMapper baseMapper; + + /** + * 查询智能体管理 + */ + @Override + public ChatAgentManageVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询智能体管理列表 + */ + @Override + public TableDataInfo queryPageList(ChatAgentManageBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询智能体管理列表 + */ + @Override + public List queryList(ChatAgentManageBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatAgentManageBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getAppName()), ChatAgentManage::getAppName, bo.getAppName()); + lqw.eq(StringUtils.isNotBlank(bo.getAppType()), ChatAgentManage::getAppType, bo.getAppType()); + lqw.eq(StringUtils.isNotBlank(bo.getAppIcon()), ChatAgentManage::getAppIcon, bo.getAppIcon()); + lqw.eq(StringUtils.isNotBlank(bo.getAppDescription()), ChatAgentManage::getAppDescription, bo.getAppDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getIntroduction()), ChatAgentManage::getIntroduction, bo.getIntroduction()); + lqw.eq(StringUtils.isNotBlank(bo.getModel()), ChatAgentManage::getModel, bo.getModel()); + lqw.eq(StringUtils.isNotBlank(bo.getConversationModel()), ChatAgentManage::getConversationModel, bo.getConversationModel()); + lqw.eq(StringUtils.isNotBlank(bo.getApplicationSettings()), ChatAgentManage::getApplicationSettings, bo.getApplicationSettings()); + lqw.eq(StringUtils.isNotBlank(bo.getPluginId()), ChatAgentManage::getPluginId, bo.getPluginId()); + lqw.eq(bo.getKnowledgeId() != null, ChatAgentManage::getKnowledgeId, bo.getKnowledgeId()); + return lqw; + } + + /** + * 新增智能体管理 + */ + @Override + public Boolean insertByBo(ChatAgentManageBo bo) { + ChatAgentManage add = MapstructUtils.convert(bo, ChatAgentManage.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改智能体管理 + */ + @Override + public Boolean updateByBo(ChatAgentManageBo bo) { + ChatAgentManage update = MapstructUtils.convert(bo, ChatAgentManage.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatAgentManage entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除智能体管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java new file mode 100644 index 00000000..55a63408 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java @@ -0,0 +1,113 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatAppStore; +import org.ruoyi.domain.bo.ChatAppStoreBo; +import org.ruoyi.mapper.ChatAppStoreMapper; +import org.ruoyi.service.IChatAppStoreService; +import org.springframework.stereotype.Service; + +import org.ruoyi.system.domain.vo.ChatAppStoreVo; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 应用商店Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatAppStoreServiceImpl implements IChatAppStoreService { + + private final ChatAppStoreMapper baseMapper; + + /** + * 查询应用商店 + */ + @Override + public ChatAppStoreVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询应用商店列表 + */ + @Override + public TableDataInfo queryPageList(ChatAppStoreBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询应用商店列表 + */ + @Override + public List queryList(ChatAppStoreBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatAppStoreBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getName()), ChatAppStore::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), ChatAppStore::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getAvatar()), ChatAppStore::getAvatar, bo.getAvatar()); + lqw.eq(StringUtils.isNotBlank(bo.getAppUrl()), ChatAppStore::getAppUrl, bo.getAppUrl()); + return lqw; + } + + /** + * 新增应用商店 + */ + @Override + public Boolean insertByBo(ChatAppStoreBo bo) { + ChatAppStore add = MapstructUtils.convert(bo, ChatAppStore.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改应用商店 + */ + @Override + public Boolean updateByBo(ChatAppStoreBo bo) { + ChatAppStore update = MapstructUtils.convert(bo, ChatAppStore.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatAppStore entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除应用商店 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java new file mode 100644 index 00000000..3d62159f --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java @@ -0,0 +1,114 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatConfig; +import org.ruoyi.domain.bo.ChatConfigBo; +import org.ruoyi.domain.vo.ChatConfigVo; +import org.ruoyi.mapper.ChatConfigMapper; +import org.ruoyi.service.IChatConfigService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配置信息Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatConfigServiceImpl implements IChatConfigService { + + private final ChatConfigMapper baseMapper; + + /** + * 查询配置信息 + */ + @Override + public ChatConfigVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询配置信息列表 + */ + @Override + public TableDataInfo queryPageList(ChatConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询配置信息列表 + */ + @Override + public List queryList(ChatConfigBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory()); + lqw.like(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigDict()), ChatConfig::getConfigDict, bo.getConfigDict()); + lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatConfig::getUpdateIp, bo.getUpdateIp()); + return lqw; + } + + /** + * 新增配置信息 + */ + @Override + public Boolean insertByBo(ChatConfigBo bo) { + ChatConfig add = MapstructUtils.convert(bo, ChatConfig.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改配置信息 + */ + @Override + public Boolean updateByBo(ChatConfigBo bo) { + ChatConfig update = MapstructUtils.convert(bo, ChatConfig.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatConfig entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除配置信息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java new file mode 100644 index 00000000..0361d102 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatGptsServiceImpl.java @@ -0,0 +1,119 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatGpts; +import org.ruoyi.domain.bo.ChatGptsBo; +import org.ruoyi.domain.vo.ChatGptsVo; +import org.ruoyi.mapper.ChatGptsMapper; +import org.ruoyi.service.IChatGptsService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 应用管理Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatGptsServiceImpl implements IChatGptsService { + + private final ChatGptsMapper baseMapper; + + /** + * 查询应用管理 + */ + @Override + public ChatGptsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询应用管理列表 + */ + @Override + public TableDataInfo queryPageList(ChatGptsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询应用管理列表 + */ + @Override + public List queryList(ChatGptsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatGptsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getGid()), ChatGpts::getGid, bo.getGid()); + lqw.like(StringUtils.isNotBlank(bo.getName()), ChatGpts::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getLogo()), ChatGpts::getLogo, bo.getLogo()); + lqw.eq(StringUtils.isNotBlank(bo.getInfo()), ChatGpts::getInfo, bo.getInfo()); + lqw.eq(StringUtils.isNotBlank(bo.getAuthorId()), ChatGpts::getAuthorId, bo.getAuthorId()); + lqw.like(StringUtils.isNotBlank(bo.getAuthorName()), ChatGpts::getAuthorName, bo.getAuthorName()); + lqw.eq(bo.getUseCnt() != null, ChatGpts::getUseCnt, bo.getUseCnt()); + lqw.eq(bo.getBad() != null, ChatGpts::getBad, bo.getBad()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), ChatGpts::getType, bo.getType()); + lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatGpts::getUpdateIp, bo.getUpdateIp()); + return lqw; + } + + /** + * 新增应用管理 + */ + @Override + public Boolean insertByBo(ChatGptsBo bo) { + ChatGpts add = MapstructUtils.convert(bo, ChatGpts.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改应用管理 + */ + @Override + public Boolean updateByBo(ChatGptsBo bo) { + ChatGpts update = MapstructUtils.convert(bo, ChatGpts.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatGpts entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除应用管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java new file mode 100644 index 00000000..0f9cb161 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatMessageServiceImpl.java @@ -0,0 +1,115 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatMessage; +import org.ruoyi.domain.bo.ChatMessageBo; +import org.ruoyi.domain.vo.ChatMessageVo; +import org.ruoyi.mapper.ChatMessageMapper; +import org.ruoyi.service.IChatMessageService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 聊天消息Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatMessageServiceImpl implements IChatMessageService { + + private final ChatMessageMapper baseMapper; + + /** + * 查询聊天消息 + */ + @Override + public ChatMessageVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询聊天消息列表 + */ + @Override + public TableDataInfo queryPageList(ChatMessageBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询聊天消息列表 + */ + @Override + public List queryList(ChatMessageBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatMessageBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, ChatMessage::getUserId, bo.getUserId()); + lqw.eq(StringUtils.isNotBlank(bo.getContent()), ChatMessage::getContent, bo.getContent()); + lqw.eq(StringUtils.isNotBlank(bo.getRole()), ChatMessage::getRole, bo.getRole()); + lqw.eq(bo.getDeductCost() != null, ChatMessage::getDeductCost, bo.getDeductCost()); + lqw.eq(bo.getTotalTokens() != null, ChatMessage::getTotalTokens, bo.getTotalTokens()); + lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatMessage::getModelName, bo.getModelName()); + return lqw; + } + + /** + * 新增聊天消息 + */ + @Override + public Boolean insertByBo(ChatMessageBo bo) { + ChatMessage add = MapstructUtils.convert(bo, ChatMessage.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改聊天消息 + */ + @Override + public Boolean updateByBo(ChatMessageBo bo) { + ChatMessage update = MapstructUtils.convert(bo, ChatMessage.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatMessage entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除聊天消息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java new file mode 100644 index 00000000..26d4533b --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java @@ -0,0 +1,118 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatModel; +import org.ruoyi.domain.bo.ChatModelBo; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.mapper.ChatModelMapper; +import org.ruoyi.service.IChatModelService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 聊天模型Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatModelServiceImpl implements IChatModelService { + + private final ChatModelMapper baseMapper; + + /** + * 查询聊天模型 + */ + @Override + public ChatModelVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询聊天模型列表 + */ + @Override + public TableDataInfo queryPageList(ChatModelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询聊天模型列表 + */ + @Override + public List queryList(ChatModelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatModelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatModel::getCategory, bo.getCategory()); + lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatModel::getModelName, bo.getModelName()); + lqw.eq(StringUtils.isNotBlank(bo.getModelDescribe()), ChatModel::getModelDescribe, bo.getModelDescribe()); + lqw.eq(bo.getModelPrice() != null, ChatModel::getModelPrice, bo.getModelPrice()); + lqw.eq(StringUtils.isNotBlank(bo.getModelType()), ChatModel::getModelType, bo.getModelType()); + lqw.eq(StringUtils.isNotBlank(bo.getModelShow()), ChatModel::getModelShow, bo.getModelShow()); + lqw.eq(StringUtils.isNotBlank(bo.getSystemPrompt()), ChatModel::getSystemPrompt, bo.getSystemPrompt()); + lqw.eq(StringUtils.isNotBlank(bo.getApiHost()), ChatModel::getApiHost, bo.getApiHost()); + lqw.eq(StringUtils.isNotBlank(bo.getApiKey()), ChatModel::getApiKey, bo.getApiKey()); + return lqw; + } + + /** + * 新增聊天模型 + */ + @Override + public Boolean insertByBo(ChatModelBo bo) { + ChatModel add = MapstructUtils.convert(bo, ChatModel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改聊天模型 + */ + @Override + public Boolean updateByBo(ChatModelBo bo) { + ChatModel update = MapstructUtils.convert(bo, ChatModel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatModel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除聊天模型 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java new file mode 100644 index 00000000..0d920542 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPackagePlanServiceImpl.java @@ -0,0 +1,113 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatPackagePlan; +import org.ruoyi.domain.bo.ChatPackagePlanBo; +import org.ruoyi.domain.vo.ChatPackagePlanVo; +import org.ruoyi.mapper.ChatPackagePlanMapper; +import org.ruoyi.service.IChatPackagePlanService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 套餐管理Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatPackagePlanServiceImpl implements IChatPackagePlanService { + + private final ChatPackagePlanMapper baseMapper; + + /** + * 查询套餐管理 + */ + @Override + public ChatPackagePlanVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询套餐管理列表 + */ + @Override + public TableDataInfo queryPageList(ChatPackagePlanBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询套餐管理列表 + */ + @Override + public List queryList(ChatPackagePlanBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatPackagePlanBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getName()), ChatPackagePlan::getName, bo.getName()); + lqw.eq(bo.getPrice() != null, ChatPackagePlan::getPrice, bo.getPrice()); + lqw.eq(bo.getDuration() != null, ChatPackagePlan::getDuration, bo.getDuration()); + lqw.eq(StringUtils.isNotBlank(bo.getPlanDetail()), ChatPackagePlan::getPlanDetail, bo.getPlanDetail()); + return lqw; + } + + /** + * 新增套餐管理 + */ + @Override + public Boolean insertByBo(ChatPackagePlanBo bo) { + ChatPackagePlan add = MapstructUtils.convert(bo, ChatPackagePlan.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改套餐管理 + */ + @Override + public Boolean updateByBo(ChatPackagePlanBo bo) { + ChatPackagePlan update = MapstructUtils.convert(bo, ChatPackagePlan.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatPackagePlan entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除套餐管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java new file mode 100644 index 00000000..386f1419 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPayOrderServiceImpl.java @@ -0,0 +1,115 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatPayOrder; +import org.ruoyi.domain.bo.ChatPayOrderBo; +import org.ruoyi.domain.vo.ChatPayOrderVo; +import org.ruoyi.mapper.ChatPayOrderMapper; +import org.ruoyi.service.IChatPayOrderService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 支付订单Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatPayOrderServiceImpl implements IChatPayOrderService { + + private final ChatPayOrderMapper baseMapper; + + /** + * 查询支付订单 + */ + @Override + public ChatPayOrderVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询支付订单列表 + */ + @Override + public TableDataInfo queryPageList(ChatPayOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询支付订单列表 + */ + @Override + public List queryList(ChatPayOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatPayOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), ChatPayOrder::getOrderNo, bo.getOrderNo()); + lqw.like(StringUtils.isNotBlank(bo.getOrderName()), ChatPayOrder::getOrderName, bo.getOrderName()); + lqw.eq(bo.getAmount() != null, ChatPayOrder::getAmount, bo.getAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), ChatPayOrder::getPaymentStatus, bo.getPaymentStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), ChatPayOrder::getPaymentMethod, bo.getPaymentMethod()); + lqw.eq(bo.getUserId() != null, ChatPayOrder::getUserId, bo.getUserId()); + return lqw; + } + + /** + * 新增支付订单 + */ + @Override + public Boolean insertByBo(ChatPayOrderBo bo) { + ChatPayOrder add = MapstructUtils.convert(bo, ChatPayOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改支付订单 + */ + @Override + public Boolean updateByBo(ChatPayOrderBo bo) { + ChatPayOrder update = MapstructUtils.convert(bo, ChatPayOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatPayOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除支付订单 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java new file mode 100644 index 00000000..1dd9e0a3 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatPluginServiceImpl.java @@ -0,0 +1,110 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatPlugin; +import org.ruoyi.domain.bo.ChatPluginBo; +import org.ruoyi.domain.vo.ChatPluginVo; +import org.ruoyi.mapper.ChatPluginMapper; +import org.ruoyi.service.IChatPluginService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 插件管理Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatPluginServiceImpl implements IChatPluginService { + + private final ChatPluginMapper baseMapper; + + /** + * 查询插件管理 + */ + @Override + public ChatPluginVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询插件管理列表 + */ + @Override + public TableDataInfo queryPageList(ChatPluginBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询插件管理列表 + */ + @Override + public List queryList(ChatPluginBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatPluginBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getName()), ChatPlugin::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatPlugin::getCode, bo.getCode()); + return lqw; + } + + /** + * 新增插件管理 + */ + @Override + public Boolean insertByBo(ChatPluginBo bo) { + ChatPlugin add = MapstructUtils.convert(bo, ChatPlugin.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改插件管理 + */ + @Override + public Boolean updateByBo(ChatPluginBo bo) { + ChatPlugin update = MapstructUtils.convert(bo, ChatPlugin.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatPlugin entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除插件管理 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java new file mode 100644 index 00000000..f8ab361e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatVoucherServiceImpl.java @@ -0,0 +1,114 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatVoucher; +import org.ruoyi.domain.bo.ChatVoucherBo; +import org.ruoyi.domain.vo.ChatVoucherVo; +import org.ruoyi.mapper.ChatVoucherMapper; +import org.ruoyi.service.IChatVoucherService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 用户兑换记录Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatVoucherServiceImpl implements IChatVoucherService { + + private final ChatVoucherMapper baseMapper; + + /** + * 查询用户兑换记录 + */ + @Override + public ChatVoucherVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询用户兑换记录列表 + */ + @Override + public TableDataInfo queryPageList(ChatVoucherBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询用户兑换记录列表 + */ + @Override + public List queryList(ChatVoucherBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatVoucherBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCode()), ChatVoucher::getCode, bo.getCode()); + lqw.eq(bo.getAmount() != null, ChatVoucher::getAmount, bo.getAmount()); + lqw.eq(bo.getUserId() != null, ChatVoucher::getUserId, bo.getUserId()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), ChatVoucher::getStatus, bo.getStatus()); + lqw.eq(bo.getBalanceBefore() != null, ChatVoucher::getBalanceBefore, bo.getBalanceBefore()); + lqw.eq(bo.getBalanceAfter() != null, ChatVoucher::getBalanceAfter, bo.getBalanceAfter()); + return lqw; + } + + /** + * 新增用户兑换记录 + */ + @Override + public Boolean insertByBo(ChatVoucherBo bo) { + ChatVoucher add = MapstructUtils.convert(bo, ChatVoucher.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改用户兑换记录 + */ + @Override + public Boolean updateByBo(ChatVoucherBo bo) { + ChatVoucher update = MapstructUtils.convert(bo, ChatVoucher.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatVoucher entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除用户兑换记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml new file mode 100644 index 00000000..cfa640db --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAgentManageMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml new file mode 100644 index 00000000..53b29af4 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatAppStoreMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml new file mode 100644 index 00000000..cc22a8f6 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatGptsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml new file mode 100644 index 00000000..000a091c --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatMessageMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml new file mode 100644 index 00000000..4e5a30e4 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatModelMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml new file mode 100644 index 00000000..9875672a --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPackagePlanMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml new file mode 100644 index 00000000..ca5ab53c --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPayOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml new file mode 100644 index 00000000..f1dacfb8 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatPluginMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml new file mode 100644 index 00000000..9ef2787c --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatVoucherMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml similarity index 100% rename from ruoyi-admin/src/main/resources/application-dev.yml rename to ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml From be6d027cad632cdfb32853250eddb21163b42ae0 Mon Sep 17 00:00:00 2001 From: ageerle Date: Wed, 9 Apr 2025 09:42:14 +0800 Subject: [PATCH 04/27] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/批量代码生成_1744118848843.zip | Bin 169133 -> 0 bytes script/批量代码生成_1744118860425.zip | Bin 33805 -> 0 bytes script/批量代码生成_1744118916838.zip | Bin 51586 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 script/批量代码生成_1744118848843.zip delete mode 100644 script/批量代码生成_1744118860425.zip delete mode 100644 script/批量代码生成_1744118916838.zip diff --git a/script/批量代码生成_1744118848843.zip b/script/批量代码生成_1744118848843.zip deleted file mode 100644 index 341fc2a2d78fa95a4312625477e71df24b08b644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169133 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

<2i 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

l0YPiuHu~Yg9+Dep4WsRJj0Y%5d&M9$CEM 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%0AyG>4%lE+1$C=#OVX~hT9u{#2RXO(a?(a+2ADW8( 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�G=0{z)GA)^cqN5F$r=)3}d4I5&Ni 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 Q|M5o_3IHJA>HA;*58_h~00000 diff --git a/script/批量代码生成_1744118916838.zip b/script/批量代码生成_1744118916838.zip deleted file mode 100644 index c59024f1172e8b08894d4089aa28882ed7e2fc08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51586 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 j-A@jDiBq~5iNla3 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 CdH Date: Wed, 9 Apr 2025 17:41:29 +0800 Subject: [PATCH 05/27] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E7=9F=A5?= =?UTF-8?q?=E8=AF=86=E5=BA=93=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 24 +- ruoyi-common/ruoyi-common-bom/pom.xml | 4 +- ruoyi-common/ruoyi-common-chat/pom.xml | 4 - ruoyi-common/ruoyi-common-core/pom.xml | 20 +- ruoyi-modules-api/pom.xml | 35 +- ruoyi-modules-api/ruoyi-chat-api/pom.xml | 7 + .../java/org/ruoyi/domain/ChatMessage.java | 2 - .../java/org/ruoyi/domain/ChatRobConfig.java | 28 +- .../java/org/ruoyi/domain/ChatUsageToken.java | 51 ++ .../org/ruoyi/domain/bo/ChatRobConfigBo.java | 72 ++ .../org/ruoyi/domain/bo/ChatUsageTokenBo.java | 54 ++ .../org/ruoyi/domain/bo/ChatVoucherBo.java | 2 +- .../domain/request}/TranslationRequest.java | 2 +- .../org/ruoyi/domain/vo/ChatRobConfigVo.java | 44 +- .../org/ruoyi/domain/vo/ChatUsageTokenVo.java | 61 ++ .../org/ruoyi/domain/vo/ChatVoucherVo.java | 3 +- .../org/ruoyi/mapper/ChatRobConfigMapper.java | 16 + .../ruoyi/mapper/ChatUsageTokenMapper.java | 16 + .../org/ruoyi/service/IChatModelService.java | 6 + .../org/ruoyi/service/IChatTokenService.java | 7 +- .../ruoyi/service/IChatUsageTokenService.java | 49 ++ .../service/IChatVisitorUsageService.java | 4 +- .../service/impl/ChatModelServiceImpl.java | 8 + .../impl/ChatUsageTokenServiceImpl.java | 112 +++ ruoyi-modules-api/ruoyi-knowledge-api/pom.xml | 31 + .../ruoyi}/chain/loader/CodeFileLoader.java | 6 +- .../ruoyi}/chain/loader/CsvFileLoader.java | 6 +- .../org/ruoyi}/chain/loader/FolderLoader.java | 2 +- .../org/ruoyi}/chain/loader/GithubLoader.java | 6 +- .../ruoyi}/chain/loader/JsonFileLoader.java | 6 +- .../chain/loader/MarkDownFileLoader.java | 7 +- .../ruoyi}/chain/loader/PdfFileLoader.java | 7 +- .../ruoyi}/chain/loader/ResourceLoader.java | 2 +- .../chain/loader/ResourceLoaderFactory.java | 12 +- .../ruoyi}/chain/loader/TextFileLoader.java | 4 +- .../org/ruoyi}/chain/loader/WordLoader.java | 7 +- .../chain/split/CharacterTextSplitter.java | 7 +- .../ruoyi}/chain/split/CodeTextSplitter.java | 5 +- .../chain/split/MarkdownTextSplitter.java | 2 +- .../org/ruoyi}/chain/split/TextSplitter.java | 2 +- .../ruoyi}/chain/split/TokenTextSplitter.java | 5 +- .../java/org/ruoyi}/constant/FileType.java | 2 +- .../org/ruoyi}/domain/KnowledgeAttach.java | 28 +- .../org/ruoyi}/domain/KnowledgeFragment.java | 23 +- .../java/org/ruoyi}/domain/KnowledgeInfo.java | 32 +- .../ruoyi/domain/bo/KnowledgeAttachBo.java | 66 ++ .../ruoyi/domain/bo/KnowledgeFragmentBo.java | 66 ++ .../org/ruoyi/domain/bo/KnowledgeInfoBo.java | 108 +++ .../ruoyi}/domain/vo/KnowledgeAttachVo.java | 17 +- .../ruoyi}/domain/vo/KnowledgeFragmentVo.java | 20 +- .../org/ruoyi}/domain/vo/KnowledgeInfoVo.java | 29 +- .../ruoyi}/mapper/KnowledgeAttachMapper.java | 11 +- .../mapper/KnowledgeFragmentMapper.java | 11 +- .../ruoyi}/mapper/KnowledgeInfoMapper.java | 11 +- .../org/ruoyi}/service/EmbeddingService.java | 2 +- .../service/IKnowledgeAttachService.java | 19 +- .../service/IKnowledgeFragmentService.java | 13 +- .../ruoyi}/service/IKnowledgeInfoService.java | 39 +- .../org/ruoyi/service/VectorStoreService.java | 4 +- .../ruoyi/service/VectorizationService.java | 7 +- .../service/impl/EmbeddingServiceImpl.java | 12 +- .../impl/KnowledgeAttachServiceImpl.java | 49 +- .../impl/KnowledgeFragmentServiceImpl.java | 28 +- .../impl/KnowledgeInfoServiceImpl.java | 120 +++ .../org/ruoyi/system/domain/SysCache.java | 0 .../org/ruoyi/system/domain/SysConfig.java | 0 .../java/org/ruoyi/system/domain/SysDept.java | 0 .../org/ruoyi/system/domain/SysDictData.java | 0 .../org/ruoyi/system/domain/SysDictType.java | 0 .../ruoyi/system/domain/SysLogininfor.java | 0 .../java/org/ruoyi/system/domain/SysMenu.java | 0 .../org/ruoyi/system/domain/SysNotice.java | 0 .../ruoyi/system/domain/SysNoticeState.java | 0 .../org/ruoyi/system/domain/SysOperLog.java | 0 .../java/org/ruoyi/system/domain/SysOss.java | 0 .../org/ruoyi/system/domain/SysOssConfig.java | 0 .../java/org/ruoyi/system/domain/SysPost.java | 0 .../java/org/ruoyi/system/domain/SysRole.java | 0 .../org/ruoyi/system/domain/SysRoleDept.java | 0 .../org/ruoyi/system/domain/SysRoleMenu.java | 0 .../org/ruoyi/system/domain/SysTenant.java | 0 .../ruoyi/system/domain/SysTenantPackage.java | 0 .../java/org/ruoyi/system/domain/SysUser.java | 1 - .../ruoyi/system/domain/SysUserOnline.java | 0 .../org/ruoyi/system/domain/SysUserPost.java | 0 .../org/ruoyi/system/domain/SysUserRole.java | 0 .../ruoyi/system/domain/bo/SysConfigBo.java | 0 .../org/ruoyi/system/domain/bo/SysDeptBo.java | 0 .../ruoyi/system/domain/bo/SysDictDataBo.java | 0 .../ruoyi/system/domain/bo/SysDictTypeBo.java | 0 .../system/domain/bo/SysLogininforBo.java | 0 .../org/ruoyi/system/domain/bo/SysMenuBo.java | 0 .../ruoyi/system/domain/bo/SysNoticeBo.java | 0 .../system/domain/bo/SysNoticeStateBo.java | 0 .../ruoyi/system/domain/bo/SysOperLogBo.java | 0 .../org/ruoyi/system/domain/bo/SysOssBo.java | 0 .../system/domain/bo/SysOssConfigBo.java | 0 .../org/ruoyi/system/domain/bo/SysPostBo.java | 0 .../org/ruoyi/system/domain/bo/SysRoleBo.java | 0 .../ruoyi/system/domain/bo/SysTenantBo.java | 0 .../system/domain/bo/SysTenantPackageBo.java | 0 .../org/ruoyi/system/domain/bo/SysUserBo.java | 0 .../system/domain/bo/SysUserPasswordBo.java | 0 .../system/domain/bo/SysUserProfileBo.java | 0 .../system/domain/request/EmailRequest.java | 0 .../system/domain/request/OrderRequest.java | 0 .../system/domain/request/UserRequest.java | 0 .../org/ruoyi/system/domain/vo/AvatarVo.java | 0 .../system/domain/vo/CacheListInfoVo.java | 0 .../org/ruoyi/system/domain/vo/CaptchaVo.java | 0 .../system/domain/vo/DeptTreeSelectVo.java | 0 .../ruoyi/system/domain/vo/LoginTenantVo.java | 0 .../org/ruoyi/system/domain/vo/LoginVo.java | 0 .../system/domain/vo/MenuTreeSelectVo.java | 0 .../org/ruoyi/system/domain/vo/MetaVo.java | 0 .../org/ruoyi/system/domain/vo/ProfileVo.java | 0 .../org/ruoyi/system/domain/vo/RouterVo.java | 0 .../ruoyi/system/domain/vo/SysConfigVo.java | 0 .../org/ruoyi/system/domain/vo/SysDeptVo.java | 0 .../ruoyi/system/domain/vo/SysDictDataVo.java | 0 .../ruoyi/system/domain/vo/SysDictTypeVo.java | 0 .../system/domain/vo/SysLogininforVo.java | 0 .../org/ruoyi/system/domain/vo/SysMenuVo.java | 0 .../system/domain/vo/SysNoticeStateVo.java | 0 .../ruoyi/system/domain/vo/SysNoticeVo.java | 20 +- .../ruoyi/system/domain/vo/SysOperLogVo.java | 0 .../system/domain/vo/SysOssConfigVo.java | 0 .../system/domain/vo/SysOssUploadVo.java | 0 .../org/ruoyi/system/domain/vo/SysOssVo.java | 0 .../org/ruoyi/system/domain/vo/SysPostVo.java | 0 .../org/ruoyi/system/domain/vo/SysRoleVo.java | 0 .../system/domain/vo/SysTenantPackageVo.java | 0 .../ruoyi/system/domain/vo/SysTenantVo.java | 0 .../system/domain/vo/SysUserExportVo.java | 0 .../system/domain/vo/SysUserImportVo.java | 0 .../ruoyi/system/domain/vo/SysUserInfoVo.java | 0 .../system/domain/vo/SysUserModelVo.java | 1 - .../system/domain/vo/SysUserOptionVo.java | 0 .../org/ruoyi/system/domain/vo/SysUserVo.java | 0 .../ruoyi/system/domain/vo/TenantListVo.java | 0 .../ruoyi/system/domain/vo/UserInfoVo.java | 0 .../system/mapper/ChatAppStoreMapper.java | 0 .../ruoyi/system/mapper/ChatConfigMapper.java | 0 .../ruoyi/system/mapper/ChatGptsMapper.java | 0 .../system/mapper/ChatMessageMapper.java | 0 .../ruoyi/system/mapper/ChatPluginMapper.java | 0 .../ruoyi/system/mapper/ChatTokenMapper.java | 0 .../system/mapper/ChatVisitorUsageMapper.java | 0 .../system/mapper/ChatVoucherMapper.java | 0 .../org/ruoyi/system/mapper/CoverMapper.java | 1 - .../system/mapper/CoverPromptAudioMapper.java | 1 - .../system/mapper/PaymentOrdersMapper.java | 2 - .../ruoyi/system/mapper/SysConfigMapper.java | 0 .../ruoyi/system/mapper/SysDeptMapper.java | 0 .../system/mapper/SysDictDataMapper.java | 0 .../system/mapper/SysDictTypeMapper.java | 0 .../system/mapper/SysLogininforMapper.java | 0 .../ruoyi/system/mapper/SysMenuMapper.java | 0 .../ruoyi/system/mapper/SysModelMapper.java | 2 - .../ruoyi/system/mapper/SysNoticeMapper.java | 0 .../system/mapper/SysNoticeStateMapper.java | 0 .../ruoyi/system/mapper/SysOperLogMapper.java | 0 .../system/mapper/SysOssConfigMapper.java | 0 .../org/ruoyi/system/mapper/SysOssMapper.java | 0 .../system/mapper/SysPackagePlanMapper.java | 2 - .../ruoyi/system/mapper/SysPostMapper.java | 0 .../system/mapper/SysRoleDeptMapper.java | 0 .../ruoyi/system/mapper/SysRoleMapper.java | 0 .../system/mapper/SysRoleMenuMapper.java | 0 .../ruoyi/system/mapper/SysTenantMapper.java | 0 .../system/mapper/SysTenantPackageMapper.java | 0 .../system/mapper/SysUserGroupMapper.java | 2 - .../ruoyi/system/mapper/SysUserMapper.java | 0 .../system/mapper/SysUserModelMapper.java | 1 - .../system/mapper/SysUserPostMapper.java | 0 .../system/mapper/SysUserRoleMapper.java | 0 .../system/mapper/WxRobConfigMapper.java | 2 - .../system/mapper/WxRobKeywordMapper.java | 2 - .../system/mapper/WxRobRelationMapper.java | 2 - .../runner/SystemApplicationRunner.java | 4 +- .../system/service/ISysConfigService.java | 0 .../system/service/ISysDataScopeService.java | 0 .../ruoyi/system/service/ISysDeptService.java | 0 .../system/service/ISysDictDataService.java | 0 .../system/service/ISysDictTypeService.java | 0 .../system/service/ISysLogininforService.java | 0 .../ruoyi/system/service/ISysMenuService.java | 0 .../system/service/ISysNoticeService.java | 0 .../service/ISysNoticeStateService.java | 0 .../system/service/ISysOperLogService.java | 0 .../system/service/ISysOssConfigService.java | 0 .../ruoyi/system/service/ISysOssService.java | 0 .../system/service/ISysPermissionService.java | 0 .../ruoyi/system/service/ISysPostService.java | 0 .../ruoyi/system/service/ISysRoleService.java | 0 .../service/ISysTenantPackageService.java | 0 .../system/service/ISysTenantService.java | 0 .../ruoyi/system/service/ISysUserService.java | 0 .../ruoyi/system/service/SysLoginService.java | 14 +- .../system/service/SysRegisterService.java | 0 .../service/impl/SysConfigServiceImpl.java | 0 .../service/impl/SysDataScopeServiceImpl.java | 0 .../service/impl/SysDeptServiceImpl.java | 0 .../service/impl/SysDictDataServiceImpl.java | 0 .../service/impl/SysDictTypeServiceImpl.java | 0 .../impl/SysLogininforServiceImpl.java | 0 .../service/impl/SysMenuServiceImpl.java | 0 .../service/impl/SysNoticeServiceImpl.java | 0 .../impl/SysNoticeStateServiceImpl.java | 0 .../service/impl/SysOperLogServiceImpl.java | 0 .../service/impl/SysOssConfigServiceImpl.java | 0 .../service/impl/SysOssServiceImpl.java | 0 .../impl/SysPermissionServiceImpl.java | 0 .../service/impl/SysPostServiceImpl.java | 0 .../service/impl/SysRoleServiceImpl.java | 0 .../service/impl/SysSensitiveServiceImpl.java | 0 .../impl/SysTenantPackageServiceImpl.java | 0 .../service/impl/SysTenantServiceImpl.java | 0 .../service/impl/SysUserGroupServiceImpl.java | 4 - .../service/impl/SysUserServiceImpl.java | 0 .../java/org/ruoyi/system/util/AesUtils.java | 0 .../ruoyi/system/util/AudioOkHttpUtil.java | 0 .../system/util/DesensitizationUtil.java | 0 .../java/org/ruoyi/system/util/HttpUtils.java | 0 .../java/org/ruoyi/system/util/KeyUtils.java | 0 .../system/util/OrderNumberGenerator.java | 0 .../java/org/ruoyi/system/util/WddPptApi.java | 0 .../ruoyi/system/util/WeChatScanHttpUtil.java | 0 .../org/ruoyi/system/util/WeixinApiUtil.java | 4 +- .../org/ruoyi/system/util/WeixinMsgUtil.java | 0 .../system/util/WeixinQrCodeCacheUtil.java | 0 .../java/org/ruoyi/system/util/XmlUtil.java | 0 .../main/resources/mapper}/CoverMapper.xml | 0 .../mapper}/CoverPromptAudioMapper.xml | 0 .../resources/mapper}/PaymentOrdersMapper.xml | 0 .../resources/mapper}/SysConfigMapper.xml | 0 .../main/resources/mapper}/SysDeptMapper.xml | 0 .../resources/mapper}/SysDictDataMapper.xml | 0 .../resources/mapper}/SysDictTypeMapper.xml | 0 .../resources/mapper}/SysLogininforMapper.xml | 0 .../main/resources/mapper}/SysMenuMapper.xml | 0 .../main/resources/mapper}/SysModelMapper.xml | 0 .../resources/mapper}/SysNoticeMapper.xml | 0 .../mapper}/SysNoticeStateMapper.xml | 0 .../resources/mapper}/SysOperLogMapper.xml | 0 .../resources/mapper}/SysOssConfigMapper.xml | 0 .../main/resources/mapper}/SysOssMapper.xml | 0 .../mapper}/SysPackagePlanMapper.xml | 0 .../main/resources/mapper}/SysPostMapper.xml | 0 .../resources/mapper}/SysRoleDeptMapper.xml | 0 .../main/resources/mapper}/SysRoleMapper.xml | 0 .../resources/mapper}/SysRoleMenuMapper.xml | 0 .../resources/mapper}/SysTenantMapper.xml | 0 .../mapper}/SysTenantPackageMapper.xml | 0 .../main/resources/mapper}/SysUserMapper.xml | 0 .../resources/mapper}/SysUserPostMapper.xml | 0 .../resources/mapper}/SysUserRoleMapper.xml | 0 .../resources/mapper}/WxRobConfigMapper.xml | 0 .../resources/mapper}/WxRobKeywordMapper.xml | 0 .../resources/mapper}/WxRobRelationMapper.xml | 0 ruoyi-modules/pom.xml | 1 - ruoyi-modules/ruoyi-chat/pom.xml | 16 +- .../ruoyi/chat/controller/ChatController.java | 29 +- .../chat/controller/SubmitController.java | 2 +- .../ruoyi/chat/controller/TaskController.java | 2 +- .../chat/{ => domain}/dto/BaseSubmitDTO.java | 2 +- .../{ => domain}/dto/SubmitActionDTO.java | 2 +- .../chat/{ => domain}/dto/SubmitBlendDTO.java | 2 +- .../{ => domain}/dto/SubmitChangeDTO.java | 2 +- .../{ => domain}/dto/SubmitDescribeDTO.java | 2 +- .../{ => domain}/dto/SubmitImagineDTO.java | 2 +- .../chat/{ => domain}/dto/SubmitModalDTO.java | 2 +- .../{ => domain}/dto/SubmitShortenDTO.java | 2 +- .../dto/SubmitSimpleChangeDTO.java | 2 +- .../{ => domain}/dto/TaskConditionDTO.java | 2 +- .../listener/SSEEventSourceListener.java | 53 +- .../chat/service/chat}/IChatCostService.java | 8 +- .../ruoyi/chat/service/chat}/ISseService.java | 51 +- .../service/chat/impl/SseServiceImpl.java | 292 ++++++++ .../vectorizer/BgeLargeVectorization.java | 17 +- .../vectorizer/OpenAiVectorization.java | 15 +- .../vectorizer/VectorizationFactory.java | 12 +- .../vectorstore/MilvusVectorStore.java | 7 +- .../vectorstore/VectorStoreFactory.java | 9 +- .../vectorstore/WeaviateVectorStore.java | 12 +- ruoyi-modules/ruoyi-device/pom.xml | 21 - ruoyi-modules/ruoyi-knowledge/pom.xml | 203 ------ .../vectorizer/LocalModelsVectorization.java | 92 --- .../chain/vectorizer/VectorizationType.java | 15 - .../vectorizer/VectorizationWrapper.java | 32 - .../chain/vectorstore/VectorStoreWrapper.java | 59 -- .../domain/bo/KnowledgeAttachBo.java | 56 -- .../domain/bo/KnowledgeFragmentBo.java | 59 -- .../knowledge/domain/bo/KnowledgeInfoBo.java | 99 --- .../req/KnowledgeInfoUploadRequest.java | 13 - .../org/ruoyi/knowledge/domain/request.java | 4 - .../impl/KnowledgeInfoServiceImpl.java | 200 ----- ruoyi-modules/ruoyi-system/pom.xml | 14 +- .../ruoyi/system/builder/AbstractBuilder.java | 16 - .../ruoyi/system/builder/ImageBuilder.java | 25 - .../org/ruoyi/system/builder/TextBuilder.java | 22 - .../org/ruoyi/system/cofing/GptConfig.java | 31 - .../org/ruoyi/system/cofing/OkHttpConfig.java | 49 -- .../org/ruoyi/system/cofing/QqConfig.java | 21 - .../system/cofing/WxCpConfiguration.java | 130 ---- .../ruoyi/system/cofing/WxCpProperties.java | 48 -- .../system/cofing/WxMaConfiguration.java | 132 ---- .../ruoyi/system/cofing/WxMaProperties.java | 52 -- .../system/ChatConfigController.java | 129 ---- .../controller/system/ChatGptsController.java | 102 --- .../system/ChatMessageController.java | 117 --- .../system/ChatPluginController.java | 102 --- .../system/ChatStoreController.java | 38 - .../system/ChatVisitorUsageController.java | 103 --- .../system/ChatVoucherController.java | 120 --- .../system/KnowledgeController.java | 184 ----- .../controller/system/PayController.java | 333 --------- .../system/PaymentOrdersController.java | 108 --- .../controller/system/SysModelController.java | 153 ---- .../system/SysNoticeController.java | 2 +- .../system/SysPackagePlanController.java | 114 --- .../system/SysUserGroupController.java | 106 --- .../system/SysUserModelController.java | 105 --- .../controller/system/WeChatController.java | 81 --- .../system/WeixinServerController.java | 48 -- .../system/WeixinUserController.java | 55 -- .../system/WxRobConfigController.java | 114 --- .../system/WxRobKeywordController.java | 106 --- .../controller/wxsingle/WxJsController.java | 62 -- .../wxsingle/WxPortalController.java | 85 --- .../java/org/ruoyi/system/domain/Cover.java | 58 -- .../ruoyi/system/domain/CoverPromptAudio.java | 38 - .../org/ruoyi/system/domain/GenerateLuma.java | 22 - .../ruoyi/system/domain/GenerateLyric.java | 23 - .../org/ruoyi/system/domain/GenerateSuno.java | 64 -- .../org/ruoyi/system/domain/PaymentOrder.java | 67 -- .../org/ruoyi/system/domain/SysModel.java | 84 --- .../ruoyi/system/domain/SysPackagePlan.java | 58 -- .../org/ruoyi/system/domain/SysUserGroup.java | 58 -- .../org/ruoyi/system/domain/SysUserModel.java | 42 -- .../org/ruoyi/system/domain/WxRobKeyword.java | 67 -- .../ruoyi/system/domain/WxRobRelation.java | 62 -- .../system/domain/bo/PaymentOrdersBo.java | 76 -- .../ruoyi/system/domain/bo/SysModelBo.java | 89 --- .../system/domain/bo/SysPackagePlanBo.java | 61 -- .../system/domain/bo/SysUserGroupBo.java | 48 -- .../system/domain/bo/SysUserModelBo.java | 42 -- .../ruoyi/system/domain/bo/WxRobConfigBo.java | 63 -- .../system/domain/bo/WxRobKeywordBo.java | 73 -- .../system/domain/bo/WxRobRelationBo.java | 67 -- .../ruoyi/system/domain/model/ApiResult.java | 31 - .../system/domain/model/ReceiveMessage.java | 58 -- .../system/domain/model/WeixinQrCode.java | 15 - .../system/domain/vo/PaymentOrdersVo.java | 93 --- .../ruoyi/system/domain/vo/SysModelVo.java | 94 --- .../system/domain/vo/SysPackagePlanVo.java | 65 -- .../system/domain/vo/SysUserGroupVo.java | 52 -- .../system/domain/vo/WxRobKeywordVo.java | 77 -- .../system/domain/vo/WxRobRelationVo.java | 71 -- .../domain/vo/cover/CoverCallbackVo.java | 24 - .../system/domain/vo/cover/CoverParamVo.java | 60 -- .../domain/vo/cover/CoverPromptAudioVo.java | 44 -- .../ruoyi/system/domain/vo/cover/CoverVo.java | 68 -- .../ruoyi/system/domain/vo/cover/MusicVo.java | 35 - .../system/domain/vo/ppt/PptAllQueryDto.java | 29 - .../domain/vo/ppt/PptGenerateContentDto.java | 27 - .../domain/vo/ppt/PptGenerateOutlineDto.java | 25 - .../domain/vo/ppt/PptGeneratePptxDto.java | 24 - .../domain/vo/ppt/PptTemplateFilterDto.java | 24 - .../domain/vo/ppt/PptTemplateQueryDto.java | 19 - .../ruoyi/system/handler/MyMsgHandler.java | 230 ------ .../system/handler/wxcp/AbstractHandler.java | 9 - .../handler/wxcp/ContactChangeHandler.java | 33 - .../handler/wxcp/EnterAgentHandler.java | 29 - .../system/handler/wxcp/LocationHandler.java | 44 -- .../ruoyi/system/handler/wxcp/LogHandler.java | 26 - .../system/handler/wxcp/MenuHandler.java | 34 - .../ruoyi/system/handler/wxcp/MsgHandler.java | 46 -- .../system/handler/wxcp/NullHandler.java | 23 - .../system/handler/wxcp/ScanHandler.java | 8 - .../system/handler/wxcp/SubscribeHandler.java | 63 -- .../handler/wxcp/UnsubscribeHandler.java | 28 - .../CustomerBigDecimalSerialize.java | 2 +- .../org/ruoyi/system/request/RoleListDto.java | 24 - .../org/ruoyi/system/request/RoleRequest.java | 36 - .../system/request/SimpleGenerateRequest.java | 63 -- .../system/response/MetadataResponse.java | 27 - .../ruoyi/system/response/PromptResponse.java | 29 - .../system/response/RoleDataResponse.java | 35 - .../ruoyi/system/response/RoleResponse.java | 22 - .../response/SimpleGenerateDataResponse.java | 30 - .../response/SimpleGenerateResponse.java | 25 - .../response/rolelist/ChatAppStoreVO.java | 19 - .../response/rolelist/ContentResponse.java | 78 -- .../response/rolelist/RoleListResponse.java | 24 - .../service/ICoverPromptAudioService.java | 11 - .../ruoyi/system/service/ICoverService.java | 49 -- .../system/service/IPaymentOrdersService.java | 62 -- .../org/ruoyi/system/service/IPptService.java | 63 -- .../system/service/ISysModelService.java | 54 -- .../service/ISysPackagePlanService.java | 48 -- .../system/service/ISysUserGroupService.java | 48 -- .../system/service/ISysUserModelService.java | 48 -- .../system/service/IWxRobConfigService.java | 48 -- .../system/service/IWxRobKeywordService.java | 48 -- .../system/service/IWxRobRelationService.java | 48 -- .../system/service/WeixinUserService.java | 12 - .../impl/CoverPromptAudioServiceImpl.java | 22 - .../system/service/impl/CoverServiceImpl.java | 133 ---- .../impl/PaymentOrdersServiceImpl.java | 211 ------ .../system/service/impl/PptServiceImpl.java | 136 ---- .../system/service/impl/SseServiceImpl.java | 685 ------------------ .../service/impl/SysModelServiceImpl.java | 118 --- .../impl/SysPackagePlanServiceImpl.java | 112 --- .../service/impl/SysUserModelServiceImpl.java | 109 --- .../service/impl/WeixinUserServiceImpl.java | 65 -- .../service/impl/WxRobConfigServiceImpl.java | 138 ---- .../service/impl/WxRobKeywordServiceImpl.java | 115 --- .../impl/WxRobRelationServiceImpl.java | 114 --- ruoyi-modules/ruoyi-weixin/pom.xml | 21 - script/docker/localModels/Dockerfile | 26 - script/docker/localModels/app.py | 116 --- script/docker/localModels/remade.md | 4 - script/docker/localModels/requirements.txt | 5 - 424 files changed, 1584 insertions(+), 10005 deletions(-) rename ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java (78%) create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request}/TranslationRequest.java (86%) rename ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java => ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java (61%) create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/CodeFileLoader.java (87%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/CsvFileLoader.java (66%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/FolderLoader.java (88%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/GithubLoader.java (66%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/JsonFileLoader.java (65%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/MarkDownFileLoader.java (85%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/PdfFileLoader.java (83%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/ResourceLoader.java (84%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/ResourceLoaderFactory.java (77%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/TextFileLoader.java (92%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/loader/WordLoader.java (84%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/split/CharacterTextSplitter.java (92%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/split/CodeTextSplitter.java (68%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/split/MarkdownTextSplitter.java (89%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/split/TextSplitter.java (87%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/chain/split/TokenTextSplitter.java (68%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/constant/FileType.java (98%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/KnowledgeAttach.java (57%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/KnowledgeFragment.java (69%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/KnowledgeInfo.java (69%) create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/vo/KnowledgeAttachVo.java (84%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/vo/KnowledgeFragmentVo.java (83%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/domain/vo/KnowledgeInfoVo.java (77%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/mapper/KnowledgeAttachMapper.java (53%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/mapper/KnowledgeFragmentMapper.java (53%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/mapper/KnowledgeInfoMapper.java (52%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/EmbeddingService.java (92%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/IKnowledgeAttachService.java (76%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/IKnowledgeFragmentService.java (82%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/IKnowledgeInfoService.java (53%) rename ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java (85%) rename ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java (66%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/impl/EmbeddingServiceImpl.java (84%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/impl/KnowledgeAttachServiceImpl.java (75%) rename {ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi}/service/impl/KnowledgeFragmentServiceImpl.java (88%) create mode 100644 ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysCache.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysConfig.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysDept.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysDictData.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysDictType.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysLogininfor.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysMenu.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysNotice.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysNoticeState.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysOperLog.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysOss.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysOssConfig.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysPost.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysRole.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysRoleDept.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysTenant.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysUser.java (99%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysUserOnline.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysUserPost.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/SysUserRole.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/request/UserRequest.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java (67%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java (94%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/CoverMapper.java (88%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java (91%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java (73%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java (74%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java (73%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java (74%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java (88%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java (75%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java (74%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java (74%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java (90%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysConfigService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysDeptService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysDictDataService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysLogininforService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysMenuService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysNoticeService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysOperLogService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysOssService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysPermissionService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysPostService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysRoleService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysTenantService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/ISysUserService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/SysLoginService.java (98%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/SysRegisterService.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java (94%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/AesUtils.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/HttpUtils.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/KeyUtils.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/WddPptApi.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-modules-api/ruoyi-system-api}/src/main/java/org/ruoyi/system/util/XmlUtil.java (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/CoverMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/CoverPromptAudioMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/PaymentOrdersMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysConfigMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysDeptMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysDictDataMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysDictTypeMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysLogininforMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysMenuMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysModelMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysNoticeMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysNoticeStateMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysOperLogMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysOssConfigMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysOssMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysPackagePlanMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysPostMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysRoleDeptMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysRoleMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysRoleMenuMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysTenantMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysTenantPackageMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysUserMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysUserPostMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/SysUserRoleMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/WxRobConfigMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/WxRobKeywordMapper.xml (100%) rename {ruoyi-modules/ruoyi-system/src/main/resources/mapper/system => ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper}/WxRobRelationMapper.xml (100%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/BaseSubmitDTO.java (89%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitActionDTO.java (87%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitBlendDTO.java (95%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitChangeDTO.java (95%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitDescribeDTO.java (91%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitImagineDTO.java (94%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitModalDTO.java (89%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitShortenDTO.java (89%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/SubmitSimpleChangeDTO.java (92%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{ => domain}/dto/TaskConditionDTO.java (84%) rename ruoyi-modules/{ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-chat/src/main/java/org/ruoyi/chat}/listener/SSEEventSourceListener.java (59%) rename {ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service => ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat}/IChatCostService.java (85%) rename ruoyi-modules/{ruoyi-system/src/main/java/org/ruoyi/system/service => ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat}/ISseService.java (54%) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorizer/BgeLargeVectorization.java (88%) rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorizer/OpenAiVectorization.java (90%) rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorizer/VectorizationFactory.java (80%) rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorstore/MilvusVectorStore.java (99%) rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorstore/VectorStoreFactory.java (82%) rename ruoyi-modules/{ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain => ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge}/vectorstore/WeaviateVectorStore.java (98%) delete mode 100644 ruoyi-modules/ruoyi-device/pom.xml delete mode 100644 ruoyi-modules/ruoyi-knowledge/pom.xml delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java delete mode 100644 ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java rename ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/{handler => listener}/CustomerBigDecimalSerialize.java (96%) delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java delete mode 100644 ruoyi-modules/ruoyi-weixin/pom.xml delete mode 100644 script/docker/localModels/Dockerfile delete mode 100644 script/docker/localModels/app.py delete mode 100644 script/docker/localModels/remade.md delete mode 100644 script/docker/localModels/requirements.txt diff --git a/pom.xml b/pom.xml index d8d596c1..78d6758b 100644 --- a/pom.xml +++ b/pom.xml @@ -244,18 +244,6 @@ ${tencent.sms.version} - - - - - - - - - - - - org.redisson redisson-spring-boot-starter @@ -321,10 +309,15 @@ ${revision} + + org.ruoyi + ruoyi-knowledge-api + ${revision} + org.ruoyi - ruoyi-knowledge + ruoyi-system-api ${revision} @@ -347,11 +340,6 @@ ruoyi-common ruoyi-modules ruoyi-modules-api - ruoyi-modules-api - ruoyi-modules-api/ruoyi-device-api - ruoyi-modules-api/ruoyi-weixin-api - ruoyi-modules/ruoyi-weixin - ruoyi-modules/ruoyi-device pom diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 2adc1ba2..a7d9e117 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -166,15 +166,12 @@ ${revision} - org.ruoyi ruoyi-chat ${revision} - - org.ruoyi @@ -182,6 +179,7 @@ ${revision} + diff --git a/ruoyi-common/ruoyi-common-chat/pom.xml b/ruoyi-common/ruoyi-common-chat/pom.xml index b06f19c1..63a5fb94 100644 --- a/ruoyi-common/ruoyi-common-chat/pom.xml +++ b/ruoyi-common/ruoyi-common-chat/pom.xml @@ -98,10 +98,6 @@ - - junit - junit - cn.bigmodel.openapi diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml index 36bd0d8e..fe3897d0 100644 --- a/ruoyi-common/ruoyi-common-core/pom.xml +++ b/ruoyi-common/ruoyi-common-core/pom.xml @@ -47,25 +47,11 @@ jakarta.servlet-api + cn.hutool - hutool-core - - - - cn.hutool - hutool-http - - - - cn.hutool - hutool-extra - - - - cn.hutool - hutool-json - provided + hutool-all + 5.8.24 diff --git a/ruoyi-modules-api/pom.xml b/ruoyi-modules-api/pom.xml index 5acc7101..fe4d2c2f 100644 --- a/ruoyi-modules-api/pom.xml +++ b/ruoyi-modules-api/pom.xml @@ -12,9 +12,11 @@ ruoyi-modules-api pom - ruoyi-system-api ruoyi-chat-api + ruoyi-device-api ruoyi-knowledge-api + ruoyi-system-api + ruoyi-weixin-api @@ -24,38 +26,55 @@ - org.ruoyi ruoyi-common-core - org.ruoyi ruoyi-common-mybatis - org.ruoyi ruoyi-common-sensitive - org.ruoyi ruoyi-common-excel + + + org.ruoyi + ruoyi-common-tenant + + + + + org.ruoyi + ruoyi-common-translation + + + + + org.ruoyi + ruoyi-common-log + + + + + org.ruoyi + ruoyi-common-oss + + - - - diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index fde7a466..bca2ede3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -17,6 +17,13 @@ UTF-8 + + + + org.ruoyi + ruoyi-common-chat + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java index b9caf73b..732d9d77 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatMessage.java @@ -46,8 +46,6 @@ public class ChatMessage extends BaseEntity { /** * 扣除金额 - - */ private BigDecimal deductCost; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java similarity index 78% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java index 490a3e51..b2120bf0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobConfig.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatRobConfig.java @@ -1,22 +1,22 @@ -package org.ruoyi.system.domain; +package org.ruoyi.domain; import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; /** - * 微信机器人对象 wx_rob_config + * 聊天机器人配置对象 chat_rob_config * - * @author Lion Li - * @date 2024-05-01 + * @author ageerle + * @date 2025-04-08 */ @Data @EqualsAndHashCode(callSuper = true) @TableName("chat_rob_config") -public class WxRobConfig extends BaseEntity { +public class ChatRobConfig extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -28,7 +28,7 @@ public class WxRobConfig extends BaseEntity { private Long id; /** - * 用户id + * 所属用户 */ private Long userId; @@ -42,11 +42,6 @@ public class WxRobConfig extends BaseEntity { */ private String uniqueKey; - /** - * 备注(微信号) - */ - private String remark; - /** * 默认好友回复开关 */ @@ -57,10 +52,15 @@ public class WxRobConfig extends BaseEntity { */ private String defaultGroup; - /** - * 机器启用1禁用0 + * 机器人状态 0正常 1启用 */ private String enable; + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java new file mode 100644 index 00000000..cc15a3d0 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatUsageToken.java @@ -0,0 +1,51 @@ +package org.ruoyi.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; + +import java.io.Serial; + +/** + * 用户token使用详情对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("chat_usage_token") +public class ChatUsageToken extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 用户 + */ + private Long userId; + + /** + * 待结算token + */ + private Integer token; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 累计使用token + */ + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java new file mode 100644 index 00000000..60cb384a --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatRobConfigBo.java @@ -0,0 +1,72 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.ChatRobConfig; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 聊天机器人配置业务对象 chat_rob_config + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatRobConfig.class, reverseConvertGenerate = false) +public class ChatRobConfigBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 所属用户 + */ + @NotNull(message = "所属用户不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 机器人名称 + */ + @NotBlank(message = "机器人名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String botName; + + /** + * 机器唯一码 + */ + @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String uniqueKey; + + /** + * 默认好友回复开关 + */ + @NotBlank(message = "默认好友回复开关不能为空", groups = { AddGroup.class, EditGroup.class }) + private String defaultFriend; + + /** + * 默认群回复开关 + */ + @NotBlank(message = "默认群回复开关不能为空", groups = { AddGroup.class, EditGroup.class }) + private String defaultGroup; + + /** + * 机器人状态 0正常 1启用 + */ + @NotBlank(message = "机器人状态 0正常 1启用不能为空", groups = { AddGroup.class, EditGroup.class }) + private String enable; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java new file mode 100644 index 00000000..59823d05 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatUsageTokenBo.java @@ -0,0 +1,54 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 用户token使用详情业务对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ChatUsageToken.class, reverseConvertGenerate = false) +public class ChatUsageTokenBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 用户 + */ + @NotNull(message = "用户不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 待结算token + */ + @NotNull(message = "待结算token不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer token; + + /** + * 模型名称 + */ + @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelName; + + /** + * 累计使用token + */ + @NotBlank(message = "累计使用token不能为空", groups = { AddGroup.class, EditGroup.class }) + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java index 35782a7b..9c6a83d1 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatVoucherBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatVoucher; +import org.ruoyi.domain.ChatVoucher; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java similarity index 86% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java index 04fa785a..c8121e7e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/translation/TranslationRequest.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/request/TranslationRequest.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.domain.request.translation; +package org.ruoyi.domain.request; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java similarity index 61% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java rename to ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java index a3102f47..247ebe2c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobConfigVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatRobConfigVo.java @@ -1,10 +1,9 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; +import org.ruoyi.domain.ChatRobConfig; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.ruoyi.common.excel.annotation.ExcelDictFormat; -import org.ruoyi.common.excel.convert.ExcelDictConvert; -import org.ruoyi.system.domain.WxRobConfig; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; @@ -14,15 +13,15 @@ import java.io.Serializable; /** - * 微信机器人视图对象 wx_rob_config + * 聊天机器人配置视图对象 chat_rob_config * - * @author Lion Li - * @date 2024-05-01 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated -@AutoMapper(target = WxRobConfig.class) -public class WxRobConfigVo implements Serializable { +@AutoMapper(target = ChatRobConfig.class) +public class ChatRobConfigVo implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -34,18 +33,15 @@ public class WxRobConfigVo implements Serializable { private Long id; /** - * 用户id + * 所属用户 */ + @ExcelProperty(value = "所属用户") private Long userId; - /** - * 用户名称 - */ - private String userName; - /** * 机器人名称 */ + @ExcelProperty(value = "机器人名称") private String botName; /** @@ -54,13 +50,6 @@ public class WxRobConfigVo implements Serializable { @ExcelProperty(value = "机器唯一码") private String uniqueKey; - /** - * 备注 - */ - @ExcelProperty(value = "备注", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "备注") - private String remark; - /** * 默认好友回复开关 */ @@ -73,12 +62,17 @@ public class WxRobConfigVo implements Serializable { @ExcelProperty(value = "默认群回复开关") private String defaultGroup; + /** + * 机器人状态 0正常 1启用 + */ + @ExcelProperty(value = "机器人状态 0正常 1启用") + private String enable; /** - * 机器启用1禁用0 + * 备注 */ - @ExcelProperty(value = "机器启用1禁用0") - private String enable; + @ExcelProperty(value = "备注") + private String remark; } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java new file mode 100644 index 00000000..e8f279d2 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatUsageTokenVo.java @@ -0,0 +1,61 @@ +package org.ruoyi.domain.vo; + +import org.ruoyi.domain.ChatUsageToken; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + + + +/** + * 用户token使用详情视图对象 chat_usage_token + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ChatUsageToken.class) +public class ChatUsageTokenVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 用户 + */ + @ExcelProperty(value = "用户") + private Long userId; + + /** + * 待结算token + */ + @ExcelProperty(value = "待结算token") + private Integer token; + + /** + * 模型名称 + */ + @ExcelProperty(value = "模型名称") + private String modelName; + + /** + * 累计使用token + */ + @ExcelProperty(value = "累计使用token") + private String totalToken; + + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java index b1a6c6cb..8b7092da 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatVoucherVo.java @@ -1,12 +1,13 @@ package org.ruoyi.domain.vo; import java.math.BigDecimal; -import org.ruoyi.system.domain.ChatVoucher; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatVoucher; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java new file mode 100644 index 00000000..fb6d0c9f --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatRobConfigMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatRobConfig; +import org.ruoyi.domain.vo.ChatRobConfigVo; + +/** + * 聊天机器人配置Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatRobConfigMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java new file mode 100644 index 00000000..206f9009 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatUsageTokenMapper.java @@ -0,0 +1,16 @@ +package org.ruoyi.mapper; + + +import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.domain.vo.ChatUsageTokenVo; + +/** + * 用户token使用详情Mapper接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface ChatUsageTokenMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java index 9657b59e..82dd6219 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java @@ -46,4 +46,10 @@ public interface IChatModelService { * 校验并批量删除聊天模型信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 通过模型名称获取模型信息 + */ + ChatModelVo selectModelByName(String modelName); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java index 7eb1b1f2..d2aca244 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatTokenService.java @@ -5,8 +5,8 @@ import org.ruoyi.domain.ChatToken; /** * 聊天消息Service接口 * - * @author Lion Li - * @date 2023-11-26 + * @author ageerle + * @date 2025-04-08 */ public interface IChatTokenService { @@ -20,6 +20,9 @@ public interface IChatTokenService { */ void resetToken(Long userId,String modelName); + /** + * 修改用户token + */ void editToken(ChatToken chatToken); } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java new file mode 100644 index 00000000..3f757f1e --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatUsageTokenService.java @@ -0,0 +1,49 @@ +package org.ruoyi.service; + + +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.ChatUsageTokenBo; +import org.ruoyi.domain.vo.ChatUsageTokenVo; + +import java.util.Collection; +import java.util.List; + +/** + * 用户token使用详情Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatUsageTokenService { + + /** + * 查询用户token使用详情 + */ + ChatUsageTokenVo queryById(Long id); + + /** + * 查询用户token使用详情列表 + */ + TableDataInfo queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery); + + /** + * 查询用户token使用详情列表 + */ + List queryList(ChatUsageTokenBo bo); + + /** + * 新增用户token使用详情 + */ + Boolean insertByBo(ChatUsageTokenBo bo); + + /** + * 修改用户token使用详情 + */ + Boolean updateByBo(ChatUsageTokenBo bo); + + /** + * 校验并批量删除用户token使用详情信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java index 20c39263..5df31cc0 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatVisitorUsageService.java @@ -11,8 +11,8 @@ import java.util.List; /** * 访客管理Service接口 * - * @author Lion Li - * @date 2024-07-14 + * @author ageerle + * @date 2025-04-08 */ public interface IChatVisitorUsageService { diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java index 26d4533b..c136bb19 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java @@ -115,4 +115,12 @@ public class ChatModelServiceImpl implements IChatModelService { } return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 通过模型名称获取模型信息 + */ + @Override + public ChatModelVo selectModelByName(String modelName) { + return baseMapper.selectVoOne(Wrappers.lambdaQuery().eq(ChatModel::getModelName, modelName)); + } } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java new file mode 100644 index 00000000..57565ba1 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatUsageTokenServiceImpl.java @@ -0,0 +1,112 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.ChatUsageToken; +import org.ruoyi.domain.bo.ChatUsageTokenBo; +import org.ruoyi.domain.vo.ChatUsageTokenVo; +import org.ruoyi.mapper.ChatUsageTokenMapper; +import org.ruoyi.service.IChatUsageTokenService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 用户token使用详情Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatUsageTokenServiceImpl implements IChatUsageTokenService { + + private final ChatUsageTokenMapper baseMapper; + + /** + * 查询用户token使用详情 + */ + @Override + public ChatUsageTokenVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询用户token使用详情列表 + */ + @Override + public TableDataInfo queryPageList(ChatUsageTokenBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询用户token使用详情列表 + */ + @Override + public List queryList(ChatUsageTokenBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatUsageTokenBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getUserId() != null, ChatUsageToken::getUserId, bo.getUserId()); + lqw.eq(bo.getToken() != null, ChatUsageToken::getToken, bo.getToken()); + lqw.like(StringUtils.isNotBlank(bo.getModelName()), ChatUsageToken::getModelName, bo.getModelName()); + lqw.eq(StringUtils.isNotBlank(bo.getTotalToken()), ChatUsageToken::getTotalToken, bo.getTotalToken()); + return lqw; + } + + /** + * 新增用户token使用详情 + */ + @Override + public Boolean insertByBo(ChatUsageTokenBo bo) { + ChatUsageToken add = MapstructUtils.convert(bo, ChatUsageToken.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改用户token使用详情 + */ + @Override + public Boolean updateByBo(ChatUsageTokenBo bo) { + ChatUsageToken update = MapstructUtils.convert(bo, ChatUsageToken.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatUsageToken entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除用户token使用详情 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml index 1ba1e998..cf1e0311 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml @@ -17,4 +17,35 @@ UTF-8 + + + + + org.apache.pdfbox + pdfbox + 2.0.27 + + + + + io.github.ollama4j + ollama4j + 1.0.79 + + + + + io.milvus + milvus-sdk-java + 2.3.2 + + + + io.weaviate + client + 4.0.0 + + + + diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java similarity index 87% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java index 5a74978d..93231412 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CodeFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CodeFileLoader.java @@ -1,8 +1,8 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; @@ -14,7 +14,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class CodeFileLoader implements ResourceLoader{ +public class CodeFileLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java index cec04fe2..37d99031 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/CsvFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/CsvFileLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class CsvFileLoader implements ResourceLoader{ +public class CsvFileLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java index 1bbbc7c8..7422d31e 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/FolderLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/FolderLoader.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import java.io.InputStream; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java index dd6b4496..55446efe 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/GithubLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/GithubLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class GithubLoader implements ResourceLoader{ +public class GithubLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java similarity index 65% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java index 5c69389c..35f3fd44 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/JsonFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/JsonFileLoader.java @@ -1,9 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; + +import org.ruoyi.chain.loader.ResourceLoader; import java.io.InputStream; import java.util.List; -public class JsonFileLoader implements ResourceLoader{ +public class JsonFileLoader implements ResourceLoader { @Override public String getContent(InputStream inputStream) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java similarity index 85% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java index 24d43ff2..182d0a7c 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/MarkDownFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/MarkDownFileLoader.java @@ -1,8 +1,9 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; @@ -14,7 +15,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class MarkDownFileLoader implements ResourceLoader{ +public class MarkDownFileLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java similarity index 83% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java index 0acf355e..06e74b87 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/PdfFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/PdfFileLoader.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.IOException; @@ -12,7 +13,7 @@ import java.util.List; @Component @AllArgsConstructor -public class PdfFileLoader implements ResourceLoader{ +public class PdfFileLoader implements ResourceLoader { private final TextSplitter characterTextSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java index 9ef4b11d..9a91cdd0 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoader.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import java.io.InputStream; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java similarity index 77% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java index 6a29b25c..6aca9009 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/ResourceLoaderFactory.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java @@ -1,10 +1,12 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; -import org.ruoyi.knowledge.chain.split.CharacterTextSplitter; -import org.ruoyi.knowledge.chain.split.CodeTextSplitter; -import org.ruoyi.knowledge.chain.split.MarkdownTextSplitter; -import org.ruoyi.knowledge.chain.split.TokenTextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.loader.TextFileLoader; +import org.ruoyi.chain.split.CharacterTextSplitter; +import org.ruoyi.chain.split.CodeTextSplitter; +import org.ruoyi.chain.split.MarkdownTextSplitter; +import org.ruoyi.chain.split.TokenTextSplitter; import org.ruoyi.knowledge.constant.FileType; import org.springframework.stereotype.Component; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java index 95b8929a..da3051e9 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/TextFileLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/TextFileLoader.java @@ -1,8 +1,8 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.BufferedReader; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java index c31b9e6c..624f01b8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/loader/WordLoader.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/WordLoader.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.loader; +package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.ruoyi.knowledge.chain.split.TextSplitter; +import org.ruoyi.chain.loader.ResourceLoader; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.io.IOException; @@ -14,7 +15,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class WordLoader implements ResourceLoader{ +public class WordLoader implements ResourceLoader { private final TextSplitter textSplitter; @Override public String getContent(InputStream inputStream) { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java index 4b8f4af1..83ca3342 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CharacterTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CharacterTextSplitter.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.chain.split.TextSplitter; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java similarity index 68% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java index 209f5de6..f082ec8a 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/CodeTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/CodeTextSplitter.java @@ -1,7 +1,8 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.util.List; @@ -9,7 +10,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class CodeTextSplitter implements TextSplitter{ +public class CodeTextSplitter implements TextSplitter { @Override public List split(String content, String kid) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java similarity index 89% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java index 89ea6536..299cc435 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/MarkdownTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/MarkdownTextSplitter.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java similarity index 87% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java index 86b3aafd..93b5d57f 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TextSplitter.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java similarity index 68% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java index 696f2610..823014a9 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/split/TokenTextSplitter.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/split/TokenTextSplitter.java @@ -1,7 +1,8 @@ -package org.ruoyi.knowledge.chain.split; +package org.ruoyi.chain.split; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chain.split.TextSplitter; import org.springframework.stereotype.Component; import java.util.List; @@ -9,7 +10,7 @@ import java.util.List; @Component @AllArgsConstructor @Slf4j -public class TokenTextSplitter implements TextSplitter{ +public class TokenTextSplitter implements TextSplitter { @Override public List split(String content, String kid) { return null; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java similarity index 98% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java index 6a9451a6..aa141679 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/constant/FileType.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/constant/FileType.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.constant; +package org.ruoyi.constant; public class FileType { public static final String TXT = "txt"; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java similarity index 57% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java index 694018da..b72c7335 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeAttach.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeAttach.java @@ -1,25 +1,29 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import java.io.Serializable; -import java.util.Date; +import java.io.Serial; /** * 知识库附件对象 knowledge_attach * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data - +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_attach") -public class KnowledgeAttach extends BaseEntity { +public class KnowledgeAttach extends BaseEntity { + @Serial + private static final long serialVersionUID = 1L; + /** + * + */ @TableId(value = "id") private Long id; @@ -48,4 +52,10 @@ public class KnowledgeAttach extends BaseEntity { */ private String content; + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java similarity index 69% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java index f733f067..df325e6a 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeFragment.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeFragment.java @@ -1,27 +1,29 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; -import java.io.Serializable; -import java.util.Date; /** * 知识片段对象 knowledge_fragment * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_fragment") public class KnowledgeFragment extends BaseEntity { @Serial private static final long serialVersionUID = 1L; + /** + * + */ @TableId(value = "id") private Long id; @@ -43,12 +45,17 @@ public class KnowledgeFragment extends BaseEntity { /** * 片段索引下标 */ - private Integer idx; + private Long idx; /** * 文档内容 */ private String content; + /** + * 备注 + */ + private String remark; + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java similarity index 69% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java index 4f1c4821..02442cd1 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/KnowledgeInfo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/KnowledgeInfo.java @@ -1,25 +1,22 @@ -package org.ruoyi.knowledge.domain; +package org.ruoyi.domain; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import jakarta.validation.constraints.NotBlank; +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; +import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import java.io.Serial; -import java.io.Serializable; -import java.util.Date; - /** * 知识库对象 knowledge_info * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("knowledge_info") -public class KnowledgeInfo extends BaseEntity { +public class KnowledgeInfo extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -48,7 +45,7 @@ public class KnowledgeInfo extends BaseEntity { /** * 是否公开知识库(0 否 1是) */ - private String share; + private Integer share; /** * 描述 @@ -68,17 +65,17 @@ public class KnowledgeInfo extends BaseEntity { /** * 重叠字符数 */ - private Integer overlapChar; + private Long overlapChar; /** * 知识库中检索的条数 */ - private Integer retrieveLimit; + private Long retrieveLimit; /** * 文本块大小 */ - private Integer textBlockSize; + private Long textBlockSize; /** * 向量库 @@ -89,4 +86,11 @@ public class KnowledgeInfo extends BaseEntity { * 向量模型 */ private String vectorModel; + + /** + * 备注 + */ + private String remark; + + } diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java new file mode 100644 index 00000000..e2daedb3 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeAttachBo.java @@ -0,0 +1,66 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识库附件业务对象 knowledge_attach + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeAttach.class, reverseConvertGenerate = false) +public class KnowledgeAttachBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 文档ID + */ + @NotBlank(message = "文档ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docId; + + /** + * 文档名称 + */ + @NotBlank(message = "文档名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docName; + + /** + * 文档类型 + */ + @NotBlank(message = "文档类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docType; + + /** + * 文档内容 + */ + @NotBlank(message = "文档内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java new file mode 100644 index 00000000..a5461917 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeFragmentBo.java @@ -0,0 +1,66 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识片段业务对象 knowledge_fragment + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeFragment.class, reverseConvertGenerate = false) +public class KnowledgeFragmentBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 文档ID + */ + @NotBlank(message = "文档ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String docId; + + /** + * 知识片段ID + */ + @NotBlank(message = "知识片段ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String fid; + + /** + * 片段索引下标 + */ + @NotNull(message = "片段索引下标不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long idx; + + /** + * 文档内容 + */ + @NotBlank(message = "文档内容不能为空", groups = { AddGroup.class, EditGroup.class }) + private String content; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java new file mode 100644 index 00000000..82753243 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/bo/KnowledgeInfoBo.java @@ -0,0 +1,108 @@ +package org.ruoyi.domain.bo; + +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 知识库业务对象 knowledge_info + * + * @author ageerle + * @date 2025-04-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = KnowledgeInfo.class, reverseConvertGenerate = false) +public class KnowledgeInfoBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 知识库ID + */ + @NotBlank(message = "知识库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kid; + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long uid; + + /** + * 知识库名称 + */ + @NotBlank(message = "知识库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String kname; + + /** + * 是否公开知识库(0 否 1是) + */ + @NotNull(message = "是否公开知识库(0 否 1是)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer share; + + /** + * 描述 + */ + @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String description; + + /** + * 知识分隔符 + */ + @NotBlank(message = "知识分隔符不能为空", groups = { AddGroup.class, EditGroup.class }) + private String knowledgeSeparator; + + /** + * 提问分隔符 + */ + @NotBlank(message = "提问分隔符不能为空", groups = { AddGroup.class, EditGroup.class }) + private String questionSeparator; + + /** + * 重叠字符数 + */ + @NotNull(message = "重叠字符数不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long overlapChar; + + /** + * 知识库中检索的条数 + */ + @NotNull(message = "知识库中检索的条数不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long retrieveLimit; + + /** + * 文本块大小 + */ + @NotNull(message = "文本块大小不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long textBlockSize; + + /** + * 向量库 + */ + @NotBlank(message = "向量库不能为空", groups = { AddGroup.class, EditGroup.class }) + private String vector; + + /** + * 向量模型 + */ + @NotBlank(message = "向量模型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String vectorModel; + + /** + * 备注 + */ + @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java index bd0b141f..fb463d4b 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeAttachVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeAttachVo.java @@ -1,19 +1,22 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; +import org.ruoyi.domain.KnowledgeAttach; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeAttach; import java.io.Serial; import java.io.Serializable; + + + /** * 知识库附件视图对象 knowledge_attach * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -59,5 +62,11 @@ public class KnowledgeAttachVo implements Serializable { @ExcelProperty(value = "文档内容") private String content; + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java similarity index 83% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java index 630bbe06..fcda4580 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeFragmentVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeFragmentVo.java @@ -1,19 +1,24 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeFragment; +import org.ruoyi.domain.KnowledgeFragment; import java.io.Serial; import java.io.Serializable; + + + /** * 知识片段视图对象 knowledge_fragment * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -59,4 +64,11 @@ public class KnowledgeFragmentVo implements Serializable { @ExcelProperty(value = "文档内容") private String content; + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java similarity index 77% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java index a47b5d60..6a5fdbf8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/vo/KnowledgeInfoVo.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/domain/vo/KnowledgeInfoVo.java @@ -1,19 +1,26 @@ -package org.ruoyi.knowledge.domain.vo; +package org.ruoyi.domain.vo; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.knowledge.domain.KnowledgeInfo; +import org.ruoyi.common.excel.annotation.ExcelDictFormat; +import org.ruoyi.common.excel.convert.ExcelDictConvert; +import org.ruoyi.domain.KnowledgeInfo; import java.io.Serial; import java.io.Serializable; + + + /** * 知识库视图对象 knowledge_info * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @Data @ExcelIgnoreUnannotated @@ -48,9 +55,11 @@ public class KnowledgeInfoVo implements Serializable { private String kname; /** - * 知识库名称 + * 是否公开知识库(0 否 1是) */ - private String share; + @ExcelProperty(value = "是否公开知识库", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=,否=,1=是") + private Integer share; /** * 描述 @@ -99,4 +108,12 @@ public class KnowledgeInfoVo implements Serializable { */ @ExcelProperty(value = "向量模型") private String vectorModel; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java index ec7d2641..c58856c4 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeAttachMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeAttachMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; /** * 知识库附件Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeAttachMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java index 92d9ccbc..5e73b38d 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeFragmentMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeFragmentMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; /** * 知识片段Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeFragmentMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java similarity index 52% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java index 1984e0ae..47db02b2 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/mapper/KnowledgeInfoMapper.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/mapper/KnowledgeInfoMapper.java @@ -1,14 +1,15 @@ -package org.ruoyi.knowledge.mapper; +package org.ruoyi.mapper; + +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.knowledge.domain.KnowledgeInfo; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; /** * 知识库Mapper接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface KnowledgeInfoMapper extends BaseMapperPlus { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java similarity index 92% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java index a4dd30d5..98841189 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/EmbeddingService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/EmbeddingService.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; import java.util.List; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java similarity index 76% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java index 6ed856ee..90828782 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeAttachService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeAttachService.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + +import org.ruoyi.domain.bo.KnowledgeAttachBo; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import java.util.Collection; import java.util.List; @@ -11,8 +12,8 @@ import java.util.List; /** * 知识库附件Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeAttachService { @@ -45,10 +46,4 @@ public interface IKnowledgeAttachService { * 校验并批量删除知识库附件信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - - /** - * 删除知识附件 - */ - void removeKnowledgeAttach(String docId); } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java similarity index 82% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java index 7546a1d5..5e88ef70 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeFragmentService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeFragmentService.java @@ -1,9 +1,10 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; + -import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.domain.bo.KnowledgeFragmentBo; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import java.util.Collection; import java.util.List; @@ -11,8 +12,8 @@ import java.util.List; /** * 知识片段Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeFragmentService { diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java similarity index 53% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java index 14e8e972..fc9d37b8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/IKnowledgeInfoService.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/IKnowledgeInfoService.java @@ -1,18 +1,19 @@ -package org.ruoyi.knowledge.service; +package org.ruoyi.service; -import org.ruoyi.common.mybatis.core.page.PageQuery; + +import org.ruoyi.domain.bo.KnowledgeInfoBo; +import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import java.util.Collection; import java.util.List; /** * 知识库Service接口 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ public interface IKnowledgeInfoService { @@ -31,6 +32,10 @@ public interface IKnowledgeInfoService { */ List queryList(KnowledgeInfoBo bo); + /** + * 新增知识库 + */ + Boolean insertByBo(KnowledgeInfoBo bo); /** * 修改知识库 @@ -38,23 +43,7 @@ public interface IKnowledgeInfoService { Boolean updateByBo(KnowledgeInfoBo bo); /** - * 新增知识库 + * 校验并批量删除知识库信息 */ - void saveOne(KnowledgeInfoBo bo); - - /** - * 上传附件 - */ - void upload(KnowledgeInfoUploadRequest request); - - /** - * 删除知识库 - */ - void removeKnowledge(String id); - - /** - * 检查是否有删除权限 - * @param knowledgeInfoList 知识列表 - */ - void check(List knowledgeInfoList); + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java similarity index 85% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java index 6be022d4..d3294bb3 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStore.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorStoreService.java @@ -1,11 +1,11 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.service; import java.util.List; /** * 向量存储 */ -public interface VectorStore { +public interface VectorStoreService { void storeEmbeddings(List chunkList, List> vectorList, String kid, String docId, List fidList); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java similarity index 66% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java index 1c25ddeb..81888810 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/Vectorization.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/VectorizationService.java @@ -1,11 +1,12 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.service; import java.util.List; /** - * 向量化 + * 文本向量化 */ -public interface Vectorization { +public interface VectorizationService { + List> batchVectorization(List chunkList, String kid); List singleVectorization(String chunk, String kid); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java similarity index 84% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java index 96e568a2..00657399 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/EmbeddingServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/EmbeddingServiceImpl.java @@ -1,9 +1,9 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; import lombok.AllArgsConstructor; -import org.ruoyi.knowledge.chain.vectorizer.Vectorization; -import org.ruoyi.knowledge.chain.vectorstore.VectorStore; -import org.ruoyi.knowledge.service.EmbeddingService; +import org.ruoyi.service.EmbeddingService; +import org.ruoyi.service.VectorStoreService; +import org.ruoyi.service.VectorizationService; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -13,8 +13,8 @@ import java.util.List; @AllArgsConstructor public class EmbeddingServiceImpl implements EmbeddingService { - private final VectorStore vectorStore; - private final Vectorization vectorization; + private final VectorStoreService vectorStore; + private final VectorizationService vectorization; /** * 保存向量数据库 diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java similarity index 75% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java index 8ae5340b..6a0a571f 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeAttachServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeAttachServiceImpl.java @@ -1,36 +1,30 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeAttachMapper; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; -import org.ruoyi.knowledge.service.IKnowledgeAttachService; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeAttachVo; import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeAttachBo; + +import org.ruoyi.domain.KnowledgeAttach; +import org.ruoyi.mapper.KnowledgeAttachMapper; +import org.ruoyi.service.IKnowledgeAttachService; -import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Collection; /** * 知识库附件Service业务层处理 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @RequiredArgsConstructor @Service @@ -38,13 +32,6 @@ public class KnowledgeAttachServiceImpl implements IKnowledgeAttachService { private final KnowledgeAttachMapper baseMapper; - private final KnowledgeFragmentMapper fragmentMapper; - - private final KnowledgeInfoMapper knowledgeInfoMapper; - - private final IKnowledgeInfoService knowledgeInfoService; - - /** * 查询知识库附件 */ @@ -124,12 +111,4 @@ public class KnowledgeAttachServiceImpl implements IKnowledgeAttachService { } return baseMapper.deleteBatchIds(ids) > 0; } - - @Override - public void removeKnowledgeAttach(String docId) { - Map map = new HashMap<>(); - map.put("doc_id",docId); - baseMapper.deleteByMap(map); - fragmentMapper.deleteByMap(map); - } } diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java rename to ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java index ff6efcc7..25028366 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeFragmentServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeFragmentServiceImpl.java @@ -1,28 +1,29 @@ -package org.ruoyi.knowledge.service.impl; +package org.ruoyi.service.impl; +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.service.IKnowledgeFragmentService; +import org.ruoyi.domain.vo.KnowledgeFragmentVo; import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeFragmentBo; +import org.ruoyi.domain.KnowledgeFragment; +import org.ruoyi.mapper.KnowledgeFragmentMapper; +import org.ruoyi.service.IKnowledgeFragmentService; -import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Collection; + /** * 知识片段Service业务层处理 * - * @author Lion Li - * @date 2024-10-21 + * @author ageerle + * @date 2025-04-08 */ @RequiredArgsConstructor @Service @@ -44,7 +45,6 @@ public class KnowledgeFragmentServiceImpl implements IKnowledgeFragmentService { @Override public TableDataInfo queryPageList(KnowledgeFragmentBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.eq(KnowledgeFragment::getDocId, bo.getDocId()); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java new file mode 100644 index 00000000..7acaa098 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/KnowledgeInfoServiceImpl.java @@ -0,0 +1,120 @@ +package org.ruoyi.service.impl; + +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.springframework.stereotype.Service; +import org.ruoyi.domain.bo.KnowledgeInfoBo; +import org.ruoyi.domain.KnowledgeInfo; +import org.ruoyi.mapper.KnowledgeInfoMapper; +import org.ruoyi.service.IKnowledgeInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 知识库Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class KnowledgeInfoServiceImpl implements IKnowledgeInfoService { + + private final KnowledgeInfoMapper baseMapper; + + /** + * 查询知识库 + */ + @Override + public KnowledgeInfoVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询知识库列表 + */ + @Override + public TableDataInfo queryPageList(KnowledgeInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询知识库列表 + */ + @Override + public List queryList(KnowledgeInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(KnowledgeInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getKid()), KnowledgeInfo::getKid, bo.getKid()); + lqw.eq(bo.getUid() != null, KnowledgeInfo::getUid, bo.getUid()); + lqw.like(StringUtils.isNotBlank(bo.getKname()), KnowledgeInfo::getKname, bo.getKname()); + lqw.eq(bo.getShare() != null, KnowledgeInfo::getShare, bo.getShare()); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), KnowledgeInfo::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getKnowledgeSeparator()), KnowledgeInfo::getKnowledgeSeparator, bo.getKnowledgeSeparator()); + lqw.eq(StringUtils.isNotBlank(bo.getQuestionSeparator()), KnowledgeInfo::getQuestionSeparator, bo.getQuestionSeparator()); + lqw.eq(bo.getOverlapChar() != null, KnowledgeInfo::getOverlapChar, bo.getOverlapChar()); + lqw.eq(bo.getRetrieveLimit() != null, KnowledgeInfo::getRetrieveLimit, bo.getRetrieveLimit()); + lqw.eq(bo.getTextBlockSize() != null, KnowledgeInfo::getTextBlockSize, bo.getTextBlockSize()); + lqw.eq(StringUtils.isNotBlank(bo.getVector()), KnowledgeInfo::getVector, bo.getVector()); + lqw.eq(StringUtils.isNotBlank(bo.getVectorModel()), KnowledgeInfo::getVectorModel, bo.getVectorModel()); + return lqw; + } + + /** + * 新增知识库 + */ + @Override + public Boolean insertByBo(KnowledgeInfoBo bo) { + KnowledgeInfo add = MapstructUtils.convert(bo, KnowledgeInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改知识库 + */ + @Override + public Boolean updateByBo(KnowledgeInfoBo bo) { + KnowledgeInfo update = MapstructUtils.convert(bo, KnowledgeInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(KnowledgeInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除知识库 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysCache.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysCache.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysCache.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysCache.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysConfig.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysConfig.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysConfig.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDept.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDept.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDept.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDept.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictData.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictData.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictData.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictData.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictType.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictType.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysDictType.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysDictType.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysLogininfor.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysLogininfor.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysLogininfor.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysLogininfor.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysMenu.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysMenu.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysMenu.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysMenu.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNotice.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNotice.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNotice.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNotice.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNoticeState.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNoticeState.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysNoticeState.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysNoticeState.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOperLog.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOperLog.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOperLog.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOperLog.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOss.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOss.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOss.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOss.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOssConfig.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOssConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysOssConfig.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysOssConfig.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPost.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysPost.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPost.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysPost.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRole.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRole.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRole.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRole.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleDept.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleDept.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleDept.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleDept.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysRoleMenu.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenant.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenant.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenant.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenant.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysTenantPackage.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java similarity index 99% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java index 96e80db1..f451e982 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUser.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUser.java @@ -37,7 +37,6 @@ public class SysUser extends TenantEntity { */ private String userName; - /** * 用户套餐 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserOnline.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserOnline.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserOnline.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserOnline.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserPost.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserPost.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserPost.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserPost.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserRole.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserRole.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserRole.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/SysUserRole.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysConfigBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDeptBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictDataBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysDictTypeBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysLogininforBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysMenuBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysNoticeStateBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOperLogBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysOssConfigBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysPostBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysRoleBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysTenantPackageBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserPasswordBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/SysUserProfileBo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/EmailRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/OrderRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/UserRequest.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/UserRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/request/UserRequest.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/request/UserRequest.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/AvatarVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CacheListInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/CaptchaVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/DeptTreeSelectVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginTenantVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/LoginVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MenuTreeSelectVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/MetaVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ProfileVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/RouterVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysConfigVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDeptVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictDataVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysDictTypeVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysLogininforVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysMenuVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeStateVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java similarity index 67% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java index d9c82294..fa279d98 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysNoticeVo.java @@ -2,13 +2,11 @@ package org.ruoyi.system.domain.vo; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.common.translation.annotation.Translation; -import org.ruoyi.common.translation.constant.TransConstant; import org.ruoyi.system.domain.SysNotice; import java.io.Serial; import java.io.Serializable; -import java.util.Date; + @@ -54,20 +52,4 @@ public class SysNoticeVo implements Serializable { */ private String remark; - /** - * 创建者 - */ - private Long createBy; - - /** - * 创建人名称 - */ - @Translation(type = TransConstant.USER_ID_TO_NAME, mapper = "createBy") - private String createByName; - - /** - * 创建时间 - */ - private Date createTime; - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOperLogVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssConfigVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssUploadVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysOssVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysPostVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysRoleVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantPackageVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysTenantVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserExportVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserImportVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java index 1e95de2b..8b134b6b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java @@ -4,7 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.ruoyi.system.domain.SysUserModel; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserOptionVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/TenantListVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/UserInfoVo.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java index 1a6f7921..08cb737d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.Cover; import org.ruoyi.system.domain.vo.cover.CoverVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java similarity index 91% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java index 2bf27ec7..6abffd98 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.CoverPromptAudio; import org.ruoyi.system.domain.vo.cover.CoverPromptAudioVo; import java.util.List; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java similarity index 73% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java index 67e404a8..e854cfc3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.PaymentOrder; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDeptMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictDataMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysDictTypeMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysLogininforMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysMenuMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java index 18a1f4de..1b436f81 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.vo.SysModelVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysNoticeStateMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOperLogMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssConfigMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysOssMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java similarity index 73% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java index 492cf977..3a6718aa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; /** * 套餐管理Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPostMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleDeptMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysRoleMenuMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysTenantPackageMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java index 81410f34..8cf07137 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysUserGroup; -import org.ruoyi.system.domain.vo.SysUserGroupVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java similarity index 88% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java index 0817e824..e62693e7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java @@ -1,7 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.SysUserModel; import org.ruoyi.system.domain.vo.SysUserModelVo; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserPostMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserRoleMapper.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java similarity index 75% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java index 9cfc5b19..36ad76ea 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.WxRobConfig; -import org.ruoyi.system.domain.vo.WxRobConfigVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java index e76ec3ed..a062dc27 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java @@ -1,7 +1,5 @@ package org.ruoyi.system.mapper; -import org.ruoyi.system.domain.WxRobKeyword; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java similarity index 74% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java index edd32fe6..df7d19fa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java @@ -1,8 +1,6 @@ package org.ruoyi.system.mapper; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.WxRobRelation; -import org.ruoyi.system.domain.vo.WxRobRelationVo; /** * 【请填写功能名称】Mapper接口 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java similarity index 90% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java index 13d9670c..2b531ad9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java @@ -1,8 +1,8 @@ package org.ruoyi.system.runner; -import org.ruoyi.system.service.ISysOssConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.system.service.ISysOssConfigService; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; @@ -20,7 +20,7 @@ public class SystemApplicationRunner implements ApplicationRunner { private final ISysOssConfigService ossConfigService; @Override - public void run(ApplicationArguments args) throws Exception { + public void run(ApplicationArguments args) { ossConfigService.init(); log.info("初始化OSS配置成功"); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysConfigService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysConfigService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysConfigService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysConfigService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDataScopeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDeptService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDeptService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDeptService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDeptService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictDataService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictDataService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictDataService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictDataService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysDictTypeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysLogininforService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysLogininforService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysLogininforService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysLogininforService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysMenuService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysMenuService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysMenuService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysNoticeStateService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOperLogService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOperLogService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOperLogService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOperLogService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssConfigService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysOssService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysOssService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPermissionService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPermissionService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPermissionService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPermissionService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPostService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPostService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPostService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysPostService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysRoleService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysRoleService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysRoleService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantPackageService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysTenantService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysTenantService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysUserService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/ISysUserService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java similarity index 98% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java index 017388c1..5ab11951 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java @@ -1,7 +1,6 @@ package org.ruoyi.system.service; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.api.WxMaUserService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.util.WxMaConfigHolder; import cn.dev33.satoken.exception.NotLoginException; @@ -10,6 +9,10 @@ import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; +import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.constant.GlobalConstants; import org.ruoyi.common.core.constant.TenantConstants; @@ -28,23 +31,19 @@ import org.ruoyi.common.redis.utils.RedisUtils; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.tenant.exception.TenantException; import org.ruoyi.common.tenant.helper.TenantHelper; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; import org.ruoyi.system.domain.SysUser; import org.ruoyi.system.domain.bo.SysUserBo; import org.ruoyi.system.domain.vo.LoginVo; import org.ruoyi.system.domain.vo.SysTenantVo; import org.ruoyi.system.domain.vo.SysUserVo; import org.ruoyi.system.mapper.SysUserMapper; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import org.apache.commons.lang3.math.NumberUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.time.Duration; import java.util.Date; import java.util.List; +import java.util.UUID; import java.util.function.Supplier; /** @@ -172,8 +171,7 @@ public class SysLoginService { if (ObjectUtil.isNull(user)) { SysUserBo sysUser = new SysUserBo(); // 改为自增 - String name = "用户" + UUIDShortUtil.generateShortUuid(); - ; + String name = "用户" + UUID.randomUUID().toString().replace("-", ""); // 设置默认用户名 sysUser.setUserName(name); // 设置默认昵称 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysConfigServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDataScopeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDeptServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictDataServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysDictTypeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysLogininforServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysMenuServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysNoticeStateServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOperLogServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssConfigServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysOssServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPermissionServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysPostServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysRoleServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysSensitiveServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantPackageServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysTenantServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java index 7da71d51..c3a90947 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java @@ -9,11 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; -import org.ruoyi.system.domain.SysUserGroup; import org.ruoyi.system.mapper.SysUserGroupMapper; -import org.ruoyi.system.service.ISysUserGroupService; import java.util.List; import java.util.Map; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserServiceImpl.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AesUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AesUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/HttpUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/HttpUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/KeyUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/KeyUtils.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WddPptApi.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WddPptApi.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java index 49d2b18f..56fbd197 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java @@ -3,10 +3,10 @@ package org.ruoyi.system.util; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.system.domain.model.WeixinQrCode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.system.domain.model.WeixinQrCode; import org.springframework.stereotype.Component; import java.net.URI; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/XmlUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/XmlUtil.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverPromptAudioMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/CoverPromptAudioMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/PaymentOrdersMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/PaymentOrdersMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDeptMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDeptMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictDataMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictDataMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictTypeMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysDictTypeMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysMenuMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysMenuMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysModelMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysModelMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeStateMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeStateMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysNoticeStateMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysNoticeStateMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOperLogMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOperLogMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysOssMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPackagePlanMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPackagePlanMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPostMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPostMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleDeptMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleDeptMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMenuMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysRoleMenuMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantPackageMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysTenantPackageMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserPostMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserPostMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserRoleMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysUserRoleMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobConfigMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobKeywordMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobKeywordMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobRelationMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/WxRobRelationMapper.xml rename to ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index ac97241b..20c54198 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -20,7 +20,6 @@ ruoyi-demo ruoyi-chat ruoyi-system - ruoyi-knowledge ruoyi-generator diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index b6a9d823..9f254284 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -107,13 +107,27 @@ jakarta.servlet jakarta.servlet-api + org.ruoyi ruoyi-system + org.ruoyi - ruoyi-knowledge + ruoyi-knowledge-api + + + org.ruoyi + ruoyi-chat-api + 1.0.0 + compile + + + cn.hutool + hutool-all + 5.8.26 + compile diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java index e6a44464..4d5f9fae 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java @@ -5,11 +5,12 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.chat.ISseService; import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; + import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Item; + import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.domain.model.LoginUser; @@ -17,8 +18,10 @@ import org.ruoyi.common.core.exception.base.BaseException; import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.service.ISseService; +import org.ruoyi.domain.bo.ChatMessageBo; + +import org.ruoyi.domain.vo.ChatMessageVo; +import org.ruoyi.service.IChatMessageService; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -26,7 +29,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import java.util.List; /** * 描述:聊天管理 @@ -56,7 +58,6 @@ public class ChatController { return sseService.sseChat(chatRequest,request); } - /** * 上传文件 */ @@ -90,22 +91,6 @@ public class ChatController { return sseService.textToSpeed(textToSpeech); } - /** - * 文本翻译 - * - * @param - */ - @PostMapping("/translation") - @ResponseBody - public String translation(@RequestBody TranslationRequest translationRequest) { - return sseService.translation(translationRequest); - } - - @PostMapping("/dall3") - @ResponseBody - public R> dall3(@RequestBody @Valid Dall3Request request) { - return R.ok(sseService.dall3(request)); - } /** * 聊天记录 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java index a5e9208b..11fd751c 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java @@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.chat.dto.*; +import org.ruoyi.chat.domain.dto.*; import org.ruoyi.chat.enums.ActionType; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.PostMapping; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java index 481b5b32..ea86a2ac 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java @@ -7,7 +7,7 @@ import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.Request; -import org.ruoyi.chat.dto.TaskConditionDTO; +import org.ruoyi.chat.domain.dto.TaskConditionDTO; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java index 318fd130..0c2334f8 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/BaseSubmitDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/BaseSubmitDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java similarity index 87% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java index c450169b..49da1da0 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitActionDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitActionDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java similarity index 95% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java index 4e11dfeb..3c3d8cc8 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitBlendDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitBlendDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java similarity index 95% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java index 80e42451..039e15f1 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitChangeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitChangeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java similarity index 91% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java index 4becb81c..3be051e3 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitDescribeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitDescribeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java similarity index 94% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java index c8f306a1..d65a0db1 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitImagineDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitImagineDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java index 38c5d862..4a321e4c 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitModalDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitModalDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java index 8be2f8b4..f8f7ed37 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitShortenDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitShortenDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java similarity index 92% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java index 62c80098..b4e09a08 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/SubmitSimpleChangeDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/SubmitSimpleChangeDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java similarity index 84% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java index 84634776..46864ce9 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/dto/TaskConditionDTO.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/dto/TaskConditionDTO.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.dto; +package org.ruoyi.chat.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java similarity index 59% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java index 92d767ba..f64e6158 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.listener; +package org.ruoyi.chat.listener; import cn.hutool.core.collection.CollectionUtil; @@ -10,20 +10,13 @@ import okhttp3.Response; import okhttp3.ResponseBody; import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; -import org.ruoyi.common.chat.config.LocalCache; -import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; -import org.ruoyi.common.chat.utils.TikTokensUtil; -import org.ruoyi.common.core.utils.SpringUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.ISysModelService; import org.jetbrains.annotations.NotNull; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter; -import java.util.List; import java.util.Objects; /** @@ -37,15 +30,15 @@ import java.util.Objects; @Component public class SSEEventSourceListener extends EventSourceListener { - private ResponseBodyEmitter emitter; - - private StringBuilder stringBuffer = new StringBuilder(); - @Autowired(required = false) public SSEEventSourceListener(ResponseBodyEmitter emitter) { this.emitter = emitter; } - private static final ISysModelService sysModelService = SpringUtils.getBean(ISysModelService.class); + + private ResponseBodyEmitter emitter; + + private StringBuilder stringBuffer; + private String modelName; /** * {@inheritDoc} @@ -65,34 +58,8 @@ public class SSEEventSourceListener extends EventSourceListener { if ("[DONE]".equals(data)) { //成功响应 emitter.complete(); - if(StringUtils.isNotEmpty(modelName)){ - IChatCostService IChatCostService = SpringUtils.context().getBean(IChatCostService.class); - IChatMessageService chatMessageService = SpringUtils.context().getBean(IChatMessageService.class); - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setModelName(modelName); - chatMessageBo.setContent(stringBuffer.toString()); - Long userId = (Long)LocalCache.CACHE.get("userId"); - if(userId == null){ - return; - } - chatMessageBo.setUserId(userId); - //查询按次数扣费的模型 - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelType("2"); - sysModelBo.setModelName(modelName); - List sysModelList = sysModelService.queryList(sysModelBo); - if (CollectionUtil.isNotEmpty(sysModelList)){ - chatMessageBo.setDeductCost(0d); - chatMessageBo.setRemark("提问时扣费"); - // 保存消息记录 - chatMessageService.insertByBo(chatMessageBo); - }else{ - int tokens = TikTokensUtil.tokens(modelName,stringBuffer.toString()); - chatMessageBo.setTotalTokens(tokens); - // 按token扣费并且保存消息记录 - IChatCostService.deductToken(chatMessageBo); - } - } + + // 扣除费用 (消耗字符 模型名称) return; } // 解析返回内容 diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java similarity index 85% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java index e5825b0f..234360a0 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatCostService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java @@ -1,7 +1,13 @@ -package org.ruoyi.service; +package org.ruoyi.chat.service.chat; import org.ruoyi.domain.bo.ChatMessageBo; +/** + * 计费管理Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ public interface IChatCostService { /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java similarity index 54% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java index 7230c78e..84da5b42 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISseService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java @@ -1,75 +1,58 @@ -package org.ruoyi.system.service; - +package org.ruoyi.chat.service.chat; import jakarta.servlet.http.HttpServletRequest; import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Item; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; -import org.ruoyi.system.domain.request.translation.TranslationRequest; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import java.util.List; /** - * 描述: + * 用户聊天管理Service接口 * - * @author https:www.unfbx.com - * @date 2023-04-08 + * @author ageerle + * @date 2025-04-08 */ public interface ISseService { /** * 客户端发送消息到服务端 - * @param chatRequest + * @param chatRequest 请求对象 */ - SseEmitter sseChat(ChatRequest chatRequest,HttpServletRequest request); + SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request); /** * 语音转文字 - * @param file + * @param file 语音文件 */ WhisperResponse speechToTextTranscriptionsV2(MultipartFile file); /** * 文字转语音 + * + * @param textToSpeech 文本信息 + * @return 流式语音 */ ResponseEntity textToSpeed(TextToSpeech textToSpeech); - /** - * 客户端发送消息到服务端 - * @param chatRequest - */ - String chat(ChatRequest chatRequest,String userId); /** - * 客户端发送消息到服务端 + * 上传文件到api服务器 + * + * @param file 文件信息 + * @return 返回文件信息 */ - List wxDall(String prompt,String userId); - - /** - * 绘画接口 - * @param request - */ - List dall3(Dall3Request request); - - UploadFileResponse upload(MultipartFile file); - /** - * 文本翻译 - * @param - */ - String translation(TranslationRequest translationRequest); /** - * 调用本地模型 - * @param chatRequest + * 使用ollama调用本地模型 + * @param chatRequest 对话信息 + * @return 流式输出返回内容 */ SseEmitter ollamaChat(ChatRequest chatRequest); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java new file mode 100644 index 00000000..2e3e294d --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -0,0 +1,292 @@ +package org.ruoyi.chat.service.chat.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.extra.servlet.ServletUtil; +import com.google.protobuf.ServiceException; +import io.github.ollama4j.OllamaAPI; +import io.github.ollama4j.models.chat.OllamaChatMessage; +import io.github.ollama4j.models.chat.OllamaChatMessageRole; +import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; +import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.generate.OllamaStreamHandler; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.ruoyi.chat.listener.SSEEventSourceListener; + +import org.ruoyi.chat.service.chat.ISseService; +import org.ruoyi.common.chat.config.ChatConfig; +import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.common.chat.entity.Tts.TextToSpeech; +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; + +import org.ruoyi.common.chat.entity.chat.Message; +import org.ruoyi.common.chat.entity.files.UploadFileResponse; +import org.ruoyi.common.chat.entity.whisper.WhisperResponse; +import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.common.core.utils.file.FileUtils; +import org.ruoyi.common.core.utils.file.MimeTypeUtils; + +import org.ruoyi.common.redis.utils.RedisUtils; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.core.io.InputStreamResource; +import org.springframework.core.io.Resource; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.Duration; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; + +@Service +@Slf4j +@RequiredArgsConstructor +public class SseServiceImpl implements ISseService { + + private OpenAiStreamClient openAiStreamClient; + + private final ChatConfig chatConfig; + + private final IChatModelService chatModelService; + + @Override + public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { + SseEmitter sseEmitter = new SseEmitter(0L); + SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); + // 获取对话消息列表 + List messages = chatRequest.getMessages(); + try { + if (StpUtil.isLogin()) { + // 通过模型名称查询模型信息 + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + // 构建api请求客户端 + openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + + // 模型设置默认提示词 + + // 是否开启联网查询 + }else { + // 未登录用户限制对话次数,默认5次 + String clientIp = ServletUtil.getClientIP((javax.servlet.http.HttpServletRequest) request,"X-Forwarded-For"); + + int timeWindowInSeconds = 5; + + String redisKey = "visitor:" + clientIp; + int count = 0; + + if (RedisUtils.getCacheObject(redisKey) == null) { + // 当前访问次数 + RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); + }else { + count = RedisUtils.getCacheObject(redisKey); + if (count >= timeWindowInSeconds) { + throw new ServiceException("当日免费次数已用完"); + } + count++; + RedisUtils.setCacheObject(redisKey, count); + } + } + + ChatCompletion completion = ChatCompletion + .builder() + .messages(messages) + .model(chatRequest.getModel()) + .temperature(chatRequest.getTemperature()) + .topP(chatRequest.getTop_p()) + .stream(true) + .build(); + openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + // 保存消息记录 并扣除费用 + + } catch (Exception e) { + String message = e.getMessage(); + sendErrorEvent(sseEmitter, message); + return sseEmitter; + } + return sseEmitter; + } + + + /** + * 发送SSE错误事件的封装方法 + * + * @param sseEmitter + * @param errorMessage + */ + private void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { + SseEmitter.SseEventBuilder event = SseEmitter.event() + .name("error") + .data(errorMessage); + try { + sseEmitter.send(event); + } catch (IOException e) { + log.error("发送事件失败: {}", e.getMessage()); + } + sseEmitter.complete(); + } + + /** + * 文字转语音 + */ + @Override + public ResponseEntity textToSpeed(TextToSpeech textToSpeech) { + ResponseBody body = openAiStreamClient.textToSpeech(textToSpeech); + if (body != null) { + // 将ResponseBody转换为InputStreamResource + InputStreamResource resource = new InputStreamResource(body.byteStream()); + + // 创建并返回ResponseEntity + return ResponseEntity.ok() + .contentType(MediaType.parseMediaType("audio/mpeg")) + .body(resource); + } else { + // 如果ResponseBody为空,返回404状态码 + return ResponseEntity.notFound().build(); + } + } + + /** + * 语音转文字 + */ + @Override + public WhisperResponse speechToTextTranscriptionsV2(MultipartFile file) { + // 确保文件不为空 + if (file.isEmpty()) { + throw new IllegalStateException("Cannot convert an empty MultipartFile"); + } + if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.AUDIO__EXTENSION)) { + throw new IllegalStateException("File Extention not supported"); + } + // 创建一个文件对象 + File fileA = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getOriginalFilename()); + try { + // 将 MultipartFile 的内容写入文件 + file.transferTo(fileA); + } catch (IOException e) { + throw new RuntimeException("Failed to convert MultipartFile to File", e); + } + return openAiStreamClient.speechToTextTranscriptions(fileA); + } + + + @Override + public UploadFileResponse upload(MultipartFile file) { + if (file.isEmpty()) { + throw new IllegalStateException("Cannot upload an empty MultipartFile"); + } + if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { + throw new IllegalStateException("File Extention not supported"); + } + openAiStreamClient = chatConfig.getOpenAiStreamClient(); + return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); + } + + private File convertMultiPartToFile(MultipartFile multipartFile) { + File file = null; + try { + // 获取原始文件名 + String originalFileName = multipartFile.getOriginalFilename(); + // 默认扩展名 + String extension = ".tmp"; + // 尝试从原始文件名中获取扩展名 + if (originalFileName != null && originalFileName.contains(".")) { + extension = originalFileName.substring(originalFileName.lastIndexOf(".")); + } + + // 使用原始文件的扩展名创建临时文件 + Path tempFile = Files.createTempFile(null, extension); + file = tempFile.toFile(); + + // 将MultipartFile的内容写入文件 + try (InputStream inputStream = multipartFile.getInputStream(); + FileOutputStream outputStream = new FileOutputStream(file)) { + int read; + byte[] bytes = new byte[1024]; + while ((read = inputStream.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + } catch (IOException e) { + // 处理文件写入异常 + e.printStackTrace(); + } + } catch (IOException e) { + // 处理临时文件创建异常 + e.printStackTrace(); + } + return file; + } + + @Override + public SseEmitter ollamaChat(ChatRequest chatRequest) { + String[] parts = chatRequest.getModel().split("ollama-"); + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + final SseEmitter emitter = new SseEmitter(); + String host = chatModelVo.getApiHost(); + List msgList = chatRequest.getMessages(); + List messages = new ArrayList<>(); + + for (Message message : msgList) { + OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); + ollamaChatMessage.setRole(OllamaChatMessageRole.USER); + ollamaChatMessage.setContent(message.getContent().toString()); + messages.add(ollamaChatMessage); + } + OllamaAPI api = new OllamaAPI(host); + api.setRequestTimeoutSeconds(100); + OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(parts[1]); + + OllamaChatRequestModel requestModel = builder + .withMessages(messages) + .build(); + + // 异步执行 OllAma API 调用 + CompletableFuture.runAsync(() -> { + try { + StringBuilder response = new StringBuilder(); + OllamaStreamHandler streamHandler = (s) -> { + String substr = s.substring(response.length()); + response.append(substr); + System.out.println(substr); + try { + emitter.send(substr); + } catch (IOException e) { + sendErrorEvent(emitter, e.getMessage()); + } + }; + api.chat(requestModel, streamHandler); + emitter.complete(); + } catch (Exception e) { + sendErrorEvent(emitter, e.getMessage()); + } + }); + return emitter; + } + + @Override + public String wxCpChat(String prompt) { + List messageList = new ArrayList<>(); + Message message = Message.builder().role(Message.Role.USER).content(prompt).build(); + messageList.add(message); + ChatCompletion chatCompletion = ChatCompletion + .builder() + .messages(messageList) + .model("gpt-4o-mini") + .stream(false) + .build(); + ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); + return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); + } +} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java similarity index 88% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java index 840b62f5..66a65772 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/BgeLargeVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java @@ -1,8 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +package org.ruoyi.chat.service.knowledge.vectorizer; import com.google.gson.Gson; import io.github.ollama4j.OllamaAPI; @@ -10,15 +6,20 @@ import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestModel; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + @Component @Slf4j @RequiredArgsConstructor -public class BgeLargeVectorization implements Vectorization { +public class BgeLargeVectorization implements VectorizationService { String host = "http://localhost:11434/"; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java similarity index 90% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java index bc82dbff..6365a77c 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/OpenAiVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.chat.service.knowledge.vectorizer; import jakarta.annotation.Resource; import lombok.Getter; @@ -6,14 +6,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.chat.config.ChatConfig; import org.ruoyi.common.chat.entity.embeddings.Embedding; - import org.ruoyi.common.chat.entity.embeddings.EmbeddingResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.ruoyi.system.domain.SysModel; import org.ruoyi.system.service.ISysModelService; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -25,14 +24,12 @@ import java.util.stream.Collectors; @Component @Slf4j @RequiredArgsConstructor -public class OpenAiVectorization implements Vectorization { +public class OpenAiVectorization implements VectorizationService { @Lazy @Resource private IKnowledgeInfoService knowledgeInfoService; - @Lazy - @Resource - private LocalModelsVectorization localModelsVectorization; + @Lazy @Resource private ISysModelService sysModelService; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java similarity index 80% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java index 87a09b76..18a0b9a8 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java @@ -1,10 +1,12 @@ -package org.ruoyi.knowledge.chain.vectorizer; +package org.ruoyi.chat.service.knowledge.vectorizer; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; + +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -24,12 +26,12 @@ public class VectorizationFactory { @Resource private IKnowledgeInfoService knowledgeInfoService; - public VectorizationFactory(OpenAiVectorization openAiVectorization,BgeLargeVectorization bgeLargeVectorization) { + public VectorizationFactory(OpenAiVectorization openAiVectorization, BgeLargeVectorization bgeLargeVectorization) { this.openAiVectorization = openAiVectorization; this.bgeLargeVectorization = bgeLargeVectorization; } - public Vectorization getEmbedding(String kid){ + public VectorizationService getEmbedding(String kid){ String vectorModel = "text-embedding-3-small"; if (StrUtil.isNotEmpty(kid)) { KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoService.queryById(Long.valueOf(kid)); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java similarity index 99% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java index 32e6216b..8a271aa7 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/MilvusVectorStore.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java @@ -1,4 +1,4 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import io.milvus.client.MilvusServiceClient; import io.milvus.grpc.DataType; @@ -20,7 +20,8 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.ruoyi.common.core.service.ConfigService; -import org.springframework.beans.factory.annotation.Value; + +import org.ruoyi.service.VectorStoreService; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -29,7 +30,7 @@ import java.util.List; @Service @Slf4j -public class MilvusVectorStore implements VectorStore { +public class MilvusVectorStore implements VectorStoreService { private volatile Integer dimension; private volatile String collectionName; diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java similarity index 82% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java index 4471fca9..10ce84d4 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java @@ -1,10 +1,11 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.mapper.KnowledgeInfoMapper; +import org.ruoyi.service.VectorStoreService; import org.springframework.stereotype.Component; @Component @@ -23,7 +24,7 @@ public class VectorStoreFactory { this.milvusVectorStore = milvusVectorStore; } - public VectorStore getVectorStore(String kid){ + public VectorStoreService getVectorStore(String kid){ String vectorModel = "weaviate"; if (StrUtil.isNotEmpty(kid)) { KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoMapper.selectVoById(Long.valueOf(kid)); diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java similarity index 98% rename from ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java index 785054d0..147fc500 100644 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/WeaviateVectorStore.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java @@ -1,7 +1,7 @@ -package org.ruoyi.knowledge.chain.vectorstore; +package org.ruoyi.chat.service.knowledge.vectorstore; import cn.hutool.core.lang.UUID; -import com.alibaba.fastjson2.JSONObject; +import cn.hutool.json.JSONObject; import com.google.gson.internal.LinkedTreeMap; import io.weaviate.client.Config; import io.weaviate.client.WeaviateClient; @@ -27,9 +27,9 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.beans.factory.annotation.Value; +import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IKnowledgeInfoService; +import org.ruoyi.service.VectorStoreService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -40,7 +40,7 @@ import java.util.Map; @Service @Slf4j -public class WeaviateVectorStore implements VectorStore { +public class WeaviateVectorStore implements VectorStoreService { private volatile String protocol; private volatile String host; diff --git a/ruoyi-modules/ruoyi-device/pom.xml b/ruoyi-modules/ruoyi-device/pom.xml deleted file mode 100644 index ec4cbc40..00000000 --- a/ruoyi-modules/ruoyi-device/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-device - - - 17 - 17 - UTF-8 - - - diff --git a/ruoyi-modules/ruoyi-knowledge/pom.xml b/ruoyi-modules/ruoyi-knowledge/pom.xml deleted file mode 100644 index 46576f82..00000000 --- a/ruoyi-modules/ruoyi-knowledge/pom.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-modules - ${revision} - ../pom.xml - - - ruoyi-knowledge - - - 17 - 17 - UTF-8 - - - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.springframework.boot - spring-boot-starter-freemarker - - - org.springframework.boot - spring-boot-starter-validation - - - - org.springframework.boot - spring-boot-starter-aop - - - - org.webjars - webjars-locator-core - - - org.webjars - sockjs-client - 1.0.2 - - - - org.webjars - bootstrap - 3.3.7 - - - org.webjars - jquery - 3.1.1-1 - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - 3.0.2 - - - com.baomidou - mybatis-plus-boot-starter - 3.5.3 - - - cn.hutool - hutool-all - 5.8.10 - - - com.github.xiaoymin - knife4j-openapi3-jakarta-spring-boot-starter - 4.0.0 - - - org.springframework.boot - spring-boot-devtools - runtime - true - - - - - - com.mysql - mysql-connector-j - runtime - - - io.projectreactor.netty - reactor-netty-core - 1.1.16 - - - io.projectreactor.netty - reactor-netty-http - 1.1.16 - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.projectlombok - lombok - true - - - - com.theokanning.openai-gpt3-java - api - 0.18.0 - - - com.theokanning.openai-gpt3-java - client - 0.18.0 - - - com.theokanning.openai-gpt3-java - service - 0.18.0 - - - org.springframework.boot - spring-boot-starter-test - test - - - - - com.alibaba.fastjson2 - fastjson2 - 2.0.24 - - - com.knuddels - jtokkit - 0.5.0 - - - io.weaviate - client - 4.0.0 - - - org.apache.poi - poi - 3.8 - - - org.apache.poi - poi-ooxml - 3.8 - - - org.apache.poi - poi-ooxml-schemas - 3.8 - - - org.apache.pdfbox - pdfbox - 2.0.27 - - - com.squareup.retrofit2 - converter-jackson - 2.9.0 - - - io.milvus - milvus-sdk-java - 2.3.2 - - - com.github.pagehelper - pagehelper-spring-boot-starter - 1.4.6 - - - com.belerweb - pinyin4j - 2.5.1 - - - - - org.ruoyi - ruoyi-system - - - - - - - diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java deleted file mode 100644 index 306d823f..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/LocalModelsVectorization.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import jakarta.annotation.Resource; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.chat.config.ChatConfig; -import org.ruoyi.common.chat.localModels.LocalModelsofitClient; -import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; - -@Component -@Slf4j -@RequiredArgsConstructor -public class LocalModelsVectorization { - @Resource - private IKnowledgeInfoService knowledgeInfoService; - - @Resource - private LocalModelsofitClient localModelsofitClient; - - @Getter - private OpenAiStreamClient openAiStreamClient; - - private final ChatConfig chatConfig; - - /** - * 批量向量化 - * - * @param chunkList 文本块列表 - * @param kid 知识 ID - * @return 向量化结果 - */ - - public List> batchVectorization(List chunkList, String kid) { - logVectorizationRequest(kid, chunkList); // 在向量化开始前记录日志 - openAiStreamClient = chatConfig.getOpenAiStreamClient(); // 获取 OpenAi 客户端 - KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoService.queryById(Long.valueOf(kid)); // 查询知识信息 - // 调用 localModelsofitClient 获取 Top K 嵌入向量 - try { - return localModelsofitClient.getTopKEmbeddings( - chunkList, - knowledgeInfoVo.getVectorModel(), - knowledgeInfoVo.getKnowledgeSeparator(), - knowledgeInfoVo.getRetrieveLimit(), - knowledgeInfoVo.getTextBlockSize(), - knowledgeInfoVo.getOverlapChar() - ); - } catch (Exception e) { - log.error("Failed to perform batch vectorization for knowledgeId: {}", kid, e); - throw new RuntimeException("Batch vectorization failed", e); - } - } - - /** - * 单一文本块向量化 - * - * @param chunk 单一文本块 - * @param kid 知识 ID - * @return 向量化结果 - */ - - public List singleVectorization(String chunk, String kid) { - List chunkList = new ArrayList<>(); - chunkList.add(chunk); - - // 调用批量向量化方法 - List> vectorList = batchVectorization(chunkList, kid); - - if (vectorList.isEmpty()) { - log.warn("Vectorization returned empty list for chunk: {}", chunk); - return new ArrayList<>(); - } - - return vectorList.get(0); // 返回第一个向量 - } - - /** - * 提供更简洁的日志记录方法 - * - * @param kid 知识 ID - * @param chunkList 文本块列表 - */ - private void logVectorizationRequest(String kid, List chunkList) { - log.info("Starting vectorization for Knowledge ID: {} with {} chunks.", kid, chunkList.size()); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java deleted file mode 100644 index a9d370d5..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationType.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -public enum VectorizationType { - OPENAI, // OpenAI 向量化 - LOCAL; // 本地模型向量化 - - public static VectorizationType fromString(String type) { - for (VectorizationType v : values()) { - if (v.name().equalsIgnoreCase(type)) { - return v; - } - } - throw new IllegalArgumentException("Unknown VectorizationType: " + type); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java deleted file mode 100644 index e25d3316..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorizer/VectorizationWrapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorizer; - -import jakarta.annotation.Resource; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -@Slf4j -@Primary -@AllArgsConstructor -public class VectorizationWrapper implements Vectorization{ - - private final VectorizationFactory vectorizationFactory; - @Override - public List> batchVectorization(List chunkList, String kid) { - Vectorization embedding = vectorizationFactory.getEmbedding(kid); - return embedding.batchVectorization(chunkList, kid); - } - - @Override - public List singleVectorization(String chunk, String kid) { - Vectorization embedding = vectorizationFactory.getEmbedding(kid); - return embedding.singleVectorization(chunk, kid); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java deleted file mode 100644 index e1daa619..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/chain/vectorstore/VectorStoreWrapper.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.knowledge.chain.vectorstore; - -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Primary; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -@Slf4j -@Primary -@AllArgsConstructor -public class VectorStoreWrapper implements VectorStore { - - private final VectorStoreFactory vectorStoreFactory; - - @Override - public void storeEmbeddings(List chunkList, List> vectorList, String kid, String docId, List fidList) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.storeEmbeddings(chunkList, vectorList, kid, docId, fidList); - } - - @Override - public void removeByDocId(String kid, String docId) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByDocId(kid, docId); - } - - @Override - public void removeByKid(String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByKid(kid); - } - - @Override - public List nearest(List queryVector, String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - return vectorStore.nearest(queryVector, kid); - } - - @Override - public List nearest(String query, String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - return vectorStore.nearest(query, kid); - } - - @Override - public void newSchema(String kid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.newSchema(kid); - } - - @Override - public void removeByKidAndFid(String kid, String fid) { - VectorStore vectorStore = vectorStoreFactory.getVectorStore(kid); - vectorStore.removeByKidAndFid(kid, fid); - } -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java deleted file mode 100644 index 497e7173..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeAttachBo.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeAttach; - -/** - * 知识库附件业务对象 knowledge_attach - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeAttach.class, reverseConvertGenerate = false) -public class KnowledgeAttachBo extends BaseEntity { - - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 文档ID - */ - @NotBlank(message = "文档ID不能为空") - private String docId; - - /** - * 文档名称 - */ - @NotBlank(message = "文档名称不能为空") - private String docName; - - /** - * 文档类型 - */ - @NotBlank(message = "文档类型不能为空") - private String docType; - - /** - * 文档内容 - */ - @NotBlank(message = "文档内容不能为空") - private String content; - - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java deleted file mode 100644 index be6bca18..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeFragmentBo.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeFragment; - -/** - * 知识片段业务对象 knowledge_fragment - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeFragment.class, reverseConvertGenerate = false) -public class KnowledgeFragmentBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 文档ID - */ - @NotBlank(message = "文档ID不能为空") - private String docId; - - /** - * 知识片段ID - */ - @NotBlank(message = "知识片段ID不能为空") - private String fid; - - /** - * 片段索引下标 - */ - @NotNull(message = "片段索引下标不能为空") - private Long idx; - - /** - * 文档内容 - */ - @NotBlank(message = "文档内容不能为空") - private String content; - - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java deleted file mode 100644 index b606d823..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/bo/KnowledgeInfoBo.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.ruoyi.knowledge.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.knowledge.domain.KnowledgeInfo; - -/** - * 知识库业务对象 knowledge_info - * - * @author Lion Li - * @date 2024-10-21 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = KnowledgeInfo.class, reverseConvertGenerate = false) -public class KnowledgeInfoBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空") - private Long id; - - /** - * 知识库ID - */ - @NotBlank(message = "知识库ID不能为空") - private String kid; - - /** - * 用户ID - */ - @NotNull(message = "用户ID不能为空") - private Long uid; - - /** - * 知识库名称 - */ - @NotBlank(message = "知识库名称不能为空") - private String kname; - - /** - * 知识库名称 - */ - @NotBlank(message = "是否公开知识库") - private String share; - - /** - * 描述 - */ - @NotBlank(message = "描述不能为空") - private String description; - - /** - * 知识分隔符 - */ - @NotBlank(message = "知识分隔符不能为空") - private String knowledgeSeparator; - - /** - * 提问分隔符 - */ - @NotBlank(message = "提问分隔符不能为空") - private String questionSeparator; - - /** - * 重叠字符数 - */ - @NotNull(message = "重叠字符数不能为空") - private Integer overlapChar; - - /** - * 知识库中检索的条数 - */ - @NotNull(message = "知识库中检索的条数不能为空") - private Integer retrieveLimit; - - /** - * 文本块大小 - */ - @NotNull(message = "文本块大小不能为空") - private Integer textBlockSize; - - /** - * 向量库 - */ - @NotBlank(message = "向量库不能为空") - private String vector; - - /** - * 向量模型 - */ - @NotBlank(message = "向量模型不能为空") - private String vectorModel; -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java deleted file mode 100644 index 866119da..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/req/KnowledgeInfoUploadRequest.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.knowledge.domain.req; - -import lombok.Data; -import org.springframework.web.multipart.MultipartFile; - -@Data -public class KnowledgeInfoUploadRequest { - - private String kid; - - private MultipartFile file; - -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java deleted file mode 100644 index 9a84995a..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/domain/request.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.ruoyi.knowledge.domain; - -public class request { -} diff --git a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java b/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java deleted file mode 100644 index 23f255b0..00000000 --- a/ruoyi-modules/ruoyi-knowledge/src/main/java/org/ruoyi/knowledge/service/impl/KnowledgeInfoServiceImpl.java +++ /dev/null @@ -1,200 +0,0 @@ -package org.ruoyi.knowledge.service.impl; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.RandomUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.knowledge.chain.loader.ResourceLoader; -import org.ruoyi.knowledge.chain.loader.ResourceLoaderFactory; -import org.ruoyi.knowledge.domain.KnowledgeAttach; -import org.ruoyi.knowledge.domain.KnowledgeFragment; -import org.ruoyi.knowledge.domain.KnowledgeInfo; -import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -import org.ruoyi.knowledge.mapper.KnowledgeAttachMapper; -import org.ruoyi.knowledge.mapper.KnowledgeFragmentMapper; -import org.ruoyi.knowledge.mapper.KnowledgeInfoMapper; -import org.ruoyi.knowledge.service.EmbeddingService; -import org.ruoyi.knowledge.service.IKnowledgeInfoService; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.util.*; - -/** - * 知识库Service业务层处理 - * - * @author Lion Li - * @date 2024-10-21 - */ -@Service -@RequiredArgsConstructor -public class KnowledgeInfoServiceImpl implements IKnowledgeInfoService { - - private final KnowledgeInfoMapper baseMapper; - - private final EmbeddingService embeddingService; - - private final ResourceLoaderFactory resourceLoaderFactory; - - private final KnowledgeFragmentMapper fragmentMapper; - - private final KnowledgeAttachMapper attachMapper; - - /** - * 查询知识库 - */ - @Override - public KnowledgeInfoVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询知识库列表 - */ - @Override - public TableDataInfo queryPageList(KnowledgeInfoBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询知识库列表 - */ - @Override - public List queryList(KnowledgeInfoBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(KnowledgeInfoBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getKid()), KnowledgeInfo::getKid, bo.getKid()); - lqw.eq(bo.getUid() != null, KnowledgeInfo::getUid, bo.getUid()); - lqw.like(StringUtils.isNotBlank(bo.getKname()), KnowledgeInfo::getKname, bo.getKname()); - lqw.eq(StringUtils.isNotBlank(bo.getDescription()), KnowledgeInfo::getDescription, bo.getDescription()); - // 查询公开的知识库 - lqw.or(wrapper -> wrapper.eq(KnowledgeInfo::getShare, "1")); - return lqw; - } - - /** - * 修改知识库 - */ - @Override - public Boolean updateByBo(KnowledgeInfoBo bo) { - KnowledgeInfo update = MapstructUtils.convert(bo, KnowledgeInfo.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(KnowledgeInfo entity){ - //TODO 做一些数据校验,如唯一约束 - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void saveOne(KnowledgeInfoBo bo) { - KnowledgeInfo knowledgeInfo = MapstructUtils.convert(bo, KnowledgeInfo.class); - if (StringUtils.isBlank(bo.getKid())){ - String kid = RandomUtil.randomString(10); - if (knowledgeInfo != null) { - knowledgeInfo.setKid(kid); - knowledgeInfo.setUid(LoginHelper.getLoginUser().getUserId()); - } - baseMapper.insert(knowledgeInfo); - embeddingService.createSchema(String.valueOf(knowledgeInfo.getId())); - }else { - baseMapper.updateById(knowledgeInfo); - } - } - - @Override - public void upload(KnowledgeInfoUploadRequest request) { - storeContent(request.getFile(), request.getKid()); - } - - public void storeContent(MultipartFile file, String kid) { - String fileName = file.getOriginalFilename(); - List chunkList = new ArrayList<>(); - KnowledgeAttach knowledgeAttach = new KnowledgeAttach(); - knowledgeAttach.setKid(kid); - String docId = RandomUtil.randomString(10); - knowledgeAttach.setDocId(docId); - knowledgeAttach.setDocName(fileName); - knowledgeAttach.setDocType(fileName.substring(fileName.lastIndexOf(".")+1)); - String content = ""; - ResourceLoader resourceLoader = resourceLoaderFactory.getLoaderByFileType(knowledgeAttach.getDocType()); - List fids = new ArrayList<>(); - try { - content = resourceLoader.getContent(file.getInputStream()); - chunkList = resourceLoader.getChunkList(content, kid); - List knowledgeFragmentList = new ArrayList<>(); - if (CollUtil.isNotEmpty(chunkList)) { - for (int i = 0; i < chunkList.size(); i++) { - String fid = RandomUtil.randomString(16); - fids.add(fid); - KnowledgeFragment knowledgeFragment = new KnowledgeFragment(); - knowledgeFragment.setKid(kid); - knowledgeFragment.setDocId(docId); - knowledgeFragment.setFid(fid); - knowledgeFragment.setIdx(i); - // String text = convertTextBlockToPretrainData(chunkList.get(i)); - knowledgeFragment.setContent(chunkList.get(i)); - knowledgeFragment.setCreateTime(new Date()); - knowledgeFragmentList.add(knowledgeFragment); - } - } - fragmentMapper.insertBatch(knowledgeFragmentList); - } catch (IOException e) { - e.printStackTrace(); - } - knowledgeAttach.setContent(content); - knowledgeAttach.setCreateTime(new Date()); - attachMapper.insert(knowledgeAttach); - embeddingService.storeEmbeddings(chunkList,kid,docId,fids); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void removeKnowledge(String id) { - Map map = new HashMap<>(); - map.put("kid",id); - List knowledgeInfoList = baseMapper.selectVoByMap(map); - check(knowledgeInfoList); - // 删除向量库信息 - knowledgeInfoList.forEach(knowledgeInfoVo -> { - embeddingService.removeByKid(String.valueOf(knowledgeInfoVo.getId())); - }); - // 删除附件和知识片段 - fragmentMapper.deleteByMap(map); - attachMapper.deleteByMap(map); - // 删除知识库 - baseMapper.deleteByMap(map); - } - - @Override - public void check(List knowledgeInfoList){ - LoginUser loginUser = LoginHelper.getLoginUser(); - for (KnowledgeInfoVo knowledgeInfoVo : knowledgeInfoList) { - if(!knowledgeInfoVo.getUid().equals(loginUser.getUserId())){ - throw new SecurityException("权限不足"); - } - } - } -} diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 17d37c57..a22691de 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -118,17 +118,19 @@ org.ruoyi ruoyi-common-pay - - io.github.ollama4j - ollama4j - 1.0.79 - compile - + + org.ruoyi ruoyi-common-mail + + + org.ruoyi + ruoyi-system-api + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java deleted file mode 100644 index 18763372..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/AbstractBuilder.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author Binary Wang - */ -public abstract class AbstractBuilder { - protected final Logger logger = LoggerFactory.getLogger(getClass()); - - public abstract WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, WxCpService service); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java deleted file mode 100644 index 048372e0..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/ImageBuilder.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutImageMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; - - -/** - * @author Binary Wang - */ -public class ImageBuilder extends AbstractBuilder { - - @Override - public WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, - WxCpService service) { - - WxCpXmlOutImageMessage m = WxCpXmlOutMessage.IMAGE().mediaId(content) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - - return m; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java deleted file mode 100644 index c60fe8fe..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/builder/TextBuilder.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.builder; - -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutTextMessage; - -/** - * @author Binary Wang - */ -public class TextBuilder extends AbstractBuilder { - - @Override - public WxCpXmlOutMessage build(String content, WxCpXmlMessage wxMessage, - WxCpService service) { - WxCpXmlOutTextMessage m = WxCpXmlOutMessage.TEXT().content(content) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - return m; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java deleted file mode 100644 index 1200f51a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/GptConfig.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -import java.util.List; - -/** - * gpt配置 - * - * @author ashinnotfound - * @date 2023/03/04 - */ -@Data -@Component -@ConfigurationProperties("gpt") -public class GptConfig { - private String baseUrl; - private String model; - private Integer maxToken; - private Double temperature; - private List basicPrompt; - private List apiKey; - private Long ofSeconds; - private String imageQuality; - private String imageStyle; - private String audioModel; - private String audioVoice; - private Double audioSpeed; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java deleted file mode 100644 index b7406c11..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/OkHttpConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.system.cofing; - -import jakarta.annotation.PostConstruct; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.OkHttpUtil; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.ISysModelService; -import org.springframework.stereotype.Component; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -@RequiredArgsConstructor -public class OkHttpConfig { - - private final ISysModelService sysModelService; - private final Map okHttpUtilMap = new HashMap<>(); - @Getter - private String generate; - - @PostConstruct - public void init() { - initializeOkHttpUtil("suno"); - initializeOkHttpUtil("luma"); - initializeOkHttpUtil("ppt"); - } - - private void initializeOkHttpUtil(String modelName) { - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelName(modelName); - List sysModelList = sysModelService.queryList(sysModelBo); - if (!sysModelList.isEmpty()) { - SysModelVo model = sysModelList.get(0); - OkHttpUtil okHttpUtil = new OkHttpUtil(); - okHttpUtil.setApiHost(model.getApiHost()); - okHttpUtil.setApiKey(model.getApiKey()); - generate = String.valueOf(model.getModelPrice()); - okHttpUtilMap.put(modelName, okHttpUtil); - } - } - - public OkHttpUtil getOkHttpUtil(String modelName) { - return okHttpUtilMap.get(modelName); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java deleted file mode 100644 index 34ccccdc..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/QqConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -/** - * qq配置 - * - * @author ashinnotfound - * @date 2023/03/04 - */ -@Data -@Component -@ConfigurationProperties("qq") -public class QqConfig { - private Boolean enable; - private Long account; - private Boolean acceptNewFriend; - private Boolean acceptNewGroup; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java deleted file mode 100644 index 784c939c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpConfiguration.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.ruoyi.system.cofing; - - -import com.google.common.collect.Maps; -import jakarta.annotation.PostConstruct; -import lombok.val; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl; -import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl; -import me.chanjar.weixin.cp.constant.WxCpConsts; -import me.chanjar.weixin.cp.message.WxCpMessageRouter; -import org.ruoyi.system.handler.wxcp.*; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Configuration; -import me.chanjar.weixin.cp.api.WxCpService; - -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 单实例配置 - * - * @author Binary Wang - */ -@Configuration -@EnableConfigurationProperties(WxCpProperties.class) -public class WxCpConfiguration { - private LogHandler logHandler; - private NullHandler nullHandler; - private LocationHandler locationHandler; - private MenuHandler menuHandler; - private MsgHandler msgHandler; - private UnsubscribeHandler unsubscribeHandler; - private SubscribeHandler subscribeHandler; - - private WxCpProperties properties; - - private static Map routers = Maps.newHashMap(); - private static Map cpServices = Maps.newHashMap(); - - @Autowired - public WxCpConfiguration(LogHandler logHandler, NullHandler nullHandler, LocationHandler locationHandler, - MenuHandler menuHandler, MsgHandler msgHandler, UnsubscribeHandler unsubscribeHandler, - SubscribeHandler subscribeHandler, WxCpProperties properties) { - this.logHandler = logHandler; - this.nullHandler = nullHandler; - this.locationHandler = locationHandler; - this.menuHandler = menuHandler; - this.msgHandler = msgHandler; - this.unsubscribeHandler = unsubscribeHandler; - this.subscribeHandler = subscribeHandler; - this.properties = properties; - } - - - public static Map getRouters() { - return routers; - } - - public static WxCpService getCpService(Integer agentId) { - return cpServices.get(agentId); - } - - @PostConstruct - public void initServices() { - cpServices = this.properties.getAppConfigs().stream().map(a -> { - val configStorage = new WxCpDefaultConfigImpl(); - configStorage.setCorpId(this.properties.getCorpId()); - configStorage.setAgentId(a.getAgentId()); - configStorage.setCorpSecret(a.getSecret()); - configStorage.setToken(a.getToken()); - configStorage.setAesKey(a.getAesKey()); - val service = new WxCpServiceImpl(); - service.setWxCpConfigStorage(configStorage); - routers.put(a.getAgentId(), this.newRouter(service)); - return service; - }).collect(Collectors.toMap(service -> service.getWxCpConfigStorage().getAgentId(), a -> a)); - } - - private WxCpMessageRouter newRouter(WxCpService wxCpService) { - final val newRouter = new WxCpMessageRouter(wxCpService); - - // 记录所有事件的日志 (异步执行) - newRouter.rule().handler(this.logHandler).next(); - - // 自定义菜单事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.MenuButtonType.CLICK).handler(this.menuHandler).end(); - - // 点击菜单链接事件(这里使用了一个空的处理器,可以根据自己需要进行扩展) - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.MenuButtonType.VIEW).handler(this.nullHandler).end(); - - // 关注事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.SUBSCRIBE).handler(this.subscribeHandler) - .end(); - - // 取消关注事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.UNSUBSCRIBE) - .handler(this.unsubscribeHandler).end(); - - // 上报地理位置事件 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.LOCATION).handler(this.locationHandler) - .end(); - - // 接收地理位置消息 - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.LOCATION) - .handler(this.locationHandler).end(); - - // 扫码事件(这里使用了一个空的处理器,可以根据自己需要进行扩展) - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxConsts.EventType.SCAN).handler(this.nullHandler).end(); - - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxCpConsts.EventType.CHANGE_CONTACT).handler(new ContactChangeHandler()).end(); - - newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT) - .event(WxCpConsts.EventType.ENTER_AGENT).handler(new EnterAgentHandler()).end(); - - // 默认 - newRouter.rule().async(false).handler(this.msgHandler).end(); - - return newRouter; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java deleted file mode 100644 index 7b27f15b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxCpProperties.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.cofing; - -import lombok.Data; -import lombok.Getter; -import lombok.Setter; -import org.springframework.boot.context.properties.ConfigurationProperties; - -import java.util.List; - -/** - * @author Binary Wang - */ -@Data -@ConfigurationProperties(prefix = "wechat.cp") -public class WxCpProperties { - /** - * 设置企业微信的corpId - */ - private String corpId; - - private List appConfigs; - - @Getter - @Setter - public static class AppConfig { - /** - * 设置企业微信应用的AgentId - */ - private Integer agentId; - - /** - * 设置企业微信应用的Secret - */ - private String secret; - - /** - * 设置企业微信应用的token - */ - private String token; - - /** - * 设置企业微信应用的EncodingAESKey - */ - private String aesKey; - - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java deleted file mode 100644 index 5fdc06d5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaConfiguration.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.ruoyi.system.cofing; - -import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; -import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; -import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; -import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; -import cn.binarywang.wx.miniapp.message.WxMaMessageHandler; -import cn.binarywang.wx.miniapp.message.WxMaMessageRouter; -import com.google.common.collect.Lists; -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.error.WxRuntimeException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.io.File; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author Admin - */ -@Slf4j -@Configuration -@EnableConfigurationProperties(WxMaProperties.class) -public class WxMaConfiguration { - private final WxMaProperties properties; - - @Autowired - public WxMaConfiguration(WxMaProperties properties) { - this.properties = properties; - } - - @Bean - public WxMaService wxMaService() { - List configs = this.properties.getConfigs(); - if (configs == null) { - throw new WxRuntimeException("大哥,拜托先看下项目首页的说明(readme文件),添加下相关配置,注意别配错了!"); - } - WxMaService maService = new WxMaServiceImpl(); - maService.setMultiConfigs( - configs.stream() - .map(a -> { - WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); -// WxMaDefaultConfigImpl config = new WxMaRedisConfigImpl(new JedisPool()); - // 使用上面的配置时,需要同时引入jedis-lock的依赖,否则会报类无法找到的异常 - config.setAppid(a.getAppid()); - config.setSecret(a.getSecret()); - config.setToken(a.getToken()); - config.setAesKey(a.getAesKey()); - config.setMsgDataFormat(a.getMsgDataFormat()); - return config; - }).collect(Collectors.toMap(WxMaDefaultConfigImpl::getAppid, a -> a, (o, n) -> o))); - return maService; - } - - @Bean - public WxMaMessageRouter wxMaMessageRouter(WxMaService wxMaService) { - final WxMaMessageRouter router = new WxMaMessageRouter(wxMaService); - router - .rule().handler(logHandler).next() - .rule().async(false).content("订阅消息").handler(subscribeMsgHandler).end() - .rule().async(false).content("文本").handler(textHandler).end() - .rule().async(false).content("图片").handler(picHandler).end() - .rule().async(false).content("二维码").handler(qrcodeHandler).end(); - return router; - } - - private final WxMaMessageHandler subscribeMsgHandler = (wxMessage, context, service, sessionManager) -> { - service.getMsgService().sendSubscribeMsg(WxMaSubscribeMessage.builder() - .templateId("此处更换为自己的模板id") - .data(Lists.newArrayList( - new WxMaSubscribeMessage.MsgData("keyword1", "339208499"))) - .toUser(wxMessage.getFromUser()) - .build()); - return null; - }; - - private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> { - log.info("收到消息:" + wxMessage.toString()); - service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson()) - .toUser(wxMessage.getFromUser()).build()); - return null; - }; - - private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) -> { - service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息") - .toUser(wxMessage.getFromUser()).build()); - return null; - }; - - private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> { - try { - WxMediaUploadResult uploadResult = service.getMediaService() - .uploadMedia("image", "png", - ClassLoader.getSystemResourceAsStream("tmp.png")); - service.getMsgService().sendKefuMsg( - WxMaKefuMessage - .newImageBuilder() - .mediaId(uploadResult.getMediaId()) - .toUser(wxMessage.getFromUser()) - .build()); - } catch (WxErrorException e) { - e.printStackTrace(); - } - - return null; - }; - - private final WxMaMessageHandler qrcodeHandler = (wxMessage, context, service, sessionManager) -> { - try { - final File file = service.getQrcodeService().createQrcode("123", 430); - WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia("image", file); - service.getMsgService().sendKefuMsg( - WxMaKefuMessage - .newImageBuilder() - .mediaId(uploadResult.getMediaId()) - .toUser(wxMessage.getFromUser()) - .build()); - } catch (WxErrorException e) { - e.printStackTrace(); - } - - return null; - }; - -} - diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java deleted file mode 100644 index eb3ad063..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/cofing/WxMaProperties.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.system.cofing; - -/** - * 微信小程序属性配置类 - * - * @author: wangle - * @date: 2023/5/18 - */ - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; - -import java.util.List; - -/** - * @author Binary Wang - */ -@Data -@ConfigurationProperties(prefix = "wx.miniapp") -public class WxMaProperties { - - private List configs; - - @Data - public static class Config { - /** - * 设置微信小程序的appid - */ - private String appid; - - /** - * 设置微信小程序的Secret - */ - private String secret; - - /** - * 设置微信小程序消息服务器配置的token - */ - private String token; - - /** - * 设置微信小程序消息服务器配置的EncodingAESKey - */ - private String aesKey; - - /** - * 消息格式,XML或者JSON - */ - private String msgDataFormat; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java deleted file mode 100644 index a3db5ad8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatConfigController.java +++ /dev/null @@ -1,129 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 对话配置信息 - * - * @author Lion Li - * @date 2024-04-13 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/chat/config") -public class ChatConfigController extends BaseController { - - private final IChatConfigService chatConfigService; - - private final ConfigService configService; - - /** - * 查询配置信息列表 - */ - @GetMapping("/list") - @SaCheckPermission("system:config:list") - public R> list(ChatConfigBo bo) { - return R.ok(chatConfigService.queryList(bo)); - } - - /** - * 获取对话配置信详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:config:list") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatConfigService.queryById(id)); - } - - /** - * 根据参数键名查询系统参数值 - * - * @param configKey 参数Key - */ - @SaCheckPermission("system:config:list") - @GetMapping(value = "/configKey/{configKey}") - public R getConfigKey(@PathVariable String configKey) { - return R.ok(configService.getConfigValue("sys",configKey)); - } - - /** - * 查询版权信息 - * - */ - @GetMapping(value = "/configKey/copyright") - public R getConfigKeyCopyright() { - return R.ok(configService.getConfigValue("sys","copyright")); - } - - /** - * 查询logoImage - * - */ - @GetMapping(value = "/configKey/logoImage") - public R getConfigKeyLogoImage() { - return R.ok(configService.getConfigValue("sys","logoImage")); - } - - /** - * 查询系统参数 - * - */ - @SaCheckPermission("system:config:list") - @GetMapping(value = "/sysConfigKey") - public R> getSysConfigKey() { - return R.ok(chatConfigService.getSysConfigValue("sys")); - } - - /** - * 新增对话配置信息 - */ - @SaCheckPermission("system:config:add") - @PostMapping("/add") - public R add(@RequestBody List boList) { - for (ChatConfigBo chatConfigBo : boList) { - if(chatConfigBo.getId() == null){ - chatConfigService.insertByBo(chatConfigBo); - }else { - chatConfigService.updateByBo(chatConfigBo); - } - } - return toAjax(true); - } - - /** - * 修改对话配置信息 - */ - @SaCheckPermission("system:config:edit") - @PutMapping("/edit") - public R edit(@Validated(EditGroup.class) @RequestBody ChatConfigBo bo) { - return toAjax(chatConfigService.updateByBo(bo)); - } - - /** - * 删除对话配置信息 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:config:edit") - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatConfigService.deleteWithValidByIds(List.of(ids), true)); - } - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java deleted file mode 100644 index 96e5b19a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatGptsController.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * gpts管理 - * - * @author Lion Li - * @date 2024-07-09 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/gpts") -public class ChatGptsController extends BaseController { - - private final IChatGptsService chatGptsService; - - /** - * 查询gpts管理列表 - */ - @GetMapping("/list") - public TableDataInfo list(ChatGptsBo bo, PageQuery pageQuery) { - return chatGptsService.queryPageList(bo, pageQuery); - } - - /** - * 导出gpts管理列表 - */ - @SaCheckPermission("system:gpts:export") - @Log(title = "gpts管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatGptsBo bo, HttpServletResponse response) { - List list = chatGptsService.queryList(bo); - ExcelUtil.exportExcel(list, "gpts管理", ChatGptsVo.class, response); - } - - /** - * 获取gpts管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:gpts:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatGptsService.queryById(id)); - } - - /** - * 新增gpts管理 - */ - @SaCheckPermission("system:gpts:add") - @Log(title = "gpts管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatGptsBo bo) { - return toAjax(chatGptsService.insertByBo(bo)); - } - - /** - * 修改gpts管理 - */ - @SaCheckPermission("system:gpts:edit") - @Log(title = "gpts管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatGptsBo bo) { - return toAjax(chatGptsService.updateByBo(bo)); - } - - /** - * 删除gpts管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:gpts:remove") - @Log(title = "gpts管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatGptsService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java deleted file mode 100644 index 5d0486df..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatMessageController.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 聊天消息 - * - * @author Lion Li - * @date 2024-04-16 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/message") -public class ChatMessageController extends BaseController { - - private final IChatMessageService chatMessageService; - - /** - * 查询聊天消息列表 - */ - @SaCheckPermission("system:message:list") - @GetMapping("/list") - public TableDataInfo list(ChatMessageBo bo, PageQuery pageQuery) { - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return chatMessageService.queryPageList(bo, pageQuery); - } - - /** - * 查询我的聊天消息列表 - */ - @GetMapping("/listByUser") - public R> listByUser(ChatMessageBo bo, PageQuery pageQuery) { - bo.setUserId(LoginHelper.getUserId()); - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return R.ok(chatMessageService.queryPageList(bo, pageQuery)); - } - - /** - * 导出聊天消息列表 - */ - @SaCheckPermission("system:message:export") - @Log(title = "聊天消息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatMessageBo bo, HttpServletResponse response) { - List list = chatMessageService.queryList(bo); - ExcelUtil.exportExcel(list, "聊天消息", ChatMessageVo.class, response); - } - - /** - * 获取聊天消息详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:message:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatMessageService.queryById(id)); - } - - /** - * 新增聊天消息 - */ - @SaCheckPermission("system:message:add") - @Log(title = "聊天消息", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatMessageBo bo) { - return toAjax(chatMessageService.insertByBo(bo)); - } - - /** - * 修改聊天消息 - */ - @SaCheckPermission("system:message:edit") - @Log(title = "聊天消息", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatMessageBo bo) { - return toAjax(chatMessageService.updateByBo(bo)); - } - - /** - * 删除聊天消息 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:message:remove") - @Log(title = "聊天消息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatMessageService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java deleted file mode 100644 index a0d9a1b4..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatPluginController.java +++ /dev/null @@ -1,102 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 插件管理 - * - * @author ageerle - * @date 2025-03-30 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/plugin") -public class ChatPluginController extends BaseController { - - private final IChatPluginService chatPluginService; - - /** - * 查询插件管理列表 - */ - @SaCheckPermission("system:plugin:list") - @GetMapping("/list") - public TableDataInfo list(ChatPluginBo bo, PageQuery pageQuery) { - return chatPluginService.queryPageList(bo, pageQuery); - } - - /** - * 导出插件管理列表 - */ - @SaCheckPermission("system:plugin:export") - @Log(title = "插件管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatPluginBo bo, HttpServletResponse response) { - List list = chatPluginService.queryList(bo); - ExcelUtil.exportExcel(list, "插件管理", ChatPluginVo.class, response); - } - - /** - * 获取插件管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:plugin:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatPluginService.queryById(id)); - } - - /** - * 新增插件管理 - */ - @SaCheckPermission("system:plugin:add") - @Log(title = "插件管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatPluginBo bo) { - return toAjax(chatPluginService.insertByBo(bo)); - } - - /** - * 修改插件管理 - */ - @SaCheckPermission("system:plugin:edit") - @Log(title = "插件管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatPluginBo bo) { - return toAjax(chatPluginService.updateByBo(bo)); - } - - /** - * 删除插件管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:plugin:remove") - @Log(title = "插件管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatPluginService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java deleted file mode 100644 index 532fb330..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatStoreController.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.ruoyi.system.controller.system; - -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 应用商店 - * - * @author Lion Li - * @date 2024-03-19 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/store") -public class ChatStoreController extends BaseController { - - private final IChatAppStoreService appStoreService; - - /** - * 应用商店 - */ - @GetMapping("/appList") - public R> appList(ChatAppStoreBo bo) { - return R.ok(appStoreService.queryList(bo)); - } - - /** - * 收藏应用 - */ - @PostMapping("/copyApp") - public R copyApp() { - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java deleted file mode 100644 index f4022782..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVisitorUsageController.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 访客管理 - * - * @author Lion Li - * @date 2024-07-14 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/visitorUsage") -public class ChatVisitorUsageController extends BaseController { - - private final IChatVisitorUsageService chatVisitorUsageService; - - /** - * 查询访客管理列表 - */ - @SaCheckPermission("system:visitorUsage:list") - @GetMapping("/list") - public TableDataInfo list(ChatVisitorUsageBo bo, PageQuery pageQuery) { - return chatVisitorUsageService.queryPageList(bo, pageQuery); - } - - /** - * 导出访客管理列表 - */ - @SaCheckPermission("system:visitorUsage:export") - @Log(title = "访客管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatVisitorUsageBo bo, HttpServletResponse response) { - List list = chatVisitorUsageService.queryList(bo); - ExcelUtil.exportExcel(list, "访客管理", ChatVisitorUsageVo.class, response); - } - - /** - * 获取访客管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:visitorUsage:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatVisitorUsageService.queryById(id)); - } - - /** - * 新增访客管理 - */ - @SaCheckPermission("system:visitorUsage:add") - @Log(title = "访客管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatVisitorUsageBo bo) { - return toAjax(chatVisitorUsageService.insertByBo(bo)); - } - - /** - * 修改访客管理 - */ - @SaCheckPermission("system:visitorUsage:edit") - @Log(title = "访客管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatVisitorUsageBo bo) { - return toAjax(chatVisitorUsageService.updateByBo(bo)); - } - - /** - * 删除访客管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:visitorUsage:remove") - @Log(title = "访客管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatVisitorUsageService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java deleted file mode 100644 index 88cc4f40..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/ChatVoucherController.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 用户兑换记录 - * - * @author Lion Li - * @date 2024-05-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/voucher") -public class ChatVoucherController extends BaseController { - - private final IChatVoucherService chatVoucherService; - - /** - * 查询用户兑换记录列表 - */ - @SaCheckPermission("system:voucher:list") - @GetMapping("/list") - public TableDataInfo list(ChatVoucherBo bo, PageQuery pageQuery) { - return chatVoucherService.queryPageList(bo, pageQuery); - } - - /** - * 导出用户兑换记录列表 - */ - @SaCheckPermission("system:voucher:export") - @Log(title = "用户兑换记录", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(ChatVoucherBo bo, HttpServletResponse response) { - List list = chatVoucherService.queryList(bo); - ExcelUtil.exportExcel(list, "用户兑换记录", ChatVoucherVo.class, response); - } - - /** - * 获取用户兑换记录详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:voucher:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(chatVoucherService.queryById(id)); - } - - /** - * 新增用户兑换记录 - */ - @SaCheckPermission("system:voucher:add") - @Log(title = "用户兑换记录", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody ChatVoucherBo bo) { - bo.setCode(UUIDShortUtil.generateShortUuid()); - return toAjax(chatVoucherService.insertByBo(bo)); - } - - /** - * 兑换卡密 - * - * @param bo 卡密信息 - * @return 是否兑换成功 - */ - @PostMapping("/redeem") - public R redeem(@RequestBody ChatVoucherBo bo) { - if(chatVoucherService.redeem(bo)){ - return R.ok("兑换成功!"); - }else { - return R.fail("兑换失败,请联系管理员!"); - } - } - - /** - * 修改用户兑换记录 - */ - @SaCheckPermission("system:voucher:edit") - @Log(title = "用户兑换记录", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody ChatVoucherBo bo) { - return toAjax(chatVoucherService.updateByBo(bo)); - } - - /** - * 删除用户兑换记录 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:voucher:remove") - @Log(title = "用户兑换记录", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(chatVoucherService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java deleted file mode 100644 index 3ea10afe..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/KnowledgeController.java +++ /dev/null @@ -1,184 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.dev33.satoken.stp.StpUtil; -//import jakarta.servlet.http.HttpServletRequest; -//import jakarta.servlet.http.HttpServletResponse; -//import jakarta.validation.Valid; -//import jakarta.validation.constraints.NotEmpty; -//import jakarta.validation.constraints.NotNull; -//import lombok.RequiredArgsConstructor; -//import org.ruoyi.common.chat.domain.request.ChatRequest; -//import org.ruoyi.common.chat.entity.chat.Message; -//import org.ruoyi.common.core.domain.R; -//import org.ruoyi.common.core.validate.AddGroup; -//import org.ruoyi.common.excel.utils.ExcelUtil; -//import org.ruoyi.common.log.annotation.Log; -//import org.ruoyi.common.log.enums.BusinessType; -//import org.ruoyi.common.mybatis.core.page.PageQuery; -//import org.ruoyi.common.mybatis.core.page.TableDataInfo; -//import org.ruoyi.common.satoken.utils.LoginHelper; -//import org.ruoyi.common.web.core.BaseController; -//import org.ruoyi.knowledge.chain.vectorstore.VectorStore; -//import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo; -//import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo; -//import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo; -//import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest; -//import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo; -//import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo; -//import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo; -//import org.ruoyi.knowledge.service.EmbeddingService; -//import org.ruoyi.knowledge.service.IKnowledgeAttachService; -//import org.ruoyi.knowledge.service.IKnowledgeFragmentService; -//import org.ruoyi.knowledge.service.IKnowledgeInfoService; -//import org.ruoyi.system.service.ISseService; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.*; -//import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -// -//import java.util.List; -// -// -///** -// * 知识库 -// * -// * @author Lion Li -// * @date 2024-10-21 -// */ -//@Validated -//@RequiredArgsConstructor -//@RestController -//@RequestMapping("/knowledge") -//public class KnowledgeController extends BaseController { -// -// private final IKnowledgeInfoService knowledgeInfoService; -// -// private final VectorStore vectorStore; -// -// private final IKnowledgeAttachService attachService; -// -// private final IKnowledgeFragmentService fragmentService; -// -// private final EmbeddingService embeddingService; -// -// private final ISseService sseService; -// -// /** -// * 知识库对话 -// */ -// @PostMapping("/send") -// public SseEmitter send(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) { -// List messages = chatRequest.getMessages(); -// // 获取知识库信息 -// Message message = messages.get(messages.size() - 1); -// StringBuilder sb = new StringBuilder(message.getContent().toString()); -// List nearestList; -// List queryVector = embeddingService.getQueryVector(message.getContent().toString(), chatRequest.getKid()); -// nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); -// for (String prompt : nearestList) { -// sb.append("\n####").append(prompt); -// } -// sb.append( (nearestList.size() > 0 ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")); -// message.setContent(sb.toString()); -// return sseService.sseChat(chatRequest, request); -// } -// -// /** -// * 根据用户信息查询本地知识库 -// */ -// @GetMapping("/list") -// public TableDataInfo list(KnowledgeInfoBo bo, PageQuery pageQuery) { -// if(!StpUtil.isLogin()){ -// return null; -// } -// bo.setUid(LoginHelper.getUserId()); -// return knowledgeInfoService.queryPageList(bo, pageQuery); -// } -// -// /** -// * 新增知识库 -// */ -// @Log(title = "知识库", businessType = BusinessType.INSERT) -// @PostMapping("/save") -// public R save(@Validated(AddGroup.class) @RequestBody KnowledgeInfoBo bo) { -// knowledgeInfoService.saveOne(bo); -// return R.ok(); -// } -// -// /** -// * 删除知识库 -// */ -// @PostMapping("/remove/{id}") -// public R remove(@PathVariable String id){ -// knowledgeInfoService.removeKnowledge(id); -// return R.ok("删除知识库成功!"); -// } -// -// /** -// * 修改知识库 -// */ -// @Log(title = "知识库", businessType = BusinessType.UPDATE) -// @PostMapping("/edit") -// public R edit( @RequestBody KnowledgeInfoBo bo) { -// return toAjax(knowledgeInfoService.updateByBo(bo)); -// } -// -// /** -// * 导出知识库列表 -// */ -// @Log(title = "知识库", businessType = BusinessType.EXPORT) -// @PostMapping("/export") -// public void export(KnowledgeInfoBo bo, HttpServletResponse response) { -// List list = knowledgeInfoService.queryList(bo); -// ExcelUtil.exportExcel(list, "知识库", KnowledgeInfoVo.class, response); -// } -// -// /** -// * 查询知识附件信息 -// */ -// @GetMapping("/detail/{kid}") -// public TableDataInfo attach(KnowledgeAttachBo bo, PageQuery pageQuery,@PathVariable String kid){ -// bo.setKid(kid); -// return attachService.queryPageList(bo, pageQuery); -// } -// -// /** -// * 上传知识库附件 -// */ -// @PostMapping(value = "/attach/upload") -// public R upload(KnowledgeInfoUploadRequest request){ -// knowledgeInfoService.upload(request); -// return R.ok("上传知识库附件成功!"); -// } -// -// /** -// * 获取知识库附件详细信息 -// * -// * @param id 主键 -// */ -// @GetMapping("attach/info/{id}") -// public R getAttachInfo(@NotNull(message = "主键不能为空") -// @PathVariable Long id) { -// return R.ok(attachService.queryById(id)); -// } -// -// /** -// * 删除知识库附件 -// * -// */ -// @PostMapping("attach/remove/{docId}") -// public R removeAttach(@NotEmpty(message = "主键不能为空") @PathVariable String docId) { -// attachService.removeKnowledgeAttach(docId); -// return R.ok(); -// } -// -// -// /** -// * 查询知识片段 -// */ -// @GetMapping("/fragment/list/{docId}") -// public TableDataInfo fragmentList(KnowledgeFragmentBo bo, PageQuery pageQuery, @PathVariable String docId) { -// bo.setDocId(docId); -// return fragmentService.queryPageList(bo, pageQuery); -// } -// -//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java deleted file mode 100644 index eef83314..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PayController.java +++ /dev/null @@ -1,333 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.hutool.core.bean.BeanUtil; -//import cn.hutool.core.collection.CollectionUtil; -//import cn.hutool.extra.qrcode.QrCodeUtil; -//import cn.hutool.json.JSONObject; -//import cn.hutool.json.JSONUtil; -//import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; -//import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; -//import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult; -//import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; -//import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; -//import com.github.binarywang.wxpay.exception.WxPayException; -//import com.github.binarywang.wxpay.service.WxPayService; -//import com.stripe.Stripe; -//import com.stripe.exception.StripeException; -//import com.stripe.model.Event; -//import com.stripe.model.Price; -//import com.stripe.model.Product; -//import com.stripe.model.checkout.Session; -//import com.stripe.net.Webhook; -//import com.stripe.param.checkout.SessionCreateParams; -//import jakarta.servlet.http.HttpServletRequest; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.slf4j.Slf4j; -//import org.ruoyi.common.config.PayConfig; -//import org.ruoyi.common.core.domain.R; -//import org.ruoyi.common.core.exception.base.BaseException; -//import org.ruoyi.common.core.service.ConfigService; -//import org.ruoyi.common.core.utils.StringUtils; -//import org.ruoyi.common.oss.core.OssClient; -//import org.ruoyi.common.oss.entity.UploadResult; -//import org.ruoyi.common.oss.factory.OssFactory; -//import org.ruoyi.common.response.PayResponse; -//import org.ruoyi.common.service.PayService; -//import org.ruoyi.common.utils.MD5Util; -//import org.ruoyi.system.domain.bo.PaymentOrdersBo; -//import org.ruoyi.system.domain.bo.SysUserBo; -//import org.ruoyi.system.domain.request.OrderRequest; -//import org.ruoyi.system.domain.vo.PaymentOrdersVo; -//import org.ruoyi.system.domain.vo.SysUserVo; -//import org.ruoyi.system.service.IPaymentOrdersService; -//import org.ruoyi.system.service.ISysUserService; -//import org.springframework.web.bind.annotation.*; -// -//import java.io.ByteArrayOutputStream; -//import java.io.InputStream; -//import java.math.BigDecimal; -//import java.math.RoundingMode; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Map; -// -// -//@RequiredArgsConstructor -//@RestController -//@RequestMapping("/pay") -//@Slf4j -//public class PayController { -// -// private final PayService payService; -// -// private final ISysUserService userService; -// -// private final IPaymentOrdersService paymentOrdersService; -// -// private final PayConfig payConfig; -// -// private final WxPayService wxService; -// -// private final ConfigService configService; -// -// /** -// * 获取支付二维码 -// * -// * @Date 2023/7/3 -// * @return void -// **/ -// @PostMapping("/payUrl") -// public R payUrl(@RequestBody OrderRequest orderRequest) { -// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); -// PaymentOrdersVo paymentOrdersVo = new PaymentOrdersVo(); -// if(!Boolean.parseBoolean(getKey("enabled"))){ -// String payUrl = payService.getPayUrl(payOrder.getOrderNo(), orderRequest.getName(), Double.parseDouble(orderRequest.getMoney()), "192.168.1.6"); -// byte[] bytes = QrCodeUtil.generatePng(payUrl, 300, 300); -// OssClient storage = OssFactory.instance(); -// UploadResult upload=storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); -// BeanUtil.copyProperties(payOrder,paymentOrdersVo); -// paymentOrdersVo.setUrl(upload.getUrl()); -// }else { -// WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest(); -// request.setTradeType("NATIVE"); -// request.setBody(orderRequest.getName()); -// request.setOutTradeNo(payOrder.getOrderNo()); -// request.setTotalFee(BaseWxPayRequest.yuanToFen(orderRequest.getMoney())); -// request.setSpbillCreateIp("127.0.0.1"); -// request.setNotifyUrl(getKey("notifyUrl")); -// request.setProductId(payOrder.getId().toString()); -// try { -// WxPayNativeOrderResult order = wxService.createOrder(request); -// byte[] bytes = QrCodeUtil.generatePng(order.getCodeUrl(), 300, 300); -// OssClient storage = OssFactory.instance(); -// UploadResult upload = storage.upload(bytes, storage.getPath("qrCode",".png"), "image/png"); -// BeanUtil.copyProperties(payOrder,paymentOrdersVo); -// paymentOrdersVo.setUrl(upload.getUrl()); -// } catch (WxPayException e) { -// throw new BaseException("获取微信支付二维码发生错误:{}"+e.getMessage()); -// } -// } -// return R.ok(paymentOrdersVo); -// } -// -// /** -// * 回调通知地址 -// * -// * @Date 2023/7/3 -// * @param -// * @return void -// **/ -// @GetMapping("/notifyUrl") -// public String notifyUrl(PayResponse payResponse) { -// // 校验签名 -// String mdString = "money=" + payResponse.getMoney() + "&name=" + payResponse.getName() + -// "&out_trade_no=" + payResponse.getOut_trade_no() + "&pid=" + payConfig.getPid() + -// "&trade_no=" + payResponse.getTrade_no() + "&trade_status=" + payResponse.getTrade_status() + -// "&type=" + payResponse.getType() + payConfig.getKey(); -// String sign = MD5Util.GetMD5Code(mdString); -// if(!sign.equals(payResponse.getSign())){ -// throw new BaseException("校验签名失败!"); -// } -// double money = Double.parseDouble(payResponse.getMoney()); -// log.info("支付订单号{}",payResponse); -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(payResponse.getOut_trade_no()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// if (CollectionUtil.isEmpty(paymentOrdersList)){ -// throw new BaseException("订单不存在!"); -// } -// // 订单状态修改为已支付 -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// paymentOrdersVo.setPaymentStatus("2"); -// paymentOrdersVo.setPaymentMethod(payResponse.getType()); -// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); -// paymentOrdersService.updateByBo(paymentOrdersBo); -// -// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); -// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); -// SysUserBo sysUserBo = new SysUserBo(); -// BeanUtil.copyProperties(sysUserVo,sysUserBo); -// // 设置为付费用户 -// sysUserBo.setUserGrade("1"); -// userService.updateUser(sysUserBo); -// return "success"; -// } -// -// /** -// * 跳转通知地址 -// * -// * @Date 2023/7/3 -// * @param -// * @return void -// **/ -// @GetMapping("/return_url") -// public void returnUrl() { -// log.info("return_url==========="); -// } -// -// -// @PostMapping("/notify/wxOrder") -// public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException { -// WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData); -// // TODO 根据自己业务场景需要构造返回对象 -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(notifyResult.getOutTradeNo()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// paymentOrdersVo.setPaymentStatus("2"); -// paymentOrdersVo.setPaymentMethod("wx"); -// BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); -// paymentOrdersService.updateByBo(paymentOrdersBo); -// SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); -// sysUserVo.setUserBalance(sysUserVo.getUserBalance() + convertCentsToYuan(notifyResult.getTotalFee())); -// SysUserBo sysUserBo = new SysUserBo(); -// BeanUtil.copyProperties(sysUserVo,sysUserBo); -// // 设置为付费用户 -// sysUserBo.setUserGrade("1"); -// userService.updateUser(sysUserBo); -// return WxPayNotifyResponse.success("success"); -// } -// -// /** -// * 将分转换为元,并保留精度。 -// * -// * @param cents 分的金额,类型为Integer -// * @return 转换后的元金额,类型为double -// */ -// public static double convertCentsToYuan(Integer cents) { -// // 处理空输入 -// if (cents == null) { -// throw new IllegalArgumentException("输入的分金额不能为空"); -// } -// -// // 100分 = 1元 -// BigDecimal centsBigDecimal = new BigDecimal(cents); -// BigDecimal yuan = centsBigDecimal.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP); -// // 转换为double并返回 -// return yuan.doubleValue(); -// } -// -// /** -// * 获取订单信息 -// * -// */ -// @PostMapping("/orderInfo") -// public R orderInfo(@RequestBody OrderRequest orderRequest) { -// if(StringUtils.isEmpty(orderRequest.getOrderNo())){ -// throw new BaseException("订单号不能为空!"); -// } -// PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); -// paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); -// List paymentOrdersList = paymentOrdersService.queryList(paymentOrdersBo); -// if (CollectionUtil.isEmpty(paymentOrdersList)){ -// throw new BaseException("订单不存在!"); -// } -// PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); -// return R.ok(paymentOrdersVo); -// } -// -// // 获取支付链接 -//// static { -//// Stripe.apiKey = "sk_test_51PMMj2KcfX4oNioqXkoKpScTsgmR55xQki2tg8MEZJYc0gjhYV85t2FzDasE06eqZb0sqyYhOp3UXhcGGQLWI4A9008aq8SOnb"; -//// } -// -// /** -// * 去支付 -// * 1、创建产品 -// * 2、设置价格 -// * 3、创建支付信息 得到url -// * @return -// */ -// @PostMapping("/stripePay") -// public String pay(@RequestBody OrderRequest orderRequest) throws StripeException { -// -// String enabled = configService.getConfigValue("stripe", "enabled"); -// if(!Boolean.parseBoolean(enabled)){ -// String prompt = configService.getConfigValue("stripe", "prompt"); -// throw new BaseException(prompt); -// } -// -// // 获取支付链接 -// Stripe.apiKey = configService.getConfigValue("stripe", "key"); -// -// // 获取金额字符串并解析为 double -// double moneyDouble = Double.parseDouble(orderRequest.getMoney()); -// -// // 将金额转换为以分为单位的整数 -// int randMoney = (int) (moneyDouble * 100); -// -// Map params = new HashMap<>(); -// params.put("name", orderRequest.getName()); -// Product product = Product.create(params); -// -// Map recurring = new HashMap<>(); -// recurring.put("interval", "month"); -// Map params2 = new HashMap<>(); -// params2.put("unit_amount", randMoney); -// params2.put("currency", "usd"); -// params2.put("recurring", recurring); -// params2.put("product", product.getId()); -// Price price = Price.create(params2); -// -// // 创建支付订单 -// PaymentOrdersBo payOrder = paymentOrdersService.createPayOrder(orderRequest); -// -// //创建支付信息 得到url -// SessionCreateParams params3 = SessionCreateParams.builder() -// .setMode(SessionCreateParams.Mode.SUBSCRIPTION) -// .setSuccessUrl(configService.getConfigValue("stripe", "success")) -// .setCancelUrl(configService.getConfigValue("stripe", "cancel")) -// .addLineItem( -// SessionCreateParams.LineItem.builder() -// .setQuantity(1L) -// .setPrice(price.getId()) -// .build()).putMetadata("orderId", payOrder.getOrderNo()) -// .build(); -// Session session = Session.create(params3); -// return session.getUrl(); -// } -// -// /** -// * 支付回调 -// * -// */ -// @PostMapping("/stripe_events") -// public R stripeEvent(HttpServletRequest request) { -// try { -// String endpointSecret = configService.getConfigValue("stripe", "secret");//webhook秘钥签名 -// InputStream inputStream = request.getInputStream(); -// ByteArrayOutputStream output = new ByteArrayOutputStream(); -// byte[] buffer = new byte[1024*4]; -// int n = 0; -// while (-1 != (n = inputStream.read(buffer))) { -// output.write(buffer, 0, n); -// } -// byte[] bytes = output.toByteArray(); -// String payload = new String(bytes, "UTF-8"); -// String sigHeader = request.getHeader("Stripe-Signature"); -// Event event = Webhook.constructEvent(payload, sigHeader, endpointSecret);//验签,并获取事件 -// if("checkout.session.completed".equals(event.getType())){ -// // 解析 JSON 字符串为 JSONObject -// JSONObject jsonObject = JSONUtil.parseObj(event); -// // 获取 metadata 对象 -// JSONObject metadata = jsonObject.getJSONObject("data") -// .getJSONObject("object") -// .getJSONObject("metadata"); -// -// OrderRequest orderRequest = new OrderRequest(); -// orderRequest.setPayType("stripe"); -// orderRequest.setOrderNo(metadata.getStr("orderId")); -// paymentOrdersService.updatePayOrder(orderRequest); -// } -// } catch (Exception e) { -// System.out.println("stripe异步通知(webhook事件)"+e); -// } -// return R.ok(); -// } -// -// public String getKey(String key) { -// return configService.getConfigValue("weixin", key); -// } -// -//} -// diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java deleted file mode 100644 index eebfa8e2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/PaymentOrdersController.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; -import org.ruoyi.system.service.IPaymentOrdersService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 支付订单 - * - * @author Lion Li - * @date 2024-04-16 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/payOrder") -public class PaymentOrdersController extends BaseController { - - private final IPaymentOrdersService paymentOrdersService; - - /** - * 查询支付订单列表 - */ - @SaCheckPermission("system:order:list") - @GetMapping("/list") - public TableDataInfo list(PaymentOrdersBo bo, PageQuery pageQuery) { - pageQuery.setOrderByColumn("createTime"); - pageQuery.setIsAsc("desc"); - return paymentOrdersService.queryPageList(bo, pageQuery); - } - - /** - * 导出支付订单列表 - */ - @SaCheckPermission("system:order:export") - @Log(title = "支付订单", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(PaymentOrdersBo bo, HttpServletResponse response) { - List list = paymentOrdersService.queryList(bo); - ExcelUtil.exportExcel(list, "支付订单", PaymentOrdersVo.class, response); - } - - /** - * 获取支付订单详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:order:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(paymentOrdersService.queryById(id)); - } - - /** - * 新增支付订单 - */ - @SaCheckPermission("system:order:add") - @Log(title = "支付订单", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody PaymentOrdersBo bo) { - return toAjax(paymentOrdersService.insertByBo(bo)); - } - - /** - * 修改支付订单 - */ - @SaCheckPermission("system:order:edit") - @Log(title = "支付订单", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody PaymentOrdersBo bo) { - return toAjax(paymentOrdersService.updateByBo(bo)); - } - - /** - * 删除支付订单 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:order:remove") - @Log(title = "支付订单", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(paymentOrdersService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java deleted file mode 100644 index 9f7760e9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import cn.dev33.satoken.stp.StpUtil; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.service.ISysModelService; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.system.service.ISysUserService; -import org.ruoyi.system.util.DesensitizationUtil; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 系统模型 - * - * @author Lion Li - * @date 2024-04-04 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/model") -public class SysModelController extends BaseController { - - private final ISysModelService sysModelService; - - private final ISysPackagePlanService sysPackagePlanService; - - private final ISysUserService userService; - - /** - * 查询系统模型列表 - 全部 - */ - @GetMapping("/list") - public TableDataInfo list(SysModelBo bo, PageQuery pageQuery) { - return sysModelService.queryPageList(bo, pageQuery); - } - - /** - * 查询系统模型列表 - */ - @GetMapping("/modelList") - public R> modelList(SysModelBo bo) { - bo.setModelShow("0"); - List sysModelVos = sysModelService.queryList(bo); - SysPackagePlanBo sysPackagePlanBo = new SysPackagePlanBo(); - if (StpUtil.isLogin()) { - Long userId = LoginHelper.getLoginUser().getUserId(); - SysUserVo sysUserVo = userService.selectUserById(userId); - if ("0".equals(sysUserVo.getUserGrade())){ - sysPackagePlanBo.setName("Free"); - SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0); - List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); - sysModelVos.removeIf(model -> !array.contains(model.getModelName())); - } - }else { - sysPackagePlanBo.setName("Visitor"); - SysPackagePlanVo sysPackagePlanVo = sysPackagePlanService.queryList(sysPackagePlanBo).get(0); - List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); - sysModelVos.removeIf(model -> !array.contains(model.getModelName())); - } - sysModelVos.stream().map(vo -> { - String maskedApiHost = DesensitizationUtil.maskData(vo.getApiHost()); - String maskedApiKey = DesensitizationUtil.maskData(vo.getApiKey()); - vo.setApiHost(maskedApiHost); - vo.setApiKey(maskedApiKey); - return vo; - }) - .collect(Collectors.toList()); - return R.ok(sysModelVos); - } - - /** - * 导出系统模型列表 - */ - @SaCheckPermission("system:model:export") - @Log(title = "系统模型", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysModelBo bo, HttpServletResponse response) { - List list = sysModelService.queryList(bo); - ExcelUtil.exportExcel(list, "系统模型", SysModelVo.class, response); - } - - /** - * 获取系统模型详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:model:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysModelService.queryById(id)); - } - - /** - * 新增系统模型 - */ - @SaCheckPermission("system:model:add") - @Log(title = "系统模型", businessType = BusinessType.INSERT) - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysModelBo bo) { - return toAjax(sysModelService.insertByBo(bo)); - } - - /** - * 修改系统模型 - */ - @SaCheckPermission("system:model:edit") - @Log(title = "系统模型", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysModelBo bo) { - return toAjax(sysModelService.updateByBo(bo)); - } - - /** - * 删除系统模型 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:model:remove") - @Log(title = "系统模型", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysModelService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java index 4f30a3af..a02568be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysNoticeController.java @@ -16,7 +16,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** - * 公告 信息操作处理 + * 公告信息操作处理 * * @author Lion Li */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java deleted file mode 100644 index 068ffd6d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysPackagePlanController.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; - -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; - -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 套餐管理 - * - * @author Lion Li - * @date 2024-05-05 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/packagePlan") -public class SysPackagePlanController extends BaseController { - - private final ISysPackagePlanService sysPackagePlanService; - - /** - * 查询套餐管理列表 - */ - @GetMapping("/list") - public TableDataInfo list(SysPackagePlanBo bo, PageQuery pageQuery) { - return sysPackagePlanService.queryPageList(bo, pageQuery); - } - - @GetMapping("/listPlan") - public R> listPlan() { - return R.ok(sysPackagePlanService.queryList(new SysPackagePlanBo())); - } - - /** - * 导出套餐管理列表 - */ - @SaCheckPermission("system:packagePlan:export") - @Log(title = "套餐管理", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysPackagePlanBo bo, HttpServletResponse response) { - List list = sysPackagePlanService.queryList(bo); - ExcelUtil.exportExcel(list, "套餐管理", SysPackagePlanVo.class, response); - } - - /** - * 获取套餐管理详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:packagePlan:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysPackagePlanService.queryById(id)); - } - - - - - /** - * 新增套餐管理 - */ - @SaCheckPermission("system:packagePlan:add") - @Log(title = "套餐管理", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysPackagePlanBo bo) { - return toAjax(sysPackagePlanService.insertByBo(bo)); - } - - /** - * 修改套餐管理 - */ - @SaCheckPermission("system:packagePlan:edit") - @Log(title = "套餐管理", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysPackagePlanBo bo) { - return toAjax(sysPackagePlanService.updateByBo(bo)); - } - - /** - * 删除套餐管理 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:packagePlan:remove") - @Log(title = "套餐管理", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysPackagePlanService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java deleted file mode 100644 index abff4335..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserGroupController.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; -import org.ruoyi.system.service.ISysUserGroupService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-08-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/userGroup") -public class SysUserGroupController extends BaseController { - - private final ISysUserGroupService sysUserGroupService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:userGroup:list") - @GetMapping("/list") - public TableDataInfo list(SysUserGroupBo bo, PageQuery pageQuery) { - return sysUserGroupService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:userGroup:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysUserGroupBo bo, HttpServletResponse response) { - List list = sysUserGroupService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", SysUserGroupVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:userGroup:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysUserGroupService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:userGroup:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysUserGroupBo bo) { - return toAjax(sysUserGroupService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:userGroup:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysUserGroupBo bo) { - return toAjax(sysUserGroupService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:userGroup:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysUserGroupService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java deleted file mode 100644 index 3e97801c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysUserModelController.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.ruoyi.system.controller.system; - -import java.util.List; - -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; -import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.system.service.ISysUserModelService; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-08-03 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/userModel") -public class SysUserModelController extends BaseController { - - private final ISysUserModelService sysUserModelService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:userModel:list") - @GetMapping("/list") - public TableDataInfo list(SysUserModelBo bo, PageQuery pageQuery) { - return sysUserModelService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:userModel:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(SysUserModelBo bo, HttpServletResponse response) { - List list = sysUserModelService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", SysUserModelVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:userModel:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(sysUserModelService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:userModel:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody SysUserModelBo bo) { - return toAjax(sysUserModelService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:userModel:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody SysUserModelBo bo) { - return toAjax(sysUserModelService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:userModel:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(sysUserModelService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java deleted file mode 100644 index eeaeb908..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeChatController.java +++ /dev/null @@ -1,81 +0,0 @@ -//package org.ruoyi.system.controller.system; -// -//import cn.dev33.satoken.annotation.SaIgnore; -//import lombok.RequiredArgsConstructor; -//import lombok.extern.slf4j.Slf4j; -//import org.ruoyi.common.core.exception.ServiceException; -//import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -//import org.ruoyi.common.wechat.itchat4j.controller.LoginController; -//import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; -//import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -//import org.ruoyi.common.wechat.web.base.BaseException; -//import org.ruoyi.system.domain.bo.WxRobConfigBo; -//import org.ruoyi.system.domain.vo.WxRobConfigVo; -//import org.ruoyi.system.handler.MyMsgHandler; -//import org.ruoyi.system.service.ISseService; -//import org.ruoyi.system.service.IWxRobConfigService; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.PostMapping; -//import org.springframework.web.bind.annotation.RequestParam; -//import org.springframework.web.bind.annotation.RestController; -// -//import java.util.List; -// -///** -// * 个人微信扩展控制器 -// * -// * @author WangLe -// */ -//@SaIgnore -//@Slf4j -//@Validated -//@RequiredArgsConstructor -//@RestController -//public class WeChatController { -// -// private final ISseService sseService; -// -// private final IWxRobConfigService wxRobConfigService; -// -// /** -// * 登录第一步,获取二维码链接 -// * @throws BaseException -// */ -// @PostMapping("/getQr") -// public String getQr(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// try { -// return login.login_1(); -// } catch (BaseException e) { -// throw new ServiceException("获取二维码失败:"+ e.getMessage()); -// } -// } -// -// @PostMapping("/wxLogin") -// public Boolean wxLogin(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// return login.login_2(); -// } -// -// @PostMapping("/wxInit") -// public Boolean wxInit(@RequestParam String uniqueKey) { -// LoginController login = new LoginController(uniqueKey); -// // 开启消息处理线程 -// WxRobConfigBo wxRobConfigBo = new WxRobConfigBo(); -// wxRobConfigBo.setUniqueKey(uniqueKey); -// List wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo); -// //查询机器人对应的用户 -// start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0))); -// return login.login_3(); -// } -// -// @PostMapping("/wxLogout") -// public void wxLogout(@RequestParam String uniqueKey) { -// WechatTools.logout(uniqueKey); -// } -// -// public void start(String uniqueKey,IMsgHandlerFace msgHandler) { -// log.info("7.+++开启消息处理线程["+uniqueKey+"]+++"); -// new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start(); -// } -//} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java deleted file mode 100644 index f0ac84f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinServerController.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.controller.system; - - -import jakarta.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.system.service.WeixinUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@RestController -public class WeixinServerController { - - @Autowired - private WeixinUserService weixinUserService; - - @GetMapping(value = "/weixin/check") - public String weixinCheck(HttpServletRequest request) { - String signature = request.getParameter("signature"); - String timestamp = request.getParameter("timestamp"); - String nonce = request.getParameter("nonce"); - String echostr = request.getParameter("echostr"); - - if (StringUtils.isEmpty(signature) || StringUtils.isEmpty(timestamp) || StringUtils.isEmpty(nonce)) { - return ""; - } - weixinUserService.checkSignature(signature, timestamp, nonce); - return echostr; - } - - @PostMapping(value = "/weixin/check") - public String weixinMsg(@RequestBody String requestBody, @RequestParam("signature") String signature, - @RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce) { - - log.debug("requestBody:{}", requestBody); - log.debug("signature:{}", signature); - log.debug("timestamp:{}", timestamp); - log.debug("nonce:{}", nonce); - - weixinUserService.checkSignature(signature, timestamp, nonce); - return weixinUserService.handleWeixinMsg(requestBody); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java deleted file mode 100644 index d006ba56..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WeixinUserController.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.ruoyi.system.controller.system; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.system.domain.model.WeixinQrCode; -import org.ruoyi.system.domain.vo.LoginVo; -import org.ruoyi.system.service.SysLoginService; -import org.ruoyi.system.util.WeixinApiUtil; -import org.ruoyi.system.util.WeixinQrCodeCacheUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@RestController -public class WeixinUserController { - - @Autowired - private WeixinApiUtil weixinApiUtil; - - @Autowired - private SysLoginService loginService; - - @GetMapping(value = "/user/qrcode") - public R getQrCode() { - WeixinQrCode qrCode = weixinApiUtil.getQrCode(); - qrCode.setUrl(null); - qrCode.setExpireSeconds(null); - return R.ok(qrCode); - } - - /** - * 校验是否扫描完成 - * 完成,返回 JWT - * 未完成,返回 check faild - * - * @param ticket - * @return - */ - @GetMapping(value = "/user/login/qrcode") - public R userLogin(String ticket) { - String openId = WeixinQrCodeCacheUtil.get(ticket); - if (StringUtils.isNotEmpty(openId)) { - log.info("login success,open id:{}", openId); - LoginVo loginVo = loginService.mpLogin(openId); - return R.ok(loginVo); - } - log.info("login error,ticket:{}", ticket); - return R.fail("check faild"); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java deleted file mode 100644 index c5346834..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobConfigController.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.controller.system; - -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.service.IWxRobConfigService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 机器人 - * - * @author Lion Li - * @date 2024-05-01 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/robConfig") -public class WxRobConfigController extends BaseController { - - private final IWxRobConfigService wxRobConfigService; - - /** - * 查询机器人列表 - */ - @GetMapping("/list") - public TableDataInfo list(WxRobConfigBo bo, PageQuery pageQuery) { - return wxRobConfigService.queryPageList(bo, pageQuery); - } - - /** - * 查询当前用户绑定的机器人信息 - * @param bo 查询参数 - * @return 机器人信息 - */ - @GetMapping("/getRobConfig") - public R> botList(WxRobConfigBo bo) { - bo.setUserId(LoginHelper.getUserId()); - return R.ok(wxRobConfigService.queryList(bo)); - } - - /** - * 导出机器人列表 - */ - @Log(title = "机器人", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WxRobConfigBo bo, HttpServletResponse response) { - List list = wxRobConfigService.queryList(bo); - ExcelUtil.exportExcel(list, "机器人", WxRobConfigVo.class, response); - } - - /** - * 获取机器人详细信息 - * - * @param id 主键 - */ - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(wxRobConfigService.queryById(id)); - } - - /** - * 新增机器人 - */ - @Log(title = "机器人", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WxRobConfigBo bo) { - String uniKey = UUIDShortUtil.generateShortUuid(); - bo.setUniqueKey(uniKey); - return toAjax(wxRobConfigService.insertByBo(bo)); - } - - /** - * 修改机器人 - */ - @Log(title = "机器人", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WxRobConfigBo bo) { - return toAjax(wxRobConfigService.updateByBo(bo)); - } - - /** - * 删除机器人 - * - * @param ids 主键串 - */ - @Log(title = "删除机器人", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(wxRobConfigService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java deleted file mode 100644 index 755c2dce..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/WxRobKeywordController.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.system.controller.system; - -import cn.dev33.satoken.annotation.SaCheckPermission; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.excel.utils.ExcelUtil; -import org.ruoyi.common.idempotent.annotation.RepeatSubmit; -import org.ruoyi.common.log.annotation.Log; -import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; -import org.ruoyi.system.service.IWxRobKeywordService; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 【请填写功能名称】 - * - * @author Lion Li - * @date 2024-05-01 - */ -@Validated -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/robKeyword") -public class WxRobKeywordController extends BaseController { - - private final IWxRobKeywordService wxRobKeywordService; - - /** - * 查询【请填写功能名称】列表 - */ - @SaCheckPermission("system:robKeyword:list") - @GetMapping("/list") - public TableDataInfo list(WxRobKeywordBo bo, PageQuery pageQuery) { - return wxRobKeywordService.queryPageList(bo, pageQuery); - } - - /** - * 导出【请填写功能名称】列表 - */ - @SaCheckPermission("system:robKeyword:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(WxRobKeywordBo bo, HttpServletResponse response) { - List list = wxRobKeywordService.queryList(bo); - ExcelUtil.exportExcel(list, "【请填写功能名称】", WxRobKeywordVo.class, response); - } - - /** - * 获取【请填写功能名称】详细信息 - * - * @param id 主键 - */ - @SaCheckPermission("system:robKeyword:query") - @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { - return R.ok(wxRobKeywordService.queryById(id)); - } - - /** - * 新增【请填写功能名称】 - */ - @SaCheckPermission("system:robKeyword:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) - @RepeatSubmit() - @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WxRobKeywordBo bo) { - return toAjax(wxRobKeywordService.insertByBo(bo)); - } - - /** - * 修改【请填写功能名称】 - */ - @SaCheckPermission("system:robKeyword:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WxRobKeywordBo bo) { - return toAjax(wxRobKeywordService.updateByBo(bo)); - } - - /** - * 删除【请填写功能名称】 - * - * @param ids 主键串 - */ - @SaCheckPermission("system:robKeyword:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { - return toAjax(wxRobKeywordService.deleteWithValidByIds(List.of(ids), true)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java deleted file mode 100644 index a6ff01f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxJsController.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.controller.wxsingle; - - -import me.chanjar.weixin.common.bean.WxJsapiSignature; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.cp.api.WxCpService; -import org.ruoyi.system.cofing.WxCpConfiguration; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; - -import java.nio.charset.StandardCharsets; -import java.util.Formatter; -import java.util.HashMap; -import java.util.Map; - -/** - * @author Wang_Wong - */ -//@RestController -//@RequiredArgsConstructor -//@RequestMapping("/wx/cp/js/{corpId}/{agentId}/getJsConf") -public class WxJsController { - @PostMapping("/getJsConf") - public Map getJsConf( - @PathVariable String corpId, - @PathVariable Integer agentId, - String uri) throws WxErrorException { - - final WxCpService wxCpService = WxCpConfiguration.getCpService(agentId); - if (wxCpService == null) { - throw new IllegalArgumentException(String.format("未找到对应agentId=[%d]的配置,请核实!", agentId)); - } - - WxJsapiSignature wxJsapiSignature = wxCpService.createJsapiSignature(uri); - String signature = wxJsapiSignature.getSignature(); - String nonceStr = wxJsapiSignature.getNonceStr(); - long timestamp = wxJsapiSignature.getTimestamp(); - - Map res = new HashMap(); - res.put("appId", corpId); // 必填,企业微信的corpID - res.put("timestamp", timestamp); // 必填,生成签名的时间戳 - res.put("nonceStr", nonceStr); // 必填,生成签名的随机串 - res.put("signature", signature); // 必填,签名,见 附录-JS-SDK使用权限签名算法 - return res; - } - - - public static String genNonce() { - return bytesToHex(Long.toString(System.nanoTime()).getBytes(StandardCharsets.UTF_8)); - } - - public static String bytesToHex(final byte[] hash) { - Formatter formatter = new Formatter(); - for (byte b : hash) { - formatter.format("%02x", b); - } - String result = formatter.toString(); - formatter.close(); - return result; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java deleted file mode 100644 index 1ca67d1f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/wxsingle/WxPortalController.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.ruoyi.system.controller.wxsingle; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import me.chanjar.weixin.cp.util.crypto.WxCpCryptUtil; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.core.utils.JsonUtils; -import org.ruoyi.system.cofing.WxCpConfiguration; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.web.bind.annotation.*; - -/** - * @author Binary Wang - */ -@RestController -@RequestMapping("/wx/cp") -@Slf4j -public class WxPortalController { - - @Value("${wechat.cp.appConfigs[0].agentId}") - private Integer agentId; - - - @GetMapping(produces = "text/plain;charset=utf-8") - public String authGet( - @RequestParam(name = "msg_signature", required = false) String signature, - @RequestParam(name = "timestamp", required = false) String timestamp, - @RequestParam(name = "nonce", required = false) String nonce, - @RequestParam(name = "echostr", required = false) String echostr) { - log.info("\n接收到来自微信服务器的认证消息:signature = [{}], timestamp = [{}], nonce = [{}], echostr = [{}]", - signature, timestamp, nonce, echostr); - - if (StringUtils.isAnyBlank(signature, timestamp, nonce, echostr)) { - throw new IllegalArgumentException("请求参数非法,请核实!"); - } - - final WxCpService wxCpService = WxCpConfiguration.getCpService(agentId); - if (wxCpService == null) { - throw new IllegalArgumentException(String.format("未找到对应agentId=[%d]的配置,请核实!", agentId)); - } - - if (wxCpService.checkSignature(signature, timestamp, nonce, echostr)) { - return new WxCpCryptUtil(wxCpService.getWxCpConfigStorage()).decrypt(echostr); - } - - return "非法请求"; - } - - @PostMapping(produces = "application/xml; charset=UTF-8") - public String post( - @RequestBody String requestBody, - @RequestParam("msg_signature") String signature, - @RequestParam("timestamp") String timestamp, - @RequestParam("nonce") String nonce) { - log.info("\n接收微信请求:[signature=[{}], timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ", - signature, timestamp, nonce, requestBody); - - final WxCpService wxCpService = WxCpConfiguration.getCpService(1000002); - WxCpXmlMessage inMessage = WxCpXmlMessage.fromEncryptedXml(requestBody, wxCpService.getWxCpConfigStorage(), - timestamp, nonce, signature); - log.debug("\n消息解密后内容为:\n{} ", JsonUtils.toJson(inMessage)); - WxCpXmlOutMessage outMessage = this.route(1000002, inMessage); - if (outMessage == null) { - return ""; - } - - String out = outMessage.toEncryptedXml(wxCpService.getWxCpConfigStorage()); - log.debug("\n组装回复信息:{}", out); - return out; - } - - private WxCpXmlOutMessage route(Integer agentId, WxCpXmlMessage message) { - try { - return WxCpConfiguration.getRouters().get(agentId).route(message); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return null; - } - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java deleted file mode 100644 index 4ce348dd..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/Cover.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 翻唱对象 - * - * @author NSL - * @date 2024-12-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_cover") -public class Cover extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; - - @TableId(value = "id") - private Long id; - /** - * 歌曲名称 - */ - private String coverMusicName; - /** - * 歌曲地址 - */ - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - private String coverSingerGender; - /** - * 歌手姓名 - */ - private String coverSingerName; - /** - * 用户性别 FEMALE MALE - */ - private String userGender; - /** - * 用户id - */ - private Long userId; - /** - * 本次消费金额 - */ - private String cost; - /** - * 翻唱后的URL - */ - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java deleted file mode 100644 index b44b9381..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/CoverPromptAudio.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 翻唱用户参考音频对象 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_cover_prompt_audio") -public class CoverPromptAudio extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; - - @TableId(value = "id") - private Long id; - /** - * 翻唱主表id - */ - private Long coverId; - /** - * 用户id - */ - private Long userId; - /** - * 参考音频 - */ - private String promptAudioUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java deleted file mode 100644 index 3897e86d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLuma.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.domain; - -import lombok.Data; - -/** - * 描述:文生视频请求对象 - * - * @author ageerle@163.com - * date 2024/6/27 - */ -@Data -public class GenerateLuma { - - private String aspect_ratio; - - private boolean expand_prompt; - - private String image_url; - - private String user_prompt; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java deleted file mode 100644 index 9a3f67d6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateLyric.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ruoyi.system.domain; - -import lombok.Data; - -/** - * 描述:生成歌词 - * - * @author ageerle@163.com - * date 2024/6/27 - */ -@Data -public class GenerateLyric { - - /** - * 歌词提示词 - */ - private String prompt; - - /** - * 回调地址 - */ - private String notify_hook; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java deleted file mode 100644 index 83940106..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/GenerateSuno.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.ruoyi.system.domain; - - -import lombok.Data; - -import java.io.Serializable; - -/** - * @author WangLe - */ -@Data -public class GenerateSuno implements Serializable { - - /** - * 歌词 (自定义模式专用) - */ - private String prompt; - - /** - * mv模型,chirp-v3-0、chirp-v3-5。不写默认 chirp-v3-0 - */ - private String mv; - - /** - * 标题(自定义模式专用) - */ - private String title; - - /** - * 风格标签(自定义模式专用) - */ - private String tags; - - /** - * 是否生成纯音乐,true 为生成纯音乐 - */ - private boolean make_instrumental; - - /** - * 任务id,用于对之前的任务再操作 - */ - private String task_id; - - /** - * float,歌曲延长时间,单位秒 - */ - private int continue_at; - - /** - * 歌曲id,需要续写哪首歌 - */ - private String continue_clip_id; - - /** - * 灵感模式提示词(灵感模式专用) - */ - private String gpt_description_prompt; - - /** - * 回调地址 - */ - private String notify_hook; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java deleted file mode 100644 index 6f50b36e..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/PaymentOrder.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - -import java.io.Serial; - -/** - * 支付订单对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_pay_order") -public class PaymentOrder extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 订单编号 - */ - private String orderNo; - - /** - * 订单名称 - */ - private String orderName; - - /** - * 金额 - */ - private BigDecimal amount; - - /** - * 支付状态 - */ - private String paymentStatus; - - /** - * 支付方式 - */ - private String paymentMethod; - - /** - * 用户ID - */ - private Long userId; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java deleted file mode 100644 index 789bca26..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysModel.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.ruoyi.system.domain; - -import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 系统模型对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_model") -public class SysModel extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - private String modelName; - - /** - * 模型描述 - */ - private String modelDescribe; - - /** - * 模型价格 - */ - private double modelPrice; - - /** - * 计费类型 - */ - private String modelType; - - /** - * 是否显示 - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 密钥 - */ - private String apiKey; - - /** - * 备注 - */ - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java deleted file mode 100644 index 5bfbe80f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysPackagePlan.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; -import java.math.BigDecimal; - -/** - * 套餐管理对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("chat_package_plan") -public class SysPackagePlan extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 套餐名称 - */ - private String name; - - /** - * 套餐价格 - */ - private BigDecimal price; - - /** - * 有效时间 - */ - private Long duration; - - /** - * 计划详情 - */ - private String planDetail; - - /** - * 备注 - */ - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java deleted file mode 100644 index b75abf8f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserGroup.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.*; -import org.ruoyi.common.tenant.core.TenantEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("sys_user_group") -public class SysUserGroup extends TenantEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @TableId(value = "id") - private Long id; - - /** - * 用户组名称 - */ - private String groupName; - - /** - * 备注 - */ - private String remark; - - /** - * 版本 - */ - @Version - private Long version; - - /** - * 删除标志(0代表存在 1代表删除) - */ - @TableLogic - private String delFlag; - - /** - * 更新IP - */ - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java deleted file mode 100644 index 751a1e62..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/SysUserModel.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 sys_user_model - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("sys_user_model") -public class SysUserModel extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(value = "id") - private Long id; - - /** - * 模型id - */ - private Long mid; - - /** - * 用户组id - */ - private Long gid; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java deleted file mode 100644 index 5a4dbe6f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobKeyword.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wx_rob_keyword") -public class WxRobKeyword extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @TableId(value = "id") - private Long id; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 关键词 - */ - private String keyData; - - /** - * 回复内容 - */ - private String valueData; - - /** - * 回复类型 - */ - private String typeData; - - /** - * 目标昵称 - */ - private String nickName; - - /** - * 群1好友0 - */ - private Integer toGroup; - - /** - * 启用1禁用0 - */ - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java deleted file mode 100644 index e67c40c9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/WxRobRelation.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.domain; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; - -import java.io.Serial; - -/** - * 【请填写功能名称】对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@TableName("wx_rob_relation") -public class WxRobRelation extends BaseEntity { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @TableId(value = "id") - private Long id; - - /** - * 外接唯一码 - */ - private String outKey; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 目标昵称 - */ - private String nickName; - - /** - * 群1好友0 - */ - private Integer toGroup; - - /** - * 启用1禁用0 - */ - private Integer enable; - - /** - * IP白名单 - */ - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java deleted file mode 100644 index e49de79a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/PaymentOrdersBo.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.PaymentOrder; - -import java.math.BigDecimal; - -/** - * 支付订单业务对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = PaymentOrder.class, reverseConvertGenerate = false) -public class PaymentOrdersBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 订单编号 - */ - @NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orderNo; - - /** - * 订单名称 - */ - @NotBlank(message = "订单名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orderName; - - /** - * 金额 - */ - @NotNull(message = "金额不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal amount; - - /** - * 支付状态 - */ - @NotBlank(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class }) - private String paymentStatus; - - /** - * 支付方式 - */ - @NotBlank(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class }) - private String paymentMethod; - - /** - * 用户ID - */ - @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long userId; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java deleted file mode 100644 index 6b0a160c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysModelBo.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.SysModel; - -/** - * 系统模型业务对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysModel.class, reverseConvertGenerate = false) -public class SysModelBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - @NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelName; - - - /** - * 模型描述 - */ - @NotBlank(message = "模型描述不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelDescribe; - - /** - * 模型价格 - */ - @NotNull(message = "模型价格不能为空", groups = { AddGroup.class, EditGroup.class }) - private double modelPrice; - - /** - * 计费类型 (1 token扣费; 2 次数扣费 ) - */ - @NotBlank(message = "计费类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String modelType; - - /** - * 模型状态 (0 显示; 1 隐藏 ) - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 请求密钥 - */ - private String apiKey; - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java deleted file mode 100644 index 44f182b2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysPackagePlanBo.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; -import java.math.BigDecimal; - -/** - * 套餐管理业务对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysPackagePlan.class, reverseConvertGenerate = false) -public class SysPackagePlanBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 套餐名称 - */ - @NotBlank(message = "套餐名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String name; - - /** - * 套餐价格 - */ - @NotNull(message = "套餐价格不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal price; - - /** - * 有效时间 - */ - @NotNull(message = "有效时间不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long duration; - - /** - * 计划详情 - */ - @NotBlank(message = "计划详情不能为空", groups = { AddGroup.class, EditGroup.class }) - private String planDetail; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java deleted file mode 100644 index 4d773559..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserGroupBo.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.SysUserGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; - -/** - * 【请填写功能名称】业务对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysUserGroup.class, reverseConvertGenerate = false) -public class SysUserGroupBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 用户组名称 - */ - @NotBlank(message = "用户组名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String groupName; - - /** - * 备注 - */ - @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class }) - private String remark; - - /** - * 更新IP - */ - @NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class }) - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java deleted file mode 100644 index 5c77edb2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/SysUserModelBo.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.SysUserModel; - -/** - * 【请填写功能名称】业务对象 sys_user_model - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = SysUserModel.class, reverseConvertGenerate = false) -public class SysUserModelBo extends BaseEntity { - - /** - * id - */ - @NotNull(message = "id不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 模型id - */ - @NotNull(message = "模型id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long mid; - - /** - * 用户组id - */ - @NotNull(message = "用户组id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long gid; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java deleted file mode 100644 index ea8018a6..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobConfigBo.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobConfig; - -/** - * 微信机器人业务对象 wx_rob_config - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobConfig.class, reverseConvertGenerate = false) -public class WxRobConfigBo extends BaseEntity { - - /** - * 主键 - */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 用户id - */ - private Long userId; - - /** - * 机器人名称 - */ - private String botName; - - /** - * 机器唯一码 - */ - private String uniqueKey; - - /** - * 默认好友回复开关 - */ - private String defaultFriend; - - /** - * 默认群回复开关 - */ - private String defaultGroup; - - /** - * 机器启用1禁用0 - */ - private String enable; - - /** - * 备注 - */ - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java deleted file mode 100644 index 262bb8d0..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobKeywordBo.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobKeyword; - -/** - * 【请填写功能名称】业务对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobKeyword.class, reverseConvertGenerate = false) -public class WxRobKeywordBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 机器唯一码 - */ - @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String uniqueKey; - - /** - * 关键词 - */ - @NotBlank(message = "关键词不能为空", groups = { AddGroup.class, EditGroup.class }) - private String keyData; - - /** - * 回复内容 - */ - @NotBlank(message = "回复内容不能为空", groups = { AddGroup.class, EditGroup.class }) - private String valueData; - - /** - * 回复类型 - */ - @NotBlank(message = "回复类型不能为空", groups = { AddGroup.class, EditGroup.class }) - private String typeData; - - /** - * 目标昵称 - */ - @NotBlank(message = "目标昵称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String nickName; - - /** - * 群1好友0 - */ - @NotNull(message = "群1好友0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @NotNull(message = "启用1禁用0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java deleted file mode 100644 index 56e95693..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/WxRobRelationBo.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.domain.bo; - -import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import lombok.Data; -import lombok.EqualsAndHashCode; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.system.domain.WxRobRelation; - -/** - * 【请填写功能名称】业务对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@AutoMapper(target = WxRobRelation.class, reverseConvertGenerate = false) -public class WxRobRelationBo extends BaseEntity { - - /** - * - */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) - private Long id; - - /** - * 外接唯一码 - */ - @NotBlank(message = "外接唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String outKey; - - /** - * 机器唯一码 - */ - @NotBlank(message = "机器唯一码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String uniqueKey; - - /** - * 目标昵称 - */ - @NotBlank(message = "目标昵称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String nickName; - - /** - * 群1好友0 - */ - @NotNull(message = "群1好友0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @NotNull(message = "启用1禁用0不能为空", groups = { AddGroup.class, EditGroup.class }) - private Integer enable; - - /** - * IP白名单 - */ - @NotBlank(message = "IP白名单不能为空", groups = { AddGroup.class, EditGroup.class }) - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java deleted file mode 100644 index 1dc6bf6d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ApiResult.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Getter; -import lombok.Setter; -import lombok.extern.slf4j.Slf4j; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@Getter -@Setter -public class ApiResult { - private Integer code; - private String message; - private Object data; - - public ApiResult() { - } - - public ApiResult(Integer code, String message) { - this.code = code; - this.message = message; - } - - public ApiResult(Integer code, String message, Object data) { - this.code = code; - this.message = message; - this.data = data; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java deleted file mode 100644 index 3cd2b896..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/ReceiveMessage.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Data; - -@Data -public class ReceiveMessage { - /** - * 开发者微信号 - */ - private String toUserName; - /** - * 发送方账号(一个openid) - */ - private String fromUserName; - /** - * 消息创建时间(整形) - */ - private String createTime; - /** - * 消息类型 - */ - private String msgType; - /** - * 文本消息内容 - */ - private String content; - /** - * 消息ID 64位 - */ - String msgId; - /** - * 消息的数据ID 消息来自文章才有 - */ - private String msgDataId; - /** - * 多图文时第几篇文章,从1开始 消息如果来自文章才有 - */ - private String idx; - /** - * 订阅事件 subscribe 订阅 unsbscribe 取消订阅 - */ - private String event; - /** - * 扫码 - ticket - */ - private String ticket; - - public String getReplyTextMsg(String msg) { - String xml = "\n" - + " \n" - + " \n" - + " " + System.currentTimeMillis() + "\n" - + " \n" - + " \n" - + " "; - return xml; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java deleted file mode 100644 index 2ce61621..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/model/WeixinQrCode.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ruoyi.system.domain.model; - -import lombok.Data; - -/** - * @author https://www.wdbyte.com - */ -@Data -public class WeixinQrCode { - - private String ticket; - private Long expireSeconds; - private String url; - private String qrCodeUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java deleted file mode 100644 index ae4a4beb..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/PaymentOrdersVo.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.PaymentOrder; - -import java.io.Serial; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - - -/** - * 支付订单视图对象 payment_orders - * - * @author Lion Li - * @date 2024-04-16 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = PaymentOrder.class) -public class PaymentOrdersVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 订单编号 - */ - @ExcelProperty(value = "订单编号") - private String orderNo; - - /** - * 订单名称 - */ - @ExcelProperty(value = "订单名称") - private String orderName; - - /** - * 金额 - */ - @ExcelProperty(value = "金额") - private BigDecimal amount; - - /** - * 支付状态 - */ - @ExcelProperty(value = "支付状态") - private String paymentStatus; - - /** - * 支付方式 - */ - @ExcelProperty(value = "支付方式") - private String paymentMethod; - - /** - * 用户ID - */ - @ExcelProperty(value = "用户ID") - private Long userId; - - /** - * 用户ID - */ - @ExcelProperty(value = "用户名称") - private String userName; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 二维码网络地址 - */ - private String url; - - /** - * 创建时间 - */ - private Date createTime; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java deleted file mode 100644 index 630fce08..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysModelVo.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.common.sensitive.annotation.Sensitive; -import org.ruoyi.common.sensitive.core.SensitiveStrategy; -import org.ruoyi.system.domain.SysModel; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 系统模型视图对象 sys_model - * - * @author Lion Li - * @date 2024-04-04 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysModel.class) -public class SysModelVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 模型分类 - */ - @ExcelProperty(value = "模型分类") - private String category; - - /** - * 模型名称 - */ - @ExcelProperty(value = "模型名称") - private String modelName; - - - /** - * 模型描述 - */ - @ExcelProperty(value = "模型描述") - private String modelDescribe; - - /** - * 模型价格 - */ - @ExcelProperty(value = "模型价格") - private double modelPrice; - - /** - * 计费类型 - */ - @ExcelProperty(value = "计费类型") - private String modelType; - - /** - * 是否显示 - */ - private String modelShow; - - - /** - * 系统提示词 - */ - private String systemPrompt; - - /** - * 请求地址 - */ - private String apiHost; - - /** - * 模型名称 - */ - @Sensitive(strategy = SensitiveStrategy.ID_CARD) - private String apiKey; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java deleted file mode 100644 index 5ae53f6b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysPackagePlanVo.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import java.math.BigDecimal; -import org.ruoyi.system.domain.SysPackagePlan; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 套餐管理视图对象 sys_package_plan - * - * @author Lion Li - * @date 2024-05-05 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysPackagePlan.class) -public class SysPackagePlanVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 套餐名称 - */ - @ExcelProperty(value = "套餐名称") - private String name; - - /** - * 套餐价格 - */ - @ExcelProperty(value = "套餐价格") - private BigDecimal price; - - /** - * 有效时间 - */ - @ExcelProperty(value = "有效时间") - private Long duration; - - /** - * 计划详情 - */ - @ExcelProperty(value = "计划详情") - private String planDetail; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java deleted file mode 100644 index 5dd8dd2f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/SysUserGroupVo.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import org.ruoyi.system.domain.SysUserGroup; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 【请填写功能名称】视图对象 sys_user_group - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysUserGroup.class) -public class SysUserGroupVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - @ExcelProperty(value = "主键") - private Long id; - - /** - * 用户组名称 - */ - @ExcelProperty(value = "用户组名称") - private String groupName; - - /** - * 备注 - */ - @ExcelProperty(value = "备注") - private String remark; - - /** - * 更新IP - */ - @ExcelProperty(value = "更新IP") - private String updateIp; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java deleted file mode 100644 index 58d1b429..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobKeywordVo.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.WxRobKeyword; - -import java.io.Serial; -import java.io.Serializable; - - - -/** - * 【请填写功能名称】视图对象 wx_rob_keyword - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = WxRobKeyword.class) -public class WxRobKeywordVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @ExcelProperty(value = "") - private Long id; - - /** - * 机器唯一码 - */ - @ExcelProperty(value = "机器唯一码") - private String uniqueKey; - - /** - * 关键词 - */ - @ExcelProperty(value = "关键词") - private String keyData; - - /** - * 回复内容 - */ - @ExcelProperty(value = "回复内容") - private String valueData; - - /** - * 回复类型 - */ - @ExcelProperty(value = "回复类型") - private String typeData; - - /** - * 目标昵称 - */ - @ExcelProperty(value = "目标昵称") - private String nickName; - - /** - * 群1好友0 - */ - @ExcelProperty(value = "群1好友0") - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @ExcelProperty(value = "启用1禁用0") - private Integer enable; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java deleted file mode 100644 index c71a0e6c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/WxRobRelationVo.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.WxRobRelation; - -import java.io.Serial; -import java.io.Serializable; - - - -/** - * 【请填写功能名称】视图对象 wx_rob_relation - * - * @author Lion Li - * @date 2024-05-01 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = WxRobRelation.class) -public class WxRobRelationVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * - */ - @ExcelProperty(value = "") - private Long id; - - /** - * 外接唯一码 - */ - @ExcelProperty(value = "外接唯一码") - private String outKey; - - /** - * 机器唯一码 - */ - @ExcelProperty(value = "机器唯一码") - private String uniqueKey; - - /** - * 目标昵称 - */ - @ExcelProperty(value = "目标昵称") - private String nickName; - - /** - * 群1好友0 - */ - @ExcelProperty(value = "群1好友0") - private Integer toGroup; - - /** - * 启用1禁用0 - */ - @ExcelProperty(value = "启用1禁用0") - private Integer enable; - - /** - * IP白名单 - */ - @ExcelProperty(value = "IP白名单") - private String whiteList; - - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java deleted file mode 100644 index fe0cc46d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverCallbackVo.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import lombok.Data; - -/** - * 翻唱回调VO - * - * @author NSL - * @since 2024-12-26 - */ -@Data -public class CoverCallbackVo { - /** 本次请求的订单号 */ - private String orderId; - - /** 用户ID */ - private String userId; - - /** 本次消费金额 */ - private String cost; - - /** 翻唱后的URL */ - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java deleted file mode 100644 index b07909ea..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverParamVo.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * 翻唱歌曲入参 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -public class CoverParamVo implements Serializable { - - /** - * 歌曲名称 - */ - @ExcelProperty(value = "歌曲名称") - private String coverMusicName; - /** - * 歌曲地址 - */ - @ExcelProperty(value = "歌曲地址") - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - @ExcelProperty(value = "歌手性别") - private String coverSingerGender; - /** - * 歌手姓名 - */ - @ExcelProperty(value = "歌手姓名") - private String coverSingerName; - /** - * 参考音频:用户首次翻唱,必填;第二次及之后翻唱:若为空则沿用最近一次参考音频训练模型,若不为空则使用该参考音频训练模型。 - * 可多传 - */ - @ExcelProperty(value = "参考音频") - private List promptAudioUrl; - /** - * 用户性别 FEMALE MALE - */ - @ExcelProperty(value = "用户性别") - private String userGender; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private String userId; - - /** - * 业务主键id - */ - @ExcelProperty(value = "业务主键id") - private String orderId; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java deleted file mode 100644 index c6d554ef..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverPromptAudioVo.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.Cover; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 翻唱用户参考音频视图对象 - * - * @author NSL - * @since 2024-12-25 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = Cover.class) -public class CoverPromptAudioVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ExcelProperty(value = "id") - private Long id; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - /** - * 翻唱主表id - */ - @ExcelProperty(value = "翻唱主表id") - private Long coverId; - /** - * 翻唱后的URL - */ - @ExcelProperty(value = "参考音频") - private String promptAudioUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java deleted file mode 100644 index cffb757c..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/CoverVo.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; -import org.ruoyi.system.domain.Cover; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 翻唱视图对象 - * - * @author NSL - * @date 2024-12-25 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = Cover.class) -public class CoverVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @ExcelProperty(value = "id") - private Long id; - /** - * 歌曲名称 - */ - @ExcelProperty(value = "歌曲名称") - private String coverMusicName; - /** - * 歌曲地址 - */ - @ExcelProperty(value = "歌曲地址") - private String coverMusicUrl; - /** - * 歌手性别 枚举 FEMALE 女性 MALE 男性 - */ - @ExcelProperty(value = "歌手性别") - private String coverSingerGender; - /** - * 歌手姓名 - */ - @ExcelProperty(value = "歌手姓名") - private String coverSingerName; - /** - * 用户性别 FEMALE MALE - */ - @ExcelProperty(value = "用户性别") - private String userGender; - /** - * 用户id - */ - @ExcelProperty(value = "用户id") - private Long userId; - /** - * 本次消费金额 - */ - @ExcelProperty(value = "本次消费金额") - private String cost; - /** - * 翻唱后的URL - */ - @ExcelProperty(value = "翻唱后的URL") - private String coverUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java deleted file mode 100644 index 5d960949..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/cover/MusicVo.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ruoyi.system.domain.vo.cover; - -import lombok.Data; - -/** - * @author NSL - * @since 2024-12-25 - */ -@Data -public class MusicVo { - /** - * 歌曲名称 - */ - private String musicName; - - /** - * 音乐地址 - */ - private String mp3Url; - - /** - * 歌曲图片 - */ - private String pic; - - /** - * 歌手或乐队名 - */ - private String singerName; - - /** - * 歌手性别 - */ - private String singerGender; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java deleted file mode 100644 index cda01155..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptAllQueryDto.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 查询所有PPT列表查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptAllQueryDto { - // 分页 - private Integer page; - // 每页大小(最大不超过100) - private Integer size; - // ppt id(非必填) - private String id; - // 第三方用户ID(非必填) - private String uid; - // 模板ID(非必填) - private String templateId; - // 创建开始时间(非必填) - private String startDate; - // 创建结束时间(非必填) - private String endDate; - // 按时间倒序返回(非必填) - private boolean desc; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java deleted file mode 100644 index 82bc517b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateContentDto.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成大纲内容参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGenerateContentDto { - // 模板ID(非必填) - private String templateId; - - // 大纲 markdown 文本 - private String outlineMarkdown; - - // 异步生成PPT(这里必须为 true 才会流式生成) - private boolean asyncGenPptx = false; - - // 用户要求 - private String prompt; - - // 文件数据url,调用解析文件内容接口返回 - private String dataUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java deleted file mode 100644 index bb547544..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGenerateOutlineDto.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成PPT大纲参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGenerateOutlineDto { - // 是否流式生成(默认流式) - private boolean stream = true; - // 篇幅长度:short/medium/long, 默认 medium, 分别对应: 10-15页/20-30页/25-35页 - private String length = "medium"; - // 语言: zh/zh-Hant/en/ja/ko/ar/de/fr/it/pt/es/ru - private String lang; - // 用户要求(小于50字) - private String prompt; - // 方式一:通过主题创建 主题(与dataUrl可同时存在) - private String subject; - // 方式二:通过文件内容创建 文件数据url,通过解析文件内容接口返回(与subject可同时存在) - private String dataUrl; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java deleted file mode 100644 index 427e9d66..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptGeneratePptxDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 生成PPT参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptGeneratePptxDto { - // 模板ID(非必填) - private String templateId; - - // 是否返回PPT数据结构 - private boolean pptxProperty; - - // 大纲内容markdown - private String outlineContentMarkdown; - - // 备注(PPT页面备注,非必填,数组 ["内容页面一备注", "内容页面二备注"]) - private String notes; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java deleted file mode 100644 index 2c441462..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateFilterDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * PPT模板筛选查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptTemplateFilterDto { - // 模板类型(必传):1系统模板、4用户自定义模板 - private Integer type; - - // 类目筛选 ['年终总结', '教育培训', '医学医疗', '商业计划书', '企业介绍', '毕业答辩', '营销推广', '晚会表彰', '个人简历'] - private String category; - - // 风格筛选 ['扁平简约', '商务科技', '文艺清新', '卡通手绘', '中国风', '创意时尚', '创意趣味'] - private String style; - - // 主题颜色筛选 ['#FA920A', '#589AFD', '#7664FA', '#65E5EC', '#61D328', '#F5FD59', '#E05757', '#8F5A0B', '#FFFFFF', '#000000'] - private String themeColor; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java deleted file mode 100644 index c2199849..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ppt/PptTemplateQueryDto.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ruoyi.system.domain.vo.ppt; - -import lombok.Data; - -/** - * 分页查询 PPT 模板查询参数 - * - * @author NSL - * @since 2024/12/31 - */ -@Data -public class PptTemplateQueryDto { - // 分页 - private Integer page; - // 每页大小(最大不超过100) - private Integer size; - // 模型筛选参数 - private PptTemplateFilterDto filters; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java deleted file mode 100644 index 26936ed1..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/MyMsgHandler.java +++ /dev/null @@ -1,230 +0,0 @@ -package org.ruoyi.system.handler; - -import com.jfinal.kit.PropKit; -import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.entity.chat.ChatCompletion; -import org.ruoyi.common.chat.entity.images.Item; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; -import org.ruoyi.common.wechat.web.constant.ConfigKeys; -import org.ruoyi.common.wechat.web.model.WxRobConfig; -import org.ruoyi.common.wechat.web.model.WxRobKeyword; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.service.ISseService; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.util.List; -import java.util.regex.Matcher; - -/** - * 消息处理实现 默认方案 - * @author WesleyOne - * @create 2018/12/11 - */ -public class MyMsgHandler implements IMsgHandlerFace,LogInterface { - private String uniqueKey; - private final ISseService sseService; - private WxRobConfigVo robConfigVo; - - public MyMsgHandler(String uniqueKey,ISseService sseService,WxRobConfigVo robConfigVo){ - this.uniqueKey = uniqueKey; - this.sseService = sseService; - this.robConfigVo = robConfigVo; - } - - private String getDownloadPath(String fileName) { - String download_path = PropKit.get("download_path"); - return download_path+ File.separator + uniqueKey +File.separator + fileName; - } - - @Override - public void textMsgHandle(BaseMsg msg) { - String fromNickName = msg.getFromNickName(); - String fromUserName = msg.getFromUserName(); - boolean groupMsg = msg.isGroupMsg(); - String text = msg.getText().trim(); - - if (groupMsg && text.contains("@" + fromNickName)) { - handleGroupMessage(fromNickName, fromUserName, text); - } else { - respondWithChatGPT(fromUserName, text); - } - } - - private void handleGroupMessage(String fromNickName, String fromUserName, String text) { - String prompt = text.replace("@" + fromNickName + " ", ""); - if (prompt.startsWith("画")) { - generateAndSendImage(fromUserName, prompt.replaceFirst("画 ", "")); - } else { - respondWithChatGPT(fromUserName, prompt); - } - } - - private void generateAndSendImage(String fromUserName, String prompt) { - List items = sseService.wxDall(prompt,robConfigVo.getUserId().toString()); - WxRobKeyword robKeyword = new WxRobKeyword(); - robKeyword.setTypeData(SendMsgType.IMG.toValue()); - robKeyword.setValueData(items.get(0).getUrl()); - sendDataByType(fromUserName, robKeyword); - } - - - - private void respondWithChatGPT(String fromUserName, String prompt) { - ChatRequest chatBO = new ChatRequest(); - //chatBO.setPrompt(prompt); - chatBO.setModel(ChatCompletion.Model.GPT_3_5_TURBO.getName()); - String chat = sseService.chat(chatBO,robConfigVo.getUserId().toString()); - WxRobKeyword robKeyword = new WxRobKeyword(); - robKeyword.setTypeData(SendMsgType.TEXT.toValue()); - robKeyword.setValueData(chat); - sendDataByType(fromUserName, robKeyword); - } - - private boolean sendDataByType(String fromUserName, WxRobKeyword robKeyword) { - String data; - String type; - if (robKeyword != null){ - data = robKeyword.getValueData(); - type = robKeyword.getTypeData(); - CoreManage.addSendMsg4UserName(uniqueKey,fromUserName,data,SendMsgType.fromValue(type)); - return true; - } - return false; - } - - - @Override - public void sysMsgHandle(BaseMsg msg) { - String fromNickName = msg.getFromNickName(); - String fromUserName = msg.getFromUserName(); - boolean groupMsg = msg.isGroupMsg(); - - /** - * 群里的新人进群消息处理 - * 优先发专门这个群的欢迎词 - * 没有发通用的 - * 欢迎词内容实质就是在最前面加上@昵称\n - * - * 欢迎词的关键字 - * @see ConfigKeys#DEAFAULT_WELCOME - */ - - // 解析新人名字 - String text = msg.getContent(); - String newNickName = ""; - Matcher matcher = CommonTools.getMatcher("邀请\"(.+?)\"加入了群聊", text); - if (matcher.find()){ - newNickName = matcher.group(1); - }else{ - matcher = CommonTools.getMatcher("\"(.+?)\"通过扫描(.+?)分享的二维码加入群聊", text); - if (matcher.find()){ - newNickName = matcher.group(1); - } - } - - if (StringUtils.isNotEmpty(newNickName)){ - - WxRobConfig robConfig = WxRobConfig.dao.findFirst("SELECT * FROM wx_rob_config WHERE unique_key = ? LIMIT 1", uniqueKey); - if(robConfig != null && robConfig.getEnable()){ - // 判断是否要回复 - boolean isOpen = false; - // 判断是群聊的话是否允许回复 昵称关键字 - if (robConfig.getToGroup() && groupMsg){ - isOpen = true; - } - if (isOpen){ - WxRobKeyword robKeyword = WxRobKeyword.dao.findFirst("SELECT * FROM wx_rob_keyword WHERE unique_key = ? AND key_data = ? AND nick_name = ? AND enable = 1 AND to_group = ? ORDER BY id DESC LIMIT 1", uniqueKey, ConfigKeys.DEAFAULT_WELCOME,fromNickName,msg.isGroupMsg()?1:0); - if (sendSysWelcomeMsg(fromUserName, newNickName, robKeyword)){ return;} - } - - // 没有专门的关键字,则使用默认关键字 - isOpen = false; - // 判断是群聊的话是否允许回复 昵称关键字 - if (robConfig.getDefaultGroup() && groupMsg){ - isOpen = true; - } - if (isOpen){ - WxRobKeyword defaultRobKeyword = WxRobKeyword.dao.findFirst("SELECT * FROM wx_rob_keyword WHERE unique_key = ? AND key_data = ? AND nick_name = ? AND enable = 1 AND to_group = ? ORDER BY id DESC LIMIT 1", uniqueKey, ConfigKeys.DEAFAULT_WELCOME, ConfigKeys.DEAFAULT_KEYWORD,msg.isGroupMsg()?1:0); - if (sendSysWelcomeMsg(fromUserName, newNickName, defaultRobKeyword)){ return;} - } - } - } - - } - - /** - * 发送欢迎内容 - * @param fromUserName - * @param newNickName - * @param robKeyword - * @return - */ - private boolean sendSysWelcomeMsg(String fromUserName, String newNickName, WxRobKeyword robKeyword) { - if (robKeyword != null){ - if (robKeyword.getTypeData().equals(SendMsgType.TEXT.toValue())){ - robKeyword.setValueData(String.format("@%s\n%s",newNickName,robKeyword.getValueData())); - } - if (sendDataByType(fromUserName, robKeyword)) { - return true; - } - } - return false; - } - - @Override - public void picMsgHandle(BaseMsg msg) { -// // 这里使用收到图片的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".jpg"; -// // 保存图片的路径 -// String picPath = getDownloadPath(fileName); -// // 调用此方法来保存图片 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.PIC.getType(), picPath, this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"图片保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void voiceMsgHandle(BaseMsg msg) { -// // 这里使用收到语音的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".mp3"; -// // 保存语音的路径 -// String voicePath = getDownloadPath(fileName); -// // 调用此方法来保存语音 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.VOICE.getType(), voicePath, this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"声音保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void videoMsgHandle(BaseMsg msg) { -// // 这里使用收到小视频的时间作为文件名 -// String fileName = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date()) + ".mp4"; -// // 保存小视频的路径 -// String viedoPath = getDownloadPath(fileName); -// // 调用此方法来保存小视频 -// DownloadTools.getDownloadFn(msg, MsgTypeEnum.VIEDO.getType(), viedoPath,this.uniqueKey); -// CoreManage.addSendMsg4UserName(uniqueKey,msg.getFromUserName(),"视频保存成功",SendMsgType.TEXT); - return; - } - - @Override - public void nameCardMsgHandle(BaseMsg msg) { - return ; - } - - @Override - public void verifyAddFriendMsgHandle(BaseMsg msg) { - return ; - } - - @Override - public void mediaMsgHandle(BaseMsg msg) { - return ; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java deleted file mode 100644 index fa2ad943..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/AbstractHandler.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.cp.message.WxCpMessageHandler; - -/** - * @author Binary Wang - */ -public abstract class AbstractHandler implements WxCpMessageHandler { -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java deleted file mode 100644 index 7beb8200..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ContactChangeHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.common.core.utils.JsonUtils; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 通讯录变更事件处理器. - * - * @author Binary Wang - */ -@Slf4j -@Component -public class ContactChangeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - String content = "收到通讯录变更事件,内容:" + JsonUtils.toJson(wxMessage); - log.info(content); - - return new TextBuilder().build(content, wxMessage, cpService); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java deleted file mode 100644 index 82806aac..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/EnterAgentHandler.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; - -import java.util.Map; - -/** - *

- *
- * Created by Binary Wang on 2018/8/27.
- * 
- * - * @author Binary Wang - */ -@Slf4j -public class EnterAgentHandler extends AbstractHandler { - private static final int TEST_AGENT = 1000002; - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService wxCpService, WxSessionManager sessionManager) throws WxErrorException { - // do something - return null; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java deleted file mode 100644 index 45696171..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LocationHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class LocationHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.LOCATION)) { - //TODO 接收处理用户发送的地理位置消息 - try { - String content = "感谢反馈,您的的地理位置已收到!"; - return new TextBuilder().build(content, wxMessage, null); - } catch (Exception e) { - log.error("位置消息接收处理失败", e); - return null; - } - } - - //上报地理位置事件 - log.info("\n上报地理位置,纬度 : {}\n经度 : {}\n精度 : {}", - wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision())); - - //TODO 可以将用户地理位置信息保存到本地数据库,以便以后使用 - - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java deleted file mode 100644 index af32e160..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/LogHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.common.core.utils.JsonUtils; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class LogHandler extends AbstractHandler { - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - log.info("\n接收到请求消息,内容:{}", JsonUtils.toJson(wxMessage)); - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java deleted file mode 100644 index fe4617de..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MenuHandler.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.common.api.WxConsts.MenuButtonType; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -public class MenuHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - - String msg = String.format("type:%s, event:%s, key:%s", - wxMessage.getMsgType(), wxMessage.getEvent(), - wxMessage.getEventKey()); - if (MenuButtonType.VIEW.equals(wxMessage.getEvent())) { - return null; - } - - return WxCpXmlOutMessage.TEXT().content(msg) - .fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName()) - .build(); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java deleted file mode 100644 index b52a628f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/MsgHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.RequiredArgsConstructor; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.ruoyi.system.service.ISseService; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -@RequiredArgsConstructor -public class MsgHandler extends AbstractHandler { - -// private final ISseService sseService; - - - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - final String msgType = wxMessage.getMsgType(); - if (msgType == null) { - // 如果msgType没有,就自己根据具体报文内容做处理 - } - - if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) { - //TODO 可以选择将消息保存到本地 - } - - //TODO 组装回复消息 - String content = ""; - //sseService.wxCpChat(wxMessage.getContent()); - - return new TextBuilder().build(content, wxMessage, cpService); - - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java deleted file mode 100644 index b755444a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/NullHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Component -public class NullHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java deleted file mode 100644 index 8a797a1d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/ScanHandler.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -/** - * @author Binary Wang - */ -public abstract class ScanHandler extends AbstractHandler { - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java deleted file mode 100644 index 6146c004..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/SubscribeHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.error.WxErrorException; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.WxCpUser; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.ruoyi.system.builder.TextBuilder; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class SubscribeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) throws WxErrorException { - - log.info("新关注用户 OPENID: " + wxMessage.getFromUserName()); - - // 获取微信用户基本信息 - WxCpUser userWxInfo = cpService.getUserService().getById(wxMessage.getFromUserName()); - - if (userWxInfo != null) { - // TODO 可以添加关注用户到本地 - } - - WxCpXmlOutMessage responseResult = null; - try { - responseResult = handleSpecial(wxMessage); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - if (responseResult != null) { - return responseResult; - } - - try { - return new TextBuilder().build("感谢关注", wxMessage, cpService); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - return null; - } - - /** - * 处理特殊请求,比如如果是扫码进来的,可以做相应处理 - */ - private WxCpXmlOutMessage handleSpecial(WxCpXmlMessage wxMessage) { - //TODO - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java deleted file mode 100644 index b89713f2..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/wxcp/UnsubscribeHandler.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.system.handler.wxcp; - -import lombok.extern.slf4j.Slf4j; -import me.chanjar.weixin.common.session.WxSessionManager; -import me.chanjar.weixin.cp.api.WxCpService; -import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; -import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author Binary Wang - */ -@Slf4j -@Component -public class UnsubscribeHandler extends AbstractHandler { - - @Override - public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, - WxSessionManager sessionManager) { - String openId = wxMessage.getFromUserName(); - log.info("取消关注用户 OPENID: " + openId); - // TODO 可以更新本地数据库为取消关注状态 - return null; - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java index d6996e43..26beb91a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/handler/CustomerBigDecimalSerialize.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/listener/CustomerBigDecimalSerialize.java @@ -1,4 +1,4 @@ -package org.ruoyi.system.handler; +package org.ruoyi.system.listener; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java deleted file mode 100644 index d6a85191..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleListDto.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -/** - * 描述: - * - * @author ageerle@163.com - * date 2024/4/27 - */ -@Data -public class RoleListDto { - - private String name; - - private String description; - - private String voicesId; - - private String avatar; - - private String previewAudio; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java deleted file mode 100644 index d77b1e97..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/RoleRequest.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleRequest { - - /** - * 角色名称 - */ - private String name; - - /** - * 角色默认风格音频样本,base64 编码的音频数据 - */ - private String prompt; - - /** - * 角色描述 - */ - private String description; - - /** - * 头像 - */ - private String avatar; - - /** - * 专业克隆样本Zip文件的分片上传ID,请先通过分片上传接口完成文件上传 - */ - private String lora; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java deleted file mode 100644 index 6a9378ee..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/request/SimpleGenerateRequest.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.request; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateRequest { - - /** - * 角色ID - */ - private String voiceId; - - /** - * 要生成的文本内容 - */ - private String text; - - /** - * 要生成的文本内容 优先级高于text - */ - private List texts; - - /** - * 角色风格 ID (默认为default) - */ - private String promptId = "default"; - - /** - * 要使用的模型ID (目前统一为reecho-neural-voice-001) - */ - private String model = "reecho-neural-voice-001"; - - /** - * 多样性 (0-100,默认为97) - */ - private Integer randomness; - - /** - * 稳定性过滤 (0-100,默认为100) - */ - private Integer stability_boost; - - /** - * 概率优选(0-100,默认为99) - */ - private Integer probability_optimization; - - /** - * 是否直接返回生成音频的Base64 DataURL,而不是Url链接(默认为false) - */ - private Boolean origin_audio; - - /** - * 是否启用流式生成 - */ - private Boolean stream; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java deleted file mode 100644 index ff09e6f5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/MetadataResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class MetadataResponse { - - /** - * 语音角色头像 URL - */ - private String avatar; - - /** - * 语音角色描述 - */ - private String description; - - /** - * 语音角色风格列表 - */ - private List prompts; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java deleted file mode 100644 index 000f902f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/PromptResponse.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * 描述:语音角色风格列表 - * - * @author ageerle@163.com - * date 2024/4/27 - */ -@Data -public class PromptResponse { - - /** - * 角色风格 ID - */ - private String id; - - /** - * 角色风格名称 - */ - private String name; - - /** - * 角色风格样本音频 URL - */ - private String promptOriginAudioStorageUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java deleted file mode 100644 index 1e7c67e8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleDataResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleDataResponse { - /** - * 语音角色 ID - */ - private String id; - - /** - * 音角色名称 - */ - private String name; - - /** - * 语音角色状态,可以为 - * pending(瞬时克隆已完成) - * lora-pending(专业克隆训练中) - * lora-success(专业克隆已完成) - * lora-failed(专业克隆失败) - */ - private String status; - private MetadataResponse metadata; - private String from; - private String originId; - private String createdAt; - private String updatedAt; - private String deletedAt; - private String userId; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java deleted file mode 100644 index 0f4ea427..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/RoleResponse.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class RoleResponse { - /** - * 状态码 - */ - private String status; - /** - * 状态信息 - */ - private String message; - /** - * 创建的语音角色详情 - */ - private RoleDataResponse data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java deleted file mode 100644 index 79d904bb..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateDataResponse.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateDataResponse { - - /** - * 本次生成的ID - */ - private String id; - - /** - * 本次生成结果的音频文件地址 - */ - private String audio; - - /** - * 流式MP3端点 - */ - private String streamUrl; - - /** - * 本次生成所消耗的点数 - */ - private Integer credit_used; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java deleted file mode 100644 index ac4b3580..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/SimpleGenerateResponse.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.system.response; - -import lombok.Data; - -/** - * @author WangLe - */ -@Data -public class SimpleGenerateResponse { - - /** - * 状态码,失败时则为500 - */ - private String status; - - /** - * 状态消息 - */ - private String message; - - /** - * 生成详情 - */ - private SimpleGenerateDataResponse data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java deleted file mode 100644 index 0d22f208..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ChatAppStoreVO.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -@Data -public class ChatAppStoreVO { - - - private String name; - - private String description; - - private String voicesId; - - private String avatar; - - private String appUrl; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java deleted file mode 100644 index ea7f7471..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/ContentResponse.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -/** - * - * 描述:获取当前用户的语音角色列表返回对象 - * - * @author ageerle@163.com - * date 2024/4/27 - */ -import java.util.List; - -@Data -public class ContentResponse { - - /** - * 语音角色 ID - */ - private String id; - - /** - * 语音角色名称 - */ - private String name; - - /** - * 语音角色状态,可以为pending(瞬时克隆已完成)、lora-pending(专业克隆训练中)、lora-success(专业克隆已完成)、lora-failed(专业克隆失败) - */ - private String status; - - - private Metadata metadata; - @Data - public static class Metadata { - - /** - * 语音角色头像 URL - */ - private String avatar; - - /** - * 语音角色描述 - */ - private String description; - - /** - * 语音角色风格列表 - */ - private List prompts; - - private String previewAudio; - - private String promptMP3StorageUrl; - - @Data - public static class prompt { - /** - * 角色风格 ID - */ - private String id; - - /** - * 角色风格名称 - */ - private String name; - - /** - * 角色风格样本音频 URL - */ - private String promptOriginAudioStorageUrl; - - } - - } - -} - diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java deleted file mode 100644 index a9857815..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/response/rolelist/RoleListResponse.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.response.rolelist; - -import lombok.Data; - -import java.util.List; - -/** - * @author WangLe - */ -@Data -public class RoleListResponse { - /** - * 状态码 - */ - private String status; - /** - * 状态信息 - */ - private String message; - /** - * 创建的语音角色详情 - */ - private List data; -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java deleted file mode 100644 index d610a688..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverPromptAudioService.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ruoyi.system.service; - -/** - * 翻唱用户参考音频Service接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface ICoverPromptAudioService { - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java deleted file mode 100644 index f6c22bd3..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ICoverService.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.vo.cover.CoverCallbackVo; -import org.ruoyi.system.domain.vo.cover.CoverParamVo; -import org.ruoyi.system.domain.vo.cover.CoverVo; -import org.ruoyi.system.domain.vo.cover.MusicVo; - -import java.util.List; - -/** - * 翻唱Service接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface ICoverService { - - /** - * 查找歌曲 - * - * @param musicName 歌曲名称 - * @return 匹配的歌曲信息集合 - */ - List searchMusic(String musicName); - - /** - * 翻唱回调 - * - * @param coverCallbackVo 回调信息 - */ - void callback(CoverCallbackVo coverCallbackVo); - - /** - * 翻唱歌曲 - * - * @param coverParamVo 翻唱信息 - */ - void saveCoverTask(CoverParamVo coverParamVo); - - /** - * 查询用户的翻唱记录 - * - * @return 翻唱记录 - */ - TableDataInfo searchCoverRecord(PageQuery pageQuery); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java deleted file mode 100644 index 1ac29b4b..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPaymentOrdersService.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.request.OrderRequest; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; - -import java.util.Collection; -import java.util.List; - -/** - * 支付订单Service接口 - * - * @author Lion Li - * @date 2024-04-16 - */ -public interface IPaymentOrdersService { - - /** - * 查询支付订单 - */ - PaymentOrdersVo queryById(Long id); - - - /** - * 创建支付订单 - */ - PaymentOrdersBo createPayOrder(OrderRequest orderRequest); - - /** - * 修改订单状态为已支付 - * - */ - void updatePayOrder(OrderRequest orderRequest); - - - /** - * 查询支付订单列表 - */ - TableDataInfo queryPageList(PaymentOrdersBo bo, PageQuery pageQuery); - - /** - * 查询支付订单列表 - */ - List queryList(PaymentOrdersBo bo); - - /** - * 新增支付订单 - */ - Boolean insertByBo(PaymentOrdersBo bo); - - /** - * 修改支付订单 - */ - Boolean updateByBo(PaymentOrdersBo bo); - - /** - * 校验并批量删除支付订单信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java deleted file mode 100644 index eb284ab8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IPptService.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.ruoyi.system.service; - -import com.alibaba.fastjson.JSONObject; -import org.ruoyi.system.domain.vo.ppt.*; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -/** - * AI_PPT Service接口 - * - * @author NSL - * @since 2024-12-30 - */ -public interface IPptService { - /** - * 同步流式生成 PPT - * - * @param title ppt 标题 - */ - void syncStreamGeneratePpt(String title); - - /** - * 查询 PPT 列表 - * - * @param pptQueryVo 查询参数 - */ - void selectPptList(PptAllQueryDto pptQueryVo); - - /** - * 分页查询 PPT 模板 - * @param pptQueryVo 查询参数 - */ - JSONObject getPptTemplates(PptTemplateQueryDto pptQueryVo); - - /** - * 生成大纲 - * @param generateOutlineDto 生成大纲参数 - */ - SseEmitter generateOutline(PptGenerateOutlineDto generateOutlineDto); - - /** - * 生成大纲内容 - * @param generateContentDto 生成大纲内容参数 - */ - SseEmitter generateContent(PptGenerateContentDto generateContentDto); - - /** - * 生成ppt - * @param generatePptxDto 生成PPT参数 - */ - JSONObject generatePptx(PptGeneratePptxDto generatePptxDto); - - /** - * 获取API Token - * @return 文多多Token - */ - String getApiToken(); - - /** - * 生成PPT成功回调接口 - */ - void successCallback(); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java deleted file mode 100644 index ac5182c8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysModelService.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; - -import java.util.Collection; -import java.util.List; - -/** - * 系统模型Service接口 - * - * @author Lion Li - * @date 2024-04-04 - */ -public interface ISysModelService { - - /** - * 查询系统模型 - */ - SysModelVo queryById(Long id); - - /** - * 查询系统模型列表 - */ - TableDataInfo queryPageList(SysModelBo bo, PageQuery pageQuery); - - /** - * 查询系统模型列表 - */ - List queryList(SysModelBo bo); - - /** - * 新增系统模型 - */ - Boolean insertByBo(SysModelBo bo); - - /** - * 修改系统模型 - */ - Boolean updateByBo(SysModelBo bo); - - /** - * 校验并批量删除系统模型信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - - /** - * 根据模型名称查询模型 - */ - SysModel selectModelByName(String modelName); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java deleted file mode 100644 index d8bb5814..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysPackagePlanService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 套餐管理Service接口 - * - * @author Lion Li - * @date 2024-05-05 - */ -public interface ISysPackagePlanService { - - /** - * 查询套餐管理 - */ - SysPackagePlanVo queryById(Long id); - - /** - * 查询套餐管理列表 - */ - TableDataInfo queryPageList(SysPackagePlanBo bo, PageQuery pageQuery); - - /** - * 查询套餐管理列表 - */ - List queryList(SysPackagePlanBo bo); - - /** - * 新增套餐管理 - */ - Boolean insertByBo(SysPackagePlanBo bo); - - /** - * 修改套餐管理 - */ - Boolean updateByBo(SysPackagePlanBo bo); - - /** - * 校验并批量删除套餐管理信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java deleted file mode 100644 index b0186391..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserGroupService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.SysUserGroupBo; -import org.ruoyi.system.domain.vo.SysUserGroupVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface ISysUserGroupService { - - /** - * 查询【请填写功能名称】 - */ - SysUserGroupVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(SysUserGroupBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(SysUserGroupBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(SysUserGroupBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(SysUserGroupBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java deleted file mode 100644 index 45e2d40d..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/ISysUserModelService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface ISysUserModelService { - - /** - * 查询【请填写功能名称】 - */ - SysUserModelVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(SysUserModelBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(SysUserModelBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(SysUserModelBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(SysUserModelBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java deleted file mode 100644 index bcfd940f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobConfigService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; - -import java.util.Collection; -import java.util.List; - -/** - * 机器人Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobConfigService { - - /** - * 查询机器人 - */ - WxRobConfigVo queryById(Long id); - - /** - * 查询机器人列表 - */ - TableDataInfo queryPageList(WxRobConfigBo bo, PageQuery pageQuery); - - /** - * 查询当前用户绑定的机器人信息 - */ - List queryList(WxRobConfigBo bo); - - /** - * 新增机器人 - */ - Boolean insertByBo(WxRobConfigBo bo); - - /** - * 修改机器人 - */ - Boolean updateByBo(WxRobConfigBo bo); - - /** - * 校验并批量删除机器人信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java deleted file mode 100644 index 39bb5263..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobKeywordService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobKeywordService { - - /** - * 查询【请填写功能名称】 - */ - WxRobKeywordVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(WxRobKeywordBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(WxRobKeywordBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(WxRobKeywordBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(WxRobKeywordBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java deleted file mode 100644 index 4344fbd9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/IWxRobRelationService.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.system.service; - -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.bo.WxRobRelationBo; -import org.ruoyi.system.domain.vo.WxRobRelationVo; - -import java.util.Collection; -import java.util.List; - -/** - * 【请填写功能名称】Service接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface IWxRobRelationService { - - /** - * 查询【请填写功能名称】 - */ - WxRobRelationVo queryById(Long id); - - /** - * 查询【请填写功能名称】列表 - */ - TableDataInfo queryPageList(WxRobRelationBo bo, PageQuery pageQuery); - - /** - * 查询【请填写功能名称】列表 - */ - List queryList(WxRobRelationBo bo); - - /** - * 新增【请填写功能名称】 - */ - Boolean insertByBo(WxRobRelationBo bo); - - /** - * 修改【请填写功能名称】 - */ - Boolean updateByBo(WxRobRelationBo bo); - - /** - * 校验并批量删除【请填写功能名称】信息 - */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java deleted file mode 100644 index 6cf778c5..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/WeixinUserService.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.ruoyi.system.service; - -/** - * @Author 公众号:程序猿阿朗 - */ -public interface WeixinUserService { - - void checkSignature(String signature, String timestamp, String nonce); - - String handleWeixinMsg(String body); - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java deleted file mode 100644 index 51200fc8..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverPromptAudioServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.service.impl; - -import jakarta.annotation.Resource; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.system.mapper.CoverPromptAudioMapper; -import org.ruoyi.system.service.ICoverPromptAudioService; -import org.springframework.stereotype.Service; - -/** - * 翻唱用户参考音频Service业务层处理 - * - * @author NSL - * @since 2024-12-25 - */ -@Service -@Slf4j -public class CoverPromptAudioServiceImpl implements ICoverPromptAudioService { - - @Resource - private CoverPromptAudioMapper coverPromptAudioMapper; - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java deleted file mode 100644 index 4b6d96ef..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/CoverServiceImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.exception.NotLoginException; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.TypeReference; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.Request; -import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.wechat.itchat4j.utils.enums.ResultEnum; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.Cover; -import org.ruoyi.system.domain.CoverPromptAudio; -import org.ruoyi.system.domain.model.ApiResult; -import org.ruoyi.system.domain.vo.cover.*; -import org.ruoyi.system.mapper.CoverMapper; -import org.ruoyi.system.mapper.CoverPromptAudioMapper; -import org.ruoyi.system.service.ICoverService; -import org.ruoyi.system.util.WeChatScanHttpUtil; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static org.ruoyi.common.satoken.utils.LoginHelper.getLoginUser; - -/** - * 翻唱Service业务层处理 - * - * @author NSL - * @since 2024-12-25 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class CoverServiceImpl implements ICoverService { - - private final CoverMapper coverMapper; - private final CoverPromptAudioMapper coverPromptAudioMapper; - private final ConfigService configService; - private final IChatCostService chatCostService; - private final WeChatScanHttpUtil weChatScanHttpUtil; - private final OkHttpConfig okHttpConfig; - - @Override - public List searchMusic(String musicName) { - Map queryMap = new HashMap<>(); - queryMap.put("keyword", musicName); - String json = JSONUtil.toJsonStr(queryMap); - Request postRequest = weChatScanHttpUtil.createPostRequest(getKey("search_music_url"), json); - String body = weChatScanHttpUtil.executeRequest(postRequest); - ApiResult apiResult = JSONUtil.toBean(body, ApiResult.class); - Object data = apiResult.getData(); - Map> userMap = JSONUtil.toBean(JSONUtil.toJsonStr(data), new TypeReference<>() {}, true); - return userMap.get("musicList"); - } - - @Override - public void callback(CoverCallbackVo coverCallbackVo) { - Cover cover = BeanUtil.copyProperties(coverCallbackVo, Cover.class); - coverMapper.insertOrUpdate(cover); - } - - @Override - public void saveCoverTask(CoverParamVo coverParamVo) { - Long userId = null; - try { - userId = getLoginUser().getUserId(); - } catch (Exception e) { - throw new NotLoginException(NotLoginException.NOT_TOKEN_MESSAGE, NotLoginException.NOT_TOKEN, NotLoginException.NOT_TOKEN); - } - List promptAudioUrl = coverParamVo.getPromptAudioUrl(); - Cover cover = BeanUtil.copyProperties(coverParamVo, Cover.class); - cover.setUserId(userId); - coverMapper.insertOrUpdate(cover); - if (CollUtil.isEmpty(promptAudioUrl)) { - // 查询用户最近一次翻唱记录 - List coverPromptAudioVoList = coverPromptAudioMapper.selectLatestVoByUserId(userId); - if (CollUtil.isEmpty(coverPromptAudioVoList)) { - throw new BaseException("未查询到翻唱记录,请上传参考音频!"); - } - List promptAudioUrlList = coverPromptAudioVoList.stream().map(CoverPromptAudioVo::getPromptAudioUrl).collect(Collectors.toList()); - coverParamVo.setPromptAudioUrl(promptAudioUrlList); - } else { - // 保存用户翻唱记录 - for (String audioUrl : promptAudioUrl) { - CoverPromptAudio coverPromptAudio = new CoverPromptAudio(); - coverPromptAudio.setPromptAudioUrl(audioUrl); - coverPromptAudio.setUserId(userId); - coverPromptAudio.setCoverId(cover.getId()); - coverPromptAudioMapper.insertOrUpdate(coverPromptAudio); - } - } - coverParamVo.setUserId(String.valueOf(userId)); - coverParamVo.setOrderId(String.valueOf(cover.getId())); - coverParamVo.setUserGender(""); - log.info("发起翻唱任务,入参{}", JSONUtil.toJsonStr(coverParamVo)); - // 调用翻唱API - Request postRequest = weChatScanHttpUtil.createPostRequest(getKey("cover_url"), JSONUtil.toJsonStr(coverParamVo)); - String body = weChatScanHttpUtil.executeRequest(postRequest); - ApiResult apiResult = JSONUtil.toBean(body, ApiResult.class); - if (ResultEnum.SUCCESS.getCode().equals(String.valueOf(apiResult.getCode()))) { - // 扣费 - chatCostService.taskDeduct("cover", "token", NumberUtils.toDouble(okHttpConfig.getGenerate(), 2.5)); - } - log.info("调用翻唱结果,出参{}", body); - } - - @Override - public TableDataInfo searchCoverRecord(PageQuery pageQuery) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(Cover::getUserId, getLoginUser().getUserId()); - queryWrapper.orderByDesc(Cover::getCreateTime); - Page result = coverMapper.selectVoPage(pageQuery.build(), queryWrapper); - return TableDataInfo.build(result); - } - - public String getKey(String key) { - return configService.getConfigValue("cover", key); - } - -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java deleted file mode 100644 index 1415aaa1..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PaymentOrdersServiceImpl.java +++ /dev/null @@ -1,211 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.PaymentOrder; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.domain.bo.PaymentOrdersBo; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.bo.SysUserBo; -import org.ruoyi.system.domain.request.OrderRequest; -import org.ruoyi.system.domain.vo.PaymentOrdersVo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.mapper.PaymentOrdersMapper; -import org.ruoyi.system.mapper.SysUserMapper; -import org.ruoyi.system.service.IPaymentOrdersService; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.ruoyi.system.service.ISysUserService; -import org.ruoyi.system.util.OrderNumberGenerator; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 支付订单Service业务层处理 - * - * @author Lion Li - * @date 2024-04-16 - */ -@RequiredArgsConstructor -@Service -public class PaymentOrdersServiceImpl implements IPaymentOrdersService { - - private final PaymentOrdersMapper baseMapper; - - private final SysUserMapper sysUserMapper; - - private final ISysUserService userService; - - private final ISysPackagePlanService planService; - - /** - * 查询支付订单 - */ - @Override - public PaymentOrdersVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 创建支付订单 - */ - @Override - public PaymentOrdersBo createPayOrder(OrderRequest orderRequest) { - LoginUser loginUser = LoginHelper.getLoginUser(); - PaymentOrdersBo paymentOrder = new PaymentOrdersBo(); - paymentOrder.setOrderName(orderRequest.getName()); - paymentOrder.setAmount(new BigDecimal(orderRequest.getMoney())); - paymentOrder.setOrderNo(OrderNumberGenerator.generate()); - paymentOrder.setUserId(loginUser.getUserId()); - // TODO 支付状态默认待支付 - 添加枚举 - paymentOrder.setPaymentStatus("1"); - // 保存支付订单 - insertByBo(paymentOrder); - return paymentOrder; - } - - /** - * 修改订单状态为已支付 - * - */ - @Override - public void updatePayOrder(OrderRequest orderRequest) { - PaymentOrdersBo paymentOrdersBo = new PaymentOrdersBo(); - paymentOrdersBo.setOrderNo(orderRequest.getOrderNo()); - List paymentOrdersList = queryList(paymentOrdersBo); - if (CollectionUtil.isEmpty(paymentOrdersList)){ - throw new BaseException("订单不存在!"); - } - // 根据价格查询套餐 - SysPackagePlanBo sysPackagePlanBo = new SysPackagePlanBo(); - sysPackagePlanBo.setPrice(new BigDecimal(orderRequest.getMoney())); - SysPackagePlanVo sysPackagePlanVo = planService.queryList(sysPackagePlanBo).get(0); - - - // 订单状态修改为已支付 - PaymentOrdersVo paymentOrdersVo = paymentOrdersList.get(0); - // 1 未支付 2未支付 - paymentOrdersVo.setPaymentStatus("2"); - paymentOrdersVo.setPaymentMethod(orderRequest.getPayType()); - BeanUtil.copyProperties(paymentOrdersVo,paymentOrdersBo); - updateByBo(paymentOrdersBo); - // 用户充值费用 - double money = paymentOrdersBo.getAmount().doubleValue(); - SysUserVo sysUserVo = userService.selectUserById(paymentOrdersVo.getUserId()); - sysUserVo.setUserBalance(sysUserVo.getUserBalance() + money); - SysUserBo sysUserBo = new SysUserBo(); - BeanUtil.copyProperties(sysUserVo,sysUserBo); - // 设置为付费用户 - sysUserBo.setUserGrade("1"); - sysUserBo.setUserPlan(sysPackagePlanVo.getId().toString()); - userService.updateUser(sysUserBo); - } - - /** - * 查询支付订单列表 - */ - @Override - public TableDataInfo queryPageList(PaymentOrdersBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - // 获取所有userId - List userIds = result.getRecords().stream() - .map(PaymentOrdersVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(paymentOrderVo -> { - paymentOrderVo.setUserName(userIdToUserNameMap.get(paymentOrderVo.getUserId())); - }); - return TableDataInfo.build(result); - } - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - - /** - * 查询支付订单列表 - */ - @Override - public List queryList(PaymentOrdersBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(PaymentOrdersBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), PaymentOrder::getOrderNo, bo.getOrderNo()); - lqw.like(StringUtils.isNotBlank(bo.getOrderName()), PaymentOrder::getOrderName, bo.getOrderName()); - lqw.eq(bo.getAmount() != null, PaymentOrder::getAmount, bo.getAmount()); - lqw.eq(StringUtils.isNotBlank(bo.getPaymentStatus()), PaymentOrder::getPaymentStatus, bo.getPaymentStatus()); - lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), PaymentOrder::getPaymentMethod, bo.getPaymentMethod()); - lqw.eq(bo.getUserId() != null, PaymentOrder::getUserId, bo.getUserId()); - return lqw; - } - - /** - * 新增支付订单 - */ - @Override - public Boolean insertByBo(PaymentOrdersBo bo) { - PaymentOrder add = MapstructUtils.convert(bo, PaymentOrder.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改支付订单 - */ - @Override - public Boolean updateByBo(PaymentOrdersBo bo) { - PaymentOrder update = MapstructUtils.convert(bo, PaymentOrder.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(PaymentOrder entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除支付订单 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java deleted file mode 100644 index a3f17e94..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/PptServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.exception.NotLoginException; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.math.NumberUtils; -import org.ruoyi.common.core.constant.Constants; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.redis.utils.RedisUtils; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.vo.ppt.*; -import org.ruoyi.system.service.IPptService; -import org.ruoyi.system.util.HttpUtils; -import org.ruoyi.system.util.WddPptApi; -import org.springframework.stereotype.Service; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import javax.swing.filechooser.FileSystemView; -import java.io.File; -import java.time.Duration; - -/** - * AI-PPTService业务层处理 - * - * @author NSL - * @since 2024-12-30 - */ -@RequiredArgsConstructor -@Service -@Slf4j -public class PptServiceImpl implements IPptService { - - private final OkHttpConfig okHttpConfig; - private final ConfigService configService; - private final IChatCostService chatCostService; - - @Override - public void syncStreamGeneratePpt(String title) { - // 创建 api token (有效期2小时,同一个 uid 创建时之前的 token 会在10秒内失效) - String apiToken = getApiToken(); - // 生成大纲 - System.out.println("\n\n========== 正在生成大纲 =========="); - String outline = WddPptApi.generateOutline(apiToken, title, null, null); - - // 生成大纲内容 - System.out.println("\n\n========== 正在生成大纲内容 =========="); - String markdown = WddPptApi.generateContent(apiToken, outline, null, null); - - // 随机一个模板 - System.out.println("\n\n========== 随机选择模板 =========="); - String templateId = WddPptApi.randomOneTemplateId(apiToken); - System.out.println(templateId); - - // 生成PPT - System.out.println("\n\n========== 正在生成PPT =========="); - JSONObject pptInfo = WddPptApi.generatePptx(apiToken, templateId, markdown, false); - String pptId = pptInfo.getString("id"); - System.out.println("pptId: " + pptId); - System.out.println("ppt主题:" + pptInfo.getString("subject")); - System.out.println("ppt封面:" + pptInfo.getString("coverUrl") + "?token=" + apiToken); - - // 下载PPT到桌面 - System.out.println("\n\n========== 正在下载PPT =========="); - JSONObject result = WddPptApi.downloadPptx(apiToken, pptId); - String url = result.getString("fileUrl"); - System.out.println("ppt链接:" + url); - String savePath = FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath() + File.separator + pptId + ".pptx"; - try { - HttpUtils.download(url, new File(savePath)); - } catch (Exception e) { - - } - System.out.println("ppt下载完成,保存路径:" + savePath); - } - - @Override - public void selectPptList(PptAllQueryDto pptQueryVo) { - String apiToken = getApiToken(); - // todo 无权限访问 - JSONObject jsonObject = WddPptApi.listAllPptx(apiToken, JSONUtil.toJsonStr(pptQueryVo)); - System.out.println(jsonObject); - } - - @Override - public JSONObject getPptTemplates(PptTemplateQueryDto pptQueryVo) { - return WddPptApi.getPptTemplates(getApiToken(), JSONUtil.toJsonStr(pptQueryVo)); - } - - @Override - public SseEmitter generateOutline(PptGenerateOutlineDto generateOutlineDto) { - return WddPptApi.sseGenerateOutline(getApiToken(), generateOutlineDto.getSubject(), generateOutlineDto.getDataUrl(), generateOutlineDto.getPrompt()); - } - - @Override - public SseEmitter generateContent(PptGenerateContentDto generateContentDto) { - return WddPptApi.sseGenerateContent(getApiToken(), generateContentDto.getOutlineMarkdown(), generateContentDto.getDataUrl(), generateContentDto.getPrompt()); - } - - @Override - public JSONObject generatePptx(PptGeneratePptxDto generatePptxDto) { - return WddPptApi.generatePptx(getApiToken(), generatePptxDto.getTemplateId(), generatePptxDto.getOutlineContentMarkdown(), generatePptxDto.isPptxProperty()); - } - - public String getKey(String key) { - return configService.getConfigValue("ppt", key); - } - - @Override - public String getApiToken() { - LoginUser loginUser = null; - try { - loginUser = LoginHelper.getLoginUser(); - } catch (Exception e) { - throw new NotLoginException(NotLoginException.NOT_TOKEN_MESSAGE, NotLoginException.NOT_TOKEN, NotLoginException.NOT_TOKEN); - } - String userId = String.valueOf(loginUser.getUserId()); - // 创建 api token (有效期2小时,同一个 uid 创建时之前的 token 会在10秒内失效) - String apiToken = RedisUtils.getCacheObject(Constants.WDD_TOKEN_KEY + userId); - if (StrUtil.isEmpty(apiToken)) { - apiToken = WddPptApi.createApiToken(getKey("apiKey"), userId, null); - RedisUtils.setCacheObject(Constants.WDD_TOKEN_KEY, apiToken, Duration.ofMinutes(Constants.WDD_TOKEN_EXPIRATION)); - } - return apiToken; - } - - @Override - public void successCallback() { - // 扣费 - chatCostService.taskDeduct("ppt", "AI-PPT", NumberUtils.toDouble(okHttpConfig.getGenerate(), 1.1)); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java deleted file mode 100644 index 807650d9..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java +++ /dev/null @@ -1,685 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.dev33.satoken.stp.StpUtil; -import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.zhipu.oapi.ClientV4; -import com.zhipu.oapi.service.v4.tools.*; -import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.chat.OllamaChatMessage; -import io.github.ollama4j.models.chat.OllamaChatMessageRole; -import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; -import io.github.ollama4j.models.generate.OllamaStreamHandler; -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.*; -import org.ruoyi.common.chat.config.ChatConfig; -import org.ruoyi.common.chat.config.LocalCache; -import org.ruoyi.common.chat.domain.request.ChatRequest; -import org.ruoyi.common.chat.domain.request.Dall3Request; -import org.ruoyi.common.chat.entity.Tts.TextToSpeech; -import org.ruoyi.common.chat.entity.chat.*; -import org.ruoyi.common.chat.entity.files.UploadFileResponse; -import org.ruoyi.common.chat.entity.images.Image; -import org.ruoyi.common.chat.entity.images.ImageResponse; -import org.ruoyi.common.chat.entity.images.Item; -import org.ruoyi.common.chat.entity.images.ResponseFormat; -import org.ruoyi.common.chat.entity.whisper.WhisperResponse; -import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.common.chat.openai.plugin.PluginAbstract; -import org.ruoyi.common.chat.plugin.CmdPlugin; -import org.ruoyi.common.chat.plugin.CmdReq; -import org.ruoyi.common.chat.plugin.SqlPlugin; -import org.ruoyi.common.chat.plugin.SqlReq; -import org.ruoyi.common.chat.utils.TikTokensUtil; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.base.BaseException; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.core.utils.file.FileUtils; -import org.ruoyi.common.core.utils.file.MimeTypeUtils; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.request.translation.TranslationRequest; -import org.ruoyi.system.listener.SSEEventSourceListener; -import org.ruoyi.system.service.*; -import org.springframework.core.io.InputStreamResource; -import org.springframework.core.io.Resource; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URLEncoder; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - - -@Service -@Slf4j -@RequiredArgsConstructor -public class SseServiceImpl implements ISseService { - - private OpenAiStreamClient openAiStreamClient; - - ChatConfig chatConfig; - - private final IChatCostService chatService; - - private final IChatMessageService chatMessageService; - - private final ISysModelService sysModelService; - - private final ConfigService configService; - - private final IChatGptsService chatGptsService; - - static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build(); - - private static final String requestIdTemplate = "mycompany-%d"; - - private static final ObjectMapper mapper = new ObjectMapper(); - - @Override - public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - SseEmitter sseEmitter = new SseEmitter(0L); - SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); - // 获取对话消息列表 - List messages = chatRequest.getMessages(); - - try { - String chatString = null; - Object content = messages.get(messages.size() - 1).getContent(); - if (content instanceof List listContent) { - if (!listContent.isEmpty() && listContent.get(0) instanceof Content) { - chatString = ((Content) listContent.get(0)).getText(); - } - } else if (content instanceof String) { - chatString = (String) content; - } - - String configValue = getKey("enabled"); - if (Boolean.parseBoolean(configValue)) { - // 判断文本是否合规 - String type = textReview(chatString); - // 审核状态 1 代表合法 - if (!"1".equals(type) && StringUtils.isNotEmpty(type)) { - throw new BaseException("文本不合规,请修改!"); - } - } - - if (StpUtil.isLogin()) { - LocalCache.CACHE.put("userId", getUserId()); - - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(chatRequest.getModel()); - chatMessageBo.setContent(chatString); - - String model = chatRequest.getModel(); - SysModel sysModel = sysModelService.selectModelByName(model); - if (sysModel == null) { - // 如果模型不存在默认使用token扣费方式 - processByToken(chatRequest.getModel(), chatString, chatMessageBo); - } else { - openAiStreamClient = chatConfig.createOpenAiStreamClient(sysModel.getApiHost(), sysModel.getApiKey()); - if (StringUtils.isNotEmpty(chatRequest.getAppId())) { // 设置应用的系统角色为描述 - ChatGptsVo chatGptsVo = chatGptsService.queryById(Long.valueOf(chatRequest.getAppId())); - Message sysMessage = Message.builder().content(chatGptsVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); - messages.add(0,sysMessage); - } else { - // 模型设置默认提示词 - if (StringUtils.isNotEmpty(sysModel.getSystemPrompt())) { - Message sysMessage = Message.builder().content(sysModel.getSystemPrompt()).role(Message.Role.SYSTEM).build(); - messages.add(0,sysMessage); - } - } - // 计费类型: 1 token扣费 2 次数扣费 - if ("2".equals(sysModel.getModelType())) { - processByModelPrice(sysModel, chatMessageBo); - } else { - processByToken(chatRequest.getModel(), chatString, chatMessageBo); - } - } - } - String zhipuValue = configService.getConfigValue("zhipu", "key"); - // 添加联网信息 - if(StringUtils.isNotEmpty(zhipuValue)){ - ClientV4 client = new ClientV4.Builder(zhipuValue) - .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) - .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) - .build(); - - SearchChatMessage jsonNodes = new SearchChatMessage(); - jsonNodes.setRole(Message.Role.USER.getName()); - jsonNodes.setContent(chatString); - - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() - .model("web-search-pro") - .stream(Boolean.TRUE) - .messages(Collections.singletonList(jsonNodes)) - .requestId(requestId) - .build(); - WebSearchApiResponse webSearchApiResponse = client.webSearchProStreamingInvoke(chatCompletionRequest); - List choices = new ArrayList<>(); - if (webSearchApiResponse.isSuccess()) { - AtomicBoolean isFirst = new AtomicBoolean(true); - - AtomicReference lastAccumulator = new AtomicReference<>(); - - webSearchApiResponse.getFlowable().map(result -> result) - .doOnNext(accumulator -> { - { - if (isFirst.getAndSet(false)) { - log.info("Response: "); - } - ChoiceDelta delta = accumulator.getChoices().get(0).getDelta(); - if (delta != null && delta.getToolCalls() != null) { - log.info("tool_calls: {}", mapper.writeValueAsString(delta.getToolCalls())); - } - choices.add(delta); - } - }) - .doOnComplete(() -> System.out.println("Stream completed.")) - .doOnError(throwable -> System.err.println("Error: " + throwable)) - .blockingSubscribe(); - - WebSearchPro chatMessageAccumulator = lastAccumulator.get(); - - webSearchApiResponse.setFlowable(null);// 打印前置空 - webSearchApiResponse.setData(chatMessageAccumulator); - } - - - Message message = Message.builder().role(Message.Role.ASSISTANT).content(choices.get(1).getToolCalls().toString()).build(); - messages.add(message); - } - - if ("openCmd".equals(chatRequest.getModel())) { - sseEmitter.send(cmdPlugin(messages)); - sseEmitter.complete(); - } else if ("sqlPlugin".equals(chatRequest.getModel())) { - sseEmitter.send(sqlPlugin(messages)); - sseEmitter.complete(); - } else { - ChatCompletion completion = ChatCompletion - .builder() - .messages(messages) - .model(chatRequest.getModel()) - .temperature(chatRequest.getTemperature()) - .topP(chatRequest.getTop_p()) - .stream(true) - .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); - } - } catch (Exception e) { - String message = e.getMessage(); - sendErrorEvent(sseEmitter, message); - return sseEmitter; - } - return sseEmitter; - } - - public String cmdPlugin(List messages) { - CmdPlugin plugin = new CmdPlugin(CmdReq.class); - // 插件名称 - plugin.setName("命令行工具"); - // 方法名称 - plugin.setFunction("openCmd"); - // 方法说明 - plugin.setDescription("提供一个命令行指令,比如<记事本>,指令使用中文"); - - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - // 参数名称 - arg.setName("cmd"); - // 参数说明 - arg.setDescription("命令行指令"); - // 参数类型 - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - //有四个重载方法,都可以使用 - ChatCompletionResponse response = openAiStreamClient.chatCompletionWithPlugin(messages,"gpt-4o-mini",plugin); - return response.getChoices().get(0).getMessage().getContent().toString(); - } - - public String sqlPlugin(List messages) { - SqlPlugin plugin = new SqlPlugin(SqlReq.class); - // 插件名称 - plugin.setName("数据库查询插件"); - // 方法名称 - plugin.setFunction("sqlPlugin"); - // 方法说明 - plugin.setDescription("提供一个用户名称查询余额信息"); - - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - // 参数名称 - arg.setName("username"); - // 参数说明 - arg.setDescription("用户名称"); - // 参数类型 - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - //有四个重载方法,都可以使用 - ChatCompletionResponse response = openAiStreamClient.chatCompletionWithPlugin(messages,"gpt-4o-mini",plugin); - return response.getChoices().get(0).getMessage().getContent().toString(); - } - - /** - * 根据次数扣除余额 - * - * @param model 模型信息 - * @param chatMessageBo 对话信息 - */ - private void processByModelPrice(SysModel model, ChatMessageBo chatMessageBo) { - double cost = model.getModelPrice(); - chatService.deductUserBalance(getUserId(), cost); - chatMessageBo.setDeductCost(cost); - chatMessageService.insertByBo(chatMessageBo); - } - - /** - * 根据token扣除余额 - * - * @param modelName 模型名称 - * @param text 消息内容 - * @param chatMessageBo 消息记录 - */ - private void processByToken(String modelName, String text, ChatMessageBo chatMessageBo) { - int tokens = TikTokensUtil.tokens(modelName, text); - chatMessageBo.setTotalTokens(tokens); - chatService.deductToken(chatMessageBo); - } - - /** - * 文字转语音 - */ - @Override - public ResponseEntity textToSpeed(TextToSpeech textToSpeech) { - ResponseBody body = openAiStreamClient.textToSpeech(textToSpeech); - if (body != null) { - // 将ResponseBody转换为InputStreamResource - InputStreamResource resource = new InputStreamResource(body.byteStream()); - - // 创建并返回ResponseEntity - return ResponseEntity.ok() - .contentType(MediaType.parseMediaType("audio/mpeg")) - .body(resource); - } else { - // 如果ResponseBody为空,返回404状态码 - return ResponseEntity.notFound().build(); - } - } - - - /** - * 语音转文字 - */ - @Override - public WhisperResponse speechToTextTranscriptionsV2(MultipartFile file) { - // 确保文件不为空 - if (file.isEmpty()) { - throw new IllegalStateException("Cannot convert an empty MultipartFile"); - } - if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.AUDIO__EXTENSION)) { - throw new IllegalStateException("File Extention not supported"); - } - // 创建一个文件对象 - File fileA = new File(System.getProperty("java.io.tmpdir") + File.separator + file.getOriginalFilename()); - try { - // 将 MultipartFile 的内容写入文件 - file.transferTo(fileA); - } catch (IOException e) { - throw new RuntimeException("Failed to convert MultipartFile to File", e); - } - return openAiStreamClient.speechToTextTranscriptions(fileA); - } - - @Override - public String chat(ChatRequest chatRequest, String userId) { - return null; - } - - /** - * dall-e-3绘画接口 - * - * @param request - * @return - */ - @Override - public List dall3(Dall3Request request) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - chatService.checkUserGrade(); - // DALL3 绘图模型 - Image image = Image.builder() - .responseFormat(ResponseFormat.URL.getName()) - .model(Image.Model.DALL_E_3.getName()) - .prompt(request.getPrompt()) - .n(1) - .quality(request.getQuality()) - .size(request.getSize()) - .style(request.getStyle()) - .build(); - ImageResponse imageResponse = openAiStreamClient.genImages(image); - SysModel sysModel = sysModelService.selectModelByName(request.getModel()); - //chatService.deductUserBalance(getUserId(),sysModelList.get(0).getModelPrice()); - // 保存消息记录 - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(Image.Model.DALL_E_3.getName()); - chatMessageBo.setContent(request.getPrompt()); - chatMessageBo.setDeductCost(sysModel.getModelPrice()); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - return imageResponse.getData(); - } - - @Override - public List wxDall(String prompt, String userId) { - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - // DALL3 绘图模型 - Image image = Image.builder() - .responseFormat(ResponseFormat.URL.getName()) - .model(Image.Model.DALL_E_3.getName()) - .prompt(prompt) - .n(1) - .build(); - ImageResponse imageResponse = openAiStreamClient.genImages(image); - SysModel dall3 = sysModelService.selectModelByName("dall3"); - chatService.deductUserBalance(Long.valueOf(userId), 0.3); - // 保存消息记录 - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(Image.Model.DALL_E_3.getName()); - chatMessageBo.setContent(prompt); - chatMessageBo.setDeductCost(dall3.getModelPrice()); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - return imageResponse.getData(); - } - - /** - * 获取用户Id - * - * @return - */ - public Long getUserId() { - LoginUser loginUser = LoginHelper.getLoginUser(); - if (loginUser == null) { - throw new BaseException("用户未登录!"); - } - return loginUser.getUserId(); - } - - @Override - public UploadFileResponse upload(MultipartFile file) { - if (file.isEmpty()) { - throw new IllegalStateException("Cannot upload an empty MultipartFile"); - } - if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { - throw new IllegalStateException("File Extention not supported"); - } - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); - } - - private File convertMultiPartToFile(MultipartFile multipartFile) { - File file = null; - try { - // 获取原始文件名 - String originalFileName = multipartFile.getOriginalFilename(); - // 默认扩展名 - String extension = ".tmp"; - // 尝试从原始文件名中获取扩展名 - if (originalFileName != null && originalFileName.contains(".")) { - extension = originalFileName.substring(originalFileName.lastIndexOf(".")); - } - - // 使用原始文件的扩展名创建临时文件 - Path tempFile = Files.createTempFile(null, extension); - file = tempFile.toFile(); - - // 将MultipartFile的内容写入文件 - try (InputStream inputStream = multipartFile.getInputStream(); - FileOutputStream outputStream = new FileOutputStream(file)) { - int read; - byte[] bytes = new byte[1024]; - while ((read = inputStream.read(bytes)) != -1) { - outputStream.write(bytes, 0, read); - } - } catch (IOException e) { - // 处理文件写入异常 - e.printStackTrace(); - } - } catch (IOException e) { - // 处理临时文件创建异常 - e.printStackTrace(); - } - return file; - } - - // 发送SSE错误事件的封装方法 - private void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { - SseEmitter.SseEventBuilder event = SseEmitter.event() - .name("error") - .data(errorMessage); - try { - sseEmitter.send(event); - } catch (IOException e) { - log.error("发送事件失败: {}", e.getMessage()); - } - sseEmitter.complete(); - } - - /** - * 文本内容审核 - * - * @param msg - * @return String - * @Date 2023/5/27 - **/ - public String textReview(String msg) { - String conclusionType = ""; - try { - String text = URLEncoder.encode(msg); - okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/x-www-form-urlencoded"); - RequestBody body = RequestBody.create(mediaType, "text=" + text); - Request request = new Request.Builder() - .url("https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + getAccessToken()) - .method("POST", body) - .addHeader("Content-Type", "application/x-www-form-urlencoded") - .addHeader("Accept", "application/json") - .build(); - Response response = HTTP_CLIENT.newCall(request).execute(); - JSONObject jsonObject = JSONObject.parseObject(response.body().string()); - conclusionType = jsonObject.getString("conclusionType"); - } catch (IOException e) { - log.info("发生错误{}", e.getMessage()); - } - return conclusionType; - } - - /** - * 从用户的AK,SK生成鉴权签名(Access Token) - * - * @return 鉴权签名(Access Token) - * @throws IOException IO异常 - */ - public String getAccessToken() throws IOException { - okhttp3.MediaType mediaType = okhttp3.MediaType.parse("application/x-www-form-urlencoded"); - RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + getKey("apiKey") - + "&client_secret=" + getKey("secretKey")); - Request request = new Request.Builder() - .url("https://aip.baidubce.com/oauth/2.0/token") - .method("POST", body) - .addHeader("Content-Type", "application/x-www-form-urlencoded") - .build(); - Response response = HTTP_CLIENT.newCall(request).execute(); - return JSONObject.parseObject(response.body().string()).getString("access_token"); - } - - public String getKey(String key) { - return configService.getConfigValue("review", key); - } - - /** - * 获取客户端的 IP 地址 - * - * @param request HTTP 请求对象 - * @return 客户端的 IP 地址,如果无法获取则返回 "unknown" - */ - public static String getClientIpAddress(HttpServletRequest request) { - String ipAddress = request.getHeader("X-Forwarded-For"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress.split(",")[0].trim(); - } - - ipAddress = request.getHeader("Proxy-Client-IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("WL-Proxy-Client-IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("HTTP_CLIENT_IP"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR"); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - ipAddress = request.getRemoteAddr(); - if (ipAddress != null && !ipAddress.isEmpty() && !"unknown".equalsIgnoreCase(ipAddress)) { - return ipAddress; - } - - return "unknown"; - } - - - @Override - public String translation(TranslationRequest translationRequest) { - // 翻译模型固定为gpt-4o-mini - translationRequest.setModel("gpt-4o-mini"); - ChatMessageBo chatMessageBo = new ChatMessageBo(); - chatMessageBo.setUserId(getUserId()); - chatMessageBo.setModelName(translationRequest.getModel()); - chatMessageBo.setContent(translationRequest.getPrompt()); - chatMessageBo.setDeductCost(0.01); - chatMessageBo.setTotalTokens(0); - chatMessageService.insertByBo(chatMessageBo); - openAiStreamClient = chatConfig.getOpenAiStreamClient(); - List messageList = new ArrayList<>(); - Message sysMessage = Message.builder().role(Message.Role.SYSTEM).content("你是一位精通各国语言的翻译大师\n" + - "\n" + - "请将用户输入词语翻译成{" + translationRequest.getTargetLanguage() + "}\n" + - "\n" + - "==示例输出==\n" + - "**原文** : <这里显示要翻译的原文信息>\n" + - "**翻译** : <这里显示翻译成英语的结果>\n" + - "==示例结束==\n" + - "\n" + - "注意:请严格按示例进行输出,返回markdown格式").build(); - messageList.add(sysMessage); - Message message = Message.builder().role(Message.Role.USER).content(translationRequest.getPrompt()).build(); - messageList.add(message); - ChatCompletionResponse chatCompletionResponse = null; - try { - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(messageList) - .model(translationRequest.getModel()) - .stream(false) - .build(); - chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); - }catch (Exception e) { - log.error(e.getMessage()); - } - - return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); - } - - @Override - public SseEmitter ollamaChat(ChatRequest chatRequest) { - String[] parts = chatRequest.getModel().split("ollama-"); - SysModel sysModel = sysModelService.selectModelByName(chatRequest.getModel()); - final SseEmitter emitter = new SseEmitter(); - String host = sysModel.getApiHost(); - List msgList = chatRequest.getMessages(); - List messages = new ArrayList<>(); - - for (Message message : msgList) { - OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); - ollamaChatMessage.setRole(OllamaChatMessageRole.USER); - ollamaChatMessage.setContent(message.getContent().toString()); - messages.add(ollamaChatMessage); - } - OllamaAPI api = new OllamaAPI(host); - api.setRequestTimeoutSeconds(100); - OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(parts[1]); - - OllamaChatRequestModel requestModel = builder - .withMessages(messages) - .build(); - - // 异步执行 OllAma API 调用 - CompletableFuture.runAsync(() -> { - try { - StringBuilder response = new StringBuilder(); - OllamaStreamHandler streamHandler = (s) -> { - String substr = s.substring(response.length()); - response.append(substr); - System.out.println(substr); - try { - emitter.send(substr); - } catch (IOException e) { - sendErrorEvent(emitter, e.getMessage()); - } - }; - api.chat(requestModel, streamHandler); - emitter.complete(); - } catch (Exception e) { - sendErrorEvent(emitter, e.getMessage()); - } - }); - return emitter; - } - - @Override - public String wxCpChat(String prompt) { - List messageList = new ArrayList<>(); - Message message = Message.builder().role(Message.Role.USER).content(prompt).build(); - messageList.add(message); - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(messageList) - .model("gpt-4o-mini") - .stream(false) - .build(); - ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); - return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java deleted file mode 100644 index d48ac6de..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysModelServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.mapper.SysModelMapper; -import org.ruoyi.system.service.ISysModelService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; - -/** - * 系统模型Service业务层处理 - * - * @author Lion Li - * @date 2024-04-04 - */ -@RequiredArgsConstructor -@Service -public class SysModelServiceImpl implements ISysModelService { - - private final SysModelMapper baseMapper; - - /** - * 查询系统模型 - */ - @Override - public SysModelVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询系统模型列表 - */ - @Override - public TableDataInfo queryPageList(SysModelBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询系统模型列表 - */ - @Override - public List queryList(SysModelBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysModelBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getModelName()), SysModel::getModelName, bo.getModelName()); - lqw.like(StringUtils.isNotBlank(bo.getModelShow()), SysModel::getModelShow, bo.getModelShow()); - lqw.eq(StringUtils.isNotBlank(bo.getModelDescribe()), SysModel::getModelDescribe, bo.getModelDescribe()); - lqw.eq(StringUtils.isNotBlank(bo.getModelType()), SysModel::getModelType, bo.getModelType()); - lqw.eq(StringUtils.isNotBlank(bo.getCategory()), SysModel::getCategory, bo.getCategory()); - return lqw; - } - - /** - * 新增系统模型 - */ - @Override - public Boolean insertByBo(SysModelBo bo) { - SysModel add = MapstructUtils.convert(bo, SysModel.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改系统模型 - */ - @Override - public Boolean updateByBo(SysModelBo bo) { - SysModel update = MapstructUtils.convert(bo, SysModel.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysModel entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除系统模型 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } - - @Override - public SysModel selectModelByName(String modelName) { - return baseMapper.selectOne( - new LambdaQueryWrapper().eq(SysModel::getModelName, modelName) - ); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java deleted file mode 100644 index 06dc5391..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysPackagePlanServiceImpl.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.SysPackagePlan; -import org.ruoyi.system.domain.bo.SysPackagePlanBo; -import org.ruoyi.system.domain.vo.SysPackagePlanVo; -import org.ruoyi.system.mapper.SysPackagePlanMapper; -import org.ruoyi.system.service.ISysPackagePlanService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 套餐管理Service业务层处理 - * - * @author Lion Li - * @date 2024-05-05 - */ -@RequiredArgsConstructor -@Service -public class SysPackagePlanServiceImpl implements ISysPackagePlanService { - - private final SysPackagePlanMapper baseMapper; - - /** - * 查询套餐管理 - */ - @Override - public SysPackagePlanVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询套餐管理列表 - */ - @Override - public TableDataInfo queryPageList(SysPackagePlanBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询套餐管理列表 - */ - @Override - public List queryList(SysPackagePlanBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysPackagePlanBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getName()), SysPackagePlan::getName, bo.getName()); - lqw.eq(bo.getPrice() != null, SysPackagePlan::getPrice, bo.getPrice()); - lqw.eq(bo.getDuration() != null, SysPackagePlan::getDuration, bo.getDuration()); - lqw.eq(StringUtils.isNotBlank(bo.getPlanDetail()), SysPackagePlan::getPlanDetail, bo.getPlanDetail()); - return lqw; - } - - /** - * 新增套餐管理 - */ - @Override - public Boolean insertByBo(SysPackagePlanBo bo) { - SysPackagePlan add = MapstructUtils.convert(bo, SysPackagePlan.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改套餐管理 - */ - @Override - public Boolean updateByBo(SysPackagePlanBo bo) { - SysPackagePlan update = MapstructUtils.convert(bo, SysPackagePlan.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysPackagePlan entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除套餐管理 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java deleted file mode 100644 index 1a401c74..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysUserModelServiceImpl.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.SysUserModelBo; -import org.ruoyi.system.domain.vo.SysUserModelVo; -import org.ruoyi.system.domain.SysUserModel; -import org.ruoyi.system.mapper.SysUserModelMapper; -import org.ruoyi.system.service.ISysUserModelService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-08-03 - */ -@RequiredArgsConstructor -@Service -public class SysUserModelServiceImpl implements ISysUserModelService { - - private final SysUserModelMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public SysUserModelVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(SysUserModelBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(SysUserModelBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysUserModelBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getMid() != null, SysUserModel::getMid, bo.getMid()); - lqw.eq(bo.getGid() != null, SysUserModel::getGid, bo.getGid()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(SysUserModelBo bo) { - SysUserModel add = MapstructUtils.convert(bo, SysUserModel.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(SysUserModelBo bo) { - SysUserModel update = MapstructUtils.convert(bo, SysUserModel.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysUserModel entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java deleted file mode 100644 index 9c84602f..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WeixinUserServiceImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.system.domain.model.ReceiveMessage; -import org.ruoyi.system.service.WeixinUserService; -import org.ruoyi.system.util.WeixinMsgUtil; -import org.ruoyi.system.util.WeixinQrCodeCacheUtil; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.codec.digest.DigestUtils; -import org.springframework.stereotype.Service; - -import java.util.Arrays; - - -@Slf4j -@Service -public class WeixinUserServiceImpl implements WeixinUserService { - - private String token = "panda"; - - @Override - public void checkSignature(String signature, String timestamp, String nonce) { - String[] arr = new String[] {token, timestamp, nonce}; - Arrays.sort(arr); - StringBuilder content = new StringBuilder(); - for (String str : arr) { - content.append(str); - } - String tmpStr = DigestUtils.sha1Hex(content.toString()); - if (tmpStr.equals(signature)) { - log.info("check success"); - return; - } - log.error("check fail"); - throw new RuntimeException("check fail"); - } - - @Override - public String handleWeixinMsg(String requestBody) { - ReceiveMessage receiveMessage = WeixinMsgUtil.msgToReceiveMessage(requestBody); - // 扫码登录 - if (WeixinMsgUtil.isScanQrCode(receiveMessage)) { - return handleScanLogin(receiveMessage); - } - // 关注 - if (WeixinMsgUtil.isEventAndSubscribe(receiveMessage)) { - return receiveMessage.getReplyTextMsg("欢迎关注【熊猫办公助手】,请访问https://web.pandarobot.chat/使用AI助手"); - } - return receiveMessage.getReplyTextMsg("收到(自动回复)"); - } - - /** - * 处理扫码登录 - * - * @param receiveMessage - * @return - */ - private String handleScanLogin(ReceiveMessage receiveMessage) { - String qrCodeTicket = WeixinMsgUtil.getQrCodeTicket(receiveMessage); - if (WeixinQrCodeCacheUtil.get(qrCodeTicket) == null) { - String openId = receiveMessage.getFromUserName(); - WeixinQrCodeCacheUtil.put(qrCodeTicket, openId); - } - return receiveMessage.getReplyTextMsg("你已成功登录!"); - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java deleted file mode 100644 index 18887e63..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobConfigServiceImpl.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.ruoyi.system.service.impl; - -import cn.hutool.core.collection.CollectionUtil; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.ruoyi.system.domain.SysUser; -import org.ruoyi.system.mapper.SysUserMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.WxRobConfigBo; -import org.ruoyi.system.domain.vo.WxRobConfigVo; -import org.ruoyi.system.domain.WxRobConfig; -import org.ruoyi.system.mapper.WxRobConfigMapper; -import org.ruoyi.system.service.IWxRobConfigService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; -import java.util.stream.Collectors; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobConfigServiceImpl implements IWxRobConfigService { - - private final WxRobConfigMapper baseMapper; - - private final SysUserMapper sysUserMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobConfigVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobConfigBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - if(CollectionUtil.isEmpty(result.getRecords())){ - return TableDataInfo.build(result); - } - // 获取所有userId - List userIds = result.getRecords().stream() - .map(WxRobConfigVo::getUserId) - .collect(Collectors.toList()); - // 一次性查询所有userName - Map userIdToUserNameMap = getUserNamesByUserIds(userIds); - // 设置userName - result.getRecords().forEach(wxRobConfigVo -> { - wxRobConfigVo.setUserName(userIdToUserNameMap.get(wxRobConfigVo.getUserId())); - }); - return TableDataInfo.build(result); - } - - private Map getUserNamesByUserIds(List userIds) { - // 实现批量查询userName的逻辑,例如通过sysUserMapper查询sys_user表 - List sysUsers = sysUserMapper.selectBatchIds(userIds); - return sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); - } - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobConfigBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobConfigBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getUserId() != null, WxRobConfig::getUserId, bo.getUserId()); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobConfig::getUniqueKey, bo.getUniqueKey()); - lqw.eq(bo.getDefaultFriend() != null, WxRobConfig::getDefaultFriend, bo.getDefaultFriend()); - lqw.eq(bo.getDefaultGroup() != null, WxRobConfig::getDefaultGroup, bo.getDefaultGroup()); - lqw.eq(bo.getEnable() != null, WxRobConfig::getEnable, bo.getEnable()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobConfigBo bo) { - WxRobConfig add = MapstructUtils.convert(bo, WxRobConfig.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobConfigBo bo) { - WxRobConfig update = MapstructUtils.convert(bo, WxRobConfig.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobConfig entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java deleted file mode 100644 index 461ca1a7..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobKeywordServiceImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.bo.WxRobKeywordBo; -import org.ruoyi.system.domain.vo.WxRobKeywordVo; -import org.ruoyi.system.domain.WxRobKeyword; -import org.ruoyi.system.mapper.WxRobKeywordMapper; -import org.ruoyi.system.service.IWxRobKeywordService; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobKeywordServiceImpl implements IWxRobKeywordService { - - private final WxRobKeywordMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobKeywordVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobKeywordBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobKeywordBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobKeywordBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobKeyword::getUniqueKey, bo.getUniqueKey()); - lqw.eq(StringUtils.isNotBlank(bo.getKeyData()), WxRobKeyword::getKeyData, bo.getKeyData()); - lqw.eq(StringUtils.isNotBlank(bo.getValueData()), WxRobKeyword::getValueData, bo.getValueData()); - lqw.eq(StringUtils.isNotBlank(bo.getTypeData()), WxRobKeyword::getTypeData, bo.getTypeData()); - lqw.like(StringUtils.isNotBlank(bo.getNickName()), WxRobKeyword::getNickName, bo.getNickName()); - lqw.eq(bo.getToGroup() != null, WxRobKeyword::getToGroup, bo.getToGroup()); - lqw.eq(bo.getEnable() != null, WxRobKeyword::getEnable, bo.getEnable()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobKeywordBo bo) { - WxRobKeyword add = MapstructUtils.convert(bo, WxRobKeyword.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobKeywordBo bo) { - WxRobKeyword update = MapstructUtils.convert(bo, WxRobKeyword.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobKeyword entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java deleted file mode 100644 index bfb2cb0a..00000000 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/WxRobRelationServiceImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.ruoyi.system.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.system.domain.WxRobRelation; -import org.ruoyi.system.domain.bo.WxRobRelationBo; -import org.ruoyi.system.domain.vo.WxRobRelationVo; -import org.ruoyi.system.mapper.WxRobRelationMapper; -import org.ruoyi.system.service.IWxRobRelationService; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-05-01 - */ -@RequiredArgsConstructor -@Service -public class WxRobRelationServiceImpl implements IWxRobRelationService { - - private final WxRobRelationMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public WxRobRelationVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(WxRobRelationBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(WxRobRelationBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(WxRobRelationBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getOutKey()), WxRobRelation::getOutKey, bo.getOutKey()); - lqw.eq(StringUtils.isNotBlank(bo.getUniqueKey()), WxRobRelation::getUniqueKey, bo.getUniqueKey()); - lqw.like(StringUtils.isNotBlank(bo.getNickName()), WxRobRelation::getNickName, bo.getNickName()); - lqw.eq(bo.getToGroup() != null, WxRobRelation::getToGroup, bo.getToGroup()); - lqw.eq(bo.getEnable() != null, WxRobRelation::getEnable, bo.getEnable()); - lqw.eq(StringUtils.isNotBlank(bo.getWhiteList()), WxRobRelation::getWhiteList, bo.getWhiteList()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(WxRobRelationBo bo) { - WxRobRelation add = MapstructUtils.convert(bo, WxRobRelation.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(WxRobRelationBo bo) { - WxRobRelation update = MapstructUtils.convert(bo, WxRobRelation.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(WxRobRelation entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules/ruoyi-weixin/pom.xml b/ruoyi-modules/ruoyi-weixin/pom.xml deleted file mode 100644 index 3e067c04..00000000 --- a/ruoyi-modules/ruoyi-weixin/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-weixin - - - 17 - 17 - UTF-8 - - - diff --git a/script/docker/localModels/Dockerfile b/script/docker/localModels/Dockerfile deleted file mode 100644 index 0f1e6063..00000000 --- a/script/docker/localModels/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# 使用 Python 3.8 slim 作为基础镜像(轻量稳定) -FROM python:3.10 - -# 设置工作目录 -WORKDIR /app - -# 复制所有文件到容器 -COPY . /app - -# 更新 pip 并安装 wheel(避免依赖问题) -RUN pip install --upgrade pip wheel - -# 使用阿里云 PyPI 镜像安装依赖,并添加 trusted-host -RUN pip install -i https://mirrors.aliyun.com/pypi/simple \ - --trusted-host mirrors.aliyun.com \ - --no-cache-dir -r requirements.txt - -# 暴露 Flask 端口 -EXPOSE 5000 - -# 设置环境变量 -ENV FLASK_APP=app.py -ENV FLASK_RUN_HOST=0.0.0.0 - -# 运行 Flask -CMD ["flask", "run", "--host=0.0.0.0"] diff --git a/script/docker/localModels/app.py b/script/docker/localModels/app.py deleted file mode 100644 index 645a9b43..00000000 --- a/script/docker/localModels/app.py +++ /dev/null @@ -1,116 +0,0 @@ -from flask import Flask, request, jsonify -from sentence_transformers import SentenceTransformer -from sklearn.metrics.pairwise import cosine_similarity -import json - -app = Flask(__name__) - -# 创建一个全局的模型缓存字典 -model_cache = {} - -# 分割文本块 -def split_text(text, block_size, overlap_chars, delimiter): - chunks = text.split(delimiter) - text_blocks = [] - current_block = "" - - for chunk in chunks: - if len(current_block) + len(chunk) + 1 <= block_size: - if current_block: - current_block += " " + chunk - else: - current_block = chunk - else: - text_blocks.append(current_block) - current_block = chunk - if current_block: - text_blocks.append(current_block) - - overlap_blocks = [] - for i in range(len(text_blocks)): - if i > 0: - overlap_block = text_blocks[i - 1][-overlap_chars:] + text_blocks[i] - overlap_blocks.append(overlap_block) - overlap_blocks.append(text_blocks[i]) - - return overlap_blocks - -# 文本向量化 -def vectorize_text_blocks(text_blocks, model): - return model.encode(text_blocks) - -# 文本检索 -def retrieve_top_k(query, knowledge_base, k, block_size, overlap_chars, delimiter, model): - # 将知识库拆分为文本块 - text_blocks = split_text(knowledge_base, block_size, overlap_chars, delimiter) - # 向量化文本块 - knowledge_vectors = vectorize_text_blocks(text_blocks, model) - # 向量化查询文本 - query_vector = model.encode([query]).reshape(1, -1) - # 计算相似度 - similarities = cosine_similarity(query_vector, knowledge_vectors) - # 获取相似度最高的 k 个文本块的索引 - top_k_indices = similarities[0].argsort()[-k:][::-1] - - # 返回文本块和它们的向量 - top_k_texts = [text_blocks[i] for i in top_k_indices] - top_k_embeddings = [knowledge_vectors[i] for i in top_k_indices] - - return top_k_texts, top_k_embeddings - -@app.route('/vectorize', methods=['POST']) -def vectorize_text(): - # 从请求中获取 JSON 数据 - data = request.json - print(f"Received request data: {data}") # 调试输出请求数据 - - text_list = data.get("text", []) - model_name = data.get("model_name", "msmarco-distilbert-base-tas-b") # 默认模型 - - delimiter = data.get("delimiter", "\n") # 默认分隔符 - k = int(data.get("k", 3)) # 默认检索条数 - block_size = int(data.get("block_size", 500)) # 默认文本块大小 - overlap_chars = int(data.get("overlap_chars", 50)) # 默认重叠字符数 - - if not text_list: - return jsonify({"error": "Text is required."}), 400 - - # 检查模型是否已经加载 - if model_name not in model_cache: - try: - model = SentenceTransformer(model_name) - model_cache[model_name] = model # 缓存模型 - except Exception as e: - return jsonify({"error": f"Failed to load model: {e}"}), 500 - - model = model_cache[model_name] - - top_k_texts_all = [] - top_k_embeddings_all = [] - - # 如果只有一个查询文本 - if len(text_list) == 1: - top_k_texts, top_k_embeddings = retrieve_top_k(text_list[0], text_list[0], k, block_size, overlap_chars, delimiter, model) - top_k_texts_all.append(top_k_texts) - top_k_embeddings_all.append(top_k_embeddings) - elif len(text_list) > 1: - # 如果多个查询文本,依次处理 - for query in text_list: - top_k_texts, top_k_embeddings = retrieve_top_k(query, text_list[0], k, block_size, overlap_chars, delimiter, model) - top_k_texts_all.append(top_k_texts) - top_k_embeddings_all.append(top_k_embeddings) - - # 将嵌入向量(ndarray)转换为可序列化的列表 - top_k_embeddings_all = [[embedding.tolist() for embedding in embeddings] for embeddings in top_k_embeddings_all] - - print(f"Top K texts: {top_k_texts_all}") # 打印检索到的文本 - print(f"Top K embeddings: {top_k_embeddings_all}") # 打印检索到的向量 - - # 返回 JSON 格式的数据 - return jsonify({ - - "topKEmbeddings": top_k_embeddings_all # 返回嵌入向量 - }) - -if __name__ == '__main__': - app.run(host="0.0.0.0", port=5000, debug=True) diff --git a/script/docker/localModels/remade.md b/script/docker/localModels/remade.md deleted file mode 100644 index d6af3d2b..00000000 --- a/script/docker/localModels/remade.md +++ /dev/null @@ -1,4 +0,0 @@ -1.下载镜像 -docker pull registry.cn-hangzhou.aliyuncs.com/hejh-docker/localmodel:0.1.1 -2. 启动 -docker run -p 5000:5000 \ No newline at end of file diff --git a/script/docker/localModels/requirements.txt b/script/docker/localModels/requirements.txt deleted file mode 100644 index 2d62483a..00000000 --- a/script/docker/localModels/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -Flask==3.1.0 -sentence-transformers==3.4.1 -scikit-learn==1.6.1 -werkzeug>=3.1 - From 250909914676e295b4af615164b508ea1fc84835 Mon Sep 17 00:00:00 2001 From: ageerle Date: Thu, 10 Apr 2025 17:25:23 +0800 Subject: [PATCH 06/27] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 + ruoyi-common/pom.xml | 19 +- ruoyi-common/ruoyi-common-bom/pom.xml | 13 - ruoyi-common/ruoyi-common-chat/pom.xml | 55 +- .../properties/WebSocketProperties.java | 3 + .../demo/ConsoleEventSourceListenerV2.java | 73 - .../demo/ConsoleEventSourceListenerV3.java | 92 - .../ruoyi/common/chat/demo/PluginTest.java | 417 - .../ruoyi/common/chat/demo/WeatherPlugin.java | 24 - .../ruoyi/common/chat/demo/WeatherReq.java | 13 - .../ruoyi/common/chat/demo/WeatherResp.java | 15 - .../common/chat/demo/WebSearchToolsTest.java | 223 - .../chat/domain/request/ChatRequest.java | 75 - .../chat/domain/request/Dall3Request.java | 33 - .../chat/handler/PlusWebSocketHandler.java | 2 - .../localModels/LocalModelsofitClient.java | 198 - .../chat/localModels/SearchService.java | 25 - .../ruoyi/common/chat/plugin/CmdPlugin.java | 36 - .../common/chat/request/ChatRequest.java | 36 +- .../chat/sse/ConsoleEventSourceListener.java | 1 - .../ruoyi/common/chat/sse/PluginListener.java | 1 - ruoyi-common/ruoyi-common-core/pom.xml | 19 +- .../live-chat-client-commons-base/pom.xml | 49 - .../commons/base/constant/Constants.java | 32 - .../commons/base/exception/BaseException.java | 51 - .../listener/IBaseConnectionListener.java | 60 - .../base/listener/IBaseMsgListener.java | 149 - .../base/listener/IDanmuMsgListener.java | 46 - .../base/listener/IEnterRoomMsgListener.java | 47 - .../base/listener/IGiftMsgListener.java | 47 - .../base/listener/ILikeMsgListener.java | 46 - .../base/listener/ISuperChatMsgListener.java | 47 - .../client/commons/base/msg/BaseCmdMsg.java | 33 - .../chat/client/commons/base/msg/BaseMsg.java | 74 - .../chat/client/commons/base/msg/ICmdMsg.java | 38 - .../client/commons/base/msg/IDanmuMsg.java | 67 - .../commons/base/msg/IEnterRoomMsg.java | 62 - .../client/commons/base/msg/IGiftMsg.java | 100 - .../client/commons/base/msg/ILikeMsg.java | 71 - .../chat/client/commons/base/msg/IMsg.java | 34 - .../commons/base/msg/ISuperChatMsg.java | 49 - .../live-chat-client-commons-client/pom.xml | 55 - .../commons/client/BaseLiveChatClient.java | 200 - .../commons/client/IBaseLiveChatClient.java | 135 - .../config/BaseLiveChatClientConfig.java | 139 - .../client/enums/ClientStatusEnums.java | 83 - .../live-chat-client-commons-util/pom.xml | 25 - .../commons/util/OrLiveChatCookieUtil.java | 80 - .../commons/util/OrLiveChatNumberUtil.java | 40 - .../commons/util/OrLiveChatReflectUtil.java | 50 - .../commons/util/OrLocalDateTimeUtil.java | 54 - .../live-chat-client-commons/pom.xml | 44 - .../pom.xml | 55 - .../netty/client/base/BaseNettyClient.java | 349 - .../client/config/BaseNettyClientConfig.java | 65 - .../BaseNettyClientBinaryFrameHandler.java | 66 - .../BaseNettyClientConnectionHandler.java | 65 - .../live-chat-client-servers-netty/pom.xml | 59 - .../frame/base/BaseBinaryWebSocketFrame.java | 39 - .../handler/base/BaseBinaryFrameHandler.java | 184 - .../handler/base/BaseConnectionHandler.java | 168 - .../live-chat-client-servers/pom.xml | 47 - .../live-chat-client-bilibili/pom.xml | 71 - .../client/bilibili/api/BilibiliApis.java | 247 - .../request/BilibiliLikeReportV3Request.java | 74 - .../api/request/BilibiliSendMsgRequest.java | 77 - .../client/BilibiliLiveChatClient.java | 184 - .../config/BilibiliLiveChatClientConfig.java | 67 - .../bilibili/constant/BilibiliCmdEnum.java | 143 - .../bilibili/constant/OperationEnum.java | 86 - .../bilibili/constant/ProtoverEnum.java | 67 - .../listener/IBilibiliConnectionListener.java | 38 - .../listener/IBilibiliMsgListener.java | 138 - .../chat/client/bilibili/msg/AuthMsg.java | 92 - .../client/bilibili/msg/AuthReplyMsg.java | 63 - .../chat/client/bilibili/msg/DanmuMsgMsg.java | 102 - .../client/bilibili/msg/HeartbeatMsg.java | 58 - .../bilibili/msg/HeartbeatReplyMsg.java | 60 - .../client/bilibili/msg/InteractWordMsg.java | 396 - .../bilibili/msg/LikeInfoV3ClickMsg.java | 158 - .../chat/client/bilibili/msg/SendGiftMsg.java | 351 - .../client/bilibili/msg/SendSmsReplyMsg.java | 81 - .../bilibili/msg/SuperChatMessageMsg.java | 202 - .../bilibili/msg/base/BaseBilibiliCmdMsg.java | 68 - .../bilibili/msg/base/BaseBilibiliMsg.java | 50 - .../bilibili/msg/base/IBilibiliMsg.java | 44 - .../client/bilibili/msg/dto/MedalInfo.java | 66 - .../netty/frame/AuthWebSocketFrame.java | 40 - .../netty/frame/HeartbeatWebSocketFrame.java | 40 - .../base/BaseBilibiliWebSocketFrame.java | 54 - .../BilibiliWebSocketFrameFactory.java | 113 - .../handler/BilibiliBinaryFrameHandler.java | 153 - .../handler/BilibiliConnectionHandler.java | 154 - .../client/bilibili/protobuf/Dm_v2Proto.java | 78 - .../bilibili/protobuf/Dm_v2_20Proto.java | 74 - .../chat/client/bilibili/protobuf/dm_v2.java | 610 - .../bilibili/protobuf/dm_v2OrBuilder.java | 48 - .../client/bilibili/protobuf/dm_v2_20.java | 565 - .../bilibili/protobuf/dm_v2_20OrBuilder.java | 45 - .../bilibili/util/BilibiliCodecUtil.java | 259 - .../src/main/resources/proto/dm_v2.proto | 14 - .../src/main/resources/proto/dm_v2_20.proto | 12 - .../client/bilibili/api/BilibiliApisTest.java | 16 - .../client/BilibiliLiveChatClientTest.java | 176 - .../live-chat-client-douyin/pom.xml | 42 - .../chat/client/douyin/ClientModeExample.java | 81 - .../chat/client/douyin/api/DouyinApis.java | 108 - .../douyin/client/DouyinLiveChatClient.java | 174 - .../config/DouyinLiveChatClientConfig.java | 93 - .../client/douyin/constant/DouyinCmdEnum.java | 73 - .../listener/IDouyinConnectionListener.java | 35 - .../douyin/listener/IDouyinMsgListener.java | 44 - .../client/douyin/msg/DouyinDanmuMsg.java | 77 - .../client/douyin/msg/DouyinEnterRoomMsg.java | 72 - .../chat/client/douyin/msg/DouyinGiftMsg.java | 107 - .../chat/client/douyin/msg/DouyinLikeMsg.java | 77 - .../client/douyin/msg/base/IDouyinCmdMsg.java | 35 - .../client/douyin/msg/base/IDouyinMsg.java | 34 - .../handler/DouyinBinaryFrameHandler.java | 156 - .../handler/DouyinConnectionHandler.java | 117 - .../douyin/protobuf/Douyin_cmd_msgProto.java | 78 - .../Douyin_webcast_chat_message_msgProto.java | 93 - .../Douyin_webcast_gift_message_msgProto.java | 112 - ...ouyin_webcast_member_message_msgProto.java | 111 - .../protobuf/Douyin_websocket_frameProto.java | 93 - .../douyin/protobuf/douyin_cmd_msg.java | 1122 - .../protobuf/douyin_cmd_msgOrBuilder.java | 93 - .../douyin_webcast_chat_message_msg.java | 2384 -- ...yin_webcast_chat_message_msgOrBuilder.java | 220 - .../douyin_webcast_gift_message_msg.java | 3963 -- ...yin_webcast_gift_message_msgOrBuilder.java | 354 - .../douyin_webcast_like_message_msg.java | 1563 - ...yin_webcast_like_message_msgOrBuilder.java | 140 - .../douyin_webcast_like_message_msgProto.java | 87 - .../douyin_webcast_member_message_msg.java | 2828 -- ...n_webcast_member_message_msgOrBuilder.java | 265 - .../protobuf/douyin_websocket_frame.java | 1315 - .../douyin_websocket_frameOrBuilder.java | 121 - .../protobuf/douyin_websocket_frame_msg.java | 2007 - .../douyin_websocket_frame_msgOrBuilder.java | 175 - .../douyin_websocket_frame_msgProto.java | 100 - .../douyin/protobuf/dto/CommonOuterClass.java | 2558 -- .../dto/DoubleLikeDetailOuterClass.java | 767 - .../dto/GiftIMPriorityOuterClass.java | 816 - .../protobuf/dto/GiftStructOuterClass.java | 6440 --- .../douyin/protobuf/dto/ImageOuterClass.java | 3722 -- .../protobuf/dto/PatternRefOuterClass.java | 773 - .../dto/PublicAreaCommonOuterClass.java | 823 - .../dto/TextEffectDetailOuterClass.java | 1968 - .../protobuf/dto/TextEffectOuterClass.java | 872 - .../protobuf/dto/TextFormatOuterClass.java | 1136 - .../douyin/protobuf/dto/TextOuterClass.java | 1171 - .../protobuf/dto/TextPieceGiftOuterClass.java | 749 - .../dto/TextPieceHeartOuterClass.java | 625 - .../dto/TextPieceImageOuterClass.java | 750 - .../protobuf/dto/TextPieceOuterClass.java | 1895 - .../dto/TextPiecePatternRefOuterClass.java | 773 - .../protobuf/dto/TextPieceUserOuterClass.java | 748 - .../douyin/protobuf/dto/UserOuterClass.java | 33138 ---------------- .../src/main/resources/proto/Common.proto | 30 - .../resources/proto/DoubleLikeDetail.proto | 10 - .../main/resources/proto/GiftIMPriority.proto | 9 - .../src/main/resources/proto/GiftStruct.proto | 66 - .../src/main/resources/proto/Image.proto | 29 - .../src/main/resources/proto/PatternRef.proto | 8 - .../resources/proto/PublicAreaCommon.proto | 10 - .../src/main/resources/proto/Text.proto | 12 - .../src/main/resources/proto/TextEffect.proto | 9 - .../resources/proto/TextEffectDetail.proto | 23 - .../src/main/resources/proto/TextFormat.proto | 14 - .../src/main/resources/proto/TextPiece.proto | 20 - .../main/resources/proto/TextPieceGift.proto | 9 - .../main/resources/proto/TextPieceHeart.proto | 7 - .../main/resources/proto/TextPieceImage.proto | 9 - .../resources/proto/TextPiecePatternRef.proto | 8 - .../main/resources/proto/TextPieceUser.proto | 9 - .../src/main/resources/proto/User.proto | 272 - .../main/resources/proto/douyin_cmd_msg.proto | 19 - .../douyin_webcast_chat_message_msg.proto | 34 - .../douyin_webcast_gift_message_msg.proto | 52 - .../douyin_webcast_like_message_msg.proto | 26 - .../douyin_webcast_member_message_msg.proto | 37 - .../proto/douyin_websocket_frame.proto | 19 - .../proto/douyin_websocket_frame_msg.proto | 25 - .../client/douyin/api/DouyinApisTest.java | 15 - .../client/DouyinLiveChatClientTest.java | 93 - .../live-chat-client-douyu/README.md | 52 - .../live-chat-client-douyu/pom.xml | 61 - .../live/chat/client/douyu/api/DouyuApis.java | 196 - .../client/DouyuDanmuLiveChatClient.java | 117 - .../douyu/client/DouyuLiveChatClient.java | 268 - .../douyu/client/DouyuWsLiveChatClient.java | 116 - .../client/base/BaseDouyuLiveChatClient.java | 139 - .../config/DouyuLiveChatClientConfig.java | 69 - .../douyu/constant/DouyuClientModeEnum.java | 40 - .../client/douyu/constant/DouyuCmdEnum.java | 199 - .../listener/IDouyuConnectionListener.java | 38 - .../douyu/listener/IDouyuMsgListener.java | 45 - .../chat/client/douyu/msg/ChatmessageMsg.java | 86 - .../chat/client/douyu/msg/ChatmsgMsg.java | 125 - .../live/chat/client/douyu/msg/DgbMsg.java | 233 - .../chat/client/douyu/msg/DouyuCmdMsg.java | 51 - .../chat/client/douyu/msg/H5ckreqMsg.java | 51 - .../live/chat/client/douyu/msg/H5csMsg.java | 50 - .../chat/client/douyu/msg/H5gkcreqMsg.java | 51 - .../chat/client/douyu/msg/HeartbeatMsg.java | 45 - .../client/douyu/msg/HeartbeatReplyMsg.java | 45 - .../chat/client/douyu/msg/JoingroupMsg.java | 52 - .../chat/client/douyu/msg/KeepliveMsg.java | 62 - .../chat/client/douyu/msg/LoginreqMsg.java | 107 - .../chat/client/douyu/msg/LoginresMsg.java | 77 - .../live/chat/client/douyu/msg/MapkbMsg.java | 53 - .../douyu/msg/MsgrepeaterproxylistMsg.java | 96 - .../live/chat/client/douyu/msg/SubMsg.java | 51 - .../live/chat/client/douyu/msg/UenterMsg.java | 78 - .../douyu/msg/base/BaseDouyuCmdMsg.java | 62 - .../chat/client/douyu/msg/base/IDouyuMsg.java | 36 - .../client/douyu/msg/dto/GiftListInfo.java | 136 - .../client/douyu/msg/dto/GiftPropInfo.java | 99 - .../client/douyu/msg/dto/GiftPropSingle.java | 97 - .../douyu/netty/frame/AuthWebSocketFrame.java | 40 - .../netty/frame/HeartbeatWebSocketFrame.java | 40 - .../netty/frame/KeepliveWebSocketFrame.java | 40 - .../frame/base/BaseDouyuWebSocketFrame.java | 39 - .../factory/DouyuWebSocketFrameFactory.java | 181 - .../handler/DouyuBinaryFrameHandler.java | 98 - .../netty/handler/DouyuConnectionHandler.java | 173 - .../client/douyu/util/DouyuCodecUtil.java | 329 - .../chat/client/douyu/api/DouyuApisTest.java | 30 - .../chat/client/douyu/client/ChatChoice.java | 31 - .../douyu/client/ChatCompletionResponse.java | 24 - .../douyu/client/DouyuLiveChatClientTest.java | 410 - .../chat/client/douyu/client/Message.java | 104 - .../live/chat/client/douyu/client/Usage.java | 24 - .../client/douyu/util/DouyuCodecUtilTest.java | 102 - .../live-chat-client-huya/pom.xml | 66 - .../live/chat/client/huya/api/HuyaApis.java | 83 - .../huya/client/HuyaLiveChatClient.java | 148 - .../huya/config/HuyaLiveChatClientConfig.java | 84 - .../constant/HuyaClientTemplateTypeEnum.java | 58 - .../client/huya/constant/HuyaCmdEnum.java | 206 - .../constant/HuyaDecorationAppTypeEnum.java | 88 - .../constant/HuyaDecorationViewTypeEnum.java | 54 - .../client/huya/constant/HuyaGenderEnum.java | 51 - .../client/huya/constant/HuyaLiveSource.java | 54 - .../huya/constant/HuyaOperationEnum.java | 97 - .../huya/constant/HuyaStreamLineTypeEnum.java | 62 - .../huya/constant/HuyaWupFunctionEnum.java | 59 - .../listener/IHuyaConnectionListener.java | 38 - .../huya/listener/IHuyaMsgListener.java | 45 - .../live/chat/client/huya/msg/BaseWup.java | 138 - .../chat/client/huya/msg/ConnectParaInfo.java | 105 - .../chat/client/huya/msg/LiveLaunchRsp.java | 78 - .../client/huya/msg/MessageNoticeMsg.java | 197 - .../chat/client/huya/msg/PushMessage.java | 84 - .../chat/client/huya/msg/PushMessage_V2.java | 73 - .../client/huya/msg/RegisterGroupRsp.java | 72 - .../chat/client/huya/msg/RegisterRsp.java | 75 - .../msg/SendItemSubBroadcastPacketMsg.java | 283 - .../live/chat/client/huya/msg/UserInfo.java | 88 - .../chat/client/huya/msg/VerifyCookieRsp.java | 66 - .../client/huya/msg/VipEnterBannerMsg.java | 144 - .../client/huya/msg/WebSocketCommand.java | 84 - .../live/chat/client/huya/msg/WupRsp.java | 45 - .../client/huya/msg/base/BaseHuyaCmdMsg.java | 79 - .../client/huya/msg/base/BaseHuyaMsg.java | 51 - .../client/huya/msg/base/IHuyaCmdMsg.java | 35 - .../chat/client/huya/msg/base/IHuyaMsg.java | 38 - .../client/huya/msg/dto/ACEnterBanner.java | 70 - .../chat/client/huya/msg/dto/BadgeInfo.java | 119 - .../msg/dto/BulletBorderGroundFormat.java | 85 - .../client/huya/msg/dto/BulletFormat.java | 89 - .../chat/client/huya/msg/dto/ChannelPair.java | 67 - .../client/huya/msg/dto/CommEnterBanner.java | 67 - .../client/huya/msg/dto/ContentFormat.java | 76 - .../msg/dto/CustomBadgeDynamicExternal.java | 64 - .../client/huya/msg/dto/DIYBigGiftEffect.java | 70 - .../client/huya/msg/dto/DecorationInfo.java | 67 - .../huya/msg/dto/DecorationInfoRsp.java | 88 - .../chat/client/huya/msg/dto/DeviceInfo.java | 73 - .../chat/client/huya/msg/dto/DisplayInfo.java | 91 - .../chat/client/huya/msg/dto/FaithInfo.java | 67 - .../client/huya/msg/dto/FaithPresenter.java | 64 - .../chat/client/huya/msg/dto/GuardInfo.java | 94 - .../client/huya/msg/dto/ItemEffectInfo.java | 70 - .../chat/client/huya/msg/dto/LiveAppUAEx.java | 73 - .../client/huya/msg/dto/LiveProxyValue.java | 67 - .../client/huya/msg/dto/LiveUserbase.java | 67 - .../huya/msg/dto/MessageContentExpand.java | 67 - .../client/huya/msg/dto/MessageTagInfo.java | 64 - .../chat/client/huya/msg/dto/MsgItem.java | 67 - .../chat/client/huya/msg/dto/MsgStatInfo.java | 70 - .../chat/client/huya/msg/dto/NobleInfo.java | 94 - .../client/huya/msg/dto/NobleLevelAttr.java | 79 - .../client/huya/msg/dto/NobleLevelInfo.java | 64 - .../client/huya/msg/dto/NoblePetAttr.java | 77 - .../huya/msg/dto/PresenterChannelInfo.java | 82 - .../chat/client/huya/msg/dto/PropView.java | 70 - .../client/huya/msg/dto/PropsIdentity.java | 125 - .../chat/client/huya/msg/dto/PropsItem.java | 181 - .../huya/msg/dto/SendMessageFormat.java | 67 - .../chat/client/huya/msg/dto/SenderInfo.java | 85 - .../chat/client/huya/msg/dto/SpecialInfo.java | 91 - .../client/huya/msg/dto/SuperFansInfo.java | 76 - .../chat/client/huya/msg/dto/UidNickName.java | 64 - .../live/chat/client/huya/msg/dto/UserId.java | 80 - .../client/huya/msg/dto/UserIdentityInfo.java | 67 - .../client/huya/msg/dto/UserRidePetInfo.java | 94 - .../client/huya/msg/dto/WeekRankInfo.java | 64 - .../client/huya/msg/req/GetLivingInfoReq.java | 86 - .../client/huya/msg/req/GetPropsListReq.java | 83 - .../client/huya/msg/req/GetPropsListRsp.java | 79 - .../chat/client/huya/msg/req/LaunchReq.java | 74 - .../client/huya/msg/req/LiveLaunchReq.java | 69 - .../client/huya/msg/req/RegisterGroupReq.java | 67 - .../client/huya/msg/req/SendMessageReq.java | 99 - .../huya/msg/req/UpdateUserInfoReq.java | 87 - .../client/huya/msg/req/UserHeartBeatReq.java | 90 - .../client/huya/msg/req/VerifyCookieReq.java | 76 - .../live/chat/client/huya/msg/req/WupReq.java | 42 - .../factory/HuyaWebSocketFrameFactory.java | 271 - .../netty/handler/HuyaBinaryFrameHandler.java | 199 - .../netty/handler/HuyaConnectionHandler.java | 152 - .../chat/client/huya/util/HuyaCodecUtil.java | 167 - .../chat/client/huya/api/HuyaApisTest.java | 20 - .../huya/client/HuyaLiveChatClientTest.java | 150 - .../client/huya/util/HuyaCodecUtilTest.java | 99 - .../live-chat-client-kuaishou/pom.xml | 42 - .../client/kuaishou/ClientModeExample.java | 99 - .../client/kuaishou/api/KuaishouApis.java | 235 - .../client/KuaishouLiveChatClient.java | 201 - .../config/KuaishouLiveChatClientConfig.java | 47 - .../listener/IKuaishouConnectionListener.java | 35 - .../listener/IKuaishouMsgListener.java | 45 - .../client/kuaishou/msg/KuaishouDanmuMsg.java | 100 - .../client/kuaishou/msg/KuaishouGiftMsg.java | 108 - .../client/kuaishou/msg/KuaishouLikeMsg.java | 61 - .../kuaishou/msg/base/IKuaishouCmdMsg.java | 35 - .../kuaishou/msg/base/IKuaishouMsg.java | 34 - .../handler/KuaishouBinaryFrameHandler.java | 127 - .../handler/KuaishouConnectionHandler.java | 158 - .../protobuf/AuditAudienceMaskOuterClass.java | 1155 - .../kuaishou/protobuf/CSErrorOuterClass.java | 548 - .../protobuf/CSHeartbeatOuterClass.java | 549 - .../kuaishou/protobuf/CSPingOuterClass.java | 1029 - .../protobuf/CSWebEnterRoomOuterClass.java | 1363 - .../protobuf/CSWebErrorOuterClass.java | 697 - .../protobuf/CSWebHeartbeatOuterClass.java | 550 - .../protobuf/CSWebUserExitOuterClass.java | 549 - .../protobuf/CSWebUserPauseOuterClass.java | 658 - .../kuaishou/protobuf/ClientIdOuterClass.java | 216 - .../protobuf/ConfigSwitchItemOuterClass.java | 658 - .../protobuf/ConfigSwitchTypeOuterClass.java | 180 - .../protobuf/GzoneNameplateOuterClass.java | 1079 - .../protobuf/LiveAudienceStateOuterClass.java | 1541 - .../protobuf/LiveCdnNodeViewOuterClass.java | 846 - .../LiveFansGroupStateOuterClass.java | 622 - .../protobuf/PSHostInfoOuterClass.java | 697 - .../protobuf/PayloadTypeOuterClass.java | 708 - .../kuaishou/protobuf/PicUrlOuterClass.java | 1069 - .../kuaishou/protobuf/SCEchoOuterClass.java | 624 - .../kuaishou/protobuf/SCErrorOuterClass.java | 769 - .../protobuf/SCHeartbeatAckOuterClass.java | 623 - .../kuaishou/protobuf/SCInfoOuterClass.java | 696 - ...ngMaskStatusChangedAudienceOuterClass.java | 750 - .../protobuf/SCPingAckOuterClass.java | 624 - .../protobuf/SCWebAuthorPauseOuterClass.java | 658 - .../protobuf/SCWebAuthorResumeOuterClass.java | 550 - .../protobuf/SCWebBetChangedOuterClass.java | 550 - .../protobuf/SCWebBetClosedOuterClass.java | 550 - .../SCWebCurrentRedPackFeedOuterClass.java | 858 - .../protobuf/SCWebEnterRoomAckOuterClass.java | 697 - .../protobuf/SCWebErrorOuterClass.java | 769 - .../protobuf/SCWebFeedPushOuterClass.java | 3487 -- .../protobuf/SCWebGuessClosedOuterClass.java | 772 - .../protobuf/SCWebGuessOpenedOuterClass.java | 845 - .../protobuf/SCWebHeartbeatAckOuterClass.java | 623 - ...veSpecialAccountConfigStateOuterClass.java | 932 - .../SCWebLiveWatchingUsersOuterClass.java | 1081 - .../protobuf/SCWebPipEndedOuterClass.java | 549 - .../protobuf/SCWebPipStartedOuterClass.java | 549 - .../SCWebRefreshWalletOuterClass.java | 469 - .../protobuf/SCWebRideChangedOuterClass.java | 697 - .../SCWebSuspectedViolationOuterClass.java | 550 - .../protobuf/SimpleUserInfoOuterClass.java | 921 - .../protobuf/SocketMessageOuterClass.java | 910 - .../kuaishou/protobuf/UserInfoOuterClass.java | 2121 - .../WebComboCommentFeedOuterClass.java | 846 - .../protobuf/WebCommentFeedOuterClass.java | 1651 - .../WebCommentFeedShowTypeOuterClass.java | 180 - .../protobuf/WebGiftFeedOuterClass.java | 2305 -- .../protobuf/WebLikeFeedOuterClass.java | 1046 - .../WebLiveAssistantTypeOuterClass.java | 180 - .../protobuf/WebPauseTypeOuterClass.java | 179 - .../WebRedPackCoverTypeOuterClass.java | 180 - .../protobuf/WebRedPackInfoOuterClass.java | 1522 - .../protobuf/WebShareFeedOuterClass.java | 1301 - .../WebSystemNoticeFeedOuterClass.java | 1427 - .../protobuf/WebUserPauseTypeOuterClass.java | 170 - .../WebWatchingUserInfoOuterClass.java | 1080 - .../resources/proto/AuditAudienceMask.proto | 11 - .../src/main/resources/proto/CSError.proto | 9 - .../main/resources/proto/CSHeartbeat.proto | 9 - .../src/main/resources/proto/CSPing.proto | 12 - .../main/resources/proto/CSWebEnterRoom.proto | 15 - .../src/main/resources/proto/CSWebError.proto | 10 - .../main/resources/proto/CSWebHeartbeat.proto | 9 - .../main/resources/proto/CSWebUserExit.proto | 9 - .../main/resources/proto/CSWebUserPause.proto | 10 - .../src/main/resources/proto/ClientId.proto | 14 - .../resources/proto/ConfigSwitchItem.proto | 10 - .../resources/proto/ConfigSwitchType.proto | 10 - .../main/resources/proto/GzoneNameplate.proto | 11 - .../resources/proto/LiveAudienceState.proto | 22 - .../resources/proto/LiveCdnNodeView.proto | 11 - .../resources/proto/LiveFansGroupState.proto | 10 - .../src/main/resources/proto/PSHostInfo.proto | 10 - .../main/resources/proto/PayloadType.proto | 65 - .../src/main/resources/proto/PicUrl.proto | 12 - .../src/main/resources/proto/SCEcho.proto | 9 - .../src/main/resources/proto/SCError.proto | 11 - .../main/resources/proto/SCHeartbeatAck.proto | 10 - .../src/main/resources/proto/SCInfo.proto | 10 - ...LiveWarningMaskStatusChangedAudience.proto | 10 - .../src/main/resources/proto/SCPingAck.proto | 9 - .../resources/proto/SCWebAuthorPause.proto | 10 - .../resources/proto/SCWebAuthorResume.proto | 9 - .../resources/proto/SCWebBetChanged.proto | 9 - .../main/resources/proto/SCWebBetClosed.proto | 9 - .../proto/SCWebCurrentRedPackFeed.proto | 9 - .../resources/proto/SCWebEnterRoomAck.proto | 11 - .../src/main/resources/proto/SCWebError.proto | 11 - .../main/resources/proto/SCWebFeedPush.proto | 25 - .../resources/proto/SCWebGuessClosed.proto | 11 - .../resources/proto/SCWebGuessOpened.proto | 12 - .../resources/proto/SCWebHeartbeatAck.proto | 10 - .../SCWebLiveSpecialAccountConfigState.proto | 10 - .../proto/SCWebLiveWatchingUsers.proto | 11 - .../main/resources/proto/SCWebPipEnded.proto | 9 - .../resources/proto/SCWebPipStarted.proto | 9 - .../resources/proto/SCWebRefreshWallet.proto | 8 - .../resources/proto/SCWebRideChanged.proto | 10 - .../proto/SCWebSuspectedViolation.proto | 9 - .../main/resources/proto/SimpleUserInfo.proto | 11 - .../main/resources/proto/SocketMessage.proto | 17 - .../src/main/resources/proto/UserInfo.proto | 17 - .../resources/proto/WebComboCommentFeed.proto | 11 - .../main/resources/proto/WebCommentFeed.proto | 18 - .../proto/WebCommentFeedShowType.proto | 10 - .../main/resources/proto/WebGiftFeed.proto | 36 - .../main/resources/proto/WebLikeFeed.proto | 12 - .../proto/WebLiveAssistantType.proto | 10 - .../main/resources/proto/WebPauseType.proto | 10 - .../resources/proto/WebRedPackCoverType.proto | 10 - .../main/resources/proto/WebRedPackInfo.proto | 19 - .../main/resources/proto/WebShareFeed.proto | 16 - .../resources/proto/WebSystemNoticeFeed.proto | 21 - .../resources/proto/WebUserPauseType.proto | 9 - .../resources/proto/WebWatchingUserInfo.proto | 14 - .../client/kuaishou/api/KuaishouApisTest.java | 40 - .../client/KuaishouLiveChatClientTest.java | 206 - .../live-chat-clients/pom.xml | 47 - ruoyi-common/ruoyi-common-live/pom.xml | 177 - .../ruoyi/common/mail/config/MailConfig.java | 7 +- .../properties/MailProperties.java | 2 +- ruoyi-common/ruoyi-common-pay/pom.xml | 48 - .../org/ruoyi/common/config/PayConfig.java | 53 - .../java/org/ruoyi/common/config/PayInit.java | 51 - .../common/config/WxPayConfiguration.java | 47 - .../common/listener/ConfigChangeListener.java | 37 - .../ruoyi/common/response/PayResponse.java | 70 - .../org/ruoyi/common/service/PayService.java | 23 - .../common/service/impl/PayServiceImpl.java | 53 - .../java/org/ruoyi/common/utils/MD5Util.java | 106 - .../PlusWebInvokeTimeInterceptor.java | 26 - ruoyi-common/ruoyi-common-wechat/pom.xml | 68 - .../wechat/itchat4j/api/MessageTools.java | 546 - .../wechat/itchat4j/api/WechatTools.java | 352 - .../common/wechat/itchat4j/beans/AppInfo.java | 37 - .../common/wechat/itchat4j/beans/BaseMsg.java | 330 - .../wechat/itchat4j/beans/BaseResponse.java | 28 - .../common/wechat/itchat4j/beans/Member.java | 306 - .../wechat/itchat4j/beans/RecommendInfo.java | 146 - .../common/wechat/itchat4j/beans/SendMsg.java | 59 - .../common/wechat/itchat4j/beans/SyncKey.java | 52 - .../common/wechat/itchat4j/beans/User.java | 54 - .../wechat/itchat4j/beans/WebWxInit.java | 43 - .../itchat4j/client/HttpClientManage.java | 34 - .../itchat4j/client/SingleHttpClient.java | 187 - .../itchat4j/controller/LoginController.java | 148 - .../common/wechat/itchat4j/core/Core.java | 371 - .../wechat/itchat4j/core/CoreManage.java | 323 - .../wechat/itchat4j/core/MsgCenter.java | 273 - .../wechat/itchat4j/face/IMsgHandlerFace.java | 93 - .../itchat4j/service/ILoginService.java | 85 - .../service/impl/LoginServiceImpl.java | 894 - .../common/wechat/itchat4j/utils/Config.java | 78 - .../itchat4j/utils/ConstantConfigEnum.java | 34 - .../wechat/itchat4j/utils/LogInterface.java | 13 - .../wechat/itchat4j/utils/MoreConfig.java | 12 - .../wechat/itchat4j/utils/SleepUtils.java | 20 - .../itchat4j/utils/enums/MsgCodeEnum.java | 64 - .../itchat4j/utils/enums/MsgTypeEnum.java | 41 - .../itchat4j/utils/enums/OsNameEnum.java | 13 - .../itchat4j/utils/enums/ResultEnum.java | 25 - .../itchat4j/utils/enums/RetCodeEnum.java | 49 - .../itchat4j/utils/enums/SelectorEnum.java | 48 - .../itchat4j/utils/enums/SendMsgType.java | 65 - .../utils/enums/StorageLoginInfoEnum.java | 57 - .../wechat/itchat4j/utils/enums/URLEnum.java | 49 - .../utils/enums/VerifyFriendEnum.java | 28 - .../utils/enums/parameters/BaseParaEnum.java | 36 - .../utils/enums/parameters/LoginParaEnum.java | 31 - .../parameters/StatusNotifyParaEnum.java | 31 - .../utils/enums/parameters/UUIDParaEnum.java | 30 - .../itchat4j/utils/tools/CommonTools.java | 301 - .../itchat4j/utils/tools/DownloadTools.java | 77 - .../wechat/web/annotation/UnCheckLogin.java | 11 - .../common/wechat/web/base/BaseError.java | 56 - .../common/wechat/web/base/BaseException.java | 40 - .../common/wechat/web/base/BaseResponse.java | 85 - .../common/wechat/web/cache/UserSession.java | 30 - .../common/wechat/web/common/MyConfig.java | 153 - .../common/wechat/web/common/MyRoute.java | 30 - .../common/wechat/web/common/OutRoute.java | 21 - .../wechat/web/constant/ConfigKeys.java | 21 - .../wechat/web/constant/UploadConstant.java | 21 - .../web/controller/ExtendController.java | 125 - .../web/controller/IndexController.java | 99 - .../web/controller/KeyWordController.java | 191 - .../web/controller/RelateController.java | 179 - .../web/controller/RobotController.java | 223 - .../web/controller/RobotWorkController.java | 179 - .../wechat/web/controller/ToolController.java | 14 - .../web/controller/UploadController.java | 47 - .../web/controller/_BaseController.java | 199 - .../wechat/web/enums/KeyMsgValueType.java | 45 - .../web/interceptor/ExceptionInterceptor.java | 52 - .../web/interceptor/VisitLogInterceptor.java | 79 - .../interceptor/VisitLogInterceptor4down.java | 26 - .../common/wechat/web/model/WxRobConfig.java | 21 - .../common/wechat/web/model/WxRobKeyword.java | 11 - .../wechat/web/model/WxRobRelation.java | 11 - .../web/model/_JFinalDemoGenerator.java | 72 - .../common/wechat/web/model/_MappingKit.java | 24 - .../web/model/base/BaseWxRobConfig.java | 111 - .../web/model/base/BaseWxRobKeyword.java | 93 - .../web/model/base/BaseWxRobRelation.java | 84 - .../common/wechat/web/utils/Base64Util.java | 30 - .../ruoyi/common/wechat/web/utils/IpUtil.java | 35 - .../common/wechat/web/utils/LRUCache.java | 26 - .../common/wechat/web/utils/MD5Util.java | 68 - .../wechat/web/utils/UUIDShortUtil.java | 33 - .../src/main/resources/appConfig.properties | 7 - .../src/main/resources/passport.properties | 1 - .../src/main/resources/undertow.txt | 51 - ruoyi-modules-api/pom.xml | 13 +- ruoyi-modules-api/ruoyi-chat-api/pom.xml | 6 +- .../org/ruoyi/domain/bo/ChatMessageBo.java | 9 +- .../org/ruoyi/mapper/ChatConfigMapper.java | 16 - .../org/ruoyi/service/IChatConfigService.java | 2 - .../service/impl/ChatConfigServiceImpl.java | 4 - .../resources/mapper/ChatConfigMapper.xml | 7 - ruoyi-modules-api/ruoyi-device-api/pom.xml | 21 - ruoyi-modules-api/ruoyi-knowledge-api/pom.xml | 3 +- ruoyi-modules-api/ruoyi-system-api/pom.xml | 3 +- .../org/ruoyi/system}/domain/ChatConfig.java | 7 +- .../ruoyi/system}/domain/bo/ChatConfigBo.java | 13 +- .../ruoyi/system}/domain/vo/ChatConfigVo.java | 7 +- .../system/domain/vo/SysUserModelVo.java | 45 - .../system/mapper/ChatAppStoreMapper.java | 13 - .../ruoyi/system/mapper/ChatConfigMapper.java | 11 +- .../ruoyi/system/mapper/ChatGptsMapper.java | 13 - .../system/mapper/ChatMessageMapper.java | 14 - .../ruoyi/system/mapper/ChatPluginMapper.java | 13 - .../ruoyi/system/mapper/ChatTokenMapper.java | 14 - .../system/mapper/ChatVisitorUsageMapper.java | 13 - .../system/mapper/ChatVoucherMapper.java | 13 - .../org/ruoyi/system/mapper/CoverMapper.java | 14 - .../system/mapper/CoverPromptAudioMapper.java | 22 - .../system/mapper/PaymentOrdersMapper.java | 13 - .../ruoyi/system/mapper/SysModelMapper.java | 13 - .../system/mapper/SysPackagePlanMapper.java | 13 - .../system/mapper/SysUserGroupMapper.java | 13 - .../system/mapper/SysUserModelMapper.java | 14 - .../system/mapper/WxRobConfigMapper.java | 13 - .../system/mapper/WxRobKeywordMapper.java | 13 - .../system/mapper/WxRobRelationMapper.java | 13 - .../service/impl/ChatConfigServiceImpl.java | 51 + .../service/impl/SysUserGroupServiceImpl.java | 106 - .../java/org/ruoyi/system/util/AesUtils.java | 62 - .../ruoyi/system/util/AudioOkHttpUtil.java | 67 - .../system/util/DesensitizationUtil.java | 19 - .../java/org/ruoyi/system/util/HttpUtils.java | 634 - .../java/org/ruoyi/system/util/KeyUtils.java | 24 - .../system/util/OrderNumberGenerator.java | 24 - .../java/org/ruoyi/system/util/WddPptApi.java | 438 - .../ruoyi/system/util/WeChatScanHttpUtil.java | 59 - .../org/ruoyi/system/util/WeixinApiUtil.java | 81 - .../org/ruoyi/system/util/WeixinMsgUtil.java | 66 - .../system/util/WeixinQrCodeCacheUtil.java | 34 - .../java/org/ruoyi/system/util/XmlUtil.java | 28 - .../src/main/resources/mapper/CoverMapper.xml | 7 - .../mapper/CoverPromptAudioMapper.xml | 17 - .../resources/mapper/PaymentOrdersMapper.xml | 7 - .../resources/mapper/SysLogininforMapper.xml | 7 - .../main/resources/mapper/SysModelMapper.xml | 7 - .../resources/mapper/SysPackagePlanMapper.xml | 7 - .../resources/mapper/WxRobConfigMapper.xml | 7 - .../resources/mapper/WxRobKeywordMapper.xml | 7 - .../resources/mapper/WxRobRelationMapper.xml | 7 - ruoyi-modules-api/ruoyi-weixin-api/pom.xml | 21 - ruoyi-modules/pom.xml | 3 +- ruoyi-modules/ruoyi-chat/pom.xml | 38 +- .../org/ruoyi}/chat/config/ChatConfig.java | 3 +- .../org/ruoyi/chat/config/OkHttpConfig.java | 43 + .../ruoyi/chat/controller/ChatController.java | 5 +- .../chat/controller/CoverController.java | 58 - .../ruoyi/chat/controller/FaceController.java | 1 + .../ruoyi/chat/controller/LumaController.java | 6 +- .../ruoyi/chat/controller/PptController.java | 79 - .../chat/controller/SubmitController.java | 1 + .../ruoyi/chat/controller/SunoController.java | 8 +- .../chat/controller/VoiceController.java | 51 - .../ruoyi/chat/domain/bo/GenerateLuma.java | 22 + .../ruoyi/chat/domain/bo/GenerateLyric.java | 23 + .../ruoyi/chat/domain/bo/GenerateSuno.java | 64 + .../org/ruoyi/chat/enums/BillingType.java | 34 + .../org/ruoyi/chat/enums/UserGradeType.java | 34 + .../chat/listener/SSEEventSourceListener.java | 14 +- .../chat/service/chat/IChatCostService.java | 10 +- .../ruoyi/chat/service/chat/ISseService.java | 11 +- .../chat/impl/ChatCostServiceImpl.java | 166 + .../service/chat/impl/SseServiceImpl.java | 140 +- .../vectorizer/OpenAiVectorization.java | 1 - .../main/java/org/ruoyi/chat/util/IpUtil.java | 51 + ruoyi-modules/ruoyi-demo/pom.xml | 16 - ruoyi-modules/ruoyi-system/pom.xml | 55 +- .../system/config/WxMaConfiguration.java | 133 + .../controller/system/AuthController.java | 16 +- .../controller/system/CaptchaController.java | 3 +- .../system/properties/WxMaProperties.java | 52 + .../runner/SystemApplicationRunner.java | 0 .../ruoyi/system/service/SysLoginService.java | 4 +- .../system/service/SysRegisterService.java | 9 +- script/docker/database.yml | 61 - script/docker/docker-compose.yml | 64 - script/docker/nginx/conf/nginx.conf | 111 - script/docker/redis/conf/redis.conf | 28 - script/docker/redis/data/README.md | 1 - script/sql/update/updatdata20250402.sql | 2 +- script/sql/update/updatdata20250407-2.sql | 14 - script/sql/update/updatdata20250407.sql | 8 +- 653 files changed, 1000 insertions(+), 165766 deletions(-) delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV2.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV3.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/PluginTest.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherPlugin.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherReq.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherResp.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WebSearchToolsTest.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/ChatRequest.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/Dall3Request.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/LocalModelsofitClient.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/SearchService.java delete mode 100644 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdPlugin.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java delete mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-live/pom.xml rename ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/{config => }/properties/MailProperties.java (95%) delete mode 100644 ruoyi-common/ruoyi-common-pay/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java delete mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/pom.xml delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/IndexController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/KeyWordController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties delete mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt delete mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-device-api/pom.xml rename ruoyi-modules-api/{ruoyi-chat-api/src/main/java/org/ruoyi => ruoyi-system-api/src/main/java/org/ruoyi/system}/domain/ChatConfig.java (81%) rename ruoyi-modules-api/{ruoyi-chat-api/src/main/java/org/ruoyi => ruoyi-system-api/src/main/java/org/ruoyi/system}/domain/bo/ChatConfigBo.java (92%) rename ruoyi-modules-api/{ruoyi-chat-api/src/main/java/org/ruoyi => ruoyi-system-api/src/main/java/org/ruoyi/system}/domain/vo/ChatConfigVo.java (97%) delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java create mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml delete mode 100644 ruoyi-modules-api/ruoyi-weixin-api/pom.xml rename {ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common => ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi}/chat/config/ChatConfig.java (96%) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/OkHttpConfig.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/CoverController.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/PptController.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateSuno.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/BillingType.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/IpUtil.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/config/WxMaConfiguration.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/properties/WxMaProperties.java rename {ruoyi-modules-api/ruoyi-system-api => ruoyi-modules/ruoyi-system}/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java (100%) rename {ruoyi-modules-api/ruoyi-system-api => ruoyi-modules/ruoyi-system}/src/main/java/org/ruoyi/system/service/SysLoginService.java (100%) rename {ruoyi-modules-api/ruoyi-system-api => ruoyi-modules/ruoyi-system}/src/main/java/org/ruoyi/system/service/SysRegisterService.java (95%) delete mode 100644 script/docker/database.yml delete mode 100644 script/docker/docker-compose.yml delete mode 100644 script/docker/nginx/conf/nginx.conf delete mode 100644 script/docker/redis/conf/redis.conf delete mode 100644 script/docker/redis/data/README.md delete mode 100644 script/sql/update/updatdata20250407-2.sql diff --git a/pom.xml b/pom.xml index 78d6758b..9aa31583 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ UTF-8 UTF-8 17 + 8.0.33 3.0.1 2.1.0 0.15.0 @@ -60,6 +61,7 @@ 4.5.0 4.6.0 4.6.0 + 4.6.0 @@ -96,6 +98,12 @@ + + mysql + mysql-connector-java + ${mysql.version} + + org.springframework.boot @@ -315,6 +323,12 @@ ${revision} + + org.ruoyi + ruoyi-chat-api + ${revision} + + org.ruoyi ruoyi-system-api diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index f4b1eb80..bec0540d 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -2,13 +2,20 @@ + 4.0.0 ruoyi-ai org.ruoyi ${revision} ../pom.xml - 4.0.0 + + ruoyi-common + pom + + + common 通用模块 + ruoyi-common-bom @@ -32,16 +39,6 @@ ruoyi-common-encrypt ruoyi-common-tenant ruoyi-common-chat - ruoyi-common-pay - ruoyi-common-wechat - ruoyi-common-live - ruoyi-common - pom - - - common 通用模块 - - diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index a7d9e117..bd1847fd 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -159,25 +159,12 @@ ${revision} - - - org.ruoyi - ruoyi-common-wechat - ${revision} - - org.ruoyi ruoyi-chat ${revision} - - - org.ruoyi - ruoyi-common-pay - ${revision} - diff --git a/ruoyi-common/ruoyi-common-chat/pom.xml b/ruoyi-common/ruoyi-common-chat/pom.xml index 63a5fb94..b701e53b 100644 --- a/ruoyi-common/ruoyi-common-chat/pom.xml +++ b/ruoyi-common/ruoyi-common-chat/pom.xml @@ -18,6 +18,10 @@ 2.9.0 + 1.0.0-beta.12 + release-V4-2.3.0 + 2.7.5 + 0.5.0 @@ -26,38 +30,22 @@ ruoyi-common-core + - mysql - mysql-connector-java - 8.0.33 + org.ruoyi + ruoyi-common-json + + + + + org.ruoyi + ruoyi-common-redis com.azure azure-ai-openai - 1.0.0-beta.12 - - - - io.github.ollama4j - ollama4j - 1.0.79 - - - - - org.ruoyi - ruoyi-common-json - 1.0.0 - - - - org.ruoyi - ruoyi-common-redis - - - org.ruoyi - ruoyi-common-satoken + ${azure.version} @@ -79,13 +67,7 @@ com.knuddels jtokkit - 0.5.0 - - - - cn.hutool - hutool-all - 5.8.12 + ${jtokkit.version} @@ -102,13 +84,14 @@ cn.bigmodel.openapi oapi-java-sdk - release-V4-2.3.0 + ${chatglm.version} + com.squareup.okhttp okhttp - 2.7.5 - compile + ${okhttp.version} + diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/properties/WebSocketProperties.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/properties/WebSocketProperties.java index eb36cc77..7567fc9e 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/properties/WebSocketProperties.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/properties/WebSocketProperties.java @@ -12,6 +12,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @Data public class WebSocketProperties { + /** + * 是否开启 + */ private Boolean enabled; /** diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV2.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV2.java deleted file mode 100644 index 21bb3d5b..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV2.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.ruoyi.common.chat.demo; - -import cn.hutool.json.JSONUtil; - -import lombok.Getter; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.sse.EventSource; -import okhttp3.sse.EventSourceListener; -import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; - -import java.util.Objects; -import java.util.concurrent.CountDownLatch; - -/** - * 描述: sse - * - * @author https:www.unfbx.com - * 2023-06-15 - */ -@Slf4j -public class ConsoleEventSourceListenerV2 extends EventSourceListener { - @Getter - String args = ""; - final CountDownLatch countDownLatch; - - public ConsoleEventSourceListenerV2(CountDownLatch countDownLatch) { - this.countDownLatch = countDownLatch; - } - - @Override - public void onOpen(EventSource eventSource, Response response) { - log.info("OpenAI建立sse连接..."); - } - - @Override - public void onEvent(EventSource eventSource, String id, String type, String data) { - log.info("OpenAI返回数据:{}", data); - if (data.equals("[DONE]")) { - log.info("OpenAI返回数据结束了"); - countDownLatch.countDown(); - return; - } - ChatCompletionResponse chatCompletionResponse = JSONUtil.toBean(data, ChatCompletionResponse.class); - if(Objects.nonNull(chatCompletionResponse.getChoices().get(0).getDelta().getFunctionCall())){ - args += chatCompletionResponse.getChoices().get(0).getDelta().getFunctionCall().getArguments(); - } - } - - @Override - public void onClosed(EventSource eventSource) { - log.info("OpenAI关闭sse连接..."); - } - - @SneakyThrows - @Override - public void onFailure(EventSource eventSource, Throwable t, Response response) { - if(Objects.isNull(response)){ - log.error("OpenAI sse连接异常:{}", t); - eventSource.cancel(); - return; - } - ResponseBody body = response.body(); - if (Objects.nonNull(body)) { - log.error("OpenAI sse连接异常data:{},异常:{}", body.string(), t); - } else { - log.error("OpenAI sse连接异常data:{},异常:{}", response, t); - } - eventSource.cancel(); - } -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV3.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV3.java deleted file mode 100644 index 22661efe..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/ConsoleEventSourceListenerV3.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.ruoyi.common.chat.demo; - -import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.json.JSONUtil; -import lombok.Getter; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import okhttp3.Response; -import okhttp3.ResponseBody; -import okhttp3.sse.EventSource; -import okhttp3.sse.EventSourceListener; -import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; -import org.ruoyi.common.chat.entity.chat.Message; -import org.ruoyi.common.chat.entity.chat.tool.ToolCallFunction; -import org.ruoyi.common.chat.entity.chat.tool.ToolCalls; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.concurrent.CountDownLatch; - -/** - * 描述: demo测试实现类,仅供思路参考 - * - * @author https:www.unfbx.com - * 2023-11-12 - */ -@Slf4j -public class ConsoleEventSourceListenerV3 extends EventSourceListener { - @Getter - List choices = new ArrayList<>(); - @Getter - ToolCalls toolCalls = new ToolCalls(); - @Getter - ToolCallFunction toolCallFunction = ToolCallFunction.builder().name("").arguments("").build(); - final CountDownLatch countDownLatch; - - public ConsoleEventSourceListenerV3(CountDownLatch countDownLatch) { - this.countDownLatch = countDownLatch; - } - - @Override - public void onOpen(EventSource eventSource, Response response) { - log.info("OpenAI建立sse连接..."); - } - - @Override - public void onEvent(EventSource eventSource, String id, String type, String data) { - log.info("OpenAI返回数据:{}", data); - if (data.equals("[DONE]")) { - log.info("OpenAI返回数据结束了"); - return; - } - ChatCompletionResponse chatCompletionResponse = JSONUtil.toBean(data, ChatCompletionResponse.class); - Message delta = chatCompletionResponse.getChoices().get(0).getDelta(); - if (CollectionUtil.isNotEmpty(delta.getToolCalls())) { - choices.addAll(delta.getToolCalls()); - } - } - - @Override - public void onClosed(EventSource eventSource) { - if(CollectionUtil.isNotEmpty(choices)){ - toolCalls.setId(choices.get(0).getId()); - toolCalls.setType(choices.get(0).getType()); - choices.forEach(e -> { - toolCallFunction.setName(e.getFunction().getName()); - toolCallFunction.setArguments(toolCallFunction.getArguments() + e.getFunction().getArguments()); - toolCalls.setFunction(toolCallFunction); - }); - } - log.info("OpenAI关闭sse连接..."); - countDownLatch.countDown(); - } - - @SneakyThrows - @Override - public void onFailure(EventSource eventSource, Throwable t, Response response) { - if(Objects.isNull(response)){ - log.error("OpenAI sse连接异常:{}", t); - eventSource.cancel(); - return; - } - ResponseBody body = response.body(); - if (Objects.nonNull(body)) { - log.error("OpenAI sse连接异常data:{},异常:{}", body.string(), t); - } else { - log.error("OpenAI sse连接异常data:{},异常:{}", response, t); - } - eventSource.cancel(); - } -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/PluginTest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/PluginTest.java deleted file mode 100644 index eeda6d4b..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/PluginTest.java +++ /dev/null @@ -1,417 +0,0 @@ -package org.ruoyi.common.chat.demo; - -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSONObject; -import lombok.Builder; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import okhttp3.OkHttpClient; -import okhttp3.logging.HttpLoggingInterceptor; -import org.junit.Before; -import org.junit.Test; -import org.ruoyi.common.chat.entity.chat.*; -import org.ruoyi.common.chat.entity.chat.tool.ToolCallFunction; -import org.ruoyi.common.chat.entity.chat.tool.ToolCalls; -import org.ruoyi.common.chat.entity.chat.tool.Tools; -import org.ruoyi.common.chat.entity.chat.tool.ToolsFunction; -import org.ruoyi.common.chat.openai.OpenAiClient; -import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.common.chat.openai.function.KeyRandomStrategy; -import org.ruoyi.common.chat.openai.interceptor.DynamicKeyOpenAiAuthInterceptor; -import org.ruoyi.common.chat.openai.interceptor.OpenAILogger; -import org.ruoyi.common.chat.openai.interceptor.OpenAiResponseInterceptor; -import org.ruoyi.common.chat.openai.plugin.PluginAbstract; -import org.ruoyi.common.chat.plugin.CmdPlugin; -import org.ruoyi.common.chat.plugin.CmdReq; -import org.ruoyi.common.chat.sse.ConsoleEventSourceListener; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - -/** - * 描述: - * - * @author ageerle@163.com - * date 2025/3/8 - */ -@Slf4j -public class PluginTest { - - private OpenAiClient openAiClient; - private OpenAiStreamClient openAiStreamClient; - - @Before - public void before() { - //可以为null -// Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890)); - HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger()); - //!!!!千万别再生产或者测试环境打开BODY级别日志!!!! - //!!!生产或者测试环境建议设置为这三种级别:NONE,BASIC,HEADERS,!!! - httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS); - OkHttpClient okHttpClient = new OkHttpClient - .Builder() -// .proxy(proxy) - .addInterceptor(httpLoggingInterceptor) - .addInterceptor(new OpenAiResponseInterceptor()) - .connectTimeout(10, TimeUnit.SECONDS) - .writeTimeout(30, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS) - .build(); - openAiClient = OpenAiClient.builder() - //支持多key传入,请求时候随机选择 - .apiKey(Arrays.asList("sk-xx")) - //自定义key的获取策略:默认KeyRandomStrategy - //.keyStrategy(new KeyRandomStrategy()) - .keyStrategy(new KeyRandomStrategy()) - .okHttpClient(okHttpClient) - //自己做了代理就传代理地址,没有可不不传,(关注公众号回复:openai ,获取免费的测试代理地址) - .apiHost("https://api.pandarobot.chat/") - .build(); - - openAiStreamClient = OpenAiStreamClient.builder() - //支持多key传入,请求时候随机选择 - .apiKey(Arrays.asList("sk-xx")) - //自定义key的获取策略:默认KeyRandomStrategy - .keyStrategy(new KeyRandomStrategy()) - .authInterceptor(new DynamicKeyOpenAiAuthInterceptor()) - .okHttpClient(okHttpClient) - //自己做了代理就传代理地址,没有可不不传,(关注公众号回复:openai ,获取免费的测试代理地址) - .apiHost("https://api.pandarobot.chat/") - .build(); - } - - - @Test - public void chatFunction() { - //模型:GPT_3_5_TURBO_16K_0613 - Message message = Message.builder().role(Message.Role.USER).content("给我输出一个长度为2的中文词语,并解释下词语对应物品的用途").build(); - //属性一 - JSONObject wordLength = new JSONObject(); - wordLength.put("type", "number"); - wordLength.put("description", "词语的长度"); - //属性二 - JSONObject language = new JSONObject(); - language.put("type", "string"); - language.put("enum", Arrays.asList("zh", "en")); - language.put("description", "语言类型,例如:zh代表中文、en代表英语"); - //参数 - JSONObject properties = new JSONObject(); - properties.put("wordLength", wordLength); - properties.put("language", language); - - Parameters parameters = Parameters.builder() - .type("object") - .properties(properties) - .required(Collections.singletonList("wordLength")).build(); - Functions functions = Functions.builder() - .name("getOneWord") - .description("获取一个指定长度和语言类型的词语") - .parameters(parameters) - .build(); - - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(Collections.singletonList(message)) - .functions(Collections.singletonList(functions)) - .functionCall("auto") - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion); - - ChatChoice chatChoice = chatCompletionResponse.getChoices().get(0); - log.info("构造的方法值:{}", chatChoice.getMessage().getFunctionCall()); - log.info("构造的方法名称:{}", chatChoice.getMessage().getFunctionCall().getName()); - log.info("构造的方法参数:{}", chatChoice.getMessage().getFunctionCall().getArguments()); - WordParam wordParam = JSONUtil.toBean(chatChoice.getMessage().getFunctionCall().getArguments(), WordParam.class); - String oneWord = getOneWord(wordParam); - - FunctionCall functionCall = FunctionCall.builder() - .arguments(chatChoice.getMessage().getFunctionCall().getArguments()) - .name("getOneWord") - .build(); - Message message2 = Message.builder().role(Message.Role.ASSISTANT).content("方法参数").functionCall(functionCall).build(); - String content - = "{ " + - "\"wordLength\": \"3\", " + - "\"language\": \"zh\", " + - "\"word\": \"" + oneWord + "\"," + - "\"用途\": [\"直接吃\", \"做沙拉\", \"售卖\"]" + - "}"; - Message message3 = Message.builder().role(Message.Role.FUNCTION).name("getOneWord").content(content).build(); - List messageList = Arrays.asList(message, message2, message3); - ChatCompletion chatCompletionV2 = ChatCompletion - .builder() - .messages(messageList) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - ChatCompletionResponse chatCompletionResponseV2 = openAiClient.chatCompletion(chatCompletionV2); - log.info("自定义的方法返回值:{}",chatCompletionResponseV2.getChoices().get(0).getMessage().getContent()); - } - - - @Test - public void plugin() { - CmdPlugin plugin = new CmdPlugin(CmdReq.class); - // 插件名称 - plugin.setName("命令行工具"); - // 方法名称 - plugin.setFunction("openCmd"); - // 方法说明 - plugin.setDescription("提供一个命令行指令,比如<记事本>,指令使用中文,以function返回结果为准"); - - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - // 参数名称 - arg.setName("cmd"); - // 参数说明 - arg.setDescription("命令行指令"); - // 参数类型 - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - - Message message2 = Message.builder().role(Message.Role.USER).content("帮我打开计算器,结合上下文判断指令是否执行成功,只用回复成功或者失败").build(); - List messages = new ArrayList<>(); - messages.add(message2); - //有四个重载方法,都可以使用 - ChatCompletionResponse response = openAiClient.chatCompletionWithPlugin(messages,"gpt-4o-mini",plugin); - log.info("自定义的方法返回值:{}", response.getChoices().get(0).getMessage().getContent()); - } - - /** - * 自定义返回数据格式 - */ - @Test - public void diyReturnDataModelChat() { - Message message = Message.builder().role(Message.Role.USER).content("随机输出10个单词,使用json输出").build(); - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(Collections.singletonList(message)) - .responseFormat(ResponseFormat.builder().type(ResponseFormat.Type.JSON_OBJECT.getName()).build()) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion); - chatCompletionResponse.getChoices().forEach(e -> System.out.println(e.getMessage())); - } - - @Test - public void streamPlugin() { - WeatherPlugin plugin = new WeatherPlugin(WeatherReq.class); - plugin.setName("知心天气"); - plugin.setFunction("getLocationWeather"); - plugin.setDescription("提供一个地址,方法将会获取该地址的天气的实时温度信息。"); - PluginAbstract.Arg arg = new PluginAbstract.Arg(); - arg.setName("location"); - arg.setDescription("地名"); - arg.setType("string"); - arg.setRequired(true); - plugin.setArgs(Collections.singletonList(arg)); - -// Message message1 = Message.builder().role(Message.Role.USER).content("秦始皇统一了哪六国。").build(); - Message message2 = Message.builder().role(Message.Role.USER).content("获取上海市的天气现在多少度,然后再给出3个推荐的户外运动。").build(); - List messages = new ArrayList<>(); -// messages.add(message1); - messages.add(message2); - //默认模型:GPT_3_5_TURBO_16K_0613 - //有四个重载方法,都可以使用 - openAiStreamClient.streamChatCompletionWithPlugin(messages, ChatCompletion.Model.GPT_4_1106_PREVIEW.getName(), new ConsoleEventSourceListener(), plugin); - CountDownLatch countDownLatch = new CountDownLatch(1); - try { - countDownLatch.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - /** - * tools使用示例 - */ - @Test - public void toolsChat() { - Message message = Message.builder().role(Message.Role.USER).content("给我输出一个长度为2的中文词语,并解释下词语对应物品的用途").build(); - //属性一 - JSONObject wordLength = new JSONObject(); - wordLength.put("type", "number"); - wordLength.put("description", "词语的长度"); - //属性二 - JSONObject language = new JSONObject(); - language.put("type", "string"); - language.put("enum", Arrays.asList("zh", "en")); - language.put("description", "语言类型,例如:zh代表中文、en代表英语"); - //参数 - JSONObject properties = new JSONObject(); - properties.put("wordLength", wordLength); - properties.put("language", language); - Parameters parameters = Parameters.builder() - .type("object") - .properties(properties) - .required(Collections.singletonList("wordLength")).build(); - Tools tools = Tools.builder() - .type(Tools.Type.FUNCTION.getName()) - .function(ToolsFunction.builder().name("getOneWord").description("获取一个指定长度和语言类型的词语").parameters(parameters).build()) - .build(); - - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(Collections.singletonList(message)) - .tools(Collections.singletonList(tools)) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion); - - ChatChoice chatChoice = chatCompletionResponse.getChoices().get(0); - log.info("构造的方法值:{}", chatChoice.getMessage().getToolCalls()); - - ToolCalls openAiReturnToolCalls = chatChoice.getMessage().getToolCalls().get(0); - WordParam wordParam = JSONUtil.toBean(openAiReturnToolCalls.getFunction().getArguments(), WordParam.class); - String oneWord = getOneWord(wordParam); - - - ToolCallFunction tcf = ToolCallFunction.builder().name("getOneWord").arguments(openAiReturnToolCalls.getFunction().getArguments()).build(); - ToolCalls tc = ToolCalls.builder().id(openAiReturnToolCalls.getId()).type(ToolCalls.Type.FUNCTION.getName()).function(tcf).build(); - //构造tool call - Message message2 = Message.builder().role(Message.Role.ASSISTANT).content("方法参数").toolCalls(Collections.singletonList(tc)).build(); - String content - = "{ " + - "\"wordLength\": \"3\", " + - "\"language\": \"zh\", " + - "\"word\": \"" + oneWord + "\"," + - "\"用途\": [\"直接吃\", \"做沙拉\", \"售卖\"]" + - "}"; - Message message3 = Message.builder().toolCallId(openAiReturnToolCalls.getId()).role(Message.Role.TOOL).name("getOneWord").content(content).build(); - List messageList = Arrays.asList(message, message2, message3); - ChatCompletion chatCompletionV2 = ChatCompletion - .builder() - .messages(messageList) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - ChatCompletionResponse chatCompletionResponseV2 = openAiClient.chatCompletion(chatCompletionV2); - log.info("自定义的方法返回值:{}", chatCompletionResponseV2.getChoices().get(0).getMessage().getContent()); - - } - - /** - * tools流式输出使用示例 - */ - @Test - public void streamToolsChat() { - - CountDownLatch countDownLatch = new CountDownLatch(1); - ConsoleEventSourceListenerV3 eventSourceListener = new ConsoleEventSourceListenerV3(countDownLatch); - - Message message = Message.builder().role(Message.Role.USER).content("给我输出一个长度为2的中文词语,并解释下词语对应物品的用途").build(); - //属性一 - JSONObject wordLength = new JSONObject(); - wordLength.put("type", "number"); - wordLength.put("description", "词语的长度"); - //属性二 - JSONObject language = new JSONObject(); - language.put("type", "string"); - language.put("enum", Arrays.asList("zh", "en")); - language.put("description", "语言类型,例如:zh代表中文、en代表英语"); - //参数 - JSONObject properties = new JSONObject(); - properties.put("wordLength", wordLength); - properties.put("language", language); - Parameters parameters = Parameters.builder() - .type("object") - .properties(properties) - .required(Collections.singletonList("wordLength")).build(); - Tools tools = Tools.builder() - .type(Tools.Type.FUNCTION.getName()) - .function(ToolsFunction.builder().name("getOneWord").description("获取一个指定长度和语言类型的词语").parameters(parameters).build()) - .build(); - - ChatCompletion chatCompletion = ChatCompletion - .builder() - .messages(Collections.singletonList(message)) - .tools(Collections.singletonList(tools)) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - openAiStreamClient.streamChatCompletion(chatCompletion, eventSourceListener); - - try { - countDownLatch.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - ToolCalls openAiReturnToolCalls = eventSourceListener.getToolCalls(); - WordParam wordParam = JSONUtil.toBean(openAiReturnToolCalls.getFunction().getArguments(), WordParam.class); - String oneWord = getOneWord(wordParam); - - - ToolCallFunction tcf = ToolCallFunction.builder().name("getOneWord").arguments(openAiReturnToolCalls.getFunction().getArguments()).build(); - ToolCalls tc = ToolCalls.builder().id(openAiReturnToolCalls.getId()).type(ToolCalls.Type.FUNCTION.getName()).function(tcf).build(); - //构造tool call - Message message2 = Message.builder().role(Message.Role.ASSISTANT).content("方法参数").toolCalls(Collections.singletonList(tc)).build(); - String content - = "{ " + - "\"wordLength\": \"3\", " + - "\"language\": \"zh\", " + - "\"word\": \"" + oneWord + "\"," + - "\"用途\": [\"直接吃\", \"做沙拉\", \"售卖\"]" + - "}"; - Message message3 = Message.builder().toolCallId(openAiReturnToolCalls.getId()).role(Message.Role.TOOL).name("getOneWord").content(content).build(); - List messageList = Arrays.asList(message, message2, message3); - ChatCompletion chatCompletionV2 = ChatCompletion - .builder() - .messages(messageList) - .model(ChatCompletion.Model.GPT_4_1106_PREVIEW.getName()) - .build(); - - - CountDownLatch countDownLatch1 = new CountDownLatch(1); - openAiStreamClient.streamChatCompletion(chatCompletionV2, new ConsoleEventSourceListenerV3(countDownLatch)); - try { - countDownLatch1.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - try { - countDownLatch1.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - } - - - @Data - @Builder - static class WordParam { - private int wordLength; - @Builder.Default - private String language = "zh"; - } - - - /** - * 获取一个词语(根据语言和字符长度查询) - * @param wordParam - * @return - */ - public String getOneWord(WordParam wordParam) { - - List zh = Arrays.asList("大香蕉", "哈密瓜", "苹果"); - List en = Arrays.asList("apple", "banana", "cantaloupe"); - if (wordParam.getLanguage().equals("zh")) { - for (String e : zh) { - if (e.length() == wordParam.getWordLength()) { - return e; - } - } - } - if (wordParam.getLanguage().equals("en")) { - for (String e : en) { - if (e.length() == wordParam.getWordLength()) { - return e; - } - } - } - return "西瓜"; - } -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherPlugin.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherPlugin.java deleted file mode 100644 index 787e5983..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherPlugin.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.common.chat.demo; - - -import org.ruoyi.common.chat.openai.plugin.PluginAbstract; - -public class WeatherPlugin extends PluginAbstract { - - public WeatherPlugin(Class r) { - super(r); - } - - @Override - public WeatherResp func(WeatherReq args) { - WeatherResp weatherResp = new WeatherResp(); - weatherResp.setTemp("25到28摄氏度"); - weatherResp.setLevel(3); - return weatherResp; - } - - @Override - public String content(WeatherResp weatherResp) { - return "当前天气温度:" + weatherResp.getTemp() + ",风力等级:" + weatherResp.getLevel(); - } -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherReq.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherReq.java deleted file mode 100644 index b0670e5b..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherReq.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.common.chat.demo; - - -import lombok.Data; -import org.ruoyi.common.chat.openai.plugin.PluginParam; - -@Data -public class WeatherReq extends PluginParam { - /** - * 城市 - */ - private String location; -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherResp.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherResp.java deleted file mode 100644 index 360c56c8..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WeatherResp.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.ruoyi.common.chat.demo; - -import lombok.Data; - -@Data -public class WeatherResp { - /** - * 温度 - */ - private String temp; - /** - * 风力等级 - */ - private Integer level; -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WebSearchToolsTest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WebSearchToolsTest.java deleted file mode 100644 index 34871f5c..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/demo/WebSearchToolsTest.java +++ /dev/null @@ -1,223 +0,0 @@ -package org.ruoyi.common.chat.demo; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.zhipu.oapi.ClientV4; -import com.zhipu.oapi.Constants; -import com.zhipu.oapi.service.v4.tools.*; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; - - -import com.zhipu.oapi.service.v4.model.*; -import io.reactivex.Flowable; - -import java.util.HashMap; -import java.util.Map; - - -public class WebSearchToolsTest { - - private final static Logger logger = LoggerFactory.getLogger(WebSearchToolsTest.class); - private static final String API_SECRET_KEY = "xx"; - - private static final ClientV4 client = new ClientV4.Builder(API_SECRET_KEY) - .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) - .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) - .build(); - private static final ObjectMapper mapper = new ObjectMapper(); - // 请自定义自己的业务id - private static final String requestIdTemplate = "mycompany-%d"; - - - @Test - public void test1() throws JsonProcessingException { - -// json 转换 ArrayList - String jsonString = "[\n" + - " {\n" + - " \"content\": \"今天武汉天气怎么样\",\n" + - " \"role\": \"user\"\n" + - " }\n" + - " ]"; - - ArrayList messages = new ObjectMapper().readValue(jsonString, new TypeReference>() { - }); - - - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() - .model("web-search-pro") - .stream(Boolean.TRUE) - .messages(messages) - .requestId(requestId) - .build(); - WebSearchApiResponse webSearchApiResponse = client.webSearchProStreamingInvoke(chatCompletionRequest); - if (webSearchApiResponse.isSuccess()) { - AtomicBoolean isFirst = new AtomicBoolean(true); - List choices = new ArrayList<>(); - AtomicReference lastAccumulator = new AtomicReference<>(); - - webSearchApiResponse.getFlowable().map(result -> result) - .doOnNext(accumulator -> { - { - if (isFirst.getAndSet(false)) { - logger.info("Response: "); - } - ChoiceDelta delta = accumulator.getChoices().get(0).getDelta(); - if (delta != null && delta.getToolCalls() != null) { - logger.info("tool_calls: {}", mapper.writeValueAsString(delta.getToolCalls())); - } - choices.add(delta); - lastAccumulator.set(accumulator); - - } - }) - .doOnComplete(() -> System.out.println("Stream completed.")) - .doOnError(throwable -> System.err.println("Error: " + throwable)) // Handle errors - .blockingSubscribe();// Use blockingSubscribe instead of blockingGet() - - WebSearchPro chatMessageAccumulator = lastAccumulator.get(); - - webSearchApiResponse.setFlowable(null);// 打印前置空 - webSearchApiResponse.setData(chatMessageAccumulator); - } - logger.info("model output: {}", mapper.writeValueAsString(webSearchApiResponse)); - client.getConfig().getHttpClient().dispatcher().executorService().shutdown(); - - client.getConfig().getHttpClient().connectionPool().evictAll(); - // List all active threads - for (Thread t : Thread.getAllStackTraces().keySet()) { - logger.info("Thread: " + t.getName() + " State: " + t.getState()); - } - - } - - - @Test - public void test2() throws JsonProcessingException { - -// json 转换 ArrayList - String jsonString = "[\n" + - " {\n" + - " \"content\": \"今天天气怎么样\",\n" + - " \"role\": \"user\"\n" + - " }\n" + - " ]"; - - ArrayList messages = new ObjectMapper().readValue(jsonString, new TypeReference>() { - }); - - - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() - .model("web-search-pro") - .stream(Boolean.FALSE) - .messages(messages) - .requestId(requestId) - .build(); - WebSearchApiResponse webSearchApiResponse = client.invokeWebSearchPro(chatCompletionRequest); - - logger.info("model output: {}", mapper.writeValueAsString(webSearchApiResponse)); - - } - - - @Test - public void testFunctionSSE() throws JsonProcessingException { - List messages = new ArrayList<>(); - ChatMessage chatMessage = new ChatMessage(ChatMessageRole.USER.value(), "成都到北京要多久,天气如何"); - messages.add(chatMessage); - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - // 函数调用参数构建部分 - List chatToolList = new ArrayList<>(); - ChatTool chatTool = new ChatTool(); - - chatTool.setType(ChatToolType.FUNCTION.value()); - ChatFunctionParameters chatFunctionParameters = new ChatFunctionParameters(); - chatFunctionParameters.setType("object"); - Map properties = new HashMap<>(); - properties.put("location", new HashMap() {{ - put("type", "string"); - put("description", "城市,如:北京"); - }}); - properties.put("unit", new HashMap() {{ - put("type", "string"); - put("enum", new ArrayList() {{ - add("celsius"); - add("fahrenheit"); - }}); - }}); - chatFunctionParameters.setProperties(properties); - ChatFunction chatFunction = ChatFunction.builder() - .name("get_weather") - .description("Get the current weather of a location") - .parameters(chatFunctionParameters) - .build(); - chatTool.setFunction(chatFunction); - chatToolList.add(chatTool); - HashMap extraJson = new HashMap<>(); - extraJson.put("temperature", 0.5); - extraJson.put("max_tokens", 50); - - ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder() - .model(Constants.ModelChatGLM4) - .stream(Boolean.TRUE) - .messages(messages) - .requestId(requestId) - .tools(chatToolList) - .toolChoice("auto") - .extraJson(extraJson) - .build(); - ModelApiResponse sseModelApiResp = client.invokeModelApi(chatCompletionRequest); - if (sseModelApiResp.isSuccess()) { - AtomicBoolean isFirst = new AtomicBoolean(true); - List choices = new ArrayList<>(); - ChatMessageAccumulator chatMessageAccumulator = mapStreamToAccumulator(sseModelApiResp.getFlowable()) - .doOnNext(accumulator -> { - { - if (isFirst.getAndSet(false)) { - logger.info("Response: "); - } - if (accumulator.getDelta() != null && accumulator.getDelta().getTool_calls() != null) { - String jsonString = mapper.writeValueAsString(accumulator.getDelta().getTool_calls()); - logger.info("tool_calls: {}", jsonString); - } - if (accumulator.getDelta() != null && accumulator.getDelta().getContent() != null) { - logger.info(accumulator.getDelta().getContent()); - } - choices.add(accumulator.getChoice()); - } - }) - .doOnComplete(System.out::println) - .lastElement() - .blockingGet(); - - - ModelData data = new ModelData(); - data.setChoices(choices); - data.setUsage(chatMessageAccumulator.getUsage()); - data.setId(chatMessageAccumulator.getId()); - data.setCreated(chatMessageAccumulator.getCreated()); - data.setRequestId(chatCompletionRequest.getRequestId()); - sseModelApiResp.setFlowable(null);// 打印前置空 - sseModelApiResp.setData(data); - } - logger.info("model output: {}", mapper.writeValueAsString(sseModelApiResp)); - } - - public static Flowable mapStreamToAccumulator(Flowable flowable) { - return flowable.map(chunk -> { - return new ChatMessageAccumulator(chunk.getChoices().get(0).getDelta(), null, chunk.getChoices().get(0), chunk.getUsage(), chunk.getCreated(), chunk.getId()); - }); - } - -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/ChatRequest.java deleted file mode 100644 index 65f76fff..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/ChatRequest.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.ruoyi.common.chat.domain.request; - -import org.ruoyi.common.chat.entity.chat.Message; -import jakarta.validation.constraints.NotEmpty; -import lombok.Data; - -import java.util.List; - -/** - * 描述: - * - * @author https:www.unfbx.com - * @sine 2023-04-08 - */ -@Data -public class ChatRequest { - - - private String frequency_penalty; - - private String max_tokens; - - @NotEmpty(message = "对话消息不能为空") - List messages; - - @NotEmpty(message = "传入的模型不能为空") - private String model; - - private String presence_penalty; - - private String stream; - - private double temperature; - - private double top_p = 1; - - /** - * 知识库id - */ - private String kid; - - private String userId; - - /** - * 1 联网搜索 - */ - private int chat_type; - - /** - * 应用ID - */ - private String appId; -// - -// -// /** -// * gpt的默认设置 -// */ -// private String systemMessage = ""; -// -// -// -// private double temperature = 0.2; -// -// /** -// * 上下文的条数 -// */ -// private Integer contentNumber = 10; -// -// /** -// * 是否携带上下文 -// */ -// private Boolean usingContext = Boolean.TRUE; - -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/Dall3Request.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/Dall3Request.java deleted file mode 100644 index df220566..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/domain/request/Dall3Request.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.ruoyi.common.chat.domain.request; - -import jakarta.validation.constraints.NotEmpty; -import lombok.Data; - -/** - * 描述: - * - * @author https:www.unfbx.com - * @sine 2023-04-08 - */ -@Data -public class Dall3Request { - - @NotEmpty(message = "传入的模型不能为空") - private String model; - - @NotEmpty(message = "提示词不能为空") - private String prompt; - - /** 图片大小 */ - @NotEmpty(message = "图片大小不能为空") - private String size ; - - /** 图片质量 */ - @NotEmpty(message = "图片质量不能为空") - private String quality; - - /** 图片风格 */ - @NotEmpty(message = "图片风格不能为空") - private String style; - -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java index 00de76e7..5f94b47b 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java @@ -2,7 +2,6 @@ package org.ruoyi.common.chat.handler; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson2.JSONObject; import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.chat.config.LocalCache; import org.ruoyi.common.chat.entity.chat.ChatCompletion; @@ -12,7 +11,6 @@ import org.ruoyi.common.chat.listener.WebSocketEventListener; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.utils.WebSocketUtils; import org.ruoyi.common.core.utils.SpringUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.web.socket.*; import org.springframework.web.socket.handler.AbstractWebSocketHandler; diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/LocalModelsofitClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/LocalModelsofitClient.java deleted file mode 100644 index 606a7c25..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/LocalModelsofitClient.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.ruoyi.common.chat.localModels; - -import io.micrometer.common.util.StringUtils; -import lombok.extern.slf4j.Slf4j; -import okhttp3.OkHttpClient; -import org.ruoyi.common.chat.entity.models.LocalModelsSearchRequest; -import org.ruoyi.common.chat.entity.models.LocalModelsSearchResponse; -import org.springframework.stereotype.Service; -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; -import retrofit2.Retrofit; -import retrofit2.converter.jackson.JacksonConverterFactory; - -import java.util.List; -import java.util.concurrent.CountDownLatch; - -@Slf4j -@Service -public class LocalModelsofitClient { - private static final String BASE_URL = "http://127.0.0.1:5000"; // Flask 服务的 URL - private static Retrofit retrofit = null; - - // 获取 Retrofit 实例 - public static Retrofit getRetrofitInstance() { - if (retrofit == null) { - OkHttpClient client = new OkHttpClient.Builder() - .build(); - - retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) - .client(client) - .addConverterFactory(JacksonConverterFactory.create()) // 使用 Jackson 处理 JSON 转换 - .build(); - } - return retrofit; - } - - /** - * 向 Flask 服务发送文本向量化请求 - * - * @param queries 查询文本列表 - * @param modelName 模型名称 - * @param delimiter 文本分隔符 - * @param topK 返回的结果数 - * @param blockSize 文本块大小 - * @param overlapChars 重叠字符数 - * @return 返回计算得到的 Top K 嵌入向量列表 - */ - - public static List> getTopKEmbeddings( - List queries, - String modelName, - String delimiter, - int topK, - int blockSize, - int overlapChars) { - - modelName = (!StringUtils.isEmpty(modelName)) ? modelName : "msmarco-distilbert-base-tas-b"; // 默认模型名称 - delimiter = (!StringUtils.isEmpty(delimiter) ) ? delimiter : "."; // 默认分隔符 - topK = (topK > 0) ? topK : 3; // 默认返回 3 个结果 - blockSize = (blockSize > 0) ? blockSize : 500; // 默认文本块大小为 500 - overlapChars = (overlapChars > 0) ? overlapChars : 50; // 默认重叠字符数为 50 - - // 创建 Retrofit 实例 - Retrofit retrofit = getRetrofitInstance(); - - // 创建 SearchService 接口 - SearchService service = retrofit.create(SearchService.class); - - // 创建请求对象 LocalModelsSearchRequest - LocalModelsSearchRequest request = new LocalModelsSearchRequest( - queries, // 查询文本列表 - modelName, // 模型名称 - delimiter, // 文本分隔符 - topK, // 返回的结果数 - blockSize, // 文本块大小 - overlapChars // 重叠字符数 - ); - - final CountDownLatch latch = new CountDownLatch(1); // 创建一个 CountDownLatch - final List>[] topKEmbeddings = new List[]{null}; // 使用数组来存储结果(因为 Java 不支持直接修改 List) - - // 发起异步请求 - service.vectorize(request).enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - LocalModelsSearchResponse searchResponse = response.body(); - if (searchResponse != null) { - topKEmbeddings[0] = searchResponse.getTopKEmbeddings().get(0); // 获取结果 - log.info("Successfully retrieved embeddings"); - } else { - log.error("Response body is null"); - } - } else { - log.error("Request failed. HTTP error code: " + response.code()); - } - latch.countDown(); // 请求完成,减少计数 - } - - @Override - public void onFailure(Call call, Throwable t) { - t.printStackTrace(); - log.error("Request failed: ", t); - latch.countDown(); // 请求失败,减少计数 - } - }); - - try { - latch.await(); // 等待请求完成 - } catch (InterruptedException e) { - e.printStackTrace(); - } - - return topKEmbeddings[0]; // 返回结果 - } - -// public static void main(String[] args) { -// // 示例调用 -// List queries = Arrays.asList("What is artificial intelligence?", "AI is transforming industries."); -// String modelName = "msmarco-distilbert-base-tas-b"; -// String delimiter = "."; -// int topK = 3; -// int blockSize = 500; -// int overlapChars = 50; -// -// List> topKEmbeddings = getTopKEmbeddings(queries, modelName, delimiter, topK, blockSize, overlapChars); -// -// // 打印结果 -// if (topKEmbeddings != null) { -// System.out.println("Top K embeddings: "); -// for (List embedding : topKEmbeddings) { -// System.out.println(embedding); -// } -// } else { -// System.out.println("No embeddings returned."); -// } -// } - - -// public static void main(String[] args) { -// // 创建 Retrofit 实例 -// Retrofit retrofit = LocalModelsofitClient.getRetrofitInstance(); -// -// // 创建 SearchService 接口 -// SearchService service = retrofit.create(SearchService.class); -// -// // 创建请求对象 LocalModelsSearchRequest -// LocalModelsSearchRequest request = new LocalModelsSearchRequest( -// Arrays.asList("What is artificial intelligence?", "AI is transforming industries."), // 查询文本列表 -// "msmarco-distilbert-base-tas-b", // 模型名称 -// ".", // 分隔符 -// 3, // 返回的结果数 -// 500, // 文本块大小 -// 50 // 重叠字符数 -// ); -// -// // 发起请求 -// service.vectorize(request).enqueue(new Callback() { -// @Override -// public void onResponse(Call call, Response response) { -// if (response.isSuccessful()) { -// LocalModelsSearchResponse searchResponse = response.body(); -// System.out.println("Response Body: " + response.body()); // Print the whole response body for debugging -// -// if (searchResponse != null) { -// // If the response is not null, process it. -// // Example: Extract the embeddings and print them -// List>> topKEmbeddings = searchResponse.getTopKEmbeddings(); -// if (topKEmbeddings != null) { -// // Print the Top K embeddings -// -// } else { -// System.err.println("Top K embeddings are null"); -// } -// -// // If there is more information you want to process, handle it here -// -// } else { -// System.err.println("Response body is null"); -// } -// } else { -// System.err.println("Request failed. HTTP error code: " + response.code()); -// log.error("Failed to retrieve data. HTTP error code: " + response.code()); -// } -// } -// -// @Override -// public void onFailure(Call call, Throwable t) { -// // 请求失败,打印错误 -// t.printStackTrace(); -// log.error("Request failed: ", t); -// } -// }); -// } - -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/SearchService.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/SearchService.java deleted file mode 100644 index 3fa131e5..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/localModels/SearchService.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.common.chat.localModels; - - - -import org.ruoyi.common.chat.entity.models.LocalModelsSearchRequest; -import org.ruoyi.common.chat.entity.models.LocalModelsSearchResponse; -import retrofit2.Call; -import retrofit2.http.Body; -import retrofit2.http.POST; -/** - * @program: RUOYIAI - * @ClassName SearchService - * @description: 请求模型 - * @author: hejh - * @create: 2025-03-15 17:27 - * @Version 1.0 - **/ - - -public interface SearchService { - @POST("/vectorize") // 与 Flask 服务中的路由匹配 - Call vectorize(@Body LocalModelsSearchRequest request); -} - - diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdPlugin.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdPlugin.java deleted file mode 100644 index 428d6e0e..00000000 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdPlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.ruoyi.common.chat.plugin; - -import org.ruoyi.common.chat.openai.plugin.PluginAbstract; - -import java.io.IOException; - -public class CmdPlugin extends PluginAbstract { - - public CmdPlugin(Class r) { - super(r); - } - - @Override - public CmdResp func(CmdReq args) { - try { - if("计算器".equals(args.getCmd())){ - Runtime.getRuntime().exec("calc"); - }else if("记事本".equals(args.getCmd())){ - Runtime.getRuntime().exec("notepad"); - }else if("命令行".equals(args.getCmd())){ - String [] cmd={"cmd","/C","start copy exel exe2"}; - Runtime.getRuntime().exec(cmd); - } - } catch (IOException e) { - throw new RuntimeException("指令执行失败"); - } - CmdResp resp = new CmdResp(); - resp.setResult(args.getCmd()+"指令执行成功!"); - return resp; - } - - @Override - public String content(CmdResp resp) { - return resp.getResult(); - } -} diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java index 3b0af00a..45385266 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java @@ -2,31 +2,39 @@ package org.ruoyi.common.chat.request; import jakarta.validation.constraints.NotEmpty; import lombok.Data; -import org.ruoyi.common.chat.entity.chat.Content; import org.ruoyi.common.chat.entity.chat.Message; import java.util.List; /** - * 描述: + * 描述:对话请求对象 * - * @author https:www.unfbx.com + * @author ageerle * @sine 2023-04-08 */ @Data public class ChatRequest { - @NotEmpty(message = "传入的模型不能为空") - private String model; - @NotEmpty(message = "对话消息不能为空") List messages; - List imageContent; + @NotEmpty(message = "传入的模型不能为空") + private String model; + /** + * 提示词 + */ private String prompt; - private String userId; + /** + * 是否开启流式对话 + */ + private Boolean stream = Boolean.TRUE; + + /** + * 是否开启联网搜索(0关闭 1开启) + */ + private Boolean search = Boolean.FALSE; /** * 知识库id @@ -34,13 +42,14 @@ public class ChatRequest { private String kid; /** - * gpt的默认设置 + * 用户id */ - private String systemMessage = ""; + private String userId; - private double top_p = 1; - - private double temperature = 0.2; + /** + * 应用ID + */ + private String appId; /** * 上下文的条数 @@ -52,4 +61,5 @@ public class ChatRequest { */ private Boolean usingContext = Boolean.TRUE; + } diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java index c05fa19f..e02b2655 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/ConsoleEventSourceListener.java @@ -28,7 +28,6 @@ public class ConsoleEventSourceListener extends EventSourceListener { log.info("OpenAI返回数据:{}", data); if ("[DONE]".equals(data)) { log.info("OpenAI返回数据结束了"); - return; } } diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java index 6701a251..8b9d4a4f 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/sse/PluginListener.java @@ -8,7 +8,6 @@ import okhttp3.ResponseBody; import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; import org.jetbrains.annotations.NotNull; -import org.ruoyi.common.chat.constant.OpenAIConst; import org.ruoyi.common.chat.entity.chat.ChatCompletion; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; import org.ruoyi.common.chat.entity.chat.FunctionCall; diff --git a/ruoyi-common/ruoyi-common-core/pom.xml b/ruoyi-common/ruoyi-common-core/pom.xml index fe3897d0..3a8dcaae 100644 --- a/ruoyi-common/ruoyi-common-core/pom.xml +++ b/ruoyi-common/ruoyi-common-core/pom.xml @@ -51,7 +51,7 @@ cn.hutool hutool-all - 5.8.24 + ${hutool.version} @@ -59,18 +59,6 @@ lombok - - com.github.binarywang - weixin-java-cp - ${weixin-java-miniapp.version} - - - - com.github.binarywang - weixin-java-cp - ${weixin-java-cp.version} - - org.springframework.boot @@ -94,6 +82,11 @@ ip2region + + com.github.binarywang + weixin-java-cp + ${weixin-java-cp.version} + com.github.binarywang diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml deleted file mode 100644 index 76af3458..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - 4.0.0 - - - org.ruoyi - live-chat-client-commons - ${revision} - ../pom.xml - - - live-chat-client-commons-base - ordinaryroad-live-chat-client-commons-base - - - UTF-8 - - - - - com.fasterxml.jackson.core - jackson-databind - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java deleted file mode 100644 index faf4a699..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.constant; - -/** - * @author mjz - * @date 2023/8/26 - */ -public class Constants { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java deleted file mode 100644 index 71248e7e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.exception; - -/** - * @author mjz - * @date 2023/9/5 - */ -public class BaseException extends RuntimeException { - - public BaseException() { - } - - public BaseException(String message) { - super(message); - } - - public BaseException(String message, Throwable cause) { - super(message, cause); - } - - public BaseException(Throwable cause) { - super(cause); - } - - public BaseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java deleted file mode 100644 index 4398cf9b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 连接回调 - * - * @author mjz - * @date 2023/8/26 - */ -public interface IBaseConnectionListener { - - /** - * 连接建立成功 - */ - default void onConnected(T t) { - // ignore - } - - /** - * 连接建立失败 - * - * @param t - */ - default void onConnectFailed(T t) { - // ignore - } - - /** - * 连接断开 - * - * @param t - */ - default void onDisconnected(T t) { - // ignore - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java deleted file mode 100644 index 7230d9dd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -/** - * Base消息回调 - * - * @author mjz - * @date 2023/8/26 - */ -public interface IBaseMsgListener> { - - /** - * 收到消息(所有消息) - * - * @param msg IMsg - */ - default void onMsg(T t, IMsg msg) { - this.onMsg(msg); - } - - default void onMsg(IMsg msg) { - // ignore - } - - /** - * 收到cmd消息(所有cmd) - * - * @param cmd CmdEnum - * @param cmdMsg BaseCmdMsg - */ - default void onCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { - this.onCmdMsg(cmd, cmdMsg); - } - - default void onCmdMsg(CmdEnum cmd, ICmdMsg cmdMsg) { - // ignore - } - - /** - * 收到其他cmd消息(存在Enum,但Listener没有对应的回调) - * - * @param cmd CmdEnum - * @param cmdMsg BaseCmdMsg - */ - default void onOtherCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { - this.onOtherCmdMsg(cmd, cmdMsg); - } - - default void onOtherCmdMsg(CmdEnum cmd, ICmdMsg cmdMsg) { - // ignore - } - - /** - * 收到未知cmd消息 - * - * @param cmdString 实际收到的cmd字符串 - * @param msg BaseMsg - */ - default void onUnknownCmd(T t, String cmdString, IMsg msg) { - this.onUnknownCmd(cmdString, msg); - } - - default void onUnknownCmd(String cmdString, IMsg msg) { - // ignore - } - - /** - * 收到cmd消息(所有cmd) - * - * @param cmd CmdEnum - * @param cmdMsg BaseCmdMsg - * @deprecated use {@link #onCmdMsg(T, Enum, ICmdMsg)} - */ - default void onCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { - this.onCmdMsg(cmd, cmdMsg); - } - - /** - * @deprecated use {@link #onCmdMsg(Enum, ICmdMsg)} - */ - default void onCmdMsg(CmdEnum cmd, BaseCmdMsg cmdMsg) { - // ignore - } - - /** - * 收到其他cmd消息(存在Enum,但Listener没有对应的回调) - * - * @param cmd CmdEnum - * @param cmdMsg BaseCmdMsg - * @deprecated use {@link #onOtherCmdMsg(T, Enum, ICmdMsg)} - */ - default void onOtherCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { - this.onOtherCmdMsg(cmd, cmdMsg); - } - - /** - * @deprecated use {@link #onOtherCmdMsg(Enum, ICmdMsg)} - */ - default void onOtherCmdMsg(CmdEnum cmd, BaseCmdMsg cmdMsg) { - // ignore - } - - /** - * 收到未知cmd消息 - * - * @param cmdString 实际收到的cmd字符串 - * @param msg BaseMsg - * @deprecated use {@link #onUnknownCmd(T, String, IMsg)} - */ - default void onUnknownCmd(T t, String cmdString, BaseMsg msg) { - this.onUnknownCmd(cmdString, msg); - } - - /** - * @deprecated use {@link #onUnknownCmd(String, IMsg)} - */ - default void onUnknownCmd(String cmdString, BaseMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java deleted file mode 100644 index 52b8dac1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 弹幕消息回调 - * - * @author mjz - * @since 0.0.6 - */ -public interface IDanmuMsgListener { - - /** - * 收到弹幕 - */ - default void onDanmuMsg(T t, DanmuMsg msg) { - this.onDanmuMsg(msg); - } - - default void onDanmuMsg(DanmuMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java deleted file mode 100644 index 931f35f8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 进入房间消息回调 - * - * @author mjz - * @date 2023/12/14 - * @since 0.0.16 - */ -public interface IEnterRoomMsgListener { - - /** - * 用户进入房间 - */ - default void onEnterRoomMsg(T t, EnterRoomMsg msg) { - this.onEnterRoomMsg(msg); - } - - default void onEnterRoomMsg(EnterRoomMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java deleted file mode 100644 index f486b961..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 礼物消息回调 - * - * @author mjz - * @since 0.0.8 - */ -public interface IGiftMsgListener { - - - /** - * 收到礼物 - */ - default void onGiftMsg(T t, GiftMsg msg) { - this.onGiftMsg(msg); - } - - default void onGiftMsg(GiftMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java deleted file mode 100644 index 42cc886a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 点赞消息回调 - * - * @author mjz - * @since 0.2.0 - */ -public interface ILikeMsgListener { - - /** - * 收到点赞 - */ - default void onLikeMsg(T t, LikeMsg msg) { - this.onLikeMsg(msg); - } - - default void onLikeMsg(LikeMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java deleted file mode 100644 index 1a70b60a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.listener; - - -/** - * 醒目留言消息回调 - * - * @author mjz - * @date 2023/9/24 - * @since 0.0.11 - */ -public interface ISuperChatMsgListener { - - /** - * 收到醒目留言 - */ - default void onSuperChatMsg(T t, SuperChatMsg msg) { - this.onSuperChatMsg(msg); - } - - default void onSuperChatMsg(SuperChatMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java deleted file mode 100644 index 734c4b6b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * @author mjz - * @date 2023/8/26 - */ -public abstract class BaseCmdMsg> extends BaseMsg - implements ICmdMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java deleted file mode 100644 index 2135fa49..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/8/26 - */ -@JsonInclude(JsonInclude.Include.NON_NULL) -public abstract class BaseMsg implements IMsg { - - public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - - @Override - public String toString() { - try { - return OBJECT_MAPPER.writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java deleted file mode 100644 index 7a0b2cf1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * @author mjz - * @date 2023/10/2 - */ -public interface ICmdMsg> extends IMsg { - - String getCmd(); - - void setCmd(String cmd); - - CmdEnum getCmdEnum(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java deleted file mode 100644 index 7a4745c7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * @author mjz - * @date 2023/9/8 - */ -public interface IDanmuMsg extends IMsg { - - /** - * 粉丝牌名称 - */ - String getBadgeName(); - - /** - * 粉丝牌等级 - */ - byte getBadgeLevel(); - - /** - * 弹幕发送者id - */ - String getUid(); - - /** - * 弹幕发送者用户名 - */ - String getUsername(); - - /** - * 弹幕发送者头像地址 - * - * @since 0.0.11 - */ - default String getUserAvatar() { - return null; - } - - /** - * 弹幕内容 - */ - String getContent(); - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java deleted file mode 100644 index a914e63f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * 入房消息 - * - * @author mjz - * @date 2023/12/26 - * @since 0.0.16 - */ -public interface IEnterRoomMsg extends IMsg { - - /** - * 粉丝牌名称 - */ - String getBadgeName(); - - /** - * 粉丝牌等级 - */ - byte getBadgeLevel(); - - /** - * 用户id - */ - String getUid(); - - /** - * 用户名 - */ - String getUsername(); - - /** - * 头像地址 - */ - default String getUserAvatar() { - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java deleted file mode 100644 index 9b8d35d7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * @author mjz - * @date 2023/9/8 - */ -public interface IGiftMsg extends IMsg { - - /** - * 粉丝牌名称 - */ - default String getBadgeName() { - return ""; - } - - /** - * 粉丝牌等级 - */ - default byte getBadgeLevel() { - return 0; - } - - /** - * 发送方id - */ - String getUid(); - - /** - * 发送方用户名 - */ - String getUsername(); - - /** - * 发送方头像地址 - * - * @since 0.0.11 - */ - default String getUserAvatar() { - return null; - } - - /** - * 礼物名称 - */ - String getGiftName(); - - /** - * 礼物图像地址 - */ - String getGiftImg(); - - /** - * 礼物id - */ - String getGiftId(); - - /** - * 礼物数量 - */ - int getGiftCount(); - - /** - * 单个礼物价格 - */ - int getGiftPrice(); - - /** - * 接收方id - */ - String getReceiveUid(); - - /** - * 接收方用户名 - */ - String getReceiveUsername(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java deleted file mode 100644 index c10fe97b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * @author mjz - * @date 2024/1/31 - * @since 0.2.0 - */ -public interface ILikeMsg extends IMsg { - - /** - * 粉丝牌名称 - */ - default String getBadgeName(){ - return ""; - } - - /** - * 粉丝牌等级 - */ - default byte getBadgeLevel(){ - return 0; - } - - /** - * 点赞者id - */ - String getUid(); - - /** - * 点赞者用户名 - */ - String getUsername(); - - /** - * 点赞者头像地址 - */ - default String getUserAvatar() { - return null; - } - - /** - * 点赞数 - */ - default int getClickCount() { - return 1; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java deleted file mode 100644 index c02a3367..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -import java.io.Serializable; - -/** - * @author mjz - * @date 2023/8/26 - */ -public interface IMsg extends Serializable { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java deleted file mode 100644 index 58c94916..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.base.msg; - -/** - * 醒目留言 - * - * @author mjz - * @date 2023/9/22 - */ -public interface ISuperChatMsg extends IDanmuMsg { - - /** - * 醒目留言持续时间,单位秒 - */ - int getDuration(); - - @Override - default String getBadgeName() { - return ""; - } - - @Override - default byte getBadgeLevel() { - return 0; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml deleted file mode 100644 index f25c8226..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 4.0.0 - - - org.ruoyi - live-chat-client-commons - ${revision} - ../pom.xml - - jar - - live-chat-client-commons-client - live-chat-client-commons-client - - - UTF-8 - - - - - org.ruoyi - live-chat-client-commons-base - - - - org.ruoyi - live-chat-client-commons-util - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java deleted file mode 100644 index f442b9c8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.client; - -import lombok.Getter; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.client.config.BaseLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2023/8/26 - */ -public abstract class BaseLiveChatClient< - Config extends BaseLiveChatClientConfig, - MsgListener extends IBaseMsgListener - > implements IBaseLiveChatClient { - - private final Config config; - @Getter - private volatile ClientStatusEnums status = ClientStatusEnums.NEW; - protected PropertyChangeSupport statusChangeSupport = new PropertyChangeSupport(status); - protected volatile boolean cancelReconnect = false; - protected final List msgListeners = Collections.synchronizedList(new ArrayList<>()); - - protected BaseLiveChatClient(Config config) { - this.config = config; - } - - public Config getConfig() { - return config; - } - - @Override - public void connect(Runnable success) { - this.connect(success, null); - } - - @Override - public void connect() { - this.connect(null, null); - } - - @Override - public void disconnect(boolean cancelReconnect) { - this.cancelReconnect = cancelReconnect; - this.disconnect(); - } - - @Override - public void send(Object msg) { - this.send(msg, null, null); - } - - @Override - public void send(Object msg, Runnable success) { - this.send(msg, success, null); - } - - @Override - public void send(Object msg, Consumer failed) { - this.send(msg, null, failed); - } - - @Override - public void sendDanmu(Object danmu) { - this.sendDanmu(danmu, null, null); - } - - @Override - public void sendDanmu(Object danmu, Runnable success) { - this.sendDanmu(danmu, success, null); - } - - @Override - public void sendDanmu(Object danmu, Consumer failed) { - this.sendDanmu(danmu, null, failed); - } - - @Override - public void clickLike(int count) { - this.clickLike(count, null, null); - } - - @Override - public void clickLike(int count, Runnable success) { - this.clickLike(count, success, null); - } - - @Override - public void clickLike(int count, Consumer failed) { - this.clickLike(count, null, failed); - } - - protected abstract void tryReconnect(); - - protected abstract String getWebSocketUriString(); - - /** - * 判断是否处于某个状态,或者处于后续状态 - * - * @param status {@link ClientStatusEnums} - * @return false: 还没有到达该状态 - */ - protected boolean checkStatus(ClientStatusEnums status) { - return this.status.getCode() >= Objects.requireNonNull(status).getCode(); - } - - protected void setStatus(ClientStatusEnums status) { - ClientStatusEnums oldStatus = this.status; - if (oldStatus != status) { - this.status = status; - this.statusChangeSupport.firePropertyChange("status", oldStatus, status); - } - } - - public void addStatusChangeListener(PropertyChangeListener listener) { - this.statusChangeSupport.addPropertyChangeListener(listener); - } - - public void removeStatusChangeListener(PropertyChangeListener listener) { - this.statusChangeSupport.removePropertyChangeListener(listener); - } - - @Override - public void destroy() { - for (PropertyChangeListener propertyChangeListener : this.statusChangeSupport.getPropertyChangeListeners()) { - this.statusChangeSupport.removePropertyChangeListener(propertyChangeListener); - } - this.msgListeners.clear(); - } - - @Override - public boolean addMsgListener(MsgListener msgListener) { - if (msgListener == null) { - return false; - } - return this.msgListeners.add(msgListener); - } - - @Override - public boolean addMsgListeners(List msgListeners) { - if (msgListeners == null || msgListeners.isEmpty()) { - return false; - } - return this.msgListeners.addAll(msgListeners); - } - - @Override - public boolean removeMsgListener(MsgListener msgListener) { - if (msgListener == null) { - return false; - } - return this.msgListeners.remove(msgListener); - } - - @Override - public boolean removeMsgListeners(List msgListeners) { - if (msgListeners == null || msgListeners.isEmpty()) { - return false; - } - return this.msgListeners.removeAll(msgListeners); - } - - @Override - public void removeAllMsgListeners() { - this.msgListeners.clear(); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java deleted file mode 100644 index 951b4bca..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.client; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; - -import java.util.List; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2023/9/5 - */ -public interface IBaseLiveChatClient> { - - void init(); - - boolean addMsgListener(MsgListener msgListener); - - boolean addMsgListeners(List msgListeners); - - boolean removeMsgListener(MsgListener msgListener); - - boolean removeMsgListeners(List msgListeners); - - void removeAllMsgListeners(); - - void connect(Runnable success, Consumer failed); - - void connect(Runnable success); - - void connect(); - - /** - * 手动断开连接 - * - * @param cancelReconnect 取消本次的自动重连(如果启用自动重连) - */ - void disconnect(boolean cancelReconnect); - - void disconnect(); - - void destroy(); - - void send(Object msg); - - void send(Object msg, Runnable success, Consumer failed); - - void send(Object msg, Runnable success); - - void send(Object msg, Consumer failed); - - /** - * 发送弹幕 - * - * @param danmu 弹幕内容 - * @since 0.0.6 - */ - void sendDanmu(Object danmu); - - /** - * 发送弹幕 - * - * @param danmu 弹幕内容 - * @since 0.0.6 - */ - void sendDanmu(Object danmu, Runnable success, Consumer failed); - - /** - * 发送弹幕 - * - * @param danmu 弹幕内容 - * @since 0.0.6 - */ - void sendDanmu(Object danmu, Runnable success); - - /** - * 发送弹幕 - * - * @param danmu 弹幕内容 - * @since 0.0.6 - */ - void sendDanmu(Object danmu, Consumer failed); - - /** - * 为直播间点赞 - * - * @since 0.2.0 - */ - void clickLike(int count); - - /** - * 为直播间点赞 - * - * @since 0.2.0 - */ - void clickLike(int count, Runnable success, Consumer failed); - - /** - * 为直播间点赞 - * - * @since 0.2.0 - */ - void clickLike(int count, Runnable success); - - /** - * 为直播间点赞 - * - * @since 0.2.0 - */ - void clickLike(int count, Consumer failed); - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java deleted file mode 100644 index 1fee0f74..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.client.config; - - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; - -/** - * 直播间弹幕客户端配置 - * - * @author mjz - * @date 2023/8/26 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public abstract class BaseLiveChatClientConfig { - - protected PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); - public static final long DEFAULT_HEARTBEAT_INITIAL_DELAY = 15; - public static final long DEFAULT_HEARTBEAT_PERIOD = 25; - public static final long DEFAULT_MIN_SEND_DANMU_PERIOD = 3000L; - - private String websocketUri; - - /** - * 浏览器中的Cookie - */ - private String cookie; - - /** - * 直播间id - */ - private Object roomId; - - /** - * 是否启用自动重连 - */ - @Builder.Default - private boolean autoReconnect = Boolean.TRUE; - - /** - * 重试延迟时间(秒),默认5s后重试 - */ - @Builder.Default - private int reconnectDelay = 5; - - /** - * 首次发送心跳包的延迟时间(秒) - */ - @Builder.Default - private long heartbeatInitialDelay = DEFAULT_HEARTBEAT_INITIAL_DELAY; - - /** - * 心跳包发送周期(秒) - */ - @Builder.Default - private long heartbeatPeriod = DEFAULT_HEARTBEAT_PERIOD; - - /** - * 最小发送弹幕时间间隔(毫秒) - */ - @Builder.Default - private long minSendDanmuPeriod = DEFAULT_MIN_SEND_DANMU_PERIOD; - - public void setCookie(String cookie) { - String oldValue = this.cookie; - this.cookie = cookie; - this.propertyChangeSupport.firePropertyChange("cookie", oldValue, cookie); - } - - public void setRoomId(Object roomId) { - if (!(roomId instanceof Number || roomId instanceof String)) { - throw new BaseException("房间ID仅支持数字或字符串,所传参数类型:" + roomId.getClass() + "值:" + roomId); - } - Object oldValue = this.roomId; - this.roomId = roomId; - this.propertyChangeSupport.firePropertyChange("roomId", oldValue, roomId); - } - - public void setWebsocketUri(String websocketUri) { - String oldValue = this.websocketUri; - this.websocketUri = websocketUri; - this.propertyChangeSupport.firePropertyChange("websocketUri", oldValue, websocketUri); - } - - public void setMinSendDanmuPeriod(long minSendDanmuPeriod) { - long oldValue = this.minSendDanmuPeriod; - this.minSendDanmuPeriod = minSendDanmuPeriod; - this.propertyChangeSupport.firePropertyChange("minSendDanmuPeriod", oldValue, minSendDanmuPeriod); - } - - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.propertyChangeSupport.addPropertyChangeListener(propertyName, listener); - } - - public void addPropertyChangeListener(PropertyChangeListener listener) { - this.propertyChangeSupport.addPropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - this.propertyChangeSupport.removePropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - this.propertyChangeSupport.removePropertyChangeListener(listener); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java deleted file mode 100644 index 29d2c753..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.client.enums; - -/** - * @author mjz - * @date 2023/8/26 - */ -public enum ClientStatusEnums { - /** - * 新创建 - */ - NEW(0), - - /** - * 已初始化 - */ - INITIALIZED(1), - - /** - * 连接中 - */ - CONNECTING(100), - - /** - * 重新连接中 - */ - RECONNECTING(101), - - /** - * 已连接 - */ - CONNECTED(200), - - /** - * 连接失败 - */ - CONNECT_FAILED(401), - - /** - * 已断开连接 - */ - DISCONNECTED(400), - - /** - * 已销毁 - */ - DESTROYED(-1), - ; - - public int getCode() { - return code; - } - - ClientStatusEnums(int order) { - this.code = order; - } - - private final int code; - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml deleted file mode 100644 index 190ca516..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - - org.ruoyi - live-chat-client-commons - ${revision} - ../pom.xml - - jar - - live-chat-client-commons-util - live-chat-client-commons-util - - - UTF-8 - - - - - cn.hutool - hutool-all - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java deleted file mode 100644 index 9ec118fc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.util; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.StrUtil; - -import java.net.HttpCookie; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; -import java.util.stream.Collectors; - -/** - * @author mjz - * @date 2023/8/27 - */ -public class OrLiveChatCookieUtil { - - public static String toString(List cookies) { - if (CollUtil.isEmpty(cookies)) { - return StrUtil.EMPTY; - } - - return cookies.stream().map(httpCookie -> { - httpCookie.setVersion(0); - return httpCookie.toString(); - }).collect(Collectors.joining("; ")); - } - - public static Map parseCookieString(String cookies) { - Map map = new HashMap<>(); - if (StrUtil.isNotBlank(cookies) && !StrUtil.isNullOrUndefined(cookies)) { - try { - String[] split = cookies.split("; "); - for (String s : split) { - String[] split1 = s.split("="); - map.put(split1[0], split1[1]); - } - } catch (Exception e) { - throw new RuntimeException("cookie解析失败 " + cookies, e); - } - } - return map; - } - - public static String getCookieByName(Map cookieMap, String name, Supplier supplier) { - String str = MapUtil.getStr(cookieMap, name); - return str == null ? supplier.get() : str; - } - - public static String getCookieByName(String cookie, String name, Supplier supplier) { - String str = MapUtil.getStr(parseCookieString(cookie), name); - return str == null ? supplier.get() : str; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java deleted file mode 100644 index 969cf003..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.util; - -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.StrUtil; - -/** - * @author mjz - * @date 2023/12/2 - */ -public class OrLiveChatNumberUtil extends NumberUtil { - - public static long parseLong(Object object){ - return NumberUtil.parseLong(StrUtil.toStringOrNull(object)); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java deleted file mode 100644 index a4d8a5dd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.util; - -import cn.hutool.core.util.ReflectUtil; - -import java.lang.reflect.Method; - -/** - * @author mjz - * @date 2023/8/28 - */ -public class OrLiveChatReflectUtil extends ReflectUtil { - - public static Method getGetterMethod(Class objectClass, String key) { - Method method; - if (key.startsWith("is")) { - method = ReflectUtil.getMethodByNameIgnoreCase(objectClass, key); - if (method == null) { - ReflectUtil.getMethodByNameIgnoreCase(objectClass, "get" + key); - } - } else { - method = ReflectUtil.getMethodByNameIgnoreCase(objectClass, "get" + key); - } - return method; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java deleted file mode 100644 index b09cdedd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.commons.util; - -import cn.hutool.core.date.LocalDateTimeUtil; - -import java.time.ZoneId; -import java.time.ZonedDateTime; - -/** - * @author mjz - * @date 2023/9/7 - */ -public class OrLocalDateTimeUtil extends LocalDateTimeUtil { - - public static ZoneId ZONE_ID_CTT = ZoneId.of(ZoneId.SHORT_IDS.get("CTT")); - - /** - * 获取中国标准时间的当前时间戳(毫秒) - */ - public static long zonedCurrentTimeMillis() { - ZonedDateTime now = ZonedDateTime.now(ZONE_ID_CTT); - return now.toEpochSecond() * 1000 + now.getNano() / 1_000_000; - } - - /** - * 获取中国标准时间的当前时间戳(秒) - */ - public static long zonedCurrentTimeSecs() { - return ZonedDateTime.now(ZONE_ID_CTT).toEpochSecond(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml deleted file mode 100644 index 84ba7804..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - ruoyi-common-live - ${revision} - ../pom.xml - - - pom - - live-chat-client-commons - - - live-chat-client-commons-base - live-chat-client-commons-util - live-chat-client-commons-client - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml deleted file mode 100644 index 9ea335d6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - live-chat-client-servers - ${revision} - ../pom.xml - - - jar - - live-chat-client-servers-netty-client - live-chat-client-servers-netty - - - UTF-8 - - - - - org.ruoyi - live-chat-client-commons-client - - - - org.ruoyi - live-chat-client-servers-netty - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java deleted file mode 100644 index c342b5bc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java +++ /dev/null @@ -1,349 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.client.base; - -import io.netty.bootstrap.Bootstrap; -import io.netty.channel.*; -import io.netty.channel.socket.SocketChannel; -import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.codec.http.HttpClientCodec; -import io.netty.handler.codec.http.HttpObjectAggregator; -import io.netty.handler.ssl.SslContext; -import io.netty.handler.ssl.SslContextBuilder; -import io.netty.handler.stream.ChunkedWriteHandler; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.BaseLiveChatClient; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; -import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseConnectionHandler; - -import javax.net.ssl.SSLException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2023/8/26 - */ -@Slf4j -public abstract class BaseNettyClient - , - Msg extends IMsg, - MsgListener extends IBaseMsgListener, - ConnectionHandler extends BaseConnectionHandler, - BinaryFrameHandler extends BaseBinaryFrameHandler - > - extends BaseLiveChatClient { - - @Getter - private final EventLoopGroup workerGroup; - @Getter - private final Bootstrap bootstrap = new Bootstrap(); - private BinaryFrameHandler binaryFrameHandler; - private ConnectionHandler connectionHandler; - private IBaseConnectionListener connectionListener; - private Channel channel; - @Getter - private URI websocketUri; - protected IBaseConnectionListener clientConnectionListener; - /** - * 控制弹幕发送频率 - */ - private volatile long lastSendDanmuTimeInMillis; - - public abstract ConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener); - - public abstract BinaryFrameHandler initBinaryFrameHandler(); - - protected BaseNettyClient(Config config, EventLoopGroup workerGroup, IBaseConnectionListener connectionListener) { - super(config); - this.workerGroup = workerGroup; - this.connectionListener = connectionListener; - } - - public void onConnected(ConnectionHandler connectionHandler) { - this.setStatus(ClientStatusEnums.CONNECTED); - if (this.connectionListener != null) { - this.connectionListener.onConnected(connectionHandler); - } - } - - public void onConnectFailed(ConnectionHandler connectionHandler) { - this.setStatus(ClientStatusEnums.CONNECT_FAILED); - tryReconnect(); - if (this.connectionListener != null) { - this.connectionListener.onConnectFailed(connectionHandler); - } - } - - public void onDisconnected(ConnectionHandler connectionHandler) { - this.setStatus(ClientStatusEnums.DISCONNECTED); - tryReconnect(); - if (this.connectionListener != null) { - this.connectionListener.onDisconnected(connectionHandler); - } - } - - @Override - public void init() { - if (checkStatus(ClientStatusEnums.INITIALIZED)) { - return; - } - try { - this.websocketUri = new URI(getWebSocketUriString()); - SslContext sslCtx = SslContextBuilder.forClient().build(); - - this.clientConnectionListener = new IBaseConnectionListener() { - @Override - public void onConnected(ConnectionHandler connectionHandler) { - BaseNettyClient.this.onConnected(connectionHandler); - } - - @Override - public void onConnectFailed(ConnectionHandler connectionHandler) { - BaseNettyClient.this.onConnectFailed(connectionHandler); - } - - @Override - public void onDisconnected(ConnectionHandler connectionHandler) { - BaseNettyClient.this.onDisconnected(connectionHandler); - } - }; - this.binaryFrameHandler = this.initBinaryFrameHandler(); - this.connectionHandler = this.initConnectionHandler(this.clientConnectionListener); - - this.bootstrap.group(this.workerGroup) - // 创建Channel - .channel(NioSocketChannel.class) - .remoteAddress(this.websocketUri.getHost(), getInetPort()) - .option(ChannelOption.TCP_NODELAY, true) - .option(ChannelOption.SO_KEEPALIVE, true) - // Channel配置 - .handler(new ChannelInitializer() { - @Override - protected void initChannel(SocketChannel ch) { - // 责任链 - ChannelPipeline pipeline = ch.pipeline(); - - // 放到第一位 addFirst 支持wss链接服务端 - pipeline.addFirst(sslCtx.newHandler(ch.alloc(), BaseNettyClient.this.websocketUri.getHost(), getInetPort())); - - // 添加一个http的编解码器 - pipeline.addLast(new HttpClientCodec()); - // 添加一个用于支持大数据流的支持 - pipeline.addLast(new ChunkedWriteHandler()); - // 添加一个聚合器,这个聚合器主要是将HttpMessage聚合成FullHttpRequest/Response - pipeline.addLast(new HttpObjectAggregator(BaseNettyClient.this.getConfig().getAggregatorMaxContentLength())); - - // 连接处理器 - pipeline.addLast(BaseNettyClient.this.connectionHandler); - // 弹幕处理器 - pipeline.addLast(BaseNettyClient.this.binaryFrameHandler); - } - }); - this.setStatus(ClientStatusEnums.INITIALIZED); - } catch (URISyntaxException e) { - throw new BaseException(e); - } catch (SSLException e) { - throw new BaseException(e); - } - } - - private int getInetPort() { - int port = this.websocketUri.getPort(); - return port == -1 ? "wss".equalsIgnoreCase(websocketUri.getScheme()) ? 443 : 80 : port; - } - - @Override - public void connect(Runnable success, Consumer failed) { - if (this.cancelReconnect) { - this.cancelReconnect = false; - } - if (!checkStatus(ClientStatusEnums.INITIALIZED)) { - return; - } - if (getStatus() == ClientStatusEnums.CONNECTED) { - return; - } - if (getStatus() != ClientStatusEnums.RECONNECTING) { - this.setStatus(ClientStatusEnums.CONNECTING); - } - this.bootstrap.connect().addListener((ChannelFutureListener) connectFuture -> { - if (connectFuture.isSuccess()) { - if (log.isDebugEnabled()) { - log.debug("连接建立成功!"); - } - this.channel = connectFuture.channel(); - // 监听是否握手成功 - this.connectionHandler.getHandshakeFuture().addListener((ChannelFutureListener) handshakeFuture -> { - try { - connectionHandler.sendAuthRequest(channel); - if (success != null) { - success.run(); - } - } catch (Exception e) { - log.error("认证包发送失败,断开连接", e); - this.disconnect(); - } - }); - } else { - log.error("连接建立失败", connectFuture.cause()); - this.onConnectFailed(this.connectionHandler); - if (failed != null) { - failed.accept(connectFuture.cause()); - } - } - }); - } - - @Override - public void disconnect() { - if (this.channel == null) { - return; - } - this.channel.close(); - } - - @Override - protected void tryReconnect() { - if (this.cancelReconnect) { - this.cancelReconnect = false; - return; - } - if (!getConfig().isAutoReconnect()) { - return; - } - if (log.isWarnEnabled()) { - log.warn("{}s后将重新连接 {}", getConfig().getReconnectDelay(), getConfig().getRoomId()); - } - workerGroup.schedule(() -> { - this.setStatus(ClientStatusEnums.RECONNECTING); - this.connect(); - }, getConfig().getReconnectDelay(), TimeUnit.SECONDS); - } - - @Override - public void send(Object msg, Runnable success, Consumer failed) { - ChannelFuture future = this.channel.writeAndFlush(msg); - if (success != null || failed != null) { - future.addListener((ChannelFutureListener) channelFuture -> { - if (channelFuture.isSuccess()) { - if (success != null) { - success.run(); - } - } else { - if (failed != null) { - failed.accept(channelFuture.cause()); - } - } - }); - } - } - - @Override - public void destroy() { - super.destroy(); - - // 销毁时不需要重连 - this.cancelReconnect = true; - workerGroup.shutdownGracefully().addListener(future -> { - if (future.isSuccess()) { - this.setStatus(ClientStatusEnums.DESTROYED); - } else { - throw new BaseException("client销毁失败", future.cause()); - } - }); - } - - @Override - protected String getWebSocketUriString() { - return getConfig().getWebsocketUri(); - } - - @Override - protected void setStatus(ClientStatusEnums status) { - if (log.isDebugEnabled()) { - if (getStatus() != status) { - log.debug("{} 状态变化 {} => {}\n", getClass().getSimpleName(), getStatus(), status); - } - } - super.setStatus(status); - } - - @Override - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - throw new BaseException("暂未支持该功能"); - } - - @Override - public void clickLike(int count, Runnable success, Consumer failed) { - throw new BaseException("暂未支持该功能"); - } - - /** - * 发送弹幕前判断是否可以发送 - * - * @param checkConnected 是否检查Client连接状态 - */ - protected boolean checkCanSendDanmu(boolean checkConnected) { - if (checkConnected && getStatus() != ClientStatusEnums.CONNECTED) { - throw new BaseException("连接未建立,无法发送弹幕"); - } - if (System.currentTimeMillis() - this.lastSendDanmuTimeInMillis <= getConfig().getMinSendDanmuPeriod()) { - if (log.isWarnEnabled()) { - log.warn("发送弹幕频率过快,忽略该次发送"); - } - return false; - } - return true; - } - - protected boolean checkCanSendDanmu() { - return checkCanSendDanmu(true); - } - - /** - * 发送弹幕后调用该方法 - */ - protected void finishSendDanmu() { - this.lastSendDanmuTimeInMillis = System.currentTimeMillis(); - if (log.isDebugEnabled()) { - log.debug("弹幕发送完成"); - } - } - - public void iteratorMsgListeners(Consumer consumer) { - binaryFrameHandler.iteratorMsgListeners(consumer); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java deleted file mode 100644 index c0ebf52b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.client.config; - -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.HttpObjectAggregator; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.commons.client.config.BaseLiveChatClientConfig; - -import java.net.URI; - -/** - * @author mjz - * @date 2023/8/26 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public abstract class BaseNettyClientConfig extends BaseLiveChatClientConfig { - - /** - * 聚合器允许的最大消息体长度,默认 64*1024 byte - * - * @see HttpObjectAggregator#HttpObjectAggregator(int) - */ - @Builder.Default - private int aggregatorMaxContentLength = 64 * 1024; - - /** - * WebSocketClientHandshaker最大消息体长度,默认 64*1024 byte - * - * @see WebSocketClientHandshakerFactory#newHandshaker(URI, WebSocketVersion, String, boolean, HttpHeaders, int) - */ - @Builder.Default - private int maxFramePayloadLength = 64 * 1024; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java deleted file mode 100644 index 278ce3f4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.client.handler; - -import lombok.Getter; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; -import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseBinaryFrameHandler; - -import java.util.List; - -/** - * BaseClientBinaryFrameHandler - * - * @author mjz - * @date 2023/8/30 - */ -public abstract class BaseNettyClientBinaryFrameHandler< - Client extends BaseNettyClient, - BinaryFrameHandler extends BaseBinaryFrameHandler, - CmdEnum extends Enum, - Msg extends IMsg, - MsgListener extends IBaseMsgListener> - extends BaseBinaryFrameHandler { - - @Getter - protected final Client client; - - public BaseNettyClientBinaryFrameHandler(List msgListeners, Client client, long roomId) { - super(msgListeners, roomId); - this.client = client; - } - - public BaseNettyClientBinaryFrameHandler(List msgListeners, Client client) { - super(msgListeners, client.getConfig().getRoomId()); - this.client = client; - } - - public BaseNettyClientBinaryFrameHandler(List msgListeners, long roomId) { - super(msgListeners, roomId); - this.client = null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java deleted file mode 100644 index a9903f17..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.client.handler; - -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import lombok.Getter; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; -import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseConnectionHandler; - -/** - * BaseClientConnectionHandler - * - * @author mjz - * @date 2023/8/27 - */ -public abstract class BaseNettyClientConnectionHandler< - Client extends BaseNettyClient, - ConnectionHandler extends BaseConnectionHandler> - extends BaseConnectionHandler { - - @Getter - protected final Client client; - - public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, Client client, IBaseConnectionListener listener) { - super(handshaker, listener); - this.client = client; - } - - public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, Client client) { - this(handshaker, client, null); - } - - public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, IBaseConnectionListener listener) { - super(handshaker, listener); - this.client = null; - } - - public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, long roomId) { - super(handshaker, null); - this.client = null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml deleted file mode 100644 index 1e4259a9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - live-chat-client-servers - ${revision} - ../pom.xml - - jar - - live-chat-client-servers-netty - live-chat-client-servers-netty - - - UTF-8 - - - - - org.ruoyi - live-chat-client-commons-base - - - - io.netty - netty-all - - - - ch.qos.logback - logback-classic - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java deleted file mode 100644 index 984960a0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.frame.base; - -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; - -/** - * @author mjz - * @date 2023/1/5 - */ -public abstract class BaseBinaryWebSocketFrame extends BinaryWebSocketFrame { - - public BaseBinaryWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java deleted file mode 100644 index c7a683f3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.handler.base; - -import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -import java.util.List; -import java.util.function.Consumer; - - -/** - * 消息处理器 - * - * @author mjz - * @date 2023/1/4 - */ -@Slf4j -public abstract class BaseBinaryFrameHandler< - T extends BaseBinaryFrameHandler, - CmdEnum extends Enum, - Msg extends IMsg, - MsgListener extends IBaseMsgListener - > extends SimpleChannelInboundHandler - implements IBaseMsgListener { - - @Getter - private final Object roomId; - protected final List msgListeners; - - public BaseBinaryFrameHandler(List msgListeners, Object roomId) { - this.msgListeners = msgListeners; - this.roomId = roomId; - if (this.msgListeners == null || this.msgListeners.isEmpty()) { - if (log.isDebugEnabled()) { - log.debug("listener not set"); - } - } - } - - /** - * 解码收到的二进制流 - * - * @param byteBuf ByteBuf - * @return List - */ - protected abstract List decode(ByteBuf byteBuf); - - @SuppressWarnings("unchecked") - protected void channelRead0(ChannelHandlerContext ctx, BinaryWebSocketFrame message) { - ByteBuf byteBuf = message.content(); - List msgList = this.decode(byteBuf); - if (msgList == null || msgList.isEmpty()) { - if (log.isDebugEnabled()) { - log.debug("msgList is empty"); - } - return; - } - for (Msg msg : msgList) { - this.onMsg((T) BaseBinaryFrameHandler.this, msg); - if (msg instanceof ICmdMsg) { - ICmdMsg cmdMsg = (ICmdMsg) msg; - Enum cmdEnum = cmdMsg.getCmdEnum(); - if (cmdEnum == null) { - this.onUnknownCmd((T) BaseBinaryFrameHandler.this, cmdMsg.getCmd(), cmdMsg); - } else { - this.onCmdMsg((T) BaseBinaryFrameHandler.this, (CmdEnum) cmdEnum, (ICmdMsg) cmdMsg); - } - } - if (msg instanceof BaseCmdMsg) { - BaseCmdMsg cmdMsg = (BaseCmdMsg) msg; - Enum cmdEnum = cmdMsg.getCmdEnum(); - if (cmdEnum == null) { - this.onUnknownCmd((T) BaseBinaryFrameHandler.this, cmdMsg.getCmd(), cmdMsg); - } else { - this.onCmdMsg((T) BaseBinaryFrameHandler.this, (CmdEnum) cmdEnum, (BaseCmdMsg) cmdMsg); - } - } - } - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { - if (cause.getCause() instanceof UnrecognizedPropertyException) { - log.error("缺少字段:{}", cause.getMessage()); - } else { - super.exceptionCaught(ctx, cause); - } - } - - @Override - public void onMsg(T t, IMsg msg) { - IBaseMsgListener.super.onMsg(t, msg); - iteratorMsgListeners(msgListener -> msgListener.onMsg(t, msg)); - } - - /** - * 重写该方法,判断CMD,或者调用{@link IBaseMsgListener#onOtherCmdMsg(Object, Enum, ICmdMsg)} - * - * @param t BaseBinaryFrameHandler - * @param cmd CmdEnum - * @param cmdMsg BaseMsg - */ - @Override - public void onCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { - IBaseMsgListener.super.onCmdMsg(t, cmd, cmdMsg); - iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(t, cmd, cmdMsg)); - } - - @Override - public void onUnknownCmd(T t, String cmdString, IMsg msg) { - IBaseMsgListener.super.onUnknownCmd(t, cmdString, msg); - iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(t, cmdString, msg)); - } - - @SuppressWarnings("ForLoopReplaceableByForEach") - public void iteratorMsgListeners(Consumer consumer) { - if (msgListeners.isEmpty()) { - return; - } - for (int i = 0; i < msgListeners.size(); i++) { - consumer.accept(msgListeners.get(i)); - } - } - - @Override - public void onCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { - IBaseMsgListener.super.onCmdMsg(t, cmd, cmdMsg); - iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(t, cmd, cmdMsg)); - } - - @Override - public void onUnknownCmd(T t, String cmdString, BaseMsg msg) { - IBaseMsgListener.super.onUnknownCmd(t, cmdString, msg); - iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(t, cmdString, msg)); - } - - public String getRoomIdAsString() { - if (this.roomId == null) { - return ""; - } - return this.roomId.toString(); - } - - public long getRoomIdAsLong() { - String roomIdAsString = this.getRoomIdAsString(); - if (roomIdAsString.trim().isEmpty()) { - return 0L; - } - return Long.parseLong(roomIdAsString); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java deleted file mode 100644 index 724dca41..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.servers.netty.handler.base; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelPromise; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.handler.codec.http.FullHttpResponse; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import io.netty.handler.codec.http.websocketx.WebSocketHandshakeException; -import io.netty.handler.ssl.SslCloseCompletionEvent; -import io.netty.handler.ssl.SslHandshakeCompletionEvent; -import io.netty.util.concurrent.ScheduledFuture; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; - -import java.util.concurrent.TimeUnit; - - -/** - * 连接处理器 - * - * @author mjz - * @date 2023/8/21 - */ -@Slf4j -public abstract class BaseConnectionHandler> extends SimpleChannelInboundHandler { - - private final WebSocketClientHandshaker handshaker; - @Getter - private ChannelPromise handshakeFuture; - private final IBaseConnectionListener listener; - /** - * 客户端发送心跳包 - */ - private ScheduledFuture scheduledFuture = null; - - public BaseConnectionHandler(WebSocketClientHandshaker handshaker, IBaseConnectionListener listener) { - this.handshaker = handshaker; - this.listener = listener; - } - - public BaseConnectionHandler(WebSocketClientHandshaker handshaker) { - this(handshaker, null); - } - - - @Override - public void handlerAdded(ChannelHandlerContext ctx) { - this.handshakeFuture = ctx.newPromise(); - } - - @Override - public void channelActive(ChannelHandlerContext ctx) { - this.handshaker.handshake(ctx.channel()); - } - - protected void channelRead0(ChannelHandlerContext ctx, FullHttpResponse msg) throws Exception { - // 判断是否正确握手 - if (this.handshaker.isHandshakeComplete()) { - handshakeSuccessfully(ctx, msg); - } else { - try { - handshakeSuccessfully(ctx, msg); - } catch (WebSocketHandshakeException e) { - handshakeFailed(msg, e); - } - } - } - - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { - if (log.isDebugEnabled()) { - log.debug("userEventTriggered {}", evt.getClass()); - } - if (evt instanceof SslHandshakeCompletionEvent) { - heartbeatCancel(); - heartbeatStart(ctx); - if (this.listener != null) { - listener.onConnected((ConnectionHandler) BaseConnectionHandler.this); - } - } else if (evt instanceof SslCloseCompletionEvent) { - heartbeatCancel(); - if (this.listener != null) { - listener.onDisconnected((ConnectionHandler) BaseConnectionHandler.this); - } - } else { - log.error("待处理 {}", evt.getClass()); - } - super.userEventTriggered(ctx, evt); - } - - /** - * 开始发送心跳包 - */ - private void heartbeatStart(ChannelHandlerContext ctx) { - scheduledFuture = ctx.executor().scheduleAtFixedRate(() -> { - sendHeartbeat(ctx); - }, getHeartbeatInitialDelay(), getHeartbeatPeriod(), TimeUnit.SECONDS); - } - - /** - * 取消发送心跳包 - */ - private void heartbeatCancel() { - if (null != scheduledFuture && !scheduledFuture.isCancelled()) { - scheduledFuture.cancel(true); - scheduledFuture = null; - } - } - - protected abstract void sendHeartbeat(ChannelHandlerContext ctx); - - public abstract void sendAuthRequest(Channel channel); - - protected abstract long getHeartbeatPeriod(); - - protected abstract long getHeartbeatInitialDelay(); - - private void handshakeSuccessfully(ChannelHandlerContext ctx, FullHttpResponse msg) { - if (log.isDebugEnabled()) { - log.debug("握手完成!"); - } - this.handshaker.finishHandshake(ctx.channel(), msg); - this.handshakeFuture.setSuccess(); - } - - private void handshakeFailed(FullHttpResponse msg, WebSocketHandshakeException e) { - log.error("握手失败!status:" + msg.status(), e); - this.handshakeFuture.setFailure(e); - if (listener != null) { - this.listener.onConnectFailed((ConnectionHandler) this); - } - } - - @Override - public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { - log.error("exceptionCaught", cause); - if (!this.handshakeFuture.isDone()) { - this.handshakeFuture.setFailure(cause); - } - ctx.close(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml deleted file mode 100644 index 28a9cfb0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - ruoyi-common-live - ${revision} - ../pom.xml - - pom - - live-chat-client-servers - live-chat-client-servers - - - UTF-8 - - - - live-chat-client-servers-netty - live-chat-client-servers-netty-client - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml deleted file mode 100644 index dcd4706d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - live-chat-clients - ${revision} - ../pom.xml - - jar - - live-chat-client-bilibili - live-chat-client-bilibili - - - UTF-8 - - - - - org.ruoyi - live-chat-client-servers-netty-client - - - - com.aayushatharva.brotli4j - brotli4j - - - - com.google.protobuf - protobuf-java-util - - - - ch.qos.logback - logback-classic - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java deleted file mode 100644 index 5fd081e8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.api; - -import cn.hutool.cache.impl.TimedCache; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.thread.ThreadUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.*; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.bilibili.api.request.BilibiliLikeReportV3Request; -import tech.ordinaryroad.live.chat.client.bilibili.api.request.BilibiliSendMsgRequest; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; - -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; - -/** - * B站API简易版 - * - * @author mjz - * @date 2023/5/5 - */ -@Slf4j -public class BilibiliApis { - - public static final TimedCache GIFT_IMG_CACHE = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); - public static final String KEY_COOKIE_CSRF = "bili_jct"; - public static final String KEY_UID = "DedeUserID"; - - @SneakyThrows - public static RoomInitResult roomInit(long roomId, String cookie) { - @Cleanup - HttpResponse response = createGetRequest("https://api.live.bilibili.com/room/v1/Room/room_init?id=" + roomId, cookie).execute(); - JsonNode dataJsonNode = responseInterceptor(response.body()); - return OBJECT_MAPPER.readValue(dataJsonNode.toString(), RoomInitResult.class); - } - - public static JsonNode roomGiftConfig(long roomId, String cookie) { - @Cleanup - HttpResponse response = createGetRequest("https://api.live.bilibili.com/xlive/web-room/v1/giftPanel/roomGiftConfig?platform=pc&source=live&build=0&global_version=0&room_id=" + roomId, cookie).execute(); - return responseInterceptor(response.body()); - } - - /** - * @param roomId - * @param type 直播间用0 - * @return
{@code
-     * {
-     * 	"group": "live",
-     * 	"business_id": 0,
-     * 	"refresh_row_factor": 0.125,
-     * 	"refresh_rate": 100,
-     * 	"max_delay": 5000,
-     * 	"token": "-wm5-Qo4BBAztd1qp5ZJpgyTMRBhCc7yikz5d9rAd63PV46G9BMwl0R10kMM8Ilb-UieZGjLtipPrz4Cvi0DdhGFwOi8PJpFN9K-LoXh6Z_4yjEIwgRerDiMIstHzJ80J3B7wnRisAYkWA==",
-     * 	"host_list": [{
-     * 		"host": "ali-bj-live-comet-09.chat.bilibili.com",
-     * 		"port": 2243,
-     * 		"wss_port": 443,
-     * 		"ws_port": 2244
-     *        }, {
-     * 		"host": "ali-gz-live-comet-02.chat.bilibili.com",
-     * 		"port": 2243,
-     * 		"wss_port": 443,
-     * 		"ws_port": 2244
-     *    }, {
-     * 		"host": "broadcastlv.chat.bilibili.com",
-     * 		"port": 2243,
-     * 		"wss_port": 443,
-     * 		"ws_port": 2244
-     *    }]
-     * }
-     * }
- */ - public static JsonNode getDanmuInfo(long roomId, int type, String cookie) { - @Cleanup - HttpResponse response = createGetRequest("https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo?id=" + roomId + "&type=" + type, cookie).execute(); - return responseInterceptor(response.body()); - } - - public static String getGiftImgById(long giftId, long roomId) { - if (!GIFT_IMG_CACHE.containsKey(giftId)) { - ThreadUtil.execAsync(() -> { - updateGiftImgCache(roomId, null); - }); - } - - return GIFT_IMG_CACHE.get(giftId); - } - - /** - * 更新礼物图片缓存 - */ - public static void updateGiftImgCache(long roomId, String cookie) { - JsonNode jsonNode = roomGiftConfig(roomId, cookie); - for (JsonNode node : jsonNode.get("global_gift").get("list")) { - long giftId = node.get("id").asLong(); - String giftImgUrl = node.get("webp").asText(); - GIFT_IMG_CACHE.put(giftId, giftImgUrl); - } - } - - /** - * 发送弹幕 - * - * @param request {@link BilibiliSendMsgRequest} - * @param cookie Cookie - */ - public static void sendMsg(BilibiliSendMsgRequest request, String cookie) { - if (StrUtil.isBlank(cookie)) { - throw new BaseException("发送弹幕接口cookie不能为空"); - } - Map stringObjectMap = BeanUtil.beanToMap(request); - @Cleanup HttpResponse execute = HttpUtil.createPost("https://api.live.bilibili.com/msg/send") - .cookie(cookie) - .form(stringObjectMap) - .execute(); - responseInterceptor(execute.body()); - } - - /** - * 发送弹幕 - * - * @param msg 内容 - * @param realRoomId 真实房间id - * @param cookie Cookie - */ - public static void sendMsg(String msg, long realRoomId, String cookie) { - String biliJct = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_CSRF, () -> { - throw new BaseException("cookie中缺少参数" + KEY_COOKIE_CSRF); - }); - BilibiliSendMsgRequest request = new BilibiliSendMsgRequest(msg, StrUtil.toString(ZonedDateTime.now(ZoneId.of("Asia/Shanghai")).toEpochSecond()), realRoomId, biliJct, biliJct); - sendMsg(request, cookie); - } - - /** - * 为主播点赞 - * - * @param request {@link BilibiliLikeReportV3Request} - * @param cookie Cookie - */ - public static void likeReportV3(BilibiliLikeReportV3Request request, String cookie) { - if (StrUtil.isBlank(cookie)) { - throw new BaseException("为主播点赞接口cookie不能为空"); - } - Map stringObjectMap = BeanUtil.beanToMap(request); - @Cleanup HttpResponse execute = HttpUtil.createPost("https://api.live.bilibili.com/xlive/app-ucenter/v1/like_info_v3/like/likeReportV3") - .cookie(cookie) - .form(stringObjectMap) - .execute(); - responseInterceptor(execute.body()); - } - - /** - * 为主播点赞 - * - * @param anchor_id 主播Uid {@link RoomInitResult#uid} - * @param realRoomId 真实房间Id {@link RoomInitResult#room_id} - * @param cookie Cookie - */ - public static void likeReportV3(long anchor_id, long realRoomId, String cookie) { - String uid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_UID, () -> { - throw new BaseException("cookie中缺少参数" + KEY_UID); - }); - String biliJct = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_CSRF, () -> { - throw new BaseException("cookie中缺少参数" + KEY_COOKIE_CSRF); - }); - BilibiliLikeReportV3Request request = new BilibiliLikeReportV3Request(realRoomId, uid, anchor_id, biliJct, biliJct); - likeReportV3(request, cookie); - } - - public static HttpRequest createGetRequest(String url, String cookies) { - return HttpUtil.createGet(url) - .cookie(cookies); - } - - private static JsonNode responseInterceptor(String responseString) { - try { - JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); - int code = jsonNode.get("code").asInt(); - if (code == 0) { - // 成功 - return jsonNode.get("data"); - } else { - throw new BaseException(jsonNode.get("message").asText()); - } - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - - @Data - @AllArgsConstructor - @NoArgsConstructor - @Builder - public static class RoomInitResult { - private long room_id; - private int short_id; - private long uid; - private int need_p2p; - private boolean is_hidden; - private boolean is_locked; - private boolean is_portrait; - private int live_status; - private int hidden_till; - private int lock_till; - private boolean encrypted; - private boolean pwd_verified; - private long live_time; - private int room_shield; - private int is_sp; - private int special_type; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java deleted file mode 100644 index 5979d891..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.api.request; - -import cn.hutool.core.util.StrUtil; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author mjz - * @date 2024/1/31 - */ -@Data -@NoArgsConstructor -public class BilibiliLikeReportV3Request { - /** - * 本次点赞次数 - */ - private int click_time = 1; - /** - * 房间真实ID - */ - private long room_id; - /** - * Cookie中的DedeUserID - */ - private String uid; - /** - * RoomInitResult中的uid - */ - private long anchor_id; - /** - * Cookie中的bili_jct - */ - private String csrf; - /** - * Cookie中的bili_jct - */ - private String csrf_token; - /** - * 暂时留空 - */ - private String visit_id = StrUtil.EMPTY; - - public BilibiliLikeReportV3Request(long room_id, String uid, long anchor_id, String csrf, String csrf_token) { - this.room_id = room_id; - this.uid = uid; - this.anchor_id = anchor_id; - this.csrf = csrf; - this.csrf_token = csrf_token; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java deleted file mode 100644 index eca8d7b8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.api.request; - -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author mjz - * @date 2023/9/7 - */ -@Data -@NoArgsConstructor -public class BilibiliSendMsgRequest { - private String bubble = "0"; - /** - * 弹幕内容 - */ - private String msg; - /** - * 弹幕颜色 - */ - private String color = "16777215"; - private String mode = "1"; - private String room_type = "0"; - private String jumpfrom = "0"; - /** - * 字体大小 - */ - private String fontsize = "25"; - /** - * 时间戳(秒) - */ - private String rnd; - /** - * 房间真实ID - */ - private long roomid; - /** - * Cookie中的bili_jct - */ - private String csrf; - /** - * Cookie中的bili_jct - */ - private String csrf_token; - - public BilibiliSendMsgRequest(String msg, String rnd, long roomid, String csrf, String csrf_token) { - this.msg = msg; - this.rnd = rnd; - this.roomid = roomid; - this.csrf = csrf; - this.csrf_token = csrf_token; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java deleted file mode 100644 index 6bca3870..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.client; - -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; -import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; -import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliConnectionListener; -import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliConnectionHandler; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; - -import java.util.List; -import java.util.function.Consumer; - -/** - * B站直播间弹幕客户端 - * - * @author mjz - * @date 2023/8/20 - */ -@Slf4j -public class BilibiliLiveChatClient extends BaseNettyClient< - BilibiliLiveChatClientConfig, - BilibiliCmdEnum, - IBilibiliMsg, - IBilibiliMsgListener, - BilibiliConnectionHandler, - BilibiliBinaryFrameHandler - > { - - private BilibiliApis.RoomInitResult roomInitResult = new BilibiliApis.RoomInitResult(); - - public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, List msgListeners, IBilibiliConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListeners(msgListeners); - - // 初始化 - this.init(); - } - - public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener, IBilibiliConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListener(msgListener); - - // 初始化 - this.init(); - } - - public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener, IBilibiliConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener) { - this(config, msgListener, null, new NioEventLoopGroup()); - } - - public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config) { - this(config, null); - } - - @Override - public void init() { - roomInitResult = BilibiliApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); - super.init(); - } - - @Override - public BilibiliConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - return new BilibiliConnectionHandler( - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), - BilibiliLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public BilibiliBinaryFrameHandler initBinaryFrameHandler() { - return new BilibiliBinaryFrameHandler(super.msgListeners, BilibiliLiveChatClient.this); - } - - @Override - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - if (!checkCanSendDanmu(false)) { - return; - } - if (danmu instanceof String) { - String msg = (String) danmu; - try { - if (log.isDebugEnabled()) { - log.debug("{} bilibili发送弹幕 {}", getConfig().getRoomId(), danmu); - } - - boolean sendSuccess = false; - try { - BilibiliApis.sendMsg(msg, roomInitResult.getRoom_id(), getConfig().getCookie()); - sendSuccess = true; - } catch (Exception e) { - log.error("bilibili弹幕发送失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (!sendSuccess) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("bilibili弹幕发送成功 {}", danmu); - } - if (success != null) { - success.run(); - } - finishSendDanmu(); - } catch (Exception e) { - log.error("bilibili弹幕发送失败", e); - if (failed != null) { - failed.accept(e); - } - } - } else { - super.sendDanmu(danmu, success, failed); - } - } - - @Override - public void clickLike(int count, Runnable success, Consumer failed) { - if (count <= 0) { - throw new BaseException("点赞次数必须大于0"); - } - - boolean successfullyClicked = false; - try { - BilibiliApis.likeReportV3(roomInitResult.getUid(), roomInitResult.getRoom_id(), getConfig().getCookie()); - successfullyClicked = true; - } catch (Exception e) { - log.error("Bilibili为直播间点赞失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (!successfullyClicked) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("Bilibili为直播间点赞成功"); - } - if (success != null) { - success.run(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java deleted file mode 100644 index 0f0b3b9d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.config; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatNumberUtil; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; - -/** - * B站直播间弹幕客户端配置 - * - * @author mjz - * @date 2023/8/21 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public class BilibiliLiveChatClientConfig extends BaseNettyClientConfig { - - /** - * @see ProtoverEnum - */ - @Builder.Default - private ProtoverEnum protover = ProtoverEnum.NORMAL_ZLIB; - - @Builder.Default - private String websocketUri = "wss://broadcastlv.chat.bilibili.com:443/sub"; - - @Override - public Long getRoomId() { - return OrLiveChatNumberUtil.parseLong(super.getRoomId()); - } - - public void setProtover(ProtoverEnum protover) { - ProtoverEnum oldValue = this.protover; - this.protover = protover; - super.propertyChangeSupport.firePropertyChange("protover", oldValue, protover); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java deleted file mode 100644 index 1b6edbc5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@RequiredArgsConstructor -public enum BilibiliCmdEnum { - /** - * 游客状态下,5分钟后会出现登录提示,弹幕中的用户名、用户id等信息将不再可见 - */ - LOG_IN_NOTICE, - /** - * 收到弹幕 - */ - DANMU_MSG, - /** - * 收到礼物 - */ - SEND_GIFT, - /** - * 有人上舰 - */ - GUARD_BUY, - /** - * 欢迎舰长 - */ - WELCOME_GUARD, - WELCOME, - /** - * 礼物连击 - */ - COMBO_SEND, - /** - * 欢迎高能用户、(舰长?待验证)特殊消息 - */ - ENTRY_EFFECT, - HOT_RANK_CHANGED, - HOT_RANK_CHANGED_V2, - INTERACT_WORD, - /** - * 开始直播 - */ - LIVE, - LIVE_INTERACTIVE_GAME, - NOTICE_MSG, - /** - * 高能榜数量更新 - */ - ONLINE_RANK_COUNT, - ONLINE_RANK_TOP3, - ONLINE_RANK_V2, - PK_BATTLE_END, - PK_BATTLE_FINAL_PROCESS, - PK_BATTLE_PROCESS, - PK_BATTLE_PROCESS_NEW, - PK_BATTLE_SETTLE, - PK_BATTLE_SETTLE_USER, - PK_BATTLE_SETTLE_V2, - /** - * 主播准备中 - */ - PREPARING, - ROOM_REAL_TIME_MESSAGE_UPDATE, - /** - * 停止直播的房间ID列表 - */ - STOP_LIVE_ROOM_LIST, - /** - * 醒目留言 - */ - SUPER_CHAT_MESSAGE, - SUPER_CHAT_MESSAGE_JPN, - /** - * 删除醒目留言 - */ - SUPER_CHAT_MESSAGE_DELETE, - WIDGET_BANNER, - /** - * 点赞数更新 - */ - LIKE_INFO_V3_UPDATE, - /** - * 为主播点赞 - */ - LIKE_INFO_V3_CLICK, - HOT_ROOM_NOTIFY, - /** - * 观看人数变化 - */ - WATCHED_CHANGE, - POPULAR_RANK_CHANGED, - COMMON_NOTICE_DANMAKU, - LIVE_MULTI_VIEW_CHANGE, - RECOMMEND_CARD, - PK_BATTLE_START_NEW, - PK_BATTLE_ENTRANCE, - AREA_RANK_CHANGED, - ROOM_BLOCK_MSG, - USER_TOAST_MSG, - PK_BATTLE_PRE_NEW, - PK_BATTLE_RANK_CHANGE, - PK_BATTLE_START, - PK_BATTLE_PRE, - PLAY_TAG, - ; - - public static BilibiliCmdEnum getByString(String cmd) { - try { - return BilibiliCmdEnum.valueOf(cmd); - } catch (Exception e) { - return null; - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java deleted file mode 100644 index 296abc31..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/1/5 - */ -@Getter -@RequiredArgsConstructor -public enum OperationEnum { - HANDSHAKE(0), - HANDSHAKE_REPLY(1), - /** - * 心跳包 - */ - HEARTBEAT(2), - /** - * 心跳包回复(人气值) - */ - HEARTBEAT_REPLY(3), - SEND_MSG(4), - - /** - * 普通包(命令) - */ - SEND_SMS_REPLY(5), - DISCONNECT_REPLY(6), - - /** - * 认证包 - */ - AUTH(7), - - /** - * 认证包回复 - */ - AUTH_REPLY(8), - RAW(9), - PROTO_READY(10), - PROTO_FINISH(11), - CHANGE_ROOM(12), - CHANGE_ROOM_REPLY(13), - REGISTER(14), - REGISTER_REPLY(15), - UNREGISTER(16), - UNREGISTER_REPLY(17), - ; - - private final int code; - - public static OperationEnum getByCode(int code) { - for (OperationEnum value : OperationEnum.values()) { - if (value.code == code) { - return value; - } - } - return null; - } - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java deleted file mode 100644 index bee3f2a7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/1/5 - */ -@Getter -@RequiredArgsConstructor -public enum ProtoverEnum { - /** - * 普通包正文不使用压缩 - */ - NORMAL_NO_COMPRESSION(0), - /** - * 心跳及认证包正文不使用压缩 - */ - HEARTBEAT_AUTH_NO_COMPRESSION(1), - /** - * 普通包正文使用zlib压缩 - */ - NORMAL_ZLIB(2), - /** - * 普通包正文使用brotli压缩,解压为一个带头部的协议0普通包 - */ - NORMAL_BROTLI(3), - ; - - private final int code; - - - public static ProtoverEnum getByCode(int code) { - for (ProtoverEnum value : ProtoverEnum.values()) { - if (value.code == code) { - return value; - } - } - return null; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java deleted file mode 100644 index 74248b1c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.listener; - - -import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliConnectionHandler; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; - -/** - * 连接回调 - * - * @author mjz - * @date 2023/8/21 - */ -public interface IBilibiliConnectionListener extends IBaseConnectionListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java deleted file mode 100644 index bb62956b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.listener; - -import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.*; -import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.commons.base.listener.*; - -/** - * @author mjz - * @date 2023/1/7 - */ -public interface IBilibiliMsgListener extends IBaseMsgListener, - IDanmuMsgListener, - IGiftMsgListener, - ISuperChatMsgListener, - IEnterRoomMsgListener, - ILikeMsgListener { - - /** - * 收到礼物 - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param msg SendSmsReplyMsg - * @deprecated use {@link IGiftMsgListener#onGiftMsg(Object, Object)} - */ - default void onSendGift(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { - this.onSendGift(msg); - } - - /** - * @deprecated use {@link IGiftMsgListener#onGiftMsg(Object)} - */ - default void onSendGift(SendSmsReplyMsg msg) { - // ignore - } - - /** - * 普通用户进入直播间 - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param msg SendSmsReplyMsg - * @deprecated use {@link IEnterRoomMsgListener#onEnterRoomMsg} - */ - default void onEnterRoom(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { - this.onEnterRoom(msg); - } - - /** - * @deprecated use {@link IEnterRoomMsgListener#onEnterRoomMsg} - */ - default void onEnterRoom(SendSmsReplyMsg msg) { - // ignore - } - - /** - * 入场效果(高能用户) - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param sendSmsReplyMsg SendSmsReplyMsg - */ - default void onEntryEffect(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg sendSmsReplyMsg) { - this.onEntryEffect(sendSmsReplyMsg); - } - - default void onEntryEffect(SendSmsReplyMsg sendSmsReplyMsg) { - // ignore - } - - /** - * 观看人数变化 - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param msg SendSmsReplyMsg - */ - default void onWatchedChange(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { - this.onWatchedChange(msg); - } - - default void onWatchedChange(SendSmsReplyMsg msg) { - // ignore - } - - /** - * 为主播点赞 - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param msg SendSmsReplyMsg - * @deprecated use {@link ILikeMsgListener#onLikeMsg} - */ - default void onClickLike(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { - this.onClickLike(msg); - } - - /** - * @deprecated use {@link ILikeMsgListener#onLikeMsg} - */ - default void onClickLike(SendSmsReplyMsg msg) { - // ignore - } - - /** - * 点赞数更新 - * - * @param binaryFrameHandler BilibiliBinaryFrameHandler - * @param msg SendSmsReplyMsg - */ - default void onClickUpdate(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { - this.onClickUpdate(msg); - } - - default void onClickUpdate(SendSmsReplyMsg msg) { - // ignore - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java deleted file mode 100644 index 6a30d3b3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@RequiredArgsConstructor -public class AuthMsg extends BaseBilibiliMsg { - - /** - * 用户uid,0代表游客 - */ - private long uid; - - /** - * 房间id room_id,不是短id short_id - * 可以通过将url参数id改为直播地址中的数字来查询房间真实id - * example: https://api.live.bilibili.com/room/v1/Room/room_init?id=6 - */ - private final long roomid; - - /** - * 协议版本 - * - * @see ProtoverEnum#getCode() - */ - private final int protover; - - /** - * 平台标识 - */ - private String platform = "web"; - private int type = 2; - - /** - * 必须字段 - * - * @since 2023-08-19 - */ - private final String buvid; - - /** - * 认证秘钥(必须字段) - * - * @since @since 2023-08-19 - */ - private final String key; - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(this.protover); - } - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.AUTH; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java deleted file mode 100644 index 5bb76ea1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class AuthReplyMsg extends BaseBilibiliMsg { - - /** - * 0: OK,-101: TOKEN_ERROR - */ - private int code; - - @JsonIgnore - private int protover; - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(protover); - } - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.AUTH_REPLY; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java deleted file mode 100644 index 8bf093c6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import cn.hutool.core.codec.Base64; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DanmuMsgMsg extends BaseBilibiliMsg implements IDanmuMsg { - - private JsonNode info; - private String dm_v2; - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } - - @Override - public String getBadgeName() { - JsonNode jsonNode3 = info.get(3); - if (jsonNode3.isEmpty()) { - return ""; - } - return jsonNode3.get(1).asText(); - } - - @Override - public byte getBadgeLevel() { - JsonNode jsonNode3 = info.get(3); - if (jsonNode3.isEmpty()) { - return 0; - } - return (byte) jsonNode3.get(0).asInt(); - } - - @Override - public String getUid() { - JsonNode jsonNode2 = info.get(2); - return jsonNode2.get(0).asText(); - } - - @Override - public String getUsername() { - JsonNode jsonNode2 = info.get(2); - return jsonNode2.get(1).asText(); - } - - @Override - public String getUserAvatar() { - String avatar = null; - try { - tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2 dmV2 = tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2.parseFrom(Base64.decode(dm_v2)); - avatar = dmV2.getDmV220().getAvatar(); - } catch (Exception e) { - // ignore - } - return avatar; - } - - @Override - public String getContent() { - JsonNode jsonNode1 = info.get(1); - return jsonNode1.asText(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java deleted file mode 100644 index dff52fc0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class HeartbeatMsg extends BaseBilibiliMsg { - - @JsonIgnore - private int protover; - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(protover); - } - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.HEARTBEAT; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java deleted file mode 100644 index 535aadd1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class HeartbeatReplyMsg extends BaseBilibiliMsg { - - private int popularity; - - @JsonIgnore - private int protover; - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(protover); - } - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.HEARTBEAT_REPLY; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java deleted file mode 100644 index 8ef298a8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java +++ /dev/null @@ -1,396 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author mjz - * @date 2023/12/26 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class InteractWordMsg extends BaseBilibiliMsg implements IEnterRoomMsg { - - private Data data; - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } - - @Override - public String getBadgeName() { - if (data == null || data.fans_medal == null) { - return null; - } - return data.fans_medal.medal_name; - } - - @Override - public byte getBadgeLevel() { - if (data == null || data.fans_medal == null) { - return 0; - } - return data.fans_medal.medal_level; - } - - @Override - public String getUid() { - if (data == null) { - return null; - } - return Long.toString(data.uid); - } - - @Override - public String getUsername() { - if (data == null) { - return null; - } - return data.uname; - } - - @Override - public String getUserAvatar() { - if (data == null || data.uinfo == null || data.uinfo.base == null) { - return null; - } - return data.uinfo.base.face; - } - - @lombok.Data - public static class Data { - - private Contribution contribution; - private Contribution_v2 contribution_v2; - private int core_user_type; - private int dmscore; - private Fans_medal fans_medal; - private String group_medal; - private List identities; - private boolean is_mystery; - private int is_spread; - private int msg_type; - private int privilege_type; - private long roomid; - private long score; - private String spread_desc; - private String spread_info; - private int tail_icon; - private String tail_text; - private long timestamp; - private long trigger_time; - private long uid; - private Uinfo uinfo; - private String uname; - private String uname_color; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Contribution { - - private int grade; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Contribution_v2 { - - private int grade; - private String rank_type; - private String text; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Fans_medal { - - private long anchor_roomid; - private int guard_level; - private int icon_id; - private int is_lighted; - private long medal_color; - private long medal_color_border; - private long medal_color_end; - private long medal_color_start; - private byte medal_level; - private String medal_name; - private long score; - private String special; - private long target_id; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Origin_info { - - private String face; - private String name; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Risk_ctrl_info { - - private String face; - private String name; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Official_info { - - private int role; - private String title; - private String desc; - private int type; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Base { - - private String face; - private boolean is_mystery; - private String name; - private int name_color; - private Origin_info origin_info; - private Risk_ctrl_info risk_ctrl_info; - private Official_info official_info; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Medal { - - private String name; - private int level; - private long color_start; - private long color_end; - private long color_border; - private long color; - private int id; - private int typ; - private int is_light; - private long ruid; - private int guard_level; - private int score; - private String guard_icon; - private String honor_icon; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Guard { - - private int level; - private String expired_str; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - - @lombok.Data - public static class Uinfo { - - private long uid; - private Base base; - private Medal medal; - private String wealth; - private String title; - private Guard guard; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java deleted file mode 100644 index 191aab2a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author mjz - * @date 2024/1/31 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LikeInfoV3ClickMsg extends BaseBilibiliMsg implements ILikeMsg { - - private Data data; - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } - - @Override - public String getBadgeName() { - if (this.data == null || this.data.getFans_medal() == null) { - return null; - } - - return this.data.getFans_medal().getMedal_name(); - } - - @Override - public byte getBadgeLevel() { - if (this.data == null || this.data.getFans_medal() == null) { - return 0; - } - - return this.data.getFans_medal().getMedal_level(); - } - - @Override - public String getUid() { - if (this.data == null) { - return null; - } - - return Long.toString(this.data.getUid()); - } - - @Override - public String getUsername() { - if (this.data == null) { - return ""; - } - - return this.data.getUname(); - } - - @Override - public String getUserAvatar() { - if (this.data == null || this.data.getUinfo() == null || this.data.getUinfo().getBase() == null) { - return ""; - } - - return this.data.getUinfo().getBase().getFace(); - } - - @lombok.Data - public static class Data { - - private int show_area; - private int msg_type; - private String like_icon; - private long uid; - private String like_text; - private String uname; - private String uname_color; - private List identities; - private InteractWordMsg.Fans_medal fans_medal; - private Contribution_info contribution_info; - private int dmscore; - private String group_medal; - private boolean is_mystery; - private InteractWordMsg.Uinfo uinfo; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Contribution_info { - - private int grade; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java deleted file mode 100644 index 8879c8c5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java +++ /dev/null @@ -1,351 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.dto.MedalInfo; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SendGiftMsg extends BaseBilibiliMsg implements IGiftMsg { - - private Data data; - - /** - * 额外属性,获取礼物图片时可能会用到 - */ - private long roomId; - - @Override - public String getBadgeName() { - if (data == null || data.medal_info == null) { - return IGiftMsg.super.getBadgeName(); - } - - return data.medal_info.getMedal_name(); - } - - @Override - public byte getBadgeLevel() { - if (data == null || data.medal_info == null) { - return IGiftMsg.super.getBadgeLevel(); - } - - return data.medal_info.getMedal_level(); - } - - @Override - public String getUid() { - if (this.data == null) { - return null; - } - - return Long.toString(this.data.getUid()); - } - - @Override - public String getUsername() { - if (this.data == null) { - return ""; - } - - return this.data.getUname(); - } - - @Override - public String getUserAvatar() { - if (this.data == null) { - return ""; - } - - return this.data.getFace(); - } - - @Override - public String getGiftName() { - if (this.data == null) { - return "未知礼物"; - } - - return this.data.getGiftName(); - } - - @Override - public String getGiftImg() { - return BilibiliApis.getGiftImgById(this.data.giftId, this.roomId); - } - - @Override - public String getGiftId() { - if (this.data == null) { - return null; - } - - return Long.toString(data.getGiftId()); - } - - @Override - public int getGiftCount() { - if (this.data == null) { - return 0; - } - - return data.getNum(); - } - - @Override - public int getGiftPrice() { - if (this.data == null) { - return -1; - } - - return data.getPrice(); - } - - @Override - public String getReceiveUid() { - if (this.data == null || this.data.getReceive_user_info() == null) { - return null; - } - - return Long.toString(data.getReceive_user_info().getUid()); - } - - @Override - public String getReceiveUsername() { - if (this.data == null || this.data.getReceive_user_info() == null) { - return ""; - } - - return data.getReceive_user_info().getUname(); - } - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } - - @lombok.Data - public static class Data { - - private int draw; - private int gold; - private int silver; - private int num; - private int total_coin; - private int effect; - private int broadcast_id; - private int crit_prob; - private int guard_level; - private long rcost; - private long uid; - private long timestamp; - private int giftId; - private int giftType; - @JsonProperty("super") - private int _super; - private int super_gift_num; - private int super_batch_gift_num; - private int remain; - private int discount_price; - private int price; - private String beatId; - private String biz_source; - private String action; - private String coin_type; - private String uname; - private String face; - private String batch_combo_id; - private String rnd; - private String giftName; - private String original_gift_name; - private Combo_send combo_send; - private Batch_combo_send batch_combo_send; - private String tag_image; - private String top_list; - private String send_master; - private boolean is_first; - private int demarcation; - private int combo_stay_time; - private int combo_total_coin; - private String tid; - private int effect_block; - private int is_special_batch; - private int combo_resources_id; - private int magnification; - private String name_color; - private MedalInfo medal_info; - private int svga_block; - private JsonNode blind_gift; - private int float_sc_resource_id; - @JsonProperty("switch") - private boolean _switch; - private int face_effect_type; - private int face_effect_id; - private boolean is_naming; - private Receive_user_info receive_user_info; - private boolean is_join_receiver; - private Bag_gift bag_gift; - private int wealth_level; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Combo_send { - - private long uid; - private int gift_num; - private int combo_num; - private int gift_id; - private String combo_id; - private String gift_name; - private String action; - private String uname; - private String send_master; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Receive_user_info { - - private String uname; - private long uid; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Batch_combo_send { - - private long uid; - private int gift_num; - private int batch_combo_num; - private int gift_id; - private String batch_combo_id; - private String gift_name; - private String action; - private String uname; - private String send_master; - private JsonNode blind_gift; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Bag_gift { - - private int show_price; - private int price_for_show; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java deleted file mode 100644 index ae2c52d9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliCmdMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SendSmsReplyMsg extends BaseBilibiliCmdMsg { - - private Long id; - - private String name; - - private JsonNode full; - - private JsonNode half; - - private JsonNode side; - - private JsonNode data; - - private JsonNode info; - - private JsonNode msg_common; - - private JsonNode msg_self; - - private JsonNode link_url; - - private JsonNode msg_type; - - private JsonNode shield_uid; - - private JsonNode business_id; - - private JsonNode scatter; - - private long roomid; - - private long real_roomid; - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java deleted file mode 100644 index 1842b78c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package tech.ordinaryroad.live.chat.client.bilibili.msg; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.dto.MedalInfo; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ISuperChatMsg; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/9/24 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SuperChatMessageMsg extends BaseBilibiliMsg implements ISuperChatMsg { - - private long roomid; - private Data data; - - @Override - public OperationEnum getOperationEnum() { - return OperationEnum.SEND_SMS_REPLY; - } - - @Override - public String getUid() { - if (this.data == null) { - return null; - } - - return Long.toString(this.data.uid); - } - - @Override - public String getUsername() { - if (this.data == null || this.data.getUser_info() == null) { - return ""; - } - - return this.data.user_info.uname; - } - - @Override - public String getUserAvatar() { - if (this.data == null || this.data.getUser_info() == null) { - return ""; - } - - return this.data.user_info.face; - } - - @Override - public String getContent() { - if (this.data == null) { - return ""; - } - - return this.data.message; - } - - @Override - public int getDuration() { - if (this.data == null) { - return 0; - } - - return this.data.time; - } - - @lombok.Data - public static class Data { - private String background_bottom_color; - private String background_color; - private String background_color_end; - private String background_color_start; - private String background_icon; - private String background_image; - private String background_price_color; - private double color_point; - private int dmscore; - private long end_time; - private Gift gift; - private long id; - private int is_ranked; - private int is_send_audit; - private MedalInfo medal_info; - private String message; - private String message_font_color; - private String message_trans; - private int price; - private int rate; - private long start_time; - private int time; - private String token; - private int trans_mark; - private long ts; - private long uid; - private User_info user_info; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class Gift { - private int gift_id; - private String gift_name; - private int num; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @lombok.Data - public static class User_info { - private String face; - private String face_frame; - private int guard_level; - private int is_main_vip; - private int is_svip; - private int is_vip; - private String level_color; - private int manager; - private String name_color; - private String title; - private String uname; - private int user_level; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java deleted file mode 100644 index 5dd624f4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg.base; - - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public abstract class BaseBilibiliCmdMsg extends BaseCmdMsg implements IBilibiliMsg { - - private int protover; - private String cmd; - - @Override - public String getCmd() { - return this.cmd; - } - - @Override - public void setCmd(String cmd) { - this.cmd = cmd; - } - - @Override - public BilibiliCmdEnum getCmdEnum() { - return BilibiliCmdEnum.getByString(getCmd()); - } - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(this.protover); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java deleted file mode 100644 index 16ca652d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg.base; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public abstract class BaseBilibiliMsg extends BaseMsg implements IBilibiliMsg { - - private int protover; - - @Override - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(protover); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java deleted file mode 100644 index ff12eedf..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg.base; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -/** - * @author mjz - * @date 2023/8/26 - */ -public interface IBilibiliMsg extends IMsg { - - @JsonIgnore - ProtoverEnum getProtoverEnum(); - - @JsonIgnore - OperationEnum getOperationEnum(); - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java deleted file mode 100644 index 15cd17a3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.msg.dto; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.Data; - -import java.util.HashMap; -import java.util.Map; - -@Data -public class MedalInfo { - - private long target_id; - private String special; - private int icon_id; - private String anchor_uname; - private int anchor_roomid; - private byte medal_level; - private String medal_name; - private String medal_color; - private long medal_color_start; - private long medal_color_end; - private long medal_color_border; - private int is_lighted; - private int guard_level; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java deleted file mode 100644 index c6436e28..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.frame; - -import io.netty.buffer.ByteBuf; -import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base.BaseBilibiliWebSocketFrame; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class AuthWebSocketFrame extends BaseBilibiliWebSocketFrame { - - public AuthWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java deleted file mode 100644 index f2abecfc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.frame; - -import io.netty.buffer.ByteBuf; -import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base.BaseBilibiliWebSocketFrame; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class HeartbeatWebSocketFrame extends BaseBilibiliWebSocketFrame { - - public HeartbeatWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java deleted file mode 100644 index a3556f6c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base; - -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; - -/** - * 实现Bilibili协议的BinaryWebSocketFrame - * 数据包格式 - * - * @author mjz - * @date 2023/1/5 - */ -public abstract class BaseBilibiliWebSocketFrame extends BinaryWebSocketFrame { - - public static int sequence = 0; - - public ProtoverEnum getProtoverEnum() { - return ProtoverEnum.getByCode(super.content().getShort(6)); - } - - public OperationEnum getOperationEnum() { - return OperationEnum.getByCode(super.content().getInt(8)); - } - - public BaseBilibiliWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java deleted file mode 100644 index 63e62d75..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.frame.factory; - -import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.NumberUtil; -import com.fasterxml.jackson.databind.JsonNode; -import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.AuthMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatMsg; -import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.AuthWebSocketFrame; -import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.HeartbeatWebSocketFrame; -import tech.ordinaryroad.live.chat.client.bilibili.util.BilibiliCodecUtil; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class BilibiliWebSocketFrameFactory { - - private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); - - /** - * 浏览器地址中的房间id,支持短id - */ - private final long roomId; - private volatile static HeartbeatMsg heartbeatMsg; - - public BilibiliWebSocketFrameFactory(long roomId) { - this.roomId = roomId; - } - - public synchronized static BilibiliWebSocketFrameFactory getInstance(long roomId) { - return CACHE.computeIfAbsent(roomId, aLong -> new BilibiliWebSocketFrameFactory(roomId)); - } - - /** - * 创建认证包 - * - * @param protover {@link ProtoverEnum} - * @param cookie 浏览器cookie,仅用来维持登录状态 - * @return AuthWebSocketFrame - */ - public AuthWebSocketFrame createAuth(ProtoverEnum protover, String cookie) { - try { - Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); - String buvid3 = OrLiveChatCookieUtil.getCookieByName(cookieMap, "buvid3", () -> UUID.randomUUID().toString()); - String uid = OrLiveChatCookieUtil.getCookieByName(cookieMap, "DedeUserID", () -> "0"); - BilibiliApis.RoomInitResult data = BilibiliApis.roomInit(roomId, cookie); - JsonNode danmuInfo = BilibiliApis.getDanmuInfo(roomId, 0, cookie); - long realRoomId = data.getRoom_id(); - AuthMsg authMsg = new AuthMsg(realRoomId, protover.getCode(), buvid3, danmuInfo.get("token").asText()); - authMsg.setUid(NumberUtil.parseLong(uid)); - return new AuthWebSocketFrame(BilibiliCodecUtil.encode(authMsg)); - } catch (Exception e) { - throw new BaseException(String.format("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s", roomId, e.getMessage())); - } - } - - public AuthWebSocketFrame createAuth(ProtoverEnum protover) { - return this.createAuth(protover, null); - } - - public HeartbeatWebSocketFrame createHeartbeat(ProtoverEnum protover) { - return new HeartbeatWebSocketFrame(BilibiliCodecUtil.encode(this.getHeartbeatMsg(protover))); - } - - /** - * 心跳包单例模式 - * - * @param protover {@link ProtoverEnum} - * @return HeartbeatWebSocketFrame - */ - public HeartbeatMsg getHeartbeatMsg(ProtoverEnum protover) { - if (heartbeatMsg == null) { - synchronized (BilibiliWebSocketFrameFactory.this) { - if (heartbeatMsg == null) { - heartbeatMsg = new HeartbeatMsg(protover.getCode()); - } - } - } - return heartbeatMsg; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java deleted file mode 100644 index d79efd03..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.handler; - -import cn.hutool.core.util.StrUtil; -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandler; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.bilibili.client.BilibiliLiveChatClient; -import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; -import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; -import tech.ordinaryroad.live.chat.client.bilibili.msg.*; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.util.BilibiliCodecUtil; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; - -import java.util.List; - - -/** - * 消息处理器 - * - * @author mjz - * @date 2023/1/4 - */ -@Slf4j -@ChannelHandler.Sharable -public class BilibiliBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { - - public BilibiliBinaryFrameHandler(List msgListeners, BilibiliLiveChatClient client) { - super(msgListeners, client); - } - - public BilibiliBinaryFrameHandler(List msgListeners, long roomId) { - super(msgListeners, roomId); - } - - @SneakyThrows - @Override - public void onCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { - if (super.msgListeners.isEmpty()) { - return; - } - - SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; - switch (cmd) { - case DANMU_MSG: { - DanmuMsgMsg danmuMsgMsg = new DanmuMsgMsg(); - danmuMsgMsg.setProtover(sendSmsReplyMsg.getProtover()); - danmuMsgMsg.setInfo(sendSmsReplyMsg.getInfo()); - danmuMsgMsg.setDm_v2(StrUtil.toStringOrNull(sendSmsReplyMsg.getUnknownProperties().get("dm_v2"))); - iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(BilibiliBinaryFrameHandler.this, danmuMsgMsg)); - break; - } - - case SEND_GIFT: { - SendGiftMsg sendGiftMsg = new SendGiftMsg(); - sendGiftMsg.setRoomId(getRoomIdAsLong()); - sendGiftMsg.setProtover(sendSmsReplyMsg.getProtover()); - SendGiftMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), SendGiftMsg.Data.class); - sendGiftMsg.setData(data); - iteratorMsgListeners(msgListener -> { - msgListener.onGiftMsg(BilibiliBinaryFrameHandler.this, sendGiftMsg); - msgListener.onSendGift(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); - }); - break; - } - - case SUPER_CHAT_MESSAGE: { - SuperChatMessageMsg superChatMessageMsg = new SuperChatMessageMsg(); - superChatMessageMsg.setProtover(sendSmsReplyMsg.getProtover()); - superChatMessageMsg.setRoomid(sendSmsReplyMsg.getRoomid()); - SuperChatMessageMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), SuperChatMessageMsg.Data.class); - superChatMessageMsg.setData(data); - iteratorMsgListeners(msgListener -> msgListener.onSuperChatMsg(BilibiliBinaryFrameHandler.this, superChatMessageMsg)); - break; - } - - case INTERACT_WORD: { - InteractWordMsg interactWordMsg = new InteractWordMsg(); - interactWordMsg.setProtover(sendSmsReplyMsg.getProtover()); - InteractWordMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), InteractWordMsg.Data.class); - interactWordMsg.setData(data); - iteratorMsgListeners(msgListener -> { - msgListener.onEnterRoomMsg(BilibiliBinaryFrameHandler.this, interactWordMsg); - msgListener.onEnterRoom(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); - }); - break; - } - - case ENTRY_EFFECT: { - iteratorMsgListeners(msgListener -> msgListener.onEntryEffect(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); - break; - } - - case WATCHED_CHANGE: { - iteratorMsgListeners(msgListener -> msgListener.onWatchedChange(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); - break; - } - - case LIKE_INFO_V3_CLICK: { - LikeInfoV3ClickMsg likeInfoV3ClickMsg = new LikeInfoV3ClickMsg(); - likeInfoV3ClickMsg.setProtover(sendSmsReplyMsg.getProtover()); - LikeInfoV3ClickMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), LikeInfoV3ClickMsg.Data.class); - likeInfoV3ClickMsg.setData(data); - iteratorMsgListeners(msgListener -> { - msgListener.onLikeMsg(BilibiliBinaryFrameHandler.this, likeInfoV3ClickMsg); - msgListener.onClickLike(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); - }); - break; - } - - case LIKE_INFO_V3_UPDATE: { - iteratorMsgListeners(msgListener -> msgListener.onClickUpdate(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); - break; - } - - default: { - iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(BilibiliBinaryFrameHandler.this, cmd, cmdMsg)); - } - } - } - - @Override - protected List decode(ByteBuf byteBuf) { - return BilibiliCodecUtil.decode(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java deleted file mode 100644 index 8bd886ec..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.netty.handler; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.bilibili.client.BilibiliLiveChatClient; -import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.factory.BilibiliWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; - - -/** - * 连接处理器 - * - * @author mjz - * @date 2023/8/21 - */ -@Slf4j -@ChannelHandler.Sharable -public class BilibiliConnectionHandler extends BaseNettyClientConnectionHandler { - - /** - * 以ClientConfig为主 - */ - private final long roomId; - /** - * 以ClientConfig为主 - */ - private final ProtoverEnum protover; - /** - * 以ClientConfig为主 - */ - private String cookie; - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, BilibiliLiveChatClient client, IBaseConnectionListener listener) { - super(handshaker, client, listener); - this.roomId = client.getConfig().getRoomId(); - this.protover = client.getConfig().getProtover(); - this.cookie = client.getConfig().getCookie(); - } - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, BilibiliLiveChatClient client) { - this(handshaker, client, null); - } - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, IBaseConnectionListener listener, String cookie) { - super(handshaker, listener); - this.roomId = roomId; - this.protover = protover; - this.cookie = cookie; - } - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, IBaseConnectionListener listener) { - this(handshaker, roomId, protover, listener, null); - } - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, String cookie) { - this(handshaker, roomId, protover, null, cookie); - } - - public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover) { - this(handshaker, roomId, protover, null, null); - } - - @Override - protected void sendHeartbeat(ChannelHandlerContext ctx) { - if (log.isDebugEnabled()) { - log.debug("发送心跳包"); - } - ctx.writeAndFlush( - getWebSocketFrameFactory(getRoomId()).createHeartbeat(getProtover()) - ).addListener((ChannelFutureListener) future -> { - if (future.isSuccess()) { - if (log.isDebugEnabled()) { - log.debug("心跳包发送完成"); - } - } else { - log.error("心跳包发送失败", future.cause()); - } - }); - } - - private static BilibiliWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { - return BilibiliWebSocketFrameFactory.getInstance(roomId); - } - - @Override - public void sendAuthRequest(Channel channel) { - // 5s内认证 - if (log.isDebugEnabled()) { - log.debug("发送认证包"); - } - channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(getProtover(), getCookie())); - } - - public long getRoomId() { - return client != null ? client.getConfig().getRoomId() : roomId; - } - - private ProtoverEnum getProtover() { - return client != null ? client.getConfig().getProtover() : protover; - } - - private String getCookie() { - return client != null ? client.getConfig().getCookie() : cookie; - } - - @Override - protected long getHeartbeatPeriod() { - if (client == null) { - return BilibiliLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; - } else { - return client.getConfig().getHeartbeatPeriod(); - } - } - - @Override - protected long getHeartbeatInitialDelay() { - if (client == null) { - return BilibiliLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; - } else { - return client.getConfig().getHeartbeatInitialDelay(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java deleted file mode 100644 index 5666f45a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -public final class Dm_v2Proto { - private Dm_v2Proto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - String[] descriptorData = { - "\n\013dm_v2.proto\0224tech.ordinaryroad.live.ch" + - "at.client.bilibili.protobuf\032\016dm_v2_20.pr" + - "oto\"Y\n\005dm_v2\022P\n\010dm_v2_20\030\024 \001(\0132>.tech.or" + - "dinaryroad.live.chat.client.bilibili.pro" + - "tobuf.dm_v2_20BJ\n4tech.ordinaryroad.live" + - ".chat.client.bilibili.protobufB\nDm_v2Pro" + - "toP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - Dm_v2_20Proto.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor, - new String[] { "DmV220", }); - Dm_v2_20Proto.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java deleted file mode 100644 index fab53e09..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2_20.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -public final class Dm_v2_20Proto { - private Dm_v2_20Proto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - String[] descriptorData = { - "\n\016dm_v2_20.proto\0224tech.ordinaryroad.live" + - ".chat.client.bilibili.protobuf\"\032\n\010dm_v2_" + - "20\022\016\n\006avatar\030\004 \001(\tBM\n4tech.ordinaryroad." + - "live.chat.client.bilibili.protobufB\rDm_v" + - "2_20ProtoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor, - new String[] { "Avatar", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java deleted file mode 100644 index 97292775..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java +++ /dev/null @@ -1,610 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2} - */ -public final class dm_v2 extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) - dm_v2OrBuilder { -private static final long serialVersionUID = 0L; - // Use dm_v2.newBuilder() to construct. - private dm_v2(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private dm_v2() { - } - - @Override - @SuppressWarnings({"unused"}) - protected Object newInstance( - UnusedPrivateParameter unused) { - return new dm_v2(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; - } - - @Override - protected FieldAccessorTable - internalGetFieldAccessorTable() { - return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dm_v2.class, Builder.class); - } - - public static final int DM_V2_20_FIELD_NUMBER = 20; - private dm_v2_20 dmV220_; - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return Whether the dmV220 field is set. - */ - @Override - public boolean hasDmV220() { - return dmV220_ != null; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return The dmV220. - */ - @Override - public dm_v2_20 getDmV220() { - return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - @Override - public dm_v2_20OrBuilder getDmV220OrBuilder() { - return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; - } - - private byte memoizedIsInitialized = -1; - @Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (dmV220_ != null) { - output.writeMessage(20, getDmV220()); - } - getUnknownFields().writeTo(output); - } - - @Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (dmV220_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(20, getDmV220()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @Override - public boolean equals(final Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof dm_v2)) { - return super.equals(obj); - } - dm_v2 other = (dm_v2) obj; - - if (hasDmV220() != other.hasDmV220()) return false; - if (hasDmV220()) { - if (!getDmV220() - .equals(other.getDmV220())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasDmV220()) { - hash = (37 * hash) + DM_V2_20_FIELD_NUMBER; - hash = (53 * hash) + getDmV220().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static dm_v2 parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2 parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2 parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2 parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2 parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2 parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2 parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dm_v2 parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static dm_v2 parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static dm_v2 parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static dm_v2 parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dm_v2 parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(dm_v2 prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @Override - protected Builder newBuilderForType( - BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) - dm_v2OrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; - } - - @Override - protected FieldAccessorTable - internalGetFieldAccessorTable() { - return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dm_v2.class, Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2.newBuilder() - private Builder() { - - } - - private Builder( - BuilderParent parent) { - super(parent); - - } - @Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - dmV220_ = null; - if (dmV220Builder_ != null) { - dmV220Builder_.dispose(); - dmV220Builder_ = null; - } - return this; - } - - @Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; - } - - @Override - public dm_v2 getDefaultInstanceForType() { - return dm_v2.getDefaultInstance(); - } - - @Override - public dm_v2 build() { - dm_v2 result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @Override - public dm_v2 buildPartial() { - dm_v2 result = new dm_v2(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(dm_v2 result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.dmV220_ = dmV220Builder_ == null - ? dmV220_ - : dmV220Builder_.build(); - } - } - - @Override - public Builder clone() { - return super.clone(); - } - @Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return super.setField(field, value); - } - @Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return super.setRepeatedField(field, index, value); - } - @Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return super.addRepeatedField(field, value); - } - @Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof dm_v2) { - return mergeFrom((dm_v2)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(dm_v2 other) { - if (other == dm_v2.getDefaultInstance()) return this; - if (other.hasDmV220()) { - mergeDmV220(other.getDmV220()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @Override - public final boolean isInitialized() { - return true; - } - - @Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 162: { - input.readMessage( - getDmV220FieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 162 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private dm_v2_20 dmV220_; - private com.google.protobuf.SingleFieldBuilderV3< - dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder> dmV220Builder_; - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return Whether the dmV220 field is set. - */ - public boolean hasDmV220() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return The dmV220. - */ - public dm_v2_20 getDmV220() { - if (dmV220Builder_ == null) { - return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; - } else { - return dmV220Builder_.getMessage(); - } - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public Builder setDmV220(dm_v2_20 value) { - if (dmV220Builder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - dmV220_ = value; - } else { - dmV220Builder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public Builder setDmV220( - dm_v2_20.Builder builderForValue) { - if (dmV220Builder_ == null) { - dmV220_ = builderForValue.build(); - } else { - dmV220Builder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public Builder mergeDmV220(dm_v2_20 value) { - if (dmV220Builder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - dmV220_ != null && - dmV220_ != dm_v2_20.getDefaultInstance()) { - getDmV220Builder().mergeFrom(value); - } else { - dmV220_ = value; - } - } else { - dmV220Builder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public Builder clearDmV220() { - bitField0_ = (bitField0_ & ~0x00000001); - dmV220_ = null; - if (dmV220Builder_ != null) { - dmV220Builder_.dispose(); - dmV220Builder_ = null; - } - onChanged(); - return this; - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public dm_v2_20.Builder getDmV220Builder() { - bitField0_ |= 0x00000001; - onChanged(); - return getDmV220FieldBuilder().getBuilder(); - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - public dm_v2_20OrBuilder getDmV220OrBuilder() { - if (dmV220Builder_ != null) { - return dmV220Builder_.getMessageOrBuilder(); - } else { - return dmV220_ == null ? - dm_v2_20.getDefaultInstance() : dmV220_; - } - } - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - private com.google.protobuf.SingleFieldBuilderV3< - dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder> - getDmV220FieldBuilder() { - if (dmV220Builder_ == null) { - dmV220Builder_ = new com.google.protobuf.SingleFieldBuilderV3< - dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder>( - getDmV220(), - getParentForChildren(), - isClean()); - dmV220_ = null; - } - return dmV220Builder_; - } - @Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) - private static final dm_v2 DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new dm_v2(); - } - - public static dm_v2 getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @Override - public dm_v2 parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @Override - public dm_v2 getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java deleted file mode 100644 index f219e9e3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -public interface dm_v2OrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) - com.google.protobuf.MessageOrBuilder { - - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return Whether the dmV220 field is set. - */ - boolean hasDmV220(); - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - * @return The dmV220. - */ - dm_v2_20 getDmV220(); - /** - * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; - */ - dm_v2_20OrBuilder getDmV220OrBuilder(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java deleted file mode 100644 index a10e7d3e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java +++ /dev/null @@ -1,565 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2_20.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20} - */ -public final class dm_v2_20 extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) - dm_v2_20OrBuilder { -private static final long serialVersionUID = 0L; - // Use dm_v2_20.newBuilder() to construct. - private dm_v2_20(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private dm_v2_20() { - avatar_ = ""; - } - - @Override - @SuppressWarnings({"unused"}) - protected Object newInstance( - UnusedPrivateParameter unused) { - return new dm_v2_20(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; - } - - @Override - protected FieldAccessorTable - internalGetFieldAccessorTable() { - return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dm_v2_20.class, Builder.class); - } - - public static final int AVATAR_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile Object avatar_ = ""; - /** - * string avatar = 4; - * @return The avatar. - */ - @Override - public String getAvatar() { - Object ref = avatar_; - if (ref instanceof String) { - return (String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - avatar_ = s; - return s; - } - } - /** - * string avatar = 4; - * @return The bytes for avatar. - */ - @Override - public com.google.protobuf.ByteString - getAvatarBytes() { - Object ref = avatar_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - avatar_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avatar_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_); - } - getUnknownFields().writeTo(output); - } - - @Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avatar_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @Override - public boolean equals(final Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof dm_v2_20)) { - return super.equals(obj); - } - dm_v2_20 other = (dm_v2_20) obj; - - if (!getAvatar() - .equals(other.getAvatar())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + AVATAR_FIELD_NUMBER; - hash = (53 * hash) + getAvatar().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static dm_v2_20 parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2_20 parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2_20 parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2_20 parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2_20 parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static dm_v2_20 parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static dm_v2_20 parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dm_v2_20 parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static dm_v2_20 parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static dm_v2_20 parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static dm_v2_20 parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static dm_v2_20 parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(dm_v2_20 prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @Override - protected Builder newBuilderForType( - BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) - dm_v2_20OrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; - } - - @Override - protected FieldAccessorTable - internalGetFieldAccessorTable() { - return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable - .ensureFieldAccessorsInitialized( - dm_v2_20.class, Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20.newBuilder() - private Builder() { - - } - - private Builder( - BuilderParent parent) { - super(parent); - - } - @Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - avatar_ = ""; - return this; - } - - @Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; - } - - @Override - public dm_v2_20 getDefaultInstanceForType() { - return dm_v2_20.getDefaultInstance(); - } - - @Override - public dm_v2_20 build() { - dm_v2_20 result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @Override - public dm_v2_20 buildPartial() { - dm_v2_20 result = new dm_v2_20(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(dm_v2_20 result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.avatar_ = avatar_; - } - } - - @Override - public Builder clone() { - return super.clone(); - } - @Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return super.setField(field, value); - } - @Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return super.setRepeatedField(field, index, value); - } - @Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return super.addRepeatedField(field, value); - } - @Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof dm_v2_20) { - return mergeFrom((dm_v2_20)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(dm_v2_20 other) { - if (other == dm_v2_20.getDefaultInstance()) return this; - if (!other.getAvatar().isEmpty()) { - avatar_ = other.avatar_; - bitField0_ |= 0x00000001; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @Override - public final boolean isInitialized() { - return true; - } - - @Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 34: { - avatar_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private Object avatar_ = ""; - /** - * string avatar = 4; - * @return The avatar. - */ - public String getAvatar() { - Object ref = avatar_; - if (!(ref instanceof String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - avatar_ = s; - return s; - } else { - return (String) ref; - } - } - /** - * string avatar = 4; - * @return The bytes for avatar. - */ - public com.google.protobuf.ByteString - getAvatarBytes() { - Object ref = avatar_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - avatar_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string avatar = 4; - * @param value The avatar to set. - * @return This builder for chaining. - */ - public Builder setAvatar( - String value) { - if (value == null) { throw new NullPointerException(); } - avatar_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string avatar = 4; - * @return This builder for chaining. - */ - public Builder clearAvatar() { - avatar_ = getDefaultInstance().getAvatar(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string avatar = 4; - * @param value The bytes for avatar to set. - * @return This builder for chaining. - */ - public Builder setAvatarBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - avatar_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - @Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) - private static final dm_v2_20 DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new dm_v2_20(); - } - - public static dm_v2_20 getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @Override - public dm_v2_20 parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @Override - public dm_v2_20 getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java deleted file mode 100644 index d6345678..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: dm_v2_20.proto - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -public interface dm_v2_20OrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) - com.google.protobuf.MessageOrBuilder { - - /** - * string avatar = 4; - * @return The avatar. - */ - String getAvatar(); - /** - * string avatar = 4; - * @return The bytes for avatar. - */ - com.google.protobuf.ByteString - getAvatarBytes(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java deleted file mode 100644 index 9841cae7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.util; - -import cn.hutool.core.util.StrUtil; -import com.aayushatharva.brotli4j.Brotli4jLoader; -import com.aayushatharva.brotli4j.decoder.BrotliInputStream; -import com.fasterxml.jackson.core.JsonProcessingException; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; -import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; -import tech.ordinaryroad.live.chat.client.bilibili.msg.AuthReplyMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatReplyMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.SendSmsReplyMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; -import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.math.BigInteger; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.zip.DataFormatException; -import java.util.zip.Inflater; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Slf4j -public class BilibiliCodecUtil { - - public static int sequence = 0; - - public static final short FRAME_HEADER_LENGTH = 16; - - public static ByteBuf encode(BaseBilibiliMsg msg) { - ByteBuf out = Unpooled.buffer(FRAME_HEADER_LENGTH); - String bodyJsonString = StrUtil.EMPTY; - // HeartbeatMsg不需要正文,如果序列化后得到`{}`,则替换为空字符串 - if (!(msg instanceof HeartbeatMsg)) { - bodyJsonString = msg.toString(); - if (StrUtil.EMPTY_JSON.equals(bodyJsonString)) { - bodyJsonString = StrUtil.EMPTY; - } - } - byte[] bodyBytes = bodyJsonString.getBytes(StandardCharsets.UTF_8); - int length = bodyBytes.length + FRAME_HEADER_LENGTH; - out.writeInt(length); - out.writeShort(FRAME_HEADER_LENGTH); - out.writeShort(msg.getProtoverEnum().getCode()); - out.writeInt(msg.getOperationEnum().getCode()); - out.writeInt(sequence++); - out.writeBytes(bodyBytes); - return out; - } - - public static List decode(ByteBuf in) { - List msgList = new ArrayList<>(); - Queue pendingByteBuf = new LinkedList<>(); - - do { - Optional msg = doDecode(in, pendingByteBuf); - msg.ifPresent(msgList::add); - in = pendingByteBuf.poll(); - } while (in != null); - - return msgList; - } - - /** - * 执行解码操作,有压缩则先解压,解压后可能得到多条消息 - * - * @param in handler收到的一条消息 - * @param pendingByteBuf 用于存放未读取完的ByteBuf - * @return Optional 何时为空值:不支持的{@link OperationEnum},不支持的{@link ProtoverEnum},{@link #parse(OperationEnum, String)}反序列化失败 - * @see OperationEnum - * @see ProtoverEnum - */ - private static Optional doDecode(ByteBuf in, Queue pendingByteBuf) { - int length = in.readInt(); - short frameHeaderLength = in.readShort(); - short protoverCode = in.readShort(); - int operationCode = in.readInt(); - int sequence = in.readInt(); - int contentLength = length - frameHeaderLength; - byte[] inputBytes = new byte[contentLength]; - in.readBytes(inputBytes); - if (in.readableBytes() != 0) { - // log.error("in.readableBytes() {}", in.readableBytes()); - pendingByteBuf.offer(in); - } - - OperationEnum operationEnum = OperationEnum.getByCode(operationCode); - if (operationEnum == null) { - throw new BaseException(String.format("未知operation: %d", operationCode)); - } - if (protoverCode == ProtoverEnum.NORMAL_ZLIB.getCode()) { - switch (operationEnum) { - case SEND_SMS_REPLY: { - // Decompress the bytes - Inflater inflater = new Inflater(); - inflater.reset(); - inflater.setInput(inputBytes); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(contentLength); - try { - byte[] bytes = new byte[1024]; - while (!inflater.finished()) { - int count = inflater.inflate(bytes); - byteArrayOutputStream.write(bytes, 0, count); - } - } catch (DataFormatException e) { - throw new BaseException(e); - } - inflater.end(); - - return doDecode(Unpooled.wrappedBuffer(byteArrayOutputStream.toByteArray()), pendingByteBuf); - } - case HEARTBEAT_REPLY: { - BigInteger bigInteger = new BigInteger(inputBytes); - return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); - } - default: { - String s = new String(inputBytes, StandardCharsets.UTF_8); - return parse(operationEnum, s); - } - } - } else if (protoverCode == ProtoverEnum.NORMAL_NO_COMPRESSION.getCode()) { - switch (operationEnum) { - case HEARTBEAT_REPLY: { - BigInteger bigInteger = new BigInteger(inputBytes); - return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); - } - default: { - String s = new String(inputBytes, StandardCharsets.UTF_8); - return parse(operationEnum, s); - } - } - } else if (protoverCode == ProtoverEnum.HEARTBEAT_AUTH_NO_COMPRESSION.getCode()) { - switch (operationEnum) { - case HEARTBEAT_REPLY: { - BigInteger bigInteger = new BigInteger(inputBytes); - return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); - } - default: { - String s = new String(inputBytes, StandardCharsets.UTF_8); - return parse(operationEnum, s); - } - } - } else if (protoverCode == ProtoverEnum.NORMAL_BROTLI.getCode()) { - switch (operationEnum) { - case SEND_SMS_REPLY: { - // Load the native library - Brotli4jLoader.ensureAvailability(); - - ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(inputBytes); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(contentLength); - byte[] bytes = new byte[1024]; - BrotliInputStream brotliInputStream = null; - ByteBuf wrappedBuffer = null; - try { - brotliInputStream = new BrotliInputStream(byteArrayInputStream); - int count; - while ((count = brotliInputStream.read(bytes)) > -1) { - byteArrayOutputStream.write(bytes, 0, count); - } - wrappedBuffer = Unpooled.wrappedBuffer(byteArrayOutputStream.toByteArray()); - } catch (IOException e) { - throw new BaseException(e); - } finally { - try { - // Close the BrotliInputStream. This also closes the InputStream. - if (brotliInputStream != null) { - brotliInputStream.close(); - } - byteArrayOutputStream.close(); - } catch (IOException e) { - log.error("解压失败", e); - } - } - return doDecode(wrappedBuffer, pendingByteBuf); - } - case HEARTBEAT_REPLY: { - BigInteger bigInteger = new BigInteger(inputBytes); - return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); - } - default: { - String s = new String(inputBytes, StandardCharsets.UTF_8); - return parse(operationEnum, s); - } - } - } else { - if (log.isWarnEnabled()) { - log.warn("暂不支持的版本:{}", protoverCode); - } - return Optional.empty(); - } - } - - public static Optional parse(OperationEnum operation, String jsonString) { - switch (operation) { - case SEND_SMS_REPLY: { - try { - return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, SendSmsReplyMsg.class)); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - case AUTH_REPLY: { - try { - return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, AuthReplyMsg.class)); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - case HEARTBEAT_REPLY: { - try { - return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, HeartbeatReplyMsg.class)); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - default: { - if (log.isWarnEnabled()) { - log.warn("暂不支持 {}", operation); - } - return Optional.empty(); - } - } - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto deleted file mode 100644 index 53bf69c4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.bilibili.protobuf"; -option java_outer_classname = "Dm_v2Proto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -import "dm_v2_20.proto"; - -message dm_v2 { - dm_v2_20 dm_v2_20 = 20; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto deleted file mode 100644 index 3cb87799..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; - -package tech.ordinaryroad.live.chat.client.bilibili.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.bilibili.protobuf"; -option java_outer_classname = "Dm_v2_20Proto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message dm_v2_20 { - string avatar = 4; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java deleted file mode 100644 index f602e368..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package tech.ordinaryroad.live.chat.client.bilibili.api; - -import org.junit.jupiter.api.Test; - -/** - * @author mjz - * @date 2023/9/7 - */ -class BilibiliApisTest { - - @Test - void sendMsg() { - String cookie = System.getenv("cookie"); - BilibiliApis.sendMsg("666", 545068, cookie); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java deleted file mode 100644 index 1d3f6ca3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.bilibili.client; - -import cn.hutool.core.thread.ThreadUtil; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; -import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; -import tech.ordinaryroad.live.chat.client.bilibili.msg.*; -import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; - -/** - * @author mjz - * @date 2023/8/26 - */ -@Slf4j -class BilibiliLiveChatClientTest { - - static Object lock = new Object(); - BilibiliLiveChatClient client; - - @Test - void example() throws InterruptedException { - String cookie = System.getenv("cookie"); - log.error("cookie: {}", cookie); - BilibiliLiveChatClientConfig config = BilibiliLiveChatClientConfig.builder() - // TODO 浏览器Cookie - .cookie(cookie) - .roomId(7777) - .roomId(697) - .build(); - - client = new BilibiliLiveChatClient(config, new IBilibiliMsgListener() { - @Override - public void onDanmuMsg(BilibiliBinaryFrameHandler binaryFrameHandler, DanmuMsgMsg msg) { - IBilibiliMsgListener.super.onDanmuMsg(binaryFrameHandler, msg); - log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(BilibiliBinaryFrameHandler binaryFrameHandler, SendGiftMsg msg) { - IBilibiliMsgListener.super.onGiftMsg(binaryFrameHandler, msg); - log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getData().getAction(), msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); - } - - @Override - public void onSuperChatMsg(BilibiliBinaryFrameHandler binaryFrameHandler, SuperChatMessageMsg msg) { - IBilibiliMsgListener.super.onSuperChatMsg(binaryFrameHandler, msg); - log.info("{} 收到醒目留言 {}({}):{}", binaryFrameHandler.getRoomId(), msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onEnterRoomMsg(InteractWordMsg msg) { - log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - - @Override - public void onLikeMsg(BilibiliBinaryFrameHandler binaryFrameHandler, LikeInfoV3ClickMsg msg) { - IBilibiliMsgListener.super.onLikeMsg(binaryFrameHandler, msg); - log.info("{} 收到点赞 {} {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - - @Override - public void onEntryEffect(SendSmsReplyMsg msg) { - JsonNode data = msg.getData(); - String copyWriting = data.get("copy_writing").asText(); - log.info("入场效果 {}", copyWriting); - } - - @Override - public void onWatchedChange(SendSmsReplyMsg msg) { - JsonNode data = msg.getData(); - int num = data.get("num").asInt(); - String textSmall = data.get("text_small").asText(); - String textLarge = data.get("text_large").asText(); - log.debug("观看人数变化 {} {} {}", num, textSmall, textLarge); - } - - @Override - public void onClickLike(SendSmsReplyMsg msg) { - JsonNode data = msg.getData(); - String uname = data.get("uname").asText(); - String likeText = data.get("like_text").asText(); - log.debug("为主播点赞 {} {}", uname, likeText); - } - - @Override - public void onClickUpdate(SendSmsReplyMsg msg) { - JsonNode data = msg.getData(); - int clickCount = data.get("click_count").asInt(); - log.debug("点赞数更新 {}", clickCount); - } - - @Override - public void onMsg(IMsg msg) { - log.debug("收到{}消息 {}", msg.getClass(), msg); - } - - @Override - public void onCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { - log.debug("收到CMD消息{} {}", cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { -// log.debug("收到其他CMD消息 {}", cmd); - switch (cmd) { - case GUARD_BUY: { - // 有人上舰 - SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; - break; - } - case SUPER_CHAT_MESSAGE_DELETE: { - // 删除醒目留言 - SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; - break; - } - } - } - - @Override - public void onUnknownCmd(String cmdString, IMsg msg) { - log.debug("收到未知CMD消息 {}", cmdString); - } - }); - client.connect(); - - client.addStatusChangeListener(evt -> { - ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); - if (newValue == ClientStatusEnums.CONNECTED) { - ThreadUtil.execAsync(() -> { - ThreadUtil.sleep(5000); - client.clickLike(5, () -> { - log.warn("为主播点赞成功"); - }); - }); - } - }); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml deleted file mode 100644 index a3690f87..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - 4.0.0 - - org.ruoyi - live-chat-clients - ${revision} - ../pom.xml - - jar - - live-chat-client-douyin - live-chat-client-douyin - - - UTF-8 - - - - - org.ruoyi - live-chat-client-servers-netty-client - - - - com.google.protobuf - protobuf-java-util - - - - ch.qos.logback - logback-classic - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java deleted file mode 100644 index c2c8678b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin; - -import cn.hutool.core.util.RandomUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; -import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -public class ClientModeExample { - static Logger log = LoggerFactory.getLogger(ClientModeExample.class); - - public static void main(String[] args) { - // 1. 创建配置 - DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder() - // TODO 浏览器Cookie - .cookie("did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; kuaishou.live.bfb1s=7206d814e5c089a58c910ed8bf52ace5; clientid=3; did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; client_key=65890b29; kpn=GAME_ZONE; userId=3941614875; kuaishou.live.web_st=ChRrdWFpc2hvdS5saXZlLndlYi5zdBKgAbRhgemDxM_Z_lBn7EZ_-5unvtslsh7ci5VY_eg80qqjxy5yb7oBFrdcWSPlz6jMIBz9h_yoLzATE3ngj2WawpxvbJhmq0EnRYIHv308kTBmg4KN2JQf7w2mfrsp1vusFbZ3NkfsEO4PrGQfX0L6mJRbgXeBqyz4tUM5O0q2Jte_NzWkaOnezvIGRAG8Y6yA1dxGUmiA9syTrPrdnSOzZvAaEoJNhwQ4OUDtgURWN6k9Xgm8PSIgAfV-ZvahtgaYhopZno6OuS2pkaFZjrz4ymoEZ1DSnj0oBTAB; kuaishou.live.web_ph=a287be6ab01dce264c0554eed94c2d6ac991; userId=3941614875") - // TODO 直播间id(支持短id) - .roomId("Jiazi-9931") - .build(); - - // 2. 创建Client并传入配置、添加消息回调 - DouyinLiveChatClient client = new DouyinLiveChatClient(config, new IDouyinMsgListener() { -// @Override -// public void onMsg(IMsg msg) { -// log.debug("收到{}消息 {}", msg.getClass(), msg); -// } -// @Override -// public void onUnknownCmd(String cmdString, IMsg msg) { -// log.debug("收到未知CMD消息 {}", cmdString); -// } - - @Override - public void onDanmuMsg(DouyinBinaryFrameHandler douyinBinaryFrameHandler, DouyinDanmuMsg msg) { - log.info("{} 收到弹幕 [{}] {}({}):{}", douyinBinaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - }); - // 3. 开始监听直播间 - client.connect(); - - // 客户端连接状态回调 -// client.addStatusChangeListener(evt -> { -// if (evt.getNewValue().equals(ClientStatusEnums.CONNECTED)) { -// // TODO 要发送的弹幕内容,请注意控制发送频率;框架内置支持设置发送弹幕的最少时间间隔,小于时将忽略该次发送 -// client.sendDanmu("666666" + RandomUtil.randomNumbers(1)); -// } -// }); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java deleted file mode 100644 index d361e3a1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.api; - -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.ReUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpStatus; -import cn.hutool.http.HttpUtil; -import lombok.*; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; - -import java.util.Map; - -/** - * @author mjz - * @date 2024/1/3 - */ -@Slf4j -public class DouyinApis { - - public static final String KEY_COOKIE_TTWID = "ttwid"; - public static final String KEY_COOKIE_MS_TOKEN = "msToken"; - public static final String KEY_COOKIE_AC_NONCE = "__ac_nonce"; - public static final String MS_TOKEN_BASE_STRING = RandomUtil.BASE_CHAR_NUMBER_LOWER + "=_"; - public static final int MS_TOKEN_LENGTH = 107; - public static final int AC_NONCE_LENGTH = 21; - public static final String PATTERN_USER_UNIQUE_ID = "\\\\\"user_unique_id\\\\\":\\\\\"(\\d+)\\\\\""; - public static final String PATTERN_ROOM_ID = "\\\\\"roomId\\\\\":\\\\\"(\\d+)\\\\\""; - - public static RoomInitResult roomInit(Object roomId, String cookie) { - Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); - - @Cleanup - HttpResponse response1 = HttpUtil.createGet("https://live.douyin.com/").cookie(cookie).execute(); - String ttwid = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_TTWID, () -> response1.getCookie(KEY_COOKIE_TTWID).getValue()); - String msToken = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_MS_TOKEN, () -> RandomUtil.randomString(MS_TOKEN_BASE_STRING, MS_TOKEN_LENGTH)); - String __ac_nonce = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_AC_NONCE, () -> RandomUtil.randomString(AC_NONCE_LENGTH)); - - @Cleanup - HttpResponse response2 = HttpUtil.createGet("https://live.douyin.com/" + roomId) - .cookie(StrUtil.emptyToDefault(cookie, KEY_COOKIE_TTWID + "=" + ttwid + "; " + KEY_COOKIE_MS_TOKEN + "=" + msToken + "; " + KEY_COOKIE_AC_NONCE + "=" + __ac_nonce)) - .execute(); - if (response2.getStatus() != HttpStatus.HTTP_OK) { - throw new BaseException("获取" + roomId + "真实房间ID失败"); - } - String user_unique_id = StrUtil.emptyToDefault(ReUtil.getGroup1(PATTERN_USER_UNIQUE_ID, response2.body()), RandomUtil.randomNumbers(19)); - long realRoomId; - String realRoomIdString = ReUtil.getGroup1(PATTERN_ROOM_ID, response2.body()); - try { - realRoomId = NumberUtil.parseLong(realRoomIdString); - } catch (Exception e) { - throw new BaseException("获取" + roomId + "真实房间ID失败"); - } - - - return RoomInitResult.builder() - .ttwid(ttwid) - .msToken(msToken) - .acNonce(__ac_nonce) - .realRoomId(realRoomId) - .userUniqueId(user_unique_id) - .build(); - } - - public static RoomInitResult roomInit(Object roomId) { - return roomInit(roomId, null); - } - - @Getter - @Setter - @AllArgsConstructor - @NoArgsConstructor - @Builder - public static class RoomInitResult { - private String ttwid; - private String msToken; - private String acNonce; - private long realRoomId; - private String userUniqueId; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java deleted file mode 100644 index 47767a1c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.client; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.http.GlobalHeaders; -import cn.hutool.http.Header; -import cn.hutool.http.HttpUtil; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.douyin.api.DouyinApis; -import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; -import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinConnectionListener; -import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinConnectionHandler; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; - -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Slf4j -public class DouyinLiveChatClient extends BaseNettyClient< - DouyinLiveChatClientConfig, - DouyinCmdEnum, - IDouyinMsg, - IDouyinMsgListener, - DouyinConnectionHandler, - DouyinBinaryFrameHandler> { - - private DouyinApis.RoomInitResult roomInitResult = new DouyinApis.RoomInitResult(); - - public DouyinLiveChatClient(DouyinLiveChatClientConfig config, List msgListeners, IDouyinConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListeners(msgListeners); - - // 初始化 - this.init(); - } - - public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener, IDouyinConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListener(msgListener); - - // 初始化 - this.init(); - } - - public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener, IDouyinConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener) { - this(config, msgListener, null, new NioEventLoopGroup()); - } - - public DouyinLiveChatClient(DouyinLiveChatClientConfig config) { - this(config, null); - } - - @Override - public void init() { - roomInitResult = DouyinApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); - super.init(); - } - - @Override - public DouyinConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - DefaultHttpHeaders headers = new DefaultHttpHeaders(); - headers.add(Header.COOKIE.name(), DouyinApis.KEY_COOKIE_TTWID + "=" + roomInitResult.getTtwid()); - headers.add(Header.USER_AGENT.name(), GlobalHeaders.INSTANCE.header(Header.USER_AGENT)); - return new DouyinConnectionHandler( - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, headers, getConfig().getMaxFramePayloadLength()), - DouyinLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public DouyinBinaryFrameHandler initBinaryFrameHandler() { - return new DouyinBinaryFrameHandler(super.msgListeners, DouyinLiveChatClient.this); - } - - @Override - protected String getWebSocketUriString() { - long realRoomId = roomInitResult.getRealRoomId(); - String userUniqueId = roomInitResult.getUserUniqueId(); - - String webSocketUriString = super.getWebSocketUriString(); - Map queryParams = new HashMap<>(); - queryParams.put("app_name", "douyin_web"); - queryParams.put("version_code", getConfig().getVersionCode()); - queryParams.put("webcast_sdk_version", getConfig().getWebcastSdkVersion()); - queryParams.put("update_version_code", getConfig().getUpdateVersionCode()); - queryParams.put("compress", "gzip"); - queryParams.put("device_platform", "web"); - queryParams.put("cookie_enabled", "true"); - queryParams.put("screen_width", "800"); - queryParams.put("screen_height", "1280"); - queryParams.put("browser_language", "zh-CN"); - queryParams.put("browser_platform", "MacIntel"); - queryParams.put("browser_name", "Mozilla"); - queryParams.put("browser_version", "5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/116.0.0.0%20Safari/537.36"); - queryParams.put("browser_online", "true"); - queryParams.put("tz_name", "Asia/Shanghai"); - queryParams.put("host", "https://live.douyin.com"); - queryParams.put("im_path", "/webcast/im/fetch/"); - queryParams.put("endpoint", "live_pc"); - queryParams.put("identity", "audience"); - - queryParams.put("support_wrds", "1"); - queryParams.put("heartbeatDuration ", "0"); - queryParams.put("live_id", "1"); - queryParams.put("did_rule", "3"); - queryParams.put("aid", "6383"); - - queryParams.put("room_id", Long.toString(realRoomId)); - queryParams.put("user_unique_id", userUniqueId); - // TODO 生成signature - queryParams.put("signature", "00000000"); - queryParams.put("cursor", "t-" + System.currentTimeMillis() + "_r-1_d-1_u-1_h-1"); - queryParams.put("internal_ext", "internal_src:dim|" + - "wss_push_room_id:" + realRoomId + "|" + - "wss_push_did:" + userUniqueId + "|" + - "dim_log_id:" + DateUtil.format(new Date(), "yyyy-MM-dd") + RandomUtil.randomNumbers(6) + RandomUtil.randomString("0123456789ABCDEF", 20) + "|" + - "first_req_ms:" + System.currentTimeMillis() + "|" + - "fetch_time:" + System.currentTimeMillis() + "|" + - "seq:1|" + - "wss_info:0-" + System.currentTimeMillis() + "-0-0|" + - "wrds_kvs:WebcastRoomStatsMessage-" + System.nanoTime() + "_WebcastRoomRankMessage-" + System.nanoTime() + "_LotteryInfoSyncData-" + System.nanoTime() + "_WebcastActivityEmojiGroupsMessage-" + System.nanoTime()); - return webSocketUriString + "?" + HttpUtil.toParams(queryParams); - } - - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - super.sendDanmu(danmu, success, failed); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java deleted file mode 100644 index 6958bb0c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.config; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public class DouyinLiveChatClientConfig extends BaseNettyClientConfig { - - @Builder.Default - private int aggregatorMaxContentLength = 64 * 1024 * 1024; - - @Builder.Default - private int maxFramePayloadLength = 64 * 1024 * 1024; - - private String versionCode = "180800"; - - private String webcastSdkVersion = "1.0.12"; - - private String updateVersionCode = "1.0.12"; - - /** - * 示例 - * wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/ - * ?app_name=douyin_web - * &version_code=180800 - * &webcast_sdk_version=1.0.12 - * &update_version_code=1.0.12 - * &compress=gzip - * &device_platform=web - * &cookie_enabled=true - * &screen_width=1512 - * &screen_height=982 - * &browser_language=zh-CN - * &browser_platform=MacIntel - * &browser_name=Mozilla - * &browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/118.0.0.0%20Safari/537.36 - * &browser_online=true - * &tz_name=Asia/Shanghai - * &cursor=u-1_h-1_t-1704202376885_r-1_d-1 - * &internal_ext=internal_src:dim|wss_push_room_id:7319486720022301449|wss_push_did:7319492411867170356|dim_log_id:20240102213256AAA5B735ADBE992BEF6A|first_req_ms:1704202376757|fetch_time:1704202376885|seq:1|wss_info:0-1704202376885-0-0|wrds_kvs:WebcastActivityEmojiGroupsMessage-1704200830782138545_WebcastRoomRankMessage-1704202270876589607_WebcastRoomStatsMessage-1704202372842388781 - * &host=https://live.douyin.com - * &aid=6383 - * &live_id=1 - * &did_rule=3 - * &endpoint=live_pc - * &support_wrds=1 - * &user_unique_id=7319492411867170356 - * &im_path=/webcast/im/fetch/ - * &identity=audience - * &need_persist_msg_count=15 - * &room_id=7319486720022301449 - * &heartbeatDuration=0 - * &signature=Wk407jV1/WbnoIGk - */ - @Builder.Default - private String websocketUri = "wss://webcast5-ws-web-lf.douyin.com:443/webcast/im/push/v2/"; - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java deleted file mode 100644 index d7335cde..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.constant; - -import cn.hutool.core.util.StrUtil; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Getter -@RequiredArgsConstructor -public enum DouyinCmdEnum { - - /** - * 弹幕 - */ - WebcastChatMessage, - /** - * 礼物 - */ - WebcastGiftMessage, - /** - * 点赞 - */ - WebcastLikeMessage, - /** - * 入房 - */ - WebcastMemberMessage, - WebcastSocialMessage, - WebcastRoomUserSeqMessage, - WebcastFansclubMessage, - WebcastControlMessage, - ; - - public static DouyinCmdEnum getByName(String name) { - if (StrUtil.isBlank(name)) { - return null; - } - - for (DouyinCmdEnum value : values()) { - if (value.name().equals(name)) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java deleted file mode 100644 index 9be4cea7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinConnectionHandler; - -/** - * @author mjz - * @date 2024/1/2 - */ -public interface IDouyinConnectionListener extends IBaseConnectionListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java deleted file mode 100644 index 8f1c86ff..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.*; -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; - -/** - * @author mjz - * @date 2024/1/2 - */ -public interface IDouyinMsgListener extends IBaseMsgListener, - IDanmuMsgListener, - IGiftMsgListener, - IEnterRoomMsgListener, - ILikeMsgListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java deleted file mode 100644 index 32bb5301..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg; - -import cn.hutool.core.collection.CollUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DouyinDanmuMsg implements IDouyinMsg, IDanmuMsg { - - private douyin_webcast_chat_message_msg msg; - - @Override - public String getBadgeName() { - return msg.getUser().getFansClub().getData().getClubName(); - } - - @Override - public byte getBadgeLevel() { - return (byte) msg.getUser().getFansClub().getData().getLevel(); - } - - @Override - public String getUid() { - return Long.toString(msg.getUser().getId()); - } - - @Override - public String getUsername() { - return msg.getUser().getNickname(); - } - - @Override - public String getUserAvatar() { - return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); - } - - @Override - public String getContent() { - return msg.getContent(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java deleted file mode 100644 index 6c394f56..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg; - -import cn.hutool.core.collection.CollUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DouyinEnterRoomMsg implements IDouyinMsg, IEnterRoomMsg { - - private douyin_webcast_member_message_msg msg; - - @Override - public String getBadgeName() { - return msg.getUser().getFansClub().getData().getClubName(); - } - - @Override - public byte getBadgeLevel() { - return (byte) msg.getUser().getFansClub().getData().getLevel(); - } - - @Override - public String getUid() { - return Long.toString(msg.getUser().getId()); - } - - @Override - public String getUsername() { - return msg.getUser().getNickname(); - } - - @Override - public String getUserAvatar() { - return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java deleted file mode 100644 index 0bd35354..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg; - -import cn.hutool.core.collection.CollUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DouyinGiftMsg implements IDouyinMsg, IGiftMsg { - - private douyin_webcast_gift_message_msg msg; - - @Override - public String getBadgeName() { - return msg.getUser().getFansClub().getData().getClubName(); - } - - @Override - public byte getBadgeLevel() { - return (byte) msg.getUser().getFansClub().getData().getLevel(); - } - - @Override - public String getUid() { - return Long.toString(msg.getUser().getId()); - } - - @Override - public String getUsername() { - return msg.getUser().getNickname(); - } - - @Override - public String getUserAvatar() { - return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); - } - - @Override - public String getGiftName() { - return msg.getGift().getName(); - } - - @Override - public String getGiftImg() { - return CollUtil.getFirst(msg.getGift().getImage().getUrlListListList()); - } - - @Override - public String getGiftId() { - return Long.toString(msg.getLongGiftId()); - } - - @Override - public int getGiftCount() { - return (int) msg.getTotalCount(); - } - - @Override - public int getGiftPrice() { - return msg.getGift().getDiamondCount(); - } - - @Override - public String getReceiveUid() { - return Long.toString(msg.getToUser().getId()); - } - - @Override - public String getReceiveUsername() { - return msg.getToUser().getNickname(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java deleted file mode 100644 index ce029979..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg; - -import cn.hutool.core.collection.CollUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg; - -/** - * @author mjz - * @date 2024/1/31 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DouyinLikeMsg implements IDouyinMsg, ILikeMsg { - - private douyin_webcast_like_message_msg msg; - - @Override - public String getBadgeName() { - return msg.getUser().getFansClub().getData().getClubName(); - } - - @Override - public byte getBadgeLevel() { - return (byte) msg.getUser().getFansClub().getData().getLevel(); - } - - @Override - public String getUid() { - return Long.toString(msg.getUser().getId()); - } - - @Override - public String getUsername() { - return msg.getUser().getNickname(); - } - - @Override - public String getUserAvatar() { - return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); - } - - @Override - public int getClickCount() { - return (int) msg.getCount(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java deleted file mode 100644 index aa264a16..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; - -/** - * @author mjz - * @date 2024/1/2 - */ -public interface IDouyinCmdMsg extends IDouyinMsg, ICmdMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java deleted file mode 100644 index 6dc10954..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -/** - * @author mjz - * @date 2024/1/2 - */ -public interface IDouyinMsg extends IMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java deleted file mode 100644 index bddf8de0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.netty.handler; - -import cn.hutool.core.util.ZipUtil; -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; -import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; -import tech.ordinaryroad.live.chat.client.douyin.protobuf.*; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Slf4j -@ChannelHandler.Sharable -public class DouyinBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { - - private ChannelHandlerContext channelHandlerContext; - - public DouyinBinaryFrameHandler(List iDouyinMsgListeners, DouyinLiveChatClient client) { - super(iDouyinMsgListeners, client); - } - - public DouyinBinaryFrameHandler(List iDouyinMsgListeners, long roomId) { - super(iDouyinMsgListeners, roomId); - } - - @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { - super.handlerAdded(ctx); - channelHandlerContext = ctx; - } - - @Override - public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { - super.handlerRemoved(ctx); - channelHandlerContext = null; - } - - @Override - public void onCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { - if (super.msgListeners.isEmpty()) { - return; - } - - ByteString payload = ((douyin_cmd_msg) cmdMsg).getPayload(); - switch (cmd) { - case WebcastChatMessage: { - try { - douyin_webcast_chat_message_msg douyinWebcastChatMessageMsg = douyin_webcast_chat_message_msg.parseFrom(payload); - iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(DouyinBinaryFrameHandler.this, new DouyinDanmuMsg(douyinWebcastChatMessageMsg))); - } catch (IOException e) { - throw new BaseException(e); - } - break; - } - case WebcastGiftMessage: { - try { - douyin_webcast_gift_message_msg douyinWebcastGiftMessageMsg = douyin_webcast_gift_message_msg.parseFrom(payload); - iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(DouyinBinaryFrameHandler.this, new DouyinGiftMsg(douyinWebcastGiftMessageMsg))); - } catch (InvalidProtocolBufferException e) { - throw new BaseException(e); - } - break; - } - case WebcastMemberMessage: { - try { - douyin_webcast_member_message_msg douyinWebcastMemberMessageMsg = douyin_webcast_member_message_msg.parseFrom(payload); - iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(DouyinBinaryFrameHandler.this, new DouyinEnterRoomMsg(douyinWebcastMemberMessageMsg))); - } catch (InvalidProtocolBufferException e) { - throw new BaseException(e); - } - break; - } - case WebcastLikeMessage: { - try { - douyin_webcast_like_message_msg douyinWebcastLikeMessageMsg = douyin_webcast_like_message_msg.parseFrom(payload); - iteratorMsgListeners(msgListener -> msgListener.onLikeMsg(DouyinBinaryFrameHandler.this, new DouyinLikeMsg(douyinWebcastLikeMessageMsg))); - } catch (InvalidProtocolBufferException e) { - throw new BaseException(e); - } - break; - } - default: { - iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(DouyinBinaryFrameHandler.this, cmd, cmdMsg)); - } - } - } - - @Override - protected List decode(ByteBuf byteBuf) { - try { - douyin_websocket_frame douyinWebsocketFrame = douyin_websocket_frame.parseFrom(byteBuf.nioBuffer()); - ByteString payload = douyinWebsocketFrame.getPayload(); - byte[] bytes = ZipUtil.unGzip(payload.newInput()); - douyin_websocket_frame_msg douyinWebsocketFrameMsg = douyin_websocket_frame_msg.parseFrom(bytes); - - // 抖音不是使用心跳,而是ACK - if (douyinWebsocketFrameMsg.getNeedAck()) { - douyin_websocket_frame ack = douyin_websocket_frame.newBuilder() - .setLogId(douyinWebsocketFrame.getLogId()) - .setPayloadType("ack") - .setPayload(douyinWebsocketFrameMsg.getInternalExtBytes()) - .build(); - channelHandlerContext.writeAndFlush(new BinaryWebSocketFrame(Unpooled.wrappedBuffer(ack.toByteArray()))); - } - - return new ArrayList<>(douyinWebsocketFrameMsg.getMessagesListList()); - } catch (InvalidProtocolBufferException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java deleted file mode 100644 index 1b9c6f8f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyin.netty.handler; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Slf4j -@ChannelHandler.Sharable -public class DouyinConnectionHandler extends BaseNettyClientConnectionHandler { - - /** - * 以ClientConfig为主 - */ - private final Object roomId; - /** - * 以ClientConfig为主 - */ - private String cookie; - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, DouyinLiveChatClient client, IBaseConnectionListener listener) { - super(handshaker, client, listener); - this.roomId = client.getConfig().getRoomId(); - this.cookie = client.getConfig().getCookie(); - } - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, DouyinLiveChatClient client) { - this(handshaker, client, null); - } - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, IBaseConnectionListener listener, String cookie) { - super(handshaker, listener); - this.roomId = roomId; - this.cookie = cookie; - } - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, IBaseConnectionListener listener) { - this(handshaker, roomId, listener, null); - } - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String cookie) { - this(handshaker, roomId, null, cookie); - } - - public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId) { - this(handshaker, roomId, null, null); - } - - @Override - protected void sendHeartbeat(ChannelHandlerContext ctx) { - // ignore - } - - @Override - public void sendAuthRequest(Channel channel) { - // ignore - } - - @Override - protected long getHeartbeatPeriod() { - if (client == null) { - return DouyinLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; - } else { - return client.getConfig().getHeartbeatPeriod(); - } - } - - @Override - protected long getHeartbeatInitialDelay() { - if (client == null) { - return DouyinLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; - } else { - return client.getConfig().getHeartbeatInitialDelay(); - } - } - - public Object getRoomId() { - return client != null ? client.getConfig().getRoomId() : roomId; - } - - private String getCookie() { - return client != null ? client.getConfig().getCookie() : cookie; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java deleted file mode 100644 index f5ed4b41..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_cmd_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class Douyin_cmd_msgProto { - private Douyin_cmd_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024douyin_cmd_msg.proto\0222tech.ordinaryroa" + - "d.live.chat.client.douyin.protobuf\"\250\001\n\016d" + - "ouyin_cmd_msg\022\016\n\006method\030\001 \001(\t\022\017\n\007payload" + - "\030\002 \001(\014\022\016\n\006msg_id\030\003 \001(\003\022\020\n\010msg_type\030\004 \001(\005" + - "\022\016\n\006offset\030\005 \001(\003\022\027\n\017need_wrds_store\030\006 \001(" + - "\010\022\024\n\014wrds_version\030\007 \001(\003\022\024\n\014wrds_sub_key\030" + - "\010 \001(\tBQ\n2tech.ordinaryroad.live.chat.cli" + - "ent.douyin.protobufB\023Douyin_cmd_msgProto" + - "P\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor, - new java.lang.String[] { "Method", "Payload", "MsgId", "MsgType", "Offset", "NeedWrdsStore", "WrdsVersion", "WrdsSubKey", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java deleted file mode 100644 index 4e5a46d7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_chat_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class Douyin_webcast_chat_message_msgProto { - private Douyin_webcast_chat_message_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n%douyin_webcast_chat_message_msg.proto\022" + - "2tech.ordinaryroad.live.chat.client.douy" + - "in.protobuf\032\014Common.proto\032\nUser.proto\032\013I" + - "mage.proto\"\300\003\n\037douyin_webcast_chat_messa" + - "ge_msg\022\027\n\006common\030\001 \001(\0132\007.Common\022\023\n\004user\030" + - "\002 \001(\0132\005.User\022\017\n\007content\030\003 \001(\t\022\031\n\021visible" + - "_to_sender\030\004 \001(\010\022 \n\020background_image\030\005 \001" + - "(\0132\006.Image\022\036\n\026full_screen_text_color\030\006 \001" + - "(\t\022#\n\023background_image_v2\030\007 \001(\0132\006.Image\022" + - "\032\n\ngift_image\030\n \001(\0132\006.Image\022\024\n\014agree_msg" + - "_id\030\013 \001(\004\022\026\n\016priority_level\030\014 \001(\r\022\022\n\neve" + - "nt_time\030\017 \001(\004\022\023\n\013send_review\030\020 \001(\010\022\025\n\rfr" + - "om_intercom\030\021 \001(\010\022\037\n\027intercom_hide_user_" + - "card\030\022 \001(\010\022\017\n\007chat_by\030\024 \001(\t\022 \n\030individua" + - "l_chat_priority\030\025 \001(\rBb\n2tech.ordinaryro" + - "ad.live.chat.client.douyin.protobufB$Dou" + - "yin_webcast_chat_message_msgProtoP\001\242\002\003GP" + - "Bb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor, - new java.lang.String[] { "Common", "User", "Content", "VisibleToSender", "BackgroundImage", "FullScreenTextColor", "BackgroundImageV2", "GiftImage", "AgreeMsgId", "PriorityLevel", "EventTime", "SendReview", "FromIntercom", "IntercomHideUserCard", "ChatBy", "IndividualChatPriority", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java deleted file mode 100644 index 69ed4f92..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_gift_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class Douyin_webcast_gift_message_msgProto { - private Douyin_webcast_gift_message_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n%douyin_webcast_gift_message_msg.proto\022" + - "2tech.ordinaryroad.live.chat.client.douy" + - "in.protobuf\032\014Common.proto\032\nUser.proto\032\020T" + - "extEffect.proto\032\nText.proto\032\024GiftIMPrior" + - "ity.proto\032\020GiftStruct.proto\032\026PublicAreaC" + - "ommon.proto\"\277\006\n\037douyin_webcast_gift_mess" + - "age_msg\022\027\n\006common\030\001 \001(\0132\007.Common\022\024\n\014long" + - "_gift_id\030\002 \001(\004\022\030\n\020fan_ticket_count\030\003 \001(\004" + - "\022\023\n\013group_count\030\004 \001(\004\022\024\n\014repeat_count\030\005 " + - "\001(\004\022\023\n\013combo_count\030\006 \001(\004\022\023\n\004user\030\007 \001(\0132\005" + - ".User\022\026\n\007to_user\030\010 \001(\0132\005.User\022\022\n\nrepeat_" + - "end\030\t \001(\r\022 \n\013text_effect\030\n \001(\0132\013.TextEff" + - "ect\022\020\n\010group_id\030\013 \001(\004\022\030\n\020income_taskgift" + - "s\030\014 \001(\004\022\035\n\025room_fan_ticket_count\030\r \001(\004\022!" + - "\n\010priority\030\016 \001(\0132\017.GiftIMPriority\022\031\n\004gif" + - "t\030\017 \001(\0132\013.GiftStruct\022\016\n\006log_id\030\020 \001(\t\022\021\n\t" + - "send_type\030\021 \001(\004\022-\n\022public_area_common\030\022 " + - "\001(\0132\021.PublicAreaCommon\022 \n\021tray_display_t" + - "ext\030\023 \001(\0132\005.Text\022\036\n\026banned_display_effec" + - "ts\030\024 \001(\004\022\030\n\020display_for_self\030\031 \001(\010\022\032\n\022in" + - "teract_gift_info\030\032 \001(\t\022\025\n\rdiy_item_info\030" + - "\033 \001(\t\022\032\n\022min_asset_set_list\030\034 \003(\004\022\023\n\013tot" + - "al_count\030\035 \001(\004\022\032\n\022client_gift_source\030\036 \001" + - "(\r\022\030\n\020to_user_ids_list\030 \003(\004\022\022\n\nsend_tim" + - "et\030! \001(\004\022\036\n\026force_display_effectst\030\" \001(\004" + - "\022\020\n\010trace_id\030# \001(\t\022\031\n\021effect_display_ts\030" + - "$ \001(\004Bb\n2tech.ordinaryroad.live.chat.cli" + - "ent.douyin.protobufB$Douyin_webcast_gift" + - "_message_msgProtoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor, - new java.lang.String[] { "Common", "LongGiftId", "FanTicketCount", "GroupCount", "RepeatCount", "ComboCount", "User", "ToUser", "RepeatEnd", "TextEffect", "GroupId", "IncomeTaskgifts", "RoomFanTicketCount", "Priority", "Gift", "LogId", "SendType", "PublicAreaCommon", "TrayDisplayText", "BannedDisplayEffects", "DisplayForSelf", "InteractGiftInfo", "DiyItemInfo", "MinAssetSetList", "TotalCount", "ClientGiftSource", "ToUserIdsList", "SendTimet", "ForceDisplayEffectst", "TraceId", "EffectDisplayTs", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java deleted file mode 100644 index ccdb0088..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_member_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class Douyin_webcast_member_message_msgProto { - private Douyin_webcast_member_message_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable; - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\'douyin_webcast_member_message_msg.prot" + - "o\0222tech.ordinaryroad.live.chat.client.do" + - "uyin.protobuf\032\014Common.proto\032\nUser.proto\032" + - "\013Image.proto\032\nText.proto\"\203\005\n!douyin_webc" + - "ast_member_message_msg\022\027\n\006common\030\001 \001(\0132\007" + - ".Common\022\023\n\004user\030\002 \001(\0132\005.User\022\023\n\013memberCo" + - "unt\030\003 \001(\004\022\027\n\010operator\030\004 \001(\0132\005.User\022\024\n\014is" + - "SetToAdmin\030\005 \001(\010\022\021\n\tisTopUser\030\006 \001(\010\022\021\n\tr" + - "ankScore\030\007 \001(\003\022\021\n\ttopUserNo\030\010 \001(\003\022\021\n\tent" + - "erType\030\t \001(\003\022\016\n\006action\030\n \001(\003\022\031\n\021actionDe" + - "scription\030\013 \001(\t\022\016\n\006userId\030\014 \001(\003\022\016\n\006popSt" + - "r\030\016 \001(\t\022\037\n\017backgroundImage\030\020 \001(\0132\006.Image" + - "\022!\n\021backgroundImageV2\030\021 \001(\0132\006.Image\022 \n\021a" + - "nchorDisplayText\030\022 \001(\0132\005.Text\022\030\n\020userEnt" + - "erTipType\030\024 \001(\003\022\032\n\022anchorEnterTipType\030\025 " + - "\001(\003\022\201\001\n\016buriedPointMap\030\026 \003(\0132i.tech.ordi" + - "naryroad.live.chat.client.douyin.protobu" + - "f.douyin_webcast_member_message_msg.Buri" + - "edPointMapEntry\0325\n\023BuriedPointMapEntry\022\013" + - "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001Bd\n2tech.o" + - "rdinaryroad.live.chat.client.douyin.prot" + - "obufB&Douyin_webcast_member_message_msgP" + - "rotoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor, - new java.lang.String[] { "Common", "User", "MemberCount", "Operator", "IsSetToAdmin", "IsTopUser", "RankScore", "TopUserNo", "EnterType", "Action", "ActionDescription", "UserId", "PopStr", "BackgroundImage", "BackgroundImageV2", "AnchorDisplayText", "UserEnterTipType", "AnchorEnterTipType", "BuriedPointMap", }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor = - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor.getNestedTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java deleted file mode 100644 index 620d99e3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class Douyin_websocket_frameProto { - private Douyin_websocket_frameProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable; - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\034douyin_websocket_frame.proto\0222tech.ord" + - "inaryroad.live.chat.client.douyin.protob" + - "uf\"\301\002\n\026douyin_websocket_frame\022\016\n\006seq_id\030" + - "\001 \001(\004\022\016\n\006log_id\030\002 \001(\004\022\017\n\007service\030\003 \001(\004\022\016" + - "\n\006method\030\004 \001(\004\022q\n\014headers_list\030\005 \003(\0132[.t" + - "ech.ordinaryroad.live.chat.client.douyin" + - ".protobuf.douyin_websocket_frame.Headers" + - "ListEntry\022\030\n\020payload_encoding\030\006 \001(\t\022\024\n\014p" + - "ayload_type\030\007 \001(\t\022\017\n\007payload\030\010 \001(\014\0322\n\020He" + - "adersListEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001" + - "(\t:\0028\001BY\n2tech.ordinaryroad.live.chat.cl" + - "ient.douyin.protobufB\033Douyin_websocket_f" + - "rameProtoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor, - new java.lang.String[] { "SeqId", "LogId", "Service", "Method", "HeadersList", "PayloadEncoding", "PayloadType", "Payload", }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor = - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor.getNestedTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java deleted file mode 100644 index 44f8e78b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java +++ /dev/null @@ -1,1122 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_cmd_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; -import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinCmdMsg; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg} - */ -public final class douyin_cmd_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) - douyin_cmd_msgOrBuilder, IDouyinCmdMsg { - - @Override - public String getCmd() { - return getMethod(); - } - - @Override - public void setCmd(String cmd) { - // ignore - // method_ = cmd; - } - - @Override - public DouyinCmdEnum getCmdEnum() { - return DouyinCmdEnum.getByName(getMethod()); - } - -private static final long serialVersionUID = 0L; - // Use douyin_cmd_msg.newBuilder() to construct. - private douyin_cmd_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_cmd_msg() { - method_ = ""; - payload_ = com.google.protobuf.ByteString.EMPTY; - wrdsSubKey_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_cmd_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder.class); - } - - public static final int METHOD_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object method_ = ""; - /** - * string method = 1; - * @return The method. - */ - @java.lang.Override - public java.lang.String getMethod() { - java.lang.Object ref = method_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - method_ = s; - return s; - } - } - /** - * string method = 1; - * @return The bytes for method. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMethodBytes() { - java.lang.Object ref = method_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - method_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PAYLOAD_FIELD_NUMBER = 2; - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 2; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - - public static final int MSG_ID_FIELD_NUMBER = 3; - private long msgId_ = 0L; - /** - * int64 msg_id = 3; - * @return The msgId. - */ - @java.lang.Override - public long getMsgId() { - return msgId_; - } - - public static final int MSG_TYPE_FIELD_NUMBER = 4; - private int msgType_ = 0; - /** - * int32 msg_type = 4; - * @return The msgType. - */ - @java.lang.Override - public int getMsgType() { - return msgType_; - } - - public static final int OFFSET_FIELD_NUMBER = 5; - private long offset_ = 0L; - /** - * int64 offset = 5; - * @return The offset. - */ - @java.lang.Override - public long getOffset() { - return offset_; - } - - public static final int NEED_WRDS_STORE_FIELD_NUMBER = 6; - private boolean needWrdsStore_ = false; - /** - * bool need_wrds_store = 6; - * @return The needWrdsStore. - */ - @java.lang.Override - public boolean getNeedWrdsStore() { - return needWrdsStore_; - } - - public static final int WRDS_VERSION_FIELD_NUMBER = 7; - private long wrdsVersion_ = 0L; - /** - * int64 wrds_version = 7; - * @return The wrdsVersion. - */ - @java.lang.Override - public long getWrdsVersion() { - return wrdsVersion_; - } - - public static final int WRDS_SUB_KEY_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private volatile java.lang.Object wrdsSubKey_ = ""; - /** - * string wrds_sub_key = 8; - * @return The wrdsSubKey. - */ - @java.lang.Override - public java.lang.String getWrdsSubKey() { - java.lang.Object ref = wrdsSubKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - wrdsSubKey_ = s; - return s; - } - } - /** - * string wrds_sub_key = 8; - * @return The bytes for wrdsSubKey. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getWrdsSubKeyBytes() { - java.lang.Object ref = wrdsSubKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - wrdsSubKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, method_); - } - if (!payload_.isEmpty()) { - output.writeBytes(2, payload_); - } - if (msgId_ != 0L) { - output.writeInt64(3, msgId_); - } - if (msgType_ != 0) { - output.writeInt32(4, msgType_); - } - if (offset_ != 0L) { - output.writeInt64(5, offset_); - } - if (needWrdsStore_ != false) { - output.writeBool(6, needWrdsStore_); - } - if (wrdsVersion_ != 0L) { - output.writeInt64(7, wrdsVersion_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(wrdsSubKey_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 8, wrdsSubKey_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, method_); - } - if (!payload_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(2, payload_); - } - if (msgId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, msgId_); - } - if (msgType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(4, msgType_); - } - if (offset_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(5, offset_); - } - if (needWrdsStore_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, needWrdsStore_); - } - if (wrdsVersion_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(7, wrdsVersion_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(wrdsSubKey_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, wrdsSubKey_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) obj; - - if (!getMethod() - .equals(other.getMethod())) return false; - if (!getPayload() - .equals(other.getPayload())) return false; - if (getMsgId() - != other.getMsgId()) return false; - if (getMsgType() - != other.getMsgType()) return false; - if (getOffset() - != other.getOffset()) return false; - if (getNeedWrdsStore() - != other.getNeedWrdsStore()) return false; - if (getWrdsVersion() - != other.getWrdsVersion()) return false; - if (!getWrdsSubKey() - .equals(other.getWrdsSubKey())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + METHOD_FIELD_NUMBER; - hash = (53 * hash) + getMethod().hashCode(); - hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; - hash = (53 * hash) + getPayload().hashCode(); - hash = (37 * hash) + MSG_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMsgId()); - hash = (37 * hash) + MSG_TYPE_FIELD_NUMBER; - hash = (53 * hash) + getMsgType(); - hash = (37 * hash) + OFFSET_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getOffset()); - hash = (37 * hash) + NEED_WRDS_STORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getNeedWrdsStore()); - hash = (37 * hash) + WRDS_VERSION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getWrdsVersion()); - hash = (37 * hash) + WRDS_SUB_KEY_FIELD_NUMBER; - hash = (53 * hash) + getWrdsSubKey().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - method_ = ""; - payload_ = com.google.protobuf.ByteString.EMPTY; - msgId_ = 0L; - msgType_ = 0; - offset_ = 0L; - needWrdsStore_ = false; - wrdsVersion_ = 0L; - wrdsSubKey_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.method_ = method_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.payload_ = payload_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.msgId_ = msgId_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.msgType_ = msgType_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.offset_ = offset_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.needWrdsStore_ = needWrdsStore_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.wrdsVersion_ = wrdsVersion_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.wrdsSubKey_ = wrdsSubKey_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()) return this; - if (!other.getMethod().isEmpty()) { - method_ = other.method_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { - setPayload(other.getPayload()); - } - if (other.getMsgId() != 0L) { - setMsgId(other.getMsgId()); - } - if (other.getMsgType() != 0) { - setMsgType(other.getMsgType()); - } - if (other.getOffset() != 0L) { - setOffset(other.getOffset()); - } - if (other.getNeedWrdsStore() != false) { - setNeedWrdsStore(other.getNeedWrdsStore()); - } - if (other.getWrdsVersion() != 0L) { - setWrdsVersion(other.getWrdsVersion()); - } - if (!other.getWrdsSubKey().isEmpty()) { - wrdsSubKey_ = other.wrdsSubKey_; - bitField0_ |= 0x00000080; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - method_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - payload_ = input.readBytes(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - msgId_ = input.readInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - msgType_ = input.readInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - offset_ = input.readInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - needWrdsStore_ = input.readBool(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - wrdsVersion_ = input.readInt64(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 66: { - wrdsSubKey_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000080; - break; - } // case 66 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object method_ = ""; - /** - * string method = 1; - * @return The method. - */ - public java.lang.String getMethod() { - java.lang.Object ref = method_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - method_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string method = 1; - * @return The bytes for method. - */ - public com.google.protobuf.ByteString - getMethodBytes() { - java.lang.Object ref = method_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - method_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string method = 1; - * @param value The method to set. - * @return This builder for chaining. - */ - public Builder setMethod( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - method_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string method = 1; - * @return This builder for chaining. - */ - public Builder clearMethod() { - method_ = getDefaultInstance().getMethod(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string method = 1; - * @param value The bytes for method to set. - * @return This builder for chaining. - */ - public Builder setMethodBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - method_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 2; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - /** - * bytes payload = 2; - * @param value The payload to set. - * @return This builder for chaining. - */ - public Builder setPayload(com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - payload_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bytes payload = 2; - * @return This builder for chaining. - */ - public Builder clearPayload() { - bitField0_ = (bitField0_ & ~0x00000002); - payload_ = getDefaultInstance().getPayload(); - onChanged(); - return this; - } - - private long msgId_ ; - /** - * int64 msg_id = 3; - * @return The msgId. - */ - @java.lang.Override - public long getMsgId() { - return msgId_; - } - /** - * int64 msg_id = 3; - * @param value The msgId to set. - * @return This builder for chaining. - */ - public Builder setMsgId(long value) { - - msgId_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 msg_id = 3; - * @return This builder for chaining. - */ - public Builder clearMsgId() { - bitField0_ = (bitField0_ & ~0x00000004); - msgId_ = 0L; - onChanged(); - return this; - } - - private int msgType_ ; - /** - * int32 msg_type = 4; - * @return The msgType. - */ - @java.lang.Override - public int getMsgType() { - return msgType_; - } - /** - * int32 msg_type = 4; - * @param value The msgType to set. - * @return This builder for chaining. - */ - public Builder setMsgType(int value) { - - msgType_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * int32 msg_type = 4; - * @return This builder for chaining. - */ - public Builder clearMsgType() { - bitField0_ = (bitField0_ & ~0x00000008); - msgType_ = 0; - onChanged(); - return this; - } - - private long offset_ ; - /** - * int64 offset = 5; - * @return The offset. - */ - @java.lang.Override - public long getOffset() { - return offset_; - } - /** - * int64 offset = 5; - * @param value The offset to set. - * @return This builder for chaining. - */ - public Builder setOffset(long value) { - - offset_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * int64 offset = 5; - * @return This builder for chaining. - */ - public Builder clearOffset() { - bitField0_ = (bitField0_ & ~0x00000010); - offset_ = 0L; - onChanged(); - return this; - } - - private boolean needWrdsStore_ ; - /** - * bool need_wrds_store = 6; - * @return The needWrdsStore. - */ - @java.lang.Override - public boolean getNeedWrdsStore() { - return needWrdsStore_; - } - /** - * bool need_wrds_store = 6; - * @param value The needWrdsStore to set. - * @return This builder for chaining. - */ - public Builder setNeedWrdsStore(boolean value) { - - needWrdsStore_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * bool need_wrds_store = 6; - * @return This builder for chaining. - */ - public Builder clearNeedWrdsStore() { - bitField0_ = (bitField0_ & ~0x00000020); - needWrdsStore_ = false; - onChanged(); - return this; - } - - private long wrdsVersion_ ; - /** - * int64 wrds_version = 7; - * @return The wrdsVersion. - */ - @java.lang.Override - public long getWrdsVersion() { - return wrdsVersion_; - } - /** - * int64 wrds_version = 7; - * @param value The wrdsVersion to set. - * @return This builder for chaining. - */ - public Builder setWrdsVersion(long value) { - - wrdsVersion_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * int64 wrds_version = 7; - * @return This builder for chaining. - */ - public Builder clearWrdsVersion() { - bitField0_ = (bitField0_ & ~0x00000040); - wrdsVersion_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object wrdsSubKey_ = ""; - /** - * string wrds_sub_key = 8; - * @return The wrdsSubKey. - */ - public java.lang.String getWrdsSubKey() { - java.lang.Object ref = wrdsSubKey_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - wrdsSubKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string wrds_sub_key = 8; - * @return The bytes for wrdsSubKey. - */ - public com.google.protobuf.ByteString - getWrdsSubKeyBytes() { - java.lang.Object ref = wrdsSubKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - wrdsSubKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string wrds_sub_key = 8; - * @param value The wrdsSubKey to set. - * @return This builder for chaining. - */ - public Builder setWrdsSubKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - wrdsSubKey_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * string wrds_sub_key = 8; - * @return This builder for chaining. - */ - public Builder clearWrdsSubKey() { - wrdsSubKey_ = getDefaultInstance().getWrdsSubKey(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - return this; - } - /** - * string wrds_sub_key = 8; - * @param value The bytes for wrdsSubKey to set. - * @return This builder for chaining. - */ - public Builder setWrdsSubKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - wrdsSubKey_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_cmd_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java deleted file mode 100644 index ed0175d5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_cmd_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_cmd_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * string method = 1; - * @return The method. - */ - java.lang.String getMethod(); - /** - * string method = 1; - * @return The bytes for method. - */ - com.google.protobuf.ByteString - getMethodBytes(); - - /** - * bytes payload = 2; - * @return The payload. - */ - com.google.protobuf.ByteString getPayload(); - - /** - * int64 msg_id = 3; - * @return The msgId. - */ - long getMsgId(); - - /** - * int32 msg_type = 4; - * @return The msgType. - */ - int getMsgType(); - - /** - * int64 offset = 5; - * @return The offset. - */ - long getOffset(); - - /** - * bool need_wrds_store = 6; - * @return The needWrdsStore. - */ - boolean getNeedWrdsStore(); - - /** - * int64 wrds_version = 7; - * @return The wrdsVersion. - */ - long getWrdsVersion(); - - /** - * string wrds_sub_key = 8; - * @return The wrdsSubKey. - */ - java.lang.String getWrdsSubKey(); - /** - * string wrds_sub_key = 8; - * @return The bytes for wrdsSubKey. - */ - com.google.protobuf.ByteString - getWrdsSubKeyBytes(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java deleted file mode 100644 index ae1a4d49..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java +++ /dev/null @@ -1,2384 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_chat_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg} - */ -public final class douyin_webcast_chat_message_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) - douyin_webcast_chat_message_msgOrBuilder { - private static final long serialVersionUID = 0L; - // Use douyin_webcast_chat_message_msg.newBuilder() to construct. - private douyin_webcast_chat_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_webcast_chat_message_msg() { - content_ = ""; - fullScreenTextColor_ = ""; - chatBy_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_webcast_chat_message_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.Builder.class); - } - - public static final int COMMON_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - @java.lang.Override - public boolean hasCommon() { - return common_ != null; - } - /** - * .Common common = 1; - * @return The common. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - /** - * .Common common = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int CONTENT_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object content_ = ""; - /** - * string content = 3; - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * string content = 3; - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int VISIBLE_TO_SENDER_FIELD_NUMBER = 4; - private boolean visibleToSender_ = false; - /** - * bool visible_to_sender = 4; - * @return The visibleToSender. - */ - @java.lang.Override - public boolean getVisibleToSender() { - return visibleToSender_; - } - - public static final int BACKGROUND_IMAGE_FIELD_NUMBER = 5; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; - /** - * .Image background_image = 5; - * @return Whether the backgroundImage field is set. - */ - @java.lang.Override - public boolean hasBackgroundImage() { - return backgroundImage_ != null; - } - /** - * .Image background_image = 5; - * @return The backgroundImage. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - /** - * .Image background_image = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - - public static final int FULL_SCREEN_TEXT_COLOR_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object fullScreenTextColor_ = ""; - /** - * string full_screen_text_color = 6; - * @return The fullScreenTextColor. - */ - @java.lang.Override - public java.lang.String getFullScreenTextColor() { - java.lang.Object ref = fullScreenTextColor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fullScreenTextColor_ = s; - return s; - } - } - /** - * string full_screen_text_color = 6; - * @return The bytes for fullScreenTextColor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getFullScreenTextColorBytes() { - java.lang.Object ref = fullScreenTextColor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fullScreenTextColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BACKGROUND_IMAGE_V2_FIELD_NUMBER = 7; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; - /** - * .Image background_image_v2 = 7; - * @return Whether the backgroundImageV2 field is set. - */ - @java.lang.Override - public boolean hasBackgroundImageV2() { - return backgroundImageV2_ != null; - } - /** - * .Image background_image_v2 = 7; - * @return The backgroundImageV2. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - /** - * .Image background_image_v2 = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - - public static final int GIFT_IMAGE_FIELD_NUMBER = 10; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftImage_; - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - * @return Whether the giftImage field is set. - */ - @java.lang.Override - public boolean hasGiftImage() { - return giftImage_ != null; - } - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - * @return The giftImage. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage() { - return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; - } - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder() { - return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; - } - - public static final int AGREE_MSG_ID_FIELD_NUMBER = 11; - private long agreeMsgId_ = 0L; - /** - * uint64 agree_msg_id = 11; - * @return The agreeMsgId. - */ - @java.lang.Override - public long getAgreeMsgId() { - return agreeMsgId_; - } - - public static final int PRIORITY_LEVEL_FIELD_NUMBER = 12; - private int priorityLevel_ = 0; - /** - * uint32 priority_level = 12; - * @return The priorityLevel. - */ - @java.lang.Override - public int getPriorityLevel() { - return priorityLevel_; - } - - public static final int EVENT_TIME_FIELD_NUMBER = 15; - private long eventTime_ = 0L; - /** - *
-   * LandscapeAreaCommon landscape_area_common = 13;
-   * 
- * - * uint64 event_time = 15; - * @return The eventTime. - */ - @java.lang.Override - public long getEventTime() { - return eventTime_; - } - - public static final int SEND_REVIEW_FIELD_NUMBER = 16; - private boolean sendReview_ = false; - /** - * bool send_review = 16; - * @return The sendReview. - */ - @java.lang.Override - public boolean getSendReview() { - return sendReview_; - } - - public static final int FROM_INTERCOM_FIELD_NUMBER = 17; - private boolean fromIntercom_ = false; - /** - * bool from_intercom = 17; - * @return The fromIntercom. - */ - @java.lang.Override - public boolean getFromIntercom() { - return fromIntercom_; - } - - public static final int INTERCOM_HIDE_USER_CARD_FIELD_NUMBER = 18; - private boolean intercomHideUserCard_ = false; - /** - * bool intercom_hide_user_card = 18; - * @return The intercomHideUserCard. - */ - @java.lang.Override - public boolean getIntercomHideUserCard() { - return intercomHideUserCard_; - } - - public static final int CHAT_BY_FIELD_NUMBER = 20; - @SuppressWarnings("serial") - private volatile java.lang.Object chatBy_ = ""; - /** - *
-   * repeated string chatTagsList = 19;
-   * 
- * - * string chat_by = 20; - * @return The chatBy. - */ - @java.lang.Override - public java.lang.String getChatBy() { - java.lang.Object ref = chatBy_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - chatBy_ = s; - return s; - } - } - /** - *
-   * repeated string chatTagsList = 19;
-   * 
- * - * string chat_by = 20; - * @return The bytes for chatBy. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getChatByBytes() { - java.lang.Object ref = chatBy_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - chatBy_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int INDIVIDUAL_CHAT_PRIORITY_FIELD_NUMBER = 21; - private int individualChatPriority_ = 0; - /** - *
-   * Text rtf_content = 22 ;
-   * 
- * - * uint32 individual_chat_priority = 21; - * @return The individualChatPriority. - */ - @java.lang.Override - public int getIndividualChatPriority() { - return individualChatPriority_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (common_ != null) { - output.writeMessage(1, getCommon()); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); - } - if (visibleToSender_ != false) { - output.writeBool(4, visibleToSender_); - } - if (backgroundImage_ != null) { - output.writeMessage(5, getBackgroundImage()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fullScreenTextColor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, fullScreenTextColor_); - } - if (backgroundImageV2_ != null) { - output.writeMessage(7, getBackgroundImageV2()); - } - if (giftImage_ != null) { - output.writeMessage(10, getGiftImage()); - } - if (agreeMsgId_ != 0L) { - output.writeUInt64(11, agreeMsgId_); - } - if (priorityLevel_ != 0) { - output.writeUInt32(12, priorityLevel_); - } - if (eventTime_ != 0L) { - output.writeUInt64(15, eventTime_); - } - if (sendReview_ != false) { - output.writeBool(16, sendReview_); - } - if (fromIntercom_ != false) { - output.writeBool(17, fromIntercom_); - } - if (intercomHideUserCard_ != false) { - output.writeBool(18, intercomHideUserCard_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(chatBy_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 20, chatBy_); - } - if (individualChatPriority_ != 0) { - output.writeUInt32(21, individualChatPriority_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (common_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getCommon()); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); - } - if (visibleToSender_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(4, visibleToSender_); - } - if (backgroundImage_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getBackgroundImage()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fullScreenTextColor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, fullScreenTextColor_); - } - if (backgroundImageV2_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getBackgroundImageV2()); - } - if (giftImage_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, getGiftImage()); - } - if (agreeMsgId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(11, agreeMsgId_); - } - if (priorityLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(12, priorityLevel_); - } - if (eventTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(15, eventTime_); - } - if (sendReview_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(16, sendReview_); - } - if (fromIntercom_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(17, fromIntercom_); - } - if (intercomHideUserCard_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(18, intercomHideUserCard_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(chatBy_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, chatBy_); - } - if (individualChatPriority_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(21, individualChatPriority_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) obj; - - if (hasCommon() != other.hasCommon()) return false; - if (hasCommon()) { - if (!getCommon() - .equals(other.getCommon())) return false; - } - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (!getContent() - .equals(other.getContent())) return false; - if (getVisibleToSender() - != other.getVisibleToSender()) return false; - if (hasBackgroundImage() != other.hasBackgroundImage()) return false; - if (hasBackgroundImage()) { - if (!getBackgroundImage() - .equals(other.getBackgroundImage())) return false; - } - if (!getFullScreenTextColor() - .equals(other.getFullScreenTextColor())) return false; - if (hasBackgroundImageV2() != other.hasBackgroundImageV2()) return false; - if (hasBackgroundImageV2()) { - if (!getBackgroundImageV2() - .equals(other.getBackgroundImageV2())) return false; - } - if (hasGiftImage() != other.hasGiftImage()) return false; - if (hasGiftImage()) { - if (!getGiftImage() - .equals(other.getGiftImage())) return false; - } - if (getAgreeMsgId() - != other.getAgreeMsgId()) return false; - if (getPriorityLevel() - != other.getPriorityLevel()) return false; - if (getEventTime() - != other.getEventTime()) return false; - if (getSendReview() - != other.getSendReview()) return false; - if (getFromIntercom() - != other.getFromIntercom()) return false; - if (getIntercomHideUserCard() - != other.getIntercomHideUserCard()) return false; - if (!getChatBy() - .equals(other.getChatBy())) return false; - if (getIndividualChatPriority() - != other.getIndividualChatPriority()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCommon()) { - hash = (37 * hash) + COMMON_FIELD_NUMBER; - hash = (53 * hash) + getCommon().hashCode(); - } - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (37 * hash) + VISIBLE_TO_SENDER_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getVisibleToSender()); - if (hasBackgroundImage()) { - hash = (37 * hash) + BACKGROUND_IMAGE_FIELD_NUMBER; - hash = (53 * hash) + getBackgroundImage().hashCode(); - } - hash = (37 * hash) + FULL_SCREEN_TEXT_COLOR_FIELD_NUMBER; - hash = (53 * hash) + getFullScreenTextColor().hashCode(); - if (hasBackgroundImageV2()) { - hash = (37 * hash) + BACKGROUND_IMAGE_V2_FIELD_NUMBER; - hash = (53 * hash) + getBackgroundImageV2().hashCode(); - } - if (hasGiftImage()) { - hash = (37 * hash) + GIFT_IMAGE_FIELD_NUMBER; - hash = (53 * hash) + getGiftImage().hashCode(); - } - hash = (37 * hash) + AGREE_MSG_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAgreeMsgId()); - hash = (37 * hash) + PRIORITY_LEVEL_FIELD_NUMBER; - hash = (53 * hash) + getPriorityLevel(); - hash = (37 * hash) + EVENT_TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getEventTime()); - hash = (37 * hash) + SEND_REVIEW_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getSendReview()); - hash = (37 * hash) + FROM_INTERCOM_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getFromIntercom()); - hash = (37 * hash) + INTERCOM_HIDE_USER_CARD_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIntercomHideUserCard()); - hash = (37 * hash) + CHAT_BY_FIELD_NUMBER; - hash = (53 * hash) + getChatBy().hashCode(); - hash = (37 * hash) + INDIVIDUAL_CHAT_PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + getIndividualChatPriority(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - content_ = ""; - visibleToSender_ = false; - backgroundImage_ = null; - if (backgroundImageBuilder_ != null) { - backgroundImageBuilder_.dispose(); - backgroundImageBuilder_ = null; - } - fullScreenTextColor_ = ""; - backgroundImageV2_ = null; - if (backgroundImageV2Builder_ != null) { - backgroundImageV2Builder_.dispose(); - backgroundImageV2Builder_ = null; - } - giftImage_ = null; - if (giftImageBuilder_ != null) { - giftImageBuilder_.dispose(); - giftImageBuilder_ = null; - } - agreeMsgId_ = 0L; - priorityLevel_ = 0; - eventTime_ = 0L; - sendReview_ = false; - fromIntercom_ = false; - intercomHideUserCard_ = false; - chatBy_ = ""; - individualChatPriority_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.common_ = commonBuilder_ == null - ? common_ - : commonBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.content_ = content_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.visibleToSender_ = visibleToSender_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.backgroundImage_ = backgroundImageBuilder_ == null - ? backgroundImage_ - : backgroundImageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.fullScreenTextColor_ = fullScreenTextColor_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.backgroundImageV2_ = backgroundImageV2Builder_ == null - ? backgroundImageV2_ - : backgroundImageV2Builder_.build(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.giftImage_ = giftImageBuilder_ == null - ? giftImage_ - : giftImageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.agreeMsgId_ = agreeMsgId_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.priorityLevel_ = priorityLevel_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.eventTime_ = eventTime_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.sendReview_ = sendReview_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.fromIntercom_ = fromIntercom_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.intercomHideUserCard_ = intercomHideUserCard_; - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.chatBy_ = chatBy_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.individualChatPriority_ = individualChatPriority_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.getDefaultInstance()) return this; - if (other.hasCommon()) { - mergeCommon(other.getCommon()); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (!other.getContent().isEmpty()) { - content_ = other.content_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.getVisibleToSender() != false) { - setVisibleToSender(other.getVisibleToSender()); - } - if (other.hasBackgroundImage()) { - mergeBackgroundImage(other.getBackgroundImage()); - } - if (!other.getFullScreenTextColor().isEmpty()) { - fullScreenTextColor_ = other.fullScreenTextColor_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.hasBackgroundImageV2()) { - mergeBackgroundImageV2(other.getBackgroundImageV2()); - } - if (other.hasGiftImage()) { - mergeGiftImage(other.getGiftImage()); - } - if (other.getAgreeMsgId() != 0L) { - setAgreeMsgId(other.getAgreeMsgId()); - } - if (other.getPriorityLevel() != 0) { - setPriorityLevel(other.getPriorityLevel()); - } - if (other.getEventTime() != 0L) { - setEventTime(other.getEventTime()); - } - if (other.getSendReview() != false) { - setSendReview(other.getSendReview()); - } - if (other.getFromIntercom() != false) { - setFromIntercom(other.getFromIntercom()); - } - if (other.getIntercomHideUserCard() != false) { - setIntercomHideUserCard(other.getIntercomHideUserCard()); - } - if (!other.getChatBy().isEmpty()) { - chatBy_ = other.chatBy_; - bitField0_ |= 0x00004000; - onChanged(); - } - if (other.getIndividualChatPriority() != 0) { - setIndividualChatPriority(other.getIndividualChatPriority()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getCommonFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - content_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 32: { - visibleToSender_ = input.readBool(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - input.readMessage( - getBackgroundImageFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - fullScreenTextColor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - input.readMessage( - getBackgroundImageV2FieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 82: { - input.readMessage( - getGiftImageFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000080; - break; - } // case 82 - case 88: { - agreeMsgId_ = input.readUInt64(); - bitField0_ |= 0x00000100; - break; - } // case 88 - case 96: { - priorityLevel_ = input.readUInt32(); - bitField0_ |= 0x00000200; - break; - } // case 96 - case 120: { - eventTime_ = input.readUInt64(); - bitField0_ |= 0x00000400; - break; - } // case 120 - case 128: { - sendReview_ = input.readBool(); - bitField0_ |= 0x00000800; - break; - } // case 128 - case 136: { - fromIntercom_ = input.readBool(); - bitField0_ |= 0x00001000; - break; - } // case 136 - case 144: { - intercomHideUserCard_ = input.readBool(); - bitField0_ |= 0x00002000; - break; - } // case 144 - case 162: { - chatBy_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00004000; - break; - } // case 162 - case 168: { - individualChatPriority_ = input.readUInt32(); - bitField0_ |= 0x00008000; - break; - } // case 168 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - public boolean hasCommon() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Common common = 1; - * @return The common. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - if (commonBuilder_ == null) { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } else { - return commonBuilder_.getMessage(); - } - } - /** - * .Common common = 1; - */ - public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - common_ = value; - } else { - commonBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder setCommon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { - if (commonBuilder_ == null) { - common_ = builderForValue.build(); - } else { - commonBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - common_ != null && - common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { - getCommonBuilder().mergeFrom(value); - } else { - common_ = value; - } - } else { - commonBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder clearCommon() { - bitField0_ = (bitField0_ & ~0x00000001); - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getCommonFieldBuilder().getBuilder(); - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - if (commonBuilder_ != null) { - return commonBuilder_.getMessageOrBuilder(); - } else { - return common_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - } - /** - * .Common common = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> - getCommonFieldBuilder() { - if (commonBuilder_ == null) { - commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( - getCommon(), - getParentForChildren(), - isClean()); - common_ = null; - } - return commonBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .User user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private java.lang.Object content_ = ""; - /** - * string content = 3; - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string content = 3; - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string content = 3; - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - content_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string content = 3; - * @return This builder for chaining. - */ - public Builder clearContent() { - content_ = getDefaultInstance().getContent(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string content = 3; - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - content_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private boolean visibleToSender_ ; - /** - * bool visible_to_sender = 4; - * @return The visibleToSender. - */ - @java.lang.Override - public boolean getVisibleToSender() { - return visibleToSender_; - } - /** - * bool visible_to_sender = 4; - * @param value The visibleToSender to set. - * @return This builder for chaining. - */ - public Builder setVisibleToSender(boolean value) { - - visibleToSender_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * bool visible_to_sender = 4; - * @return This builder for chaining. - */ - public Builder clearVisibleToSender() { - bitField0_ = (bitField0_ & ~0x00000008); - visibleToSender_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageBuilder_; - /** - * .Image background_image = 5; - * @return Whether the backgroundImage field is set. - */ - public boolean hasBackgroundImage() { - return ((bitField0_ & 0x00000010) != 0); - } - /** - * .Image background_image = 5; - * @return The backgroundImage. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { - if (backgroundImageBuilder_ == null) { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } else { - return backgroundImageBuilder_.getMessage(); - } - } - /** - * .Image background_image = 5; - */ - public Builder setBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - backgroundImage_ = value; - } else { - backgroundImageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .Image background_image = 5; - */ - public Builder setBackgroundImage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundImageBuilder_ == null) { - backgroundImage_ = builderForValue.build(); - } else { - backgroundImageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .Image background_image = 5; - */ - public Builder mergeBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) && - backgroundImage_ != null && - backgroundImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundImageBuilder().mergeFrom(value); - } else { - backgroundImage_ = value; - } - } else { - backgroundImageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .Image background_image = 5; - */ - public Builder clearBackgroundImage() { - bitField0_ = (bitField0_ & ~0x00000010); - backgroundImage_ = null; - if (backgroundImageBuilder_ != null) { - backgroundImageBuilder_.dispose(); - backgroundImageBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image background_image = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getBackgroundImageFieldBuilder().getBuilder(); - } - /** - * .Image background_image = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { - if (backgroundImageBuilder_ != null) { - return backgroundImageBuilder_.getMessageOrBuilder(); - } else { - return backgroundImage_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - } - /** - * .Image background_image = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundImageFieldBuilder() { - if (backgroundImageBuilder_ == null) { - backgroundImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackgroundImage(), - getParentForChildren(), - isClean()); - backgroundImage_ = null; - } - return backgroundImageBuilder_; - } - - private java.lang.Object fullScreenTextColor_ = ""; - /** - * string full_screen_text_color = 6; - * @return The fullScreenTextColor. - */ - public java.lang.String getFullScreenTextColor() { - java.lang.Object ref = fullScreenTextColor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fullScreenTextColor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string full_screen_text_color = 6; - * @return The bytes for fullScreenTextColor. - */ - public com.google.protobuf.ByteString - getFullScreenTextColorBytes() { - java.lang.Object ref = fullScreenTextColor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fullScreenTextColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string full_screen_text_color = 6; - * @param value The fullScreenTextColor to set. - * @return This builder for chaining. - */ - public Builder setFullScreenTextColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - fullScreenTextColor_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string full_screen_text_color = 6; - * @return This builder for chaining. - */ - public Builder clearFullScreenTextColor() { - fullScreenTextColor_ = getDefaultInstance().getFullScreenTextColor(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string full_screen_text_color = 6; - * @param value The bytes for fullScreenTextColor to set. - * @return This builder for chaining. - */ - public Builder setFullScreenTextColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - fullScreenTextColor_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageV2Builder_; - /** - * .Image background_image_v2 = 7; - * @return Whether the backgroundImageV2 field is set. - */ - public boolean hasBackgroundImageV2() { - return ((bitField0_ & 0x00000040) != 0); - } - /** - * .Image background_image_v2 = 7; - * @return The backgroundImageV2. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { - if (backgroundImageV2Builder_ == null) { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } else { - return backgroundImageV2Builder_.getMessage(); - } - } - /** - * .Image background_image_v2 = 7; - */ - public Builder setBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageV2Builder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - backgroundImageV2_ = value; - } else { - backgroundImageV2Builder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image background_image_v2 = 7; - */ - public Builder setBackgroundImageV2( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundImageV2Builder_ == null) { - backgroundImageV2_ = builderForValue.build(); - } else { - backgroundImageV2Builder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image background_image_v2 = 7; - */ - public Builder mergeBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageV2Builder_ == null) { - if (((bitField0_ & 0x00000040) != 0) && - backgroundImageV2_ != null && - backgroundImageV2_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundImageV2Builder().mergeFrom(value); - } else { - backgroundImageV2_ = value; - } - } else { - backgroundImageV2Builder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image background_image_v2 = 7; - */ - public Builder clearBackgroundImageV2() { - bitField0_ = (bitField0_ & ~0x00000040); - backgroundImageV2_ = null; - if (backgroundImageV2Builder_ != null) { - backgroundImageV2Builder_.dispose(); - backgroundImageV2Builder_ = null; - } - onChanged(); - return this; - } - /** - * .Image background_image_v2 = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageV2Builder() { - bitField0_ |= 0x00000040; - onChanged(); - return getBackgroundImageV2FieldBuilder().getBuilder(); - } - /** - * .Image background_image_v2 = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { - if (backgroundImageV2Builder_ != null) { - return backgroundImageV2Builder_.getMessageOrBuilder(); - } else { - return backgroundImageV2_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - } - /** - * .Image background_image_v2 = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundImageV2FieldBuilder() { - if (backgroundImageV2Builder_ == null) { - backgroundImageV2Builder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackgroundImageV2(), - getParentForChildren(), - isClean()); - backgroundImageV2_ = null; - } - return backgroundImageV2Builder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftImage_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> giftImageBuilder_; - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - * @return Whether the giftImage field is set. - */ - public boolean hasGiftImage() { - return ((bitField0_ & 0x00000080) != 0); - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - * @return The giftImage. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage() { - if (giftImageBuilder_ == null) { - return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; - } else { - return giftImageBuilder_.getMessage(); - } - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public Builder setGiftImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (giftImageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - giftImage_ = value; - } else { - giftImageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public Builder setGiftImage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (giftImageBuilder_ == null) { - giftImage_ = builderForValue.build(); - } else { - giftImageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public Builder mergeGiftImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (giftImageBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) && - giftImage_ != null && - giftImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getGiftImageBuilder().mergeFrom(value); - } else { - giftImage_ = value; - } - } else { - giftImageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public Builder clearGiftImage() { - bitField0_ = (bitField0_ & ~0x00000080); - giftImage_ = null; - if (giftImageBuilder_ != null) { - giftImageBuilder_.dispose(); - giftImageBuilder_ = null; - } - onChanged(); - return this; - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getGiftImageBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getGiftImageFieldBuilder().getBuilder(); - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder() { - if (giftImageBuilder_ != null) { - return giftImageBuilder_.getMessageOrBuilder(); - } else { - return giftImage_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; - } - } - /** - *
-     * PublicAreaCommon public_area_common = 9;
-     * 
- * - * .Image gift_image = 10; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getGiftImageFieldBuilder() { - if (giftImageBuilder_ == null) { - giftImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getGiftImage(), - getParentForChildren(), - isClean()); - giftImage_ = null; - } - return giftImageBuilder_; - } - - private long agreeMsgId_ ; - /** - * uint64 agree_msg_id = 11; - * @return The agreeMsgId. - */ - @java.lang.Override - public long getAgreeMsgId() { - return agreeMsgId_; - } - /** - * uint64 agree_msg_id = 11; - * @param value The agreeMsgId to set. - * @return This builder for chaining. - */ - public Builder setAgreeMsgId(long value) { - - agreeMsgId_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint64 agree_msg_id = 11; - * @return This builder for chaining. - */ - public Builder clearAgreeMsgId() { - bitField0_ = (bitField0_ & ~0x00000100); - agreeMsgId_ = 0L; - onChanged(); - return this; - } - - private int priorityLevel_ ; - /** - * uint32 priority_level = 12; - * @return The priorityLevel. - */ - @java.lang.Override - public int getPriorityLevel() { - return priorityLevel_; - } - /** - * uint32 priority_level = 12; - * @param value The priorityLevel to set. - * @return This builder for chaining. - */ - public Builder setPriorityLevel(int value) { - - priorityLevel_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * uint32 priority_level = 12; - * @return This builder for chaining. - */ - public Builder clearPriorityLevel() { - bitField0_ = (bitField0_ & ~0x00000200); - priorityLevel_ = 0; - onChanged(); - return this; - } - - private long eventTime_ ; - /** - *
-     * LandscapeAreaCommon landscape_area_common = 13;
-     * 
- * - * uint64 event_time = 15; - * @return The eventTime. - */ - @java.lang.Override - public long getEventTime() { - return eventTime_; - } - /** - *
-     * LandscapeAreaCommon landscape_area_common = 13;
-     * 
- * - * uint64 event_time = 15; - * @param value The eventTime to set. - * @return This builder for chaining. - */ - public Builder setEventTime(long value) { - - eventTime_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - *
-     * LandscapeAreaCommon landscape_area_common = 13;
-     * 
- * - * uint64 event_time = 15; - * @return This builder for chaining. - */ - public Builder clearEventTime() { - bitField0_ = (bitField0_ & ~0x00000400); - eventTime_ = 0L; - onChanged(); - return this; - } - - private boolean sendReview_ ; - /** - * bool send_review = 16; - * @return The sendReview. - */ - @java.lang.Override - public boolean getSendReview() { - return sendReview_; - } - /** - * bool send_review = 16; - * @param value The sendReview to set. - * @return This builder for chaining. - */ - public Builder setSendReview(boolean value) { - - sendReview_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool send_review = 16; - * @return This builder for chaining. - */ - public Builder clearSendReview() { - bitField0_ = (bitField0_ & ~0x00000800); - sendReview_ = false; - onChanged(); - return this; - } - - private boolean fromIntercom_ ; - /** - * bool from_intercom = 17; - * @return The fromIntercom. - */ - @java.lang.Override - public boolean getFromIntercom() { - return fromIntercom_; - } - /** - * bool from_intercom = 17; - * @param value The fromIntercom to set. - * @return This builder for chaining. - */ - public Builder setFromIntercom(boolean value) { - - fromIntercom_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * bool from_intercom = 17; - * @return This builder for chaining. - */ - public Builder clearFromIntercom() { - bitField0_ = (bitField0_ & ~0x00001000); - fromIntercom_ = false; - onChanged(); - return this; - } - - private boolean intercomHideUserCard_ ; - /** - * bool intercom_hide_user_card = 18; - * @return The intercomHideUserCard. - */ - @java.lang.Override - public boolean getIntercomHideUserCard() { - return intercomHideUserCard_; - } - /** - * bool intercom_hide_user_card = 18; - * @param value The intercomHideUserCard to set. - * @return This builder for chaining. - */ - public Builder setIntercomHideUserCard(boolean value) { - - intercomHideUserCard_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * bool intercom_hide_user_card = 18; - * @return This builder for chaining. - */ - public Builder clearIntercomHideUserCard() { - bitField0_ = (bitField0_ & ~0x00002000); - intercomHideUserCard_ = false; - onChanged(); - return this; - } - - private java.lang.Object chatBy_ = ""; - /** - *
-     * repeated string chatTagsList = 19;
-     * 
- * - * string chat_by = 20; - * @return The chatBy. - */ - public java.lang.String getChatBy() { - java.lang.Object ref = chatBy_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - chatBy_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-     * repeated string chatTagsList = 19;
-     * 
- * - * string chat_by = 20; - * @return The bytes for chatBy. - */ - public com.google.protobuf.ByteString - getChatByBytes() { - java.lang.Object ref = chatBy_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - chatBy_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-     * repeated string chatTagsList = 19;
-     * 
- * - * string chat_by = 20; - * @param value The chatBy to set. - * @return This builder for chaining. - */ - public Builder setChatBy( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - chatBy_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - *
-     * repeated string chatTagsList = 19;
-     * 
- * - * string chat_by = 20; - * @return This builder for chaining. - */ - public Builder clearChatBy() { - chatBy_ = getDefaultInstance().getChatBy(); - bitField0_ = (bitField0_ & ~0x00004000); - onChanged(); - return this; - } - /** - *
-     * repeated string chatTagsList = 19;
-     * 
- * - * string chat_by = 20; - * @param value The bytes for chatBy to set. - * @return This builder for chaining. - */ - public Builder setChatByBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - chatBy_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - - private int individualChatPriority_ ; - /** - *
-     * Text rtf_content = 22 ;
-     * 
- * - * uint32 individual_chat_priority = 21; - * @return The individualChatPriority. - */ - @java.lang.Override - public int getIndividualChatPriority() { - return individualChatPriority_; - } - /** - *
-     * Text rtf_content = 22 ;
-     * 
- * - * uint32 individual_chat_priority = 21; - * @param value The individualChatPriority to set. - * @return This builder for chaining. - */ - public Builder setIndividualChatPriority(int value) { - - individualChatPriority_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - *
-     * Text rtf_content = 22 ;
-     * 
- * - * uint32 individual_chat_priority = 21; - * @return This builder for chaining. - */ - public Builder clearIndividualChatPriority() { - bitField0_ = (bitField0_ & ~0x00008000); - individualChatPriority_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_webcast_chat_message_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java deleted file mode 100644 index 961938ed..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_chat_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_webcast_chat_message_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - boolean hasCommon(); - /** - * .Common common = 1; - * @return The common. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); - /** - * .Common common = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); - - /** - * .User user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - * string content = 3; - * @return The content. - */ - java.lang.String getContent(); - /** - * string content = 3; - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - - /** - * bool visible_to_sender = 4; - * @return The visibleToSender. - */ - boolean getVisibleToSender(); - - /** - * .Image background_image = 5; - * @return Whether the backgroundImage field is set. - */ - boolean hasBackgroundImage(); - /** - * .Image background_image = 5; - * @return The backgroundImage. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage(); - /** - * .Image background_image = 5; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder(); - - /** - * string full_screen_text_color = 6; - * @return The fullScreenTextColor. - */ - java.lang.String getFullScreenTextColor(); - /** - * string full_screen_text_color = 6; - * @return The bytes for fullScreenTextColor. - */ - com.google.protobuf.ByteString - getFullScreenTextColorBytes(); - - /** - * .Image background_image_v2 = 7; - * @return Whether the backgroundImageV2 field is set. - */ - boolean hasBackgroundImageV2(); - /** - * .Image background_image_v2 = 7; - * @return The backgroundImageV2. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2(); - /** - * .Image background_image_v2 = 7; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder(); - - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - * @return Whether the giftImage field is set. - */ - boolean hasGiftImage(); - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - * @return The giftImage. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage(); - /** - *
-   * PublicAreaCommon public_area_common = 9;
-   * 
- * - * .Image gift_image = 10; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder(); - - /** - * uint64 agree_msg_id = 11; - * @return The agreeMsgId. - */ - long getAgreeMsgId(); - - /** - * uint32 priority_level = 12; - * @return The priorityLevel. - */ - int getPriorityLevel(); - - /** - *
-   * LandscapeAreaCommon landscape_area_common = 13;
-   * 
- * - * uint64 event_time = 15; - * @return The eventTime. - */ - long getEventTime(); - - /** - * bool send_review = 16; - * @return The sendReview. - */ - boolean getSendReview(); - - /** - * bool from_intercom = 17; - * @return The fromIntercom. - */ - boolean getFromIntercom(); - - /** - * bool intercom_hide_user_card = 18; - * @return The intercomHideUserCard. - */ - boolean getIntercomHideUserCard(); - - /** - *
-   * repeated string chatTagsList = 19;
-   * 
- * - * string chat_by = 20; - * @return The chatBy. - */ - java.lang.String getChatBy(); - /** - *
-   * repeated string chatTagsList = 19;
-   * 
- * - * string chat_by = 20; - * @return The bytes for chatBy. - */ - com.google.protobuf.ByteString - getChatByBytes(); - - /** - *
-   * Text rtf_content = 22 ;
-   * 
- * - * uint32 individual_chat_priority = 21; - * @return The individualChatPriority. - */ - int getIndividualChatPriority(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java deleted file mode 100644 index d4098dd6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java +++ /dev/null @@ -1,3963 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_gift_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg} - */ -public final class douyin_webcast_gift_message_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) - douyin_webcast_gift_message_msgOrBuilder { - private static final long serialVersionUID = 0L; - // Use douyin_webcast_gift_message_msg.newBuilder() to construct. - private douyin_webcast_gift_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_webcast_gift_message_msg() { - logId_ = ""; - interactGiftInfo_ = ""; - diyItemInfo_ = ""; - minAssetSetList_ = emptyLongList(); - toUserIdsList_ = emptyLongList(); - traceId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_webcast_gift_message_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.Builder.class); - } - - public static final int COMMON_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - @java.lang.Override - public boolean hasCommon() { - return common_ != null; - } - /** - * .Common common = 1; - * @return The common. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - /** - * .Common common = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - - public static final int LONG_GIFT_ID_FIELD_NUMBER = 2; - private long longGiftId_ = 0L; - /** - * uint64 long_gift_id = 2; - * @return The longGiftId. - */ - @java.lang.Override - public long getLongGiftId() { - return longGiftId_; - } - - public static final int FAN_TICKET_COUNT_FIELD_NUMBER = 3; - private long fanTicketCount_ = 0L; - /** - * uint64 fan_ticket_count = 3; - * @return The fanTicketCount. - */ - @java.lang.Override - public long getFanTicketCount() { - return fanTicketCount_; - } - - public static final int GROUP_COUNT_FIELD_NUMBER = 4; - private long groupCount_ = 0L; - /** - * uint64 group_count = 4; - * @return The groupCount. - */ - @java.lang.Override - public long getGroupCount() { - return groupCount_; - } - - public static final int REPEAT_COUNT_FIELD_NUMBER = 5; - private long repeatCount_ = 0L; - /** - * uint64 repeat_count = 5; - * @return The repeatCount. - */ - @java.lang.Override - public long getRepeatCount() { - return repeatCount_; - } - - public static final int COMBO_COUNT_FIELD_NUMBER = 6; - private long comboCount_ = 0L; - /** - * uint64 combo_count = 6; - * @return The comboCount. - */ - @java.lang.Override - public long getComboCount() { - return comboCount_; - } - - public static final int USER_FIELD_NUMBER = 7; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 7; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 7; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int TO_USER_FIELD_NUMBER = 8; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User toUser_; - /** - * .User to_user = 8; - * @return Whether the toUser field is set. - */ - @java.lang.Override - public boolean hasToUser() { - return toUser_ != null; - } - /** - * .User to_user = 8; - * @return The toUser. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser() { - return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; - } - /** - * .User to_user = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder() { - return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; - } - - public static final int REPEAT_END_FIELD_NUMBER = 9; - private int repeatEnd_ = 0; - /** - * uint32 repeat_end = 9; - * @return The repeatEnd. - */ - @java.lang.Override - public int getRepeatEnd() { - return repeatEnd_; - } - - public static final int TEXT_EFFECT_FIELD_NUMBER = 10; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect textEffect_; - /** - * .TextEffect text_effect = 10; - * @return Whether the textEffect field is set. - */ - @java.lang.Override - public boolean hasTextEffect() { - return textEffect_ != null; - } - /** - * .TextEffect text_effect = 10; - * @return The textEffect. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect() { - return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; - } - /** - * .TextEffect text_effect = 10; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder() { - return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; - } - - public static final int GROUP_ID_FIELD_NUMBER = 11; - private long groupId_ = 0L; - /** - * uint64 group_id = 11; - * @return The groupId. - */ - @java.lang.Override - public long getGroupId() { - return groupId_; - } - - public static final int INCOME_TASKGIFTS_FIELD_NUMBER = 12; - private long incomeTaskgifts_ = 0L; - /** - * uint64 income_taskgifts = 12; - * @return The incomeTaskgifts. - */ - @java.lang.Override - public long getIncomeTaskgifts() { - return incomeTaskgifts_; - } - - public static final int ROOM_FAN_TICKET_COUNT_FIELD_NUMBER = 13; - private long roomFanTicketCount_ = 0L; - /** - * uint64 room_fan_ticket_count = 13; - * @return The roomFanTicketCount. - */ - @java.lang.Override - public long getRoomFanTicketCount() { - return roomFanTicketCount_; - } - - public static final int PRIORITY_FIELD_NUMBER = 14; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority priority_; - /** - * .GiftIMPriority priority = 14; - * @return Whether the priority field is set. - */ - @java.lang.Override - public boolean hasPriority() { - return priority_ != null; - } - /** - * .GiftIMPriority priority = 14; - * @return The priority. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority() { - return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; - } - /** - * .GiftIMPriority priority = 14; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder() { - return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; - } - - public static final int GIFT_FIELD_NUMBER = 15; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct gift_; - /** - * .GiftStruct gift = 15; - * @return Whether the gift field is set. - */ - @java.lang.Override - public boolean hasGift() { - return gift_ != null; - } - /** - * .GiftStruct gift = 15; - * @return The gift. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift() { - return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; - } - /** - * .GiftStruct gift = 15; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder() { - return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; - } - - public static final int LOG_ID_FIELD_NUMBER = 16; - @SuppressWarnings("serial") - private volatile java.lang.Object logId_ = ""; - /** - * string log_id = 16; - * @return The logId. - */ - @java.lang.Override - public java.lang.String getLogId() { - java.lang.Object ref = logId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - logId_ = s; - return s; - } - } - /** - * string log_id = 16; - * @return The bytes for logId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLogIdBytes() { - java.lang.Object ref = logId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - logId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SEND_TYPE_FIELD_NUMBER = 17; - private long sendType_ = 0L; - /** - * uint64 send_type = 17; - * @return The sendType. - */ - @java.lang.Override - public long getSendType() { - return sendType_; - } - - public static final int PUBLIC_AREA_COMMON_FIELD_NUMBER = 18; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon publicAreaCommon_; - /** - * .PublicAreaCommon public_area_common = 18; - * @return Whether the publicAreaCommon field is set. - */ - @java.lang.Override - public boolean hasPublicAreaCommon() { - return publicAreaCommon_ != null; - } - /** - * .PublicAreaCommon public_area_common = 18; - * @return The publicAreaCommon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon() { - return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder() { - return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; - } - - public static final int TRAY_DISPLAY_TEXT_FIELD_NUMBER = 19; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text trayDisplayText_; - /** - * .Text tray_display_text = 19; - * @return Whether the trayDisplayText field is set. - */ - @java.lang.Override - public boolean hasTrayDisplayText() { - return trayDisplayText_ != null; - } - /** - * .Text tray_display_text = 19; - * @return The trayDisplayText. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText() { - return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; - } - /** - * .Text tray_display_text = 19; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder() { - return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; - } - - public static final int BANNED_DISPLAY_EFFECTS_FIELD_NUMBER = 20; - private long bannedDisplayEffects_ = 0L; - /** - * uint64 banned_display_effects = 20; - * @return The bannedDisplayEffects. - */ - @java.lang.Override - public long getBannedDisplayEffects() { - return bannedDisplayEffects_; - } - - public static final int DISPLAY_FOR_SELF_FIELD_NUMBER = 25; - private boolean displayForSelf_ = false; - /** - *
-   * GiftTrayInfo trayInfo = 21;
-   * AssetEffectMixInfo assetEffectMixInfo = 22;
-   * 
- * - * bool display_for_self = 25; - * @return The displayForSelf. - */ - @java.lang.Override - public boolean getDisplayForSelf() { - return displayForSelf_; - } - - public static final int INTERACT_GIFT_INFO_FIELD_NUMBER = 26; - @SuppressWarnings("serial") - private volatile java.lang.Object interactGiftInfo_ = ""; - /** - * string interact_gift_info = 26; - * @return The interactGiftInfo. - */ - @java.lang.Override - public java.lang.String getInteractGiftInfo() { - java.lang.Object ref = interactGiftInfo_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - interactGiftInfo_ = s; - return s; - } - } - /** - * string interact_gift_info = 26; - * @return The bytes for interactGiftInfo. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getInteractGiftInfoBytes() { - java.lang.Object ref = interactGiftInfo_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - interactGiftInfo_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DIY_ITEM_INFO_FIELD_NUMBER = 27; - @SuppressWarnings("serial") - private volatile java.lang.Object diyItemInfo_ = ""; - /** - * string diy_item_info = 27; - * @return The diyItemInfo. - */ - @java.lang.Override - public java.lang.String getDiyItemInfo() { - java.lang.Object ref = diyItemInfo_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - diyItemInfo_ = s; - return s; - } - } - /** - * string diy_item_info = 27; - * @return The bytes for diyItemInfo. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDiyItemInfoBytes() { - java.lang.Object ref = diyItemInfo_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - diyItemInfo_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MIN_ASSET_SET_LIST_FIELD_NUMBER = 28; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList minAssetSetList_; - /** - * repeated uint64 min_asset_set_list = 28; - * @return A list containing the minAssetSetList. - */ - @java.lang.Override - public java.util.List - getMinAssetSetListList() { - return minAssetSetList_; - } - /** - * repeated uint64 min_asset_set_list = 28; - * @return The count of minAssetSetList. - */ - public int getMinAssetSetListCount() { - return minAssetSetList_.size(); - } - /** - * repeated uint64 min_asset_set_list = 28; - * @param index The index of the element to return. - * @return The minAssetSetList at the given index. - */ - public long getMinAssetSetList(int index) { - return minAssetSetList_.getLong(index); - } - private int minAssetSetListMemoizedSerializedSize = -1; - - public static final int TOTAL_COUNT_FIELD_NUMBER = 29; - private long totalCount_ = 0L; - /** - * uint64 total_count = 29; - * @return The totalCount. - */ - @java.lang.Override - public long getTotalCount() { - return totalCount_; - } - - public static final int CLIENT_GIFT_SOURCE_FIELD_NUMBER = 30; - private int clientGiftSource_ = 0; - /** - * uint32 client_gift_source = 30; - * @return The clientGiftSource. - */ - @java.lang.Override - public int getClientGiftSource() { - return clientGiftSource_; - } - - public static final int TO_USER_IDS_LIST_FIELD_NUMBER = 32; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList toUserIdsList_; - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return A list containing the toUserIdsList. - */ - @java.lang.Override - public java.util.List - getToUserIdsListList() { - return toUserIdsList_; - } - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return The count of toUserIdsList. - */ - public int getToUserIdsListCount() { - return toUserIdsList_.size(); - } - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param index The index of the element to return. - * @return The toUserIdsList at the given index. - */ - public long getToUserIdsList(int index) { - return toUserIdsList_.getLong(index); - } - private int toUserIdsListMemoizedSerializedSize = -1; - - public static final int SEND_TIMET_FIELD_NUMBER = 33; - private long sendTimet_ = 0L; - /** - * uint64 send_timet = 33; - * @return The sendTimet. - */ - @java.lang.Override - public long getSendTimet() { - return sendTimet_; - } - - public static final int FORCE_DISPLAY_EFFECTST_FIELD_NUMBER = 34; - private long forceDisplayEffectst_ = 0L; - /** - * uint64 force_display_effectst = 34; - * @return The forceDisplayEffectst. - */ - @java.lang.Override - public long getForceDisplayEffectst() { - return forceDisplayEffectst_; - } - - public static final int TRACE_ID_FIELD_NUMBER = 35; - @SuppressWarnings("serial") - private volatile java.lang.Object traceId_ = ""; - /** - * string trace_id = 35; - * @return The traceId. - */ - @java.lang.Override - public java.lang.String getTraceId() { - java.lang.Object ref = traceId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - traceId_ = s; - return s; - } - } - /** - * string trace_id = 35; - * @return The bytes for traceId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTraceIdBytes() { - java.lang.Object ref = traceId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - traceId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int EFFECT_DISPLAY_TS_FIELD_NUMBER = 36; - private long effectDisplayTs_ = 0L; - /** - * uint64 effect_display_ts = 36; - * @return The effectDisplayTs. - */ - @java.lang.Override - public long getEffectDisplayTs() { - return effectDisplayTs_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (common_ != null) { - output.writeMessage(1, getCommon()); - } - if (longGiftId_ != 0L) { - output.writeUInt64(2, longGiftId_); - } - if (fanTicketCount_ != 0L) { - output.writeUInt64(3, fanTicketCount_); - } - if (groupCount_ != 0L) { - output.writeUInt64(4, groupCount_); - } - if (repeatCount_ != 0L) { - output.writeUInt64(5, repeatCount_); - } - if (comboCount_ != 0L) { - output.writeUInt64(6, comboCount_); - } - if (user_ != null) { - output.writeMessage(7, getUser()); - } - if (toUser_ != null) { - output.writeMessage(8, getToUser()); - } - if (repeatEnd_ != 0) { - output.writeUInt32(9, repeatEnd_); - } - if (textEffect_ != null) { - output.writeMessage(10, getTextEffect()); - } - if (groupId_ != 0L) { - output.writeUInt64(11, groupId_); - } - if (incomeTaskgifts_ != 0L) { - output.writeUInt64(12, incomeTaskgifts_); - } - if (roomFanTicketCount_ != 0L) { - output.writeUInt64(13, roomFanTicketCount_); - } - if (priority_ != null) { - output.writeMessage(14, getPriority()); - } - if (gift_ != null) { - output.writeMessage(15, getGift()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 16, logId_); - } - if (sendType_ != 0L) { - output.writeUInt64(17, sendType_); - } - if (publicAreaCommon_ != null) { - output.writeMessage(18, getPublicAreaCommon()); - } - if (trayDisplayText_ != null) { - output.writeMessage(19, getTrayDisplayText()); - } - if (bannedDisplayEffects_ != 0L) { - output.writeUInt64(20, bannedDisplayEffects_); - } - if (displayForSelf_ != false) { - output.writeBool(25, displayForSelf_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(interactGiftInfo_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 26, interactGiftInfo_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diyItemInfo_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 27, diyItemInfo_); - } - if (getMinAssetSetListList().size() > 0) { - output.writeUInt32NoTag(226); - output.writeUInt32NoTag(minAssetSetListMemoizedSerializedSize); - } - for (int i = 0; i < minAssetSetList_.size(); i++) { - output.writeUInt64NoTag(minAssetSetList_.getLong(i)); - } - if (totalCount_ != 0L) { - output.writeUInt64(29, totalCount_); - } - if (clientGiftSource_ != 0) { - output.writeUInt32(30, clientGiftSource_); - } - if (getToUserIdsListList().size() > 0) { - output.writeUInt32NoTag(258); - output.writeUInt32NoTag(toUserIdsListMemoizedSerializedSize); - } - for (int i = 0; i < toUserIdsList_.size(); i++) { - output.writeUInt64NoTag(toUserIdsList_.getLong(i)); - } - if (sendTimet_ != 0L) { - output.writeUInt64(33, sendTimet_); - } - if (forceDisplayEffectst_ != 0L) { - output.writeUInt64(34, forceDisplayEffectst_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traceId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 35, traceId_); - } - if (effectDisplayTs_ != 0L) { - output.writeUInt64(36, effectDisplayTs_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (common_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getCommon()); - } - if (longGiftId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, longGiftId_); - } - if (fanTicketCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, fanTicketCount_); - } - if (groupCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, groupCount_); - } - if (repeatCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, repeatCount_); - } - if (comboCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(6, comboCount_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getUser()); - } - if (toUser_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, getToUser()); - } - if (repeatEnd_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(9, repeatEnd_); - } - if (textEffect_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, getTextEffect()); - } - if (groupId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(11, groupId_); - } - if (incomeTaskgifts_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(12, incomeTaskgifts_); - } - if (roomFanTicketCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(13, roomFanTicketCount_); - } - if (priority_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(14, getPriority()); - } - if (gift_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(15, getGift()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, logId_); - } - if (sendType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(17, sendType_); - } - if (publicAreaCommon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(18, getPublicAreaCommon()); - } - if (trayDisplayText_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(19, getTrayDisplayText()); - } - if (bannedDisplayEffects_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(20, bannedDisplayEffects_); - } - if (displayForSelf_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(25, displayForSelf_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(interactGiftInfo_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, interactGiftInfo_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diyItemInfo_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(27, diyItemInfo_); - } - { - int dataSize = 0; - for (int i = 0; i < minAssetSetList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(minAssetSetList_.getLong(i)); - } - size += dataSize; - if (!getMinAssetSetListList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - minAssetSetListMemoizedSerializedSize = dataSize; - } - if (totalCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(29, totalCount_); - } - if (clientGiftSource_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(30, clientGiftSource_); - } - { - int dataSize = 0; - for (int i = 0; i < toUserIdsList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(toUserIdsList_.getLong(i)); - } - size += dataSize; - if (!getToUserIdsListList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - toUserIdsListMemoizedSerializedSize = dataSize; - } - if (sendTimet_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(33, sendTimet_); - } - if (forceDisplayEffectst_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(34, forceDisplayEffectst_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traceId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(35, traceId_); - } - if (effectDisplayTs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(36, effectDisplayTs_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) obj; - - if (hasCommon() != other.hasCommon()) return false; - if (hasCommon()) { - if (!getCommon() - .equals(other.getCommon())) return false; - } - if (getLongGiftId() - != other.getLongGiftId()) return false; - if (getFanTicketCount() - != other.getFanTicketCount()) return false; - if (getGroupCount() - != other.getGroupCount()) return false; - if (getRepeatCount() - != other.getRepeatCount()) return false; - if (getComboCount() - != other.getComboCount()) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (hasToUser() != other.hasToUser()) return false; - if (hasToUser()) { - if (!getToUser() - .equals(other.getToUser())) return false; - } - if (getRepeatEnd() - != other.getRepeatEnd()) return false; - if (hasTextEffect() != other.hasTextEffect()) return false; - if (hasTextEffect()) { - if (!getTextEffect() - .equals(other.getTextEffect())) return false; - } - if (getGroupId() - != other.getGroupId()) return false; - if (getIncomeTaskgifts() - != other.getIncomeTaskgifts()) return false; - if (getRoomFanTicketCount() - != other.getRoomFanTicketCount()) return false; - if (hasPriority() != other.hasPriority()) return false; - if (hasPriority()) { - if (!getPriority() - .equals(other.getPriority())) return false; - } - if (hasGift() != other.hasGift()) return false; - if (hasGift()) { - if (!getGift() - .equals(other.getGift())) return false; - } - if (!getLogId() - .equals(other.getLogId())) return false; - if (getSendType() - != other.getSendType()) return false; - if (hasPublicAreaCommon() != other.hasPublicAreaCommon()) return false; - if (hasPublicAreaCommon()) { - if (!getPublicAreaCommon() - .equals(other.getPublicAreaCommon())) return false; - } - if (hasTrayDisplayText() != other.hasTrayDisplayText()) return false; - if (hasTrayDisplayText()) { - if (!getTrayDisplayText() - .equals(other.getTrayDisplayText())) return false; - } - if (getBannedDisplayEffects() - != other.getBannedDisplayEffects()) return false; - if (getDisplayForSelf() - != other.getDisplayForSelf()) return false; - if (!getInteractGiftInfo() - .equals(other.getInteractGiftInfo())) return false; - if (!getDiyItemInfo() - .equals(other.getDiyItemInfo())) return false; - if (!getMinAssetSetListList() - .equals(other.getMinAssetSetListList())) return false; - if (getTotalCount() - != other.getTotalCount()) return false; - if (getClientGiftSource() - != other.getClientGiftSource()) return false; - if (!getToUserIdsListList() - .equals(other.getToUserIdsListList())) return false; - if (getSendTimet() - != other.getSendTimet()) return false; - if (getForceDisplayEffectst() - != other.getForceDisplayEffectst()) return false; - if (!getTraceId() - .equals(other.getTraceId())) return false; - if (getEffectDisplayTs() - != other.getEffectDisplayTs()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCommon()) { - hash = (37 * hash) + COMMON_FIELD_NUMBER; - hash = (53 * hash) + getCommon().hashCode(); - } - hash = (37 * hash) + LONG_GIFT_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLongGiftId()); - hash = (37 * hash) + FAN_TICKET_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFanTicketCount()); - hash = (37 * hash) + GROUP_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGroupCount()); - hash = (37 * hash) + REPEAT_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRepeatCount()); - hash = (37 * hash) + COMBO_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getComboCount()); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - if (hasToUser()) { - hash = (37 * hash) + TO_USER_FIELD_NUMBER; - hash = (53 * hash) + getToUser().hashCode(); - } - hash = (37 * hash) + REPEAT_END_FIELD_NUMBER; - hash = (53 * hash) + getRepeatEnd(); - if (hasTextEffect()) { - hash = (37 * hash) + TEXT_EFFECT_FIELD_NUMBER; - hash = (53 * hash) + getTextEffect().hashCode(); - } - hash = (37 * hash) + GROUP_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGroupId()); - hash = (37 * hash) + INCOME_TASKGIFTS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getIncomeTaskgifts()); - hash = (37 * hash) + ROOM_FAN_TICKET_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRoomFanTicketCount()); - if (hasPriority()) { - hash = (37 * hash) + PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + getPriority().hashCode(); - } - if (hasGift()) { - hash = (37 * hash) + GIFT_FIELD_NUMBER; - hash = (53 * hash) + getGift().hashCode(); - } - hash = (37 * hash) + LOG_ID_FIELD_NUMBER; - hash = (53 * hash) + getLogId().hashCode(); - hash = (37 * hash) + SEND_TYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSendType()); - if (hasPublicAreaCommon()) { - hash = (37 * hash) + PUBLIC_AREA_COMMON_FIELD_NUMBER; - hash = (53 * hash) + getPublicAreaCommon().hashCode(); - } - if (hasTrayDisplayText()) { - hash = (37 * hash) + TRAY_DISPLAY_TEXT_FIELD_NUMBER; - hash = (53 * hash) + getTrayDisplayText().hashCode(); - } - hash = (37 * hash) + BANNED_DISPLAY_EFFECTS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getBannedDisplayEffects()); - hash = (37 * hash) + DISPLAY_FOR_SELF_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getDisplayForSelf()); - hash = (37 * hash) + INTERACT_GIFT_INFO_FIELD_NUMBER; - hash = (53 * hash) + getInteractGiftInfo().hashCode(); - hash = (37 * hash) + DIY_ITEM_INFO_FIELD_NUMBER; - hash = (53 * hash) + getDiyItemInfo().hashCode(); - if (getMinAssetSetListCount() > 0) { - hash = (37 * hash) + MIN_ASSET_SET_LIST_FIELD_NUMBER; - hash = (53 * hash) + getMinAssetSetListList().hashCode(); - } - hash = (37 * hash) + TOTAL_COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTotalCount()); - hash = (37 * hash) + CLIENT_GIFT_SOURCE_FIELD_NUMBER; - hash = (53 * hash) + getClientGiftSource(); - if (getToUserIdsListCount() > 0) { - hash = (37 * hash) + TO_USER_IDS_LIST_FIELD_NUMBER; - hash = (53 * hash) + getToUserIdsListList().hashCode(); - } - hash = (37 * hash) + SEND_TIMET_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSendTimet()); - hash = (37 * hash) + FORCE_DISPLAY_EFFECTST_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getForceDisplayEffectst()); - hash = (37 * hash) + TRACE_ID_FIELD_NUMBER; - hash = (53 * hash) + getTraceId().hashCode(); - hash = (37 * hash) + EFFECT_DISPLAY_TS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getEffectDisplayTs()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - longGiftId_ = 0L; - fanTicketCount_ = 0L; - groupCount_ = 0L; - repeatCount_ = 0L; - comboCount_ = 0L; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - toUser_ = null; - if (toUserBuilder_ != null) { - toUserBuilder_.dispose(); - toUserBuilder_ = null; - } - repeatEnd_ = 0; - textEffect_ = null; - if (textEffectBuilder_ != null) { - textEffectBuilder_.dispose(); - textEffectBuilder_ = null; - } - groupId_ = 0L; - incomeTaskgifts_ = 0L; - roomFanTicketCount_ = 0L; - priority_ = null; - if (priorityBuilder_ != null) { - priorityBuilder_.dispose(); - priorityBuilder_ = null; - } - gift_ = null; - if (giftBuilder_ != null) { - giftBuilder_.dispose(); - giftBuilder_ = null; - } - logId_ = ""; - sendType_ = 0L; - publicAreaCommon_ = null; - if (publicAreaCommonBuilder_ != null) { - publicAreaCommonBuilder_.dispose(); - publicAreaCommonBuilder_ = null; - } - trayDisplayText_ = null; - if (trayDisplayTextBuilder_ != null) { - trayDisplayTextBuilder_.dispose(); - trayDisplayTextBuilder_ = null; - } - bannedDisplayEffects_ = 0L; - displayForSelf_ = false; - interactGiftInfo_ = ""; - diyItemInfo_ = ""; - minAssetSetList_ = emptyLongList(); - totalCount_ = 0L; - clientGiftSource_ = 0; - toUserIdsList_ = emptyLongList(); - sendTimet_ = 0L; - forceDisplayEffectst_ = 0L; - traceId_ = ""; - effectDisplayTs_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result) { - if (((bitField0_ & 0x00800000) != 0)) { - minAssetSetList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00800000); - } - result.minAssetSetList_ = minAssetSetList_; - if (((bitField0_ & 0x04000000) != 0)) { - toUserIdsList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x04000000); - } - result.toUserIdsList_ = toUserIdsList_; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.common_ = commonBuilder_ == null - ? common_ - : commonBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.longGiftId_ = longGiftId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.fanTicketCount_ = fanTicketCount_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.groupCount_ = groupCount_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.repeatCount_ = repeatCount_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.comboCount_ = comboCount_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.toUser_ = toUserBuilder_ == null - ? toUser_ - : toUserBuilder_.build(); - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.repeatEnd_ = repeatEnd_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.textEffect_ = textEffectBuilder_ == null - ? textEffect_ - : textEffectBuilder_.build(); - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.groupId_ = groupId_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.incomeTaskgifts_ = incomeTaskgifts_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.roomFanTicketCount_ = roomFanTicketCount_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.priority_ = priorityBuilder_ == null - ? priority_ - : priorityBuilder_.build(); - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.gift_ = giftBuilder_ == null - ? gift_ - : giftBuilder_.build(); - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.logId_ = logId_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.sendType_ = sendType_; - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.publicAreaCommon_ = publicAreaCommonBuilder_ == null - ? publicAreaCommon_ - : publicAreaCommonBuilder_.build(); - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.trayDisplayText_ = trayDisplayTextBuilder_ == null - ? trayDisplayText_ - : trayDisplayTextBuilder_.build(); - } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.bannedDisplayEffects_ = bannedDisplayEffects_; - } - if (((from_bitField0_ & 0x00100000) != 0)) { - result.displayForSelf_ = displayForSelf_; - } - if (((from_bitField0_ & 0x00200000) != 0)) { - result.interactGiftInfo_ = interactGiftInfo_; - } - if (((from_bitField0_ & 0x00400000) != 0)) { - result.diyItemInfo_ = diyItemInfo_; - } - if (((from_bitField0_ & 0x01000000) != 0)) { - result.totalCount_ = totalCount_; - } - if (((from_bitField0_ & 0x02000000) != 0)) { - result.clientGiftSource_ = clientGiftSource_; - } - if (((from_bitField0_ & 0x08000000) != 0)) { - result.sendTimet_ = sendTimet_; - } - if (((from_bitField0_ & 0x10000000) != 0)) { - result.forceDisplayEffectst_ = forceDisplayEffectst_; - } - if (((from_bitField0_ & 0x20000000) != 0)) { - result.traceId_ = traceId_; - } - if (((from_bitField0_ & 0x40000000) != 0)) { - result.effectDisplayTs_ = effectDisplayTs_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.getDefaultInstance()) return this; - if (other.hasCommon()) { - mergeCommon(other.getCommon()); - } - if (other.getLongGiftId() != 0L) { - setLongGiftId(other.getLongGiftId()); - } - if (other.getFanTicketCount() != 0L) { - setFanTicketCount(other.getFanTicketCount()); - } - if (other.getGroupCount() != 0L) { - setGroupCount(other.getGroupCount()); - } - if (other.getRepeatCount() != 0L) { - setRepeatCount(other.getRepeatCount()); - } - if (other.getComboCount() != 0L) { - setComboCount(other.getComboCount()); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.hasToUser()) { - mergeToUser(other.getToUser()); - } - if (other.getRepeatEnd() != 0) { - setRepeatEnd(other.getRepeatEnd()); - } - if (other.hasTextEffect()) { - mergeTextEffect(other.getTextEffect()); - } - if (other.getGroupId() != 0L) { - setGroupId(other.getGroupId()); - } - if (other.getIncomeTaskgifts() != 0L) { - setIncomeTaskgifts(other.getIncomeTaskgifts()); - } - if (other.getRoomFanTicketCount() != 0L) { - setRoomFanTicketCount(other.getRoomFanTicketCount()); - } - if (other.hasPriority()) { - mergePriority(other.getPriority()); - } - if (other.hasGift()) { - mergeGift(other.getGift()); - } - if (!other.getLogId().isEmpty()) { - logId_ = other.logId_; - bitField0_ |= 0x00008000; - onChanged(); - } - if (other.getSendType() != 0L) { - setSendType(other.getSendType()); - } - if (other.hasPublicAreaCommon()) { - mergePublicAreaCommon(other.getPublicAreaCommon()); - } - if (other.hasTrayDisplayText()) { - mergeTrayDisplayText(other.getTrayDisplayText()); - } - if (other.getBannedDisplayEffects() != 0L) { - setBannedDisplayEffects(other.getBannedDisplayEffects()); - } - if (other.getDisplayForSelf() != false) { - setDisplayForSelf(other.getDisplayForSelf()); - } - if (!other.getInteractGiftInfo().isEmpty()) { - interactGiftInfo_ = other.interactGiftInfo_; - bitField0_ |= 0x00200000; - onChanged(); - } - if (!other.getDiyItemInfo().isEmpty()) { - diyItemInfo_ = other.diyItemInfo_; - bitField0_ |= 0x00400000; - onChanged(); - } - if (!other.minAssetSetList_.isEmpty()) { - if (minAssetSetList_.isEmpty()) { - minAssetSetList_ = other.minAssetSetList_; - bitField0_ = (bitField0_ & ~0x00800000); - } else { - ensureMinAssetSetListIsMutable(); - minAssetSetList_.addAll(other.minAssetSetList_); - } - onChanged(); - } - if (other.getTotalCount() != 0L) { - setTotalCount(other.getTotalCount()); - } - if (other.getClientGiftSource() != 0) { - setClientGiftSource(other.getClientGiftSource()); - } - if (!other.toUserIdsList_.isEmpty()) { - if (toUserIdsList_.isEmpty()) { - toUserIdsList_ = other.toUserIdsList_; - bitField0_ = (bitField0_ & ~0x04000000); - } else { - ensureToUserIdsListIsMutable(); - toUserIdsList_.addAll(other.toUserIdsList_); - } - onChanged(); - } - if (other.getSendTimet() != 0L) { - setSendTimet(other.getSendTimet()); - } - if (other.getForceDisplayEffectst() != 0L) { - setForceDisplayEffectst(other.getForceDisplayEffectst()); - } - if (!other.getTraceId().isEmpty()) { - traceId_ = other.traceId_; - bitField0_ |= 0x20000000; - onChanged(); - } - if (other.getEffectDisplayTs() != 0L) { - setEffectDisplayTs(other.getEffectDisplayTs()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getCommonFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - longGiftId_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - fanTicketCount_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - groupCount_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - repeatCount_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - comboCount_ = input.readUInt64(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 66: { - input.readMessage( - getToUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000080; - break; - } // case 66 - case 72: { - repeatEnd_ = input.readUInt32(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 82: { - input.readMessage( - getTextEffectFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000200; - break; - } // case 82 - case 88: { - groupId_ = input.readUInt64(); - bitField0_ |= 0x00000400; - break; - } // case 88 - case 96: { - incomeTaskgifts_ = input.readUInt64(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 104: { - roomFanTicketCount_ = input.readUInt64(); - bitField0_ |= 0x00001000; - break; - } // case 104 - case 114: { - input.readMessage( - getPriorityFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00002000; - break; - } // case 114 - case 122: { - input.readMessage( - getGiftFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00004000; - break; - } // case 122 - case 130: { - logId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00008000; - break; - } // case 130 - case 136: { - sendType_ = input.readUInt64(); - bitField0_ |= 0x00010000; - break; - } // case 136 - case 146: { - input.readMessage( - getPublicAreaCommonFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00020000; - break; - } // case 146 - case 154: { - input.readMessage( - getTrayDisplayTextFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00040000; - break; - } // case 154 - case 160: { - bannedDisplayEffects_ = input.readUInt64(); - bitField0_ |= 0x00080000; - break; - } // case 160 - case 200: { - displayForSelf_ = input.readBool(); - bitField0_ |= 0x00100000; - break; - } // case 200 - case 210: { - interactGiftInfo_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00200000; - break; - } // case 210 - case 218: { - diyItemInfo_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00400000; - break; - } // case 218 - case 224: { - long v = input.readUInt64(); - ensureMinAssetSetListIsMutable(); - minAssetSetList_.addLong(v); - break; - } // case 224 - case 226: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureMinAssetSetListIsMutable(); - while (input.getBytesUntilLimit() > 0) { - minAssetSetList_.addLong(input.readUInt64()); - } - input.popLimit(limit); - break; - } // case 226 - case 232: { - totalCount_ = input.readUInt64(); - bitField0_ |= 0x01000000; - break; - } // case 232 - case 240: { - clientGiftSource_ = input.readUInt32(); - bitField0_ |= 0x02000000; - break; - } // case 240 - case 256: { - long v = input.readUInt64(); - ensureToUserIdsListIsMutable(); - toUserIdsList_.addLong(v); - break; - } // case 256 - case 258: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureToUserIdsListIsMutable(); - while (input.getBytesUntilLimit() > 0) { - toUserIdsList_.addLong(input.readUInt64()); - } - input.popLimit(limit); - break; - } // case 258 - case 264: { - sendTimet_ = input.readUInt64(); - bitField0_ |= 0x08000000; - break; - } // case 264 - case 272: { - forceDisplayEffectst_ = input.readUInt64(); - bitField0_ |= 0x10000000; - break; - } // case 272 - case 282: { - traceId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x20000000; - break; - } // case 282 - case 288: { - effectDisplayTs_ = input.readUInt64(); - bitField0_ |= 0x40000000; - break; - } // case 288 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - public boolean hasCommon() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Common common = 1; - * @return The common. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - if (commonBuilder_ == null) { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } else { - return commonBuilder_.getMessage(); - } - } - /** - * .Common common = 1; - */ - public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - common_ = value; - } else { - commonBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder setCommon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { - if (commonBuilder_ == null) { - common_ = builderForValue.build(); - } else { - commonBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - common_ != null && - common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { - getCommonBuilder().mergeFrom(value); - } else { - common_ = value; - } - } else { - commonBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder clearCommon() { - bitField0_ = (bitField0_ & ~0x00000001); - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getCommonFieldBuilder().getBuilder(); - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - if (commonBuilder_ != null) { - return commonBuilder_.getMessageOrBuilder(); - } else { - return common_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - } - /** - * .Common common = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> - getCommonFieldBuilder() { - if (commonBuilder_ == null) { - commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( - getCommon(), - getParentForChildren(), - isClean()); - common_ = null; - } - return commonBuilder_; - } - - private long longGiftId_ ; - /** - * uint64 long_gift_id = 2; - * @return The longGiftId. - */ - @java.lang.Override - public long getLongGiftId() { - return longGiftId_; - } - /** - * uint64 long_gift_id = 2; - * @param value The longGiftId to set. - * @return This builder for chaining. - */ - public Builder setLongGiftId(long value) { - - longGiftId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 long_gift_id = 2; - * @return This builder for chaining. - */ - public Builder clearLongGiftId() { - bitField0_ = (bitField0_ & ~0x00000002); - longGiftId_ = 0L; - onChanged(); - return this; - } - - private long fanTicketCount_ ; - /** - * uint64 fan_ticket_count = 3; - * @return The fanTicketCount. - */ - @java.lang.Override - public long getFanTicketCount() { - return fanTicketCount_; - } - /** - * uint64 fan_ticket_count = 3; - * @param value The fanTicketCount to set. - * @return This builder for chaining. - */ - public Builder setFanTicketCount(long value) { - - fanTicketCount_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 fan_ticket_count = 3; - * @return This builder for chaining. - */ - public Builder clearFanTicketCount() { - bitField0_ = (bitField0_ & ~0x00000004); - fanTicketCount_ = 0L; - onChanged(); - return this; - } - - private long groupCount_ ; - /** - * uint64 group_count = 4; - * @return The groupCount. - */ - @java.lang.Override - public long getGroupCount() { - return groupCount_; - } - /** - * uint64 group_count = 4; - * @param value The groupCount to set. - * @return This builder for chaining. - */ - public Builder setGroupCount(long value) { - - groupCount_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 group_count = 4; - * @return This builder for chaining. - */ - public Builder clearGroupCount() { - bitField0_ = (bitField0_ & ~0x00000008); - groupCount_ = 0L; - onChanged(); - return this; - } - - private long repeatCount_ ; - /** - * uint64 repeat_count = 5; - * @return The repeatCount. - */ - @java.lang.Override - public long getRepeatCount() { - return repeatCount_; - } - /** - * uint64 repeat_count = 5; - * @param value The repeatCount to set. - * @return This builder for chaining. - */ - public Builder setRepeatCount(long value) { - - repeatCount_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 repeat_count = 5; - * @return This builder for chaining. - */ - public Builder clearRepeatCount() { - bitField0_ = (bitField0_ & ~0x00000010); - repeatCount_ = 0L; - onChanged(); - return this; - } - - private long comboCount_ ; - /** - * uint64 combo_count = 6; - * @return The comboCount. - */ - @java.lang.Override - public long getComboCount() { - return comboCount_; - } - /** - * uint64 combo_count = 6; - * @param value The comboCount to set. - * @return This builder for chaining. - */ - public Builder setComboCount(long value) { - - comboCount_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint64 combo_count = 6; - * @return This builder for chaining. - */ - public Builder clearComboCount() { - bitField0_ = (bitField0_ & ~0x00000020); - comboCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 7; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000040) != 0); - } - /** - * .User user = 7; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 7; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .User user = 7; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .User user = 7; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .User user = 7; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000040); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User toUser_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> toUserBuilder_; - /** - * .User to_user = 8; - * @return Whether the toUser field is set. - */ - public boolean hasToUser() { - return ((bitField0_ & 0x00000080) != 0); - } - /** - * .User to_user = 8; - * @return The toUser. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser() { - if (toUserBuilder_ == null) { - return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; - } else { - return toUserBuilder_.getMessage(); - } - } - /** - * .User to_user = 8; - */ - public Builder setToUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (toUserBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - toUser_ = value; - } else { - toUserBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .User to_user = 8; - */ - public Builder setToUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (toUserBuilder_ == null) { - toUser_ = builderForValue.build(); - } else { - toUserBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .User to_user = 8; - */ - public Builder mergeToUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (toUserBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) && - toUser_ != null && - toUser_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getToUserBuilder().mergeFrom(value); - } else { - toUser_ = value; - } - } else { - toUserBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .User to_user = 8; - */ - public Builder clearToUser() { - bitField0_ = (bitField0_ & ~0x00000080); - toUser_ = null; - if (toUserBuilder_ != null) { - toUserBuilder_.dispose(); - toUserBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User to_user = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getToUserBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getToUserFieldBuilder().getBuilder(); - } - /** - * .User to_user = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder() { - if (toUserBuilder_ != null) { - return toUserBuilder_.getMessageOrBuilder(); - } else { - return toUser_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; - } - } - /** - * .User to_user = 8; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getToUserFieldBuilder() { - if (toUserBuilder_ == null) { - toUserBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getToUser(), - getParentForChildren(), - isClean()); - toUser_ = null; - } - return toUserBuilder_; - } - - private int repeatEnd_ ; - /** - * uint32 repeat_end = 9; - * @return The repeatEnd. - */ - @java.lang.Override - public int getRepeatEnd() { - return repeatEnd_; - } - /** - * uint32 repeat_end = 9; - * @param value The repeatEnd to set. - * @return This builder for chaining. - */ - public Builder setRepeatEnd(int value) { - - repeatEnd_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint32 repeat_end = 9; - * @return This builder for chaining. - */ - public Builder clearRepeatEnd() { - bitField0_ = (bitField0_ & ~0x00000100); - repeatEnd_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect textEffect_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder> textEffectBuilder_; - /** - * .TextEffect text_effect = 10; - * @return Whether the textEffect field is set. - */ - public boolean hasTextEffect() { - return ((bitField0_ & 0x00000200) != 0); - } - /** - * .TextEffect text_effect = 10; - * @return The textEffect. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect() { - if (textEffectBuilder_ == null) { - return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; - } else { - return textEffectBuilder_.getMessage(); - } - } - /** - * .TextEffect text_effect = 10; - */ - public Builder setTextEffect(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect value) { - if (textEffectBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - textEffect_ = value; - } else { - textEffectBuilder_.setMessage(value); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .TextEffect text_effect = 10; - */ - public Builder setTextEffect( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder builderForValue) { - if (textEffectBuilder_ == null) { - textEffect_ = builderForValue.build(); - } else { - textEffectBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .TextEffect text_effect = 10; - */ - public Builder mergeTextEffect(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect value) { - if (textEffectBuilder_ == null) { - if (((bitField0_ & 0x00000200) != 0) && - textEffect_ != null && - textEffect_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance()) { - getTextEffectBuilder().mergeFrom(value); - } else { - textEffect_ = value; - } - } else { - textEffectBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .TextEffect text_effect = 10; - */ - public Builder clearTextEffect() { - bitField0_ = (bitField0_ & ~0x00000200); - textEffect_ = null; - if (textEffectBuilder_ != null) { - textEffectBuilder_.dispose(); - textEffectBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextEffect text_effect = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder getTextEffectBuilder() { - bitField0_ |= 0x00000200; - onChanged(); - return getTextEffectFieldBuilder().getBuilder(); - } - /** - * .TextEffect text_effect = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder() { - if (textEffectBuilder_ != null) { - return textEffectBuilder_.getMessageOrBuilder(); - } else { - return textEffect_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; - } - } - /** - * .TextEffect text_effect = 10; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder> - getTextEffectFieldBuilder() { - if (textEffectBuilder_ == null) { - textEffectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder>( - getTextEffect(), - getParentForChildren(), - isClean()); - textEffect_ = null; - } - return textEffectBuilder_; - } - - private long groupId_ ; - /** - * uint64 group_id = 11; - * @return The groupId. - */ - @java.lang.Override - public long getGroupId() { - return groupId_; - } - /** - * uint64 group_id = 11; - * @param value The groupId to set. - * @return This builder for chaining. - */ - public Builder setGroupId(long value) { - - groupId_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * uint64 group_id = 11; - * @return This builder for chaining. - */ - public Builder clearGroupId() { - bitField0_ = (bitField0_ & ~0x00000400); - groupId_ = 0L; - onChanged(); - return this; - } - - private long incomeTaskgifts_ ; - /** - * uint64 income_taskgifts = 12; - * @return The incomeTaskgifts. - */ - @java.lang.Override - public long getIncomeTaskgifts() { - return incomeTaskgifts_; - } - /** - * uint64 income_taskgifts = 12; - * @param value The incomeTaskgifts to set. - * @return This builder for chaining. - */ - public Builder setIncomeTaskgifts(long value) { - - incomeTaskgifts_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * uint64 income_taskgifts = 12; - * @return This builder for chaining. - */ - public Builder clearIncomeTaskgifts() { - bitField0_ = (bitField0_ & ~0x00000800); - incomeTaskgifts_ = 0L; - onChanged(); - return this; - } - - private long roomFanTicketCount_ ; - /** - * uint64 room_fan_ticket_count = 13; - * @return The roomFanTicketCount. - */ - @java.lang.Override - public long getRoomFanTicketCount() { - return roomFanTicketCount_; - } - /** - * uint64 room_fan_ticket_count = 13; - * @param value The roomFanTicketCount to set. - * @return This builder for chaining. - */ - public Builder setRoomFanTicketCount(long value) { - - roomFanTicketCount_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * uint64 room_fan_ticket_count = 13; - * @return This builder for chaining. - */ - public Builder clearRoomFanTicketCount() { - bitField0_ = (bitField0_ & ~0x00001000); - roomFanTicketCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority priority_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder> priorityBuilder_; - /** - * .GiftIMPriority priority = 14; - * @return Whether the priority field is set. - */ - public boolean hasPriority() { - return ((bitField0_ & 0x00002000) != 0); - } - /** - * .GiftIMPriority priority = 14; - * @return The priority. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority() { - if (priorityBuilder_ == null) { - return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; - } else { - return priorityBuilder_.getMessage(); - } - } - /** - * .GiftIMPriority priority = 14; - */ - public Builder setPriority(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority value) { - if (priorityBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - priority_ = value; - } else { - priorityBuilder_.setMessage(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .GiftIMPriority priority = 14; - */ - public Builder setPriority( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder builderForValue) { - if (priorityBuilder_ == null) { - priority_ = builderForValue.build(); - } else { - priorityBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .GiftIMPriority priority = 14; - */ - public Builder mergePriority(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority value) { - if (priorityBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0) && - priority_ != null && - priority_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance()) { - getPriorityBuilder().mergeFrom(value); - } else { - priority_ = value; - } - } else { - priorityBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .GiftIMPriority priority = 14; - */ - public Builder clearPriority() { - bitField0_ = (bitField0_ & ~0x00002000); - priority_ = null; - if (priorityBuilder_ != null) { - priorityBuilder_.dispose(); - priorityBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .GiftIMPriority priority = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder getPriorityBuilder() { - bitField0_ |= 0x00002000; - onChanged(); - return getPriorityFieldBuilder().getBuilder(); - } - /** - * .GiftIMPriority priority = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder() { - if (priorityBuilder_ != null) { - return priorityBuilder_.getMessageOrBuilder(); - } else { - return priority_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; - } - } - /** - * .GiftIMPriority priority = 14; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder> - getPriorityFieldBuilder() { - if (priorityBuilder_ == null) { - priorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder>( - getPriority(), - getParentForChildren(), - isClean()); - priority_ = null; - } - return priorityBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct gift_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder> giftBuilder_; - /** - * .GiftStruct gift = 15; - * @return Whether the gift field is set. - */ - public boolean hasGift() { - return ((bitField0_ & 0x00004000) != 0); - } - /** - * .GiftStruct gift = 15; - * @return The gift. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift() { - if (giftBuilder_ == null) { - return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; - } else { - return giftBuilder_.getMessage(); - } - } - /** - * .GiftStruct gift = 15; - */ - public Builder setGift(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct value) { - if (giftBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - gift_ = value; - } else { - giftBuilder_.setMessage(value); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .GiftStruct gift = 15; - */ - public Builder setGift( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder builderForValue) { - if (giftBuilder_ == null) { - gift_ = builderForValue.build(); - } else { - giftBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .GiftStruct gift = 15; - */ - public Builder mergeGift(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct value) { - if (giftBuilder_ == null) { - if (((bitField0_ & 0x00004000) != 0) && - gift_ != null && - gift_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance()) { - getGiftBuilder().mergeFrom(value); - } else { - gift_ = value; - } - } else { - giftBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .GiftStruct gift = 15; - */ - public Builder clearGift() { - bitField0_ = (bitField0_ & ~0x00004000); - gift_ = null; - if (giftBuilder_ != null) { - giftBuilder_.dispose(); - giftBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .GiftStruct gift = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder getGiftBuilder() { - bitField0_ |= 0x00004000; - onChanged(); - return getGiftFieldBuilder().getBuilder(); - } - /** - * .GiftStruct gift = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder() { - if (giftBuilder_ != null) { - return giftBuilder_.getMessageOrBuilder(); - } else { - return gift_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; - } - } - /** - * .GiftStruct gift = 15; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder> - getGiftFieldBuilder() { - if (giftBuilder_ == null) { - giftBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder>( - getGift(), - getParentForChildren(), - isClean()); - gift_ = null; - } - return giftBuilder_; - } - - private java.lang.Object logId_ = ""; - /** - * string log_id = 16; - * @return The logId. - */ - public java.lang.String getLogId() { - java.lang.Object ref = logId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - logId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string log_id = 16; - * @return The bytes for logId. - */ - public com.google.protobuf.ByteString - getLogIdBytes() { - java.lang.Object ref = logId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - logId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string log_id = 16; - * @param value The logId to set. - * @return This builder for chaining. - */ - public Builder setLogId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - logId_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * string log_id = 16; - * @return This builder for chaining. - */ - public Builder clearLogId() { - logId_ = getDefaultInstance().getLogId(); - bitField0_ = (bitField0_ & ~0x00008000); - onChanged(); - return this; - } - /** - * string log_id = 16; - * @param value The bytes for logId to set. - * @return This builder for chaining. - */ - public Builder setLogIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - logId_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - - private long sendType_ ; - /** - * uint64 send_type = 17; - * @return The sendType. - */ - @java.lang.Override - public long getSendType() { - return sendType_; - } - /** - * uint64 send_type = 17; - * @param value The sendType to set. - * @return This builder for chaining. - */ - public Builder setSendType(long value) { - - sendType_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * uint64 send_type = 17; - * @return This builder for chaining. - */ - public Builder clearSendType() { - bitField0_ = (bitField0_ & ~0x00010000); - sendType_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon publicAreaCommon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder> publicAreaCommonBuilder_; - /** - * .PublicAreaCommon public_area_common = 18; - * @return Whether the publicAreaCommon field is set. - */ - public boolean hasPublicAreaCommon() { - return ((bitField0_ & 0x00020000) != 0); - } - /** - * .PublicAreaCommon public_area_common = 18; - * @return The publicAreaCommon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon() { - if (publicAreaCommonBuilder_ == null) { - return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; - } else { - return publicAreaCommonBuilder_.getMessage(); - } - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public Builder setPublicAreaCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon value) { - if (publicAreaCommonBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - publicAreaCommon_ = value; - } else { - publicAreaCommonBuilder_.setMessage(value); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public Builder setPublicAreaCommon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder builderForValue) { - if (publicAreaCommonBuilder_ == null) { - publicAreaCommon_ = builderForValue.build(); - } else { - publicAreaCommonBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public Builder mergePublicAreaCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon value) { - if (publicAreaCommonBuilder_ == null) { - if (((bitField0_ & 0x00020000) != 0) && - publicAreaCommon_ != null && - publicAreaCommon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance()) { - getPublicAreaCommonBuilder().mergeFrom(value); - } else { - publicAreaCommon_ = value; - } - } else { - publicAreaCommonBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public Builder clearPublicAreaCommon() { - bitField0_ = (bitField0_ & ~0x00020000); - publicAreaCommon_ = null; - if (publicAreaCommonBuilder_ != null) { - publicAreaCommonBuilder_.dispose(); - publicAreaCommonBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder getPublicAreaCommonBuilder() { - bitField0_ |= 0x00020000; - onChanged(); - return getPublicAreaCommonFieldBuilder().getBuilder(); - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder() { - if (publicAreaCommonBuilder_ != null) { - return publicAreaCommonBuilder_.getMessageOrBuilder(); - } else { - return publicAreaCommon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; - } - } - /** - * .PublicAreaCommon public_area_common = 18; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder> - getPublicAreaCommonFieldBuilder() { - if (publicAreaCommonBuilder_ == null) { - publicAreaCommonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder>( - getPublicAreaCommon(), - getParentForChildren(), - isClean()); - publicAreaCommon_ = null; - } - return publicAreaCommonBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text trayDisplayText_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> trayDisplayTextBuilder_; - /** - * .Text tray_display_text = 19; - * @return Whether the trayDisplayText field is set. - */ - public boolean hasTrayDisplayText() { - return ((bitField0_ & 0x00040000) != 0); - } - /** - * .Text tray_display_text = 19; - * @return The trayDisplayText. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText() { - if (trayDisplayTextBuilder_ == null) { - return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; - } else { - return trayDisplayTextBuilder_.getMessage(); - } - } - /** - * .Text tray_display_text = 19; - */ - public Builder setTrayDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (trayDisplayTextBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - trayDisplayText_ = value; - } else { - trayDisplayTextBuilder_.setMessage(value); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Text tray_display_text = 19; - */ - public Builder setTrayDisplayText( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { - if (trayDisplayTextBuilder_ == null) { - trayDisplayText_ = builderForValue.build(); - } else { - trayDisplayTextBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Text tray_display_text = 19; - */ - public Builder mergeTrayDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (trayDisplayTextBuilder_ == null) { - if (((bitField0_ & 0x00040000) != 0) && - trayDisplayText_ != null && - trayDisplayText_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { - getTrayDisplayTextBuilder().mergeFrom(value); - } else { - trayDisplayText_ = value; - } - } else { - trayDisplayTextBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Text tray_display_text = 19; - */ - public Builder clearTrayDisplayText() { - bitField0_ = (bitField0_ & ~0x00040000); - trayDisplayText_ = null; - if (trayDisplayTextBuilder_ != null) { - trayDisplayTextBuilder_.dispose(); - trayDisplayTextBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Text tray_display_text = 19; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getTrayDisplayTextBuilder() { - bitField0_ |= 0x00040000; - onChanged(); - return getTrayDisplayTextFieldBuilder().getBuilder(); - } - /** - * .Text tray_display_text = 19; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder() { - if (trayDisplayTextBuilder_ != null) { - return trayDisplayTextBuilder_.getMessageOrBuilder(); - } else { - return trayDisplayText_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; - } - } - /** - * .Text tray_display_text = 19; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> - getTrayDisplayTextFieldBuilder() { - if (trayDisplayTextBuilder_ == null) { - trayDisplayTextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( - getTrayDisplayText(), - getParentForChildren(), - isClean()); - trayDisplayText_ = null; - } - return trayDisplayTextBuilder_; - } - - private long bannedDisplayEffects_ ; - /** - * uint64 banned_display_effects = 20; - * @return The bannedDisplayEffects. - */ - @java.lang.Override - public long getBannedDisplayEffects() { - return bannedDisplayEffects_; - } - /** - * uint64 banned_display_effects = 20; - * @param value The bannedDisplayEffects to set. - * @return This builder for chaining. - */ - public Builder setBannedDisplayEffects(long value) { - - bannedDisplayEffects_ = value; - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * uint64 banned_display_effects = 20; - * @return This builder for chaining. - */ - public Builder clearBannedDisplayEffects() { - bitField0_ = (bitField0_ & ~0x00080000); - bannedDisplayEffects_ = 0L; - onChanged(); - return this; - } - - private boolean displayForSelf_ ; - /** - *
-     * GiftTrayInfo trayInfo = 21;
-     * AssetEffectMixInfo assetEffectMixInfo = 22;
-     * 
- * - * bool display_for_self = 25; - * @return The displayForSelf. - */ - @java.lang.Override - public boolean getDisplayForSelf() { - return displayForSelf_; - } - /** - *
-     * GiftTrayInfo trayInfo = 21;
-     * AssetEffectMixInfo assetEffectMixInfo = 22;
-     * 
- * - * bool display_for_self = 25; - * @param value The displayForSelf to set. - * @return This builder for chaining. - */ - public Builder setDisplayForSelf(boolean value) { - - displayForSelf_ = value; - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - *
-     * GiftTrayInfo trayInfo = 21;
-     * AssetEffectMixInfo assetEffectMixInfo = 22;
-     * 
- * - * bool display_for_self = 25; - * @return This builder for chaining. - */ - public Builder clearDisplayForSelf() { - bitField0_ = (bitField0_ & ~0x00100000); - displayForSelf_ = false; - onChanged(); - return this; - } - - private java.lang.Object interactGiftInfo_ = ""; - /** - * string interact_gift_info = 26; - * @return The interactGiftInfo. - */ - public java.lang.String getInteractGiftInfo() { - java.lang.Object ref = interactGiftInfo_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - interactGiftInfo_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string interact_gift_info = 26; - * @return The bytes for interactGiftInfo. - */ - public com.google.protobuf.ByteString - getInteractGiftInfoBytes() { - java.lang.Object ref = interactGiftInfo_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - interactGiftInfo_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string interact_gift_info = 26; - * @param value The interactGiftInfo to set. - * @return This builder for chaining. - */ - public Builder setInteractGiftInfo( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - interactGiftInfo_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * string interact_gift_info = 26; - * @return This builder for chaining. - */ - public Builder clearInteractGiftInfo() { - interactGiftInfo_ = getDefaultInstance().getInteractGiftInfo(); - bitField0_ = (bitField0_ & ~0x00200000); - onChanged(); - return this; - } - /** - * string interact_gift_info = 26; - * @param value The bytes for interactGiftInfo to set. - * @return This builder for chaining. - */ - public Builder setInteractGiftInfoBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - interactGiftInfo_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - - private java.lang.Object diyItemInfo_ = ""; - /** - * string diy_item_info = 27; - * @return The diyItemInfo. - */ - public java.lang.String getDiyItemInfo() { - java.lang.Object ref = diyItemInfo_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - diyItemInfo_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string diy_item_info = 27; - * @return The bytes for diyItemInfo. - */ - public com.google.protobuf.ByteString - getDiyItemInfoBytes() { - java.lang.Object ref = diyItemInfo_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - diyItemInfo_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string diy_item_info = 27; - * @param value The diyItemInfo to set. - * @return This builder for chaining. - */ - public Builder setDiyItemInfo( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - diyItemInfo_ = value; - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * string diy_item_info = 27; - * @return This builder for chaining. - */ - public Builder clearDiyItemInfo() { - diyItemInfo_ = getDefaultInstance().getDiyItemInfo(); - bitField0_ = (bitField0_ & ~0x00400000); - onChanged(); - return this; - } - /** - * string diy_item_info = 27; - * @param value The bytes for diyItemInfo to set. - * @return This builder for chaining. - */ - public Builder setDiyItemInfoBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - diyItemInfo_ = value; - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.LongList minAssetSetList_ = emptyLongList(); - private void ensureMinAssetSetListIsMutable() { - if (!((bitField0_ & 0x00800000) != 0)) { - minAssetSetList_ = mutableCopy(minAssetSetList_); - bitField0_ |= 0x00800000; - } - } - /** - * repeated uint64 min_asset_set_list = 28; - * @return A list containing the minAssetSetList. - */ - public java.util.List - getMinAssetSetListList() { - return ((bitField0_ & 0x00800000) != 0) ? - java.util.Collections.unmodifiableList(minAssetSetList_) : minAssetSetList_; - } - /** - * repeated uint64 min_asset_set_list = 28; - * @return The count of minAssetSetList. - */ - public int getMinAssetSetListCount() { - return minAssetSetList_.size(); - } - /** - * repeated uint64 min_asset_set_list = 28; - * @param index The index of the element to return. - * @return The minAssetSetList at the given index. - */ - public long getMinAssetSetList(int index) { - return minAssetSetList_.getLong(index); - } - /** - * repeated uint64 min_asset_set_list = 28; - * @param index The index to set the value at. - * @param value The minAssetSetList to set. - * @return This builder for chaining. - */ - public Builder setMinAssetSetList( - int index, long value) { - - ensureMinAssetSetListIsMutable(); - minAssetSetList_.setLong(index, value); - onChanged(); - return this; - } - /** - * repeated uint64 min_asset_set_list = 28; - * @param value The minAssetSetList to add. - * @return This builder for chaining. - */ - public Builder addMinAssetSetList(long value) { - - ensureMinAssetSetListIsMutable(); - minAssetSetList_.addLong(value); - onChanged(); - return this; - } - /** - * repeated uint64 min_asset_set_list = 28; - * @param values The minAssetSetList to add. - * @return This builder for chaining. - */ - public Builder addAllMinAssetSetList( - java.lang.Iterable values) { - ensureMinAssetSetListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, minAssetSetList_); - onChanged(); - return this; - } - /** - * repeated uint64 min_asset_set_list = 28; - * @return This builder for chaining. - */ - public Builder clearMinAssetSetList() { - minAssetSetList_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00800000); - onChanged(); - return this; - } - - private long totalCount_ ; - /** - * uint64 total_count = 29; - * @return The totalCount. - */ - @java.lang.Override - public long getTotalCount() { - return totalCount_; - } - /** - * uint64 total_count = 29; - * @param value The totalCount to set. - * @return This builder for chaining. - */ - public Builder setTotalCount(long value) { - - totalCount_ = value; - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * uint64 total_count = 29; - * @return This builder for chaining. - */ - public Builder clearTotalCount() { - bitField0_ = (bitField0_ & ~0x01000000); - totalCount_ = 0L; - onChanged(); - return this; - } - - private int clientGiftSource_ ; - /** - * uint32 client_gift_source = 30; - * @return The clientGiftSource. - */ - @java.lang.Override - public int getClientGiftSource() { - return clientGiftSource_; - } - /** - * uint32 client_gift_source = 30; - * @param value The clientGiftSource to set. - * @return This builder for chaining. - */ - public Builder setClientGiftSource(int value) { - - clientGiftSource_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - /** - * uint32 client_gift_source = 30; - * @return This builder for chaining. - */ - public Builder clearClientGiftSource() { - bitField0_ = (bitField0_ & ~0x02000000); - clientGiftSource_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.LongList toUserIdsList_ = emptyLongList(); - private void ensureToUserIdsListIsMutable() { - if (!((bitField0_ & 0x04000000) != 0)) { - toUserIdsList_ = mutableCopy(toUserIdsList_); - bitField0_ |= 0x04000000; - } - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return A list containing the toUserIdsList. - */ - public java.util.List - getToUserIdsListList() { - return ((bitField0_ & 0x04000000) != 0) ? - java.util.Collections.unmodifiableList(toUserIdsList_) : toUserIdsList_; - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return The count of toUserIdsList. - */ - public int getToUserIdsListCount() { - return toUserIdsList_.size(); - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param index The index of the element to return. - * @return The toUserIdsList at the given index. - */ - public long getToUserIdsList(int index) { - return toUserIdsList_.getLong(index); - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param index The index to set the value at. - * @param value The toUserIdsList to set. - * @return This builder for chaining. - */ - public Builder setToUserIdsList( - int index, long value) { - - ensureToUserIdsListIsMutable(); - toUserIdsList_.setLong(index, value); - onChanged(); - return this; - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param value The toUserIdsList to add. - * @return This builder for chaining. - */ - public Builder addToUserIdsList(long value) { - - ensureToUserIdsListIsMutable(); - toUserIdsList_.addLong(value); - onChanged(); - return this; - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param values The toUserIdsList to add. - * @return This builder for chaining. - */ - public Builder addAllToUserIdsList( - java.lang.Iterable values) { - ensureToUserIdsListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, toUserIdsList_); - onChanged(); - return this; - } - /** - *
-     * AnchorGiftData anchorGift = 31;
-     * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return This builder for chaining. - */ - public Builder clearToUserIdsList() { - toUserIdsList_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x04000000); - onChanged(); - return this; - } - - private long sendTimet_ ; - /** - * uint64 send_timet = 33; - * @return The sendTimet. - */ - @java.lang.Override - public long getSendTimet() { - return sendTimet_; - } - /** - * uint64 send_timet = 33; - * @param value The sendTimet to set. - * @return This builder for chaining. - */ - public Builder setSendTimet(long value) { - - sendTimet_ = value; - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * uint64 send_timet = 33; - * @return This builder for chaining. - */ - public Builder clearSendTimet() { - bitField0_ = (bitField0_ & ~0x08000000); - sendTimet_ = 0L; - onChanged(); - return this; - } - - private long forceDisplayEffectst_ ; - /** - * uint64 force_display_effectst = 34; - * @return The forceDisplayEffectst. - */ - @java.lang.Override - public long getForceDisplayEffectst() { - return forceDisplayEffectst_; - } - /** - * uint64 force_display_effectst = 34; - * @param value The forceDisplayEffectst to set. - * @return This builder for chaining. - */ - public Builder setForceDisplayEffectst(long value) { - - forceDisplayEffectst_ = value; - bitField0_ |= 0x10000000; - onChanged(); - return this; - } - /** - * uint64 force_display_effectst = 34; - * @return This builder for chaining. - */ - public Builder clearForceDisplayEffectst() { - bitField0_ = (bitField0_ & ~0x10000000); - forceDisplayEffectst_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object traceId_ = ""; - /** - * string trace_id = 35; - * @return The traceId. - */ - public java.lang.String getTraceId() { - java.lang.Object ref = traceId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - traceId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string trace_id = 35; - * @return The bytes for traceId. - */ - public com.google.protobuf.ByteString - getTraceIdBytes() { - java.lang.Object ref = traceId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - traceId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string trace_id = 35; - * @param value The traceId to set. - * @return This builder for chaining. - */ - public Builder setTraceId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - traceId_ = value; - bitField0_ |= 0x20000000; - onChanged(); - return this; - } - /** - * string trace_id = 35; - * @return This builder for chaining. - */ - public Builder clearTraceId() { - traceId_ = getDefaultInstance().getTraceId(); - bitField0_ = (bitField0_ & ~0x20000000); - onChanged(); - return this; - } - /** - * string trace_id = 35; - * @param value The bytes for traceId to set. - * @return This builder for chaining. - */ - public Builder setTraceIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - traceId_ = value; - bitField0_ |= 0x20000000; - onChanged(); - return this; - } - - private long effectDisplayTs_ ; - /** - * uint64 effect_display_ts = 36; - * @return The effectDisplayTs. - */ - @java.lang.Override - public long getEffectDisplayTs() { - return effectDisplayTs_; - } - /** - * uint64 effect_display_ts = 36; - * @param value The effectDisplayTs to set. - * @return This builder for chaining. - */ - public Builder setEffectDisplayTs(long value) { - - effectDisplayTs_ = value; - bitField0_ |= 0x40000000; - onChanged(); - return this; - } - /** - * uint64 effect_display_ts = 36; - * @return This builder for chaining. - */ - public Builder clearEffectDisplayTs() { - bitField0_ = (bitField0_ & ~0x40000000); - effectDisplayTs_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_webcast_gift_message_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java deleted file mode 100644 index 48301993..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_gift_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_webcast_gift_message_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - boolean hasCommon(); - /** - * .Common common = 1; - * @return The common. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); - /** - * .Common common = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); - - /** - * uint64 long_gift_id = 2; - * @return The longGiftId. - */ - long getLongGiftId(); - - /** - * uint64 fan_ticket_count = 3; - * @return The fanTicketCount. - */ - long getFanTicketCount(); - - /** - * uint64 group_count = 4; - * @return The groupCount. - */ - long getGroupCount(); - - /** - * uint64 repeat_count = 5; - * @return The repeatCount. - */ - long getRepeatCount(); - - /** - * uint64 combo_count = 6; - * @return The comboCount. - */ - long getComboCount(); - - /** - * .User user = 7; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 7; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 7; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - * .User to_user = 8; - * @return Whether the toUser field is set. - */ - boolean hasToUser(); - /** - * .User to_user = 8; - * @return The toUser. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser(); - /** - * .User to_user = 8; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder(); - - /** - * uint32 repeat_end = 9; - * @return The repeatEnd. - */ - int getRepeatEnd(); - - /** - * .TextEffect text_effect = 10; - * @return Whether the textEffect field is set. - */ - boolean hasTextEffect(); - /** - * .TextEffect text_effect = 10; - * @return The textEffect. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect(); - /** - * .TextEffect text_effect = 10; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder(); - - /** - * uint64 group_id = 11; - * @return The groupId. - */ - long getGroupId(); - - /** - * uint64 income_taskgifts = 12; - * @return The incomeTaskgifts. - */ - long getIncomeTaskgifts(); - - /** - * uint64 room_fan_ticket_count = 13; - * @return The roomFanTicketCount. - */ - long getRoomFanTicketCount(); - - /** - * .GiftIMPriority priority = 14; - * @return Whether the priority field is set. - */ - boolean hasPriority(); - /** - * .GiftIMPriority priority = 14; - * @return The priority. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority(); - /** - * .GiftIMPriority priority = 14; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder(); - - /** - * .GiftStruct gift = 15; - * @return Whether the gift field is set. - */ - boolean hasGift(); - /** - * .GiftStruct gift = 15; - * @return The gift. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift(); - /** - * .GiftStruct gift = 15; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder(); - - /** - * string log_id = 16; - * @return The logId. - */ - java.lang.String getLogId(); - /** - * string log_id = 16; - * @return The bytes for logId. - */ - com.google.protobuf.ByteString - getLogIdBytes(); - - /** - * uint64 send_type = 17; - * @return The sendType. - */ - long getSendType(); - - /** - * .PublicAreaCommon public_area_common = 18; - * @return Whether the publicAreaCommon field is set. - */ - boolean hasPublicAreaCommon(); - /** - * .PublicAreaCommon public_area_common = 18; - * @return The publicAreaCommon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon(); - /** - * .PublicAreaCommon public_area_common = 18; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder(); - - /** - * .Text tray_display_text = 19; - * @return Whether the trayDisplayText field is set. - */ - boolean hasTrayDisplayText(); - /** - * .Text tray_display_text = 19; - * @return The trayDisplayText. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText(); - /** - * .Text tray_display_text = 19; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder(); - - /** - * uint64 banned_display_effects = 20; - * @return The bannedDisplayEffects. - */ - long getBannedDisplayEffects(); - - /** - *
-   * GiftTrayInfo trayInfo = 21;
-   * AssetEffectMixInfo assetEffectMixInfo = 22;
-   * 
- * - * bool display_for_self = 25; - * @return The displayForSelf. - */ - boolean getDisplayForSelf(); - - /** - * string interact_gift_info = 26; - * @return The interactGiftInfo. - */ - java.lang.String getInteractGiftInfo(); - /** - * string interact_gift_info = 26; - * @return The bytes for interactGiftInfo. - */ - com.google.protobuf.ByteString - getInteractGiftInfoBytes(); - - /** - * string diy_item_info = 27; - * @return The diyItemInfo. - */ - java.lang.String getDiyItemInfo(); - /** - * string diy_item_info = 27; - * @return The bytes for diyItemInfo. - */ - com.google.protobuf.ByteString - getDiyItemInfoBytes(); - - /** - * repeated uint64 min_asset_set_list = 28; - * @return A list containing the minAssetSetList. - */ - java.util.List getMinAssetSetListList(); - /** - * repeated uint64 min_asset_set_list = 28; - * @return The count of minAssetSetList. - */ - int getMinAssetSetListCount(); - /** - * repeated uint64 min_asset_set_list = 28; - * @param index The index of the element to return. - * @return The minAssetSetList at the given index. - */ - long getMinAssetSetList(int index); - - /** - * uint64 total_count = 29; - * @return The totalCount. - */ - long getTotalCount(); - - /** - * uint32 client_gift_source = 30; - * @return The clientGiftSource. - */ - int getClientGiftSource(); - - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return A list containing the toUserIdsList. - */ - java.util.List getToUserIdsListList(); - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @return The count of toUserIdsList. - */ - int getToUserIdsListCount(); - /** - *
-   * AnchorGiftData anchorGift = 31;
-   * 
- * - * repeated uint64 to_user_ids_list = 32; - * @param index The index of the element to return. - * @return The toUserIdsList at the given index. - */ - long getToUserIdsList(int index); - - /** - * uint64 send_timet = 33; - * @return The sendTimet. - */ - long getSendTimet(); - - /** - * uint64 force_display_effectst = 34; - * @return The forceDisplayEffectst. - */ - long getForceDisplayEffectst(); - - /** - * string trace_id = 35; - * @return The traceId. - */ - java.lang.String getTraceId(); - /** - * string trace_id = 35; - * @return The bytes for traceId. - */ - com.google.protobuf.ByteString - getTraceIdBytes(); - - /** - * uint64 effect_display_ts = 36; - * @return The effectDisplayTs. - */ - long getEffectDisplayTs(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java deleted file mode 100644 index 8e79778c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java +++ /dev/null @@ -1,1563 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_like_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg} - */ -public final class douyin_webcast_like_message_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) - douyin_webcast_like_message_msgOrBuilder { -private static final long serialVersionUID = 0L; - // Use douyin_webcast_like_message_msg.newBuilder() to construct. - private douyin_webcast_like_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_webcast_like_message_msg() { - icon_ = ""; - scene_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_webcast_like_message_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.Builder.class); - } - - public static final int COMMON_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - @java.lang.Override - public boolean hasCommon() { - return common_ != null; - } - /** - * .Common common = 1; - * @return The common. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - /** - * .Common common = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - - public static final int COUNT_FIELD_NUMBER = 2; - private long count_ = 0L; - /** - * uint64 count = 2; - * @return The count. - */ - @java.lang.Override - public long getCount() { - return count_; - } - - public static final int TOTAL_FIELD_NUMBER = 3; - private long total_ = 0L; - /** - * uint64 total = 3; - * @return The total. - */ - @java.lang.Override - public long getTotal() { - return total_; - } - - public static final int COLOR_FIELD_NUMBER = 4; - private long color_ = 0L; - /** - * uint64 color = 4; - * @return The color. - */ - @java.lang.Override - public long getColor() { - return color_; - } - - public static final int USER_FIELD_NUMBER = 5; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 5; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 5; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int ICON_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object icon_ = ""; - /** - * string icon = 6; - * @return The icon. - */ - @java.lang.Override - public java.lang.String getIcon() { - java.lang.Object ref = icon_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - icon_ = s; - return s; - } - } - /** - * string icon = 6; - * @return The bytes for icon. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIconBytes() { - java.lang.Object ref = icon_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - icon_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DOUBLELIKEDETAIL_FIELD_NUMBER = 7; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail doubleLikeDetail_; - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return Whether the doubleLikeDetail field is set. - */ - @java.lang.Override - public boolean hasDoubleLikeDetail() { - return doubleLikeDetail_ != null; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return The doubleLikeDetail. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail() { - return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder() { - return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; - } - - public static final int LINKMICGUESTUID_FIELD_NUMBER = 9; - private long linkmicGuestUid_ = 0L; - /** - *
-   * DisplayControlInfo displayControlInfo = 8;
-   * 
- * - * uint64 linkmicGuestUid = 9; - * @return The linkmicGuestUid. - */ - @java.lang.Override - public long getLinkmicGuestUid() { - return linkmicGuestUid_; - } - - public static final int SCENE_FIELD_NUMBER = 10; - @SuppressWarnings("serial") - private volatile java.lang.Object scene_ = ""; - /** - *
-   * PicoDisplayInfo picoDisplayInfo = 11;
-   * = 12;
-   * 
- * - * string scene = 10; - * @return The scene. - */ - @java.lang.Override - public java.lang.String getScene() { - java.lang.Object ref = scene_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - scene_ = s; - return s; - } - } - /** - *
-   * PicoDisplayInfo picoDisplayInfo = 11;
-   * = 12;
-   * 
- * - * string scene = 10; - * @return The bytes for scene. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSceneBytes() { - java.lang.Object ref = scene_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - scene_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (common_ != null) { - output.writeMessage(1, getCommon()); - } - if (count_ != 0L) { - output.writeUInt64(2, count_); - } - if (total_ != 0L) { - output.writeUInt64(3, total_); - } - if (color_ != 0L) { - output.writeUInt64(4, color_); - } - if (user_ != null) { - output.writeMessage(5, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(icon_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, icon_); - } - if (doubleLikeDetail_ != null) { - output.writeMessage(7, getDoubleLikeDetail()); - } - if (linkmicGuestUid_ != 0L) { - output.writeUInt64(9, linkmicGuestUid_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(scene_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 10, scene_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (common_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getCommon()); - } - if (count_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, count_); - } - if (total_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, total_); - } - if (color_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, color_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(icon_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, icon_); - } - if (doubleLikeDetail_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getDoubleLikeDetail()); - } - if (linkmicGuestUid_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(9, linkmicGuestUid_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(scene_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, scene_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) obj; - - if (hasCommon() != other.hasCommon()) return false; - if (hasCommon()) { - if (!getCommon() - .equals(other.getCommon())) return false; - } - if (getCount() - != other.getCount()) return false; - if (getTotal() - != other.getTotal()) return false; - if (getColor() - != other.getColor()) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (!getIcon() - .equals(other.getIcon())) return false; - if (hasDoubleLikeDetail() != other.hasDoubleLikeDetail()) return false; - if (hasDoubleLikeDetail()) { - if (!getDoubleLikeDetail() - .equals(other.getDoubleLikeDetail())) return false; - } - if (getLinkmicGuestUid() - != other.getLinkmicGuestUid()) return false; - if (!getScene() - .equals(other.getScene())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCommon()) { - hash = (37 * hash) + COMMON_FIELD_NUMBER; - hash = (53 * hash) + getCommon().hashCode(); - } - hash = (37 * hash) + COUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getCount()); - hash = (37 * hash) + TOTAL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTotal()); - hash = (37 * hash) + COLOR_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getColor()); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + ICON_FIELD_NUMBER; - hash = (53 * hash) + getIcon().hashCode(); - if (hasDoubleLikeDetail()) { - hash = (37 * hash) + DOUBLELIKEDETAIL_FIELD_NUMBER; - hash = (53 * hash) + getDoubleLikeDetail().hashCode(); - } - hash = (37 * hash) + LINKMICGUESTUID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLinkmicGuestUid()); - hash = (37 * hash) + SCENE_FIELD_NUMBER; - hash = (53 * hash) + getScene().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - count_ = 0L; - total_ = 0L; - color_ = 0L; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - icon_ = ""; - doubleLikeDetail_ = null; - if (doubleLikeDetailBuilder_ != null) { - doubleLikeDetailBuilder_.dispose(); - doubleLikeDetailBuilder_ = null; - } - linkmicGuestUid_ = 0L; - scene_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.common_ = commonBuilder_ == null - ? common_ - : commonBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.count_ = count_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.total_ = total_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.color_ = color_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.icon_ = icon_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.doubleLikeDetail_ = doubleLikeDetailBuilder_ == null - ? doubleLikeDetail_ - : doubleLikeDetailBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.linkmicGuestUid_ = linkmicGuestUid_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.scene_ = scene_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.getDefaultInstance()) return this; - if (other.hasCommon()) { - mergeCommon(other.getCommon()); - } - if (other.getCount() != 0L) { - setCount(other.getCount()); - } - if (other.getTotal() != 0L) { - setTotal(other.getTotal()); - } - if (other.getColor() != 0L) { - setColor(other.getColor()); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (!other.getIcon().isEmpty()) { - icon_ = other.icon_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.hasDoubleLikeDetail()) { - mergeDoubleLikeDetail(other.getDoubleLikeDetail()); - } - if (other.getLinkmicGuestUid() != 0L) { - setLinkmicGuestUid(other.getLinkmicGuestUid()); - } - if (!other.getScene().isEmpty()) { - scene_ = other.scene_; - bitField0_ |= 0x00000100; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getCommonFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - count_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - total_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - color_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - icon_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - input.readMessage( - getDoubleLikeDetailFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 72: { - linkmicGuestUid_ = input.readUInt64(); - bitField0_ |= 0x00000080; - break; - } // case 72 - case 82: { - scene_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000100; - break; - } // case 82 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - public boolean hasCommon() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Common common = 1; - * @return The common. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - if (commonBuilder_ == null) { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } else { - return commonBuilder_.getMessage(); - } - } - /** - * .Common common = 1; - */ - public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - common_ = value; - } else { - commonBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder setCommon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { - if (commonBuilder_ == null) { - common_ = builderForValue.build(); - } else { - commonBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - common_ != null && - common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { - getCommonBuilder().mergeFrom(value); - } else { - common_ = value; - } - } else { - commonBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder clearCommon() { - bitField0_ = (bitField0_ & ~0x00000001); - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getCommonFieldBuilder().getBuilder(); - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - if (commonBuilder_ != null) { - return commonBuilder_.getMessageOrBuilder(); - } else { - return common_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - } - /** - * .Common common = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> - getCommonFieldBuilder() { - if (commonBuilder_ == null) { - commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( - getCommon(), - getParentForChildren(), - isClean()); - common_ = null; - } - return commonBuilder_; - } - - private long count_ ; - /** - * uint64 count = 2; - * @return The count. - */ - @java.lang.Override - public long getCount() { - return count_; - } - /** - * uint64 count = 2; - * @param value The count to set. - * @return This builder for chaining. - */ - public Builder setCount(long value) { - - count_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 count = 2; - * @return This builder for chaining. - */ - public Builder clearCount() { - bitField0_ = (bitField0_ & ~0x00000002); - count_ = 0L; - onChanged(); - return this; - } - - private long total_ ; - /** - * uint64 total = 3; - * @return The total. - */ - @java.lang.Override - public long getTotal() { - return total_; - } - /** - * uint64 total = 3; - * @param value The total to set. - * @return This builder for chaining. - */ - public Builder setTotal(long value) { - - total_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 total = 3; - * @return This builder for chaining. - */ - public Builder clearTotal() { - bitField0_ = (bitField0_ & ~0x00000004); - total_ = 0L; - onChanged(); - return this; - } - - private long color_ ; - /** - * uint64 color = 4; - * @return The color. - */ - @java.lang.Override - public long getColor() { - return color_; - } - /** - * uint64 color = 4; - * @param value The color to set. - * @return This builder for chaining. - */ - public Builder setColor(long value) { - - color_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 color = 4; - * @return This builder for chaining. - */ - public Builder clearColor() { - bitField0_ = (bitField0_ & ~0x00000008); - color_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 5; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000010) != 0); - } - /** - * .User user = 5; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 5; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User user = 5; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User user = 5; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User user = 5; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000010); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private java.lang.Object icon_ = ""; - /** - * string icon = 6; - * @return The icon. - */ - public java.lang.String getIcon() { - java.lang.Object ref = icon_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - icon_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string icon = 6; - * @return The bytes for icon. - */ - public com.google.protobuf.ByteString - getIconBytes() { - java.lang.Object ref = icon_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - icon_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string icon = 6; - * @param value The icon to set. - * @return This builder for chaining. - */ - public Builder setIcon( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - icon_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string icon = 6; - * @return This builder for chaining. - */ - public Builder clearIcon() { - icon_ = getDefaultInstance().getIcon(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string icon = 6; - * @param value The bytes for icon to set. - * @return This builder for chaining. - */ - public Builder setIconBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - icon_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail doubleLikeDetail_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder> doubleLikeDetailBuilder_; - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return Whether the doubleLikeDetail field is set. - */ - public boolean hasDoubleLikeDetail() { - return ((bitField0_ & 0x00000040) != 0); - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return The doubleLikeDetail. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail() { - if (doubleLikeDetailBuilder_ == null) { - return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; - } else { - return doubleLikeDetailBuilder_.getMessage(); - } - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public Builder setDoubleLikeDetail(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail value) { - if (doubleLikeDetailBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - doubleLikeDetail_ = value; - } else { - doubleLikeDetailBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public Builder setDoubleLikeDetail( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder builderForValue) { - if (doubleLikeDetailBuilder_ == null) { - doubleLikeDetail_ = builderForValue.build(); - } else { - doubleLikeDetailBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public Builder mergeDoubleLikeDetail(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail value) { - if (doubleLikeDetailBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0) && - doubleLikeDetail_ != null && - doubleLikeDetail_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance()) { - getDoubleLikeDetailBuilder().mergeFrom(value); - } else { - doubleLikeDetail_ = value; - } - } else { - doubleLikeDetailBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public Builder clearDoubleLikeDetail() { - bitField0_ = (bitField0_ & ~0x00000040); - doubleLikeDetail_ = null; - if (doubleLikeDetailBuilder_ != null) { - doubleLikeDetailBuilder_.dispose(); - doubleLikeDetailBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder getDoubleLikeDetailBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getDoubleLikeDetailFieldBuilder().getBuilder(); - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder() { - if (doubleLikeDetailBuilder_ != null) { - return doubleLikeDetailBuilder_.getMessageOrBuilder(); - } else { - return doubleLikeDetail_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; - } - } - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder> - getDoubleLikeDetailFieldBuilder() { - if (doubleLikeDetailBuilder_ == null) { - doubleLikeDetailBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder>( - getDoubleLikeDetail(), - getParentForChildren(), - isClean()); - doubleLikeDetail_ = null; - } - return doubleLikeDetailBuilder_; - } - - private long linkmicGuestUid_ ; - /** - *
-     * DisplayControlInfo displayControlInfo = 8;
-     * 
- * - * uint64 linkmicGuestUid = 9; - * @return The linkmicGuestUid. - */ - @java.lang.Override - public long getLinkmicGuestUid() { - return linkmicGuestUid_; - } - /** - *
-     * DisplayControlInfo displayControlInfo = 8;
-     * 
- * - * uint64 linkmicGuestUid = 9; - * @param value The linkmicGuestUid to set. - * @return This builder for chaining. - */ - public Builder setLinkmicGuestUid(long value) { - - linkmicGuestUid_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-     * DisplayControlInfo displayControlInfo = 8;
-     * 
- * - * uint64 linkmicGuestUid = 9; - * @return This builder for chaining. - */ - public Builder clearLinkmicGuestUid() { - bitField0_ = (bitField0_ & ~0x00000080); - linkmicGuestUid_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object scene_ = ""; - /** - *
-     * PicoDisplayInfo picoDisplayInfo = 11;
-     * = 12;
-     * 
- * - * string scene = 10; - * @return The scene. - */ - public java.lang.String getScene() { - java.lang.Object ref = scene_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - scene_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-     * PicoDisplayInfo picoDisplayInfo = 11;
-     * = 12;
-     * 
- * - * string scene = 10; - * @return The bytes for scene. - */ - public com.google.protobuf.ByteString - getSceneBytes() { - java.lang.Object ref = scene_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - scene_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-     * PicoDisplayInfo picoDisplayInfo = 11;
-     * = 12;
-     * 
- * - * string scene = 10; - * @param value The scene to set. - * @return This builder for chaining. - */ - public Builder setScene( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - scene_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - *
-     * PicoDisplayInfo picoDisplayInfo = 11;
-     * = 12;
-     * 
- * - * string scene = 10; - * @return This builder for chaining. - */ - public Builder clearScene() { - scene_ = getDefaultInstance().getScene(); - bitField0_ = (bitField0_ & ~0x00000100); - onChanged(); - return this; - } - /** - *
-     * PicoDisplayInfo picoDisplayInfo = 11;
-     * = 12;
-     * 
- * - * string scene = 10; - * @param value The bytes for scene to set. - * @return This builder for chaining. - */ - public Builder setSceneBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - scene_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_webcast_like_message_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java deleted file mode 100644 index b5b088a5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_like_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_webcast_like_message_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - boolean hasCommon(); - /** - * .Common common = 1; - * @return The common. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); - /** - * .Common common = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); - - /** - * uint64 count = 2; - * @return The count. - */ - long getCount(); - - /** - * uint64 total = 3; - * @return The total. - */ - long getTotal(); - - /** - * uint64 color = 4; - * @return The color. - */ - long getColor(); - - /** - * .User user = 5; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 5; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 5; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - * string icon = 6; - * @return The icon. - */ - java.lang.String getIcon(); - /** - * string icon = 6; - * @return The bytes for icon. - */ - com.google.protobuf.ByteString - getIconBytes(); - - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return Whether the doubleLikeDetail field is set. - */ - boolean hasDoubleLikeDetail(); - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - * @return The doubleLikeDetail. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail(); - /** - * .DoubleLikeDetail doubleLikeDetail = 7; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder(); - - /** - *
-   * DisplayControlInfo displayControlInfo = 8;
-   * 
- * - * uint64 linkmicGuestUid = 9; - * @return The linkmicGuestUid. - */ - long getLinkmicGuestUid(); - - /** - *
-   * PicoDisplayInfo picoDisplayInfo = 11;
-   * = 12;
-   * 
- * - * string scene = 10; - * @return The scene. - */ - java.lang.String getScene(); - /** - *
-   * PicoDisplayInfo picoDisplayInfo = 11;
-   * = 12;
-   * 
- * - * string scene = 10; - * @return The bytes for scene. - */ - com.google.protobuf.ByteString - getSceneBytes(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java deleted file mode 100644 index 153557b6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_like_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class douyin_webcast_like_message_msgProto { - private douyin_webcast_like_message_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n%douyin_webcast_like_message_msg.proto\022" + - "2tech.ordinaryroad.live.chat.client.douy" + - "in.protobuf\032\014Common.proto\032\nUser.proto\032\026D" + - "oubleLikeDetail.proto\"\337\001\n\037douyin_webcast" + - "_like_message_msg\022\027\n\006common\030\001 \001(\0132\007.Comm" + - "on\022\r\n\005count\030\002 \001(\004\022\r\n\005total\030\003 \001(\004\022\r\n\005colo" + - "r\030\004 \001(\004\022\023\n\004user\030\005 \001(\0132\005.User\022\014\n\004icon\030\006 \001" + - "(\t\022+\n\020doubleLikeDetail\030\007 \001(\0132\021.DoubleLik" + - "eDetail\022\027\n\017linkmicGuestUid\030\t \001(\004\022\r\n\005scen" + - "e\030\n \001(\tBb\n2tech.ordinaryroad.live.chat.c" + - "lient.douyin.protobufB$douyin_webcast_li" + - "ke_message_msgProtoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor, - new java.lang.String[] { "Common", "Count", "Total", "Color", "User", "Icon", "DoubleLikeDetail", "LinkmicGuestUid", "Scene", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java deleted file mode 100644 index 63c75d62..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java +++ /dev/null @@ -1,2828 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_member_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg} - */ -public final class douyin_webcast_member_message_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) - douyin_webcast_member_message_msgOrBuilder { - private static final long serialVersionUID = 0L; - // Use douyin_webcast_member_message_msg.newBuilder() to construct. - private douyin_webcast_member_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_webcast_member_message_msg() { - actionDescription_ = ""; - popStr_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_webcast_member_message_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 22: - return internalGetBuriedPointMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.Builder.class); - } - - public static final int COMMON_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - @java.lang.Override - public boolean hasCommon() { - return common_ != null; - } - /** - * .Common common = 1; - * @return The common. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - /** - * .Common common = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int MEMBERCOUNT_FIELD_NUMBER = 3; - private long memberCount_ = 0L; - /** - * uint64 memberCount = 3; - * @return The memberCount. - */ - @java.lang.Override - public long getMemberCount() { - return memberCount_; - } - - public static final int OPERATOR_FIELD_NUMBER = 4; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User operator_; - /** - * .User operator = 4; - * @return Whether the operator field is set. - */ - @java.lang.Override - public boolean hasOperator() { - return operator_ != null; - } - /** - * .User operator = 4; - * @return The operator. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator() { - return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; - } - /** - * .User operator = 4; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder() { - return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; - } - - public static final int ISSETTOADMIN_FIELD_NUMBER = 5; - private boolean isSetToAdmin_ = false; - /** - * bool isSetToAdmin = 5; - * @return The isSetToAdmin. - */ - @java.lang.Override - public boolean getIsSetToAdmin() { - return isSetToAdmin_; - } - - public static final int ISTOPUSER_FIELD_NUMBER = 6; - private boolean isTopUser_ = false; - /** - * bool isTopUser = 6; - * @return The isTopUser. - */ - @java.lang.Override - public boolean getIsTopUser() { - return isTopUser_; - } - - public static final int RANKSCORE_FIELD_NUMBER = 7; - private long rankScore_ = 0L; - /** - * int64 rankScore = 7; - * @return The rankScore. - */ - @java.lang.Override - public long getRankScore() { - return rankScore_; - } - - public static final int TOPUSERNO_FIELD_NUMBER = 8; - private long topUserNo_ = 0L; - /** - * int64 topUserNo = 8; - * @return The topUserNo. - */ - @java.lang.Override - public long getTopUserNo() { - return topUserNo_; - } - - public static final int ENTERTYPE_FIELD_NUMBER = 9; - private long enterType_ = 0L; - /** - * int64 enterType = 9; - * @return The enterType. - */ - @java.lang.Override - public long getEnterType() { - return enterType_; - } - - public static final int ACTION_FIELD_NUMBER = 10; - private long action_ = 0L; - /** - * int64 action = 10; - * @return The action. - */ - @java.lang.Override - public long getAction() { - return action_; - } - - public static final int ACTIONDESCRIPTION_FIELD_NUMBER = 11; - @SuppressWarnings("serial") - private volatile java.lang.Object actionDescription_ = ""; - /** - * string actionDescription = 11; - * @return The actionDescription. - */ - @java.lang.Override - public java.lang.String getActionDescription() { - java.lang.Object ref = actionDescription_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - actionDescription_ = s; - return s; - } - } - /** - * string actionDescription = 11; - * @return The bytes for actionDescription. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getActionDescriptionBytes() { - java.lang.Object ref = actionDescription_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - actionDescription_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USERID_FIELD_NUMBER = 12; - private long userId_ = 0L; - /** - * int64 userId = 12; - * @return The userId. - */ - @java.lang.Override - public long getUserId() { - return userId_; - } - - public static final int POPSTR_FIELD_NUMBER = 14; - @SuppressWarnings("serial") - private volatile java.lang.Object popStr_ = ""; - /** - *
-   * EffectConfig effectConfig = 13;
-   * 
- * - * string popStr = 14; - * @return The popStr. - */ - @java.lang.Override - public java.lang.String getPopStr() { - java.lang.Object ref = popStr_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - popStr_ = s; - return s; - } - } - /** - *
-   * EffectConfig effectConfig = 13;
-   * 
- * - * string popStr = 14; - * @return The bytes for popStr. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPopStrBytes() { - java.lang.Object ref = popStr_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - popStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BACKGROUNDIMAGE_FIELD_NUMBER = 16; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - * @return Whether the backgroundImage field is set. - */ - @java.lang.Override - public boolean hasBackgroundImage() { - return backgroundImage_ != null; - } - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - * @return The backgroundImage. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - - public static final int BACKGROUNDIMAGEV2_FIELD_NUMBER = 17; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; - /** - * .Image backgroundImageV2 = 17; - * @return Whether the backgroundImageV2 field is set. - */ - @java.lang.Override - public boolean hasBackgroundImageV2() { - return backgroundImageV2_ != null; - } - /** - * .Image backgroundImageV2 = 17; - * @return The backgroundImageV2. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - /** - * .Image backgroundImageV2 = 17; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - - public static final int ANCHORDISPLAYTEXT_FIELD_NUMBER = 18; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text anchorDisplayText_; - /** - * .Text anchorDisplayText = 18; - * @return Whether the anchorDisplayText field is set. - */ - @java.lang.Override - public boolean hasAnchorDisplayText() { - return anchorDisplayText_ != null; - } - /** - * .Text anchorDisplayText = 18; - * @return The anchorDisplayText. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText() { - return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; - } - /** - * .Text anchorDisplayText = 18; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder() { - return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; - } - - public static final int USERENTERTIPTYPE_FIELD_NUMBER = 20; - private long userEnterTipType_ = 0L; - /** - *
-   * PublicAreaCommon publicAreaCommon = 19;
-   * 
- * - * int64 userEnterTipType = 20; - * @return The userEnterTipType. - */ - @java.lang.Override - public long getUserEnterTipType() { - return userEnterTipType_; - } - - public static final int ANCHORENTERTIPTYPE_FIELD_NUMBER = 21; - private long anchorEnterTipType_ = 0L; - /** - * int64 anchorEnterTipType = 21; - * @return The anchorEnterTipType. - */ - @java.lang.Override - public long getAnchorEnterTipType() { - return anchorEnterTipType_; - } - - public static final int BURIEDPOINTMAP_FIELD_NUMBER = 22; - private static final class BuriedPointMapDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.String, java.lang.String> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.STRING, - "", - com.google.protobuf.WireFormat.FieldType.STRING, - ""); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> buriedPointMap_; - private com.google.protobuf.MapField - internalGetBuriedPointMap() { - if (buriedPointMap_ == null) { - return com.google.protobuf.MapField.emptyMapField( - BuriedPointMapDefaultEntryHolder.defaultEntry); - } - return buriedPointMap_; - } - public int getBuriedPointMapCount() { - return internalGetBuriedPointMap().getMap().size(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public boolean containsBuriedPointMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetBuriedPointMap().getMap().containsKey(key); - } - /** - * Use {@link #getBuriedPointMapMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getBuriedPointMap() { - return getBuriedPointMapMap(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public java.util.Map getBuriedPointMapMap() { - return internalGetBuriedPointMap().getMap(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getBuriedPointMapOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetBuriedPointMap().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public java.lang.String getBuriedPointMapOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetBuriedPointMap().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (common_ != null) { - output.writeMessage(1, getCommon()); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (memberCount_ != 0L) { - output.writeUInt64(3, memberCount_); - } - if (operator_ != null) { - output.writeMessage(4, getOperator()); - } - if (isSetToAdmin_ != false) { - output.writeBool(5, isSetToAdmin_); - } - if (isTopUser_ != false) { - output.writeBool(6, isTopUser_); - } - if (rankScore_ != 0L) { - output.writeInt64(7, rankScore_); - } - if (topUserNo_ != 0L) { - output.writeInt64(8, topUserNo_); - } - if (enterType_ != 0L) { - output.writeInt64(9, enterType_); - } - if (action_ != 0L) { - output.writeInt64(10, action_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionDescription_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 11, actionDescription_); - } - if (userId_ != 0L) { - output.writeInt64(12, userId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(popStr_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 14, popStr_); - } - if (backgroundImage_ != null) { - output.writeMessage(16, getBackgroundImage()); - } - if (backgroundImageV2_ != null) { - output.writeMessage(17, getBackgroundImageV2()); - } - if (anchorDisplayText_ != null) { - output.writeMessage(18, getAnchorDisplayText()); - } - if (userEnterTipType_ != 0L) { - output.writeInt64(20, userEnterTipType_); - } - if (anchorEnterTipType_ != 0L) { - output.writeInt64(21, anchorEnterTipType_); - } - com.google.protobuf.GeneratedMessageV3 - .serializeStringMapTo( - output, - internalGetBuriedPointMap(), - BuriedPointMapDefaultEntryHolder.defaultEntry, - 22); - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (common_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getCommon()); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (memberCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, memberCount_); - } - if (operator_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getOperator()); - } - if (isSetToAdmin_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(5, isSetToAdmin_); - } - if (isTopUser_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, isTopUser_); - } - if (rankScore_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(7, rankScore_); - } - if (topUserNo_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(8, topUserNo_); - } - if (enterType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(9, enterType_); - } - if (action_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(10, action_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionDescription_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, actionDescription_); - } - if (userId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(12, userId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(popStr_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, popStr_); - } - if (backgroundImage_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(16, getBackgroundImage()); - } - if (backgroundImageV2_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(17, getBackgroundImageV2()); - } - if (anchorDisplayText_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(18, getAnchorDisplayText()); - } - if (userEnterTipType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(20, userEnterTipType_); - } - if (anchorEnterTipType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(21, anchorEnterTipType_); - } - for (java.util.Map.Entry entry - : internalGetBuriedPointMap().getMap().entrySet()) { - com.google.protobuf.MapEntry - buriedPointMap__ = BuriedPointMapDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(22, buriedPointMap__); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) obj; - - if (hasCommon() != other.hasCommon()) return false; - if (hasCommon()) { - if (!getCommon() - .equals(other.getCommon())) return false; - } - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getMemberCount() - != other.getMemberCount()) return false; - if (hasOperator() != other.hasOperator()) return false; - if (hasOperator()) { - if (!getOperator() - .equals(other.getOperator())) return false; - } - if (getIsSetToAdmin() - != other.getIsSetToAdmin()) return false; - if (getIsTopUser() - != other.getIsTopUser()) return false; - if (getRankScore() - != other.getRankScore()) return false; - if (getTopUserNo() - != other.getTopUserNo()) return false; - if (getEnterType() - != other.getEnterType()) return false; - if (getAction() - != other.getAction()) return false; - if (!getActionDescription() - .equals(other.getActionDescription())) return false; - if (getUserId() - != other.getUserId()) return false; - if (!getPopStr() - .equals(other.getPopStr())) return false; - if (hasBackgroundImage() != other.hasBackgroundImage()) return false; - if (hasBackgroundImage()) { - if (!getBackgroundImage() - .equals(other.getBackgroundImage())) return false; - } - if (hasBackgroundImageV2() != other.hasBackgroundImageV2()) return false; - if (hasBackgroundImageV2()) { - if (!getBackgroundImageV2() - .equals(other.getBackgroundImageV2())) return false; - } - if (hasAnchorDisplayText() != other.hasAnchorDisplayText()) return false; - if (hasAnchorDisplayText()) { - if (!getAnchorDisplayText() - .equals(other.getAnchorDisplayText())) return false; - } - if (getUserEnterTipType() - != other.getUserEnterTipType()) return false; - if (getAnchorEnterTipType() - != other.getAnchorEnterTipType()) return false; - if (!internalGetBuriedPointMap().equals( - other.internalGetBuriedPointMap())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasCommon()) { - hash = (37 * hash) + COMMON_FIELD_NUMBER; - hash = (53 * hash) + getCommon().hashCode(); - } - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + MEMBERCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMemberCount()); - if (hasOperator()) { - hash = (37 * hash) + OPERATOR_FIELD_NUMBER; - hash = (53 * hash) + getOperator().hashCode(); - } - hash = (37 * hash) + ISSETTOADMIN_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsSetToAdmin()); - hash = (37 * hash) + ISTOPUSER_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsTopUser()); - hash = (37 * hash) + RANKSCORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRankScore()); - hash = (37 * hash) + TOPUSERNO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTopUserNo()); - hash = (37 * hash) + ENTERTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getEnterType()); - hash = (37 * hash) + ACTION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAction()); - hash = (37 * hash) + ACTIONDESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getActionDescription().hashCode(); - hash = (37 * hash) + USERID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUserId()); - hash = (37 * hash) + POPSTR_FIELD_NUMBER; - hash = (53 * hash) + getPopStr().hashCode(); - if (hasBackgroundImage()) { - hash = (37 * hash) + BACKGROUNDIMAGE_FIELD_NUMBER; - hash = (53 * hash) + getBackgroundImage().hashCode(); - } - if (hasBackgroundImageV2()) { - hash = (37 * hash) + BACKGROUNDIMAGEV2_FIELD_NUMBER; - hash = (53 * hash) + getBackgroundImageV2().hashCode(); - } - if (hasAnchorDisplayText()) { - hash = (37 * hash) + ANCHORDISPLAYTEXT_FIELD_NUMBER; - hash = (53 * hash) + getAnchorDisplayText().hashCode(); - } - hash = (37 * hash) + USERENTERTIPTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUserEnterTipType()); - hash = (37 * hash) + ANCHORENTERTIPTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAnchorEnterTipType()); - if (!internalGetBuriedPointMap().getMap().isEmpty()) { - hash = (37 * hash) + BURIEDPOINTMAP_FIELD_NUMBER; - hash = (53 * hash) + internalGetBuriedPointMap().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 22: - return internalGetBuriedPointMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 22: - return internalGetMutableBuriedPointMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - memberCount_ = 0L; - operator_ = null; - if (operatorBuilder_ != null) { - operatorBuilder_.dispose(); - operatorBuilder_ = null; - } - isSetToAdmin_ = false; - isTopUser_ = false; - rankScore_ = 0L; - topUserNo_ = 0L; - enterType_ = 0L; - action_ = 0L; - actionDescription_ = ""; - userId_ = 0L; - popStr_ = ""; - backgroundImage_ = null; - if (backgroundImageBuilder_ != null) { - backgroundImageBuilder_.dispose(); - backgroundImageBuilder_ = null; - } - backgroundImageV2_ = null; - if (backgroundImageV2Builder_ != null) { - backgroundImageV2Builder_.dispose(); - backgroundImageV2Builder_ = null; - } - anchorDisplayText_ = null; - if (anchorDisplayTextBuilder_ != null) { - anchorDisplayTextBuilder_.dispose(); - anchorDisplayTextBuilder_ = null; - } - userEnterTipType_ = 0L; - anchorEnterTipType_ = 0L; - internalGetMutableBuriedPointMap().clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.common_ = commonBuilder_ == null - ? common_ - : commonBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.memberCount_ = memberCount_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.operator_ = operatorBuilder_ == null - ? operator_ - : operatorBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.isSetToAdmin_ = isSetToAdmin_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.isTopUser_ = isTopUser_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.rankScore_ = rankScore_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.topUserNo_ = topUserNo_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.enterType_ = enterType_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.action_ = action_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.actionDescription_ = actionDescription_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.userId_ = userId_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.popStr_ = popStr_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.backgroundImage_ = backgroundImageBuilder_ == null - ? backgroundImage_ - : backgroundImageBuilder_.build(); - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.backgroundImageV2_ = backgroundImageV2Builder_ == null - ? backgroundImageV2_ - : backgroundImageV2Builder_.build(); - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.anchorDisplayText_ = anchorDisplayTextBuilder_ == null - ? anchorDisplayText_ - : anchorDisplayTextBuilder_.build(); - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.userEnterTipType_ = userEnterTipType_; - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.anchorEnterTipType_ = anchorEnterTipType_; - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.buriedPointMap_ = internalGetBuriedPointMap(); - result.buriedPointMap_.makeImmutable(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.getDefaultInstance()) return this; - if (other.hasCommon()) { - mergeCommon(other.getCommon()); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getMemberCount() != 0L) { - setMemberCount(other.getMemberCount()); - } - if (other.hasOperator()) { - mergeOperator(other.getOperator()); - } - if (other.getIsSetToAdmin() != false) { - setIsSetToAdmin(other.getIsSetToAdmin()); - } - if (other.getIsTopUser() != false) { - setIsTopUser(other.getIsTopUser()); - } - if (other.getRankScore() != 0L) { - setRankScore(other.getRankScore()); - } - if (other.getTopUserNo() != 0L) { - setTopUserNo(other.getTopUserNo()); - } - if (other.getEnterType() != 0L) { - setEnterType(other.getEnterType()); - } - if (other.getAction() != 0L) { - setAction(other.getAction()); - } - if (!other.getActionDescription().isEmpty()) { - actionDescription_ = other.actionDescription_; - bitField0_ |= 0x00000400; - onChanged(); - } - if (other.getUserId() != 0L) { - setUserId(other.getUserId()); - } - if (!other.getPopStr().isEmpty()) { - popStr_ = other.popStr_; - bitField0_ |= 0x00001000; - onChanged(); - } - if (other.hasBackgroundImage()) { - mergeBackgroundImage(other.getBackgroundImage()); - } - if (other.hasBackgroundImageV2()) { - mergeBackgroundImageV2(other.getBackgroundImageV2()); - } - if (other.hasAnchorDisplayText()) { - mergeAnchorDisplayText(other.getAnchorDisplayText()); - } - if (other.getUserEnterTipType() != 0L) { - setUserEnterTipType(other.getUserEnterTipType()); - } - if (other.getAnchorEnterTipType() != 0L) { - setAnchorEnterTipType(other.getAnchorEnterTipType()); - } - internalGetMutableBuriedPointMap().mergeFrom( - other.internalGetBuriedPointMap()); - bitField0_ |= 0x00040000; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getCommonFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - memberCount_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - input.readMessage( - getOperatorFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 40: { - isSetToAdmin_ = input.readBool(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - isTopUser_ = input.readBool(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - rankScore_ = input.readInt64(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 64: { - topUserNo_ = input.readInt64(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - enterType_ = input.readInt64(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: { - action_ = input.readInt64(); - bitField0_ |= 0x00000200; - break; - } // case 80 - case 90: { - actionDescription_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000400; - break; - } // case 90 - case 96: { - userId_ = input.readInt64(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 114: { - popStr_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00001000; - break; - } // case 114 - case 130: { - input.readMessage( - getBackgroundImageFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00002000; - break; - } // case 130 - case 138: { - input.readMessage( - getBackgroundImageV2FieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00004000; - break; - } // case 138 - case 146: { - input.readMessage( - getAnchorDisplayTextFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00008000; - break; - } // case 146 - case 160: { - userEnterTipType_ = input.readInt64(); - bitField0_ |= 0x00010000; - break; - } // case 160 - case 168: { - anchorEnterTipType_ = input.readInt64(); - bitField0_ |= 0x00020000; - break; - } // case 168 - case 178: { - com.google.protobuf.MapEntry - buriedPointMap__ = input.readMessage( - BuriedPointMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutableBuriedPointMap().getMutableMap().put( - buriedPointMap__.getKey(), buriedPointMap__.getValue()); - bitField0_ |= 0x00040000; - break; - } // case 178 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - public boolean hasCommon() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Common common = 1; - * @return The common. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { - if (commonBuilder_ == null) { - return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } else { - return commonBuilder_.getMessage(); - } - } - /** - * .Common common = 1; - */ - public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - common_ = value; - } else { - commonBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder setCommon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { - if (commonBuilder_ == null) { - common_ = builderForValue.build(); - } else { - commonBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { - if (commonBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - common_ != null && - common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { - getCommonBuilder().mergeFrom(value); - } else { - common_ = value; - } - } else { - commonBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public Builder clearCommon() { - bitField0_ = (bitField0_ & ~0x00000001); - common_ = null; - if (commonBuilder_ != null) { - commonBuilder_.dispose(); - commonBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getCommonFieldBuilder().getBuilder(); - } - /** - * .Common common = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { - if (commonBuilder_ != null) { - return commonBuilder_.getMessageOrBuilder(); - } else { - return common_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; - } - } - /** - * .Common common = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> - getCommonFieldBuilder() { - if (commonBuilder_ == null) { - commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( - getCommon(), - getParentForChildren(), - isClean()); - common_ = null; - } - return commonBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .User user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long memberCount_ ; - /** - * uint64 memberCount = 3; - * @return The memberCount. - */ - @java.lang.Override - public long getMemberCount() { - return memberCount_; - } - /** - * uint64 memberCount = 3; - * @param value The memberCount to set. - * @return This builder for chaining. - */ - public Builder setMemberCount(long value) { - - memberCount_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 memberCount = 3; - * @return This builder for chaining. - */ - public Builder clearMemberCount() { - bitField0_ = (bitField0_ & ~0x00000004); - memberCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User operator_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> operatorBuilder_; - /** - * .User operator = 4; - * @return Whether the operator field is set. - */ - public boolean hasOperator() { - return ((bitField0_ & 0x00000008) != 0); - } - /** - * .User operator = 4; - * @return The operator. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator() { - if (operatorBuilder_ == null) { - return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; - } else { - return operatorBuilder_.getMessage(); - } - } - /** - * .User operator = 4; - */ - public Builder setOperator(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (operatorBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - operator_ = value; - } else { - operatorBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User operator = 4; - */ - public Builder setOperator( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (operatorBuilder_ == null) { - operator_ = builderForValue.build(); - } else { - operatorBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User operator = 4; - */ - public Builder mergeOperator(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (operatorBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && - operator_ != null && - operator_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getOperatorBuilder().mergeFrom(value); - } else { - operator_ = value; - } - } else { - operatorBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User operator = 4; - */ - public Builder clearOperator() { - bitField0_ = (bitField0_ & ~0x00000008); - operator_ = null; - if (operatorBuilder_ != null) { - operatorBuilder_.dispose(); - operatorBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User operator = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getOperatorBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getOperatorFieldBuilder().getBuilder(); - } - /** - * .User operator = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder() { - if (operatorBuilder_ != null) { - return operatorBuilder_.getMessageOrBuilder(); - } else { - return operator_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; - } - } - /** - * .User operator = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getOperatorFieldBuilder() { - if (operatorBuilder_ == null) { - operatorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getOperator(), - getParentForChildren(), - isClean()); - operator_ = null; - } - return operatorBuilder_; - } - - private boolean isSetToAdmin_ ; - /** - * bool isSetToAdmin = 5; - * @return The isSetToAdmin. - */ - @java.lang.Override - public boolean getIsSetToAdmin() { - return isSetToAdmin_; - } - /** - * bool isSetToAdmin = 5; - * @param value The isSetToAdmin to set. - * @return This builder for chaining. - */ - public Builder setIsSetToAdmin(boolean value) { - - isSetToAdmin_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * bool isSetToAdmin = 5; - * @return This builder for chaining. - */ - public Builder clearIsSetToAdmin() { - bitField0_ = (bitField0_ & ~0x00000010); - isSetToAdmin_ = false; - onChanged(); - return this; - } - - private boolean isTopUser_ ; - /** - * bool isTopUser = 6; - * @return The isTopUser. - */ - @java.lang.Override - public boolean getIsTopUser() { - return isTopUser_; - } - /** - * bool isTopUser = 6; - * @param value The isTopUser to set. - * @return This builder for chaining. - */ - public Builder setIsTopUser(boolean value) { - - isTopUser_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * bool isTopUser = 6; - * @return This builder for chaining. - */ - public Builder clearIsTopUser() { - bitField0_ = (bitField0_ & ~0x00000020); - isTopUser_ = false; - onChanged(); - return this; - } - - private long rankScore_ ; - /** - * int64 rankScore = 7; - * @return The rankScore. - */ - @java.lang.Override - public long getRankScore() { - return rankScore_; - } - /** - * int64 rankScore = 7; - * @param value The rankScore to set. - * @return This builder for chaining. - */ - public Builder setRankScore(long value) { - - rankScore_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * int64 rankScore = 7; - * @return This builder for chaining. - */ - public Builder clearRankScore() { - bitField0_ = (bitField0_ & ~0x00000040); - rankScore_ = 0L; - onChanged(); - return this; - } - - private long topUserNo_ ; - /** - * int64 topUserNo = 8; - * @return The topUserNo. - */ - @java.lang.Override - public long getTopUserNo() { - return topUserNo_; - } - /** - * int64 topUserNo = 8; - * @param value The topUserNo to set. - * @return This builder for chaining. - */ - public Builder setTopUserNo(long value) { - - topUserNo_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * int64 topUserNo = 8; - * @return This builder for chaining. - */ - public Builder clearTopUserNo() { - bitField0_ = (bitField0_ & ~0x00000080); - topUserNo_ = 0L; - onChanged(); - return this; - } - - private long enterType_ ; - /** - * int64 enterType = 9; - * @return The enterType. - */ - @java.lang.Override - public long getEnterType() { - return enterType_; - } - /** - * int64 enterType = 9; - * @param value The enterType to set. - * @return This builder for chaining. - */ - public Builder setEnterType(long value) { - - enterType_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * int64 enterType = 9; - * @return This builder for chaining. - */ - public Builder clearEnterType() { - bitField0_ = (bitField0_ & ~0x00000100); - enterType_ = 0L; - onChanged(); - return this; - } - - private long action_ ; - /** - * int64 action = 10; - * @return The action. - */ - @java.lang.Override - public long getAction() { - return action_; - } - /** - * int64 action = 10; - * @param value The action to set. - * @return This builder for chaining. - */ - public Builder setAction(long value) { - - action_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * int64 action = 10; - * @return This builder for chaining. - */ - public Builder clearAction() { - bitField0_ = (bitField0_ & ~0x00000200); - action_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object actionDescription_ = ""; - /** - * string actionDescription = 11; - * @return The actionDescription. - */ - public java.lang.String getActionDescription() { - java.lang.Object ref = actionDescription_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - actionDescription_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string actionDescription = 11; - * @return The bytes for actionDescription. - */ - public com.google.protobuf.ByteString - getActionDescriptionBytes() { - java.lang.Object ref = actionDescription_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - actionDescription_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string actionDescription = 11; - * @param value The actionDescription to set. - * @return This builder for chaining. - */ - public Builder setActionDescription( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - actionDescription_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * string actionDescription = 11; - * @return This builder for chaining. - */ - public Builder clearActionDescription() { - actionDescription_ = getDefaultInstance().getActionDescription(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - return this; - } - /** - * string actionDescription = 11; - * @param value The bytes for actionDescription to set. - * @return This builder for chaining. - */ - public Builder setActionDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - actionDescription_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - - private long userId_ ; - /** - * int64 userId = 12; - * @return The userId. - */ - @java.lang.Override - public long getUserId() { - return userId_; - } - /** - * int64 userId = 12; - * @param value The userId to set. - * @return This builder for chaining. - */ - public Builder setUserId(long value) { - - userId_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * int64 userId = 12; - * @return This builder for chaining. - */ - public Builder clearUserId() { - bitField0_ = (bitField0_ & ~0x00000800); - userId_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object popStr_ = ""; - /** - *
-     * EffectConfig effectConfig = 13;
-     * 
- * - * string popStr = 14; - * @return The popStr. - */ - public java.lang.String getPopStr() { - java.lang.Object ref = popStr_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - popStr_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-     * EffectConfig effectConfig = 13;
-     * 
- * - * string popStr = 14; - * @return The bytes for popStr. - */ - public com.google.protobuf.ByteString - getPopStrBytes() { - java.lang.Object ref = popStr_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - popStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-     * EffectConfig effectConfig = 13;
-     * 
- * - * string popStr = 14; - * @param value The popStr to set. - * @return This builder for chaining. - */ - public Builder setPopStr( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - popStr_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - *
-     * EffectConfig effectConfig = 13;
-     * 
- * - * string popStr = 14; - * @return This builder for chaining. - */ - public Builder clearPopStr() { - popStr_ = getDefaultInstance().getPopStr(); - bitField0_ = (bitField0_ & ~0x00001000); - onChanged(); - return this; - } - /** - *
-     * EffectConfig effectConfig = 13;
-     * 
- * - * string popStr = 14; - * @param value The bytes for popStr to set. - * @return This builder for chaining. - */ - public Builder setPopStrBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - popStr_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageBuilder_; - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - * @return Whether the backgroundImage field is set. - */ - public boolean hasBackgroundImage() { - return ((bitField0_ & 0x00002000) != 0); - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - * @return The backgroundImage. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { - if (backgroundImageBuilder_ == null) { - return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } else { - return backgroundImageBuilder_.getMessage(); - } - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public Builder setBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - backgroundImage_ = value; - } else { - backgroundImageBuilder_.setMessage(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public Builder setBackgroundImage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundImageBuilder_ == null) { - backgroundImage_ = builderForValue.build(); - } else { - backgroundImageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public Builder mergeBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0) && - backgroundImage_ != null && - backgroundImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundImageBuilder().mergeFrom(value); - } else { - backgroundImage_ = value; - } - } else { - backgroundImageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public Builder clearBackgroundImage() { - bitField0_ = (bitField0_ & ~0x00002000); - backgroundImage_ = null; - if (backgroundImageBuilder_ != null) { - backgroundImageBuilder_.dispose(); - backgroundImageBuilder_ = null; - } - onChanged(); - return this; - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageBuilder() { - bitField0_ |= 0x00002000; - onChanged(); - return getBackgroundImageFieldBuilder().getBuilder(); - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { - if (backgroundImageBuilder_ != null) { - return backgroundImageBuilder_.getMessageOrBuilder(); - } else { - return backgroundImage_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; - } - } - /** - *
-     * EffectConfig enterEffectConfig = 15;
-     * 
- * - * .Image backgroundImage = 16; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundImageFieldBuilder() { - if (backgroundImageBuilder_ == null) { - backgroundImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackgroundImage(), - getParentForChildren(), - isClean()); - backgroundImage_ = null; - } - return backgroundImageBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageV2Builder_; - /** - * .Image backgroundImageV2 = 17; - * @return Whether the backgroundImageV2 field is set. - */ - public boolean hasBackgroundImageV2() { - return ((bitField0_ & 0x00004000) != 0); - } - /** - * .Image backgroundImageV2 = 17; - * @return The backgroundImageV2. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { - if (backgroundImageV2Builder_ == null) { - return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } else { - return backgroundImageV2Builder_.getMessage(); - } - } - /** - * .Image backgroundImageV2 = 17; - */ - public Builder setBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageV2Builder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - backgroundImageV2_ = value; - } else { - backgroundImageV2Builder_.setMessage(value); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .Image backgroundImageV2 = 17; - */ - public Builder setBackgroundImageV2( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundImageV2Builder_ == null) { - backgroundImageV2_ = builderForValue.build(); - } else { - backgroundImageV2Builder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .Image backgroundImageV2 = 17; - */ - public Builder mergeBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundImageV2Builder_ == null) { - if (((bitField0_ & 0x00004000) != 0) && - backgroundImageV2_ != null && - backgroundImageV2_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundImageV2Builder().mergeFrom(value); - } else { - backgroundImageV2_ = value; - } - } else { - backgroundImageV2Builder_.mergeFrom(value); - } - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .Image backgroundImageV2 = 17; - */ - public Builder clearBackgroundImageV2() { - bitField0_ = (bitField0_ & ~0x00004000); - backgroundImageV2_ = null; - if (backgroundImageV2Builder_ != null) { - backgroundImageV2Builder_.dispose(); - backgroundImageV2Builder_ = null; - } - onChanged(); - return this; - } - /** - * .Image backgroundImageV2 = 17; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageV2Builder() { - bitField0_ |= 0x00004000; - onChanged(); - return getBackgroundImageV2FieldBuilder().getBuilder(); - } - /** - * .Image backgroundImageV2 = 17; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { - if (backgroundImageV2Builder_ != null) { - return backgroundImageV2Builder_.getMessageOrBuilder(); - } else { - return backgroundImageV2_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; - } - } - /** - * .Image backgroundImageV2 = 17; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundImageV2FieldBuilder() { - if (backgroundImageV2Builder_ == null) { - backgroundImageV2Builder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackgroundImageV2(), - getParentForChildren(), - isClean()); - backgroundImageV2_ = null; - } - return backgroundImageV2Builder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text anchorDisplayText_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> anchorDisplayTextBuilder_; - /** - * .Text anchorDisplayText = 18; - * @return Whether the anchorDisplayText field is set. - */ - public boolean hasAnchorDisplayText() { - return ((bitField0_ & 0x00008000) != 0); - } - /** - * .Text anchorDisplayText = 18; - * @return The anchorDisplayText. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText() { - if (anchorDisplayTextBuilder_ == null) { - return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; - } else { - return anchorDisplayTextBuilder_.getMessage(); - } - } - /** - * .Text anchorDisplayText = 18; - */ - public Builder setAnchorDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (anchorDisplayTextBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - anchorDisplayText_ = value; - } else { - anchorDisplayTextBuilder_.setMessage(value); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Text anchorDisplayText = 18; - */ - public Builder setAnchorDisplayText( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { - if (anchorDisplayTextBuilder_ == null) { - anchorDisplayText_ = builderForValue.build(); - } else { - anchorDisplayTextBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Text anchorDisplayText = 18; - */ - public Builder mergeAnchorDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (anchorDisplayTextBuilder_ == null) { - if (((bitField0_ & 0x00008000) != 0) && - anchorDisplayText_ != null && - anchorDisplayText_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { - getAnchorDisplayTextBuilder().mergeFrom(value); - } else { - anchorDisplayText_ = value; - } - } else { - anchorDisplayTextBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Text anchorDisplayText = 18; - */ - public Builder clearAnchorDisplayText() { - bitField0_ = (bitField0_ & ~0x00008000); - anchorDisplayText_ = null; - if (anchorDisplayTextBuilder_ != null) { - anchorDisplayTextBuilder_.dispose(); - anchorDisplayTextBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Text anchorDisplayText = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getAnchorDisplayTextBuilder() { - bitField0_ |= 0x00008000; - onChanged(); - return getAnchorDisplayTextFieldBuilder().getBuilder(); - } - /** - * .Text anchorDisplayText = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder() { - if (anchorDisplayTextBuilder_ != null) { - return anchorDisplayTextBuilder_.getMessageOrBuilder(); - } else { - return anchorDisplayText_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; - } - } - /** - * .Text anchorDisplayText = 18; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> - getAnchorDisplayTextFieldBuilder() { - if (anchorDisplayTextBuilder_ == null) { - anchorDisplayTextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( - getAnchorDisplayText(), - getParentForChildren(), - isClean()); - anchorDisplayText_ = null; - } - return anchorDisplayTextBuilder_; - } - - private long userEnterTipType_ ; - /** - *
-     * PublicAreaCommon publicAreaCommon = 19;
-     * 
- * - * int64 userEnterTipType = 20; - * @return The userEnterTipType. - */ - @java.lang.Override - public long getUserEnterTipType() { - return userEnterTipType_; - } - /** - *
-     * PublicAreaCommon publicAreaCommon = 19;
-     * 
- * - * int64 userEnterTipType = 20; - * @param value The userEnterTipType to set. - * @return This builder for chaining. - */ - public Builder setUserEnterTipType(long value) { - - userEnterTipType_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - *
-     * PublicAreaCommon publicAreaCommon = 19;
-     * 
- * - * int64 userEnterTipType = 20; - * @return This builder for chaining. - */ - public Builder clearUserEnterTipType() { - bitField0_ = (bitField0_ & ~0x00010000); - userEnterTipType_ = 0L; - onChanged(); - return this; - } - - private long anchorEnterTipType_ ; - /** - * int64 anchorEnterTipType = 21; - * @return The anchorEnterTipType. - */ - @java.lang.Override - public long getAnchorEnterTipType() { - return anchorEnterTipType_; - } - /** - * int64 anchorEnterTipType = 21; - * @param value The anchorEnterTipType to set. - * @return This builder for chaining. - */ - public Builder setAnchorEnterTipType(long value) { - - anchorEnterTipType_ = value; - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * int64 anchorEnterTipType = 21; - * @return This builder for chaining. - */ - public Builder clearAnchorEnterTipType() { - bitField0_ = (bitField0_ & ~0x00020000); - anchorEnterTipType_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> buriedPointMap_; - private com.google.protobuf.MapField - internalGetBuriedPointMap() { - if (buriedPointMap_ == null) { - return com.google.protobuf.MapField.emptyMapField( - BuriedPointMapDefaultEntryHolder.defaultEntry); - } - return buriedPointMap_; - } - private com.google.protobuf.MapField - internalGetMutableBuriedPointMap() { - if (buriedPointMap_ == null) { - buriedPointMap_ = com.google.protobuf.MapField.newMapField( - BuriedPointMapDefaultEntryHolder.defaultEntry); - } - if (!buriedPointMap_.isMutable()) { - buriedPointMap_ = buriedPointMap_.copy(); - } - bitField0_ |= 0x00040000; - onChanged(); - return buriedPointMap_; - } - public int getBuriedPointMapCount() { - return internalGetBuriedPointMap().getMap().size(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public boolean containsBuriedPointMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetBuriedPointMap().getMap().containsKey(key); - } - /** - * Use {@link #getBuriedPointMapMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getBuriedPointMap() { - return getBuriedPointMapMap(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public java.util.Map getBuriedPointMapMap() { - return internalGetBuriedPointMap().getMap(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getBuriedPointMapOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetBuriedPointMap().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> buriedPointMap = 22; - */ - @java.lang.Override - public java.lang.String getBuriedPointMapOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetBuriedPointMap().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearBuriedPointMap() { - bitField0_ = (bitField0_ & ~0x00040000); - internalGetMutableBuriedPointMap().getMutableMap() - .clear(); - return this; - } - /** - * map<string, string> buriedPointMap = 22; - */ - public Builder removeBuriedPointMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - internalGetMutableBuriedPointMap().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableBuriedPointMap() { - bitField0_ |= 0x00040000; - return internalGetMutableBuriedPointMap().getMutableMap(); - } - /** - * map<string, string> buriedPointMap = 22; - */ - public Builder putBuriedPointMap( - java.lang.String key, - java.lang.String value) { - if (key == null) { throw new NullPointerException("map key"); } - if (value == null) { throw new NullPointerException("map value"); } - internalGetMutableBuriedPointMap().getMutableMap() - .put(key, value); - bitField0_ |= 0x00040000; - return this; - } - /** - * map<string, string> buriedPointMap = 22; - */ - public Builder putAllBuriedPointMap( - java.util.Map values) { - internalGetMutableBuriedPointMap().getMutableMap() - .putAll(values); - bitField0_ |= 0x00040000; - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_webcast_member_message_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java deleted file mode 100644 index 52d111be..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java +++ /dev/null @@ -1,265 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_webcast_member_message_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_webcast_member_message_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * .Common common = 1; - * @return Whether the common field is set. - */ - boolean hasCommon(); - /** - * .Common common = 1; - * @return The common. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); - /** - * .Common common = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); - - /** - * .User user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - * uint64 memberCount = 3; - * @return The memberCount. - */ - long getMemberCount(); - - /** - * .User operator = 4; - * @return Whether the operator field is set. - */ - boolean hasOperator(); - /** - * .User operator = 4; - * @return The operator. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator(); - /** - * .User operator = 4; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder(); - - /** - * bool isSetToAdmin = 5; - * @return The isSetToAdmin. - */ - boolean getIsSetToAdmin(); - - /** - * bool isTopUser = 6; - * @return The isTopUser. - */ - boolean getIsTopUser(); - - /** - * int64 rankScore = 7; - * @return The rankScore. - */ - long getRankScore(); - - /** - * int64 topUserNo = 8; - * @return The topUserNo. - */ - long getTopUserNo(); - - /** - * int64 enterType = 9; - * @return The enterType. - */ - long getEnterType(); - - /** - * int64 action = 10; - * @return The action. - */ - long getAction(); - - /** - * string actionDescription = 11; - * @return The actionDescription. - */ - java.lang.String getActionDescription(); - /** - * string actionDescription = 11; - * @return The bytes for actionDescription. - */ - com.google.protobuf.ByteString - getActionDescriptionBytes(); - - /** - * int64 userId = 12; - * @return The userId. - */ - long getUserId(); - - /** - *
-   * EffectConfig effectConfig = 13;
-   * 
- * - * string popStr = 14; - * @return The popStr. - */ - java.lang.String getPopStr(); - /** - *
-   * EffectConfig effectConfig = 13;
-   * 
- * - * string popStr = 14; - * @return The bytes for popStr. - */ - com.google.protobuf.ByteString - getPopStrBytes(); - - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - * @return Whether the backgroundImage field is set. - */ - boolean hasBackgroundImage(); - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - * @return The backgroundImage. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage(); - /** - *
-   * EffectConfig enterEffectConfig = 15;
-   * 
- * - * .Image backgroundImage = 16; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder(); - - /** - * .Image backgroundImageV2 = 17; - * @return Whether the backgroundImageV2 field is set. - */ - boolean hasBackgroundImageV2(); - /** - * .Image backgroundImageV2 = 17; - * @return The backgroundImageV2. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2(); - /** - * .Image backgroundImageV2 = 17; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder(); - - /** - * .Text anchorDisplayText = 18; - * @return Whether the anchorDisplayText field is set. - */ - boolean hasAnchorDisplayText(); - /** - * .Text anchorDisplayText = 18; - * @return The anchorDisplayText. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText(); - /** - * .Text anchorDisplayText = 18; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder(); - - /** - *
-   * PublicAreaCommon publicAreaCommon = 19;
-   * 
- * - * int64 userEnterTipType = 20; - * @return The userEnterTipType. - */ - long getUserEnterTipType(); - - /** - * int64 anchorEnterTipType = 21; - * @return The anchorEnterTipType. - */ - long getAnchorEnterTipType(); - - /** - * map<string, string> buriedPointMap = 22; - */ - int getBuriedPointMapCount(); - /** - * map<string, string> buriedPointMap = 22; - */ - boolean containsBuriedPointMap( - java.lang.String key); - /** - * Use {@link #getBuriedPointMapMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getBuriedPointMap(); - /** - * map<string, string> buriedPointMap = 22; - */ - java.util.Map - getBuriedPointMapMap(); - /** - * map<string, string> buriedPointMap = 22; - */ - /* nullable */ -java.lang.String getBuriedPointMapOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue); - /** - * map<string, string> buriedPointMap = 22; - */ - java.lang.String getBuriedPointMapOrThrow( - java.lang.String key); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java deleted file mode 100644 index 8caffe8a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java +++ /dev/null @@ -1,1315 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame} - */ -public final class douyin_websocket_frame extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) - douyin_websocket_frameOrBuilder { -private static final long serialVersionUID = 0L; - // Use douyin_websocket_frame.newBuilder() to construct. - private douyin_websocket_frame(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_websocket_frame() { - payloadEncoding_ = ""; - payloadType_ = ""; - payload_ = com.google.protobuf.ByteString.EMPTY; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_websocket_frame(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 5: - return internalGetHeadersList(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.Builder.class); - } - - public static final int SEQ_ID_FIELD_NUMBER = 1; - private long seqId_ = 0L; - /** - * uint64 seq_id = 1; - * @return The seqId. - */ - @java.lang.Override - public long getSeqId() { - return seqId_; - } - - public static final int LOG_ID_FIELD_NUMBER = 2; - private long logId_ = 0L; - /** - * uint64 log_id = 2; - * @return The logId. - */ - @java.lang.Override - public long getLogId() { - return logId_; - } - - public static final int SERVICE_FIELD_NUMBER = 3; - private long service_ = 0L; - /** - * uint64 service = 3; - * @return The service. - */ - @java.lang.Override - public long getService() { - return service_; - } - - public static final int METHOD_FIELD_NUMBER = 4; - private long method_ = 0L; - /** - * uint64 method = 4; - * @return The method. - */ - @java.lang.Override - public long getMethod() { - return method_; - } - - public static final int HEADERS_LIST_FIELD_NUMBER = 5; - private static final class HeadersListDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.String, java.lang.String> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.STRING, - "", - com.google.protobuf.WireFormat.FieldType.STRING, - ""); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> headersList_; - private com.google.protobuf.MapField - internalGetHeadersList() { - if (headersList_ == null) { - return com.google.protobuf.MapField.emptyMapField( - HeadersListDefaultEntryHolder.defaultEntry); - } - return headersList_; - } - public int getHeadersListCount() { - return internalGetHeadersList().getMap().size(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public boolean containsHeadersList( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetHeadersList().getMap().containsKey(key); - } - /** - * Use {@link #getHeadersListMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getHeadersList() { - return getHeadersListMap(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public java.util.Map getHeadersListMap() { - return internalGetHeadersList().getMap(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getHeadersListOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetHeadersList().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public java.lang.String getHeadersListOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetHeadersList().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - public static final int PAYLOAD_ENCODING_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object payloadEncoding_ = ""; - /** - * string payload_encoding = 6; - * @return The payloadEncoding. - */ - @java.lang.Override - public java.lang.String getPayloadEncoding() { - java.lang.Object ref = payloadEncoding_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - payloadEncoding_ = s; - return s; - } - } - /** - * string payload_encoding = 6; - * @return The bytes for payloadEncoding. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPayloadEncodingBytes() { - java.lang.Object ref = payloadEncoding_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - payloadEncoding_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PAYLOAD_TYPE_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object payloadType_ = ""; - /** - * string payload_type = 7; - * @return The payloadType. - */ - @java.lang.Override - public java.lang.String getPayloadType() { - java.lang.Object ref = payloadType_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - payloadType_ = s; - return s; - } - } - /** - * string payload_type = 7; - * @return The bytes for payloadType. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPayloadTypeBytes() { - java.lang.Object ref = payloadType_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - payloadType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PAYLOAD_FIELD_NUMBER = 8; - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 8; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (seqId_ != 0L) { - output.writeUInt64(1, seqId_); - } - if (logId_ != 0L) { - output.writeUInt64(2, logId_); - } - if (service_ != 0L) { - output.writeUInt64(3, service_); - } - if (method_ != 0L) { - output.writeUInt64(4, method_); - } - com.google.protobuf.GeneratedMessageV3 - .serializeStringMapTo( - output, - internalGetHeadersList(), - HeadersListDefaultEntryHolder.defaultEntry, - 5); - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadEncoding_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, payloadEncoding_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadType_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, payloadType_); - } - if (!payload_.isEmpty()) { - output.writeBytes(8, payload_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (seqId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, seqId_); - } - if (logId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, logId_); - } - if (service_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, service_); - } - if (method_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, method_); - } - for (java.util.Map.Entry entry - : internalGetHeadersList().getMap().entrySet()) { - com.google.protobuf.MapEntry - headersList__ = HeadersListDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, headersList__); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadEncoding_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, payloadEncoding_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadType_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, payloadType_); - } - if (!payload_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(8, payload_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) obj; - - if (getSeqId() - != other.getSeqId()) return false; - if (getLogId() - != other.getLogId()) return false; - if (getService() - != other.getService()) return false; - if (getMethod() - != other.getMethod()) return false; - if (!internalGetHeadersList().equals( - other.internalGetHeadersList())) return false; - if (!getPayloadEncoding() - .equals(other.getPayloadEncoding())) return false; - if (!getPayloadType() - .equals(other.getPayloadType())) return false; - if (!getPayload() - .equals(other.getPayload())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SEQ_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSeqId()); - hash = (37 * hash) + LOG_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLogId()); - hash = (37 * hash) + SERVICE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getService()); - hash = (37 * hash) + METHOD_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMethod()); - if (!internalGetHeadersList().getMap().isEmpty()) { - hash = (37 * hash) + HEADERS_LIST_FIELD_NUMBER; - hash = (53 * hash) + internalGetHeadersList().hashCode(); - } - hash = (37 * hash) + PAYLOAD_ENCODING_FIELD_NUMBER; - hash = (53 * hash) + getPayloadEncoding().hashCode(); - hash = (37 * hash) + PAYLOAD_TYPE_FIELD_NUMBER; - hash = (53 * hash) + getPayloadType().hashCode(); - hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; - hash = (53 * hash) + getPayload().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frameOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 5: - return internalGetHeadersList(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 5: - return internalGetMutableHeadersList(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - seqId_ = 0L; - logId_ = 0L; - service_ = 0L; - method_ = 0L; - internalGetMutableHeadersList().clear(); - payloadEncoding_ = ""; - payloadType_ = ""; - payload_ = com.google.protobuf.ByteString.EMPTY; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.seqId_ = seqId_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.logId_ = logId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.service_ = service_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.method_ = method_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.headersList_ = internalGetHeadersList(); - result.headersList_.makeImmutable(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.payloadEncoding_ = payloadEncoding_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.payloadType_ = payloadType_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.payload_ = payload_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.getDefaultInstance()) return this; - if (other.getSeqId() != 0L) { - setSeqId(other.getSeqId()); - } - if (other.getLogId() != 0L) { - setLogId(other.getLogId()); - } - if (other.getService() != 0L) { - setService(other.getService()); - } - if (other.getMethod() != 0L) { - setMethod(other.getMethod()); - } - internalGetMutableHeadersList().mergeFrom( - other.internalGetHeadersList()); - bitField0_ |= 0x00000010; - if (!other.getPayloadEncoding().isEmpty()) { - payloadEncoding_ = other.payloadEncoding_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (!other.getPayloadType().isEmpty()) { - payloadType_ = other.payloadType_; - bitField0_ |= 0x00000040; - onChanged(); - } - if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { - setPayload(other.getPayload()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - seqId_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - logId_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - service_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - method_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - com.google.protobuf.MapEntry - headersList__ = input.readMessage( - HeadersListDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutableHeadersList().getMutableMap().put( - headersList__.getKey(), headersList__.getValue()); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - payloadEncoding_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - payloadType_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 66: { - payload_ = input.readBytes(); - bitField0_ |= 0x00000080; - break; - } // case 66 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long seqId_ ; - /** - * uint64 seq_id = 1; - * @return The seqId. - */ - @java.lang.Override - public long getSeqId() { - return seqId_; - } - /** - * uint64 seq_id = 1; - * @param value The seqId to set. - * @return This builder for chaining. - */ - public Builder setSeqId(long value) { - - seqId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 seq_id = 1; - * @return This builder for chaining. - */ - public Builder clearSeqId() { - bitField0_ = (bitField0_ & ~0x00000001); - seqId_ = 0L; - onChanged(); - return this; - } - - private long logId_ ; - /** - * uint64 log_id = 2; - * @return The logId. - */ - @java.lang.Override - public long getLogId() { - return logId_; - } - /** - * uint64 log_id = 2; - * @param value The logId to set. - * @return This builder for chaining. - */ - public Builder setLogId(long value) { - - logId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 log_id = 2; - * @return This builder for chaining. - */ - public Builder clearLogId() { - bitField0_ = (bitField0_ & ~0x00000002); - logId_ = 0L; - onChanged(); - return this; - } - - private long service_ ; - /** - * uint64 service = 3; - * @return The service. - */ - @java.lang.Override - public long getService() { - return service_; - } - /** - * uint64 service = 3; - * @param value The service to set. - * @return This builder for chaining. - */ - public Builder setService(long value) { - - service_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 service = 3; - * @return This builder for chaining. - */ - public Builder clearService() { - bitField0_ = (bitField0_ & ~0x00000004); - service_ = 0L; - onChanged(); - return this; - } - - private long method_ ; - /** - * uint64 method = 4; - * @return The method. - */ - @java.lang.Override - public long getMethod() { - return method_; - } - /** - * uint64 method = 4; - * @param value The method to set. - * @return This builder for chaining. - */ - public Builder setMethod(long value) { - - method_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 method = 4; - * @return This builder for chaining. - */ - public Builder clearMethod() { - bitField0_ = (bitField0_ & ~0x00000008); - method_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> headersList_; - private com.google.protobuf.MapField - internalGetHeadersList() { - if (headersList_ == null) { - return com.google.protobuf.MapField.emptyMapField( - HeadersListDefaultEntryHolder.defaultEntry); - } - return headersList_; - } - private com.google.protobuf.MapField - internalGetMutableHeadersList() { - if (headersList_ == null) { - headersList_ = com.google.protobuf.MapField.newMapField( - HeadersListDefaultEntryHolder.defaultEntry); - } - if (!headersList_.isMutable()) { - headersList_ = headersList_.copy(); - } - bitField0_ |= 0x00000010; - onChanged(); - return headersList_; - } - public int getHeadersListCount() { - return internalGetHeadersList().getMap().size(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public boolean containsHeadersList( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetHeadersList().getMap().containsKey(key); - } - /** - * Use {@link #getHeadersListMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getHeadersList() { - return getHeadersListMap(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public java.util.Map getHeadersListMap() { - return internalGetHeadersList().getMap(); - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getHeadersListOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetHeadersList().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> headers_list = 5; - */ - @java.lang.Override - public java.lang.String getHeadersListOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetHeadersList().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearHeadersList() { - bitField0_ = (bitField0_ & ~0x00000010); - internalGetMutableHeadersList().getMutableMap() - .clear(); - return this; - } - /** - * map<string, string> headers_list = 5; - */ - public Builder removeHeadersList( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - internalGetMutableHeadersList().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableHeadersList() { - bitField0_ |= 0x00000010; - return internalGetMutableHeadersList().getMutableMap(); - } - /** - * map<string, string> headers_list = 5; - */ - public Builder putHeadersList( - java.lang.String key, - java.lang.String value) { - if (key == null) { throw new NullPointerException("map key"); } - if (value == null) { throw new NullPointerException("map value"); } - internalGetMutableHeadersList().getMutableMap() - .put(key, value); - bitField0_ |= 0x00000010; - return this; - } - /** - * map<string, string> headers_list = 5; - */ - public Builder putAllHeadersList( - java.util.Map values) { - internalGetMutableHeadersList().getMutableMap() - .putAll(values); - bitField0_ |= 0x00000010; - return this; - } - - private java.lang.Object payloadEncoding_ = ""; - /** - * string payload_encoding = 6; - * @return The payloadEncoding. - */ - public java.lang.String getPayloadEncoding() { - java.lang.Object ref = payloadEncoding_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - payloadEncoding_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string payload_encoding = 6; - * @return The bytes for payloadEncoding. - */ - public com.google.protobuf.ByteString - getPayloadEncodingBytes() { - java.lang.Object ref = payloadEncoding_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - payloadEncoding_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string payload_encoding = 6; - * @param value The payloadEncoding to set. - * @return This builder for chaining. - */ - public Builder setPayloadEncoding( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - payloadEncoding_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string payload_encoding = 6; - * @return This builder for chaining. - */ - public Builder clearPayloadEncoding() { - payloadEncoding_ = getDefaultInstance().getPayloadEncoding(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string payload_encoding = 6; - * @param value The bytes for payloadEncoding to set. - * @return This builder for chaining. - */ - public Builder setPayloadEncodingBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - payloadEncoding_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private java.lang.Object payloadType_ = ""; - /** - * string payload_type = 7; - * @return The payloadType. - */ - public java.lang.String getPayloadType() { - java.lang.Object ref = payloadType_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - payloadType_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string payload_type = 7; - * @return The bytes for payloadType. - */ - public com.google.protobuf.ByteString - getPayloadTypeBytes() { - java.lang.Object ref = payloadType_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - payloadType_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string payload_type = 7; - * @param value The payloadType to set. - * @return This builder for chaining. - */ - public Builder setPayloadType( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - payloadType_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string payload_type = 7; - * @return This builder for chaining. - */ - public Builder clearPayloadType() { - payloadType_ = getDefaultInstance().getPayloadType(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string payload_type = 7; - * @param value The bytes for payloadType to set. - * @return This builder for chaining. - */ - public Builder setPayloadTypeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - payloadType_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 8; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - /** - * bytes payload = 8; - * @param value The payload to set. - * @return This builder for chaining. - */ - public Builder setPayload(com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - payload_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * bytes payload = 8; - * @return This builder for chaining. - */ - public Builder clearPayload() { - bitField0_ = (bitField0_ & ~0x00000080); - payload_ = getDefaultInstance().getPayload(); - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_websocket_frame parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java deleted file mode 100644 index 9bf36f73..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_websocket_frameOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 seq_id = 1; - * @return The seqId. - */ - long getSeqId(); - - /** - * uint64 log_id = 2; - * @return The logId. - */ - long getLogId(); - - /** - * uint64 service = 3; - * @return The service. - */ - long getService(); - - /** - * uint64 method = 4; - * @return The method. - */ - long getMethod(); - - /** - * map<string, string> headers_list = 5; - */ - int getHeadersListCount(); - /** - * map<string, string> headers_list = 5; - */ - boolean containsHeadersList( - java.lang.String key); - /** - * Use {@link #getHeadersListMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getHeadersList(); - /** - * map<string, string> headers_list = 5; - */ - java.util.Map - getHeadersListMap(); - /** - * map<string, string> headers_list = 5; - */ - /* nullable */ -java.lang.String getHeadersListOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue); - /** - * map<string, string> headers_list = 5; - */ - java.lang.String getHeadersListOrThrow( - java.lang.String key); - - /** - * string payload_encoding = 6; - * @return The payloadEncoding. - */ - java.lang.String getPayloadEncoding(); - /** - * string payload_encoding = 6; - * @return The bytes for payloadEncoding. - */ - com.google.protobuf.ByteString - getPayloadEncodingBytes(); - - /** - * string payload_type = 7; - * @return The payloadType. - */ - java.lang.String getPayloadType(); - /** - * string payload_type = 7; - * @return The bytes for payloadType. - */ - com.google.protobuf.ByteString - getPayloadTypeBytes(); - - /** - * bytes payload = 8; - * @return The payload. - */ - com.google.protobuf.ByteString getPayload(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java deleted file mode 100644 index 5037b9fe..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java +++ /dev/null @@ -1,2007 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -/** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg} - */ -public final class douyin_websocket_frame_msg extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) - douyin_websocket_frame_msgOrBuilder { -private static final long serialVersionUID = 0L; - // Use douyin_websocket_frame_msg.newBuilder() to construct. - private douyin_websocket_frame_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private douyin_websocket_frame_msg() { - messagesList_ = java.util.Collections.emptyList(); - cursor_ = ""; - internalExt_ = ""; - pushServer_ = ""; - liveCursor_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new douyin_websocket_frame_msg(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 7: - return internalGetRouteParams(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.Builder.class); - } - - public static final int MESSAGES_LIST_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List messagesList_; - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - @java.lang.Override - public java.util.List getMessagesListList() { - return messagesList_; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - @java.lang.Override - public java.util.List - getMessagesListOrBuilderList() { - return messagesList_; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - @java.lang.Override - public int getMessagesListCount() { - return messagesList_.size(); - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index) { - return messagesList_.get(index); - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( - int index) { - return messagesList_.get(index); - } - - public static final int CURSOR_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object cursor_ = ""; - /** - * string cursor = 2; - * @return The cursor. - */ - @java.lang.Override - public java.lang.String getCursor() { - java.lang.Object ref = cursor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cursor_ = s; - return s; - } - } - /** - * string cursor = 2; - * @return The bytes for cursor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCursorBytes() { - java.lang.Object ref = cursor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FETCH_INTERVAL_FIELD_NUMBER = 3; - private long fetchInterval_ = 0L; - /** - * uint64 fetch_interval = 3; - * @return The fetchInterval. - */ - @java.lang.Override - public long getFetchInterval() { - return fetchInterval_; - } - - public static final int NOW_FIELD_NUMBER = 4; - private long now_ = 0L; - /** - * uint64 now = 4; - * @return The now. - */ - @java.lang.Override - public long getNow() { - return now_; - } - - public static final int INTERNAL_EXT_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object internalExt_ = ""; - /** - * string internal_ext = 5; - * @return The internalExt. - */ - @java.lang.Override - public java.lang.String getInternalExt() { - java.lang.Object ref = internalExt_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - internalExt_ = s; - return s; - } - } - /** - * string internal_ext = 5; - * @return The bytes for internalExt. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getInternalExtBytes() { - java.lang.Object ref = internalExt_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - internalExt_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FETCH_TYPE_FIELD_NUMBER = 6; - private int fetchType_ = 0; - /** - * uint32 fetch_type = 6; - * @return The fetchType. - */ - @java.lang.Override - public int getFetchType() { - return fetchType_; - } - - public static final int ROUTE_PARAMS_FIELD_NUMBER = 7; - private static final class RouteParamsDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.String, java.lang.String> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.STRING, - "", - com.google.protobuf.WireFormat.FieldType.STRING, - ""); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> routeParams_; - private com.google.protobuf.MapField - internalGetRouteParams() { - if (routeParams_ == null) { - return com.google.protobuf.MapField.emptyMapField( - RouteParamsDefaultEntryHolder.defaultEntry); - } - return routeParams_; - } - public int getRouteParamsCount() { - return internalGetRouteParams().getMap().size(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public boolean containsRouteParams( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetRouteParams().getMap().containsKey(key); - } - /** - * Use {@link #getRouteParamsMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getRouteParams() { - return getRouteParamsMap(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public java.util.Map getRouteParamsMap() { - return internalGetRouteParams().getMap(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getRouteParamsOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetRouteParams().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public java.lang.String getRouteParamsOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetRouteParams().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - public static final int HEARTBEAT_DURATION_FIELD_NUMBER = 8; - private long heartbeatDuration_ = 0L; - /** - * uint64 heartbeat_duration = 8; - * @return The heartbeatDuration. - */ - @java.lang.Override - public long getHeartbeatDuration() { - return heartbeatDuration_; - } - - public static final int NEED_ACK_FIELD_NUMBER = 9; - private boolean needAck_ = false; - /** - * bool need_ack = 9; - * @return The needAck. - */ - @java.lang.Override - public boolean getNeedAck() { - return needAck_; - } - - public static final int PUSH_SERVER_FIELD_NUMBER = 10; - @SuppressWarnings("serial") - private volatile java.lang.Object pushServer_ = ""; - /** - * string push_server = 10; - * @return The pushServer. - */ - @java.lang.Override - public java.lang.String getPushServer() { - java.lang.Object ref = pushServer_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - pushServer_ = s; - return s; - } - } - /** - * string push_server = 10; - * @return The bytes for pushServer. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPushServerBytes() { - java.lang.Object ref = pushServer_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pushServer_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LIVE_CURSOR_FIELD_NUMBER = 11; - @SuppressWarnings("serial") - private volatile java.lang.Object liveCursor_ = ""; - /** - * string live_cursor = 11; - * @return The liveCursor. - */ - @java.lang.Override - public java.lang.String getLiveCursor() { - java.lang.Object ref = liveCursor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - liveCursor_ = s; - return s; - } - } - /** - * string live_cursor = 11; - * @return The bytes for liveCursor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLiveCursorBytes() { - java.lang.Object ref = liveCursor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - liveCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int HISTORY_NO_MORE_FIELD_NUMBER = 12; - private boolean historyNoMore_ = false; - /** - * bool history_no_more = 12; - * @return The historyNoMore. - */ - @java.lang.Override - public boolean getHistoryNoMore() { - return historyNoMore_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < messagesList_.size(); i++) { - output.writeMessage(1, messagesList_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cursor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, cursor_); - } - if (fetchInterval_ != 0L) { - output.writeUInt64(3, fetchInterval_); - } - if (now_ != 0L) { - output.writeUInt64(4, now_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(internalExt_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, internalExt_); - } - if (fetchType_ != 0) { - output.writeUInt32(6, fetchType_); - } - com.google.protobuf.GeneratedMessageV3 - .serializeStringMapTo( - output, - internalGetRouteParams(), - RouteParamsDefaultEntryHolder.defaultEntry, - 7); - if (heartbeatDuration_ != 0L) { - output.writeUInt64(8, heartbeatDuration_); - } - if (needAck_ != false) { - output.writeBool(9, needAck_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pushServer_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 10, pushServer_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveCursor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 11, liveCursor_); - } - if (historyNoMore_ != false) { - output.writeBool(12, historyNoMore_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < messagesList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, messagesList_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cursor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, cursor_); - } - if (fetchInterval_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, fetchInterval_); - } - if (now_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, now_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(internalExt_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, internalExt_); - } - if (fetchType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, fetchType_); - } - for (java.util.Map.Entry entry - : internalGetRouteParams().getMap().entrySet()) { - com.google.protobuf.MapEntry - routeParams__ = RouteParamsDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, routeParams__); - } - if (heartbeatDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(8, heartbeatDuration_); - } - if (needAck_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(9, needAck_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pushServer_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, pushServer_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveCursor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, liveCursor_); - } - if (historyNoMore_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(12, historyNoMore_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) obj; - - if (!getMessagesListList() - .equals(other.getMessagesListList())) return false; - if (!getCursor() - .equals(other.getCursor())) return false; - if (getFetchInterval() - != other.getFetchInterval()) return false; - if (getNow() - != other.getNow()) return false; - if (!getInternalExt() - .equals(other.getInternalExt())) return false; - if (getFetchType() - != other.getFetchType()) return false; - if (!internalGetRouteParams().equals( - other.internalGetRouteParams())) return false; - if (getHeartbeatDuration() - != other.getHeartbeatDuration()) return false; - if (getNeedAck() - != other.getNeedAck()) return false; - if (!getPushServer() - .equals(other.getPushServer())) return false; - if (!getLiveCursor() - .equals(other.getLiveCursor())) return false; - if (getHistoryNoMore() - != other.getHistoryNoMore()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getMessagesListCount() > 0) { - hash = (37 * hash) + MESSAGES_LIST_FIELD_NUMBER; - hash = (53 * hash) + getMessagesListList().hashCode(); - } - hash = (37 * hash) + CURSOR_FIELD_NUMBER; - hash = (53 * hash) + getCursor().hashCode(); - hash = (37 * hash) + FETCH_INTERVAL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFetchInterval()); - hash = (37 * hash) + NOW_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getNow()); - hash = (37 * hash) + INTERNAL_EXT_FIELD_NUMBER; - hash = (53 * hash) + getInternalExt().hashCode(); - hash = (37 * hash) + FETCH_TYPE_FIELD_NUMBER; - hash = (53 * hash) + getFetchType(); - if (!internalGetRouteParams().getMap().isEmpty()) { - hash = (37 * hash) + ROUTE_PARAMS_FIELD_NUMBER; - hash = (53 * hash) + internalGetRouteParams().hashCode(); - } - hash = (37 * hash) + HEARTBEAT_DURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getHeartbeatDuration()); - hash = (37 * hash) + NEED_ACK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getNeedAck()); - hash = (37 * hash) + PUSH_SERVER_FIELD_NUMBER; - hash = (53 * hash) + getPushServer().hashCode(); - hash = (37 * hash) + LIVE_CURSOR_FIELD_NUMBER; - hash = (53 * hash) + getLiveCursor().hashCode(); - hash = (37 * hash) + HISTORY_NO_MORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getHistoryNoMore()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 7: - return internalGetRouteParams(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 7: - return internalGetMutableRouteParams(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (messagesListBuilder_ == null) { - messagesList_ = java.util.Collections.emptyList(); - } else { - messagesList_ = null; - messagesListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - cursor_ = ""; - fetchInterval_ = 0L; - now_ = 0L; - internalExt_ = ""; - fetchType_ = 0; - internalGetMutableRouteParams().clear(); - heartbeatDuration_ = 0L; - needAck_ = false; - pushServer_ = ""; - liveCursor_ = ""; - historyNoMore_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result) { - if (messagesListBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - messagesList_ = java.util.Collections.unmodifiableList(messagesList_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.messagesList_ = messagesList_; - } else { - result.messagesList_ = messagesListBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.cursor_ = cursor_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.fetchInterval_ = fetchInterval_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.now_ = now_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.internalExt_ = internalExt_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.fetchType_ = fetchType_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.routeParams_ = internalGetRouteParams(); - result.routeParams_.makeImmutable(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.heartbeatDuration_ = heartbeatDuration_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.needAck_ = needAck_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.pushServer_ = pushServer_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.liveCursor_ = liveCursor_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.historyNoMore_ = historyNoMore_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.getDefaultInstance()) return this; - if (messagesListBuilder_ == null) { - if (!other.messagesList_.isEmpty()) { - if (messagesList_.isEmpty()) { - messagesList_ = other.messagesList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureMessagesListIsMutable(); - messagesList_.addAll(other.messagesList_); - } - onChanged(); - } - } else { - if (!other.messagesList_.isEmpty()) { - if (messagesListBuilder_.isEmpty()) { - messagesListBuilder_.dispose(); - messagesListBuilder_ = null; - messagesList_ = other.messagesList_; - bitField0_ = (bitField0_ & ~0x00000001); - messagesListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getMessagesListFieldBuilder() : null; - } else { - messagesListBuilder_.addAllMessages(other.messagesList_); - } - } - } - if (!other.getCursor().isEmpty()) { - cursor_ = other.cursor_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getFetchInterval() != 0L) { - setFetchInterval(other.getFetchInterval()); - } - if (other.getNow() != 0L) { - setNow(other.getNow()); - } - if (!other.getInternalExt().isEmpty()) { - internalExt_ = other.internalExt_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (other.getFetchType() != 0) { - setFetchType(other.getFetchType()); - } - internalGetMutableRouteParams().mergeFrom( - other.internalGetRouteParams()); - bitField0_ |= 0x00000040; - if (other.getHeartbeatDuration() != 0L) { - setHeartbeatDuration(other.getHeartbeatDuration()); - } - if (other.getNeedAck() != false) { - setNeedAck(other.getNeedAck()); - } - if (!other.getPushServer().isEmpty()) { - pushServer_ = other.pushServer_; - bitField0_ |= 0x00000200; - onChanged(); - } - if (!other.getLiveCursor().isEmpty()) { - liveCursor_ = other.liveCursor_; - bitField0_ |= 0x00000400; - onChanged(); - } - if (other.getHistoryNoMore() != false) { - setHistoryNoMore(other.getHistoryNoMore()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.parser(), - extensionRegistry); - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - messagesList_.add(m); - } else { - messagesListBuilder_.addMessage(m); - } - break; - } // case 10 - case 18: { - cursor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - fetchInterval_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - now_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - internalExt_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 48: { - fetchType_ = input.readUInt32(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - com.google.protobuf.MapEntry - routeParams__ = input.readMessage( - RouteParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutableRouteParams().getMutableMap().put( - routeParams__.getKey(), routeParams__.getValue()); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 64: { - heartbeatDuration_ = input.readUInt64(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - needAck_ = input.readBool(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 82: { - pushServer_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000200; - break; - } // case 82 - case 90: { - liveCursor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000400; - break; - } // case 90 - case 96: { - historyNoMore_ = input.readBool(); - bitField0_ |= 0x00000800; - break; - } // case 96 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List messagesList_ = - java.util.Collections.emptyList(); - private void ensureMessagesListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - messagesList_ = new java.util.ArrayList(messagesList_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder> messagesListBuilder_; - - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public java.util.List getMessagesListList() { - if (messagesListBuilder_ == null) { - return java.util.Collections.unmodifiableList(messagesList_); - } else { - return messagesListBuilder_.getMessageList(); - } - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public int getMessagesListCount() { - if (messagesListBuilder_ == null) { - return messagesList_.size(); - } else { - return messagesListBuilder_.getCount(); - } - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index) { - if (messagesListBuilder_ == null) { - return messagesList_.get(index); - } else { - return messagesListBuilder_.getMessage(index); - } - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder setMessagesList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { - if (messagesListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMessagesListIsMutable(); - messagesList_.set(index, value); - onChanged(); - } else { - messagesListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder setMessagesList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - messagesList_.set(index, builderForValue.build()); - onChanged(); - } else { - messagesListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder addMessagesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { - if (messagesListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMessagesListIsMutable(); - messagesList_.add(value); - onChanged(); - } else { - messagesListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder addMessagesList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { - if (messagesListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMessagesListIsMutable(); - messagesList_.add(index, value); - onChanged(); - } else { - messagesListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder addMessagesList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - messagesList_.add(builderForValue.build()); - onChanged(); - } else { - messagesListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder addMessagesList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - messagesList_.add(index, builderForValue.build()); - onChanged(); - } else { - messagesListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder addAllMessagesList( - java.lang.Iterable values) { - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, messagesList_); - onChanged(); - } else { - messagesListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder clearMessagesList() { - if (messagesListBuilder_ == null) { - messagesList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - messagesListBuilder_.clear(); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public Builder removeMessagesList(int index) { - if (messagesListBuilder_ == null) { - ensureMessagesListIsMutable(); - messagesList_.remove(index); - onChanged(); - } else { - messagesListBuilder_.remove(index); - } - return this; - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder getMessagesListBuilder( - int index) { - return getMessagesListFieldBuilder().getBuilder(index); - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( - int index) { - if (messagesListBuilder_ == null) { - return messagesList_.get(index); } else { - return messagesListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public java.util.List - getMessagesListOrBuilderList() { - if (messagesListBuilder_ != null) { - return messagesListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(messagesList_); - } - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder addMessagesListBuilder() { - return getMessagesListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()); - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder addMessagesListBuilder( - int index) { - return getMessagesListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()); - } - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - public java.util.List - getMessagesListBuilderList() { - return getMessagesListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder> - getMessagesListFieldBuilder() { - if (messagesListBuilder_ == null) { - messagesListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder>( - messagesList_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - messagesList_ = null; - } - return messagesListBuilder_; - } - - private java.lang.Object cursor_ = ""; - /** - * string cursor = 2; - * @return The cursor. - */ - public java.lang.String getCursor() { - java.lang.Object ref = cursor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cursor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string cursor = 2; - * @return The bytes for cursor. - */ - public com.google.protobuf.ByteString - getCursorBytes() { - java.lang.Object ref = cursor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string cursor = 2; - * @param value The cursor to set. - * @return This builder for chaining. - */ - public Builder setCursor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - cursor_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string cursor = 2; - * @return This builder for chaining. - */ - public Builder clearCursor() { - cursor_ = getDefaultInstance().getCursor(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string cursor = 2; - * @param value The bytes for cursor to set. - * @return This builder for chaining. - */ - public Builder setCursorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - cursor_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long fetchInterval_ ; - /** - * uint64 fetch_interval = 3; - * @return The fetchInterval. - */ - @java.lang.Override - public long getFetchInterval() { - return fetchInterval_; - } - /** - * uint64 fetch_interval = 3; - * @param value The fetchInterval to set. - * @return This builder for chaining. - */ - public Builder setFetchInterval(long value) { - - fetchInterval_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 fetch_interval = 3; - * @return This builder for chaining. - */ - public Builder clearFetchInterval() { - bitField0_ = (bitField0_ & ~0x00000004); - fetchInterval_ = 0L; - onChanged(); - return this; - } - - private long now_ ; - /** - * uint64 now = 4; - * @return The now. - */ - @java.lang.Override - public long getNow() { - return now_; - } - /** - * uint64 now = 4; - * @param value The now to set. - * @return This builder for chaining. - */ - public Builder setNow(long value) { - - now_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 now = 4; - * @return This builder for chaining. - */ - public Builder clearNow() { - bitField0_ = (bitField0_ & ~0x00000008); - now_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object internalExt_ = ""; - /** - * string internal_ext = 5; - * @return The internalExt. - */ - public java.lang.String getInternalExt() { - java.lang.Object ref = internalExt_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - internalExt_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string internal_ext = 5; - * @return The bytes for internalExt. - */ - public com.google.protobuf.ByteString - getInternalExtBytes() { - java.lang.Object ref = internalExt_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - internalExt_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string internal_ext = 5; - * @param value The internalExt to set. - * @return This builder for chaining. - */ - public Builder setInternalExt( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - internalExt_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string internal_ext = 5; - * @return This builder for chaining. - */ - public Builder clearInternalExt() { - internalExt_ = getDefaultInstance().getInternalExt(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string internal_ext = 5; - * @param value The bytes for internalExt to set. - * @return This builder for chaining. - */ - public Builder setInternalExtBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - internalExt_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - private int fetchType_ ; - /** - * uint32 fetch_type = 6; - * @return The fetchType. - */ - @java.lang.Override - public int getFetchType() { - return fetchType_; - } - /** - * uint32 fetch_type = 6; - * @param value The fetchType to set. - * @return This builder for chaining. - */ - public Builder setFetchType(int value) { - - fetchType_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint32 fetch_type = 6; - * @return This builder for chaining. - */ - public Builder clearFetchType() { - bitField0_ = (bitField0_ & ~0x00000020); - fetchType_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.MapField< - java.lang.String, java.lang.String> routeParams_; - private com.google.protobuf.MapField - internalGetRouteParams() { - if (routeParams_ == null) { - return com.google.protobuf.MapField.emptyMapField( - RouteParamsDefaultEntryHolder.defaultEntry); - } - return routeParams_; - } - private com.google.protobuf.MapField - internalGetMutableRouteParams() { - if (routeParams_ == null) { - routeParams_ = com.google.protobuf.MapField.newMapField( - RouteParamsDefaultEntryHolder.defaultEntry); - } - if (!routeParams_.isMutable()) { - routeParams_ = routeParams_.copy(); - } - bitField0_ |= 0x00000040; - onChanged(); - return routeParams_; - } - public int getRouteParamsCount() { - return internalGetRouteParams().getMap().size(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public boolean containsRouteParams( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetRouteParams().getMap().containsKey(key); - } - /** - * Use {@link #getRouteParamsMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getRouteParams() { - return getRouteParamsMap(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public java.util.Map getRouteParamsMap() { - return internalGetRouteParams().getMap(); - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public /* nullable */ -java.lang.String getRouteParamsOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetRouteParams().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, string> route_params = 7; - */ - @java.lang.Override - public java.lang.String getRouteParamsOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetRouteParams().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearRouteParams() { - bitField0_ = (bitField0_ & ~0x00000040); - internalGetMutableRouteParams().getMutableMap() - .clear(); - return this; - } - /** - * map<string, string> route_params = 7; - */ - public Builder removeRouteParams( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - internalGetMutableRouteParams().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableRouteParams() { - bitField0_ |= 0x00000040; - return internalGetMutableRouteParams().getMutableMap(); - } - /** - * map<string, string> route_params = 7; - */ - public Builder putRouteParams( - java.lang.String key, - java.lang.String value) { - if (key == null) { throw new NullPointerException("map key"); } - if (value == null) { throw new NullPointerException("map value"); } - internalGetMutableRouteParams().getMutableMap() - .put(key, value); - bitField0_ |= 0x00000040; - return this; - } - /** - * map<string, string> route_params = 7; - */ - public Builder putAllRouteParams( - java.util.Map values) { - internalGetMutableRouteParams().getMutableMap() - .putAll(values); - bitField0_ |= 0x00000040; - return this; - } - - private long heartbeatDuration_ ; - /** - * uint64 heartbeat_duration = 8; - * @return The heartbeatDuration. - */ - @java.lang.Override - public long getHeartbeatDuration() { - return heartbeatDuration_; - } - /** - * uint64 heartbeat_duration = 8; - * @param value The heartbeatDuration to set. - * @return This builder for chaining. - */ - public Builder setHeartbeatDuration(long value) { - - heartbeatDuration_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * uint64 heartbeat_duration = 8; - * @return This builder for chaining. - */ - public Builder clearHeartbeatDuration() { - bitField0_ = (bitField0_ & ~0x00000080); - heartbeatDuration_ = 0L; - onChanged(); - return this; - } - - private boolean needAck_ ; - /** - * bool need_ack = 9; - * @return The needAck. - */ - @java.lang.Override - public boolean getNeedAck() { - return needAck_; - } - /** - * bool need_ack = 9; - * @param value The needAck to set. - * @return This builder for chaining. - */ - public Builder setNeedAck(boolean value) { - - needAck_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * bool need_ack = 9; - * @return This builder for chaining. - */ - public Builder clearNeedAck() { - bitField0_ = (bitField0_ & ~0x00000100); - needAck_ = false; - onChanged(); - return this; - } - - private java.lang.Object pushServer_ = ""; - /** - * string push_server = 10; - * @return The pushServer. - */ - public java.lang.String getPushServer() { - java.lang.Object ref = pushServer_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - pushServer_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string push_server = 10; - * @return The bytes for pushServer. - */ - public com.google.protobuf.ByteString - getPushServerBytes() { - java.lang.Object ref = pushServer_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pushServer_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string push_server = 10; - * @param value The pushServer to set. - * @return This builder for chaining. - */ - public Builder setPushServer( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - pushServer_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * string push_server = 10; - * @return This builder for chaining. - */ - public Builder clearPushServer() { - pushServer_ = getDefaultInstance().getPushServer(); - bitField0_ = (bitField0_ & ~0x00000200); - onChanged(); - return this; - } - /** - * string push_server = 10; - * @param value The bytes for pushServer to set. - * @return This builder for chaining. - */ - public Builder setPushServerBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - pushServer_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - - private java.lang.Object liveCursor_ = ""; - /** - * string live_cursor = 11; - * @return The liveCursor. - */ - public java.lang.String getLiveCursor() { - java.lang.Object ref = liveCursor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - liveCursor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string live_cursor = 11; - * @return The bytes for liveCursor. - */ - public com.google.protobuf.ByteString - getLiveCursorBytes() { - java.lang.Object ref = liveCursor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - liveCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string live_cursor = 11; - * @param value The liveCursor to set. - * @return This builder for chaining. - */ - public Builder setLiveCursor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - liveCursor_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * string live_cursor = 11; - * @return This builder for chaining. - */ - public Builder clearLiveCursor() { - liveCursor_ = getDefaultInstance().getLiveCursor(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - return this; - } - /** - * string live_cursor = 11; - * @param value The bytes for liveCursor to set. - * @return This builder for chaining. - */ - public Builder setLiveCursorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - liveCursor_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - - private boolean historyNoMore_ ; - /** - * bool history_no_more = 12; - * @return The historyNoMore. - */ - @java.lang.Override - public boolean getHistoryNoMore() { - return historyNoMore_; - } - /** - * bool history_no_more = 12; - * @param value The historyNoMore to set. - * @return This builder for chaining. - */ - public Builder setHistoryNoMore(boolean value) { - - historyNoMore_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool history_no_more = 12; - * @return This builder for chaining. - */ - public Builder clearHistoryNoMore() { - bitField0_ = (bitField0_ & ~0x00000800); - historyNoMore_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) - } - - // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public douyin_websocket_frame_msg parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - -} - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java deleted file mode 100644 index e90332f8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public interface douyin_websocket_frame_msgOrBuilder extends - // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - java.util.List - getMessagesListList(); - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index); - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - int getMessagesListCount(); - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - java.util.List - getMessagesListOrBuilderList(); - /** - * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( - int index); - - /** - * string cursor = 2; - * @return The cursor. - */ - java.lang.String getCursor(); - /** - * string cursor = 2; - * @return The bytes for cursor. - */ - com.google.protobuf.ByteString - getCursorBytes(); - - /** - * uint64 fetch_interval = 3; - * @return The fetchInterval. - */ - long getFetchInterval(); - - /** - * uint64 now = 4; - * @return The now. - */ - long getNow(); - - /** - * string internal_ext = 5; - * @return The internalExt. - */ - java.lang.String getInternalExt(); - /** - * string internal_ext = 5; - * @return The bytes for internalExt. - */ - com.google.protobuf.ByteString - getInternalExtBytes(); - - /** - * uint32 fetch_type = 6; - * @return The fetchType. - */ - int getFetchType(); - - /** - * map<string, string> route_params = 7; - */ - int getRouteParamsCount(); - /** - * map<string, string> route_params = 7; - */ - boolean containsRouteParams( - java.lang.String key); - /** - * Use {@link #getRouteParamsMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getRouteParams(); - /** - * map<string, string> route_params = 7; - */ - java.util.Map - getRouteParamsMap(); - /** - * map<string, string> route_params = 7; - */ - /* nullable */ -java.lang.String getRouteParamsOrDefault( - java.lang.String key, - /* nullable */ -java.lang.String defaultValue); - /** - * map<string, string> route_params = 7; - */ - java.lang.String getRouteParamsOrThrow( - java.lang.String key); - - /** - * uint64 heartbeat_duration = 8; - * @return The heartbeatDuration. - */ - long getHeartbeatDuration(); - - /** - * bool need_ack = 9; - * @return The needAck. - */ - boolean getNeedAck(); - - /** - * string push_server = 10; - * @return The pushServer. - */ - java.lang.String getPushServer(); - /** - * string push_server = 10; - * @return The bytes for pushServer. - */ - com.google.protobuf.ByteString - getPushServerBytes(); - - /** - * string live_cursor = 11; - * @return The liveCursor. - */ - java.lang.String getLiveCursor(); - /** - * string live_cursor = 11; - * @return The bytes for liveCursor. - */ - com.google.protobuf.ByteString - getLiveCursorBytes(); - - /** - * bool history_no_more = 12; - * @return The historyNoMore. - */ - boolean getHistoryNoMore(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java deleted file mode 100644 index 607d3eda..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: douyin_websocket_frame_msg.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -public final class douyin_websocket_frame_msgProto { - private douyin_websocket_frame_msgProto() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable; - static final com.google.protobuf.Descriptors.Descriptor - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor; - static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n douyin_websocket_frame_msg.proto\0222tech" + - ".ordinaryroad.live.chat.client.douyin.pr" + - "otobuf\032\024douyin_cmd_msg.proto\"\362\003\n\032douyin_" + - "websocket_frame_msg\022Y\n\rmessages_list\030\001 \003" + - "(\0132B.tech.ordinaryroad.live.chat.client." + - "douyin.protobuf.douyin_cmd_msg\022\016\n\006cursor" + - "\030\002 \001(\t\022\026\n\016fetch_interval\030\003 \001(\004\022\013\n\003now\030\004 " + - "\001(\004\022\024\n\014internal_ext\030\005 \001(\t\022\022\n\nfetch_type\030" + - "\006 \001(\r\022u\n\014route_params\030\007 \003(\0132_.tech.ordin" + - "aryroad.live.chat.client.douyin.protobuf" + - ".douyin_websocket_frame_msg.RouteParamsE" + - "ntry\022\032\n\022heartbeat_duration\030\010 \001(\004\022\020\n\010need" + - "_ack\030\t \001(\010\022\023\n\013push_server\030\n \001(\t\022\023\n\013live_" + - "cursor\030\013 \001(\t\022\027\n\017history_no_more\030\014 \001(\010\0322\n" + - "\020RouteParamsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030" + - "\002 \001(\t:\0028\001B]\n2tech.ordinaryroad.live.chat" + - ".client.douyin.protobufB\037douyin_websocke" + - "t_frame_msgProtoP\001\242\002\003GPBb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.getDescriptor(), - }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor, - new java.lang.String[] { "MessagesList", "Cursor", "FetchInterval", "Now", "InternalExt", "FetchType", "RouteParams", "HeartbeatDuration", "NeedAck", "PushServer", "LiveCursor", "HistoryNoMore", }); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor = - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor.getNestedTypes().get(0); - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java deleted file mode 100644 index 17c17c41..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java +++ /dev/null @@ -1,2558 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: Common.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class CommonOuterClass { - private CommonOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CommonOrBuilder extends - // @@protoc_insertion_point(interface_extends:Common) - com.google.protobuf.MessageOrBuilder { - - /** - * string method = 1; - * @return The method. - */ - java.lang.String getMethod(); - /** - * string method = 1; - * @return The bytes for method. - */ - com.google.protobuf.ByteString - getMethodBytes(); - - /** - * uint64 msgId = 2; - * @return The msgId. - */ - long getMsgId(); - - /** - * uint64 roomId = 3; - * @return The roomId. - */ - long getRoomId(); - - /** - * uint64 createTime = 4; - * @return The createTime. - */ - long getCreateTime(); - - /** - * uint32 monitor = 5; - * @return The monitor. - */ - int getMonitor(); - - /** - * bool isShowMsg = 6; - * @return The isShowMsg. - */ - boolean getIsShowMsg(); - - /** - * string describe = 7; - * @return The describe. - */ - java.lang.String getDescribe(); - /** - * string describe = 7; - * @return The bytes for describe. - */ - com.google.protobuf.ByteString - getDescribeBytes(); - - /** - *
-     * DisplayText displayText = 8;
-     * 
- * - * uint64 foldType = 9; - * @return The foldType. - */ - long getFoldType(); - - /** - * uint64 anchorFoldType = 10; - * @return The anchorFoldType. - */ - long getAnchorFoldType(); - - /** - * uint64 priorityScore = 11; - * @return The priorityScore. - */ - long getPriorityScore(); - - /** - * string logId = 12; - * @return The logId. - */ - java.lang.String getLogId(); - /** - * string logId = 12; - * @return The bytes for logId. - */ - com.google.protobuf.ByteString - getLogIdBytes(); - - /** - * string msgProcessFilterK = 13; - * @return The msgProcessFilterK. - */ - java.lang.String getMsgProcessFilterK(); - /** - * string msgProcessFilterK = 13; - * @return The bytes for msgProcessFilterK. - */ - com.google.protobuf.ByteString - getMsgProcessFilterKBytes(); - - /** - * string msgProcessFilterV = 14; - * @return The msgProcessFilterV. - */ - java.lang.String getMsgProcessFilterV(); - /** - * string msgProcessFilterV = 14; - * @return The bytes for msgProcessFilterV. - */ - com.google.protobuf.ByteString - getMsgProcessFilterVBytes(); - - /** - * .User user = 15; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 15; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 15; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - *
-     * Room room = 16;
-     * 
- * - * uint64 anchorFoldTypeV2 = 17; - * @return The anchorFoldTypeV2. - */ - long getAnchorFoldTypeV2(); - - /** - * uint64 processAtSeiTimeMs = 18; - * @return The processAtSeiTimeMs. - */ - long getProcessAtSeiTimeMs(); - - /** - * uint64 randomDispatchMs = 19; - * @return The randomDispatchMs. - */ - long getRandomDispatchMs(); - - /** - * bool isDispatch = 20; - * @return The isDispatch. - */ - boolean getIsDispatch(); - - /** - * uint32 channelId = 21; - * @return The channelId. - */ - int getChannelId(); - - /** - * uint64 diffSei2absSecond = 22; - * @return The diffSei2absSecond. - */ - long getDiffSei2AbsSecond(); - - /** - * uint64 anchorFoldDuration = 23; - * @return The anchorFoldDuration. - */ - long getAnchorFoldDuration(); - } - /** - * Protobuf type {@code Common} - */ - public static final class Common extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Common) - CommonOrBuilder { - private static final long serialVersionUID = 0L; - // Use Common.newBuilder() to construct. - private Common(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Common() { - method_ = ""; - describe_ = ""; - logId_ = ""; - msgProcessFilterK_ = ""; - msgProcessFilterV_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Common(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder.class); - } - - public static final int METHOD_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object method_ = ""; - /** - * string method = 1; - * @return The method. - */ - @java.lang.Override - public java.lang.String getMethod() { - java.lang.Object ref = method_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - method_ = s; - return s; - } - } - /** - * string method = 1; - * @return The bytes for method. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMethodBytes() { - java.lang.Object ref = method_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - method_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MSGID_FIELD_NUMBER = 2; - private long msgId_ = 0L; - /** - * uint64 msgId = 2; - * @return The msgId. - */ - @java.lang.Override - public long getMsgId() { - return msgId_; - } - - public static final int ROOMID_FIELD_NUMBER = 3; - private long roomId_ = 0L; - /** - * uint64 roomId = 3; - * @return The roomId. - */ - @java.lang.Override - public long getRoomId() { - return roomId_; - } - - public static final int CREATETIME_FIELD_NUMBER = 4; - private long createTime_ = 0L; - /** - * uint64 createTime = 4; - * @return The createTime. - */ - @java.lang.Override - public long getCreateTime() { - return createTime_; - } - - public static final int MONITOR_FIELD_NUMBER = 5; - private int monitor_ = 0; - /** - * uint32 monitor = 5; - * @return The monitor. - */ - @java.lang.Override - public int getMonitor() { - return monitor_; - } - - public static final int ISSHOWMSG_FIELD_NUMBER = 6; - private boolean isShowMsg_ = false; - /** - * bool isShowMsg = 6; - * @return The isShowMsg. - */ - @java.lang.Override - public boolean getIsShowMsg() { - return isShowMsg_; - } - - public static final int DESCRIBE_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object describe_ = ""; - /** - * string describe = 7; - * @return The describe. - */ - @java.lang.Override - public java.lang.String getDescribe() { - java.lang.Object ref = describe_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - describe_ = s; - return s; - } - } - /** - * string describe = 7; - * @return The bytes for describe. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDescribeBytes() { - java.lang.Object ref = describe_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - describe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FOLDTYPE_FIELD_NUMBER = 9; - private long foldType_ = 0L; - /** - *
-     * DisplayText displayText = 8;
-     * 
- * - * uint64 foldType = 9; - * @return The foldType. - */ - @java.lang.Override - public long getFoldType() { - return foldType_; - } - - public static final int ANCHORFOLDTYPE_FIELD_NUMBER = 10; - private long anchorFoldType_ = 0L; - /** - * uint64 anchorFoldType = 10; - * @return The anchorFoldType. - */ - @java.lang.Override - public long getAnchorFoldType() { - return anchorFoldType_; - } - - public static final int PRIORITYSCORE_FIELD_NUMBER = 11; - private long priorityScore_ = 0L; - /** - * uint64 priorityScore = 11; - * @return The priorityScore. - */ - @java.lang.Override - public long getPriorityScore() { - return priorityScore_; - } - - public static final int LOGID_FIELD_NUMBER = 12; - @SuppressWarnings("serial") - private volatile java.lang.Object logId_ = ""; - /** - * string logId = 12; - * @return The logId. - */ - @java.lang.Override - public java.lang.String getLogId() { - java.lang.Object ref = logId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - logId_ = s; - return s; - } - } - /** - * string logId = 12; - * @return The bytes for logId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLogIdBytes() { - java.lang.Object ref = logId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - logId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MSGPROCESSFILTERK_FIELD_NUMBER = 13; - @SuppressWarnings("serial") - private volatile java.lang.Object msgProcessFilterK_ = ""; - /** - * string msgProcessFilterK = 13; - * @return The msgProcessFilterK. - */ - @java.lang.Override - public java.lang.String getMsgProcessFilterK() { - java.lang.Object ref = msgProcessFilterK_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msgProcessFilterK_ = s; - return s; - } - } - /** - * string msgProcessFilterK = 13; - * @return The bytes for msgProcessFilterK. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgProcessFilterKBytes() { - java.lang.Object ref = msgProcessFilterK_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msgProcessFilterK_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MSGPROCESSFILTERV_FIELD_NUMBER = 14; - @SuppressWarnings("serial") - private volatile java.lang.Object msgProcessFilterV_ = ""; - /** - * string msgProcessFilterV = 14; - * @return The msgProcessFilterV. - */ - @java.lang.Override - public java.lang.String getMsgProcessFilterV() { - java.lang.Object ref = msgProcessFilterV_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msgProcessFilterV_ = s; - return s; - } - } - /** - * string msgProcessFilterV = 14; - * @return The bytes for msgProcessFilterV. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgProcessFilterVBytes() { - java.lang.Object ref = msgProcessFilterV_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msgProcessFilterV_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 15; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 15; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 15; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 15; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int ANCHORFOLDTYPEV2_FIELD_NUMBER = 17; - private long anchorFoldTypeV2_ = 0L; - /** - *
-     * Room room = 16;
-     * 
- * - * uint64 anchorFoldTypeV2 = 17; - * @return The anchorFoldTypeV2. - */ - @java.lang.Override - public long getAnchorFoldTypeV2() { - return anchorFoldTypeV2_; - } - - public static final int PROCESSATSEITIMEMS_FIELD_NUMBER = 18; - private long processAtSeiTimeMs_ = 0L; - /** - * uint64 processAtSeiTimeMs = 18; - * @return The processAtSeiTimeMs. - */ - @java.lang.Override - public long getProcessAtSeiTimeMs() { - return processAtSeiTimeMs_; - } - - public static final int RANDOMDISPATCHMS_FIELD_NUMBER = 19; - private long randomDispatchMs_ = 0L; - /** - * uint64 randomDispatchMs = 19; - * @return The randomDispatchMs. - */ - @java.lang.Override - public long getRandomDispatchMs() { - return randomDispatchMs_; - } - - public static final int ISDISPATCH_FIELD_NUMBER = 20; - private boolean isDispatch_ = false; - /** - * bool isDispatch = 20; - * @return The isDispatch. - */ - @java.lang.Override - public boolean getIsDispatch() { - return isDispatch_; - } - - public static final int CHANNELID_FIELD_NUMBER = 21; - private int channelId_ = 0; - /** - * uint32 channelId = 21; - * @return The channelId. - */ - @java.lang.Override - public int getChannelId() { - return channelId_; - } - - public static final int DIFFSEI2ABSSECOND_FIELD_NUMBER = 22; - private long diffSei2AbsSecond_ = 0L; - /** - * uint64 diffSei2absSecond = 22; - * @return The diffSei2absSecond. - */ - @java.lang.Override - public long getDiffSei2AbsSecond() { - return diffSei2AbsSecond_; - } - - public static final int ANCHORFOLDDURATION_FIELD_NUMBER = 23; - private long anchorFoldDuration_ = 0L; - /** - * uint64 anchorFoldDuration = 23; - * @return The anchorFoldDuration. - */ - @java.lang.Override - public long getAnchorFoldDuration() { - return anchorFoldDuration_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, method_); - } - if (msgId_ != 0L) { - output.writeUInt64(2, msgId_); - } - if (roomId_ != 0L) { - output.writeUInt64(3, roomId_); - } - if (createTime_ != 0L) { - output.writeUInt64(4, createTime_); - } - if (monitor_ != 0) { - output.writeUInt32(5, monitor_); - } - if (isShowMsg_ != false) { - output.writeBool(6, isShowMsg_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, describe_); - } - if (foldType_ != 0L) { - output.writeUInt64(9, foldType_); - } - if (anchorFoldType_ != 0L) { - output.writeUInt64(10, anchorFoldType_); - } - if (priorityScore_ != 0L) { - output.writeUInt64(11, priorityScore_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 12, logId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterK_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 13, msgProcessFilterK_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterV_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 14, msgProcessFilterV_); - } - if (user_ != null) { - output.writeMessage(15, getUser()); - } - if (anchorFoldTypeV2_ != 0L) { - output.writeUInt64(17, anchorFoldTypeV2_); - } - if (processAtSeiTimeMs_ != 0L) { - output.writeUInt64(18, processAtSeiTimeMs_); - } - if (randomDispatchMs_ != 0L) { - output.writeUInt64(19, randomDispatchMs_); - } - if (isDispatch_ != false) { - output.writeBool(20, isDispatch_); - } - if (channelId_ != 0) { - output.writeUInt32(21, channelId_); - } - if (diffSei2AbsSecond_ != 0L) { - output.writeUInt64(22, diffSei2AbsSecond_); - } - if (anchorFoldDuration_ != 0L) { - output.writeUInt64(23, anchorFoldDuration_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, method_); - } - if (msgId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, msgId_); - } - if (roomId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, roomId_); - } - if (createTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, createTime_); - } - if (monitor_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, monitor_); - } - if (isShowMsg_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, isShowMsg_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, describe_); - } - if (foldType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(9, foldType_); - } - if (anchorFoldType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(10, anchorFoldType_); - } - if (priorityScore_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(11, priorityScore_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, logId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterK_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, msgProcessFilterK_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterV_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, msgProcessFilterV_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(15, getUser()); - } - if (anchorFoldTypeV2_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(17, anchorFoldTypeV2_); - } - if (processAtSeiTimeMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(18, processAtSeiTimeMs_); - } - if (randomDispatchMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(19, randomDispatchMs_); - } - if (isDispatch_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(20, isDispatch_); - } - if (channelId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(21, channelId_); - } - if (diffSei2AbsSecond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(22, diffSei2AbsSecond_); - } - if (anchorFoldDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(23, anchorFoldDuration_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common) obj; - - if (!getMethod() - .equals(other.getMethod())) return false; - if (getMsgId() - != other.getMsgId()) return false; - if (getRoomId() - != other.getRoomId()) return false; - if (getCreateTime() - != other.getCreateTime()) return false; - if (getMonitor() - != other.getMonitor()) return false; - if (getIsShowMsg() - != other.getIsShowMsg()) return false; - if (!getDescribe() - .equals(other.getDescribe())) return false; - if (getFoldType() - != other.getFoldType()) return false; - if (getAnchorFoldType() - != other.getAnchorFoldType()) return false; - if (getPriorityScore() - != other.getPriorityScore()) return false; - if (!getLogId() - .equals(other.getLogId())) return false; - if (!getMsgProcessFilterK() - .equals(other.getMsgProcessFilterK())) return false; - if (!getMsgProcessFilterV() - .equals(other.getMsgProcessFilterV())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getAnchorFoldTypeV2() - != other.getAnchorFoldTypeV2()) return false; - if (getProcessAtSeiTimeMs() - != other.getProcessAtSeiTimeMs()) return false; - if (getRandomDispatchMs() - != other.getRandomDispatchMs()) return false; - if (getIsDispatch() - != other.getIsDispatch()) return false; - if (getChannelId() - != other.getChannelId()) return false; - if (getDiffSei2AbsSecond() - != other.getDiffSei2AbsSecond()) return false; - if (getAnchorFoldDuration() - != other.getAnchorFoldDuration()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + METHOD_FIELD_NUMBER; - hash = (53 * hash) + getMethod().hashCode(); - hash = (37 * hash) + MSGID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMsgId()); - hash = (37 * hash) + ROOMID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRoomId()); - hash = (37 * hash) + CREATETIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getCreateTime()); - hash = (37 * hash) + MONITOR_FIELD_NUMBER; - hash = (53 * hash) + getMonitor(); - hash = (37 * hash) + ISSHOWMSG_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsShowMsg()); - hash = (37 * hash) + DESCRIBE_FIELD_NUMBER; - hash = (53 * hash) + getDescribe().hashCode(); - hash = (37 * hash) + FOLDTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFoldType()); - hash = (37 * hash) + ANCHORFOLDTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAnchorFoldType()); - hash = (37 * hash) + PRIORITYSCORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPriorityScore()); - hash = (37 * hash) + LOGID_FIELD_NUMBER; - hash = (53 * hash) + getLogId().hashCode(); - hash = (37 * hash) + MSGPROCESSFILTERK_FIELD_NUMBER; - hash = (53 * hash) + getMsgProcessFilterK().hashCode(); - hash = (37 * hash) + MSGPROCESSFILTERV_FIELD_NUMBER; - hash = (53 * hash) + getMsgProcessFilterV().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + ANCHORFOLDTYPEV2_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAnchorFoldTypeV2()); - hash = (37 * hash) + PROCESSATSEITIMEMS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getProcessAtSeiTimeMs()); - hash = (37 * hash) + RANDOMDISPATCHMS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRandomDispatchMs()); - hash = (37 * hash) + ISDISPATCH_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsDispatch()); - hash = (37 * hash) + CHANNELID_FIELD_NUMBER; - hash = (53 * hash) + getChannelId(); - hash = (37 * hash) + DIFFSEI2ABSSECOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getDiffSei2AbsSecond()); - hash = (37 * hash) + ANCHORFOLDDURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAnchorFoldDuration()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code Common} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Common) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - method_ = ""; - msgId_ = 0L; - roomId_ = 0L; - createTime_ = 0L; - monitor_ = 0; - isShowMsg_ = false; - describe_ = ""; - foldType_ = 0L; - anchorFoldType_ = 0L; - priorityScore_ = 0L; - logId_ = ""; - msgProcessFilterK_ = ""; - msgProcessFilterV_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - anchorFoldTypeV2_ = 0L; - processAtSeiTimeMs_ = 0L; - randomDispatchMs_ = 0L; - isDispatch_ = false; - channelId_ = 0; - diffSei2AbsSecond_ = 0L; - anchorFoldDuration_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.method_ = method_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.msgId_ = msgId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.roomId_ = roomId_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.createTime_ = createTime_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.monitor_ = monitor_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.isShowMsg_ = isShowMsg_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.describe_ = describe_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.foldType_ = foldType_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.anchorFoldType_ = anchorFoldType_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.priorityScore_ = priorityScore_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.logId_ = logId_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.msgProcessFilterK_ = msgProcessFilterK_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.msgProcessFilterV_ = msgProcessFilterV_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.anchorFoldTypeV2_ = anchorFoldTypeV2_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.processAtSeiTimeMs_ = processAtSeiTimeMs_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.randomDispatchMs_ = randomDispatchMs_; - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.isDispatch_ = isDispatch_; - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.channelId_ = channelId_; - } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.diffSei2AbsSecond_ = diffSei2AbsSecond_; - } - if (((from_bitField0_ & 0x00100000) != 0)) { - result.anchorFoldDuration_ = anchorFoldDuration_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) return this; - if (!other.getMethod().isEmpty()) { - method_ = other.method_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getMsgId() != 0L) { - setMsgId(other.getMsgId()); - } - if (other.getRoomId() != 0L) { - setRoomId(other.getRoomId()); - } - if (other.getCreateTime() != 0L) { - setCreateTime(other.getCreateTime()); - } - if (other.getMonitor() != 0) { - setMonitor(other.getMonitor()); - } - if (other.getIsShowMsg() != false) { - setIsShowMsg(other.getIsShowMsg()); - } - if (!other.getDescribe().isEmpty()) { - describe_ = other.describe_; - bitField0_ |= 0x00000040; - onChanged(); - } - if (other.getFoldType() != 0L) { - setFoldType(other.getFoldType()); - } - if (other.getAnchorFoldType() != 0L) { - setAnchorFoldType(other.getAnchorFoldType()); - } - if (other.getPriorityScore() != 0L) { - setPriorityScore(other.getPriorityScore()); - } - if (!other.getLogId().isEmpty()) { - logId_ = other.logId_; - bitField0_ |= 0x00000400; - onChanged(); - } - if (!other.getMsgProcessFilterK().isEmpty()) { - msgProcessFilterK_ = other.msgProcessFilterK_; - bitField0_ |= 0x00000800; - onChanged(); - } - if (!other.getMsgProcessFilterV().isEmpty()) { - msgProcessFilterV_ = other.msgProcessFilterV_; - bitField0_ |= 0x00001000; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getAnchorFoldTypeV2() != 0L) { - setAnchorFoldTypeV2(other.getAnchorFoldTypeV2()); - } - if (other.getProcessAtSeiTimeMs() != 0L) { - setProcessAtSeiTimeMs(other.getProcessAtSeiTimeMs()); - } - if (other.getRandomDispatchMs() != 0L) { - setRandomDispatchMs(other.getRandomDispatchMs()); - } - if (other.getIsDispatch() != false) { - setIsDispatch(other.getIsDispatch()); - } - if (other.getChannelId() != 0) { - setChannelId(other.getChannelId()); - } - if (other.getDiffSei2AbsSecond() != 0L) { - setDiffSei2AbsSecond(other.getDiffSei2AbsSecond()); - } - if (other.getAnchorFoldDuration() != 0L) { - setAnchorFoldDuration(other.getAnchorFoldDuration()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - method_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - msgId_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - roomId_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - createTime_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - monitor_ = input.readUInt32(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - isShowMsg_ = input.readBool(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - describe_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 72: { - foldType_ = input.readUInt64(); - bitField0_ |= 0x00000080; - break; - } // case 72 - case 80: { - anchorFoldType_ = input.readUInt64(); - bitField0_ |= 0x00000100; - break; - } // case 80 - case 88: { - priorityScore_ = input.readUInt64(); - bitField0_ |= 0x00000200; - break; - } // case 88 - case 98: { - logId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000400; - break; - } // case 98 - case 106: { - msgProcessFilterK_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000800; - break; - } // case 106 - case 114: { - msgProcessFilterV_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00001000; - break; - } // case 114 - case 122: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00002000; - break; - } // case 122 - case 136: { - anchorFoldTypeV2_ = input.readUInt64(); - bitField0_ |= 0x00004000; - break; - } // case 136 - case 144: { - processAtSeiTimeMs_ = input.readUInt64(); - bitField0_ |= 0x00008000; - break; - } // case 144 - case 152: { - randomDispatchMs_ = input.readUInt64(); - bitField0_ |= 0x00010000; - break; - } // case 152 - case 160: { - isDispatch_ = input.readBool(); - bitField0_ |= 0x00020000; - break; - } // case 160 - case 168: { - channelId_ = input.readUInt32(); - bitField0_ |= 0x00040000; - break; - } // case 168 - case 176: { - diffSei2AbsSecond_ = input.readUInt64(); - bitField0_ |= 0x00080000; - break; - } // case 176 - case 184: { - anchorFoldDuration_ = input.readUInt64(); - bitField0_ |= 0x00100000; - break; - } // case 184 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object method_ = ""; - /** - * string method = 1; - * @return The method. - */ - public java.lang.String getMethod() { - java.lang.Object ref = method_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - method_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string method = 1; - * @return The bytes for method. - */ - public com.google.protobuf.ByteString - getMethodBytes() { - java.lang.Object ref = method_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - method_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string method = 1; - * @param value The method to set. - * @return This builder for chaining. - */ - public Builder setMethod( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - method_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string method = 1; - * @return This builder for chaining. - */ - public Builder clearMethod() { - method_ = getDefaultInstance().getMethod(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string method = 1; - * @param value The bytes for method to set. - * @return This builder for chaining. - */ - public Builder setMethodBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - method_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private long msgId_ ; - /** - * uint64 msgId = 2; - * @return The msgId. - */ - @java.lang.Override - public long getMsgId() { - return msgId_; - } - /** - * uint64 msgId = 2; - * @param value The msgId to set. - * @return This builder for chaining. - */ - public Builder setMsgId(long value) { - - msgId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 msgId = 2; - * @return This builder for chaining. - */ - public Builder clearMsgId() { - bitField0_ = (bitField0_ & ~0x00000002); - msgId_ = 0L; - onChanged(); - return this; - } - - private long roomId_ ; - /** - * uint64 roomId = 3; - * @return The roomId. - */ - @java.lang.Override - public long getRoomId() { - return roomId_; - } - /** - * uint64 roomId = 3; - * @param value The roomId to set. - * @return This builder for chaining. - */ - public Builder setRoomId(long value) { - - roomId_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 roomId = 3; - * @return This builder for chaining. - */ - public Builder clearRoomId() { - bitField0_ = (bitField0_ & ~0x00000004); - roomId_ = 0L; - onChanged(); - return this; - } - - private long createTime_ ; - /** - * uint64 createTime = 4; - * @return The createTime. - */ - @java.lang.Override - public long getCreateTime() { - return createTime_; - } - /** - * uint64 createTime = 4; - * @param value The createTime to set. - * @return This builder for chaining. - */ - public Builder setCreateTime(long value) { - - createTime_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 createTime = 4; - * @return This builder for chaining. - */ - public Builder clearCreateTime() { - bitField0_ = (bitField0_ & ~0x00000008); - createTime_ = 0L; - onChanged(); - return this; - } - - private int monitor_ ; - /** - * uint32 monitor = 5; - * @return The monitor. - */ - @java.lang.Override - public int getMonitor() { - return monitor_; - } - /** - * uint32 monitor = 5; - * @param value The monitor to set. - * @return This builder for chaining. - */ - public Builder setMonitor(int value) { - - monitor_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint32 monitor = 5; - * @return This builder for chaining. - */ - public Builder clearMonitor() { - bitField0_ = (bitField0_ & ~0x00000010); - monitor_ = 0; - onChanged(); - return this; - } - - private boolean isShowMsg_ ; - /** - * bool isShowMsg = 6; - * @return The isShowMsg. - */ - @java.lang.Override - public boolean getIsShowMsg() { - return isShowMsg_; - } - /** - * bool isShowMsg = 6; - * @param value The isShowMsg to set. - * @return This builder for chaining. - */ - public Builder setIsShowMsg(boolean value) { - - isShowMsg_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * bool isShowMsg = 6; - * @return This builder for chaining. - */ - public Builder clearIsShowMsg() { - bitField0_ = (bitField0_ & ~0x00000020); - isShowMsg_ = false; - onChanged(); - return this; - } - - private java.lang.Object describe_ = ""; - /** - * string describe = 7; - * @return The describe. - */ - public java.lang.String getDescribe() { - java.lang.Object ref = describe_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - describe_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string describe = 7; - * @return The bytes for describe. - */ - public com.google.protobuf.ByteString - getDescribeBytes() { - java.lang.Object ref = describe_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - describe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string describe = 7; - * @param value The describe to set. - * @return This builder for chaining. - */ - public Builder setDescribe( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - describe_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string describe = 7; - * @return This builder for chaining. - */ - public Builder clearDescribe() { - describe_ = getDefaultInstance().getDescribe(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string describe = 7; - * @param value The bytes for describe to set. - * @return This builder for chaining. - */ - public Builder setDescribeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - describe_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - - private long foldType_ ; - /** - *
-       * DisplayText displayText = 8;
-       * 
- * - * uint64 foldType = 9; - * @return The foldType. - */ - @java.lang.Override - public long getFoldType() { - return foldType_; - } - /** - *
-       * DisplayText displayText = 8;
-       * 
- * - * uint64 foldType = 9; - * @param value The foldType to set. - * @return This builder for chaining. - */ - public Builder setFoldType(long value) { - - foldType_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-       * DisplayText displayText = 8;
-       * 
- * - * uint64 foldType = 9; - * @return This builder for chaining. - */ - public Builder clearFoldType() { - bitField0_ = (bitField0_ & ~0x00000080); - foldType_ = 0L; - onChanged(); - return this; - } - - private long anchorFoldType_ ; - /** - * uint64 anchorFoldType = 10; - * @return The anchorFoldType. - */ - @java.lang.Override - public long getAnchorFoldType() { - return anchorFoldType_; - } - /** - * uint64 anchorFoldType = 10; - * @param value The anchorFoldType to set. - * @return This builder for chaining. - */ - public Builder setAnchorFoldType(long value) { - - anchorFoldType_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint64 anchorFoldType = 10; - * @return This builder for chaining. - */ - public Builder clearAnchorFoldType() { - bitField0_ = (bitField0_ & ~0x00000100); - anchorFoldType_ = 0L; - onChanged(); - return this; - } - - private long priorityScore_ ; - /** - * uint64 priorityScore = 11; - * @return The priorityScore. - */ - @java.lang.Override - public long getPriorityScore() { - return priorityScore_; - } - /** - * uint64 priorityScore = 11; - * @param value The priorityScore to set. - * @return This builder for chaining. - */ - public Builder setPriorityScore(long value) { - - priorityScore_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * uint64 priorityScore = 11; - * @return This builder for chaining. - */ - public Builder clearPriorityScore() { - bitField0_ = (bitField0_ & ~0x00000200); - priorityScore_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object logId_ = ""; - /** - * string logId = 12; - * @return The logId. - */ - public java.lang.String getLogId() { - java.lang.Object ref = logId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - logId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string logId = 12; - * @return The bytes for logId. - */ - public com.google.protobuf.ByteString - getLogIdBytes() { - java.lang.Object ref = logId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - logId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string logId = 12; - * @param value The logId to set. - * @return This builder for chaining. - */ - public Builder setLogId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - logId_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * string logId = 12; - * @return This builder for chaining. - */ - public Builder clearLogId() { - logId_ = getDefaultInstance().getLogId(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - return this; - } - /** - * string logId = 12; - * @param value The bytes for logId to set. - * @return This builder for chaining. - */ - public Builder setLogIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - logId_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - - private java.lang.Object msgProcessFilterK_ = ""; - /** - * string msgProcessFilterK = 13; - * @return The msgProcessFilterK. - */ - public java.lang.String getMsgProcessFilterK() { - java.lang.Object ref = msgProcessFilterK_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msgProcessFilterK_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msgProcessFilterK = 13; - * @return The bytes for msgProcessFilterK. - */ - public com.google.protobuf.ByteString - getMsgProcessFilterKBytes() { - java.lang.Object ref = msgProcessFilterK_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msgProcessFilterK_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msgProcessFilterK = 13; - * @param value The msgProcessFilterK to set. - * @return This builder for chaining. - */ - public Builder setMsgProcessFilterK( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msgProcessFilterK_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * string msgProcessFilterK = 13; - * @return This builder for chaining. - */ - public Builder clearMsgProcessFilterK() { - msgProcessFilterK_ = getDefaultInstance().getMsgProcessFilterK(); - bitField0_ = (bitField0_ & ~0x00000800); - onChanged(); - return this; - } - /** - * string msgProcessFilterK = 13; - * @param value The bytes for msgProcessFilterK to set. - * @return This builder for chaining. - */ - public Builder setMsgProcessFilterKBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msgProcessFilterK_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - - private java.lang.Object msgProcessFilterV_ = ""; - /** - * string msgProcessFilterV = 14; - * @return The msgProcessFilterV. - */ - public java.lang.String getMsgProcessFilterV() { - java.lang.Object ref = msgProcessFilterV_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msgProcessFilterV_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msgProcessFilterV = 14; - * @return The bytes for msgProcessFilterV. - */ - public com.google.protobuf.ByteString - getMsgProcessFilterVBytes() { - java.lang.Object ref = msgProcessFilterV_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msgProcessFilterV_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msgProcessFilterV = 14; - * @param value The msgProcessFilterV to set. - * @return This builder for chaining. - */ - public Builder setMsgProcessFilterV( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msgProcessFilterV_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * string msgProcessFilterV = 14; - * @return This builder for chaining. - */ - public Builder clearMsgProcessFilterV() { - msgProcessFilterV_ = getDefaultInstance().getMsgProcessFilterV(); - bitField0_ = (bitField0_ & ~0x00001000); - onChanged(); - return this; - } - /** - * string msgProcessFilterV = 14; - * @param value The bytes for msgProcessFilterV to set. - * @return This builder for chaining. - */ - public Builder setMsgProcessFilterVBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msgProcessFilterV_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 15; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00002000) != 0); - } - /** - * .User user = 15; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 15; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .User user = 15; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .User user = 15; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .User user = 15; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00002000); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00002000; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 15; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long anchorFoldTypeV2_ ; - /** - *
-       * Room room = 16;
-       * 
- * - * uint64 anchorFoldTypeV2 = 17; - * @return The anchorFoldTypeV2. - */ - @java.lang.Override - public long getAnchorFoldTypeV2() { - return anchorFoldTypeV2_; - } - /** - *
-       * Room room = 16;
-       * 
- * - * uint64 anchorFoldTypeV2 = 17; - * @param value The anchorFoldTypeV2 to set. - * @return This builder for chaining. - */ - public Builder setAnchorFoldTypeV2(long value) { - - anchorFoldTypeV2_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - *
-       * Room room = 16;
-       * 
- * - * uint64 anchorFoldTypeV2 = 17; - * @return This builder for chaining. - */ - public Builder clearAnchorFoldTypeV2() { - bitField0_ = (bitField0_ & ~0x00004000); - anchorFoldTypeV2_ = 0L; - onChanged(); - return this; - } - - private long processAtSeiTimeMs_ ; - /** - * uint64 processAtSeiTimeMs = 18; - * @return The processAtSeiTimeMs. - */ - @java.lang.Override - public long getProcessAtSeiTimeMs() { - return processAtSeiTimeMs_; - } - /** - * uint64 processAtSeiTimeMs = 18; - * @param value The processAtSeiTimeMs to set. - * @return This builder for chaining. - */ - public Builder setProcessAtSeiTimeMs(long value) { - - processAtSeiTimeMs_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * uint64 processAtSeiTimeMs = 18; - * @return This builder for chaining. - */ - public Builder clearProcessAtSeiTimeMs() { - bitField0_ = (bitField0_ & ~0x00008000); - processAtSeiTimeMs_ = 0L; - onChanged(); - return this; - } - - private long randomDispatchMs_ ; - /** - * uint64 randomDispatchMs = 19; - * @return The randomDispatchMs. - */ - @java.lang.Override - public long getRandomDispatchMs() { - return randomDispatchMs_; - } - /** - * uint64 randomDispatchMs = 19; - * @param value The randomDispatchMs to set. - * @return This builder for chaining. - */ - public Builder setRandomDispatchMs(long value) { - - randomDispatchMs_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * uint64 randomDispatchMs = 19; - * @return This builder for chaining. - */ - public Builder clearRandomDispatchMs() { - bitField0_ = (bitField0_ & ~0x00010000); - randomDispatchMs_ = 0L; - onChanged(); - return this; - } - - private boolean isDispatch_ ; - /** - * bool isDispatch = 20; - * @return The isDispatch. - */ - @java.lang.Override - public boolean getIsDispatch() { - return isDispatch_; - } - /** - * bool isDispatch = 20; - * @param value The isDispatch to set. - * @return This builder for chaining. - */ - public Builder setIsDispatch(boolean value) { - - isDispatch_ = value; - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * bool isDispatch = 20; - * @return This builder for chaining. - */ - public Builder clearIsDispatch() { - bitField0_ = (bitField0_ & ~0x00020000); - isDispatch_ = false; - onChanged(); - return this; - } - - private int channelId_ ; - /** - * uint32 channelId = 21; - * @return The channelId. - */ - @java.lang.Override - public int getChannelId() { - return channelId_; - } - /** - * uint32 channelId = 21; - * @param value The channelId to set. - * @return This builder for chaining. - */ - public Builder setChannelId(int value) { - - channelId_ = value; - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * uint32 channelId = 21; - * @return This builder for chaining. - */ - public Builder clearChannelId() { - bitField0_ = (bitField0_ & ~0x00040000); - channelId_ = 0; - onChanged(); - return this; - } - - private long diffSei2AbsSecond_ ; - /** - * uint64 diffSei2absSecond = 22; - * @return The diffSei2absSecond. - */ - @java.lang.Override - public long getDiffSei2AbsSecond() { - return diffSei2AbsSecond_; - } - /** - * uint64 diffSei2absSecond = 22; - * @param value The diffSei2absSecond to set. - * @return This builder for chaining. - */ - public Builder setDiffSei2AbsSecond(long value) { - - diffSei2AbsSecond_ = value; - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * uint64 diffSei2absSecond = 22; - * @return This builder for chaining. - */ - public Builder clearDiffSei2AbsSecond() { - bitField0_ = (bitField0_ & ~0x00080000); - diffSei2AbsSecond_ = 0L; - onChanged(); - return this; - } - - private long anchorFoldDuration_ ; - /** - * uint64 anchorFoldDuration = 23; - * @return The anchorFoldDuration. - */ - @java.lang.Override - public long getAnchorFoldDuration() { - return anchorFoldDuration_; - } - /** - * uint64 anchorFoldDuration = 23; - * @param value The anchorFoldDuration to set. - * @return This builder for chaining. - */ - public Builder setAnchorFoldDuration(long value) { - - anchorFoldDuration_ = value; - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * uint64 anchorFoldDuration = 23; - * @return This builder for chaining. - */ - public Builder clearAnchorFoldDuration() { - bitField0_ = (bitField0_ & ~0x00100000); - anchorFoldDuration_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:Common) - } - - // @@protoc_insertion_point(class_scope:Common) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Common parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Common_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Common_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\014Common.proto\032\nUser.proto\"\312\003\n\006Common\022\016\n" + - "\006method\030\001 \001(\t\022\r\n\005msgId\030\002 \001(\004\022\016\n\006roomId\030\003" + - " \001(\004\022\022\n\ncreateTime\030\004 \001(\004\022\017\n\007monitor\030\005 \001(" + - "\r\022\021\n\tisShowMsg\030\006 \001(\010\022\020\n\010describe\030\007 \001(\t\022\020" + - "\n\010foldType\030\t \001(\004\022\026\n\016anchorFoldType\030\n \001(\004" + - "\022\025\n\rpriorityScore\030\013 \001(\004\022\r\n\005logId\030\014 \001(\t\022\031" + - "\n\021msgProcessFilterK\030\r \001(\t\022\031\n\021msgProcessF" + - "ilterV\030\016 \001(\t\022\023\n\004user\030\017 \001(\0132\005.User\022\030\n\020anc" + - "horFoldTypeV2\030\021 \001(\004\022\032\n\022processAtSeiTimeM" + - "s\030\022 \001(\004\022\030\n\020randomDispatchMs\030\023 \001(\004\022\022\n\nisD" + - "ispatch\030\024 \001(\010\022\021\n\tchannelId\030\025 \001(\r\022\031\n\021diff" + - "Sei2absSecond\030\026 \001(\004\022\032\n\022anchorFoldDuratio" + - "n\030\027 \001(\004B8\n6tech.ordinaryroad.live.chat.c" + - "lient.douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - }); - internal_static_Common_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_Common_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Common_descriptor, - new java.lang.String[] { "Method", "MsgId", "RoomId", "CreateTime", "Monitor", "IsShowMsg", "Describe", "FoldType", "AnchorFoldType", "PriorityScore", "LogId", "MsgProcessFilterK", "MsgProcessFilterV", "User", "AnchorFoldTypeV2", "ProcessAtSeiTimeMs", "RandomDispatchMs", "IsDispatch", "ChannelId", "DiffSei2AbsSecond", "AnchorFoldDuration", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java deleted file mode 100644 index 20a7381c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java +++ /dev/null @@ -1,767 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: DoubleLikeDetail.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class DoubleLikeDetailOuterClass { - private DoubleLikeDetailOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface DoubleLikeDetailOrBuilder extends - // @@protoc_insertion_point(interface_extends:DoubleLikeDetail) - com.google.protobuf.MessageOrBuilder { - - /** - * bool doubleFlag = 1; - * @return The doubleFlag. - */ - boolean getDoubleFlag(); - - /** - * uint32 seqId = 2; - * @return The seqId. - */ - int getSeqId(); - - /** - * uint32 renewalsNum = 3; - * @return The renewalsNum. - */ - int getRenewalsNum(); - - /** - * uint32 triggersNum = 4; - * @return The triggersNum. - */ - int getTriggersNum(); - } - /** - * Protobuf type {@code DoubleLikeDetail} - */ - public static final class DoubleLikeDetail extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:DoubleLikeDetail) - DoubleLikeDetailOrBuilder { - private static final long serialVersionUID = 0L; - // Use DoubleLikeDetail.newBuilder() to construct. - private DoubleLikeDetail(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private DoubleLikeDetail() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new DoubleLikeDetail(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder.class); - } - - public static final int DOUBLEFLAG_FIELD_NUMBER = 1; - private boolean doubleFlag_ = false; - /** - * bool doubleFlag = 1; - * @return The doubleFlag. - */ - @java.lang.Override - public boolean getDoubleFlag() { - return doubleFlag_; - } - - public static final int SEQID_FIELD_NUMBER = 2; - private int seqId_ = 0; - /** - * uint32 seqId = 2; - * @return The seqId. - */ - @java.lang.Override - public int getSeqId() { - return seqId_; - } - - public static final int RENEWALSNUM_FIELD_NUMBER = 3; - private int renewalsNum_ = 0; - /** - * uint32 renewalsNum = 3; - * @return The renewalsNum. - */ - @java.lang.Override - public int getRenewalsNum() { - return renewalsNum_; - } - - public static final int TRIGGERSNUM_FIELD_NUMBER = 4; - private int triggersNum_ = 0; - /** - * uint32 triggersNum = 4; - * @return The triggersNum. - */ - @java.lang.Override - public int getTriggersNum() { - return triggersNum_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (doubleFlag_ != false) { - output.writeBool(1, doubleFlag_); - } - if (seqId_ != 0) { - output.writeUInt32(2, seqId_); - } - if (renewalsNum_ != 0) { - output.writeUInt32(3, renewalsNum_); - } - if (triggersNum_ != 0) { - output.writeUInt32(4, triggersNum_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (doubleFlag_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, doubleFlag_); - } - if (seqId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, seqId_); - } - if (renewalsNum_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, renewalsNum_); - } - if (triggersNum_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, triggersNum_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail) obj; - - if (getDoubleFlag() - != other.getDoubleFlag()) return false; - if (getSeqId() - != other.getSeqId()) return false; - if (getRenewalsNum() - != other.getRenewalsNum()) return false; - if (getTriggersNum() - != other.getTriggersNum()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + DOUBLEFLAG_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getDoubleFlag()); - hash = (37 * hash) + SEQID_FIELD_NUMBER; - hash = (53 * hash) + getSeqId(); - hash = (37 * hash) + RENEWALSNUM_FIELD_NUMBER; - hash = (53 * hash) + getRenewalsNum(); - hash = (37 * hash) + TRIGGERSNUM_FIELD_NUMBER; - hash = (53 * hash) + getTriggersNum(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code DoubleLikeDetail} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:DoubleLikeDetail) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - doubleFlag_ = false; - seqId_ = 0; - renewalsNum_ = 0; - triggersNum_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.doubleFlag_ = doubleFlag_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.seqId_ = seqId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.renewalsNum_ = renewalsNum_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.triggersNum_ = triggersNum_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance()) return this; - if (other.getDoubleFlag() != false) { - setDoubleFlag(other.getDoubleFlag()); - } - if (other.getSeqId() != 0) { - setSeqId(other.getSeqId()); - } - if (other.getRenewalsNum() != 0) { - setRenewalsNum(other.getRenewalsNum()); - } - if (other.getTriggersNum() != 0) { - setTriggersNum(other.getTriggersNum()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - doubleFlag_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - seqId_ = input.readUInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - renewalsNum_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - triggersNum_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private boolean doubleFlag_ ; - /** - * bool doubleFlag = 1; - * @return The doubleFlag. - */ - @java.lang.Override - public boolean getDoubleFlag() { - return doubleFlag_; - } - /** - * bool doubleFlag = 1; - * @param value The doubleFlag to set. - * @return This builder for chaining. - */ - public Builder setDoubleFlag(boolean value) { - - doubleFlag_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool doubleFlag = 1; - * @return This builder for chaining. - */ - public Builder clearDoubleFlag() { - bitField0_ = (bitField0_ & ~0x00000001); - doubleFlag_ = false; - onChanged(); - return this; - } - - private int seqId_ ; - /** - * uint32 seqId = 2; - * @return The seqId. - */ - @java.lang.Override - public int getSeqId() { - return seqId_; - } - /** - * uint32 seqId = 2; - * @param value The seqId to set. - * @return This builder for chaining. - */ - public Builder setSeqId(int value) { - - seqId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint32 seqId = 2; - * @return This builder for chaining. - */ - public Builder clearSeqId() { - bitField0_ = (bitField0_ & ~0x00000002); - seqId_ = 0; - onChanged(); - return this; - } - - private int renewalsNum_ ; - /** - * uint32 renewalsNum = 3; - * @return The renewalsNum. - */ - @java.lang.Override - public int getRenewalsNum() { - return renewalsNum_; - } - /** - * uint32 renewalsNum = 3; - * @param value The renewalsNum to set. - * @return This builder for chaining. - */ - public Builder setRenewalsNum(int value) { - - renewalsNum_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint32 renewalsNum = 3; - * @return This builder for chaining. - */ - public Builder clearRenewalsNum() { - bitField0_ = (bitField0_ & ~0x00000004); - renewalsNum_ = 0; - onChanged(); - return this; - } - - private int triggersNum_ ; - /** - * uint32 triggersNum = 4; - * @return The triggersNum. - */ - @java.lang.Override - public int getTriggersNum() { - return triggersNum_; - } - /** - * uint32 triggersNum = 4; - * @param value The triggersNum to set. - * @return This builder for chaining. - */ - public Builder setTriggersNum(int value) { - - triggersNum_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 triggersNum = 4; - * @return This builder for chaining. - */ - public Builder clearTriggersNum() { - bitField0_ = (bitField0_ & ~0x00000008); - triggersNum_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:DoubleLikeDetail) - } - - // @@protoc_insertion_point(class_scope:DoubleLikeDetail) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public DoubleLikeDetail parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_DoubleLikeDetail_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_DoubleLikeDetail_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026DoubleLikeDetail.proto\"_\n\020DoubleLikeDe" + - "tail\022\022\n\ndoubleFlag\030\001 \001(\010\022\r\n\005seqId\030\002 \001(\r\022" + - "\023\n\013renewalsNum\030\003 \001(\r\022\023\n\013triggersNum\030\004 \001(" + - "\rB8\n6tech.ordinaryroad.live.chat.client." + - "douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_DoubleLikeDetail_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_DoubleLikeDetail_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_DoubleLikeDetail_descriptor, - new java.lang.String[] { "DoubleFlag", "SeqId", "RenewalsNum", "TriggersNum", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java deleted file mode 100644 index 79765e30..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java +++ /dev/null @@ -1,816 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GiftIMPriority.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class GiftIMPriorityOuterClass { - private GiftIMPriorityOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface GiftIMPriorityOrBuilder extends - // @@protoc_insertion_point(interface_extends:GiftIMPriority) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated uint64 queue_sizes_list = 1; - * @return A list containing the queueSizesList. - */ - java.util.List getQueueSizesListList(); - /** - * repeated uint64 queue_sizes_list = 1; - * @return The count of queueSizesList. - */ - int getQueueSizesListCount(); - /** - * repeated uint64 queue_sizes_list = 1; - * @param index The index of the element to return. - * @return The queueSizesList at the given index. - */ - long getQueueSizesList(int index); - - /** - * uint64 self_queue_priority = 2; - * @return The selfQueuePriority. - */ - long getSelfQueuePriority(); - - /** - * uint64 priority = 3; - * @return The priority. - */ - long getPriority(); - } - /** - * Protobuf type {@code GiftIMPriority} - */ - public static final class GiftIMPriority extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GiftIMPriority) - GiftIMPriorityOrBuilder { - private static final long serialVersionUID = 0L; - // Use GiftIMPriority.newBuilder() to construct. - private GiftIMPriority(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GiftIMPriority() { - queueSizesList_ = emptyLongList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GiftIMPriority(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder.class); - } - - public static final int QUEUE_SIZES_LIST_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList queueSizesList_; - /** - * repeated uint64 queue_sizes_list = 1; - * @return A list containing the queueSizesList. - */ - @java.lang.Override - public java.util.List - getQueueSizesListList() { - return queueSizesList_; - } - /** - * repeated uint64 queue_sizes_list = 1; - * @return The count of queueSizesList. - */ - public int getQueueSizesListCount() { - return queueSizesList_.size(); - } - /** - * repeated uint64 queue_sizes_list = 1; - * @param index The index of the element to return. - * @return The queueSizesList at the given index. - */ - public long getQueueSizesList(int index) { - return queueSizesList_.getLong(index); - } - private int queueSizesListMemoizedSerializedSize = -1; - - public static final int SELF_QUEUE_PRIORITY_FIELD_NUMBER = 2; - private long selfQueuePriority_ = 0L; - /** - * uint64 self_queue_priority = 2; - * @return The selfQueuePriority. - */ - @java.lang.Override - public long getSelfQueuePriority() { - return selfQueuePriority_; - } - - public static final int PRIORITY_FIELD_NUMBER = 3; - private long priority_ = 0L; - /** - * uint64 priority = 3; - * @return The priority. - */ - @java.lang.Override - public long getPriority() { - return priority_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (getQueueSizesListList().size() > 0) { - output.writeUInt32NoTag(10); - output.writeUInt32NoTag(queueSizesListMemoizedSerializedSize); - } - for (int i = 0; i < queueSizesList_.size(); i++) { - output.writeUInt64NoTag(queueSizesList_.getLong(i)); - } - if (selfQueuePriority_ != 0L) { - output.writeUInt64(2, selfQueuePriority_); - } - if (priority_ != 0L) { - output.writeUInt64(3, priority_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < queueSizesList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeUInt64SizeNoTag(queueSizesList_.getLong(i)); - } - size += dataSize; - if (!getQueueSizesListList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - queueSizesListMemoizedSerializedSize = dataSize; - } - if (selfQueuePriority_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, selfQueuePriority_); - } - if (priority_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, priority_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority) obj; - - if (!getQueueSizesListList() - .equals(other.getQueueSizesListList())) return false; - if (getSelfQueuePriority() - != other.getSelfQueuePriority()) return false; - if (getPriority() - != other.getPriority()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getQueueSizesListCount() > 0) { - hash = (37 * hash) + QUEUE_SIZES_LIST_FIELD_NUMBER; - hash = (53 * hash) + getQueueSizesListList().hashCode(); - } - hash = (37 * hash) + SELF_QUEUE_PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSelfQueuePriority()); - hash = (37 * hash) + PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPriority()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GiftIMPriority} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:GiftIMPriority) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - queueSizesList_ = emptyLongList(); - selfQueuePriority_ = 0L; - priority_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result) { - if (((bitField0_ & 0x00000001) != 0)) { - queueSizesList_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.queueSizesList_ = queueSizesList_; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.selfQueuePriority_ = selfQueuePriority_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.priority_ = priority_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance()) return this; - if (!other.queueSizesList_.isEmpty()) { - if (queueSizesList_.isEmpty()) { - queueSizesList_ = other.queueSizesList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureQueueSizesListIsMutable(); - queueSizesList_.addAll(other.queueSizesList_); - } - onChanged(); - } - if (other.getSelfQueuePriority() != 0L) { - setSelfQueuePriority(other.getSelfQueuePriority()); - } - if (other.getPriority() != 0L) { - setPriority(other.getPriority()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - long v = input.readUInt64(); - ensureQueueSizesListIsMutable(); - queueSizesList_.addLong(v); - break; - } // case 8 - case 10: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureQueueSizesListIsMutable(); - while (input.getBytesUntilLimit() > 0) { - queueSizesList_.addLong(input.readUInt64()); - } - input.popLimit(limit); - break; - } // case 10 - case 16: { - selfQueuePriority_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - priority_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private com.google.protobuf.Internal.LongList queueSizesList_ = emptyLongList(); - private void ensureQueueSizesListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - queueSizesList_ = mutableCopy(queueSizesList_); - bitField0_ |= 0x00000001; - } - } - /** - * repeated uint64 queue_sizes_list = 1; - * @return A list containing the queueSizesList. - */ - public java.util.List - getQueueSizesListList() { - return ((bitField0_ & 0x00000001) != 0) ? - java.util.Collections.unmodifiableList(queueSizesList_) : queueSizesList_; - } - /** - * repeated uint64 queue_sizes_list = 1; - * @return The count of queueSizesList. - */ - public int getQueueSizesListCount() { - return queueSizesList_.size(); - } - /** - * repeated uint64 queue_sizes_list = 1; - * @param index The index of the element to return. - * @return The queueSizesList at the given index. - */ - public long getQueueSizesList(int index) { - return queueSizesList_.getLong(index); - } - /** - * repeated uint64 queue_sizes_list = 1; - * @param index The index to set the value at. - * @param value The queueSizesList to set. - * @return This builder for chaining. - */ - public Builder setQueueSizesList( - int index, long value) { - - ensureQueueSizesListIsMutable(); - queueSizesList_.setLong(index, value); - onChanged(); - return this; - } - /** - * repeated uint64 queue_sizes_list = 1; - * @param value The queueSizesList to add. - * @return This builder for chaining. - */ - public Builder addQueueSizesList(long value) { - - ensureQueueSizesListIsMutable(); - queueSizesList_.addLong(value); - onChanged(); - return this; - } - /** - * repeated uint64 queue_sizes_list = 1; - * @param values The queueSizesList to add. - * @return This builder for chaining. - */ - public Builder addAllQueueSizesList( - java.lang.Iterable values) { - ensureQueueSizesListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, queueSizesList_); - onChanged(); - return this; - } - /** - * repeated uint64 queue_sizes_list = 1; - * @return This builder for chaining. - */ - public Builder clearQueueSizesList() { - queueSizesList_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - private long selfQueuePriority_ ; - /** - * uint64 self_queue_priority = 2; - * @return The selfQueuePriority. - */ - @java.lang.Override - public long getSelfQueuePriority() { - return selfQueuePriority_; - } - /** - * uint64 self_queue_priority = 2; - * @param value The selfQueuePriority to set. - * @return This builder for chaining. - */ - public Builder setSelfQueuePriority(long value) { - - selfQueuePriority_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 self_queue_priority = 2; - * @return This builder for chaining. - */ - public Builder clearSelfQueuePriority() { - bitField0_ = (bitField0_ & ~0x00000002); - selfQueuePriority_ = 0L; - onChanged(); - return this; - } - - private long priority_ ; - /** - * uint64 priority = 3; - * @return The priority. - */ - @java.lang.Override - public long getPriority() { - return priority_; - } - /** - * uint64 priority = 3; - * @param value The priority to set. - * @return This builder for chaining. - */ - public Builder setPriority(long value) { - - priority_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 priority = 3; - * @return This builder for chaining. - */ - public Builder clearPriority() { - bitField0_ = (bitField0_ & ~0x00000004); - priority_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:GiftIMPriority) - } - - // @@protoc_insertion_point(class_scope:GiftIMPriority) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public GiftIMPriority parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GiftIMPriority_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GiftIMPriority_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024GiftIMPriority.proto\"Y\n\016GiftIMPriority" + - "\022\030\n\020queue_sizes_list\030\001 \003(\004\022\033\n\023self_queue" + - "_priority\030\002 \001(\004\022\020\n\010priority\030\003 \001(\004B8\n6tec" + - "h.ordinaryroad.live.chat.client.douyin.p" + - "rotobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_GiftIMPriority_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GiftIMPriority_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GiftIMPriority_descriptor, - new java.lang.String[] { "QueueSizesList", "SelfQueuePriority", "Priority", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java deleted file mode 100644 index e4e15b38..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java +++ /dev/null @@ -1,6440 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GiftStruct.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class GiftStructOuterClass { - private GiftStructOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface GiftStructOrBuilder extends - // @@protoc_insertion_point(interface_extends:GiftStruct) - com.google.protobuf.MessageOrBuilder { - - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - boolean hasImage(); - /** - * .Image image = 1; - * @return The image. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage(); - /** - * .Image image = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder(); - - /** - * string describe = 2; - * @return The describe. - */ - java.lang.String getDescribe(); - /** - * string describe = 2; - * @return The bytes for describe. - */ - com.google.protobuf.ByteString - getDescribeBytes(); - - /** - * bool notify = 3; - * @return The notify. - */ - boolean getNotify(); - - /** - * uint64 duration = 4; - * @return The duration. - */ - long getDuration(); - - /** - * uint64 id = 5; - * @return The id. - */ - long getId(); - - /** - *
-     * GiftStructFansClubInfo fansclubInfo = 6;
-     * 
- * - * bool for_linkmic = 7; - * @return The forLinkmic. - */ - boolean getForLinkmic(); - - /** - * bool doodle = 8; - * @return The doodle. - */ - boolean getDoodle(); - - /** - * bool for_fansclub = 9; - * @return The forFansclub. - */ - boolean getForFansclub(); - - /** - * bool combo = 10; - * @return The combo. - */ - boolean getCombo(); - - /** - * uint32 type = 11; - * @return The type. - */ - int getType(); - - /** - * uint32 diamond_count = 12; - * @return The diamondCount. - */ - int getDiamondCount(); - - /** - * bool is_displayed_on_panel = 13; - * @return The isDisplayedOnPanel. - */ - boolean getIsDisplayedOnPanel(); - - /** - * uint64 primary_effect_id = 14; - * @return The primaryEffectId. - */ - long getPrimaryEffectId(); - - /** - * .Image gift_label_icon = 15; - * @return Whether the giftLabelIcon field is set. - */ - boolean hasGiftLabelIcon(); - /** - * .Image gift_label_icon = 15; - * @return The giftLabelIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon(); - /** - * .Image gift_label_icon = 15; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder(); - - /** - * string name = 16; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 16; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); - - /** - * string region = 17; - * @return The region. - */ - java.lang.String getRegion(); - /** - * string region = 17; - * @return The bytes for region. - */ - com.google.protobuf.ByteString - getRegionBytes(); - - /** - * string manual = 18; - * @return The manual. - */ - java.lang.String getManual(); - /** - * string manual = 18; - * @return The bytes for manual. - */ - com.google.protobuf.ByteString - getManualBytes(); - - /** - * bool for_custom = 19; - * @return The forCustom. - */ - boolean getForCustom(); - - /** - * map<string, int64> specialEffectsMap = 20; - */ - int getSpecialEffectsMapCount(); - /** - * map<string, int64> specialEffectsMap = 20; - */ - boolean containsSpecialEffectsMap( - java.lang.String key); - /** - * Use {@link #getSpecialEffectsMapMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getSpecialEffectsMap(); - /** - * map<string, int64> specialEffectsMap = 20; - */ - java.util.Map - getSpecialEffectsMapMap(); - /** - * map<string, int64> specialEffectsMap = 20; - */ - long getSpecialEffectsMapOrDefault( - java.lang.String key, - long defaultValue); - /** - * map<string, int64> specialEffectsMap = 20; - */ - long getSpecialEffectsMapOrThrow( - java.lang.String key); - - /** - * .Image icon = 21; - * @return Whether the icon field is set. - */ - boolean hasIcon(); - /** - * .Image icon = 21; - * @return The icon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); - /** - * .Image icon = 21; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); - - /** - * uint32 action_type = 22; - * @return The actionType. - */ - int getActionType(); - - /** - * int32 watermelonSeeds = 23; - * @return The watermelonSeeds. - */ - int getWatermelonSeeds(); - - /** - * string goldEffect = 24; - * @return The goldEffect. - */ - java.lang.String getGoldEffect(); - /** - * string goldEffect = 24; - * @return The bytes for goldEffect. - */ - com.google.protobuf.ByteString - getGoldEffectBytes(); - - /** - *
-     * repeated LuckyMoneyGiftMeta subs = 25;
-     * 
- * - * int64 goldenBeans = 26; - * @return The goldenBeans. - */ - long getGoldenBeans(); - - /** - * int64 honorLevel = 27; - * @return The honorLevel. - */ - long getHonorLevel(); - - /** - * int32 itemType = 28; - * @return The itemType. - */ - int getItemType(); - - /** - * string schemeUrl = 29; - * @return The schemeUrl. - */ - java.lang.String getSchemeUrl(); - /** - * string schemeUrl = 29; - * @return The bytes for schemeUrl. - */ - com.google.protobuf.ByteString - getSchemeUrlBytes(); - - /** - *
-     * GiftPanelOperation giftOperation = 30;
-     * 
- * - * string eventName = 31; - * @return The eventName. - */ - java.lang.String getEventName(); - /** - *
-     * GiftPanelOperation giftOperation = 30;
-     * 
- * - * string eventName = 31; - * @return The bytes for eventName. - */ - com.google.protobuf.ByteString - getEventNameBytes(); - - /** - * int64 nobleLevel = 32; - * @return The nobleLevel. - */ - long getNobleLevel(); - - /** - * string guideUrl = 33; - * @return The guideUrl. - */ - java.lang.String getGuideUrl(); - /** - * string guideUrl = 33; - * @return The bytes for guideUrl. - */ - com.google.protobuf.ByteString - getGuideUrlBytes(); - - /** - * bool punishMedicine = 34; - * @return The punishMedicine. - */ - boolean getPunishMedicine(); - - /** - * bool forPortal = 35; - * @return The forPortal. - */ - boolean getForPortal(); - - /** - * string businessText = 36; - * @return The businessText. - */ - java.lang.String getBusinessText(); - /** - * string businessText = 36; - * @return The bytes for businessText. - */ - com.google.protobuf.ByteString - getBusinessTextBytes(); - - /** - * bool cnyGift = 37; - * @return The cnyGift. - */ - boolean getCnyGift(); - - /** - * int64 appId = 38; - * @return The appId. - */ - long getAppId(); - - /** - * int64 vipLevel = 39; - * @return The vipLevel. - */ - long getVipLevel(); - - /** - * bool isGray = 40; - * @return The isGray. - */ - boolean getIsGray(); - - /** - * string graySchemeUrl = 41; - * @return The graySchemeUrl. - */ - java.lang.String getGraySchemeUrl(); - /** - * string graySchemeUrl = 41; - * @return The bytes for graySchemeUrl. - */ - com.google.protobuf.ByteString - getGraySchemeUrlBytes(); - - /** - * int64 giftScene = 42; - * @return The giftScene. - */ - long getGiftScene(); - - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @return A list containing the triggerWords. - */ - java.util.List - getTriggerWordsList(); - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @return The count of triggerWords. - */ - int getTriggerWordsCount(); - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @param index The index of the element to return. - * @return The triggerWords at the given index. - */ - java.lang.String getTriggerWords(int index); - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @param index The index of the value to return. - * @return The bytes of the triggerWords at the given index. - */ - com.google.protobuf.ByteString - getTriggerWordsBytes(int index); - - /** - *
-     * repeated GiftBuffInfo giftBuffInfos = 45;
-     * 
- * - * bool forFirstRecharge = 46; - * @return The forFirstRecharge. - */ - boolean getForFirstRecharge(); - - /** - * .Image dynamicImgForSelected = 47; - * @return Whether the dynamicImgForSelected field is set. - */ - boolean hasDynamicImgForSelected(); - /** - * .Image dynamicImgForSelected = 47; - * @return The dynamicImgForSelected. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected(); - /** - * .Image dynamicImgForSelected = 47; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder(); - - /** - * int32 afterSendAction = 48; - * @return The afterSendAction. - */ - int getAfterSendAction(); - - /** - * int64 giftOfflineTime = 49; - * @return The giftOfflineTime. - */ - long getGiftOfflineTime(); - - /** - * string topBarText = 50; - * @return The topBarText. - */ - java.lang.String getTopBarText(); - /** - * string topBarText = 50; - * @return The bytes for topBarText. - */ - com.google.protobuf.ByteString - getTopBarTextBytes(); - - /** - * .Image topRightAvatar = 51; - * @return Whether the topRightAvatar field is set. - */ - boolean hasTopRightAvatar(); - /** - * .Image topRightAvatar = 51; - * @return The topRightAvatar. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar(); - /** - * .Image topRightAvatar = 51; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder(); - - /** - * string bannerSchemeUrl = 52; - * @return The bannerSchemeUrl. - */ - java.lang.String getBannerSchemeUrl(); - /** - * string bannerSchemeUrl = 52; - * @return The bytes for bannerSchemeUrl. - */ - com.google.protobuf.ByteString - getBannerSchemeUrlBytes(); - - /** - * bool isLocked = 53; - * @return The isLocked. - */ - boolean getIsLocked(); - - /** - * int64 reqExtraType = 54; - * @return The reqExtraType. - */ - long getReqExtraType(); - - /** - * repeated int64 assetIds = 55; - * @return A list containing the assetIds. - */ - java.util.List getAssetIdsList(); - /** - * repeated int64 assetIds = 55; - * @return The count of assetIds. - */ - int getAssetIdsCount(); - /** - * repeated int64 assetIds = 55; - * @param index The index of the element to return. - * @return The assetIds at the given index. - */ - long getAssetIds(int index); - - /** - *
-     * GiftPreviewInfo giftPreviewInfo = 56;
-     * GiftTip giftTip = 57;
-     * 
- * - * int32 needSweepLightCount = 58; - * @return The needSweepLightCount. - */ - int getNeedSweepLightCount(); - } - /** - * Protobuf type {@code GiftStruct} - */ - public static final class GiftStruct extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GiftStruct) - GiftStructOrBuilder { - private static final long serialVersionUID = 0L; - // Use GiftStruct.newBuilder() to construct. - private GiftStruct(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GiftStruct() { - describe_ = ""; - name_ = ""; - region_ = ""; - manual_ = ""; - goldEffect_ = ""; - schemeUrl_ = ""; - eventName_ = ""; - guideUrl_ = ""; - businessText_ = ""; - graySchemeUrl_ = ""; - triggerWords_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - topBarText_ = ""; - bannerSchemeUrl_ = ""; - assetIds_ = emptyLongList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GiftStruct(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 20: - return internalGetSpecialEffectsMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class); - } - - public static final int IMAGE_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - @java.lang.Override - public boolean hasImage() { - return image_ != null; - } - /** - * .Image image = 1; - * @return The image. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - /** - * .Image image = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - - public static final int DESCRIBE_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object describe_ = ""; - /** - * string describe = 2; - * @return The describe. - */ - @java.lang.Override - public java.lang.String getDescribe() { - java.lang.Object ref = describe_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - describe_ = s; - return s; - } - } - /** - * string describe = 2; - * @return The bytes for describe. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDescribeBytes() { - java.lang.Object ref = describe_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - describe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int NOTIFY_FIELD_NUMBER = 3; - private boolean notify_ = false; - /** - * bool notify = 3; - * @return The notify. - */ - @java.lang.Override - public boolean getNotify() { - return notify_; - } - - public static final int DURATION_FIELD_NUMBER = 4; - private long duration_ = 0L; - /** - * uint64 duration = 4; - * @return The duration. - */ - @java.lang.Override - public long getDuration() { - return duration_; - } - - public static final int ID_FIELD_NUMBER = 5; - private long id_ = 0L; - /** - * uint64 id = 5; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - - public static final int FOR_LINKMIC_FIELD_NUMBER = 7; - private boolean forLinkmic_ = false; - /** - *
-     * GiftStructFansClubInfo fansclubInfo = 6;
-     * 
- * - * bool for_linkmic = 7; - * @return The forLinkmic. - */ - @java.lang.Override - public boolean getForLinkmic() { - return forLinkmic_; - } - - public static final int DOODLE_FIELD_NUMBER = 8; - private boolean doodle_ = false; - /** - * bool doodle = 8; - * @return The doodle. - */ - @java.lang.Override - public boolean getDoodle() { - return doodle_; - } - - public static final int FOR_FANSCLUB_FIELD_NUMBER = 9; - private boolean forFansclub_ = false; - /** - * bool for_fansclub = 9; - * @return The forFansclub. - */ - @java.lang.Override - public boolean getForFansclub() { - return forFansclub_; - } - - public static final int COMBO_FIELD_NUMBER = 10; - private boolean combo_ = false; - /** - * bool combo = 10; - * @return The combo. - */ - @java.lang.Override - public boolean getCombo() { - return combo_; - } - - public static final int TYPE_FIELD_NUMBER = 11; - private int type_ = 0; - /** - * uint32 type = 11; - * @return The type. - */ - @java.lang.Override - public int getType() { - return type_; - } - - public static final int DIAMOND_COUNT_FIELD_NUMBER = 12; - private int diamondCount_ = 0; - /** - * uint32 diamond_count = 12; - * @return The diamondCount. - */ - @java.lang.Override - public int getDiamondCount() { - return diamondCount_; - } - - public static final int IS_DISPLAYED_ON_PANEL_FIELD_NUMBER = 13; - private boolean isDisplayedOnPanel_ = false; - /** - * bool is_displayed_on_panel = 13; - * @return The isDisplayedOnPanel. - */ - @java.lang.Override - public boolean getIsDisplayedOnPanel() { - return isDisplayedOnPanel_; - } - - public static final int PRIMARY_EFFECT_ID_FIELD_NUMBER = 14; - private long primaryEffectId_ = 0L; - /** - * uint64 primary_effect_id = 14; - * @return The primaryEffectId. - */ - @java.lang.Override - public long getPrimaryEffectId() { - return primaryEffectId_; - } - - public static final int GIFT_LABEL_ICON_FIELD_NUMBER = 15; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_; - /** - * .Image gift_label_icon = 15; - * @return Whether the giftLabelIcon field is set. - */ - @java.lang.Override - public boolean hasGiftLabelIcon() { - return giftLabelIcon_ != null; - } - /** - * .Image gift_label_icon = 15; - * @return The giftLabelIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() { - return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; - } - /** - * .Image gift_label_icon = 15; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() { - return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; - } - - public static final int NAME_FIELD_NUMBER = 16; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - * string name = 16; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 16; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int REGION_FIELD_NUMBER = 17; - @SuppressWarnings("serial") - private volatile java.lang.Object region_ = ""; - /** - * string region = 17; - * @return The region. - */ - @java.lang.Override - public java.lang.String getRegion() { - java.lang.Object ref = region_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - region_ = s; - return s; - } - } - /** - * string region = 17; - * @return The bytes for region. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MANUAL_FIELD_NUMBER = 18; - @SuppressWarnings("serial") - private volatile java.lang.Object manual_ = ""; - /** - * string manual = 18; - * @return The manual. - */ - @java.lang.Override - public java.lang.String getManual() { - java.lang.Object ref = manual_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - manual_ = s; - return s; - } - } - /** - * string manual = 18; - * @return The bytes for manual. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getManualBytes() { - java.lang.Object ref = manual_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - manual_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FOR_CUSTOM_FIELD_NUMBER = 19; - private boolean forCustom_ = false; - /** - * bool for_custom = 19; - * @return The forCustom. - */ - @java.lang.Override - public boolean getForCustom() { - return forCustom_; - } - - public static final int SPECIALEFFECTSMAP_FIELD_NUMBER = 20; - private static final class SpecialEffectsMapDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.String, java.lang.Long> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.STRING, - "", - com.google.protobuf.WireFormat.FieldType.INT64, - 0L); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.String, java.lang.Long> specialEffectsMap_; - private com.google.protobuf.MapField - internalGetSpecialEffectsMap() { - if (specialEffectsMap_ == null) { - return com.google.protobuf.MapField.emptyMapField( - SpecialEffectsMapDefaultEntryHolder.defaultEntry); - } - return specialEffectsMap_; - } - public int getSpecialEffectsMapCount() { - return internalGetSpecialEffectsMap().getMap().size(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public boolean containsSpecialEffectsMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetSpecialEffectsMap().getMap().containsKey(key); - } - /** - * Use {@link #getSpecialEffectsMapMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getSpecialEffectsMap() { - return getSpecialEffectsMapMap(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public java.util.Map getSpecialEffectsMapMap() { - return internalGetSpecialEffectsMap().getMap(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public long getSpecialEffectsMapOrDefault( - java.lang.String key, - long defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetSpecialEffectsMap().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public long getSpecialEffectsMapOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetSpecialEffectsMap().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - public static final int ICON_FIELD_NUMBER = 21; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - /** - * .Image icon = 21; - * @return Whether the icon field is set. - */ - @java.lang.Override - public boolean hasIcon() { - return icon_ != null; - } - /** - * .Image icon = 21; - * @return The icon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - /** - * .Image icon = 21; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - - public static final int ACTION_TYPE_FIELD_NUMBER = 22; - private int actionType_ = 0; - /** - * uint32 action_type = 22; - * @return The actionType. - */ - @java.lang.Override - public int getActionType() { - return actionType_; - } - - public static final int WATERMELONSEEDS_FIELD_NUMBER = 23; - private int watermelonSeeds_ = 0; - /** - * int32 watermelonSeeds = 23; - * @return The watermelonSeeds. - */ - @java.lang.Override - public int getWatermelonSeeds() { - return watermelonSeeds_; - } - - public static final int GOLDEFFECT_FIELD_NUMBER = 24; - @SuppressWarnings("serial") - private volatile java.lang.Object goldEffect_ = ""; - /** - * string goldEffect = 24; - * @return The goldEffect. - */ - @java.lang.Override - public java.lang.String getGoldEffect() { - java.lang.Object ref = goldEffect_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - goldEffect_ = s; - return s; - } - } - /** - * string goldEffect = 24; - * @return The bytes for goldEffect. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGoldEffectBytes() { - java.lang.Object ref = goldEffect_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - goldEffect_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int GOLDENBEANS_FIELD_NUMBER = 26; - private long goldenBeans_ = 0L; - /** - *
-     * repeated LuckyMoneyGiftMeta subs = 25;
-     * 
- * - * int64 goldenBeans = 26; - * @return The goldenBeans. - */ - @java.lang.Override - public long getGoldenBeans() { - return goldenBeans_; - } - - public static final int HONORLEVEL_FIELD_NUMBER = 27; - private long honorLevel_ = 0L; - /** - * int64 honorLevel = 27; - * @return The honorLevel. - */ - @java.lang.Override - public long getHonorLevel() { - return honorLevel_; - } - - public static final int ITEMTYPE_FIELD_NUMBER = 28; - private int itemType_ = 0; - /** - * int32 itemType = 28; - * @return The itemType. - */ - @java.lang.Override - public int getItemType() { - return itemType_; - } - - public static final int SCHEMEURL_FIELD_NUMBER = 29; - @SuppressWarnings("serial") - private volatile java.lang.Object schemeUrl_ = ""; - /** - * string schemeUrl = 29; - * @return The schemeUrl. - */ - @java.lang.Override - public java.lang.String getSchemeUrl() { - java.lang.Object ref = schemeUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - schemeUrl_ = s; - return s; - } - } - /** - * string schemeUrl = 29; - * @return The bytes for schemeUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSchemeUrlBytes() { - java.lang.Object ref = schemeUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - schemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int EVENTNAME_FIELD_NUMBER = 31; - @SuppressWarnings("serial") - private volatile java.lang.Object eventName_ = ""; - /** - *
-     * GiftPanelOperation giftOperation = 30;
-     * 
- * - * string eventName = 31; - * @return The eventName. - */ - @java.lang.Override - public java.lang.String getEventName() { - java.lang.Object ref = eventName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - eventName_ = s; - return s; - } - } - /** - *
-     * GiftPanelOperation giftOperation = 30;
-     * 
- * - * string eventName = 31; - * @return The bytes for eventName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getEventNameBytes() { - java.lang.Object ref = eventName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - eventName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int NOBLELEVEL_FIELD_NUMBER = 32; - private long nobleLevel_ = 0L; - /** - * int64 nobleLevel = 32; - * @return The nobleLevel. - */ - @java.lang.Override - public long getNobleLevel() { - return nobleLevel_; - } - - public static final int GUIDEURL_FIELD_NUMBER = 33; - @SuppressWarnings("serial") - private volatile java.lang.Object guideUrl_ = ""; - /** - * string guideUrl = 33; - * @return The guideUrl. - */ - @java.lang.Override - public java.lang.String getGuideUrl() { - java.lang.Object ref = guideUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guideUrl_ = s; - return s; - } - } - /** - * string guideUrl = 33; - * @return The bytes for guideUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGuideUrlBytes() { - java.lang.Object ref = guideUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guideUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PUNISHMEDICINE_FIELD_NUMBER = 34; - private boolean punishMedicine_ = false; - /** - * bool punishMedicine = 34; - * @return The punishMedicine. - */ - @java.lang.Override - public boolean getPunishMedicine() { - return punishMedicine_; - } - - public static final int FORPORTAL_FIELD_NUMBER = 35; - private boolean forPortal_ = false; - /** - * bool forPortal = 35; - * @return The forPortal. - */ - @java.lang.Override - public boolean getForPortal() { - return forPortal_; - } - - public static final int BUSINESSTEXT_FIELD_NUMBER = 36; - @SuppressWarnings("serial") - private volatile java.lang.Object businessText_ = ""; - /** - * string businessText = 36; - * @return The businessText. - */ - @java.lang.Override - public java.lang.String getBusinessText() { - java.lang.Object ref = businessText_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - businessText_ = s; - return s; - } - } - /** - * string businessText = 36; - * @return The bytes for businessText. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getBusinessTextBytes() { - java.lang.Object ref = businessText_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - businessText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CNYGIFT_FIELD_NUMBER = 37; - private boolean cnyGift_ = false; - /** - * bool cnyGift = 37; - * @return The cnyGift. - */ - @java.lang.Override - public boolean getCnyGift() { - return cnyGift_; - } - - public static final int APPID_FIELD_NUMBER = 38; - private long appId_ = 0L; - /** - * int64 appId = 38; - * @return The appId. - */ - @java.lang.Override - public long getAppId() { - return appId_; - } - - public static final int VIPLEVEL_FIELD_NUMBER = 39; - private long vipLevel_ = 0L; - /** - * int64 vipLevel = 39; - * @return The vipLevel. - */ - @java.lang.Override - public long getVipLevel() { - return vipLevel_; - } - - public static final int ISGRAY_FIELD_NUMBER = 40; - private boolean isGray_ = false; - /** - * bool isGray = 40; - * @return The isGray. - */ - @java.lang.Override - public boolean getIsGray() { - return isGray_; - } - - public static final int GRAYSCHEMEURL_FIELD_NUMBER = 41; - @SuppressWarnings("serial") - private volatile java.lang.Object graySchemeUrl_ = ""; - /** - * string graySchemeUrl = 41; - * @return The graySchemeUrl. - */ - @java.lang.Override - public java.lang.String getGraySchemeUrl() { - java.lang.Object ref = graySchemeUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - graySchemeUrl_ = s; - return s; - } - } - /** - * string graySchemeUrl = 41; - * @return The bytes for graySchemeUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGraySchemeUrlBytes() { - java.lang.Object ref = graySchemeUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - graySchemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int GIFTSCENE_FIELD_NUMBER = 42; - private long giftScene_ = 0L; - /** - * int64 giftScene = 42; - * @return The giftScene. - */ - @java.lang.Override - public long getGiftScene() { - return giftScene_; - } - - public static final int TRIGGERWORDS_FIELD_NUMBER = 44; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList triggerWords_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @return A list containing the triggerWords. - */ - public com.google.protobuf.ProtocolStringList - getTriggerWordsList() { - return triggerWords_; - } - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @return The count of triggerWords. - */ - public int getTriggerWordsCount() { - return triggerWords_.size(); - } - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @param index The index of the element to return. - * @return The triggerWords at the given index. - */ - public java.lang.String getTriggerWords(int index) { - return triggerWords_.get(index); - } - /** - *
-     * GiftBanner giftBanner = 43;
-     * 
- * - * repeated string triggerWords = 44; - * @param index The index of the value to return. - * @return The bytes of the triggerWords at the given index. - */ - public com.google.protobuf.ByteString - getTriggerWordsBytes(int index) { - return triggerWords_.getByteString(index); - } - - public static final int FORFIRSTRECHARGE_FIELD_NUMBER = 46; - private boolean forFirstRecharge_ = false; - /** - *
-     * repeated GiftBuffInfo giftBuffInfos = 45;
-     * 
- * - * bool forFirstRecharge = 46; - * @return The forFirstRecharge. - */ - @java.lang.Override - public boolean getForFirstRecharge() { - return forFirstRecharge_; - } - - public static final int DYNAMICIMGFORSELECTED_FIELD_NUMBER = 47; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_; - /** - * .Image dynamicImgForSelected = 47; - * @return Whether the dynamicImgForSelected field is set. - */ - @java.lang.Override - public boolean hasDynamicImgForSelected() { - return dynamicImgForSelected_ != null; - } - /** - * .Image dynamicImgForSelected = 47; - * @return The dynamicImgForSelected. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() { - return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; - } - /** - * .Image dynamicImgForSelected = 47; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() { - return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; - } - - public static final int AFTERSENDACTION_FIELD_NUMBER = 48; - private int afterSendAction_ = 0; - /** - * int32 afterSendAction = 48; - * @return The afterSendAction. - */ - @java.lang.Override - public int getAfterSendAction() { - return afterSendAction_; - } - - public static final int GIFTOFFLINETIME_FIELD_NUMBER = 49; - private long giftOfflineTime_ = 0L; - /** - * int64 giftOfflineTime = 49; - * @return The giftOfflineTime. - */ - @java.lang.Override - public long getGiftOfflineTime() { - return giftOfflineTime_; - } - - public static final int TOPBARTEXT_FIELD_NUMBER = 50; - @SuppressWarnings("serial") - private volatile java.lang.Object topBarText_ = ""; - /** - * string topBarText = 50; - * @return The topBarText. - */ - @java.lang.Override - public java.lang.String getTopBarText() { - java.lang.Object ref = topBarText_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - topBarText_ = s; - return s; - } - } - /** - * string topBarText = 50; - * @return The bytes for topBarText. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTopBarTextBytes() { - java.lang.Object ref = topBarText_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - topBarText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int TOPRIGHTAVATAR_FIELD_NUMBER = 51; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_; - /** - * .Image topRightAvatar = 51; - * @return Whether the topRightAvatar field is set. - */ - @java.lang.Override - public boolean hasTopRightAvatar() { - return topRightAvatar_ != null; - } - /** - * .Image topRightAvatar = 51; - * @return The topRightAvatar. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() { - return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; - } - /** - * .Image topRightAvatar = 51; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() { - return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; - } - - public static final int BANNERSCHEMEURL_FIELD_NUMBER = 52; - @SuppressWarnings("serial") - private volatile java.lang.Object bannerSchemeUrl_ = ""; - /** - * string bannerSchemeUrl = 52; - * @return The bannerSchemeUrl. - */ - @java.lang.Override - public java.lang.String getBannerSchemeUrl() { - java.lang.Object ref = bannerSchemeUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - bannerSchemeUrl_ = s; - return s; - } - } - /** - * string bannerSchemeUrl = 52; - * @return The bytes for bannerSchemeUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getBannerSchemeUrlBytes() { - java.lang.Object ref = bannerSchemeUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - bannerSchemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ISLOCKED_FIELD_NUMBER = 53; - private boolean isLocked_ = false; - /** - * bool isLocked = 53; - * @return The isLocked. - */ - @java.lang.Override - public boolean getIsLocked() { - return isLocked_; - } - - public static final int REQEXTRATYPE_FIELD_NUMBER = 54; - private long reqExtraType_ = 0L; - /** - * int64 reqExtraType = 54; - * @return The reqExtraType. - */ - @java.lang.Override - public long getReqExtraType() { - return reqExtraType_; - } - - public static final int ASSETIDS_FIELD_NUMBER = 55; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList assetIds_; - /** - * repeated int64 assetIds = 55; - * @return A list containing the assetIds. - */ - @java.lang.Override - public java.util.List - getAssetIdsList() { - return assetIds_; - } - /** - * repeated int64 assetIds = 55; - * @return The count of assetIds. - */ - public int getAssetIdsCount() { - return assetIds_.size(); - } - /** - * repeated int64 assetIds = 55; - * @param index The index of the element to return. - * @return The assetIds at the given index. - */ - public long getAssetIds(int index) { - return assetIds_.getLong(index); - } - private int assetIdsMemoizedSerializedSize = -1; - - public static final int NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER = 58; - private int needSweepLightCount_ = 0; - /** - *
-     * GiftPreviewInfo giftPreviewInfo = 56;
-     * GiftTip giftTip = 57;
-     * 
- * - * int32 needSweepLightCount = 58; - * @return The needSweepLightCount. - */ - @java.lang.Override - public int getNeedSweepLightCount() { - return needSweepLightCount_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (image_ != null) { - output.writeMessage(1, getImage()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, describe_); - } - if (notify_ != false) { - output.writeBool(3, notify_); - } - if (duration_ != 0L) { - output.writeUInt64(4, duration_); - } - if (id_ != 0L) { - output.writeUInt64(5, id_); - } - if (forLinkmic_ != false) { - output.writeBool(7, forLinkmic_); - } - if (doodle_ != false) { - output.writeBool(8, doodle_); - } - if (forFansclub_ != false) { - output.writeBool(9, forFansclub_); - } - if (combo_ != false) { - output.writeBool(10, combo_); - } - if (type_ != 0) { - output.writeUInt32(11, type_); - } - if (diamondCount_ != 0) { - output.writeUInt32(12, diamondCount_); - } - if (isDisplayedOnPanel_ != false) { - output.writeBool(13, isDisplayedOnPanel_); - } - if (primaryEffectId_ != 0L) { - output.writeUInt64(14, primaryEffectId_); - } - if (giftLabelIcon_ != null) { - output.writeMessage(15, getGiftLabelIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 16, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 17, region_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 18, manual_); - } - if (forCustom_ != false) { - output.writeBool(19, forCustom_); - } - com.google.protobuf.GeneratedMessageV3 - .serializeStringMapTo( - output, - internalGetSpecialEffectsMap(), - SpecialEffectsMapDefaultEntryHolder.defaultEntry, - 20); - if (icon_ != null) { - output.writeMessage(21, getIcon()); - } - if (actionType_ != 0) { - output.writeUInt32(22, actionType_); - } - if (watermelonSeeds_ != 0) { - output.writeInt32(23, watermelonSeeds_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 24, goldEffect_); - } - if (goldenBeans_ != 0L) { - output.writeInt64(26, goldenBeans_); - } - if (honorLevel_ != 0L) { - output.writeInt64(27, honorLevel_); - } - if (itemType_ != 0) { - output.writeInt32(28, itemType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 29, schemeUrl_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 31, eventName_); - } - if (nobleLevel_ != 0L) { - output.writeInt64(32, nobleLevel_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 33, guideUrl_); - } - if (punishMedicine_ != false) { - output.writeBool(34, punishMedicine_); - } - if (forPortal_ != false) { - output.writeBool(35, forPortal_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 36, businessText_); - } - if (cnyGift_ != false) { - output.writeBool(37, cnyGift_); - } - if (appId_ != 0L) { - output.writeInt64(38, appId_); - } - if (vipLevel_ != 0L) { - output.writeInt64(39, vipLevel_); - } - if (isGray_ != false) { - output.writeBool(40, isGray_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 41, graySchemeUrl_); - } - if (giftScene_ != 0L) { - output.writeInt64(42, giftScene_); - } - for (int i = 0; i < triggerWords_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 44, triggerWords_.getRaw(i)); - } - if (forFirstRecharge_ != false) { - output.writeBool(46, forFirstRecharge_); - } - if (dynamicImgForSelected_ != null) { - output.writeMessage(47, getDynamicImgForSelected()); - } - if (afterSendAction_ != 0) { - output.writeInt32(48, afterSendAction_); - } - if (giftOfflineTime_ != 0L) { - output.writeInt64(49, giftOfflineTime_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 50, topBarText_); - } - if (topRightAvatar_ != null) { - output.writeMessage(51, getTopRightAvatar()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 52, bannerSchemeUrl_); - } - if (isLocked_ != false) { - output.writeBool(53, isLocked_); - } - if (reqExtraType_ != 0L) { - output.writeInt64(54, reqExtraType_); - } - if (getAssetIdsList().size() > 0) { - output.writeUInt32NoTag(442); - output.writeUInt32NoTag(assetIdsMemoizedSerializedSize); - } - for (int i = 0; i < assetIds_.size(); i++) { - output.writeInt64NoTag(assetIds_.getLong(i)); - } - if (needSweepLightCount_ != 0) { - output.writeInt32(58, needSweepLightCount_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (image_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getImage()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, describe_); - } - if (notify_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, notify_); - } - if (duration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, duration_); - } - if (id_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, id_); - } - if (forLinkmic_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, forLinkmic_); - } - if (doodle_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(8, doodle_); - } - if (forFansclub_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(9, forFansclub_); - } - if (combo_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(10, combo_); - } - if (type_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(11, type_); - } - if (diamondCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(12, diamondCount_); - } - if (isDisplayedOnPanel_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(13, isDisplayedOnPanel_); - } - if (primaryEffectId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(14, primaryEffectId_); - } - if (giftLabelIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(15, getGiftLabelIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, region_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, manual_); - } - if (forCustom_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(19, forCustom_); - } - for (java.util.Map.Entry entry - : internalGetSpecialEffectsMap().getMap().entrySet()) { - com.google.protobuf.MapEntry - specialEffectsMap__ = SpecialEffectsMapDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(20, specialEffectsMap__); - } - if (icon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(21, getIcon()); - } - if (actionType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(22, actionType_); - } - if (watermelonSeeds_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(23, watermelonSeeds_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, goldEffect_); - } - if (goldenBeans_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(26, goldenBeans_); - } - if (honorLevel_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(27, honorLevel_); - } - if (itemType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(28, itemType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, schemeUrl_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, eventName_); - } - if (nobleLevel_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(32, nobleLevel_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, guideUrl_); - } - if (punishMedicine_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(34, punishMedicine_); - } - if (forPortal_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(35, forPortal_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, businessText_); - } - if (cnyGift_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(37, cnyGift_); - } - if (appId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(38, appId_); - } - if (vipLevel_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(39, vipLevel_); - } - if (isGray_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(40, isGray_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(41, graySchemeUrl_); - } - if (giftScene_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(42, giftScene_); - } - { - int dataSize = 0; - for (int i = 0; i < triggerWords_.size(); i++) { - dataSize += computeStringSizeNoTag(triggerWords_.getRaw(i)); - } - size += dataSize; - size += 2 * getTriggerWordsList().size(); - } - if (forFirstRecharge_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(46, forFirstRecharge_); - } - if (dynamicImgForSelected_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(47, getDynamicImgForSelected()); - } - if (afterSendAction_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(48, afterSendAction_); - } - if (giftOfflineTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(49, giftOfflineTime_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(50, topBarText_); - } - if (topRightAvatar_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(51, getTopRightAvatar()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(52, bannerSchemeUrl_); - } - if (isLocked_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(53, isLocked_); - } - if (reqExtraType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(54, reqExtraType_); - } - { - int dataSize = 0; - for (int i = 0; i < assetIds_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeInt64SizeNoTag(assetIds_.getLong(i)); - } - size += dataSize; - if (!getAssetIdsList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - assetIdsMemoizedSerializedSize = dataSize; - } - if (needSweepLightCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(58, needSweepLightCount_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) obj; - - if (hasImage() != other.hasImage()) return false; - if (hasImage()) { - if (!getImage() - .equals(other.getImage())) return false; - } - if (!getDescribe() - .equals(other.getDescribe())) return false; - if (getNotify() - != other.getNotify()) return false; - if (getDuration() - != other.getDuration()) return false; - if (getId() - != other.getId()) return false; - if (getForLinkmic() - != other.getForLinkmic()) return false; - if (getDoodle() - != other.getDoodle()) return false; - if (getForFansclub() - != other.getForFansclub()) return false; - if (getCombo() - != other.getCombo()) return false; - if (getType() - != other.getType()) return false; - if (getDiamondCount() - != other.getDiamondCount()) return false; - if (getIsDisplayedOnPanel() - != other.getIsDisplayedOnPanel()) return false; - if (getPrimaryEffectId() - != other.getPrimaryEffectId()) return false; - if (hasGiftLabelIcon() != other.hasGiftLabelIcon()) return false; - if (hasGiftLabelIcon()) { - if (!getGiftLabelIcon() - .equals(other.getGiftLabelIcon())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (!getRegion() - .equals(other.getRegion())) return false; - if (!getManual() - .equals(other.getManual())) return false; - if (getForCustom() - != other.getForCustom()) return false; - if (!internalGetSpecialEffectsMap().equals( - other.internalGetSpecialEffectsMap())) return false; - if (hasIcon() != other.hasIcon()) return false; - if (hasIcon()) { - if (!getIcon() - .equals(other.getIcon())) return false; - } - if (getActionType() - != other.getActionType()) return false; - if (getWatermelonSeeds() - != other.getWatermelonSeeds()) return false; - if (!getGoldEffect() - .equals(other.getGoldEffect())) return false; - if (getGoldenBeans() - != other.getGoldenBeans()) return false; - if (getHonorLevel() - != other.getHonorLevel()) return false; - if (getItemType() - != other.getItemType()) return false; - if (!getSchemeUrl() - .equals(other.getSchemeUrl())) return false; - if (!getEventName() - .equals(other.getEventName())) return false; - if (getNobleLevel() - != other.getNobleLevel()) return false; - if (!getGuideUrl() - .equals(other.getGuideUrl())) return false; - if (getPunishMedicine() - != other.getPunishMedicine()) return false; - if (getForPortal() - != other.getForPortal()) return false; - if (!getBusinessText() - .equals(other.getBusinessText())) return false; - if (getCnyGift() - != other.getCnyGift()) return false; - if (getAppId() - != other.getAppId()) return false; - if (getVipLevel() - != other.getVipLevel()) return false; - if (getIsGray() - != other.getIsGray()) return false; - if (!getGraySchemeUrl() - .equals(other.getGraySchemeUrl())) return false; - if (getGiftScene() - != other.getGiftScene()) return false; - if (!getTriggerWordsList() - .equals(other.getTriggerWordsList())) return false; - if (getForFirstRecharge() - != other.getForFirstRecharge()) return false; - if (hasDynamicImgForSelected() != other.hasDynamicImgForSelected()) return false; - if (hasDynamicImgForSelected()) { - if (!getDynamicImgForSelected() - .equals(other.getDynamicImgForSelected())) return false; - } - if (getAfterSendAction() - != other.getAfterSendAction()) return false; - if (getGiftOfflineTime() - != other.getGiftOfflineTime()) return false; - if (!getTopBarText() - .equals(other.getTopBarText())) return false; - if (hasTopRightAvatar() != other.hasTopRightAvatar()) return false; - if (hasTopRightAvatar()) { - if (!getTopRightAvatar() - .equals(other.getTopRightAvatar())) return false; - } - if (!getBannerSchemeUrl() - .equals(other.getBannerSchemeUrl())) return false; - if (getIsLocked() - != other.getIsLocked()) return false; - if (getReqExtraType() - != other.getReqExtraType()) return false; - if (!getAssetIdsList() - .equals(other.getAssetIdsList())) return false; - if (getNeedSweepLightCount() - != other.getNeedSweepLightCount()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasImage()) { - hash = (37 * hash) + IMAGE_FIELD_NUMBER; - hash = (53 * hash) + getImage().hashCode(); - } - hash = (37 * hash) + DESCRIBE_FIELD_NUMBER; - hash = (53 * hash) + getDescribe().hashCode(); - hash = (37 * hash) + NOTIFY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getNotify()); - hash = (37 * hash) + DURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getDuration()); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getId()); - hash = (37 * hash) + FOR_LINKMIC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getForLinkmic()); - hash = (37 * hash) + DOODLE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getDoodle()); - hash = (37 * hash) + FOR_FANSCLUB_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getForFansclub()); - hash = (37 * hash) + COMBO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getCombo()); - hash = (37 * hash) + TYPE_FIELD_NUMBER; - hash = (53 * hash) + getType(); - hash = (37 * hash) + DIAMOND_COUNT_FIELD_NUMBER; - hash = (53 * hash) + getDiamondCount(); - hash = (37 * hash) + IS_DISPLAYED_ON_PANEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsDisplayedOnPanel()); - hash = (37 * hash) + PRIMARY_EFFECT_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPrimaryEffectId()); - if (hasGiftLabelIcon()) { - hash = (37 * hash) + GIFT_LABEL_ICON_FIELD_NUMBER; - hash = (53 * hash) + getGiftLabelIcon().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + REGION_FIELD_NUMBER; - hash = (53 * hash) + getRegion().hashCode(); - hash = (37 * hash) + MANUAL_FIELD_NUMBER; - hash = (53 * hash) + getManual().hashCode(); - hash = (37 * hash) + FOR_CUSTOM_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getForCustom()); - if (!internalGetSpecialEffectsMap().getMap().isEmpty()) { - hash = (37 * hash) + SPECIALEFFECTSMAP_FIELD_NUMBER; - hash = (53 * hash) + internalGetSpecialEffectsMap().hashCode(); - } - if (hasIcon()) { - hash = (37 * hash) + ICON_FIELD_NUMBER; - hash = (53 * hash) + getIcon().hashCode(); - } - hash = (37 * hash) + ACTION_TYPE_FIELD_NUMBER; - hash = (53 * hash) + getActionType(); - hash = (37 * hash) + WATERMELONSEEDS_FIELD_NUMBER; - hash = (53 * hash) + getWatermelonSeeds(); - hash = (37 * hash) + GOLDEFFECT_FIELD_NUMBER; - hash = (53 * hash) + getGoldEffect().hashCode(); - hash = (37 * hash) + GOLDENBEANS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGoldenBeans()); - hash = (37 * hash) + HONORLEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getHonorLevel()); - hash = (37 * hash) + ITEMTYPE_FIELD_NUMBER; - hash = (53 * hash) + getItemType(); - hash = (37 * hash) + SCHEMEURL_FIELD_NUMBER; - hash = (53 * hash) + getSchemeUrl().hashCode(); - hash = (37 * hash) + EVENTNAME_FIELD_NUMBER; - hash = (53 * hash) + getEventName().hashCode(); - hash = (37 * hash) + NOBLELEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getNobleLevel()); - hash = (37 * hash) + GUIDEURL_FIELD_NUMBER; - hash = (53 * hash) + getGuideUrl().hashCode(); - hash = (37 * hash) + PUNISHMEDICINE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPunishMedicine()); - hash = (37 * hash) + FORPORTAL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getForPortal()); - hash = (37 * hash) + BUSINESSTEXT_FIELD_NUMBER; - hash = (53 * hash) + getBusinessText().hashCode(); - hash = (37 * hash) + CNYGIFT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getCnyGift()); - hash = (37 * hash) + APPID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAppId()); - hash = (37 * hash) + VIPLEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getVipLevel()); - hash = (37 * hash) + ISGRAY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsGray()); - hash = (37 * hash) + GRAYSCHEMEURL_FIELD_NUMBER; - hash = (53 * hash) + getGraySchemeUrl().hashCode(); - hash = (37 * hash) + GIFTSCENE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGiftScene()); - if (getTriggerWordsCount() > 0) { - hash = (37 * hash) + TRIGGERWORDS_FIELD_NUMBER; - hash = (53 * hash) + getTriggerWordsList().hashCode(); - } - hash = (37 * hash) + FORFIRSTRECHARGE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getForFirstRecharge()); - if (hasDynamicImgForSelected()) { - hash = (37 * hash) + DYNAMICIMGFORSELECTED_FIELD_NUMBER; - hash = (53 * hash) + getDynamicImgForSelected().hashCode(); - } - hash = (37 * hash) + AFTERSENDACTION_FIELD_NUMBER; - hash = (53 * hash) + getAfterSendAction(); - hash = (37 * hash) + GIFTOFFLINETIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGiftOfflineTime()); - hash = (37 * hash) + TOPBARTEXT_FIELD_NUMBER; - hash = (53 * hash) + getTopBarText().hashCode(); - if (hasTopRightAvatar()) { - hash = (37 * hash) + TOPRIGHTAVATAR_FIELD_NUMBER; - hash = (53 * hash) + getTopRightAvatar().hashCode(); - } - hash = (37 * hash) + BANNERSCHEMEURL_FIELD_NUMBER; - hash = (53 * hash) + getBannerSchemeUrl().hashCode(); - hash = (37 * hash) + ISLOCKED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsLocked()); - hash = (37 * hash) + REQEXTRATYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getReqExtraType()); - if (getAssetIdsCount() > 0) { - hash = (37 * hash) + ASSETIDS_FIELD_NUMBER; - hash = (53 * hash) + getAssetIdsList().hashCode(); - } - hash = (37 * hash) + NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getNeedSweepLightCount(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GiftStruct} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:GiftStruct) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 20: - return internalGetSpecialEffectsMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 20: - return internalGetMutableSpecialEffectsMap(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - bitField1_ = 0; - image_ = null; - if (imageBuilder_ != null) { - imageBuilder_.dispose(); - imageBuilder_ = null; - } - describe_ = ""; - notify_ = false; - duration_ = 0L; - id_ = 0L; - forLinkmic_ = false; - doodle_ = false; - forFansclub_ = false; - combo_ = false; - type_ = 0; - diamondCount_ = 0; - isDisplayedOnPanel_ = false; - primaryEffectId_ = 0L; - giftLabelIcon_ = null; - if (giftLabelIconBuilder_ != null) { - giftLabelIconBuilder_.dispose(); - giftLabelIconBuilder_ = null; - } - name_ = ""; - region_ = ""; - manual_ = ""; - forCustom_ = false; - internalGetMutableSpecialEffectsMap().clear(); - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - actionType_ = 0; - watermelonSeeds_ = 0; - goldEffect_ = ""; - goldenBeans_ = 0L; - honorLevel_ = 0L; - itemType_ = 0; - schemeUrl_ = ""; - eventName_ = ""; - nobleLevel_ = 0L; - guideUrl_ = ""; - punishMedicine_ = false; - forPortal_ = false; - businessText_ = ""; - cnyGift_ = false; - appId_ = 0L; - vipLevel_ = 0L; - isGray_ = false; - graySchemeUrl_ = ""; - giftScene_ = 0L; - triggerWords_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - forFirstRecharge_ = false; - dynamicImgForSelected_ = null; - if (dynamicImgForSelectedBuilder_ != null) { - dynamicImgForSelectedBuilder_.dispose(); - dynamicImgForSelectedBuilder_ = null; - } - afterSendAction_ = 0; - giftOfflineTime_ = 0L; - topBarText_ = ""; - topRightAvatar_ = null; - if (topRightAvatarBuilder_ != null) { - topRightAvatarBuilder_.dispose(); - topRightAvatarBuilder_ = null; - } - bannerSchemeUrl_ = ""; - isLocked_ = false; - reqExtraType_ = 0L; - assetIds_ = emptyLongList(); - needSweepLightCount_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - if (bitField1_ != 0) { buildPartial1(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { - if (((bitField1_ & 0x00020000) != 0)) { - assetIds_.makeImmutable(); - bitField1_ = (bitField1_ & ~0x00020000); - } - result.assetIds_ = assetIds_; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.image_ = imageBuilder_ == null - ? image_ - : imageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.describe_ = describe_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.notify_ = notify_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.duration_ = duration_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.forLinkmic_ = forLinkmic_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.doodle_ = doodle_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.forFansclub_ = forFansclub_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.combo_ = combo_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.type_ = type_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.diamondCount_ = diamondCount_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.isDisplayedOnPanel_ = isDisplayedOnPanel_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.primaryEffectId_ = primaryEffectId_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.giftLabelIcon_ = giftLabelIconBuilder_ == null - ? giftLabelIcon_ - : giftLabelIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.name_ = name_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.region_ = region_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.manual_ = manual_; - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.forCustom_ = forCustom_; - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.specialEffectsMap_ = internalGetSpecialEffectsMap(); - result.specialEffectsMap_.makeImmutable(); - } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.icon_ = iconBuilder_ == null - ? icon_ - : iconBuilder_.build(); - } - if (((from_bitField0_ & 0x00100000) != 0)) { - result.actionType_ = actionType_; - } - if (((from_bitField0_ & 0x00200000) != 0)) { - result.watermelonSeeds_ = watermelonSeeds_; - } - if (((from_bitField0_ & 0x00400000) != 0)) { - result.goldEffect_ = goldEffect_; - } - if (((from_bitField0_ & 0x00800000) != 0)) { - result.goldenBeans_ = goldenBeans_; - } - if (((from_bitField0_ & 0x01000000) != 0)) { - result.honorLevel_ = honorLevel_; - } - if (((from_bitField0_ & 0x02000000) != 0)) { - result.itemType_ = itemType_; - } - if (((from_bitField0_ & 0x04000000) != 0)) { - result.schemeUrl_ = schemeUrl_; - } - if (((from_bitField0_ & 0x08000000) != 0)) { - result.eventName_ = eventName_; - } - if (((from_bitField0_ & 0x10000000) != 0)) { - result.nobleLevel_ = nobleLevel_; - } - if (((from_bitField0_ & 0x20000000) != 0)) { - result.guideUrl_ = guideUrl_; - } - if (((from_bitField0_ & 0x40000000) != 0)) { - result.punishMedicine_ = punishMedicine_; - } - if (((from_bitField0_ & 0x80000000) != 0)) { - result.forPortal_ = forPortal_; - } - } - - private void buildPartial1(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { - int from_bitField1_ = bitField1_; - if (((from_bitField1_ & 0x00000001) != 0)) { - result.businessText_ = businessText_; - } - if (((from_bitField1_ & 0x00000002) != 0)) { - result.cnyGift_ = cnyGift_; - } - if (((from_bitField1_ & 0x00000004) != 0)) { - result.appId_ = appId_; - } - if (((from_bitField1_ & 0x00000008) != 0)) { - result.vipLevel_ = vipLevel_; - } - if (((from_bitField1_ & 0x00000010) != 0)) { - result.isGray_ = isGray_; - } - if (((from_bitField1_ & 0x00000020) != 0)) { - result.graySchemeUrl_ = graySchemeUrl_; - } - if (((from_bitField1_ & 0x00000040) != 0)) { - result.giftScene_ = giftScene_; - } - if (((from_bitField1_ & 0x00000080) != 0)) { - triggerWords_.makeImmutable(); - result.triggerWords_ = triggerWords_; - } - if (((from_bitField1_ & 0x00000100) != 0)) { - result.forFirstRecharge_ = forFirstRecharge_; - } - if (((from_bitField1_ & 0x00000200) != 0)) { - result.dynamicImgForSelected_ = dynamicImgForSelectedBuilder_ == null - ? dynamicImgForSelected_ - : dynamicImgForSelectedBuilder_.build(); - } - if (((from_bitField1_ & 0x00000400) != 0)) { - result.afterSendAction_ = afterSendAction_; - } - if (((from_bitField1_ & 0x00000800) != 0)) { - result.giftOfflineTime_ = giftOfflineTime_; - } - if (((from_bitField1_ & 0x00001000) != 0)) { - result.topBarText_ = topBarText_; - } - if (((from_bitField1_ & 0x00002000) != 0)) { - result.topRightAvatar_ = topRightAvatarBuilder_ == null - ? topRightAvatar_ - : topRightAvatarBuilder_.build(); - } - if (((from_bitField1_ & 0x00004000) != 0)) { - result.bannerSchemeUrl_ = bannerSchemeUrl_; - } - if (((from_bitField1_ & 0x00008000) != 0)) { - result.isLocked_ = isLocked_; - } - if (((from_bitField1_ & 0x00010000) != 0)) { - result.reqExtraType_ = reqExtraType_; - } - if (((from_bitField1_ & 0x00040000) != 0)) { - result.needSweepLightCount_ = needSweepLightCount_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance()) return this; - if (other.hasImage()) { - mergeImage(other.getImage()); - } - if (!other.getDescribe().isEmpty()) { - describe_ = other.describe_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getNotify() != false) { - setNotify(other.getNotify()); - } - if (other.getDuration() != 0L) { - setDuration(other.getDuration()); - } - if (other.getId() != 0L) { - setId(other.getId()); - } - if (other.getForLinkmic() != false) { - setForLinkmic(other.getForLinkmic()); - } - if (other.getDoodle() != false) { - setDoodle(other.getDoodle()); - } - if (other.getForFansclub() != false) { - setForFansclub(other.getForFansclub()); - } - if (other.getCombo() != false) { - setCombo(other.getCombo()); - } - if (other.getType() != 0) { - setType(other.getType()); - } - if (other.getDiamondCount() != 0) { - setDiamondCount(other.getDiamondCount()); - } - if (other.getIsDisplayedOnPanel() != false) { - setIsDisplayedOnPanel(other.getIsDisplayedOnPanel()); - } - if (other.getPrimaryEffectId() != 0L) { - setPrimaryEffectId(other.getPrimaryEffectId()); - } - if (other.hasGiftLabelIcon()) { - mergeGiftLabelIcon(other.getGiftLabelIcon()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00004000; - onChanged(); - } - if (!other.getRegion().isEmpty()) { - region_ = other.region_; - bitField0_ |= 0x00008000; - onChanged(); - } - if (!other.getManual().isEmpty()) { - manual_ = other.manual_; - bitField0_ |= 0x00010000; - onChanged(); - } - if (other.getForCustom() != false) { - setForCustom(other.getForCustom()); - } - internalGetMutableSpecialEffectsMap().mergeFrom( - other.internalGetSpecialEffectsMap()); - bitField0_ |= 0x00040000; - if (other.hasIcon()) { - mergeIcon(other.getIcon()); - } - if (other.getActionType() != 0) { - setActionType(other.getActionType()); - } - if (other.getWatermelonSeeds() != 0) { - setWatermelonSeeds(other.getWatermelonSeeds()); - } - if (!other.getGoldEffect().isEmpty()) { - goldEffect_ = other.goldEffect_; - bitField0_ |= 0x00400000; - onChanged(); - } - if (other.getGoldenBeans() != 0L) { - setGoldenBeans(other.getGoldenBeans()); - } - if (other.getHonorLevel() != 0L) { - setHonorLevel(other.getHonorLevel()); - } - if (other.getItemType() != 0) { - setItemType(other.getItemType()); - } - if (!other.getSchemeUrl().isEmpty()) { - schemeUrl_ = other.schemeUrl_; - bitField0_ |= 0x04000000; - onChanged(); - } - if (!other.getEventName().isEmpty()) { - eventName_ = other.eventName_; - bitField0_ |= 0x08000000; - onChanged(); - } - if (other.getNobleLevel() != 0L) { - setNobleLevel(other.getNobleLevel()); - } - if (!other.getGuideUrl().isEmpty()) { - guideUrl_ = other.guideUrl_; - bitField0_ |= 0x20000000; - onChanged(); - } - if (other.getPunishMedicine() != false) { - setPunishMedicine(other.getPunishMedicine()); - } - if (other.getForPortal() != false) { - setForPortal(other.getForPortal()); - } - if (!other.getBusinessText().isEmpty()) { - businessText_ = other.businessText_; - bitField1_ |= 0x00000001; - onChanged(); - } - if (other.getCnyGift() != false) { - setCnyGift(other.getCnyGift()); - } - if (other.getAppId() != 0L) { - setAppId(other.getAppId()); - } - if (other.getVipLevel() != 0L) { - setVipLevel(other.getVipLevel()); - } - if (other.getIsGray() != false) { - setIsGray(other.getIsGray()); - } - if (!other.getGraySchemeUrl().isEmpty()) { - graySchemeUrl_ = other.graySchemeUrl_; - bitField1_ |= 0x00000020; - onChanged(); - } - if (other.getGiftScene() != 0L) { - setGiftScene(other.getGiftScene()); - } - if (!other.triggerWords_.isEmpty()) { - if (triggerWords_.isEmpty()) { - triggerWords_ = other.triggerWords_; - bitField1_ |= 0x00000080; - } else { - ensureTriggerWordsIsMutable(); - triggerWords_.addAll(other.triggerWords_); - } - onChanged(); - } - if (other.getForFirstRecharge() != false) { - setForFirstRecharge(other.getForFirstRecharge()); - } - if (other.hasDynamicImgForSelected()) { - mergeDynamicImgForSelected(other.getDynamicImgForSelected()); - } - if (other.getAfterSendAction() != 0) { - setAfterSendAction(other.getAfterSendAction()); - } - if (other.getGiftOfflineTime() != 0L) { - setGiftOfflineTime(other.getGiftOfflineTime()); - } - if (!other.getTopBarText().isEmpty()) { - topBarText_ = other.topBarText_; - bitField1_ |= 0x00001000; - onChanged(); - } - if (other.hasTopRightAvatar()) { - mergeTopRightAvatar(other.getTopRightAvatar()); - } - if (!other.getBannerSchemeUrl().isEmpty()) { - bannerSchemeUrl_ = other.bannerSchemeUrl_; - bitField1_ |= 0x00004000; - onChanged(); - } - if (other.getIsLocked() != false) { - setIsLocked(other.getIsLocked()); - } - if (other.getReqExtraType() != 0L) { - setReqExtraType(other.getReqExtraType()); - } - if (!other.assetIds_.isEmpty()) { - if (assetIds_.isEmpty()) { - assetIds_ = other.assetIds_; - bitField1_ = (bitField1_ & ~0x00020000); - } else { - ensureAssetIdsIsMutable(); - assetIds_.addAll(other.assetIds_); - } - onChanged(); - } - if (other.getNeedSweepLightCount() != 0) { - setNeedSweepLightCount(other.getNeedSweepLightCount()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getImageFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - describe_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - notify_ = input.readBool(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - duration_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - id_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 56: { - forLinkmic_ = input.readBool(); - bitField0_ |= 0x00000020; - break; - } // case 56 - case 64: { - doodle_ = input.readBool(); - bitField0_ |= 0x00000040; - break; - } // case 64 - case 72: { - forFansclub_ = input.readBool(); - bitField0_ |= 0x00000080; - break; - } // case 72 - case 80: { - combo_ = input.readBool(); - bitField0_ |= 0x00000100; - break; - } // case 80 - case 88: { - type_ = input.readUInt32(); - bitField0_ |= 0x00000200; - break; - } // case 88 - case 96: { - diamondCount_ = input.readUInt32(); - bitField0_ |= 0x00000400; - break; - } // case 96 - case 104: { - isDisplayedOnPanel_ = input.readBool(); - bitField0_ |= 0x00000800; - break; - } // case 104 - case 112: { - primaryEffectId_ = input.readUInt64(); - bitField0_ |= 0x00001000; - break; - } // case 112 - case 122: { - input.readMessage( - getGiftLabelIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00002000; - break; - } // case 122 - case 130: { - name_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00004000; - break; - } // case 130 - case 138: { - region_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00008000; - break; - } // case 138 - case 146: { - manual_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00010000; - break; - } // case 146 - case 152: { - forCustom_ = input.readBool(); - bitField0_ |= 0x00020000; - break; - } // case 152 - case 162: { - com.google.protobuf.MapEntry - specialEffectsMap__ = input.readMessage( - SpecialEffectsMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutableSpecialEffectsMap().getMutableMap().put( - specialEffectsMap__.getKey(), specialEffectsMap__.getValue()); - bitField0_ |= 0x00040000; - break; - } // case 162 - case 170: { - input.readMessage( - getIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00080000; - break; - } // case 170 - case 176: { - actionType_ = input.readUInt32(); - bitField0_ |= 0x00100000; - break; - } // case 176 - case 184: { - watermelonSeeds_ = input.readInt32(); - bitField0_ |= 0x00200000; - break; - } // case 184 - case 194: { - goldEffect_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00400000; - break; - } // case 194 - case 208: { - goldenBeans_ = input.readInt64(); - bitField0_ |= 0x00800000; - break; - } // case 208 - case 216: { - honorLevel_ = input.readInt64(); - bitField0_ |= 0x01000000; - break; - } // case 216 - case 224: { - itemType_ = input.readInt32(); - bitField0_ |= 0x02000000; - break; - } // case 224 - case 234: { - schemeUrl_ = input.readStringRequireUtf8(); - bitField0_ |= 0x04000000; - break; - } // case 234 - case 250: { - eventName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x08000000; - break; - } // case 250 - case 256: { - nobleLevel_ = input.readInt64(); - bitField0_ |= 0x10000000; - break; - } // case 256 - case 266: { - guideUrl_ = input.readStringRequireUtf8(); - bitField0_ |= 0x20000000; - break; - } // case 266 - case 272: { - punishMedicine_ = input.readBool(); - bitField0_ |= 0x40000000; - break; - } // case 272 - case 280: { - forPortal_ = input.readBool(); - bitField0_ |= 0x80000000; - break; - } // case 280 - case 290: { - businessText_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00000001; - break; - } // case 290 - case 296: { - cnyGift_ = input.readBool(); - bitField1_ |= 0x00000002; - break; - } // case 296 - case 304: { - appId_ = input.readInt64(); - bitField1_ |= 0x00000004; - break; - } // case 304 - case 312: { - vipLevel_ = input.readInt64(); - bitField1_ |= 0x00000008; - break; - } // case 312 - case 320: { - isGray_ = input.readBool(); - bitField1_ |= 0x00000010; - break; - } // case 320 - case 330: { - graySchemeUrl_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00000020; - break; - } // case 330 - case 336: { - giftScene_ = input.readInt64(); - bitField1_ |= 0x00000040; - break; - } // case 336 - case 354: { - java.lang.String s = input.readStringRequireUtf8(); - ensureTriggerWordsIsMutable(); - triggerWords_.add(s); - break; - } // case 354 - case 368: { - forFirstRecharge_ = input.readBool(); - bitField1_ |= 0x00000100; - break; - } // case 368 - case 378: { - input.readMessage( - getDynamicImgForSelectedFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000200; - break; - } // case 378 - case 384: { - afterSendAction_ = input.readInt32(); - bitField1_ |= 0x00000400; - break; - } // case 384 - case 392: { - giftOfflineTime_ = input.readInt64(); - bitField1_ |= 0x00000800; - break; - } // case 392 - case 402: { - topBarText_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00001000; - break; - } // case 402 - case 410: { - input.readMessage( - getTopRightAvatarFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00002000; - break; - } // case 410 - case 418: { - bannerSchemeUrl_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00004000; - break; - } // case 418 - case 424: { - isLocked_ = input.readBool(); - bitField1_ |= 0x00008000; - break; - } // case 424 - case 432: { - reqExtraType_ = input.readInt64(); - bitField1_ |= 0x00010000; - break; - } // case 432 - case 440: { - long v = input.readInt64(); - ensureAssetIdsIsMutable(); - assetIds_.addLong(v); - break; - } // case 440 - case 442: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureAssetIdsIsMutable(); - while (input.getBytesUntilLimit() > 0) { - assetIds_.addLong(input.readInt64()); - } - input.popLimit(limit); - break; - } // case 442 - case 464: { - needSweepLightCount_ = input.readInt32(); - bitField1_ |= 0x00040000; - break; - } // case 464 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - private int bitField1_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imageBuilder_; - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - public boolean hasImage() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Image image = 1; - * @return The image. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { - if (imageBuilder_ == null) { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } else { - return imageBuilder_.getMessage(); - } - } - /** - * .Image image = 1; - */ - public Builder setImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - image_ = value; - } else { - imageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder setImage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (imageBuilder_ == null) { - image_ = builderForValue.build(); - } else { - imageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder mergeImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imageBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - image_ != null && - image_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getImageBuilder().mergeFrom(value); - } else { - image_ = value; - } - } else { - imageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder clearImage() { - bitField0_ = (bitField0_ & ~0x00000001); - image_ = null; - if (imageBuilder_ != null) { - imageBuilder_.dispose(); - imageBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImageBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getImageFieldBuilder().getBuilder(); - } - /** - * .Image image = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { - if (imageBuilder_ != null) { - return imageBuilder_.getMessageOrBuilder(); - } else { - return image_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - } - /** - * .Image image = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getImageFieldBuilder() { - if (imageBuilder_ == null) { - imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getImage(), - getParentForChildren(), - isClean()); - image_ = null; - } - return imageBuilder_; - } - - private java.lang.Object describe_ = ""; - /** - * string describe = 2; - * @return The describe. - */ - public java.lang.String getDescribe() { - java.lang.Object ref = describe_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - describe_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string describe = 2; - * @return The bytes for describe. - */ - public com.google.protobuf.ByteString - getDescribeBytes() { - java.lang.Object ref = describe_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - describe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string describe = 2; - * @param value The describe to set. - * @return This builder for chaining. - */ - public Builder setDescribe( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - describe_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string describe = 2; - * @return This builder for chaining. - */ - public Builder clearDescribe() { - describe_ = getDefaultInstance().getDescribe(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string describe = 2; - * @param value The bytes for describe to set. - * @return This builder for chaining. - */ - public Builder setDescribeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - describe_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private boolean notify_ ; - /** - * bool notify = 3; - * @return The notify. - */ - @java.lang.Override - public boolean getNotify() { - return notify_; - } - /** - * bool notify = 3; - * @param value The notify to set. - * @return This builder for chaining. - */ - public Builder setNotify(boolean value) { - - notify_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bool notify = 3; - * @return This builder for chaining. - */ - public Builder clearNotify() { - bitField0_ = (bitField0_ & ~0x00000004); - notify_ = false; - onChanged(); - return this; - } - - private long duration_ ; - /** - * uint64 duration = 4; - * @return The duration. - */ - @java.lang.Override - public long getDuration() { - return duration_; - } - /** - * uint64 duration = 4; - * @param value The duration to set. - * @return This builder for chaining. - */ - public Builder setDuration(long value) { - - duration_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 duration = 4; - * @return This builder for chaining. - */ - public Builder clearDuration() { - bitField0_ = (bitField0_ & ~0x00000008); - duration_ = 0L; - onChanged(); - return this; - } - - private long id_ ; - /** - * uint64 id = 5; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - /** - * uint64 id = 5; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(long value) { - - id_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 id = 5; - * @return This builder for chaining. - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000010); - id_ = 0L; - onChanged(); - return this; - } - - private boolean forLinkmic_ ; - /** - *
-       * GiftStructFansClubInfo fansclubInfo = 6;
-       * 
- * - * bool for_linkmic = 7; - * @return The forLinkmic. - */ - @java.lang.Override - public boolean getForLinkmic() { - return forLinkmic_; - } - /** - *
-       * GiftStructFansClubInfo fansclubInfo = 6;
-       * 
- * - * bool for_linkmic = 7; - * @param value The forLinkmic to set. - * @return This builder for chaining. - */ - public Builder setForLinkmic(boolean value) { - - forLinkmic_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - *
-       * GiftStructFansClubInfo fansclubInfo = 6;
-       * 
- * - * bool for_linkmic = 7; - * @return This builder for chaining. - */ - public Builder clearForLinkmic() { - bitField0_ = (bitField0_ & ~0x00000020); - forLinkmic_ = false; - onChanged(); - return this; - } - - private boolean doodle_ ; - /** - * bool doodle = 8; - * @return The doodle. - */ - @java.lang.Override - public boolean getDoodle() { - return doodle_; - } - /** - * bool doodle = 8; - * @param value The doodle to set. - * @return This builder for chaining. - */ - public Builder setDoodle(boolean value) { - - doodle_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * bool doodle = 8; - * @return This builder for chaining. - */ - public Builder clearDoodle() { - bitField0_ = (bitField0_ & ~0x00000040); - doodle_ = false; - onChanged(); - return this; - } - - private boolean forFansclub_ ; - /** - * bool for_fansclub = 9; - * @return The forFansclub. - */ - @java.lang.Override - public boolean getForFansclub() { - return forFansclub_; - } - /** - * bool for_fansclub = 9; - * @param value The forFansclub to set. - * @return This builder for chaining. - */ - public Builder setForFansclub(boolean value) { - - forFansclub_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * bool for_fansclub = 9; - * @return This builder for chaining. - */ - public Builder clearForFansclub() { - bitField0_ = (bitField0_ & ~0x00000080); - forFansclub_ = false; - onChanged(); - return this; - } - - private boolean combo_ ; - /** - * bool combo = 10; - * @return The combo. - */ - @java.lang.Override - public boolean getCombo() { - return combo_; - } - /** - * bool combo = 10; - * @param value The combo to set. - * @return This builder for chaining. - */ - public Builder setCombo(boolean value) { - - combo_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * bool combo = 10; - * @return This builder for chaining. - */ - public Builder clearCombo() { - bitField0_ = (bitField0_ & ~0x00000100); - combo_ = false; - onChanged(); - return this; - } - - private int type_ ; - /** - * uint32 type = 11; - * @return The type. - */ - @java.lang.Override - public int getType() { - return type_; - } - /** - * uint32 type = 11; - * @param value The type to set. - * @return This builder for chaining. - */ - public Builder setType(int value) { - - type_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * uint32 type = 11; - * @return This builder for chaining. - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000200); - type_ = 0; - onChanged(); - return this; - } - - private int diamondCount_ ; - /** - * uint32 diamond_count = 12; - * @return The diamondCount. - */ - @java.lang.Override - public int getDiamondCount() { - return diamondCount_; - } - /** - * uint32 diamond_count = 12; - * @param value The diamondCount to set. - * @return This builder for chaining. - */ - public Builder setDiamondCount(int value) { - - diamondCount_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * uint32 diamond_count = 12; - * @return This builder for chaining. - */ - public Builder clearDiamondCount() { - bitField0_ = (bitField0_ & ~0x00000400); - diamondCount_ = 0; - onChanged(); - return this; - } - - private boolean isDisplayedOnPanel_ ; - /** - * bool is_displayed_on_panel = 13; - * @return The isDisplayedOnPanel. - */ - @java.lang.Override - public boolean getIsDisplayedOnPanel() { - return isDisplayedOnPanel_; - } - /** - * bool is_displayed_on_panel = 13; - * @param value The isDisplayedOnPanel to set. - * @return This builder for chaining. - */ - public Builder setIsDisplayedOnPanel(boolean value) { - - isDisplayedOnPanel_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool is_displayed_on_panel = 13; - * @return This builder for chaining. - */ - public Builder clearIsDisplayedOnPanel() { - bitField0_ = (bitField0_ & ~0x00000800); - isDisplayedOnPanel_ = false; - onChanged(); - return this; - } - - private long primaryEffectId_ ; - /** - * uint64 primary_effect_id = 14; - * @return The primaryEffectId. - */ - @java.lang.Override - public long getPrimaryEffectId() { - return primaryEffectId_; - } - /** - * uint64 primary_effect_id = 14; - * @param value The primaryEffectId to set. - * @return This builder for chaining. - */ - public Builder setPrimaryEffectId(long value) { - - primaryEffectId_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * uint64 primary_effect_id = 14; - * @return This builder for chaining. - */ - public Builder clearPrimaryEffectId() { - bitField0_ = (bitField0_ & ~0x00001000); - primaryEffectId_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> giftLabelIconBuilder_; - /** - * .Image gift_label_icon = 15; - * @return Whether the giftLabelIcon field is set. - */ - public boolean hasGiftLabelIcon() { - return ((bitField0_ & 0x00002000) != 0); - } - /** - * .Image gift_label_icon = 15; - * @return The giftLabelIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() { - if (giftLabelIconBuilder_ == null) { - return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; - } else { - return giftLabelIconBuilder_.getMessage(); - } - } - /** - * .Image gift_label_icon = 15; - */ - public Builder setGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (giftLabelIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - giftLabelIcon_ = value; - } else { - giftLabelIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image gift_label_icon = 15; - */ - public Builder setGiftLabelIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (giftLabelIconBuilder_ == null) { - giftLabelIcon_ = builderForValue.build(); - } else { - giftLabelIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image gift_label_icon = 15; - */ - public Builder mergeGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (giftLabelIconBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0) && - giftLabelIcon_ != null && - giftLabelIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getGiftLabelIconBuilder().mergeFrom(value); - } else { - giftLabelIcon_ = value; - } - } else { - giftLabelIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image gift_label_icon = 15; - */ - public Builder clearGiftLabelIcon() { - bitField0_ = (bitField0_ & ~0x00002000); - giftLabelIcon_ = null; - if (giftLabelIconBuilder_ != null) { - giftLabelIconBuilder_.dispose(); - giftLabelIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image gift_label_icon = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getGiftLabelIconBuilder() { - bitField0_ |= 0x00002000; - onChanged(); - return getGiftLabelIconFieldBuilder().getBuilder(); - } - /** - * .Image gift_label_icon = 15; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() { - if (giftLabelIconBuilder_ != null) { - return giftLabelIconBuilder_.getMessageOrBuilder(); - } else { - return giftLabelIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; - } - } - /** - * .Image gift_label_icon = 15; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getGiftLabelIconFieldBuilder() { - if (giftLabelIconBuilder_ == null) { - giftLabelIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getGiftLabelIcon(), - getParentForChildren(), - isClean()); - giftLabelIcon_ = null; - } - return giftLabelIconBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 16; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 16; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 16; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - name_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * string name = 16; - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00004000); - onChanged(); - return this; - } - /** - * string name = 16; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - - private java.lang.Object region_ = ""; - /** - * string region = 17; - * @return The region. - */ - public java.lang.String getRegion() { - java.lang.Object ref = region_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - region_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string region = 17; - * @return The bytes for region. - */ - public com.google.protobuf.ByteString - getRegionBytes() { - java.lang.Object ref = region_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - region_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string region = 17; - * @param value The region to set. - * @return This builder for chaining. - */ - public Builder setRegion( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - region_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * string region = 17; - * @return This builder for chaining. - */ - public Builder clearRegion() { - region_ = getDefaultInstance().getRegion(); - bitField0_ = (bitField0_ & ~0x00008000); - onChanged(); - return this; - } - /** - * string region = 17; - * @param value The bytes for region to set. - * @return This builder for chaining. - */ - public Builder setRegionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - region_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - - private java.lang.Object manual_ = ""; - /** - * string manual = 18; - * @return The manual. - */ - public java.lang.String getManual() { - java.lang.Object ref = manual_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - manual_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string manual = 18; - * @return The bytes for manual. - */ - public com.google.protobuf.ByteString - getManualBytes() { - java.lang.Object ref = manual_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - manual_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string manual = 18; - * @param value The manual to set. - * @return This builder for chaining. - */ - public Builder setManual( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - manual_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * string manual = 18; - * @return This builder for chaining. - */ - public Builder clearManual() { - manual_ = getDefaultInstance().getManual(); - bitField0_ = (bitField0_ & ~0x00010000); - onChanged(); - return this; - } - /** - * string manual = 18; - * @param value The bytes for manual to set. - * @return This builder for chaining. - */ - public Builder setManualBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - manual_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - - private boolean forCustom_ ; - /** - * bool for_custom = 19; - * @return The forCustom. - */ - @java.lang.Override - public boolean getForCustom() { - return forCustom_; - } - /** - * bool for_custom = 19; - * @param value The forCustom to set. - * @return This builder for chaining. - */ - public Builder setForCustom(boolean value) { - - forCustom_ = value; - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * bool for_custom = 19; - * @return This builder for chaining. - */ - public Builder clearForCustom() { - bitField0_ = (bitField0_ & ~0x00020000); - forCustom_ = false; - onChanged(); - return this; - } - - private com.google.protobuf.MapField< - java.lang.String, java.lang.Long> specialEffectsMap_; - private com.google.protobuf.MapField - internalGetSpecialEffectsMap() { - if (specialEffectsMap_ == null) { - return com.google.protobuf.MapField.emptyMapField( - SpecialEffectsMapDefaultEntryHolder.defaultEntry); - } - return specialEffectsMap_; - } - private com.google.protobuf.MapField - internalGetMutableSpecialEffectsMap() { - if (specialEffectsMap_ == null) { - specialEffectsMap_ = com.google.protobuf.MapField.newMapField( - SpecialEffectsMapDefaultEntryHolder.defaultEntry); - } - if (!specialEffectsMap_.isMutable()) { - specialEffectsMap_ = specialEffectsMap_.copy(); - } - bitField0_ |= 0x00040000; - onChanged(); - return specialEffectsMap_; - } - public int getSpecialEffectsMapCount() { - return internalGetSpecialEffectsMap().getMap().size(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public boolean containsSpecialEffectsMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - return internalGetSpecialEffectsMap().getMap().containsKey(key); - } - /** - * Use {@link #getSpecialEffectsMapMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getSpecialEffectsMap() { - return getSpecialEffectsMapMap(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public java.util.Map getSpecialEffectsMapMap() { - return internalGetSpecialEffectsMap().getMap(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public long getSpecialEffectsMapOrDefault( - java.lang.String key, - long defaultValue) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetSpecialEffectsMap().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - @java.lang.Override - public long getSpecialEffectsMapOrThrow( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - java.util.Map map = - internalGetSpecialEffectsMap().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearSpecialEffectsMap() { - bitField0_ = (bitField0_ & ~0x00040000); - internalGetMutableSpecialEffectsMap().getMutableMap() - .clear(); - return this; - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - public Builder removeSpecialEffectsMap( - java.lang.String key) { - if (key == null) { throw new NullPointerException("map key"); } - internalGetMutableSpecialEffectsMap().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableSpecialEffectsMap() { - bitField0_ |= 0x00040000; - return internalGetMutableSpecialEffectsMap().getMutableMap(); - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - public Builder putSpecialEffectsMap( - java.lang.String key, - long value) { - if (key == null) { throw new NullPointerException("map key"); } - - internalGetMutableSpecialEffectsMap().getMutableMap() - .put(key, value); - bitField0_ |= 0x00040000; - return this; - } - /** - * map<string, int64> specialEffectsMap = 20; - */ - public Builder putAllSpecialEffectsMap( - java.util.Map values) { - internalGetMutableSpecialEffectsMap().getMutableMap() - .putAll(values); - bitField0_ |= 0x00040000; - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; - /** - * .Image icon = 21; - * @return Whether the icon field is set. - */ - public boolean hasIcon() { - return ((bitField0_ & 0x00080000) != 0); - } - /** - * .Image icon = 21; - * @return The icon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - if (iconBuilder_ == null) { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } else { - return iconBuilder_.getMessage(); - } - } - /** - * .Image icon = 21; - */ - public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - icon_ = value; - } else { - iconBuilder_.setMessage(value); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image icon = 21; - */ - public Builder setIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (iconBuilder_ == null) { - icon_ = builderForValue.build(); - } else { - iconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image icon = 21; - */ - public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (((bitField0_ & 0x00080000) != 0) && - icon_ != null && - icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getIconBuilder().mergeFrom(value); - } else { - icon_ = value; - } - } else { - iconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image icon = 21; - */ - public Builder clearIcon() { - bitField0_ = (bitField0_ & ~0x00080000); - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image icon = 21; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { - bitField0_ |= 0x00080000; - onChanged(); - return getIconFieldBuilder().getBuilder(); - } - /** - * .Image icon = 21; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - if (iconBuilder_ != null) { - return iconBuilder_.getMessageOrBuilder(); - } else { - return icon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - } - /** - * .Image icon = 21; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getIconFieldBuilder() { - if (iconBuilder_ == null) { - iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getIcon(), - getParentForChildren(), - isClean()); - icon_ = null; - } - return iconBuilder_; - } - - private int actionType_ ; - /** - * uint32 action_type = 22; - * @return The actionType. - */ - @java.lang.Override - public int getActionType() { - return actionType_; - } - /** - * uint32 action_type = 22; - * @param value The actionType to set. - * @return This builder for chaining. - */ - public Builder setActionType(int value) { - - actionType_ = value; - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * uint32 action_type = 22; - * @return This builder for chaining. - */ - public Builder clearActionType() { - bitField0_ = (bitField0_ & ~0x00100000); - actionType_ = 0; - onChanged(); - return this; - } - - private int watermelonSeeds_ ; - /** - * int32 watermelonSeeds = 23; - * @return The watermelonSeeds. - */ - @java.lang.Override - public int getWatermelonSeeds() { - return watermelonSeeds_; - } - /** - * int32 watermelonSeeds = 23; - * @param value The watermelonSeeds to set. - * @return This builder for chaining. - */ - public Builder setWatermelonSeeds(int value) { - - watermelonSeeds_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * int32 watermelonSeeds = 23; - * @return This builder for chaining. - */ - public Builder clearWatermelonSeeds() { - bitField0_ = (bitField0_ & ~0x00200000); - watermelonSeeds_ = 0; - onChanged(); - return this; - } - - private java.lang.Object goldEffect_ = ""; - /** - * string goldEffect = 24; - * @return The goldEffect. - */ - public java.lang.String getGoldEffect() { - java.lang.Object ref = goldEffect_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - goldEffect_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string goldEffect = 24; - * @return The bytes for goldEffect. - */ - public com.google.protobuf.ByteString - getGoldEffectBytes() { - java.lang.Object ref = goldEffect_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - goldEffect_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string goldEffect = 24; - * @param value The goldEffect to set. - * @return This builder for chaining. - */ - public Builder setGoldEffect( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - goldEffect_ = value; - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * string goldEffect = 24; - * @return This builder for chaining. - */ - public Builder clearGoldEffect() { - goldEffect_ = getDefaultInstance().getGoldEffect(); - bitField0_ = (bitField0_ & ~0x00400000); - onChanged(); - return this; - } - /** - * string goldEffect = 24; - * @param value The bytes for goldEffect to set. - * @return This builder for chaining. - */ - public Builder setGoldEffectBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - goldEffect_ = value; - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - - private long goldenBeans_ ; - /** - *
-       * repeated LuckyMoneyGiftMeta subs = 25;
-       * 
- * - * int64 goldenBeans = 26; - * @return The goldenBeans. - */ - @java.lang.Override - public long getGoldenBeans() { - return goldenBeans_; - } - /** - *
-       * repeated LuckyMoneyGiftMeta subs = 25;
-       * 
- * - * int64 goldenBeans = 26; - * @param value The goldenBeans to set. - * @return This builder for chaining. - */ - public Builder setGoldenBeans(long value) { - - goldenBeans_ = value; - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - *
-       * repeated LuckyMoneyGiftMeta subs = 25;
-       * 
- * - * int64 goldenBeans = 26; - * @return This builder for chaining. - */ - public Builder clearGoldenBeans() { - bitField0_ = (bitField0_ & ~0x00800000); - goldenBeans_ = 0L; - onChanged(); - return this; - } - - private long honorLevel_ ; - /** - * int64 honorLevel = 27; - * @return The honorLevel. - */ - @java.lang.Override - public long getHonorLevel() { - return honorLevel_; - } - /** - * int64 honorLevel = 27; - * @param value The honorLevel to set. - * @return This builder for chaining. - */ - public Builder setHonorLevel(long value) { - - honorLevel_ = value; - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * int64 honorLevel = 27; - * @return This builder for chaining. - */ - public Builder clearHonorLevel() { - bitField0_ = (bitField0_ & ~0x01000000); - honorLevel_ = 0L; - onChanged(); - return this; - } - - private int itemType_ ; - /** - * int32 itemType = 28; - * @return The itemType. - */ - @java.lang.Override - public int getItemType() { - return itemType_; - } - /** - * int32 itemType = 28; - * @param value The itemType to set. - * @return This builder for chaining. - */ - public Builder setItemType(int value) { - - itemType_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - /** - * int32 itemType = 28; - * @return This builder for chaining. - */ - public Builder clearItemType() { - bitField0_ = (bitField0_ & ~0x02000000); - itemType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object schemeUrl_ = ""; - /** - * string schemeUrl = 29; - * @return The schemeUrl. - */ - public java.lang.String getSchemeUrl() { - java.lang.Object ref = schemeUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - schemeUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string schemeUrl = 29; - * @return The bytes for schemeUrl. - */ - public com.google.protobuf.ByteString - getSchemeUrlBytes() { - java.lang.Object ref = schemeUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - schemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string schemeUrl = 29; - * @param value The schemeUrl to set. - * @return This builder for chaining. - */ - public Builder setSchemeUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - schemeUrl_ = value; - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * string schemeUrl = 29; - * @return This builder for chaining. - */ - public Builder clearSchemeUrl() { - schemeUrl_ = getDefaultInstance().getSchemeUrl(); - bitField0_ = (bitField0_ & ~0x04000000); - onChanged(); - return this; - } - /** - * string schemeUrl = 29; - * @param value The bytes for schemeUrl to set. - * @return This builder for chaining. - */ - public Builder setSchemeUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - schemeUrl_ = value; - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - - private java.lang.Object eventName_ = ""; - /** - *
-       * GiftPanelOperation giftOperation = 30;
-       * 
- * - * string eventName = 31; - * @return The eventName. - */ - public java.lang.String getEventName() { - java.lang.Object ref = eventName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - eventName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * GiftPanelOperation giftOperation = 30;
-       * 
- * - * string eventName = 31; - * @return The bytes for eventName. - */ - public com.google.protobuf.ByteString - getEventNameBytes() { - java.lang.Object ref = eventName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - eventName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * GiftPanelOperation giftOperation = 30;
-       * 
- * - * string eventName = 31; - * @param value The eventName to set. - * @return This builder for chaining. - */ - public Builder setEventName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - eventName_ = value; - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - *
-       * GiftPanelOperation giftOperation = 30;
-       * 
- * - * string eventName = 31; - * @return This builder for chaining. - */ - public Builder clearEventName() { - eventName_ = getDefaultInstance().getEventName(); - bitField0_ = (bitField0_ & ~0x08000000); - onChanged(); - return this; - } - /** - *
-       * GiftPanelOperation giftOperation = 30;
-       * 
- * - * string eventName = 31; - * @param value The bytes for eventName to set. - * @return This builder for chaining. - */ - public Builder setEventNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - eventName_ = value; - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - - private long nobleLevel_ ; - /** - * int64 nobleLevel = 32; - * @return The nobleLevel. - */ - @java.lang.Override - public long getNobleLevel() { - return nobleLevel_; - } - /** - * int64 nobleLevel = 32; - * @param value The nobleLevel to set. - * @return This builder for chaining. - */ - public Builder setNobleLevel(long value) { - - nobleLevel_ = value; - bitField0_ |= 0x10000000; - onChanged(); - return this; - } - /** - * int64 nobleLevel = 32; - * @return This builder for chaining. - */ - public Builder clearNobleLevel() { - bitField0_ = (bitField0_ & ~0x10000000); - nobleLevel_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object guideUrl_ = ""; - /** - * string guideUrl = 33; - * @return The guideUrl. - */ - public java.lang.String getGuideUrl() { - java.lang.Object ref = guideUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guideUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string guideUrl = 33; - * @return The bytes for guideUrl. - */ - public com.google.protobuf.ByteString - getGuideUrlBytes() { - java.lang.Object ref = guideUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guideUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string guideUrl = 33; - * @param value The guideUrl to set. - * @return This builder for chaining. - */ - public Builder setGuideUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - guideUrl_ = value; - bitField0_ |= 0x20000000; - onChanged(); - return this; - } - /** - * string guideUrl = 33; - * @return This builder for chaining. - */ - public Builder clearGuideUrl() { - guideUrl_ = getDefaultInstance().getGuideUrl(); - bitField0_ = (bitField0_ & ~0x20000000); - onChanged(); - return this; - } - /** - * string guideUrl = 33; - * @param value The bytes for guideUrl to set. - * @return This builder for chaining. - */ - public Builder setGuideUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - guideUrl_ = value; - bitField0_ |= 0x20000000; - onChanged(); - return this; - } - - private boolean punishMedicine_ ; - /** - * bool punishMedicine = 34; - * @return The punishMedicine. - */ - @java.lang.Override - public boolean getPunishMedicine() { - return punishMedicine_; - } - /** - * bool punishMedicine = 34; - * @param value The punishMedicine to set. - * @return This builder for chaining. - */ - public Builder setPunishMedicine(boolean value) { - - punishMedicine_ = value; - bitField0_ |= 0x40000000; - onChanged(); - return this; - } - /** - * bool punishMedicine = 34; - * @return This builder for chaining. - */ - public Builder clearPunishMedicine() { - bitField0_ = (bitField0_ & ~0x40000000); - punishMedicine_ = false; - onChanged(); - return this; - } - - private boolean forPortal_ ; - /** - * bool forPortal = 35; - * @return The forPortal. - */ - @java.lang.Override - public boolean getForPortal() { - return forPortal_; - } - /** - * bool forPortal = 35; - * @param value The forPortal to set. - * @return This builder for chaining. - */ - public Builder setForPortal(boolean value) { - - forPortal_ = value; - bitField0_ |= 0x80000000; - onChanged(); - return this; - } - /** - * bool forPortal = 35; - * @return This builder for chaining. - */ - public Builder clearForPortal() { - bitField0_ = (bitField0_ & ~0x80000000); - forPortal_ = false; - onChanged(); - return this; - } - - private java.lang.Object businessText_ = ""; - /** - * string businessText = 36; - * @return The businessText. - */ - public java.lang.String getBusinessText() { - java.lang.Object ref = businessText_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - businessText_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string businessText = 36; - * @return The bytes for businessText. - */ - public com.google.protobuf.ByteString - getBusinessTextBytes() { - java.lang.Object ref = businessText_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - businessText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string businessText = 36; - * @param value The businessText to set. - * @return This builder for chaining. - */ - public Builder setBusinessText( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - businessText_ = value; - bitField1_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string businessText = 36; - * @return This builder for chaining. - */ - public Builder clearBusinessText() { - businessText_ = getDefaultInstance().getBusinessText(); - bitField1_ = (bitField1_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string businessText = 36; - * @param value The bytes for businessText to set. - * @return This builder for chaining. - */ - public Builder setBusinessTextBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - businessText_ = value; - bitField1_ |= 0x00000001; - onChanged(); - return this; - } - - private boolean cnyGift_ ; - /** - * bool cnyGift = 37; - * @return The cnyGift. - */ - @java.lang.Override - public boolean getCnyGift() { - return cnyGift_; - } - /** - * bool cnyGift = 37; - * @param value The cnyGift to set. - * @return This builder for chaining. - */ - public Builder setCnyGift(boolean value) { - - cnyGift_ = value; - bitField1_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool cnyGift = 37; - * @return This builder for chaining. - */ - public Builder clearCnyGift() { - bitField1_ = (bitField1_ & ~0x00000002); - cnyGift_ = false; - onChanged(); - return this; - } - - private long appId_ ; - /** - * int64 appId = 38; - * @return The appId. - */ - @java.lang.Override - public long getAppId() { - return appId_; - } - /** - * int64 appId = 38; - * @param value The appId to set. - * @return This builder for chaining. - */ - public Builder setAppId(long value) { - - appId_ = value; - bitField1_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 appId = 38; - * @return This builder for chaining. - */ - public Builder clearAppId() { - bitField1_ = (bitField1_ & ~0x00000004); - appId_ = 0L; - onChanged(); - return this; - } - - private long vipLevel_ ; - /** - * int64 vipLevel = 39; - * @return The vipLevel. - */ - @java.lang.Override - public long getVipLevel() { - return vipLevel_; - } - /** - * int64 vipLevel = 39; - * @param value The vipLevel to set. - * @return This builder for chaining. - */ - public Builder setVipLevel(long value) { - - vipLevel_ = value; - bitField1_ |= 0x00000008; - onChanged(); - return this; - } - /** - * int64 vipLevel = 39; - * @return This builder for chaining. - */ - public Builder clearVipLevel() { - bitField1_ = (bitField1_ & ~0x00000008); - vipLevel_ = 0L; - onChanged(); - return this; - } - - private boolean isGray_ ; - /** - * bool isGray = 40; - * @return The isGray. - */ - @java.lang.Override - public boolean getIsGray() { - return isGray_; - } - /** - * bool isGray = 40; - * @param value The isGray to set. - * @return This builder for chaining. - */ - public Builder setIsGray(boolean value) { - - isGray_ = value; - bitField1_ |= 0x00000010; - onChanged(); - return this; - } - /** - * bool isGray = 40; - * @return This builder for chaining. - */ - public Builder clearIsGray() { - bitField1_ = (bitField1_ & ~0x00000010); - isGray_ = false; - onChanged(); - return this; - } - - private java.lang.Object graySchemeUrl_ = ""; - /** - * string graySchemeUrl = 41; - * @return The graySchemeUrl. - */ - public java.lang.String getGraySchemeUrl() { - java.lang.Object ref = graySchemeUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - graySchemeUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string graySchemeUrl = 41; - * @return The bytes for graySchemeUrl. - */ - public com.google.protobuf.ByteString - getGraySchemeUrlBytes() { - java.lang.Object ref = graySchemeUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - graySchemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string graySchemeUrl = 41; - * @param value The graySchemeUrl to set. - * @return This builder for chaining. - */ - public Builder setGraySchemeUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - graySchemeUrl_ = value; - bitField1_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string graySchemeUrl = 41; - * @return This builder for chaining. - */ - public Builder clearGraySchemeUrl() { - graySchemeUrl_ = getDefaultInstance().getGraySchemeUrl(); - bitField1_ = (bitField1_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string graySchemeUrl = 41; - * @param value The bytes for graySchemeUrl to set. - * @return This builder for chaining. - */ - public Builder setGraySchemeUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - graySchemeUrl_ = value; - bitField1_ |= 0x00000020; - onChanged(); - return this; - } - - private long giftScene_ ; - /** - * int64 giftScene = 42; - * @return The giftScene. - */ - @java.lang.Override - public long getGiftScene() { - return giftScene_; - } - /** - * int64 giftScene = 42; - * @param value The giftScene to set. - * @return This builder for chaining. - */ - public Builder setGiftScene(long value) { - - giftScene_ = value; - bitField1_ |= 0x00000040; - onChanged(); - return this; - } - /** - * int64 giftScene = 42; - * @return This builder for chaining. - */ - public Builder clearGiftScene() { - bitField1_ = (bitField1_ & ~0x00000040); - giftScene_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringArrayList triggerWords_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureTriggerWordsIsMutable() { - if (!triggerWords_.isModifiable()) { - triggerWords_ = new com.google.protobuf.LazyStringArrayList(triggerWords_); - } - bitField1_ |= 0x00000080; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @return A list containing the triggerWords. - */ - public com.google.protobuf.ProtocolStringList - getTriggerWordsList() { - triggerWords_.makeImmutable(); - return triggerWords_; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @return The count of triggerWords. - */ - public int getTriggerWordsCount() { - return triggerWords_.size(); - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param index The index of the element to return. - * @return The triggerWords at the given index. - */ - public java.lang.String getTriggerWords(int index) { - return triggerWords_.get(index); - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param index The index of the value to return. - * @return The bytes of the triggerWords at the given index. - */ - public com.google.protobuf.ByteString - getTriggerWordsBytes(int index) { - return triggerWords_.getByteString(index); - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param index The index to set the value at. - * @param value The triggerWords to set. - * @return This builder for chaining. - */ - public Builder setTriggerWords( - int index, java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureTriggerWordsIsMutable(); - triggerWords_.set(index, value); - bitField1_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param value The triggerWords to add. - * @return This builder for chaining. - */ - public Builder addTriggerWords( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureTriggerWordsIsMutable(); - triggerWords_.add(value); - bitField1_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param values The triggerWords to add. - * @return This builder for chaining. - */ - public Builder addAllTriggerWords( - java.lang.Iterable values) { - ensureTriggerWordsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, triggerWords_); - bitField1_ |= 0x00000080; - onChanged(); - return this; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @return This builder for chaining. - */ - public Builder clearTriggerWords() { - triggerWords_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - bitField1_ = (bitField1_ & ~0x00000080);; - onChanged(); - return this; - } - /** - *
-       * GiftBanner giftBanner = 43;
-       * 
- * - * repeated string triggerWords = 44; - * @param value The bytes of the triggerWords to add. - * @return This builder for chaining. - */ - public Builder addTriggerWordsBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ensureTriggerWordsIsMutable(); - triggerWords_.add(value); - bitField1_ |= 0x00000080; - onChanged(); - return this; - } - - private boolean forFirstRecharge_ ; - /** - *
-       * repeated GiftBuffInfo giftBuffInfos = 45;
-       * 
- * - * bool forFirstRecharge = 46; - * @return The forFirstRecharge. - */ - @java.lang.Override - public boolean getForFirstRecharge() { - return forFirstRecharge_; - } - /** - *
-       * repeated GiftBuffInfo giftBuffInfos = 45;
-       * 
- * - * bool forFirstRecharge = 46; - * @param value The forFirstRecharge to set. - * @return This builder for chaining. - */ - public Builder setForFirstRecharge(boolean value) { - - forFirstRecharge_ = value; - bitField1_ |= 0x00000100; - onChanged(); - return this; - } - /** - *
-       * repeated GiftBuffInfo giftBuffInfos = 45;
-       * 
- * - * bool forFirstRecharge = 46; - * @return This builder for chaining. - */ - public Builder clearForFirstRecharge() { - bitField1_ = (bitField1_ & ~0x00000100); - forFirstRecharge_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> dynamicImgForSelectedBuilder_; - /** - * .Image dynamicImgForSelected = 47; - * @return Whether the dynamicImgForSelected field is set. - */ - public boolean hasDynamicImgForSelected() { - return ((bitField1_ & 0x00000200) != 0); - } - /** - * .Image dynamicImgForSelected = 47; - * @return The dynamicImgForSelected. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() { - if (dynamicImgForSelectedBuilder_ == null) { - return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; - } else { - return dynamicImgForSelectedBuilder_.getMessage(); - } - } - /** - * .Image dynamicImgForSelected = 47; - */ - public Builder setDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (dynamicImgForSelectedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - dynamicImgForSelected_ = value; - } else { - dynamicImgForSelectedBuilder_.setMessage(value); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image dynamicImgForSelected = 47; - */ - public Builder setDynamicImgForSelected( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (dynamicImgForSelectedBuilder_ == null) { - dynamicImgForSelected_ = builderForValue.build(); - } else { - dynamicImgForSelectedBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image dynamicImgForSelected = 47; - */ - public Builder mergeDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (dynamicImgForSelectedBuilder_ == null) { - if (((bitField1_ & 0x00000200) != 0) && - dynamicImgForSelected_ != null && - dynamicImgForSelected_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getDynamicImgForSelectedBuilder().mergeFrom(value); - } else { - dynamicImgForSelected_ = value; - } - } else { - dynamicImgForSelectedBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image dynamicImgForSelected = 47; - */ - public Builder clearDynamicImgForSelected() { - bitField1_ = (bitField1_ & ~0x00000200); - dynamicImgForSelected_ = null; - if (dynamicImgForSelectedBuilder_ != null) { - dynamicImgForSelectedBuilder_.dispose(); - dynamicImgForSelectedBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image dynamicImgForSelected = 47; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getDynamicImgForSelectedBuilder() { - bitField1_ |= 0x00000200; - onChanged(); - return getDynamicImgForSelectedFieldBuilder().getBuilder(); - } - /** - * .Image dynamicImgForSelected = 47; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() { - if (dynamicImgForSelectedBuilder_ != null) { - return dynamicImgForSelectedBuilder_.getMessageOrBuilder(); - } else { - return dynamicImgForSelected_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; - } - } - /** - * .Image dynamicImgForSelected = 47; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getDynamicImgForSelectedFieldBuilder() { - if (dynamicImgForSelectedBuilder_ == null) { - dynamicImgForSelectedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getDynamicImgForSelected(), - getParentForChildren(), - isClean()); - dynamicImgForSelected_ = null; - } - return dynamicImgForSelectedBuilder_; - } - - private int afterSendAction_ ; - /** - * int32 afterSendAction = 48; - * @return The afterSendAction. - */ - @java.lang.Override - public int getAfterSendAction() { - return afterSendAction_; - } - /** - * int32 afterSendAction = 48; - * @param value The afterSendAction to set. - * @return This builder for chaining. - */ - public Builder setAfterSendAction(int value) { - - afterSendAction_ = value; - bitField1_ |= 0x00000400; - onChanged(); - return this; - } - /** - * int32 afterSendAction = 48; - * @return This builder for chaining. - */ - public Builder clearAfterSendAction() { - bitField1_ = (bitField1_ & ~0x00000400); - afterSendAction_ = 0; - onChanged(); - return this; - } - - private long giftOfflineTime_ ; - /** - * int64 giftOfflineTime = 49; - * @return The giftOfflineTime. - */ - @java.lang.Override - public long getGiftOfflineTime() { - return giftOfflineTime_; - } - /** - * int64 giftOfflineTime = 49; - * @param value The giftOfflineTime to set. - * @return This builder for chaining. - */ - public Builder setGiftOfflineTime(long value) { - - giftOfflineTime_ = value; - bitField1_ |= 0x00000800; - onChanged(); - return this; - } - /** - * int64 giftOfflineTime = 49; - * @return This builder for chaining. - */ - public Builder clearGiftOfflineTime() { - bitField1_ = (bitField1_ & ~0x00000800); - giftOfflineTime_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object topBarText_ = ""; - /** - * string topBarText = 50; - * @return The topBarText. - */ - public java.lang.String getTopBarText() { - java.lang.Object ref = topBarText_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - topBarText_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string topBarText = 50; - * @return The bytes for topBarText. - */ - public com.google.protobuf.ByteString - getTopBarTextBytes() { - java.lang.Object ref = topBarText_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - topBarText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string topBarText = 50; - * @param value The topBarText to set. - * @return This builder for chaining. - */ - public Builder setTopBarText( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - topBarText_ = value; - bitField1_ |= 0x00001000; - onChanged(); - return this; - } - /** - * string topBarText = 50; - * @return This builder for chaining. - */ - public Builder clearTopBarText() { - topBarText_ = getDefaultInstance().getTopBarText(); - bitField1_ = (bitField1_ & ~0x00001000); - onChanged(); - return this; - } - /** - * string topBarText = 50; - * @param value The bytes for topBarText to set. - * @return This builder for chaining. - */ - public Builder setTopBarTextBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - topBarText_ = value; - bitField1_ |= 0x00001000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> topRightAvatarBuilder_; - /** - * .Image topRightAvatar = 51; - * @return Whether the topRightAvatar field is set. - */ - public boolean hasTopRightAvatar() { - return ((bitField1_ & 0x00002000) != 0); - } - /** - * .Image topRightAvatar = 51; - * @return The topRightAvatar. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() { - if (topRightAvatarBuilder_ == null) { - return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; - } else { - return topRightAvatarBuilder_.getMessage(); - } - } - /** - * .Image topRightAvatar = 51; - */ - public Builder setTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (topRightAvatarBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - topRightAvatar_ = value; - } else { - topRightAvatarBuilder_.setMessage(value); - } - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image topRightAvatar = 51; - */ - public Builder setTopRightAvatar( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (topRightAvatarBuilder_ == null) { - topRightAvatar_ = builderForValue.build(); - } else { - topRightAvatarBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image topRightAvatar = 51; - */ - public Builder mergeTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (topRightAvatarBuilder_ == null) { - if (((bitField1_ & 0x00002000) != 0) && - topRightAvatar_ != null && - topRightAvatar_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getTopRightAvatarBuilder().mergeFrom(value); - } else { - topRightAvatar_ = value; - } - } else { - topRightAvatarBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .Image topRightAvatar = 51; - */ - public Builder clearTopRightAvatar() { - bitField1_ = (bitField1_ & ~0x00002000); - topRightAvatar_ = null; - if (topRightAvatarBuilder_ != null) { - topRightAvatarBuilder_.dispose(); - topRightAvatarBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image topRightAvatar = 51; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getTopRightAvatarBuilder() { - bitField1_ |= 0x00002000; - onChanged(); - return getTopRightAvatarFieldBuilder().getBuilder(); - } - /** - * .Image topRightAvatar = 51; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() { - if (topRightAvatarBuilder_ != null) { - return topRightAvatarBuilder_.getMessageOrBuilder(); - } else { - return topRightAvatar_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; - } - } - /** - * .Image topRightAvatar = 51; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getTopRightAvatarFieldBuilder() { - if (topRightAvatarBuilder_ == null) { - topRightAvatarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getTopRightAvatar(), - getParentForChildren(), - isClean()); - topRightAvatar_ = null; - } - return topRightAvatarBuilder_; - } - - private java.lang.Object bannerSchemeUrl_ = ""; - /** - * string bannerSchemeUrl = 52; - * @return The bannerSchemeUrl. - */ - public java.lang.String getBannerSchemeUrl() { - java.lang.Object ref = bannerSchemeUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - bannerSchemeUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string bannerSchemeUrl = 52; - * @return The bytes for bannerSchemeUrl. - */ - public com.google.protobuf.ByteString - getBannerSchemeUrlBytes() { - java.lang.Object ref = bannerSchemeUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - bannerSchemeUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string bannerSchemeUrl = 52; - * @param value The bannerSchemeUrl to set. - * @return This builder for chaining. - */ - public Builder setBannerSchemeUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - bannerSchemeUrl_ = value; - bitField1_ |= 0x00004000; - onChanged(); - return this; - } - /** - * string bannerSchemeUrl = 52; - * @return This builder for chaining. - */ - public Builder clearBannerSchemeUrl() { - bannerSchemeUrl_ = getDefaultInstance().getBannerSchemeUrl(); - bitField1_ = (bitField1_ & ~0x00004000); - onChanged(); - return this; - } - /** - * string bannerSchemeUrl = 52; - * @param value The bytes for bannerSchemeUrl to set. - * @return This builder for chaining. - */ - public Builder setBannerSchemeUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - bannerSchemeUrl_ = value; - bitField1_ |= 0x00004000; - onChanged(); - return this; - } - - private boolean isLocked_ ; - /** - * bool isLocked = 53; - * @return The isLocked. - */ - @java.lang.Override - public boolean getIsLocked() { - return isLocked_; - } - /** - * bool isLocked = 53; - * @param value The isLocked to set. - * @return This builder for chaining. - */ - public Builder setIsLocked(boolean value) { - - isLocked_ = value; - bitField1_ |= 0x00008000; - onChanged(); - return this; - } - /** - * bool isLocked = 53; - * @return This builder for chaining. - */ - public Builder clearIsLocked() { - bitField1_ = (bitField1_ & ~0x00008000); - isLocked_ = false; - onChanged(); - return this; - } - - private long reqExtraType_ ; - /** - * int64 reqExtraType = 54; - * @return The reqExtraType. - */ - @java.lang.Override - public long getReqExtraType() { - return reqExtraType_; - } - /** - * int64 reqExtraType = 54; - * @param value The reqExtraType to set. - * @return This builder for chaining. - */ - public Builder setReqExtraType(long value) { - - reqExtraType_ = value; - bitField1_ |= 0x00010000; - onChanged(); - return this; - } - /** - * int64 reqExtraType = 54; - * @return This builder for chaining. - */ - public Builder clearReqExtraType() { - bitField1_ = (bitField1_ & ~0x00010000); - reqExtraType_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.Internal.LongList assetIds_ = emptyLongList(); - private void ensureAssetIdsIsMutable() { - if (!((bitField1_ & 0x00020000) != 0)) { - assetIds_ = mutableCopy(assetIds_); - bitField1_ |= 0x00020000; - } - } - /** - * repeated int64 assetIds = 55; - * @return A list containing the assetIds. - */ - public java.util.List - getAssetIdsList() { - return ((bitField1_ & 0x00020000) != 0) ? - java.util.Collections.unmodifiableList(assetIds_) : assetIds_; - } - /** - * repeated int64 assetIds = 55; - * @return The count of assetIds. - */ - public int getAssetIdsCount() { - return assetIds_.size(); - } - /** - * repeated int64 assetIds = 55; - * @param index The index of the element to return. - * @return The assetIds at the given index. - */ - public long getAssetIds(int index) { - return assetIds_.getLong(index); - } - /** - * repeated int64 assetIds = 55; - * @param index The index to set the value at. - * @param value The assetIds to set. - * @return This builder for chaining. - */ - public Builder setAssetIds( - int index, long value) { - - ensureAssetIdsIsMutable(); - assetIds_.setLong(index, value); - onChanged(); - return this; - } - /** - * repeated int64 assetIds = 55; - * @param value The assetIds to add. - * @return This builder for chaining. - */ - public Builder addAssetIds(long value) { - - ensureAssetIdsIsMutable(); - assetIds_.addLong(value); - onChanged(); - return this; - } - /** - * repeated int64 assetIds = 55; - * @param values The assetIds to add. - * @return This builder for chaining. - */ - public Builder addAllAssetIds( - java.lang.Iterable values) { - ensureAssetIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, assetIds_); - onChanged(); - return this; - } - /** - * repeated int64 assetIds = 55; - * @return This builder for chaining. - */ - public Builder clearAssetIds() { - assetIds_ = emptyLongList(); - bitField1_ = (bitField1_ & ~0x00020000); - onChanged(); - return this; - } - - private int needSweepLightCount_ ; - /** - *
-       * GiftPreviewInfo giftPreviewInfo = 56;
-       * GiftTip giftTip = 57;
-       * 
- * - * int32 needSweepLightCount = 58; - * @return The needSweepLightCount. - */ - @java.lang.Override - public int getNeedSweepLightCount() { - return needSweepLightCount_; - } - /** - *
-       * GiftPreviewInfo giftPreviewInfo = 56;
-       * GiftTip giftTip = 57;
-       * 
- * - * int32 needSweepLightCount = 58; - * @param value The needSweepLightCount to set. - * @return This builder for chaining. - */ - public Builder setNeedSweepLightCount(int value) { - - needSweepLightCount_ = value; - bitField1_ |= 0x00040000; - onChanged(); - return this; - } - /** - *
-       * GiftPreviewInfo giftPreviewInfo = 56;
-       * GiftTip giftTip = 57;
-       * 
- * - * int32 needSweepLightCount = 58; - * @return This builder for chaining. - */ - public Builder clearNeedSweepLightCount() { - bitField1_ = (bitField1_ & ~0x00040000); - needSweepLightCount_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:GiftStruct) - } - - // @@protoc_insertion_point(class_scope:GiftStruct) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public GiftStruct parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GiftStruct_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GiftStruct_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020GiftStruct.proto\032\013Image.proto\"\241\t\n\nGift" + - "Struct\022\025\n\005image\030\001 \001(\0132\006.Image\022\020\n\010describ" + - "e\030\002 \001(\t\022\016\n\006notify\030\003 \001(\010\022\020\n\010duration\030\004 \001(" + - "\004\022\n\n\002id\030\005 \001(\004\022\023\n\013for_linkmic\030\007 \001(\010\022\016\n\006do" + - "odle\030\010 \001(\010\022\024\n\014for_fansclub\030\t \001(\010\022\r\n\005comb" + - "o\030\n \001(\010\022\014\n\004type\030\013 \001(\r\022\025\n\rdiamond_count\030\014" + - " \001(\r\022\035\n\025is_displayed_on_panel\030\r \001(\010\022\031\n\021p" + - "rimary_effect_id\030\016 \001(\004\022\037\n\017gift_label_ico" + - "n\030\017 \001(\0132\006.Image\022\014\n\004name\030\020 \001(\t\022\016\n\006region\030" + - "\021 \001(\t\022\016\n\006manual\030\022 \001(\t\022\022\n\nfor_custom\030\023 \001(" + - "\010\022=\n\021specialEffectsMap\030\024 \003(\0132\".GiftStruc" + - "t.SpecialEffectsMapEntry\022\024\n\004icon\030\025 \001(\0132\006" + - ".Image\022\023\n\013action_type\030\026 \001(\r\022\027\n\017watermelo" + - "nSeeds\030\027 \001(\005\022\022\n\ngoldEffect\030\030 \001(\t\022\023\n\013gold" + - "enBeans\030\032 \001(\003\022\022\n\nhonorLevel\030\033 \001(\003\022\020\n\010ite" + - "mType\030\034 \001(\005\022\021\n\tschemeUrl\030\035 \001(\t\022\021\n\teventN" + - "ame\030\037 \001(\t\022\022\n\nnobleLevel\030 \001(\003\022\020\n\010guideUr" + - "l\030! \001(\t\022\026\n\016punishMedicine\030\" \001(\010\022\021\n\tforPo" + - "rtal\030# \001(\010\022\024\n\014businessText\030$ \001(\t\022\017\n\007cnyG" + - "ift\030% \001(\010\022\r\n\005appId\030& \001(\003\022\020\n\010vipLevel\030\' \001" + - "(\003\022\016\n\006isGray\030( \001(\010\022\025\n\rgraySchemeUrl\030) \001(" + - "\t\022\021\n\tgiftScene\030* \001(\003\022\024\n\014triggerWords\030, \003" + - "(\t\022\030\n\020forFirstRecharge\030. \001(\010\022%\n\025dynamicI" + - "mgForSelected\030/ \001(\0132\006.Image\022\027\n\017afterSend" + - "Action\0300 \001(\005\022\027\n\017giftOfflineTime\0301 \001(\003\022\022\n" + - "\ntopBarText\0302 \001(\t\022\036\n\016topRightAvatar\0303 \001(" + - "\0132\006.Image\022\027\n\017bannerSchemeUrl\0304 \001(\t\022\020\n\010is" + - "Locked\0305 \001(\010\022\024\n\014reqExtraType\0306 \001(\003\022\020\n\010as" + - "setIds\0307 \003(\003\022\033\n\023needSweepLightCount\030: \001(" + - "\005\0328\n\026SpecialEffectsMapEntry\022\013\n\003key\030\001 \001(\t" + - "\022\r\n\005value\030\002 \001(\003:\0028\001B8\n6tech.ordinaryroad" + - ".live.chat.client.douyin.protobuf.dtob\006p" + - "roto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - }); - internal_static_GiftStruct_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GiftStruct_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GiftStruct_descriptor, - new java.lang.String[] { "Image", "Describe", "Notify", "Duration", "Id", "ForLinkmic", "Doodle", "ForFansclub", "Combo", "Type", "DiamondCount", "IsDisplayedOnPanel", "PrimaryEffectId", "GiftLabelIcon", "Name", "Region", "Manual", "ForCustom", "SpecialEffectsMap", "Icon", "ActionType", "WatermelonSeeds", "GoldEffect", "GoldenBeans", "HonorLevel", "ItemType", "SchemeUrl", "EventName", "NobleLevel", "GuideUrl", "PunishMedicine", "ForPortal", "BusinessText", "CnyGift", "AppId", "VipLevel", "IsGray", "GraySchemeUrl", "GiftScene", "TriggerWords", "ForFirstRecharge", "DynamicImgForSelected", "AfterSendAction", "GiftOfflineTime", "TopBarText", "TopRightAvatar", "BannerSchemeUrl", "IsLocked", "ReqExtraType", "AssetIds", "NeedSweepLightCount", }); - internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor = - internal_static_GiftStruct_descriptor.getNestedTypes().get(0); - internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java deleted file mode 100644 index 4a30d6e7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java +++ /dev/null @@ -1,3722 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: Image.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class ImageOuterClass { - private ImageOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface ImageOrBuilder extends - // @@protoc_insertion_point(interface_extends:Image) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated string urlListList = 1; - * @return A list containing the urlListList. - */ - java.util.List - getUrlListListList(); - /** - * repeated string urlListList = 1; - * @return The count of urlListList. - */ - int getUrlListListCount(); - /** - * repeated string urlListList = 1; - * @param index The index of the element to return. - * @return The urlListList at the given index. - */ - java.lang.String getUrlListList(int index); - /** - * repeated string urlListList = 1; - * @param index The index of the value to return. - * @return The bytes of the urlListList at the given index. - */ - com.google.protobuf.ByteString - getUrlListListBytes(int index); - - /** - * string uri = 2; - * @return The uri. - */ - java.lang.String getUri(); - /** - * string uri = 2; - * @return The bytes for uri. - */ - com.google.protobuf.ByteString - getUriBytes(); - - /** - * int64 height = 3; - * @return The height. - */ - long getHeight(); - - /** - * int64 width = 4; - * @return The width. - */ - long getWidth(); - - /** - * string avgColor = 5; - * @return The avgColor. - */ - java.lang.String getAvgColor(); - /** - * string avgColor = 5; - * @return The bytes for avgColor. - */ - com.google.protobuf.ByteString - getAvgColorBytes(); - - /** - * int32 imageType = 6; - * @return The imageType. - */ - int getImageType(); - - /** - * string openWebUrl = 7; - * @return The openWebUrl. - */ - java.lang.String getOpenWebUrl(); - /** - * string openWebUrl = 7; - * @return The bytes for openWebUrl. - */ - com.google.protobuf.ByteString - getOpenWebUrlBytes(); - - /** - * .Image.Content content = 8; - * @return Whether the content field is set. - */ - boolean hasContent(); - /** - * .Image.Content content = 8; - * @return The content. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent(); - /** - * .Image.Content content = 8; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder(); - - /** - * bool isAnimated = 9; - * @return The isAnimated. - */ - boolean getIsAnimated(); - - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - java.util.List - getFlexSettingListListList(); - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index); - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - int getFlexSettingListListCount(); - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - java.util.List - getFlexSettingListListOrBuilderList(); - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( - int index); - - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - java.util.List - getTextSettingListListList(); - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index); - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - int getTextSettingListListCount(); - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - java.util.List - getTextSettingListListOrBuilderList(); - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( - int index); - } - /** - * Protobuf type {@code Image} - */ - public static final class Image extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Image) - ImageOrBuilder { - private static final long serialVersionUID = 0L; - // Use Image.newBuilder() to construct. - private Image(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Image() { - urlListList_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - uri_ = ""; - avgColor_ = ""; - openWebUrl_ = ""; - flexSettingListList_ = java.util.Collections.emptyList(); - textSettingListList_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Image(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder.class); - } - - public interface ContentOrBuilder extends - // @@protoc_insertion_point(interface_extends:Image.Content) - com.google.protobuf.MessageOrBuilder { - - /** - * string name = 1; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 1; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); - - /** - * string fontColor = 2; - * @return The fontColor. - */ - java.lang.String getFontColor(); - /** - * string fontColor = 2; - * @return The bytes for fontColor. - */ - com.google.protobuf.ByteString - getFontColorBytes(); - - /** - * int64 level = 3; - * @return The level. - */ - long getLevel(); - - /** - * string alternativeText = 4; - * @return The alternativeText. - */ - java.lang.String getAlternativeText(); - /** - * string alternativeText = 4; - * @return The bytes for alternativeText. - */ - com.google.protobuf.ByteString - getAlternativeTextBytes(); - } - /** - * Protobuf type {@code Image.Content} - */ - public static final class Content extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Image.Content) - ContentOrBuilder { - private static final long serialVersionUID = 0L; - // Use Content.newBuilder() to construct. - private Content(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Content() { - name_ = ""; - fontColor_ = ""; - alternativeText_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Content(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder.class); - } - - public static final int NAME_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - * string name = 1; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 1; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FONTCOLOR_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object fontColor_ = ""; - /** - * string fontColor = 2; - * @return The fontColor. - */ - @java.lang.Override - public java.lang.String getFontColor() { - java.lang.Object ref = fontColor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fontColor_ = s; - return s; - } - } - /** - * string fontColor = 2; - * @return The bytes for fontColor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getFontColorBytes() { - java.lang.Object ref = fontColor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fontColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LEVEL_FIELD_NUMBER = 3; - private long level_ = 0L; - /** - * int64 level = 3; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - - public static final int ALTERNATIVETEXT_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object alternativeText_ = ""; - /** - * string alternativeText = 4; - * @return The alternativeText. - */ - @java.lang.Override - public java.lang.String getAlternativeText() { - java.lang.Object ref = alternativeText_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - alternativeText_ = s; - return s; - } - } - /** - * string alternativeText = 4; - * @return The bytes for alternativeText. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAlternativeTextBytes() { - java.lang.Object ref = alternativeText_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - alternativeText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fontColor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fontColor_); - } - if (level_ != 0L) { - output.writeInt64(3, level_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alternativeText_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, alternativeText_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fontColor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fontColor_); - } - if (level_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, level_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alternativeText_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, alternativeText_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content) obj; - - if (!getName() - .equals(other.getName())) return false; - if (!getFontColor() - .equals(other.getFontColor())) return false; - if (getLevel() - != other.getLevel()) return false; - if (!getAlternativeText() - .equals(other.getAlternativeText())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - hash = (37 * hash) + FONTCOLOR_FIELD_NUMBER; - hash = (53 * hash) + getFontColor().hashCode(); - hash = (37 * hash) + LEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLevel()); - hash = (37 * hash) + ALTERNATIVETEXT_FIELD_NUMBER; - hash = (53 * hash) + getAlternativeText().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code Image.Content} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Image.Content) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - name_ = ""; - fontColor_ = ""; - level_ = 0L; - alternativeText_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.name_ = name_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.fontColor_ = fontColor_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.level_ = level_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.alternativeText_ = alternativeText_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getFontColor().isEmpty()) { - fontColor_ = other.fontColor_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getLevel() != 0L) { - setLevel(other.getLevel()); - } - if (!other.getAlternativeText().isEmpty()) { - alternativeText_ = other.alternativeText_; - bitField0_ |= 0x00000008; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - name_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - fontColor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - level_ = input.readInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - alternativeText_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object name_ = ""; - /** - * string name = 1; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 1; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 1; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - name_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string name = 1; - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string name = 1; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object fontColor_ = ""; - /** - * string fontColor = 2; - * @return The fontColor. - */ - public java.lang.String getFontColor() { - java.lang.Object ref = fontColor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - fontColor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string fontColor = 2; - * @return The bytes for fontColor. - */ - public com.google.protobuf.ByteString - getFontColorBytes() { - java.lang.Object ref = fontColor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - fontColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string fontColor = 2; - * @param value The fontColor to set. - * @return This builder for chaining. - */ - public Builder setFontColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - fontColor_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string fontColor = 2; - * @return This builder for chaining. - */ - public Builder clearFontColor() { - fontColor_ = getDefaultInstance().getFontColor(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string fontColor = 2; - * @param value The bytes for fontColor to set. - * @return This builder for chaining. - */ - public Builder setFontColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - fontColor_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long level_ ; - /** - * int64 level = 3; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - /** - * int64 level = 3; - * @param value The level to set. - * @return This builder for chaining. - */ - public Builder setLevel(long value) { - - level_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 level = 3; - * @return This builder for chaining. - */ - public Builder clearLevel() { - bitField0_ = (bitField0_ & ~0x00000004); - level_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object alternativeText_ = ""; - /** - * string alternativeText = 4; - * @return The alternativeText. - */ - public java.lang.String getAlternativeText() { - java.lang.Object ref = alternativeText_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - alternativeText_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string alternativeText = 4; - * @return The bytes for alternativeText. - */ - public com.google.protobuf.ByteString - getAlternativeTextBytes() { - java.lang.Object ref = alternativeText_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - alternativeText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string alternativeText = 4; - * @param value The alternativeText to set. - * @return This builder for chaining. - */ - public Builder setAlternativeText( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - alternativeText_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string alternativeText = 4; - * @return This builder for chaining. - */ - public Builder clearAlternativeText() { - alternativeText_ = getDefaultInstance().getAlternativeText(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string alternativeText = 4; - * @param value The bytes for alternativeText to set. - * @return This builder for chaining. - */ - public Builder setAlternativeTextBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - alternativeText_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:Image.Content) - } - - // @@protoc_insertion_point(class_scope:Image.Content) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Content parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface NinePatchSettingOrBuilder extends - // @@protoc_insertion_point(interface_extends:Image.NinePatchSetting) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code Image.NinePatchSetting} - */ - public static final class NinePatchSetting extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Image.NinePatchSetting) - NinePatchSettingOrBuilder { - private static final long serialVersionUID = 0L; - // Use NinePatchSetting.newBuilder() to construct. - private NinePatchSetting(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private NinePatchSetting() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new NinePatchSetting(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code Image.NinePatchSetting} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Image.NinePatchSetting) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:Image.NinePatchSetting) - } - - // @@protoc_insertion_point(class_scope:Image.NinePatchSetting) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public NinePatchSetting parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int URLLISTLIST_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private com.google.protobuf.LazyStringArrayList urlListList_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - /** - * repeated string urlListList = 1; - * @return A list containing the urlListList. - */ - public com.google.protobuf.ProtocolStringList - getUrlListListList() { - return urlListList_; - } - /** - * repeated string urlListList = 1; - * @return The count of urlListList. - */ - public int getUrlListListCount() { - return urlListList_.size(); - } - /** - * repeated string urlListList = 1; - * @param index The index of the element to return. - * @return The urlListList at the given index. - */ - public java.lang.String getUrlListList(int index) { - return urlListList_.get(index); - } - /** - * repeated string urlListList = 1; - * @param index The index of the value to return. - * @return The bytes of the urlListList at the given index. - */ - public com.google.protobuf.ByteString - getUrlListListBytes(int index) { - return urlListList_.getByteString(index); - } - - public static final int URI_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object uri_ = ""; - /** - * string uri = 2; - * @return The uri. - */ - @java.lang.Override - public java.lang.String getUri() { - java.lang.Object ref = uri_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - uri_ = s; - return s; - } - } - /** - * string uri = 2; - * @return The bytes for uri. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUriBytes() { - java.lang.Object ref = uri_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - uri_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int HEIGHT_FIELD_NUMBER = 3; - private long height_ = 0L; - /** - * int64 height = 3; - * @return The height. - */ - @java.lang.Override - public long getHeight() { - return height_; - } - - public static final int WIDTH_FIELD_NUMBER = 4; - private long width_ = 0L; - /** - * int64 width = 4; - * @return The width. - */ - @java.lang.Override - public long getWidth() { - return width_; - } - - public static final int AVGCOLOR_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object avgColor_ = ""; - /** - * string avgColor = 5; - * @return The avgColor. - */ - @java.lang.Override - public java.lang.String getAvgColor() { - java.lang.Object ref = avgColor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - avgColor_ = s; - return s; - } - } - /** - * string avgColor = 5; - * @return The bytes for avgColor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAvgColorBytes() { - java.lang.Object ref = avgColor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - avgColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int IMAGETYPE_FIELD_NUMBER = 6; - private int imageType_ = 0; - /** - * int32 imageType = 6; - * @return The imageType. - */ - @java.lang.Override - public int getImageType() { - return imageType_; - } - - public static final int OPENWEBURL_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object openWebUrl_ = ""; - /** - * string openWebUrl = 7; - * @return The openWebUrl. - */ - @java.lang.Override - public java.lang.String getOpenWebUrl() { - java.lang.Object ref = openWebUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - openWebUrl_ = s; - return s; - } - } - /** - * string openWebUrl = 7; - * @return The bytes for openWebUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getOpenWebUrlBytes() { - java.lang.Object ref = openWebUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - openWebUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CONTENT_FIELD_NUMBER = 8; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content content_; - /** - * .Image.Content content = 8; - * @return Whether the content field is set. - */ - @java.lang.Override - public boolean hasContent() { - return content_ != null; - } - /** - * .Image.Content content = 8; - * @return The content. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent() { - return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; - } - /** - * .Image.Content content = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder() { - return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; - } - - public static final int ISANIMATED_FIELD_NUMBER = 9; - private boolean isAnimated_ = false; - /** - * bool isAnimated = 9; - * @return The isAnimated. - */ - @java.lang.Override - public boolean getIsAnimated() { - return isAnimated_; - } - - public static final int FLEXSETTINGLISTLIST_FIELD_NUMBER = 10; - @SuppressWarnings("serial") - private java.util.List flexSettingListList_; - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - @java.lang.Override - public java.util.List getFlexSettingListListList() { - return flexSettingListList_; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - @java.lang.Override - public java.util.List - getFlexSettingListListOrBuilderList() { - return flexSettingListList_; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - @java.lang.Override - public int getFlexSettingListListCount() { - return flexSettingListList_.size(); - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index) { - return flexSettingListList_.get(index); - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( - int index) { - return flexSettingListList_.get(index); - } - - public static final int TEXTSETTINGLISTLIST_FIELD_NUMBER = 11; - @SuppressWarnings("serial") - private java.util.List textSettingListList_; - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - @java.lang.Override - public java.util.List getTextSettingListListList() { - return textSettingListList_; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - @java.lang.Override - public java.util.List - getTextSettingListListOrBuilderList() { - return textSettingListList_; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - @java.lang.Override - public int getTextSettingListListCount() { - return textSettingListList_.size(); - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index) { - return textSettingListList_.get(index); - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( - int index) { - return textSettingListList_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < urlListList_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, urlListList_.getRaw(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uri_); - } - if (height_ != 0L) { - output.writeInt64(3, height_); - } - if (width_ != 0L) { - output.writeInt64(4, width_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avgColor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, avgColor_); - } - if (imageType_ != 0) { - output.writeInt32(6, imageType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openWebUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, openWebUrl_); - } - if (content_ != null) { - output.writeMessage(8, getContent()); - } - if (isAnimated_ != false) { - output.writeBool(9, isAnimated_); - } - for (int i = 0; i < flexSettingListList_.size(); i++) { - output.writeMessage(10, flexSettingListList_.get(i)); - } - for (int i = 0; i < textSettingListList_.size(); i++) { - output.writeMessage(11, textSettingListList_.get(i)); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - { - int dataSize = 0; - for (int i = 0; i < urlListList_.size(); i++) { - dataSize += computeStringSizeNoTag(urlListList_.getRaw(i)); - } - size += dataSize; - size += 1 * getUrlListListList().size(); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uri_); - } - if (height_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, height_); - } - if (width_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(4, width_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avgColor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, avgColor_); - } - if (imageType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(6, imageType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openWebUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, openWebUrl_); - } - if (content_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, getContent()); - } - if (isAnimated_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(9, isAnimated_); - } - for (int i = 0; i < flexSettingListList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, flexSettingListList_.get(i)); - } - for (int i = 0; i < textSettingListList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(11, textSettingListList_.get(i)); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image) obj; - - if (!getUrlListListList() - .equals(other.getUrlListListList())) return false; - if (!getUri() - .equals(other.getUri())) return false; - if (getHeight() - != other.getHeight()) return false; - if (getWidth() - != other.getWidth()) return false; - if (!getAvgColor() - .equals(other.getAvgColor())) return false; - if (getImageType() - != other.getImageType()) return false; - if (!getOpenWebUrl() - .equals(other.getOpenWebUrl())) return false; - if (hasContent() != other.hasContent()) return false; - if (hasContent()) { - if (!getContent() - .equals(other.getContent())) return false; - } - if (getIsAnimated() - != other.getIsAnimated()) return false; - if (!getFlexSettingListListList() - .equals(other.getFlexSettingListListList())) return false; - if (!getTextSettingListListList() - .equals(other.getTextSettingListListList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getUrlListListCount() > 0) { - hash = (37 * hash) + URLLISTLIST_FIELD_NUMBER; - hash = (53 * hash) + getUrlListListList().hashCode(); - } - hash = (37 * hash) + URI_FIELD_NUMBER; - hash = (53 * hash) + getUri().hashCode(); - hash = (37 * hash) + HEIGHT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getHeight()); - hash = (37 * hash) + WIDTH_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getWidth()); - hash = (37 * hash) + AVGCOLOR_FIELD_NUMBER; - hash = (53 * hash) + getAvgColor().hashCode(); - hash = (37 * hash) + IMAGETYPE_FIELD_NUMBER; - hash = (53 * hash) + getImageType(); - hash = (37 * hash) + OPENWEBURL_FIELD_NUMBER; - hash = (53 * hash) + getOpenWebUrl().hashCode(); - if (hasContent()) { - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - } - hash = (37 * hash) + ISANIMATED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsAnimated()); - if (getFlexSettingListListCount() > 0) { - hash = (37 * hash) + FLEXSETTINGLISTLIST_FIELD_NUMBER; - hash = (53 * hash) + getFlexSettingListListList().hashCode(); - } - if (getTextSettingListListCount() > 0) { - hash = (37 * hash) + TEXTSETTINGLISTLIST_FIELD_NUMBER; - hash = (53 * hash) + getTextSettingListListList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code Image} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Image) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - urlListList_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - uri_ = ""; - height_ = 0L; - width_ = 0L; - avgColor_ = ""; - imageType_ = 0; - openWebUrl_ = ""; - content_ = null; - if (contentBuilder_ != null) { - contentBuilder_.dispose(); - contentBuilder_ = null; - } - isAnimated_ = false; - if (flexSettingListListBuilder_ == null) { - flexSettingListList_ = java.util.Collections.emptyList(); - } else { - flexSettingListList_ = null; - flexSettingListListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000200); - if (textSettingListListBuilder_ == null) { - textSettingListList_ = java.util.Collections.emptyList(); - } else { - textSettingListList_ = null; - textSettingListListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000400); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result) { - if (flexSettingListListBuilder_ == null) { - if (((bitField0_ & 0x00000200) != 0)) { - flexSettingListList_ = java.util.Collections.unmodifiableList(flexSettingListList_); - bitField0_ = (bitField0_ & ~0x00000200); - } - result.flexSettingListList_ = flexSettingListList_; - } else { - result.flexSettingListList_ = flexSettingListListBuilder_.build(); - } - if (textSettingListListBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0)) { - textSettingListList_ = java.util.Collections.unmodifiableList(textSettingListList_); - bitField0_ = (bitField0_ & ~0x00000400); - } - result.textSettingListList_ = textSettingListList_; - } else { - result.textSettingListList_ = textSettingListListBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - urlListList_.makeImmutable(); - result.urlListList_ = urlListList_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.uri_ = uri_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.height_ = height_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.width_ = width_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.avgColor_ = avgColor_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.imageType_ = imageType_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.openWebUrl_ = openWebUrl_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.content_ = contentBuilder_ == null - ? content_ - : contentBuilder_.build(); - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.isAnimated_ = isAnimated_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) return this; - if (!other.urlListList_.isEmpty()) { - if (urlListList_.isEmpty()) { - urlListList_ = other.urlListList_; - bitField0_ |= 0x00000001; - } else { - ensureUrlListListIsMutable(); - urlListList_.addAll(other.urlListList_); - } - onChanged(); - } - if (!other.getUri().isEmpty()) { - uri_ = other.uri_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getHeight() != 0L) { - setHeight(other.getHeight()); - } - if (other.getWidth() != 0L) { - setWidth(other.getWidth()); - } - if (!other.getAvgColor().isEmpty()) { - avgColor_ = other.avgColor_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (other.getImageType() != 0) { - setImageType(other.getImageType()); - } - if (!other.getOpenWebUrl().isEmpty()) { - openWebUrl_ = other.openWebUrl_; - bitField0_ |= 0x00000040; - onChanged(); - } - if (other.hasContent()) { - mergeContent(other.getContent()); - } - if (other.getIsAnimated() != false) { - setIsAnimated(other.getIsAnimated()); - } - if (flexSettingListListBuilder_ == null) { - if (!other.flexSettingListList_.isEmpty()) { - if (flexSettingListList_.isEmpty()) { - flexSettingListList_ = other.flexSettingListList_; - bitField0_ = (bitField0_ & ~0x00000200); - } else { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.addAll(other.flexSettingListList_); - } - onChanged(); - } - } else { - if (!other.flexSettingListList_.isEmpty()) { - if (flexSettingListListBuilder_.isEmpty()) { - flexSettingListListBuilder_.dispose(); - flexSettingListListBuilder_ = null; - flexSettingListList_ = other.flexSettingListList_; - bitField0_ = (bitField0_ & ~0x00000200); - flexSettingListListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getFlexSettingListListFieldBuilder() : null; - } else { - flexSettingListListBuilder_.addAllMessages(other.flexSettingListList_); - } - } - } - if (textSettingListListBuilder_ == null) { - if (!other.textSettingListList_.isEmpty()) { - if (textSettingListList_.isEmpty()) { - textSettingListList_ = other.textSettingListList_; - bitField0_ = (bitField0_ & ~0x00000400); - } else { - ensureTextSettingListListIsMutable(); - textSettingListList_.addAll(other.textSettingListList_); - } - onChanged(); - } - } else { - if (!other.textSettingListList_.isEmpty()) { - if (textSettingListListBuilder_.isEmpty()) { - textSettingListListBuilder_.dispose(); - textSettingListListBuilder_ = null; - textSettingListList_ = other.textSettingListList_; - bitField0_ = (bitField0_ & ~0x00000400); - textSettingListListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getTextSettingListListFieldBuilder() : null; - } else { - textSettingListListBuilder_.addAllMessages(other.textSettingListList_); - } - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - java.lang.String s = input.readStringRequireUtf8(); - ensureUrlListListIsMutable(); - urlListList_.add(s); - break; - } // case 10 - case 18: { - uri_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - height_ = input.readInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - width_ = input.readInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - avgColor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 48: { - imageType_ = input.readInt32(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - openWebUrl_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 66: { - input.readMessage( - getContentFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000080; - break; - } // case 66 - case 72: { - isAnimated_ = input.readBool(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 82: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.parser(), - extensionRegistry); - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.add(m); - } else { - flexSettingListListBuilder_.addMessage(m); - } - break; - } // case 82 - case 90: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.parser(), - extensionRegistry); - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - textSettingListList_.add(m); - } else { - textSettingListListBuilder_.addMessage(m); - } - break; - } // case 90 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private com.google.protobuf.LazyStringArrayList urlListList_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - private void ensureUrlListListIsMutable() { - if (!urlListList_.isModifiable()) { - urlListList_ = new com.google.protobuf.LazyStringArrayList(urlListList_); - } - bitField0_ |= 0x00000001; - } - /** - * repeated string urlListList = 1; - * @return A list containing the urlListList. - */ - public com.google.protobuf.ProtocolStringList - getUrlListListList() { - urlListList_.makeImmutable(); - return urlListList_; - } - /** - * repeated string urlListList = 1; - * @return The count of urlListList. - */ - public int getUrlListListCount() { - return urlListList_.size(); - } - /** - * repeated string urlListList = 1; - * @param index The index of the element to return. - * @return The urlListList at the given index. - */ - public java.lang.String getUrlListList(int index) { - return urlListList_.get(index); - } - /** - * repeated string urlListList = 1; - * @param index The index of the value to return. - * @return The bytes of the urlListList at the given index. - */ - public com.google.protobuf.ByteString - getUrlListListBytes(int index) { - return urlListList_.getByteString(index); - } - /** - * repeated string urlListList = 1; - * @param index The index to set the value at. - * @param value The urlListList to set. - * @return This builder for chaining. - */ - public Builder setUrlListList( - int index, java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureUrlListListIsMutable(); - urlListList_.set(index, value); - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * repeated string urlListList = 1; - * @param value The urlListList to add. - * @return This builder for chaining. - */ - public Builder addUrlListList( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ensureUrlListListIsMutable(); - urlListList_.add(value); - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * repeated string urlListList = 1; - * @param values The urlListList to add. - * @return This builder for chaining. - */ - public Builder addAllUrlListList( - java.lang.Iterable values) { - ensureUrlListListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, urlListList_); - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * repeated string urlListList = 1; - * @return This builder for chaining. - */ - public Builder clearUrlListList() { - urlListList_ = - com.google.protobuf.LazyStringArrayList.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001);; - onChanged(); - return this; - } - /** - * repeated string urlListList = 1; - * @param value The bytes of the urlListList to add. - * @return This builder for chaining. - */ - public Builder addUrlListListBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ensureUrlListListIsMutable(); - urlListList_.add(value); - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object uri_ = ""; - /** - * string uri = 2; - * @return The uri. - */ - public java.lang.String getUri() { - java.lang.Object ref = uri_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - uri_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string uri = 2; - * @return The bytes for uri. - */ - public com.google.protobuf.ByteString - getUriBytes() { - java.lang.Object ref = uri_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - uri_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string uri = 2; - * @param value The uri to set. - * @return This builder for chaining. - */ - public Builder setUri( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - uri_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string uri = 2; - * @return This builder for chaining. - */ - public Builder clearUri() { - uri_ = getDefaultInstance().getUri(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string uri = 2; - * @param value The bytes for uri to set. - * @return This builder for chaining. - */ - public Builder setUriBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - uri_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long height_ ; - /** - * int64 height = 3; - * @return The height. - */ - @java.lang.Override - public long getHeight() { - return height_; - } - /** - * int64 height = 3; - * @param value The height to set. - * @return This builder for chaining. - */ - public Builder setHeight(long value) { - - height_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 height = 3; - * @return This builder for chaining. - */ - public Builder clearHeight() { - bitField0_ = (bitField0_ & ~0x00000004); - height_ = 0L; - onChanged(); - return this; - } - - private long width_ ; - /** - * int64 width = 4; - * @return The width. - */ - @java.lang.Override - public long getWidth() { - return width_; - } - /** - * int64 width = 4; - * @param value The width to set. - * @return This builder for chaining. - */ - public Builder setWidth(long value) { - - width_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * int64 width = 4; - * @return This builder for chaining. - */ - public Builder clearWidth() { - bitField0_ = (bitField0_ & ~0x00000008); - width_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object avgColor_ = ""; - /** - * string avgColor = 5; - * @return The avgColor. - */ - public java.lang.String getAvgColor() { - java.lang.Object ref = avgColor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - avgColor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string avgColor = 5; - * @return The bytes for avgColor. - */ - public com.google.protobuf.ByteString - getAvgColorBytes() { - java.lang.Object ref = avgColor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - avgColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string avgColor = 5; - * @param value The avgColor to set. - * @return This builder for chaining. - */ - public Builder setAvgColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - avgColor_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string avgColor = 5; - * @return This builder for chaining. - */ - public Builder clearAvgColor() { - avgColor_ = getDefaultInstance().getAvgColor(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string avgColor = 5; - * @param value The bytes for avgColor to set. - * @return This builder for chaining. - */ - public Builder setAvgColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - avgColor_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - private int imageType_ ; - /** - * int32 imageType = 6; - * @return The imageType. - */ - @java.lang.Override - public int getImageType() { - return imageType_; - } - /** - * int32 imageType = 6; - * @param value The imageType to set. - * @return This builder for chaining. - */ - public Builder setImageType(int value) { - - imageType_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * int32 imageType = 6; - * @return This builder for chaining. - */ - public Builder clearImageType() { - bitField0_ = (bitField0_ & ~0x00000020); - imageType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object openWebUrl_ = ""; - /** - * string openWebUrl = 7; - * @return The openWebUrl. - */ - public java.lang.String getOpenWebUrl() { - java.lang.Object ref = openWebUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - openWebUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string openWebUrl = 7; - * @return The bytes for openWebUrl. - */ - public com.google.protobuf.ByteString - getOpenWebUrlBytes() { - java.lang.Object ref = openWebUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - openWebUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string openWebUrl = 7; - * @param value The openWebUrl to set. - * @return This builder for chaining. - */ - public Builder setOpenWebUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - openWebUrl_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string openWebUrl = 7; - * @return This builder for chaining. - */ - public Builder clearOpenWebUrl() { - openWebUrl_ = getDefaultInstance().getOpenWebUrl(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string openWebUrl = 7; - * @param value The bytes for openWebUrl to set. - * @return This builder for chaining. - */ - public Builder setOpenWebUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - openWebUrl_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content content_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder> contentBuilder_; - /** - * .Image.Content content = 8; - * @return Whether the content field is set. - */ - public boolean hasContent() { - return ((bitField0_ & 0x00000080) != 0); - } - /** - * .Image.Content content = 8; - * @return The content. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent() { - if (contentBuilder_ == null) { - return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; - } else { - return contentBuilder_.getMessage(); - } - } - /** - * .Image.Content content = 8; - */ - public Builder setContent(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content value) { - if (contentBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - content_ = value; - } else { - contentBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .Image.Content content = 8; - */ - public Builder setContent( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder builderForValue) { - if (contentBuilder_ == null) { - content_ = builderForValue.build(); - } else { - contentBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .Image.Content content = 8; - */ - public Builder mergeContent(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content value) { - if (contentBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) && - content_ != null && - content_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance()) { - getContentBuilder().mergeFrom(value); - } else { - content_ = value; - } - } else { - contentBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .Image.Content content = 8; - */ - public Builder clearContent() { - bitField0_ = (bitField0_ & ~0x00000080); - content_ = null; - if (contentBuilder_ != null) { - contentBuilder_.dispose(); - contentBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image.Content content = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder getContentBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getContentFieldBuilder().getBuilder(); - } - /** - * .Image.Content content = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder() { - if (contentBuilder_ != null) { - return contentBuilder_.getMessageOrBuilder(); - } else { - return content_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; - } - } - /** - * .Image.Content content = 8; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder> - getContentFieldBuilder() { - if (contentBuilder_ == null) { - contentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder>( - getContent(), - getParentForChildren(), - isClean()); - content_ = null; - } - return contentBuilder_; - } - - private boolean isAnimated_ ; - /** - * bool isAnimated = 9; - * @return The isAnimated. - */ - @java.lang.Override - public boolean getIsAnimated() { - return isAnimated_; - } - /** - * bool isAnimated = 9; - * @param value The isAnimated to set. - * @return This builder for chaining. - */ - public Builder setIsAnimated(boolean value) { - - isAnimated_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * bool isAnimated = 9; - * @return This builder for chaining. - */ - public Builder clearIsAnimated() { - bitField0_ = (bitField0_ & ~0x00000100); - isAnimated_ = false; - onChanged(); - return this; - } - - private java.util.List flexSettingListList_ = - java.util.Collections.emptyList(); - private void ensureFlexSettingListListIsMutable() { - if (!((bitField0_ & 0x00000200) != 0)) { - flexSettingListList_ = new java.util.ArrayList(flexSettingListList_); - bitField0_ |= 0x00000200; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> flexSettingListListBuilder_; - - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public java.util.List getFlexSettingListListList() { - if (flexSettingListListBuilder_ == null) { - return java.util.Collections.unmodifiableList(flexSettingListList_); - } else { - return flexSettingListListBuilder_.getMessageList(); - } - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public int getFlexSettingListListCount() { - if (flexSettingListListBuilder_ == null) { - return flexSettingListList_.size(); - } else { - return flexSettingListListBuilder_.getCount(); - } - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index) { - if (flexSettingListListBuilder_ == null) { - return flexSettingListList_.get(index); - } else { - return flexSettingListListBuilder_.getMessage(index); - } - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder setFlexSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (flexSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFlexSettingListListIsMutable(); - flexSettingListList_.set(index, value); - onChanged(); - } else { - flexSettingListListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder setFlexSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.set(index, builderForValue.build()); - onChanged(); - } else { - flexSettingListListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder addFlexSettingListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (flexSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFlexSettingListListIsMutable(); - flexSettingListList_.add(value); - onChanged(); - } else { - flexSettingListListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder addFlexSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (flexSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureFlexSettingListListIsMutable(); - flexSettingListList_.add(index, value); - onChanged(); - } else { - flexSettingListListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder addFlexSettingListList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.add(builderForValue.build()); - onChanged(); - } else { - flexSettingListListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder addFlexSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.add(index, builderForValue.build()); - onChanged(); - } else { - flexSettingListListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder addAllFlexSettingListList( - java.lang.Iterable values) { - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, flexSettingListList_); - onChanged(); - } else { - flexSettingListListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder clearFlexSettingListList() { - if (flexSettingListListBuilder_ == null) { - flexSettingListList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000200); - onChanged(); - } else { - flexSettingListListBuilder_.clear(); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public Builder removeFlexSettingListList(int index) { - if (flexSettingListListBuilder_ == null) { - ensureFlexSettingListListIsMutable(); - flexSettingListList_.remove(index); - onChanged(); - } else { - flexSettingListListBuilder_.remove(index); - } - return this; - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder getFlexSettingListListBuilder( - int index) { - return getFlexSettingListListFieldBuilder().getBuilder(index); - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( - int index) { - if (flexSettingListListBuilder_ == null) { - return flexSettingListList_.get(index); } else { - return flexSettingListListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public java.util.List - getFlexSettingListListOrBuilderList() { - if (flexSettingListListBuilder_ != null) { - return flexSettingListListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(flexSettingListList_); - } - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addFlexSettingListListBuilder() { - return getFlexSettingListListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addFlexSettingListListBuilder( - int index) { - return getFlexSettingListListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); - } - /** - * repeated .Image.NinePatchSetting flexSettingListList = 10; - */ - public java.util.List - getFlexSettingListListBuilderList() { - return getFlexSettingListListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> - getFlexSettingListListFieldBuilder() { - if (flexSettingListListBuilder_ == null) { - flexSettingListListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder>( - flexSettingListList_, - ((bitField0_ & 0x00000200) != 0), - getParentForChildren(), - isClean()); - flexSettingListList_ = null; - } - return flexSettingListListBuilder_; - } - - private java.util.List textSettingListList_ = - java.util.Collections.emptyList(); - private void ensureTextSettingListListIsMutable() { - if (!((bitField0_ & 0x00000400) != 0)) { - textSettingListList_ = new java.util.ArrayList(textSettingListList_); - bitField0_ |= 0x00000400; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> textSettingListListBuilder_; - - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public java.util.List getTextSettingListListList() { - if (textSettingListListBuilder_ == null) { - return java.util.Collections.unmodifiableList(textSettingListList_); - } else { - return textSettingListListBuilder_.getMessageList(); - } - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public int getTextSettingListListCount() { - if (textSettingListListBuilder_ == null) { - return textSettingListList_.size(); - } else { - return textSettingListListBuilder_.getCount(); - } - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index) { - if (textSettingListListBuilder_ == null) { - return textSettingListList_.get(index); - } else { - return textSettingListListBuilder_.getMessage(index); - } - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder setTextSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (textSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTextSettingListListIsMutable(); - textSettingListList_.set(index, value); - onChanged(); - } else { - textSettingListListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder setTextSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - textSettingListList_.set(index, builderForValue.build()); - onChanged(); - } else { - textSettingListListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder addTextSettingListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (textSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTextSettingListListIsMutable(); - textSettingListList_.add(value); - onChanged(); - } else { - textSettingListListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder addTextSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { - if (textSettingListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTextSettingListListIsMutable(); - textSettingListList_.add(index, value); - onChanged(); - } else { - textSettingListListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder addTextSettingListList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - textSettingListList_.add(builderForValue.build()); - onChanged(); - } else { - textSettingListListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder addTextSettingListList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - textSettingListList_.add(index, builderForValue.build()); - onChanged(); - } else { - textSettingListListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder addAllTextSettingListList( - java.lang.Iterable values) { - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, textSettingListList_); - onChanged(); - } else { - textSettingListListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder clearTextSettingListList() { - if (textSettingListListBuilder_ == null) { - textSettingListList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - } else { - textSettingListListBuilder_.clear(); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public Builder removeTextSettingListList(int index) { - if (textSettingListListBuilder_ == null) { - ensureTextSettingListListIsMutable(); - textSettingListList_.remove(index); - onChanged(); - } else { - textSettingListListBuilder_.remove(index); - } - return this; - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder getTextSettingListListBuilder( - int index) { - return getTextSettingListListFieldBuilder().getBuilder(index); - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( - int index) { - if (textSettingListListBuilder_ == null) { - return textSettingListList_.get(index); } else { - return textSettingListListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public java.util.List - getTextSettingListListOrBuilderList() { - if (textSettingListListBuilder_ != null) { - return textSettingListListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(textSettingListList_); - } - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addTextSettingListListBuilder() { - return getTextSettingListListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addTextSettingListListBuilder( - int index) { - return getTextSettingListListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); - } - /** - * repeated .Image.NinePatchSetting textSettingListList = 11; - */ - public java.util.List - getTextSettingListListBuilderList() { - return getTextSettingListListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> - getTextSettingListListFieldBuilder() { - if (textSettingListListBuilder_ == null) { - textSettingListListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder>( - textSettingListList_, - ((bitField0_ & 0x00000400) != 0), - getParentForChildren(), - isClean()); - textSettingListList_ = null; - } - return textSettingListListBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:Image) - } - - // @@protoc_insertion_point(class_scope:Image) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Image parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Image_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Image_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Image_Content_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Image_Content_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Image_NinePatchSetting_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Image_NinePatchSetting_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\013Image.proto\"\212\003\n\005Image\022\023\n\013urlListList\030\001" + - " \003(\t\022\013\n\003uri\030\002 \001(\t\022\016\n\006height\030\003 \001(\003\022\r\n\005wid" + - "th\030\004 \001(\003\022\020\n\010avgColor\030\005 \001(\t\022\021\n\timageType\030" + - "\006 \001(\005\022\022\n\nopenWebUrl\030\007 \001(\t\022\037\n\007content\030\010 \001" + - "(\0132\016.Image.Content\022\022\n\nisAnimated\030\t \001(\010\0224" + - "\n\023flexSettingListList\030\n \003(\0132\027.Image.Nine" + - "PatchSetting\0224\n\023textSettingListList\030\013 \003(" + - "\0132\027.Image.NinePatchSetting\032R\n\007Content\022\014\n" + - "\004name\030\001 \001(\t\022\021\n\tfontColor\030\002 \001(\t\022\r\n\005level\030" + - "\003 \001(\003\022\027\n\017alternativeText\030\004 \001(\t\032\022\n\020NinePa" + - "tchSettingB8\n6tech.ordinaryroad.live.cha" + - "t.client.douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_Image_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_Image_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Image_descriptor, - new java.lang.String[] { "UrlListList", "Uri", "Height", "Width", "AvgColor", "ImageType", "OpenWebUrl", "Content", "IsAnimated", "FlexSettingListList", "TextSettingListList", }); - internal_static_Image_Content_descriptor = - internal_static_Image_descriptor.getNestedTypes().get(0); - internal_static_Image_Content_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Image_Content_descriptor, - new java.lang.String[] { "Name", "FontColor", "Level", "AlternativeText", }); - internal_static_Image_NinePatchSetting_descriptor = - internal_static_Image_descriptor.getNestedTypes().get(1); - internal_static_Image_NinePatchSetting_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Image_NinePatchSetting_descriptor, - new java.lang.String[] { }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java deleted file mode 100644 index 378b1fcd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java +++ /dev/null @@ -1,773 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: PatternRef.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class PatternRefOuterClass { - private PatternRefOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface PatternRefOrBuilder extends - // @@protoc_insertion_point(interface_extends:PatternRef) - com.google.protobuf.MessageOrBuilder { - - /** - * string key = 1; - * @return The key. - */ - java.lang.String getKey(); - /** - * string key = 1; - * @return The bytes for key. - */ - com.google.protobuf.ByteString - getKeyBytes(); - - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - java.lang.String getDefaultPattern(); - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - com.google.protobuf.ByteString - getDefaultPatternBytes(); - } - /** - * Protobuf type {@code PatternRef} - */ - public static final class PatternRef extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:PatternRef) - PatternRefOrBuilder { - private static final long serialVersionUID = 0L; - // Use PatternRef.newBuilder() to construct. - private PatternRef(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PatternRef() { - key_ = ""; - defaultPattern_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PatternRef(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder.class); - } - - public static final int KEY_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - @java.lang.Override - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DEFAULT_PATTERN_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object defaultPattern_ = ""; - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - @java.lang.Override - public java.lang.String getDefaultPattern() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPattern_ = s; - return s; - } - } - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDefaultPatternBytes() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPattern_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPattern_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef) obj; - - if (!getKey() - .equals(other.getKey())) return false; - if (!getDefaultPattern() - .equals(other.getDefaultPattern())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + KEY_FIELD_NUMBER; - hash = (53 * hash) + getKey().hashCode(); - hash = (37 * hash) + DEFAULT_PATTERN_FIELD_NUMBER; - hash = (53 * hash) + getDefaultPattern().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code PatternRef} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:PatternRef) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - key_ = ""; - defaultPattern_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.key_ = key_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.defaultPattern_ = defaultPattern_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance()) return this; - if (!other.getKey().isEmpty()) { - key_ = other.key_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getDefaultPattern().isEmpty()) { - defaultPattern_ = other.defaultPattern_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - key_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - defaultPattern_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string key = 1; - * @param value The key to set. - * @return This builder for chaining. - */ - public Builder setKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string key = 1; - * @return This builder for chaining. - */ - public Builder clearKey() { - key_ = getDefaultInstance().getKey(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string key = 1; - * @param value The bytes for key to set. - * @return This builder for chaining. - */ - public Builder setKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object defaultPattern_ = ""; - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - public java.lang.String getDefaultPattern() { - java.lang.Object ref = defaultPattern_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPattern_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - public com.google.protobuf.ByteString - getDefaultPatternBytes() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string default_pattern = 2; - * @param value The defaultPattern to set. - * @return This builder for chaining. - */ - public Builder setDefaultPattern( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - defaultPattern_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string default_pattern = 2; - * @return This builder for chaining. - */ - public Builder clearDefaultPattern() { - defaultPattern_ = getDefaultInstance().getDefaultPattern(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string default_pattern = 2; - * @param value The bytes for defaultPattern to set. - * @return This builder for chaining. - */ - public Builder setDefaultPatternBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - defaultPattern_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:PatternRef) - } - - // @@protoc_insertion_point(class_scope:PatternRef) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PatternRef parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_PatternRef_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_PatternRef_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020PatternRef.proto\"2\n\nPatternRef\022\013\n\003key\030" + - "\001 \001(\t\022\027\n\017default_pattern\030\002 \001(\tB8\n6tech.o" + - "rdinaryroad.live.chat.client.douyin.prot" + - "obuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_PatternRef_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_PatternRef_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_PatternRef_descriptor, - new java.lang.String[] { "Key", "DefaultPattern", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java deleted file mode 100644 index 6585a114..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java +++ /dev/null @@ -1,823 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: PublicAreaCommon.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class PublicAreaCommonOuterClass { - private PublicAreaCommonOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface PublicAreaCommonOrBuilder extends - // @@protoc_insertion_point(interface_extends:PublicAreaCommon) - com.google.protobuf.MessageOrBuilder { - - /** - * .Image user_label = 1; - * @return Whether the userLabel field is set. - */ - boolean hasUserLabel(); - /** - * .Image user_label = 1; - * @return The userLabel. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel(); - /** - * .Image user_label = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder(); - - /** - * uint64 user_consume_in_room = 2; - * @return The userConsumeInRoom. - */ - long getUserConsumeInRoom(); - - /** - * uint64 user_send_gift_cnt_in_room = 3; - * @return The userSendGiftCntInRoom. - */ - long getUserSendGiftCntInRoom(); - } - /** - * Protobuf type {@code PublicAreaCommon} - */ - public static final class PublicAreaCommon extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:PublicAreaCommon) - PublicAreaCommonOrBuilder { - private static final long serialVersionUID = 0L; - // Use PublicAreaCommon.newBuilder() to construct. - private PublicAreaCommon(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PublicAreaCommon() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PublicAreaCommon(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder.class); - } - - public static final int USER_LABEL_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image userLabel_; - /** - * .Image user_label = 1; - * @return Whether the userLabel field is set. - */ - @java.lang.Override - public boolean hasUserLabel() { - return userLabel_ != null; - } - /** - * .Image user_label = 1; - * @return The userLabel. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel() { - return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; - } - /** - * .Image user_label = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder() { - return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; - } - - public static final int USER_CONSUME_IN_ROOM_FIELD_NUMBER = 2; - private long userConsumeInRoom_ = 0L; - /** - * uint64 user_consume_in_room = 2; - * @return The userConsumeInRoom. - */ - @java.lang.Override - public long getUserConsumeInRoom() { - return userConsumeInRoom_; - } - - public static final int USER_SEND_GIFT_CNT_IN_ROOM_FIELD_NUMBER = 3; - private long userSendGiftCntInRoom_ = 0L; - /** - * uint64 user_send_gift_cnt_in_room = 3; - * @return The userSendGiftCntInRoom. - */ - @java.lang.Override - public long getUserSendGiftCntInRoom() { - return userSendGiftCntInRoom_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (userLabel_ != null) { - output.writeMessage(1, getUserLabel()); - } - if (userConsumeInRoom_ != 0L) { - output.writeUInt64(2, userConsumeInRoom_); - } - if (userSendGiftCntInRoom_ != 0L) { - output.writeUInt64(3, userSendGiftCntInRoom_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (userLabel_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getUserLabel()); - } - if (userConsumeInRoom_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, userConsumeInRoom_); - } - if (userSendGiftCntInRoom_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, userSendGiftCntInRoom_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon) obj; - - if (hasUserLabel() != other.hasUserLabel()) return false; - if (hasUserLabel()) { - if (!getUserLabel() - .equals(other.getUserLabel())) return false; - } - if (getUserConsumeInRoom() - != other.getUserConsumeInRoom()) return false; - if (getUserSendGiftCntInRoom() - != other.getUserSendGiftCntInRoom()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasUserLabel()) { - hash = (37 * hash) + USER_LABEL_FIELD_NUMBER; - hash = (53 * hash) + getUserLabel().hashCode(); - } - hash = (37 * hash) + USER_CONSUME_IN_ROOM_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUserConsumeInRoom()); - hash = (37 * hash) + USER_SEND_GIFT_CNT_IN_ROOM_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUserSendGiftCntInRoom()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code PublicAreaCommon} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:PublicAreaCommon) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - userLabel_ = null; - if (userLabelBuilder_ != null) { - userLabelBuilder_.dispose(); - userLabelBuilder_ = null; - } - userConsumeInRoom_ = 0L; - userSendGiftCntInRoom_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.userLabel_ = userLabelBuilder_ == null - ? userLabel_ - : userLabelBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.userConsumeInRoom_ = userConsumeInRoom_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.userSendGiftCntInRoom_ = userSendGiftCntInRoom_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance()) return this; - if (other.hasUserLabel()) { - mergeUserLabel(other.getUserLabel()); - } - if (other.getUserConsumeInRoom() != 0L) { - setUserConsumeInRoom(other.getUserConsumeInRoom()); - } - if (other.getUserSendGiftCntInRoom() != 0L) { - setUserSendGiftCntInRoom(other.getUserSendGiftCntInRoom()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getUserLabelFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - userConsumeInRoom_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - userSendGiftCntInRoom_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image userLabel_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> userLabelBuilder_; - /** - * .Image user_label = 1; - * @return Whether the userLabel field is set. - */ - public boolean hasUserLabel() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Image user_label = 1; - * @return The userLabel. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel() { - if (userLabelBuilder_ == null) { - return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; - } else { - return userLabelBuilder_.getMessage(); - } - } - /** - * .Image user_label = 1; - */ - public Builder setUserLabel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (userLabelBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - userLabel_ = value; - } else { - userLabelBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image user_label = 1; - */ - public Builder setUserLabel( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (userLabelBuilder_ == null) { - userLabel_ = builderForValue.build(); - } else { - userLabelBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image user_label = 1; - */ - public Builder mergeUserLabel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (userLabelBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - userLabel_ != null && - userLabel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getUserLabelBuilder().mergeFrom(value); - } else { - userLabel_ = value; - } - } else { - userLabelBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image user_label = 1; - */ - public Builder clearUserLabel() { - bitField0_ = (bitField0_ & ~0x00000001); - userLabel_ = null; - if (userLabelBuilder_ != null) { - userLabelBuilder_.dispose(); - userLabelBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image user_label = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getUserLabelBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getUserLabelFieldBuilder().getBuilder(); - } - /** - * .Image user_label = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder() { - if (userLabelBuilder_ != null) { - return userLabelBuilder_.getMessageOrBuilder(); - } else { - return userLabel_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; - } - } - /** - * .Image user_label = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getUserLabelFieldBuilder() { - if (userLabelBuilder_ == null) { - userLabelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getUserLabel(), - getParentForChildren(), - isClean()); - userLabel_ = null; - } - return userLabelBuilder_; - } - - private long userConsumeInRoom_ ; - /** - * uint64 user_consume_in_room = 2; - * @return The userConsumeInRoom. - */ - @java.lang.Override - public long getUserConsumeInRoom() { - return userConsumeInRoom_; - } - /** - * uint64 user_consume_in_room = 2; - * @param value The userConsumeInRoom to set. - * @return This builder for chaining. - */ - public Builder setUserConsumeInRoom(long value) { - - userConsumeInRoom_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 user_consume_in_room = 2; - * @return This builder for chaining. - */ - public Builder clearUserConsumeInRoom() { - bitField0_ = (bitField0_ & ~0x00000002); - userConsumeInRoom_ = 0L; - onChanged(); - return this; - } - - private long userSendGiftCntInRoom_ ; - /** - * uint64 user_send_gift_cnt_in_room = 3; - * @return The userSendGiftCntInRoom. - */ - @java.lang.Override - public long getUserSendGiftCntInRoom() { - return userSendGiftCntInRoom_; - } - /** - * uint64 user_send_gift_cnt_in_room = 3; - * @param value The userSendGiftCntInRoom to set. - * @return This builder for chaining. - */ - public Builder setUserSendGiftCntInRoom(long value) { - - userSendGiftCntInRoom_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 user_send_gift_cnt_in_room = 3; - * @return This builder for chaining. - */ - public Builder clearUserSendGiftCntInRoom() { - bitField0_ = (bitField0_ & ~0x00000004); - userSendGiftCntInRoom_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:PublicAreaCommon) - } - - // @@protoc_insertion_point(class_scope:PublicAreaCommon) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PublicAreaCommon parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_PublicAreaCommon_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_PublicAreaCommon_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026PublicAreaCommon.proto\032\013Image.proto\"p\n" + - "\020PublicAreaCommon\022\032\n\nuser_label\030\001 \001(\0132\006." + - "Image\022\034\n\024user_consume_in_room\030\002 \001(\004\022\"\n\032u" + - "ser_send_gift_cnt_in_room\030\003 \001(\004B8\n6tech." + - "ordinaryroad.live.chat.client.douyin.pro" + - "tobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - }); - internal_static_PublicAreaCommon_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_PublicAreaCommon_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_PublicAreaCommon_descriptor, - new java.lang.String[] { "UserLabel", "UserConsumeInRoom", "UserSendGiftCntInRoom", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java deleted file mode 100644 index 9e29e90a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java +++ /dev/null @@ -1,1968 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextEffectDetail.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextEffectDetailOuterClass { - private TextEffectDetailOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextEffectDetailOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextEffectDetail) - com.google.protobuf.MessageOrBuilder { - - /** - * .Text text = 1; - * @return Whether the text field is set. - */ - boolean hasText(); - /** - * .Text text = 1; - * @return The text. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText(); - /** - * .Text text = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder(); - - /** - * uint32 text_font_size = 2; - * @return The textFontSize. - */ - int getTextFontSize(); - - /** - * .Image background = 3; - * @return Whether the background field is set. - */ - boolean hasBackground(); - /** - * .Image background = 3; - * @return The background. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground(); - /** - * .Image background = 3; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder(); - - /** - * uint32 start = 4; - * @return The start. - */ - int getStart(); - - /** - * uint32 duration = 5; - * @return The duration. - */ - int getDuration(); - - /** - * uint32 x = 6; - * @return The x. - */ - int getX(); - - /** - * uint32 y = 7; - * @return The y. - */ - int getY(); - - /** - * uint32 width = 8; - * @return The width. - */ - int getWidth(); - - /** - * uint32 height = 9; - * @return The height. - */ - int getHeight(); - - /** - * uint32 shadow_dx = 10; - * @return The shadowDx. - */ - int getShadowDx(); - - /** - * uint32 shadow_dy = 11; - * @return The shadowDy. - */ - int getShadowDy(); - - /** - * uint32 shadow_radius = 12; - * @return The shadowRadius. - */ - int getShadowRadius(); - - /** - * string shadow_color = 13; - * @return The shadowColor. - */ - java.lang.String getShadowColor(); - /** - * string shadow_color = 13; - * @return The bytes for shadowColor. - */ - com.google.protobuf.ByteString - getShadowColorBytes(); - - /** - * string stroke_color = 14; - * @return The strokeColor. - */ - java.lang.String getStrokeColor(); - /** - * string stroke_color = 14; - * @return The bytes for strokeColor. - */ - com.google.protobuf.ByteString - getStrokeColorBytes(); - - /** - * uint32 stroke_width = 15; - * @return The strokeWidth. - */ - int getStrokeWidth(); - } - /** - * Protobuf type {@code TextEffectDetail} - */ - public static final class TextEffectDetail extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextEffectDetail) - TextEffectDetailOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextEffectDetail.newBuilder() to construct. - private TextEffectDetail(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextEffectDetail() { - shadowColor_ = ""; - strokeColor_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextEffectDetail(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder.class); - } - - public static final int TEXT_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text text_; - /** - * .Text text = 1; - * @return Whether the text field is set. - */ - @java.lang.Override - public boolean hasText() { - return text_ != null; - } - /** - * .Text text = 1; - * @return The text. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText() { - return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; - } - /** - * .Text text = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder() { - return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; - } - - public static final int TEXT_FONT_SIZE_FIELD_NUMBER = 2; - private int textFontSize_ = 0; - /** - * uint32 text_font_size = 2; - * @return The textFontSize. - */ - @java.lang.Override - public int getTextFontSize() { - return textFontSize_; - } - - public static final int BACKGROUND_FIELD_NUMBER = 3; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; - /** - * .Image background = 3; - * @return Whether the background field is set. - */ - @java.lang.Override - public boolean hasBackground() { - return background_ != null; - } - /** - * .Image background = 3; - * @return The background. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - /** - * .Image background = 3; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - - public static final int START_FIELD_NUMBER = 4; - private int start_ = 0; - /** - * uint32 start = 4; - * @return The start. - */ - @java.lang.Override - public int getStart() { - return start_; - } - - public static final int DURATION_FIELD_NUMBER = 5; - private int duration_ = 0; - /** - * uint32 duration = 5; - * @return The duration. - */ - @java.lang.Override - public int getDuration() { - return duration_; - } - - public static final int X_FIELD_NUMBER = 6; - private int x_ = 0; - /** - * uint32 x = 6; - * @return The x. - */ - @java.lang.Override - public int getX() { - return x_; - } - - public static final int Y_FIELD_NUMBER = 7; - private int y_ = 0; - /** - * uint32 y = 7; - * @return The y. - */ - @java.lang.Override - public int getY() { - return y_; - } - - public static final int WIDTH_FIELD_NUMBER = 8; - private int width_ = 0; - /** - * uint32 width = 8; - * @return The width. - */ - @java.lang.Override - public int getWidth() { - return width_; - } - - public static final int HEIGHT_FIELD_NUMBER = 9; - private int height_ = 0; - /** - * uint32 height = 9; - * @return The height. - */ - @java.lang.Override - public int getHeight() { - return height_; - } - - public static final int SHADOW_DX_FIELD_NUMBER = 10; - private int shadowDx_ = 0; - /** - * uint32 shadow_dx = 10; - * @return The shadowDx. - */ - @java.lang.Override - public int getShadowDx() { - return shadowDx_; - } - - public static final int SHADOW_DY_FIELD_NUMBER = 11; - private int shadowDy_ = 0; - /** - * uint32 shadow_dy = 11; - * @return The shadowDy. - */ - @java.lang.Override - public int getShadowDy() { - return shadowDy_; - } - - public static final int SHADOW_RADIUS_FIELD_NUMBER = 12; - private int shadowRadius_ = 0; - /** - * uint32 shadow_radius = 12; - * @return The shadowRadius. - */ - @java.lang.Override - public int getShadowRadius() { - return shadowRadius_; - } - - public static final int SHADOW_COLOR_FIELD_NUMBER = 13; - @SuppressWarnings("serial") - private volatile java.lang.Object shadowColor_ = ""; - /** - * string shadow_color = 13; - * @return The shadowColor. - */ - @java.lang.Override - public java.lang.String getShadowColor() { - java.lang.Object ref = shadowColor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - shadowColor_ = s; - return s; - } - } - /** - * string shadow_color = 13; - * @return The bytes for shadowColor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getShadowColorBytes() { - java.lang.Object ref = shadowColor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - shadowColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int STROKE_COLOR_FIELD_NUMBER = 14; - @SuppressWarnings("serial") - private volatile java.lang.Object strokeColor_ = ""; - /** - * string stroke_color = 14; - * @return The strokeColor. - */ - @java.lang.Override - public java.lang.String getStrokeColor() { - java.lang.Object ref = strokeColor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - strokeColor_ = s; - return s; - } - } - /** - * string stroke_color = 14; - * @return The bytes for strokeColor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getStrokeColorBytes() { - java.lang.Object ref = strokeColor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - strokeColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int STROKE_WIDTH_FIELD_NUMBER = 15; - private int strokeWidth_ = 0; - /** - * uint32 stroke_width = 15; - * @return The strokeWidth. - */ - @java.lang.Override - public int getStrokeWidth() { - return strokeWidth_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (text_ != null) { - output.writeMessage(1, getText()); - } - if (textFontSize_ != 0) { - output.writeUInt32(2, textFontSize_); - } - if (background_ != null) { - output.writeMessage(3, getBackground()); - } - if (start_ != 0) { - output.writeUInt32(4, start_); - } - if (duration_ != 0) { - output.writeUInt32(5, duration_); - } - if (x_ != 0) { - output.writeUInt32(6, x_); - } - if (y_ != 0) { - output.writeUInt32(7, y_); - } - if (width_ != 0) { - output.writeUInt32(8, width_); - } - if (height_ != 0) { - output.writeUInt32(9, height_); - } - if (shadowDx_ != 0) { - output.writeUInt32(10, shadowDx_); - } - if (shadowDy_ != 0) { - output.writeUInt32(11, shadowDy_); - } - if (shadowRadius_ != 0) { - output.writeUInt32(12, shadowRadius_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shadowColor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 13, shadowColor_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(strokeColor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 14, strokeColor_); - } - if (strokeWidth_ != 0) { - output.writeUInt32(15, strokeWidth_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (text_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getText()); - } - if (textFontSize_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, textFontSize_); - } - if (background_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getBackground()); - } - if (start_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, start_); - } - if (duration_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, duration_); - } - if (x_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, x_); - } - if (y_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(7, y_); - } - if (width_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, width_); - } - if (height_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(9, height_); - } - if (shadowDx_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(10, shadowDx_); - } - if (shadowDy_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(11, shadowDy_); - } - if (shadowRadius_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(12, shadowRadius_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shadowColor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, shadowColor_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(strokeColor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, strokeColor_); - } - if (strokeWidth_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(15, strokeWidth_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail) obj; - - if (hasText() != other.hasText()) return false; - if (hasText()) { - if (!getText() - .equals(other.getText())) return false; - } - if (getTextFontSize() - != other.getTextFontSize()) return false; - if (hasBackground() != other.hasBackground()) return false; - if (hasBackground()) { - if (!getBackground() - .equals(other.getBackground())) return false; - } - if (getStart() - != other.getStart()) return false; - if (getDuration() - != other.getDuration()) return false; - if (getX() - != other.getX()) return false; - if (getY() - != other.getY()) return false; - if (getWidth() - != other.getWidth()) return false; - if (getHeight() - != other.getHeight()) return false; - if (getShadowDx() - != other.getShadowDx()) return false; - if (getShadowDy() - != other.getShadowDy()) return false; - if (getShadowRadius() - != other.getShadowRadius()) return false; - if (!getShadowColor() - .equals(other.getShadowColor())) return false; - if (!getStrokeColor() - .equals(other.getStrokeColor())) return false; - if (getStrokeWidth() - != other.getStrokeWidth()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasText()) { - hash = (37 * hash) + TEXT_FIELD_NUMBER; - hash = (53 * hash) + getText().hashCode(); - } - hash = (37 * hash) + TEXT_FONT_SIZE_FIELD_NUMBER; - hash = (53 * hash) + getTextFontSize(); - if (hasBackground()) { - hash = (37 * hash) + BACKGROUND_FIELD_NUMBER; - hash = (53 * hash) + getBackground().hashCode(); - } - hash = (37 * hash) + START_FIELD_NUMBER; - hash = (53 * hash) + getStart(); - hash = (37 * hash) + DURATION_FIELD_NUMBER; - hash = (53 * hash) + getDuration(); - hash = (37 * hash) + X_FIELD_NUMBER; - hash = (53 * hash) + getX(); - hash = (37 * hash) + Y_FIELD_NUMBER; - hash = (53 * hash) + getY(); - hash = (37 * hash) + WIDTH_FIELD_NUMBER; - hash = (53 * hash) + getWidth(); - hash = (37 * hash) + HEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getHeight(); - hash = (37 * hash) + SHADOW_DX_FIELD_NUMBER; - hash = (53 * hash) + getShadowDx(); - hash = (37 * hash) + SHADOW_DY_FIELD_NUMBER; - hash = (53 * hash) + getShadowDy(); - hash = (37 * hash) + SHADOW_RADIUS_FIELD_NUMBER; - hash = (53 * hash) + getShadowRadius(); - hash = (37 * hash) + SHADOW_COLOR_FIELD_NUMBER; - hash = (53 * hash) + getShadowColor().hashCode(); - hash = (37 * hash) + STROKE_COLOR_FIELD_NUMBER; - hash = (53 * hash) + getStrokeColor().hashCode(); - hash = (37 * hash) + STROKE_WIDTH_FIELD_NUMBER; - hash = (53 * hash) + getStrokeWidth(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextEffectDetail} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextEffectDetail) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - text_ = null; - if (textBuilder_ != null) { - textBuilder_.dispose(); - textBuilder_ = null; - } - textFontSize_ = 0; - background_ = null; - if (backgroundBuilder_ != null) { - backgroundBuilder_.dispose(); - backgroundBuilder_ = null; - } - start_ = 0; - duration_ = 0; - x_ = 0; - y_ = 0; - width_ = 0; - height_ = 0; - shadowDx_ = 0; - shadowDy_ = 0; - shadowRadius_ = 0; - shadowColor_ = ""; - strokeColor_ = ""; - strokeWidth_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.text_ = textBuilder_ == null - ? text_ - : textBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.textFontSize_ = textFontSize_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.background_ = backgroundBuilder_ == null - ? background_ - : backgroundBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.start_ = start_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.duration_ = duration_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.x_ = x_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.y_ = y_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.width_ = width_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.height_ = height_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.shadowDx_ = shadowDx_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.shadowDy_ = shadowDy_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.shadowRadius_ = shadowRadius_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.shadowColor_ = shadowColor_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.strokeColor_ = strokeColor_; - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.strokeWidth_ = strokeWidth_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) return this; - if (other.hasText()) { - mergeText(other.getText()); - } - if (other.getTextFontSize() != 0) { - setTextFontSize(other.getTextFontSize()); - } - if (other.hasBackground()) { - mergeBackground(other.getBackground()); - } - if (other.getStart() != 0) { - setStart(other.getStart()); - } - if (other.getDuration() != 0) { - setDuration(other.getDuration()); - } - if (other.getX() != 0) { - setX(other.getX()); - } - if (other.getY() != 0) { - setY(other.getY()); - } - if (other.getWidth() != 0) { - setWidth(other.getWidth()); - } - if (other.getHeight() != 0) { - setHeight(other.getHeight()); - } - if (other.getShadowDx() != 0) { - setShadowDx(other.getShadowDx()); - } - if (other.getShadowDy() != 0) { - setShadowDy(other.getShadowDy()); - } - if (other.getShadowRadius() != 0) { - setShadowRadius(other.getShadowRadius()); - } - if (!other.getShadowColor().isEmpty()) { - shadowColor_ = other.shadowColor_; - bitField0_ |= 0x00001000; - onChanged(); - } - if (!other.getStrokeColor().isEmpty()) { - strokeColor_ = other.strokeColor_; - bitField0_ |= 0x00002000; - onChanged(); - } - if (other.getStrokeWidth() != 0) { - setStrokeWidth(other.getStrokeWidth()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getTextFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - textFontSize_ = input.readUInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 26: { - input.readMessage( - getBackgroundFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 32: { - start_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - duration_ = input.readUInt32(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - x_ = input.readUInt32(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - y_ = input.readUInt32(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 64: { - width_ = input.readUInt32(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - height_ = input.readUInt32(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: { - shadowDx_ = input.readUInt32(); - bitField0_ |= 0x00000200; - break; - } // case 80 - case 88: { - shadowDy_ = input.readUInt32(); - bitField0_ |= 0x00000400; - break; - } // case 88 - case 96: { - shadowRadius_ = input.readUInt32(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 106: { - shadowColor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00001000; - break; - } // case 106 - case 114: { - strokeColor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00002000; - break; - } // case 114 - case 120: { - strokeWidth_ = input.readUInt32(); - bitField0_ |= 0x00004000; - break; - } // case 120 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text text_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> textBuilder_; - /** - * .Text text = 1; - * @return Whether the text field is set. - */ - public boolean hasText() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Text text = 1; - * @return The text. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText() { - if (textBuilder_ == null) { - return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; - } else { - return textBuilder_.getMessage(); - } - } - /** - * .Text text = 1; - */ - public Builder setText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (textBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - text_ = value; - } else { - textBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Text text = 1; - */ - public Builder setText( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { - if (textBuilder_ == null) { - text_ = builderForValue.build(); - } else { - textBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Text text = 1; - */ - public Builder mergeText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { - if (textBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - text_ != null && - text_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { - getTextBuilder().mergeFrom(value); - } else { - text_ = value; - } - } else { - textBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Text text = 1; - */ - public Builder clearText() { - bitField0_ = (bitField0_ & ~0x00000001); - text_ = null; - if (textBuilder_ != null) { - textBuilder_.dispose(); - textBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Text text = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getTextBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getTextFieldBuilder().getBuilder(); - } - /** - * .Text text = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder() { - if (textBuilder_ != null) { - return textBuilder_.getMessageOrBuilder(); - } else { - return text_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; - } - } - /** - * .Text text = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> - getTextFieldBuilder() { - if (textBuilder_ == null) { - textBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( - getText(), - getParentForChildren(), - isClean()); - text_ = null; - } - return textBuilder_; - } - - private int textFontSize_ ; - /** - * uint32 text_font_size = 2; - * @return The textFontSize. - */ - @java.lang.Override - public int getTextFontSize() { - return textFontSize_; - } - /** - * uint32 text_font_size = 2; - * @param value The textFontSize to set. - * @return This builder for chaining. - */ - public Builder setTextFontSize(int value) { - - textFontSize_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint32 text_font_size = 2; - * @return This builder for chaining. - */ - public Builder clearTextFontSize() { - bitField0_ = (bitField0_ & ~0x00000002); - textFontSize_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBuilder_; - /** - * .Image background = 3; - * @return Whether the background field is set. - */ - public boolean hasBackground() { - return ((bitField0_ & 0x00000004) != 0); - } - /** - * .Image background = 3; - * @return The background. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { - if (backgroundBuilder_ == null) { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } else { - return backgroundBuilder_.getMessage(); - } - } - /** - * .Image background = 3; - */ - public Builder setBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - background_ = value; - } else { - backgroundBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .Image background = 3; - */ - public Builder setBackground( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundBuilder_ == null) { - background_ = builderForValue.build(); - } else { - backgroundBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .Image background = 3; - */ - public Builder mergeBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) && - background_ != null && - background_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundBuilder().mergeFrom(value); - } else { - background_ = value; - } - } else { - backgroundBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .Image background = 3; - */ - public Builder clearBackground() { - bitField0_ = (bitField0_ & ~0x00000004); - background_ = null; - if (backgroundBuilder_ != null) { - backgroundBuilder_.dispose(); - backgroundBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image background = 3; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getBackgroundFieldBuilder().getBuilder(); - } - /** - * .Image background = 3; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { - if (backgroundBuilder_ != null) { - return backgroundBuilder_.getMessageOrBuilder(); - } else { - return background_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - } - /** - * .Image background = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundFieldBuilder() { - if (backgroundBuilder_ == null) { - backgroundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackground(), - getParentForChildren(), - isClean()); - background_ = null; - } - return backgroundBuilder_; - } - - private int start_ ; - /** - * uint32 start = 4; - * @return The start. - */ - @java.lang.Override - public int getStart() { - return start_; - } - /** - * uint32 start = 4; - * @param value The start to set. - * @return This builder for chaining. - */ - public Builder setStart(int value) { - - start_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 start = 4; - * @return This builder for chaining. - */ - public Builder clearStart() { - bitField0_ = (bitField0_ & ~0x00000008); - start_ = 0; - onChanged(); - return this; - } - - private int duration_ ; - /** - * uint32 duration = 5; - * @return The duration. - */ - @java.lang.Override - public int getDuration() { - return duration_; - } - /** - * uint32 duration = 5; - * @param value The duration to set. - * @return This builder for chaining. - */ - public Builder setDuration(int value) { - - duration_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint32 duration = 5; - * @return This builder for chaining. - */ - public Builder clearDuration() { - bitField0_ = (bitField0_ & ~0x00000010); - duration_ = 0; - onChanged(); - return this; - } - - private int x_ ; - /** - * uint32 x = 6; - * @return The x. - */ - @java.lang.Override - public int getX() { - return x_; - } - /** - * uint32 x = 6; - * @param value The x to set. - * @return This builder for chaining. - */ - public Builder setX(int value) { - - x_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint32 x = 6; - * @return This builder for chaining. - */ - public Builder clearX() { - bitField0_ = (bitField0_ & ~0x00000020); - x_ = 0; - onChanged(); - return this; - } - - private int y_ ; - /** - * uint32 y = 7; - * @return The y. - */ - @java.lang.Override - public int getY() { - return y_; - } - /** - * uint32 y = 7; - * @param value The y to set. - * @return This builder for chaining. - */ - public Builder setY(int value) { - - y_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * uint32 y = 7; - * @return This builder for chaining. - */ - public Builder clearY() { - bitField0_ = (bitField0_ & ~0x00000040); - y_ = 0; - onChanged(); - return this; - } - - private int width_ ; - /** - * uint32 width = 8; - * @return The width. - */ - @java.lang.Override - public int getWidth() { - return width_; - } - /** - * uint32 width = 8; - * @param value The width to set. - * @return This builder for chaining. - */ - public Builder setWidth(int value) { - - width_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * uint32 width = 8; - * @return This builder for chaining. - */ - public Builder clearWidth() { - bitField0_ = (bitField0_ & ~0x00000080); - width_ = 0; - onChanged(); - return this; - } - - private int height_ ; - /** - * uint32 height = 9; - * @return The height. - */ - @java.lang.Override - public int getHeight() { - return height_; - } - /** - * uint32 height = 9; - * @param value The height to set. - * @return This builder for chaining. - */ - public Builder setHeight(int value) { - - height_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint32 height = 9; - * @return This builder for chaining. - */ - public Builder clearHeight() { - bitField0_ = (bitField0_ & ~0x00000100); - height_ = 0; - onChanged(); - return this; - } - - private int shadowDx_ ; - /** - * uint32 shadow_dx = 10; - * @return The shadowDx. - */ - @java.lang.Override - public int getShadowDx() { - return shadowDx_; - } - /** - * uint32 shadow_dx = 10; - * @param value The shadowDx to set. - * @return This builder for chaining. - */ - public Builder setShadowDx(int value) { - - shadowDx_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * uint32 shadow_dx = 10; - * @return This builder for chaining. - */ - public Builder clearShadowDx() { - bitField0_ = (bitField0_ & ~0x00000200); - shadowDx_ = 0; - onChanged(); - return this; - } - - private int shadowDy_ ; - /** - * uint32 shadow_dy = 11; - * @return The shadowDy. - */ - @java.lang.Override - public int getShadowDy() { - return shadowDy_; - } - /** - * uint32 shadow_dy = 11; - * @param value The shadowDy to set. - * @return This builder for chaining. - */ - public Builder setShadowDy(int value) { - - shadowDy_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * uint32 shadow_dy = 11; - * @return This builder for chaining. - */ - public Builder clearShadowDy() { - bitField0_ = (bitField0_ & ~0x00000400); - shadowDy_ = 0; - onChanged(); - return this; - } - - private int shadowRadius_ ; - /** - * uint32 shadow_radius = 12; - * @return The shadowRadius. - */ - @java.lang.Override - public int getShadowRadius() { - return shadowRadius_; - } - /** - * uint32 shadow_radius = 12; - * @param value The shadowRadius to set. - * @return This builder for chaining. - */ - public Builder setShadowRadius(int value) { - - shadowRadius_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * uint32 shadow_radius = 12; - * @return This builder for chaining. - */ - public Builder clearShadowRadius() { - bitField0_ = (bitField0_ & ~0x00000800); - shadowRadius_ = 0; - onChanged(); - return this; - } - - private java.lang.Object shadowColor_ = ""; - /** - * string shadow_color = 13; - * @return The shadowColor. - */ - public java.lang.String getShadowColor() { - java.lang.Object ref = shadowColor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - shadowColor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string shadow_color = 13; - * @return The bytes for shadowColor. - */ - public com.google.protobuf.ByteString - getShadowColorBytes() { - java.lang.Object ref = shadowColor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - shadowColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string shadow_color = 13; - * @param value The shadowColor to set. - * @return This builder for chaining. - */ - public Builder setShadowColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - shadowColor_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * string shadow_color = 13; - * @return This builder for chaining. - */ - public Builder clearShadowColor() { - shadowColor_ = getDefaultInstance().getShadowColor(); - bitField0_ = (bitField0_ & ~0x00001000); - onChanged(); - return this; - } - /** - * string shadow_color = 13; - * @param value The bytes for shadowColor to set. - * @return This builder for chaining. - */ - public Builder setShadowColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - shadowColor_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - - private java.lang.Object strokeColor_ = ""; - /** - * string stroke_color = 14; - * @return The strokeColor. - */ - public java.lang.String getStrokeColor() { - java.lang.Object ref = strokeColor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - strokeColor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string stroke_color = 14; - * @return The bytes for strokeColor. - */ - public com.google.protobuf.ByteString - getStrokeColorBytes() { - java.lang.Object ref = strokeColor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - strokeColor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string stroke_color = 14; - * @param value The strokeColor to set. - * @return This builder for chaining. - */ - public Builder setStrokeColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - strokeColor_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * string stroke_color = 14; - * @return This builder for chaining. - */ - public Builder clearStrokeColor() { - strokeColor_ = getDefaultInstance().getStrokeColor(); - bitField0_ = (bitField0_ & ~0x00002000); - onChanged(); - return this; - } - /** - * string stroke_color = 14; - * @param value The bytes for strokeColor to set. - * @return This builder for chaining. - */ - public Builder setStrokeColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - strokeColor_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - - private int strokeWidth_ ; - /** - * uint32 stroke_width = 15; - * @return The strokeWidth. - */ - @java.lang.Override - public int getStrokeWidth() { - return strokeWidth_; - } - /** - * uint32 stroke_width = 15; - * @param value The strokeWidth to set. - * @return This builder for chaining. - */ - public Builder setStrokeWidth(int value) { - - strokeWidth_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * uint32 stroke_width = 15; - * @return This builder for chaining. - */ - public Builder clearStrokeWidth() { - bitField0_ = (bitField0_ & ~0x00004000); - strokeWidth_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextEffectDetail) - } - - // @@protoc_insertion_point(class_scope:TextEffectDetail) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextEffectDetail parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextEffectDetail_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextEffectDetail_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026TextEffectDetail.proto\032\013Image.proto\032\nT" + - "ext.proto\"\260\002\n\020TextEffectDetail\022\023\n\004text\030\001" + - " \001(\0132\005.Text\022\026\n\016text_font_size\030\002 \001(\r\022\032\n\nb" + - "ackground\030\003 \001(\0132\006.Image\022\r\n\005start\030\004 \001(\r\022\020" + - "\n\010duration\030\005 \001(\r\022\t\n\001x\030\006 \001(\r\022\t\n\001y\030\007 \001(\r\022\r" + - "\n\005width\030\010 \001(\r\022\016\n\006height\030\t \001(\r\022\021\n\tshadow_" + - "dx\030\n \001(\r\022\021\n\tshadow_dy\030\013 \001(\r\022\025\n\rshadow_ra" + - "dius\030\014 \001(\r\022\024\n\014shadow_color\030\r \001(\t\022\024\n\014stro" + - "ke_color\030\016 \001(\t\022\024\n\014stroke_width\030\017 \001(\rB8\n6" + - "tech.ordinaryroad.live.chat.client.douyi" + - "n.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), - }); - internal_static_TextEffectDetail_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextEffectDetail_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextEffectDetail_descriptor, - new java.lang.String[] { "Text", "TextFontSize", "Background", "Start", "Duration", "X", "Y", "Width", "Height", "ShadowDx", "ShadowDy", "ShadowRadius", "ShadowColor", "StrokeColor", "StrokeWidth", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java deleted file mode 100644 index 9fffc74a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java +++ /dev/null @@ -1,872 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextEffect.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextEffectOuterClass { - private TextEffectOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextEffectOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextEffect) - com.google.protobuf.MessageOrBuilder { - - /** - * .TextEffectDetail portrait = 1; - * @return Whether the portrait field is set. - */ - boolean hasPortrait(); - /** - * .TextEffectDetail portrait = 1; - * @return The portrait. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait(); - /** - * .TextEffectDetail portrait = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder(); - - /** - * .TextEffectDetail landscape = 2; - * @return Whether the landscape field is set. - */ - boolean hasLandscape(); - /** - * .TextEffectDetail landscape = 2; - * @return The landscape. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape(); - /** - * .TextEffectDetail landscape = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder(); - } - /** - * Protobuf type {@code TextEffect} - */ - public static final class TextEffect extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextEffect) - TextEffectOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextEffect.newBuilder() to construct. - private TextEffect(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextEffect() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextEffect(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder.class); - } - - public static final int PORTRAIT_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail portrait_; - /** - * .TextEffectDetail portrait = 1; - * @return Whether the portrait field is set. - */ - @java.lang.Override - public boolean hasPortrait() { - return portrait_ != null; - } - /** - * .TextEffectDetail portrait = 1; - * @return The portrait. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait() { - return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; - } - /** - * .TextEffectDetail portrait = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder() { - return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; - } - - public static final int LANDSCAPE_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail landscape_; - /** - * .TextEffectDetail landscape = 2; - * @return Whether the landscape field is set. - */ - @java.lang.Override - public boolean hasLandscape() { - return landscape_ != null; - } - /** - * .TextEffectDetail landscape = 2; - * @return The landscape. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape() { - return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; - } - /** - * .TextEffectDetail landscape = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder() { - return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (portrait_ != null) { - output.writeMessage(1, getPortrait()); - } - if (landscape_ != null) { - output.writeMessage(2, getLandscape()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (portrait_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getPortrait()); - } - if (landscape_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getLandscape()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect) obj; - - if (hasPortrait() != other.hasPortrait()) return false; - if (hasPortrait()) { - if (!getPortrait() - .equals(other.getPortrait())) return false; - } - if (hasLandscape() != other.hasLandscape()) return false; - if (hasLandscape()) { - if (!getLandscape() - .equals(other.getLandscape())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasPortrait()) { - hash = (37 * hash) + PORTRAIT_FIELD_NUMBER; - hash = (53 * hash) + getPortrait().hashCode(); - } - if (hasLandscape()) { - hash = (37 * hash) + LANDSCAPE_FIELD_NUMBER; - hash = (53 * hash) + getLandscape().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextEffect} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextEffect) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - portrait_ = null; - if (portraitBuilder_ != null) { - portraitBuilder_.dispose(); - portraitBuilder_ = null; - } - landscape_ = null; - if (landscapeBuilder_ != null) { - landscapeBuilder_.dispose(); - landscapeBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.portrait_ = portraitBuilder_ == null - ? portrait_ - : portraitBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.landscape_ = landscapeBuilder_ == null - ? landscape_ - : landscapeBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance()) return this; - if (other.hasPortrait()) { - mergePortrait(other.getPortrait()); - } - if (other.hasLandscape()) { - mergeLandscape(other.getLandscape()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getPortraitFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getLandscapeFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail portrait_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> portraitBuilder_; - /** - * .TextEffectDetail portrait = 1; - * @return Whether the portrait field is set. - */ - public boolean hasPortrait() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .TextEffectDetail portrait = 1; - * @return The portrait. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait() { - if (portraitBuilder_ == null) { - return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; - } else { - return portraitBuilder_.getMessage(); - } - } - /** - * .TextEffectDetail portrait = 1; - */ - public Builder setPortrait(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { - if (portraitBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - portrait_ = value; - } else { - portraitBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .TextEffectDetail portrait = 1; - */ - public Builder setPortrait( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder builderForValue) { - if (portraitBuilder_ == null) { - portrait_ = builderForValue.build(); - } else { - portraitBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .TextEffectDetail portrait = 1; - */ - public Builder mergePortrait(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { - if (portraitBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - portrait_ != null && - portrait_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) { - getPortraitBuilder().mergeFrom(value); - } else { - portrait_ = value; - } - } else { - portraitBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .TextEffectDetail portrait = 1; - */ - public Builder clearPortrait() { - bitField0_ = (bitField0_ & ~0x00000001); - portrait_ = null; - if (portraitBuilder_ != null) { - portraitBuilder_.dispose(); - portraitBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextEffectDetail portrait = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder getPortraitBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getPortraitFieldBuilder().getBuilder(); - } - /** - * .TextEffectDetail portrait = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder() { - if (portraitBuilder_ != null) { - return portraitBuilder_.getMessageOrBuilder(); - } else { - return portrait_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; - } - } - /** - * .TextEffectDetail portrait = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> - getPortraitFieldBuilder() { - if (portraitBuilder_ == null) { - portraitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder>( - getPortrait(), - getParentForChildren(), - isClean()); - portrait_ = null; - } - return portraitBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail landscape_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> landscapeBuilder_; - /** - * .TextEffectDetail landscape = 2; - * @return Whether the landscape field is set. - */ - public boolean hasLandscape() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .TextEffectDetail landscape = 2; - * @return The landscape. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape() { - if (landscapeBuilder_ == null) { - return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; - } else { - return landscapeBuilder_.getMessage(); - } - } - /** - * .TextEffectDetail landscape = 2; - */ - public Builder setLandscape(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { - if (landscapeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - landscape_ = value; - } else { - landscapeBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextEffectDetail landscape = 2; - */ - public Builder setLandscape( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder builderForValue) { - if (landscapeBuilder_ == null) { - landscape_ = builderForValue.build(); - } else { - landscapeBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextEffectDetail landscape = 2; - */ - public Builder mergeLandscape(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { - if (landscapeBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - landscape_ != null && - landscape_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) { - getLandscapeBuilder().mergeFrom(value); - } else { - landscape_ = value; - } - } else { - landscapeBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextEffectDetail landscape = 2; - */ - public Builder clearLandscape() { - bitField0_ = (bitField0_ & ~0x00000002); - landscape_ = null; - if (landscapeBuilder_ != null) { - landscapeBuilder_.dispose(); - landscapeBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextEffectDetail landscape = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder getLandscapeBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getLandscapeFieldBuilder().getBuilder(); - } - /** - * .TextEffectDetail landscape = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder() { - if (landscapeBuilder_ != null) { - return landscapeBuilder_.getMessageOrBuilder(); - } else { - return landscape_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; - } - } - /** - * .TextEffectDetail landscape = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> - getLandscapeFieldBuilder() { - if (landscapeBuilder_ == null) { - landscapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder>( - getLandscape(), - getParentForChildren(), - isClean()); - landscape_ = null; - } - return landscapeBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextEffect) - } - - // @@protoc_insertion_point(class_scope:TextEffect) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextEffect parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextEffect_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextEffect_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020TextEffect.proto\032\026TextEffectDetail.pro" + - "to\"W\n\nTextEffect\022#\n\010portrait\030\001 \001(\0132\021.Tex" + - "tEffectDetail\022$\n\tlandscape\030\002 \001(\0132\021.TextE" + - "ffectDetailB8\n6tech.ordinaryroad.live.ch" + - "at.client.douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.getDescriptor(), - }); - internal_static_TextEffect_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextEffect_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextEffect_descriptor, - new java.lang.String[] { "Portrait", "Landscape", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java deleted file mode 100644 index d3fc3455..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java +++ /dev/null @@ -1,1136 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextFormat.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextFormatOuterClass { - private TextFormatOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextFormatOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextFormat) - com.google.protobuf.MessageOrBuilder { - - /** - * string color = 1; - * @return The color. - */ - java.lang.String getColor(); - /** - * string color = 1; - * @return The bytes for color. - */ - com.google.protobuf.ByteString - getColorBytes(); - - /** - * bool bold = 2; - * @return The bold. - */ - boolean getBold(); - - /** - * bool italic = 3; - * @return The italic. - */ - boolean getItalic(); - - /** - * uint32 weight = 4; - * @return The weight. - */ - int getWeight(); - - /** - * uint32 italic_angle = 5; - * @return The italicAngle. - */ - int getItalicAngle(); - - /** - * uint32 font_size = 6; - * @return The fontSize. - */ - int getFontSize(); - - /** - * bool use_heigh_light_color = 7; - * @return The useHeighLightColor. - */ - boolean getUseHeighLightColor(); - - /** - * bool use_remote_clor = 8; - * @return The useRemoteClor. - */ - boolean getUseRemoteClor(); - } - /** - * Protobuf type {@code TextFormat} - */ - public static final class TextFormat extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextFormat) - TextFormatOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextFormat.newBuilder() to construct. - private TextFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextFormat() { - color_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextFormat(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder.class); - } - - public static final int COLOR_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object color_ = ""; - /** - * string color = 1; - * @return The color. - */ - @java.lang.Override - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } - } - /** - * string color = 1; - * @return The bytes for color. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BOLD_FIELD_NUMBER = 2; - private boolean bold_ = false; - /** - * bool bold = 2; - * @return The bold. - */ - @java.lang.Override - public boolean getBold() { - return bold_; - } - - public static final int ITALIC_FIELD_NUMBER = 3; - private boolean italic_ = false; - /** - * bool italic = 3; - * @return The italic. - */ - @java.lang.Override - public boolean getItalic() { - return italic_; - } - - public static final int WEIGHT_FIELD_NUMBER = 4; - private int weight_ = 0; - /** - * uint32 weight = 4; - * @return The weight. - */ - @java.lang.Override - public int getWeight() { - return weight_; - } - - public static final int ITALIC_ANGLE_FIELD_NUMBER = 5; - private int italicAngle_ = 0; - /** - * uint32 italic_angle = 5; - * @return The italicAngle. - */ - @java.lang.Override - public int getItalicAngle() { - return italicAngle_; - } - - public static final int FONT_SIZE_FIELD_NUMBER = 6; - private int fontSize_ = 0; - /** - * uint32 font_size = 6; - * @return The fontSize. - */ - @java.lang.Override - public int getFontSize() { - return fontSize_; - } - - public static final int USE_HEIGH_LIGHT_COLOR_FIELD_NUMBER = 7; - private boolean useHeighLightColor_ = false; - /** - * bool use_heigh_light_color = 7; - * @return The useHeighLightColor. - */ - @java.lang.Override - public boolean getUseHeighLightColor() { - return useHeighLightColor_; - } - - public static final int USE_REMOTE_CLOR_FIELD_NUMBER = 8; - private boolean useRemoteClor_ = false; - /** - * bool use_remote_clor = 8; - * @return The useRemoteClor. - */ - @java.lang.Override - public boolean getUseRemoteClor() { - return useRemoteClor_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, color_); - } - if (bold_ != false) { - output.writeBool(2, bold_); - } - if (italic_ != false) { - output.writeBool(3, italic_); - } - if (weight_ != 0) { - output.writeUInt32(4, weight_); - } - if (italicAngle_ != 0) { - output.writeUInt32(5, italicAngle_); - } - if (fontSize_ != 0) { - output.writeUInt32(6, fontSize_); - } - if (useHeighLightColor_ != false) { - output.writeBool(7, useHeighLightColor_); - } - if (useRemoteClor_ != false) { - output.writeBool(8, useRemoteClor_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, color_); - } - if (bold_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, bold_); - } - if (italic_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, italic_); - } - if (weight_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, weight_); - } - if (italicAngle_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(5, italicAngle_); - } - if (fontSize_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, fontSize_); - } - if (useHeighLightColor_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, useHeighLightColor_); - } - if (useRemoteClor_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(8, useRemoteClor_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat) obj; - - if (!getColor() - .equals(other.getColor())) return false; - if (getBold() - != other.getBold()) return false; - if (getItalic() - != other.getItalic()) return false; - if (getWeight() - != other.getWeight()) return false; - if (getItalicAngle() - != other.getItalicAngle()) return false; - if (getFontSize() - != other.getFontSize()) return false; - if (getUseHeighLightColor() - != other.getUseHeighLightColor()) return false; - if (getUseRemoteClor() - != other.getUseRemoteClor()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + COLOR_FIELD_NUMBER; - hash = (53 * hash) + getColor().hashCode(); - hash = (37 * hash) + BOLD_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getBold()); - hash = (37 * hash) + ITALIC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getItalic()); - hash = (37 * hash) + WEIGHT_FIELD_NUMBER; - hash = (53 * hash) + getWeight(); - hash = (37 * hash) + ITALIC_ANGLE_FIELD_NUMBER; - hash = (53 * hash) + getItalicAngle(); - hash = (37 * hash) + FONT_SIZE_FIELD_NUMBER; - hash = (53 * hash) + getFontSize(); - hash = (37 * hash) + USE_HEIGH_LIGHT_COLOR_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getUseHeighLightColor()); - hash = (37 * hash) + USE_REMOTE_CLOR_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getUseRemoteClor()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextFormat} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextFormat) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - color_ = ""; - bold_ = false; - italic_ = false; - weight_ = 0; - italicAngle_ = 0; - fontSize_ = 0; - useHeighLightColor_ = false; - useRemoteClor_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.color_ = color_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.bold_ = bold_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.italic_ = italic_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.weight_ = weight_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.italicAngle_ = italicAngle_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.fontSize_ = fontSize_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.useHeighLightColor_ = useHeighLightColor_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.useRemoteClor_ = useRemoteClor_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) return this; - if (!other.getColor().isEmpty()) { - color_ = other.color_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getBold() != false) { - setBold(other.getBold()); - } - if (other.getItalic() != false) { - setItalic(other.getItalic()); - } - if (other.getWeight() != 0) { - setWeight(other.getWeight()); - } - if (other.getItalicAngle() != 0) { - setItalicAngle(other.getItalicAngle()); - } - if (other.getFontSize() != 0) { - setFontSize(other.getFontSize()); - } - if (other.getUseHeighLightColor() != false) { - setUseHeighLightColor(other.getUseHeighLightColor()); - } - if (other.getUseRemoteClor() != false) { - setUseRemoteClor(other.getUseRemoteClor()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - color_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - bold_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - italic_ = input.readBool(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - weight_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - italicAngle_ = input.readUInt32(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - fontSize_ = input.readUInt32(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - useHeighLightColor_ = input.readBool(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 64: { - useRemoteClor_ = input.readBool(); - bitField0_ |= 0x00000080; - break; - } // case 64 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object color_ = ""; - /** - * string color = 1; - * @return The color. - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string color = 1; - * @return The bytes for color. - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string color = 1; - * @param value The color to set. - * @return This builder for chaining. - */ - public Builder setColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - color_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string color = 1; - * @return This builder for chaining. - */ - public Builder clearColor() { - color_ = getDefaultInstance().getColor(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string color = 1; - * @param value The bytes for color to set. - * @return This builder for chaining. - */ - public Builder setColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - color_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private boolean bold_ ; - /** - * bool bold = 2; - * @return The bold. - */ - @java.lang.Override - public boolean getBold() { - return bold_; - } - /** - * bool bold = 2; - * @param value The bold to set. - * @return This builder for chaining. - */ - public Builder setBold(boolean value) { - - bold_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool bold = 2; - * @return This builder for chaining. - */ - public Builder clearBold() { - bitField0_ = (bitField0_ & ~0x00000002); - bold_ = false; - onChanged(); - return this; - } - - private boolean italic_ ; - /** - * bool italic = 3; - * @return The italic. - */ - @java.lang.Override - public boolean getItalic() { - return italic_; - } - /** - * bool italic = 3; - * @param value The italic to set. - * @return This builder for chaining. - */ - public Builder setItalic(boolean value) { - - italic_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bool italic = 3; - * @return This builder for chaining. - */ - public Builder clearItalic() { - bitField0_ = (bitField0_ & ~0x00000004); - italic_ = false; - onChanged(); - return this; - } - - private int weight_ ; - /** - * uint32 weight = 4; - * @return The weight. - */ - @java.lang.Override - public int getWeight() { - return weight_; - } - /** - * uint32 weight = 4; - * @param value The weight to set. - * @return This builder for chaining. - */ - public Builder setWeight(int value) { - - weight_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 weight = 4; - * @return This builder for chaining. - */ - public Builder clearWeight() { - bitField0_ = (bitField0_ & ~0x00000008); - weight_ = 0; - onChanged(); - return this; - } - - private int italicAngle_ ; - /** - * uint32 italic_angle = 5; - * @return The italicAngle. - */ - @java.lang.Override - public int getItalicAngle() { - return italicAngle_; - } - /** - * uint32 italic_angle = 5; - * @param value The italicAngle to set. - * @return This builder for chaining. - */ - public Builder setItalicAngle(int value) { - - italicAngle_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint32 italic_angle = 5; - * @return This builder for chaining. - */ - public Builder clearItalicAngle() { - bitField0_ = (bitField0_ & ~0x00000010); - italicAngle_ = 0; - onChanged(); - return this; - } - - private int fontSize_ ; - /** - * uint32 font_size = 6; - * @return The fontSize. - */ - @java.lang.Override - public int getFontSize() { - return fontSize_; - } - /** - * uint32 font_size = 6; - * @param value The fontSize to set. - * @return This builder for chaining. - */ - public Builder setFontSize(int value) { - - fontSize_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint32 font_size = 6; - * @return This builder for chaining. - */ - public Builder clearFontSize() { - bitField0_ = (bitField0_ & ~0x00000020); - fontSize_ = 0; - onChanged(); - return this; - } - - private boolean useHeighLightColor_ ; - /** - * bool use_heigh_light_color = 7; - * @return The useHeighLightColor. - */ - @java.lang.Override - public boolean getUseHeighLightColor() { - return useHeighLightColor_; - } - /** - * bool use_heigh_light_color = 7; - * @param value The useHeighLightColor to set. - * @return This builder for chaining. - */ - public Builder setUseHeighLightColor(boolean value) { - - useHeighLightColor_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * bool use_heigh_light_color = 7; - * @return This builder for chaining. - */ - public Builder clearUseHeighLightColor() { - bitField0_ = (bitField0_ & ~0x00000040); - useHeighLightColor_ = false; - onChanged(); - return this; - } - - private boolean useRemoteClor_ ; - /** - * bool use_remote_clor = 8; - * @return The useRemoteClor. - */ - @java.lang.Override - public boolean getUseRemoteClor() { - return useRemoteClor_; - } - /** - * bool use_remote_clor = 8; - * @param value The useRemoteClor to set. - * @return This builder for chaining. - */ - public Builder setUseRemoteClor(boolean value) { - - useRemoteClor_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * bool use_remote_clor = 8; - * @return This builder for chaining. - */ - public Builder clearUseRemoteClor() { - bitField0_ = (bitField0_ & ~0x00000080); - useRemoteClor_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextFormat) - } - - // @@protoc_insertion_point(class_scope:TextFormat) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextFormat parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextFormat_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextFormat_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020TextFormat.proto\"\252\001\n\nTextFormat\022\r\n\005col" + - "or\030\001 \001(\t\022\014\n\004bold\030\002 \001(\010\022\016\n\006italic\030\003 \001(\010\022\016" + - "\n\006weight\030\004 \001(\r\022\024\n\014italic_angle\030\005 \001(\r\022\021\n\t" + - "font_size\030\006 \001(\r\022\035\n\025use_heigh_light_color" + - "\030\007 \001(\010\022\027\n\017use_remote_clor\030\010 \001(\010B8\n6tech." + - "ordinaryroad.live.chat.client.douyin.pro" + - "tobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_TextFormat_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextFormat_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextFormat_descriptor, - new java.lang.String[] { "Color", "Bold", "Italic", "Weight", "ItalicAngle", "FontSize", "UseHeighLightColor", "UseRemoteClor", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java deleted file mode 100644 index 4ff0f8d6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java +++ /dev/null @@ -1,1171 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: Text.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextOuterClass { - private TextOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextOrBuilder extends - // @@protoc_insertion_point(interface_extends:Text) - com.google.protobuf.MessageOrBuilder { - - /** - * string key = 1; - * @return The key. - */ - java.lang.String getKey(); - /** - * string key = 1; - * @return The bytes for key. - */ - com.google.protobuf.ByteString - getKeyBytes(); - - /** - * string default_patter = 2; - * @return The defaultPatter. - */ - java.lang.String getDefaultPatter(); - /** - * string default_patter = 2; - * @return The bytes for defaultPatter. - */ - com.google.protobuf.ByteString - getDefaultPatterBytes(); - - /** - * .TextFormat default_format = 3; - * @return Whether the defaultFormat field is set. - */ - boolean hasDefaultFormat(); - /** - * .TextFormat default_format = 3; - * @return The defaultFormat. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat(); - /** - * .TextFormat default_format = 3; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder(); - - /** - * .TextPiece pieces_list = 4; - * @return Whether the piecesList field is set. - */ - boolean hasPiecesList(); - /** - * .TextPiece pieces_list = 4; - * @return The piecesList. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList(); - /** - * .TextPiece pieces_list = 4; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder(); - } - /** - * Protobuf type {@code Text} - */ - public static final class Text extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Text) - TextOrBuilder { - private static final long serialVersionUID = 0L; - // Use Text.newBuilder() to construct. - private Text(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Text() { - key_ = ""; - defaultPatter_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Text(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder.class); - } - - public static final int KEY_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - @java.lang.Override - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DEFAULT_PATTER_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object defaultPatter_ = ""; - /** - * string default_patter = 2; - * @return The defaultPatter. - */ - @java.lang.Override - public java.lang.String getDefaultPatter() { - java.lang.Object ref = defaultPatter_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPatter_ = s; - return s; - } - } - /** - * string default_patter = 2; - * @return The bytes for defaultPatter. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDefaultPatterBytes() { - java.lang.Object ref = defaultPatter_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPatter_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DEFAULT_FORMAT_FIELD_NUMBER = 3; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat defaultFormat_; - /** - * .TextFormat default_format = 3; - * @return Whether the defaultFormat field is set. - */ - @java.lang.Override - public boolean hasDefaultFormat() { - return defaultFormat_ != null; - } - /** - * .TextFormat default_format = 3; - * @return The defaultFormat. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat() { - return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; - } - /** - * .TextFormat default_format = 3; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder() { - return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; - } - - public static final int PIECES_LIST_FIELD_NUMBER = 4; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece piecesList_; - /** - * .TextPiece pieces_list = 4; - * @return Whether the piecesList field is set. - */ - @java.lang.Override - public boolean hasPiecesList() { - return piecesList_ != null; - } - /** - * .TextPiece pieces_list = 4; - * @return The piecesList. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList() { - return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; - } - /** - * .TextPiece pieces_list = 4; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder() { - return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPatter_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPatter_); - } - if (defaultFormat_ != null) { - output.writeMessage(3, getDefaultFormat()); - } - if (piecesList_ != null) { - output.writeMessage(4, getPiecesList()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPatter_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPatter_); - } - if (defaultFormat_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getDefaultFormat()); - } - if (piecesList_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getPiecesList()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text) obj; - - if (!getKey() - .equals(other.getKey())) return false; - if (!getDefaultPatter() - .equals(other.getDefaultPatter())) return false; - if (hasDefaultFormat() != other.hasDefaultFormat()) return false; - if (hasDefaultFormat()) { - if (!getDefaultFormat() - .equals(other.getDefaultFormat())) return false; - } - if (hasPiecesList() != other.hasPiecesList()) return false; - if (hasPiecesList()) { - if (!getPiecesList() - .equals(other.getPiecesList())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + KEY_FIELD_NUMBER; - hash = (53 * hash) + getKey().hashCode(); - hash = (37 * hash) + DEFAULT_PATTER_FIELD_NUMBER; - hash = (53 * hash) + getDefaultPatter().hashCode(); - if (hasDefaultFormat()) { - hash = (37 * hash) + DEFAULT_FORMAT_FIELD_NUMBER; - hash = (53 * hash) + getDefaultFormat().hashCode(); - } - if (hasPiecesList()) { - hash = (37 * hash) + PIECES_LIST_FIELD_NUMBER; - hash = (53 * hash) + getPiecesList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code Text} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Text) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - key_ = ""; - defaultPatter_ = ""; - defaultFormat_ = null; - if (defaultFormatBuilder_ != null) { - defaultFormatBuilder_.dispose(); - defaultFormatBuilder_ = null; - } - piecesList_ = null; - if (piecesListBuilder_ != null) { - piecesListBuilder_.dispose(); - piecesListBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.key_ = key_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.defaultPatter_ = defaultPatter_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.defaultFormat_ = defaultFormatBuilder_ == null - ? defaultFormat_ - : defaultFormatBuilder_.build(); - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.piecesList_ = piecesListBuilder_ == null - ? piecesList_ - : piecesListBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) return this; - if (!other.getKey().isEmpty()) { - key_ = other.key_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getDefaultPatter().isEmpty()) { - defaultPatter_ = other.defaultPatter_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.hasDefaultFormat()) { - mergeDefaultFormat(other.getDefaultFormat()); - } - if (other.hasPiecesList()) { - mergePiecesList(other.getPiecesList()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - key_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - defaultPatter_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - input.readMessage( - getDefaultFormatFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - input.readMessage( - getPiecesListFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string key = 1; - * @param value The key to set. - * @return This builder for chaining. - */ - public Builder setKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string key = 1; - * @return This builder for chaining. - */ - public Builder clearKey() { - key_ = getDefaultInstance().getKey(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string key = 1; - * @param value The bytes for key to set. - * @return This builder for chaining. - */ - public Builder setKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object defaultPatter_ = ""; - /** - * string default_patter = 2; - * @return The defaultPatter. - */ - public java.lang.String getDefaultPatter() { - java.lang.Object ref = defaultPatter_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPatter_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string default_patter = 2; - * @return The bytes for defaultPatter. - */ - public com.google.protobuf.ByteString - getDefaultPatterBytes() { - java.lang.Object ref = defaultPatter_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPatter_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string default_patter = 2; - * @param value The defaultPatter to set. - * @return This builder for chaining. - */ - public Builder setDefaultPatter( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - defaultPatter_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string default_patter = 2; - * @return This builder for chaining. - */ - public Builder clearDefaultPatter() { - defaultPatter_ = getDefaultInstance().getDefaultPatter(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string default_patter = 2; - * @param value The bytes for defaultPatter to set. - * @return This builder for chaining. - */ - public Builder setDefaultPatterBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - defaultPatter_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat defaultFormat_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> defaultFormatBuilder_; - /** - * .TextFormat default_format = 3; - * @return Whether the defaultFormat field is set. - */ - public boolean hasDefaultFormat() { - return ((bitField0_ & 0x00000004) != 0); - } - /** - * .TextFormat default_format = 3; - * @return The defaultFormat. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat() { - if (defaultFormatBuilder_ == null) { - return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; - } else { - return defaultFormatBuilder_.getMessage(); - } - } - /** - * .TextFormat default_format = 3; - */ - public Builder setDefaultFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { - if (defaultFormatBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - defaultFormat_ = value; - } else { - defaultFormatBuilder_.setMessage(value); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .TextFormat default_format = 3; - */ - public Builder setDefaultFormat( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder builderForValue) { - if (defaultFormatBuilder_ == null) { - defaultFormat_ = builderForValue.build(); - } else { - defaultFormatBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .TextFormat default_format = 3; - */ - public Builder mergeDefaultFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { - if (defaultFormatBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) && - defaultFormat_ != null && - defaultFormat_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) { - getDefaultFormatBuilder().mergeFrom(value); - } else { - defaultFormat_ = value; - } - } else { - defaultFormatBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .TextFormat default_format = 3; - */ - public Builder clearDefaultFormat() { - bitField0_ = (bitField0_ & ~0x00000004); - defaultFormat_ = null; - if (defaultFormatBuilder_ != null) { - defaultFormatBuilder_.dispose(); - defaultFormatBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextFormat default_format = 3; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder getDefaultFormatBuilder() { - bitField0_ |= 0x00000004; - onChanged(); - return getDefaultFormatFieldBuilder().getBuilder(); - } - /** - * .TextFormat default_format = 3; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder() { - if (defaultFormatBuilder_ != null) { - return defaultFormatBuilder_.getMessageOrBuilder(); - } else { - return defaultFormat_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; - } - } - /** - * .TextFormat default_format = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> - getDefaultFormatFieldBuilder() { - if (defaultFormatBuilder_ == null) { - defaultFormatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder>( - getDefaultFormat(), - getParentForChildren(), - isClean()); - defaultFormat_ = null; - } - return defaultFormatBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece piecesList_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder> piecesListBuilder_; - /** - * .TextPiece pieces_list = 4; - * @return Whether the piecesList field is set. - */ - public boolean hasPiecesList() { - return ((bitField0_ & 0x00000008) != 0); - } - /** - * .TextPiece pieces_list = 4; - * @return The piecesList. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList() { - if (piecesListBuilder_ == null) { - return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; - } else { - return piecesListBuilder_.getMessage(); - } - } - /** - * .TextPiece pieces_list = 4; - */ - public Builder setPiecesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece value) { - if (piecesListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - piecesList_ = value; - } else { - piecesListBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPiece pieces_list = 4; - */ - public Builder setPiecesList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder builderForValue) { - if (piecesListBuilder_ == null) { - piecesList_ = builderForValue.build(); - } else { - piecesListBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPiece pieces_list = 4; - */ - public Builder mergePiecesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece value) { - if (piecesListBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && - piecesList_ != null && - piecesList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance()) { - getPiecesListBuilder().mergeFrom(value); - } else { - piecesList_ = value; - } - } else { - piecesListBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPiece pieces_list = 4; - */ - public Builder clearPiecesList() { - bitField0_ = (bitField0_ & ~0x00000008); - piecesList_ = null; - if (piecesListBuilder_ != null) { - piecesListBuilder_.dispose(); - piecesListBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPiece pieces_list = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder getPiecesListBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getPiecesListFieldBuilder().getBuilder(); - } - /** - * .TextPiece pieces_list = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder() { - if (piecesListBuilder_ != null) { - return piecesListBuilder_.getMessageOrBuilder(); - } else { - return piecesList_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; - } - } - /** - * .TextPiece pieces_list = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder> - getPiecesListFieldBuilder() { - if (piecesListBuilder_ == null) { - piecesListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder>( - getPiecesList(), - getParentForChildren(), - isClean()); - piecesList_ = null; - } - return piecesListBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:Text) - } - - // @@protoc_insertion_point(class_scope:Text) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Text parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Text_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Text_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\nText.proto\032\020TextFormat.proto\032\017TextPiec" + - "e.proto\"q\n\004Text\022\013\n\003key\030\001 \001(\t\022\026\n\016default_" + - "patter\030\002 \001(\t\022#\n\016default_format\030\003 \001(\0132\013.T" + - "extFormat\022\037\n\013pieces_list\030\004 \001(\0132\n.TextPie" + - "ceB8\n6tech.ordinaryroad.live.chat.client" + - ".douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.getDescriptor(), - }); - internal_static_Text_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_Text_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Text_descriptor, - new java.lang.String[] { "Key", "DefaultPatter", "DefaultFormat", "PiecesList", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java deleted file mode 100644 index 7e8d34f2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java +++ /dev/null @@ -1,749 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPieceGift.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPieceGiftOuterClass { - private TextPieceGiftOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPieceGiftOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPieceGift) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 gift_id = 1; - * @return The giftId. - */ - long getGiftId(); - - /** - * .PatternRef name_ref = 2; - * @return Whether the nameRef field is set. - */ - boolean hasNameRef(); - /** - * .PatternRef name_ref = 2; - * @return The nameRef. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef(); - /** - * .PatternRef name_ref = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder(); - } - /** - * Protobuf type {@code TextPieceGift} - */ - public static final class TextPieceGift extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPieceGift) - TextPieceGiftOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPieceGift.newBuilder() to construct. - private TextPieceGift(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPieceGift() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPieceGift(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder.class); - } - - public static final int GIFT_ID_FIELD_NUMBER = 1; - private long giftId_ = 0L; - /** - * uint64 gift_id = 1; - * @return The giftId. - */ - @java.lang.Override - public long getGiftId() { - return giftId_; - } - - public static final int NAME_REF_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef nameRef_; - /** - * .PatternRef name_ref = 2; - * @return Whether the nameRef field is set. - */ - @java.lang.Override - public boolean hasNameRef() { - return nameRef_ != null; - } - /** - * .PatternRef name_ref = 2; - * @return The nameRef. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef() { - return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; - } - /** - * .PatternRef name_ref = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder() { - return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (giftId_ != 0L) { - output.writeUInt64(1, giftId_); - } - if (nameRef_ != null) { - output.writeMessage(2, getNameRef()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (giftId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, giftId_); - } - if (nameRef_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getNameRef()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift) obj; - - if (getGiftId() - != other.getGiftId()) return false; - if (hasNameRef() != other.hasNameRef()) return false; - if (hasNameRef()) { - if (!getNameRef() - .equals(other.getNameRef())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + GIFT_ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getGiftId()); - if (hasNameRef()) { - hash = (37 * hash) + NAME_REF_FIELD_NUMBER; - hash = (53 * hash) + getNameRef().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPieceGift} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPieceGift) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - giftId_ = 0L; - nameRef_ = null; - if (nameRefBuilder_ != null) { - nameRefBuilder_.dispose(); - nameRefBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.giftId_ = giftId_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.nameRef_ = nameRefBuilder_ == null - ? nameRef_ - : nameRefBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance()) return this; - if (other.getGiftId() != 0L) { - setGiftId(other.getGiftId()); - } - if (other.hasNameRef()) { - mergeNameRef(other.getNameRef()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - giftId_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - input.readMessage( - getNameRefFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long giftId_ ; - /** - * uint64 gift_id = 1; - * @return The giftId. - */ - @java.lang.Override - public long getGiftId() { - return giftId_; - } - /** - * uint64 gift_id = 1; - * @param value The giftId to set. - * @return This builder for chaining. - */ - public Builder setGiftId(long value) { - - giftId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 gift_id = 1; - * @return This builder for chaining. - */ - public Builder clearGiftId() { - bitField0_ = (bitField0_ & ~0x00000001); - giftId_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef nameRef_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder> nameRefBuilder_; - /** - * .PatternRef name_ref = 2; - * @return Whether the nameRef field is set. - */ - public boolean hasNameRef() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .PatternRef name_ref = 2; - * @return The nameRef. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef() { - if (nameRefBuilder_ == null) { - return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; - } else { - return nameRefBuilder_.getMessage(); - } - } - /** - * .PatternRef name_ref = 2; - */ - public Builder setNameRef(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef value) { - if (nameRefBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - nameRef_ = value; - } else { - nameRefBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .PatternRef name_ref = 2; - */ - public Builder setNameRef( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder builderForValue) { - if (nameRefBuilder_ == null) { - nameRef_ = builderForValue.build(); - } else { - nameRefBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .PatternRef name_ref = 2; - */ - public Builder mergeNameRef(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef value) { - if (nameRefBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - nameRef_ != null && - nameRef_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance()) { - getNameRefBuilder().mergeFrom(value); - } else { - nameRef_ = value; - } - } else { - nameRefBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .PatternRef name_ref = 2; - */ - public Builder clearNameRef() { - bitField0_ = (bitField0_ & ~0x00000002); - nameRef_ = null; - if (nameRefBuilder_ != null) { - nameRefBuilder_.dispose(); - nameRefBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .PatternRef name_ref = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder getNameRefBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getNameRefFieldBuilder().getBuilder(); - } - /** - * .PatternRef name_ref = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder() { - if (nameRefBuilder_ != null) { - return nameRefBuilder_.getMessageOrBuilder(); - } else { - return nameRef_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; - } - } - /** - * .PatternRef name_ref = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder> - getNameRefFieldBuilder() { - if (nameRefBuilder_ == null) { - nameRefBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder>( - getNameRef(), - getParentForChildren(), - isClean()); - nameRef_ = null; - } - return nameRefBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPieceGift) - } - - // @@protoc_insertion_point(class_scope:TextPieceGift) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPieceGift parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPieceGift_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPieceGift_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023TextPieceGift.proto\032\020PatternRef.proto\"" + - "?\n\rTextPieceGift\022\017\n\007gift_id\030\001 \001(\004\022\035\n\010nam" + - "e_ref\030\002 \001(\0132\013.PatternRefB8\n6tech.ordinar" + - "yroad.live.chat.client.douyin.protobuf.d" + - "tob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.getDescriptor(), - }); - internal_static_TextPieceGift_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPieceGift_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPieceGift_descriptor, - new java.lang.String[] { "GiftId", "NameRef", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java deleted file mode 100644 index 7e4c99c7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java +++ /dev/null @@ -1,625 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPieceHeart.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPieceHeartOuterClass { - private TextPieceHeartOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPieceHeartOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPieceHeart) - com.google.protobuf.MessageOrBuilder { - - /** - * string color = 1; - * @return The color. - */ - java.lang.String getColor(); - /** - * string color = 1; - * @return The bytes for color. - */ - com.google.protobuf.ByteString - getColorBytes(); - } - /** - * Protobuf type {@code TextPieceHeart} - */ - public static final class TextPieceHeart extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPieceHeart) - TextPieceHeartOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPieceHeart.newBuilder() to construct. - private TextPieceHeart(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPieceHeart() { - color_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPieceHeart(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder.class); - } - - public static final int COLOR_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object color_ = ""; - /** - * string color = 1; - * @return The color. - */ - @java.lang.Override - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } - } - /** - * string color = 1; - * @return The bytes for color. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, color_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, color_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart) obj; - - if (!getColor() - .equals(other.getColor())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + COLOR_FIELD_NUMBER; - hash = (53 * hash) + getColor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPieceHeart} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPieceHeart) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - color_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.color_ = color_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance()) return this; - if (!other.getColor().isEmpty()) { - color_ = other.color_; - bitField0_ |= 0x00000001; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - color_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object color_ = ""; - /** - * string color = 1; - * @return The color. - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string color = 1; - * @return The bytes for color. - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string color = 1; - * @param value The color to set. - * @return This builder for chaining. - */ - public Builder setColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - color_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string color = 1; - * @return This builder for chaining. - */ - public Builder clearColor() { - color_ = getDefaultInstance().getColor(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string color = 1; - * @param value The bytes for color to set. - * @return This builder for chaining. - */ - public Builder setColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - color_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPieceHeart) - } - - // @@protoc_insertion_point(class_scope:TextPieceHeart) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPieceHeart parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPieceHeart_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPieceHeart_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024TextPieceHeart.proto\"\037\n\016TextPieceHeart" + - "\022\r\n\005color\030\001 \001(\tB8\n6tech.ordinaryroad.liv" + - "e.chat.client.douyin.protobuf.dtob\006proto" + - "3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_TextPieceHeart_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPieceHeart_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPieceHeart_descriptor, - new java.lang.String[] { "Color", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java deleted file mode 100644 index 8d3adcb3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java +++ /dev/null @@ -1,750 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPieceImage.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPieceImageOuterClass { - private TextPieceImageOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPieceImageOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPieceImage) - com.google.protobuf.MessageOrBuilder { - - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - boolean hasImage(); - /** - * .Image image = 1; - * @return The image. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage(); - /** - * .Image image = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder(); - - /** - * float scaling_rate = 2; - * @return The scalingRate. - */ - float getScalingRate(); - } - /** - * Protobuf type {@code TextPieceImage} - */ - public static final class TextPieceImage extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPieceImage) - TextPieceImageOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPieceImage.newBuilder() to construct. - private TextPieceImage(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPieceImage() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPieceImage(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder.class); - } - - public static final int IMAGE_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - @java.lang.Override - public boolean hasImage() { - return image_ != null; - } - /** - * .Image image = 1; - * @return The image. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - /** - * .Image image = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - - public static final int SCALING_RATE_FIELD_NUMBER = 2; - private float scalingRate_ = 0F; - /** - * float scaling_rate = 2; - * @return The scalingRate. - */ - @java.lang.Override - public float getScalingRate() { - return scalingRate_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (image_ != null) { - output.writeMessage(1, getImage()); - } - if (java.lang.Float.floatToRawIntBits(scalingRate_) != 0) { - output.writeFloat(2, scalingRate_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (image_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getImage()); - } - if (java.lang.Float.floatToRawIntBits(scalingRate_) != 0) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, scalingRate_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage) obj; - - if (hasImage() != other.hasImage()) return false; - if (hasImage()) { - if (!getImage() - .equals(other.getImage())) return false; - } - if (java.lang.Float.floatToIntBits(getScalingRate()) - != java.lang.Float.floatToIntBits( - other.getScalingRate())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasImage()) { - hash = (37 * hash) + IMAGE_FIELD_NUMBER; - hash = (53 * hash) + getImage().hashCode(); - } - hash = (37 * hash) + SCALING_RATE_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits( - getScalingRate()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPieceImage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPieceImage) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - image_ = null; - if (imageBuilder_ != null) { - imageBuilder_.dispose(); - imageBuilder_ = null; - } - scalingRate_ = 0F; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.image_ = imageBuilder_ == null - ? image_ - : imageBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.scalingRate_ = scalingRate_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance()) return this; - if (other.hasImage()) { - mergeImage(other.getImage()); - } - if (other.getScalingRate() != 0F) { - setScalingRate(other.getScalingRate()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getImageFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 21: { - scalingRate_ = input.readFloat(); - bitField0_ |= 0x00000002; - break; - } // case 21 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imageBuilder_; - /** - * .Image image = 1; - * @return Whether the image field is set. - */ - public boolean hasImage() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Image image = 1; - * @return The image. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { - if (imageBuilder_ == null) { - return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } else { - return imageBuilder_.getMessage(); - } - } - /** - * .Image image = 1; - */ - public Builder setImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imageBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - image_ = value; - } else { - imageBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder setImage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (imageBuilder_ == null) { - image_ = builderForValue.build(); - } else { - imageBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder mergeImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imageBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - image_ != null && - image_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getImageBuilder().mergeFrom(value); - } else { - image_ = value; - } - } else { - imageBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public Builder clearImage() { - bitField0_ = (bitField0_ & ~0x00000001); - image_ = null; - if (imageBuilder_ != null) { - imageBuilder_.dispose(); - imageBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image image = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImageBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getImageFieldBuilder().getBuilder(); - } - /** - * .Image image = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { - if (imageBuilder_ != null) { - return imageBuilder_.getMessageOrBuilder(); - } else { - return image_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; - } - } - /** - * .Image image = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getImageFieldBuilder() { - if (imageBuilder_ == null) { - imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getImage(), - getParentForChildren(), - isClean()); - image_ = null; - } - return imageBuilder_; - } - - private float scalingRate_ ; - /** - * float scaling_rate = 2; - * @return The scalingRate. - */ - @java.lang.Override - public float getScalingRate() { - return scalingRate_; - } - /** - * float scaling_rate = 2; - * @param value The scalingRate to set. - * @return This builder for chaining. - */ - public Builder setScalingRate(float value) { - - scalingRate_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * float scaling_rate = 2; - * @return This builder for chaining. - */ - public Builder clearScalingRate() { - bitField0_ = (bitField0_ & ~0x00000002); - scalingRate_ = 0F; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPieceImage) - } - - // @@protoc_insertion_point(class_scope:TextPieceImage) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPieceImage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPieceImage_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPieceImage_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024TextPieceImage.proto\032\013Image.proto\"=\n\016T" + - "extPieceImage\022\025\n\005image\030\001 \001(\0132\006.Image\022\024\n\014" + - "scaling_rate\030\002 \001(\002B8\n6tech.ordinaryroad." + - "live.chat.client.douyin.protobuf.dtob\006pr" + - "oto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - }); - internal_static_TextPieceImage_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPieceImage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPieceImage_descriptor, - new java.lang.String[] { "Image", "ScalingRate", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java deleted file mode 100644 index 3eecce98..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java +++ /dev/null @@ -1,1895 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPiece.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPieceOuterClass { - private TextPieceOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPieceOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPiece) - com.google.protobuf.MessageOrBuilder { - - /** - * bool type = 1; - * @return The type. - */ - boolean getType(); - - /** - * .TextFormat format = 2; - * @return Whether the format field is set. - */ - boolean hasFormat(); - /** - * .TextFormat format = 2; - * @return The format. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat(); - /** - * .TextFormat format = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder(); - - /** - * string string_value = 3; - * @return The stringValue. - */ - java.lang.String getStringValue(); - /** - * string string_value = 3; - * @return The bytes for stringValue. - */ - com.google.protobuf.ByteString - getStringValueBytes(); - - /** - * .TextPieceUser user_value = 4; - * @return Whether the userValue field is set. - */ - boolean hasUserValue(); - /** - * .TextPieceUser user_value = 4; - * @return The userValue. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue(); - /** - * .TextPieceUser user_value = 4; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder(); - - /** - * .TextPieceGift gift_value = 5; - * @return Whether the giftValue field is set. - */ - boolean hasGiftValue(); - /** - * .TextPieceGift gift_value = 5; - * @return The giftValue. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue(); - /** - * .TextPieceGift gift_value = 5; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder(); - - /** - * .TextPieceHeart heart_value = 6; - * @return Whether the heartValue field is set. - */ - boolean hasHeartValue(); - /** - * .TextPieceHeart heart_value = 6; - * @return The heartValue. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue(); - /** - * .TextPieceHeart heart_value = 6; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder(); - - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return Whether the patternRefValue field is set. - */ - boolean hasPatternRefValue(); - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return The patternRefValue. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue(); - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder(); - - /** - * .TextPieceImage image_value = 8; - * @return Whether the imageValue field is set. - */ - boolean hasImageValue(); - /** - * .TextPieceImage image_value = 8; - * @return The imageValue. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue(); - /** - * .TextPieceImage image_value = 8; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder(); - } - /** - * Protobuf type {@code TextPiece} - */ - public static final class TextPiece extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPiece) - TextPieceOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPiece.newBuilder() to construct. - private TextPiece(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPiece() { - stringValue_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPiece(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder.class); - } - - public static final int TYPE_FIELD_NUMBER = 1; - private boolean type_ = false; - /** - * bool type = 1; - * @return The type. - */ - @java.lang.Override - public boolean getType() { - return type_; - } - - public static final int FORMAT_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat format_; - /** - * .TextFormat format = 2; - * @return Whether the format field is set. - */ - @java.lang.Override - public boolean hasFormat() { - return format_ != null; - } - /** - * .TextFormat format = 2; - * @return The format. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat() { - return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; - } - /** - * .TextFormat format = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder() { - return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; - } - - public static final int STRING_VALUE_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object stringValue_ = ""; - /** - * string string_value = 3; - * @return The stringValue. - */ - @java.lang.Override - public java.lang.String getStringValue() { - java.lang.Object ref = stringValue_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - stringValue_ = s; - return s; - } - } - /** - * string string_value = 3; - * @return The bytes for stringValue. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getStringValueBytes() { - java.lang.Object ref = stringValue_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - stringValue_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_VALUE_FIELD_NUMBER = 4; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser userValue_; - /** - * .TextPieceUser user_value = 4; - * @return Whether the userValue field is set. - */ - @java.lang.Override - public boolean hasUserValue() { - return userValue_ != null; - } - /** - * .TextPieceUser user_value = 4; - * @return The userValue. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue() { - return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; - } - /** - * .TextPieceUser user_value = 4; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder() { - return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; - } - - public static final int GIFT_VALUE_FIELD_NUMBER = 5; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift giftValue_; - /** - * .TextPieceGift gift_value = 5; - * @return Whether the giftValue field is set. - */ - @java.lang.Override - public boolean hasGiftValue() { - return giftValue_ != null; - } - /** - * .TextPieceGift gift_value = 5; - * @return The giftValue. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue() { - return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; - } - /** - * .TextPieceGift gift_value = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder() { - return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; - } - - public static final int HEART_VALUE_FIELD_NUMBER = 6; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart heartValue_; - /** - * .TextPieceHeart heart_value = 6; - * @return Whether the heartValue field is set. - */ - @java.lang.Override - public boolean hasHeartValue() { - return heartValue_ != null; - } - /** - * .TextPieceHeart heart_value = 6; - * @return The heartValue. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue() { - return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; - } - /** - * .TextPieceHeart heart_value = 6; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder() { - return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; - } - - public static final int PATTERN_REF_VALUE_FIELD_NUMBER = 7; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef patternRefValue_; - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return Whether the patternRefValue field is set. - */ - @java.lang.Override - public boolean hasPatternRefValue() { - return patternRefValue_ != null; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return The patternRefValue. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue() { - return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder() { - return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; - } - - public static final int IMAGE_VALUE_FIELD_NUMBER = 8; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage imageValue_; - /** - * .TextPieceImage image_value = 8; - * @return Whether the imageValue field is set. - */ - @java.lang.Override - public boolean hasImageValue() { - return imageValue_ != null; - } - /** - * .TextPieceImage image_value = 8; - * @return The imageValue. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue() { - return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; - } - /** - * .TextPieceImage image_value = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder() { - return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (type_ != false) { - output.writeBool(1, type_); - } - if (format_ != null) { - output.writeMessage(2, getFormat()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stringValue_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, stringValue_); - } - if (userValue_ != null) { - output.writeMessage(4, getUserValue()); - } - if (giftValue_ != null) { - output.writeMessage(5, getGiftValue()); - } - if (heartValue_ != null) { - output.writeMessage(6, getHeartValue()); - } - if (patternRefValue_ != null) { - output.writeMessage(7, getPatternRefValue()); - } - if (imageValue_ != null) { - output.writeMessage(8, getImageValue()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (type_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, type_); - } - if (format_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getFormat()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stringValue_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, stringValue_); - } - if (userValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getUserValue()); - } - if (giftValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getGiftValue()); - } - if (heartValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, getHeartValue()); - } - if (patternRefValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getPatternRefValue()); - } - if (imageValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, getImageValue()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece) obj; - - if (getType() - != other.getType()) return false; - if (hasFormat() != other.hasFormat()) return false; - if (hasFormat()) { - if (!getFormat() - .equals(other.getFormat())) return false; - } - if (!getStringValue() - .equals(other.getStringValue())) return false; - if (hasUserValue() != other.hasUserValue()) return false; - if (hasUserValue()) { - if (!getUserValue() - .equals(other.getUserValue())) return false; - } - if (hasGiftValue() != other.hasGiftValue()) return false; - if (hasGiftValue()) { - if (!getGiftValue() - .equals(other.getGiftValue())) return false; - } - if (hasHeartValue() != other.hasHeartValue()) return false; - if (hasHeartValue()) { - if (!getHeartValue() - .equals(other.getHeartValue())) return false; - } - if (hasPatternRefValue() != other.hasPatternRefValue()) return false; - if (hasPatternRefValue()) { - if (!getPatternRefValue() - .equals(other.getPatternRefValue())) return false; - } - if (hasImageValue() != other.hasImageValue()) return false; - if (hasImageValue()) { - if (!getImageValue() - .equals(other.getImageValue())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getType()); - if (hasFormat()) { - hash = (37 * hash) + FORMAT_FIELD_NUMBER; - hash = (53 * hash) + getFormat().hashCode(); - } - hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getStringValue().hashCode(); - if (hasUserValue()) { - hash = (37 * hash) + USER_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getUserValue().hashCode(); - } - if (hasGiftValue()) { - hash = (37 * hash) + GIFT_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getGiftValue().hashCode(); - } - if (hasHeartValue()) { - hash = (37 * hash) + HEART_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getHeartValue().hashCode(); - } - if (hasPatternRefValue()) { - hash = (37 * hash) + PATTERN_REF_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getPatternRefValue().hashCode(); - } - if (hasImageValue()) { - hash = (37 * hash) + IMAGE_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getImageValue().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPiece} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPiece) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - type_ = false; - format_ = null; - if (formatBuilder_ != null) { - formatBuilder_.dispose(); - formatBuilder_ = null; - } - stringValue_ = ""; - userValue_ = null; - if (userValueBuilder_ != null) { - userValueBuilder_.dispose(); - userValueBuilder_ = null; - } - giftValue_ = null; - if (giftValueBuilder_ != null) { - giftValueBuilder_.dispose(); - giftValueBuilder_ = null; - } - heartValue_ = null; - if (heartValueBuilder_ != null) { - heartValueBuilder_.dispose(); - heartValueBuilder_ = null; - } - patternRefValue_ = null; - if (patternRefValueBuilder_ != null) { - patternRefValueBuilder_.dispose(); - patternRefValueBuilder_ = null; - } - imageValue_ = null; - if (imageValueBuilder_ != null) { - imageValueBuilder_.dispose(); - imageValueBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.type_ = type_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.format_ = formatBuilder_ == null - ? format_ - : formatBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.stringValue_ = stringValue_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.userValue_ = userValueBuilder_ == null - ? userValue_ - : userValueBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.giftValue_ = giftValueBuilder_ == null - ? giftValue_ - : giftValueBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.heartValue_ = heartValueBuilder_ == null - ? heartValue_ - : heartValueBuilder_.build(); - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.patternRefValue_ = patternRefValueBuilder_ == null - ? patternRefValue_ - : patternRefValueBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.imageValue_ = imageValueBuilder_ == null - ? imageValue_ - : imageValueBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance()) return this; - if (other.getType() != false) { - setType(other.getType()); - } - if (other.hasFormat()) { - mergeFormat(other.getFormat()); - } - if (!other.getStringValue().isEmpty()) { - stringValue_ = other.stringValue_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.hasUserValue()) { - mergeUserValue(other.getUserValue()); - } - if (other.hasGiftValue()) { - mergeGiftValue(other.getGiftValue()); - } - if (other.hasHeartValue()) { - mergeHeartValue(other.getHeartValue()); - } - if (other.hasPatternRefValue()) { - mergePatternRefValue(other.getPatternRefValue()); - } - if (other.hasImageValue()) { - mergeImageValue(other.getImageValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - type_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - input.readMessage( - getFormatFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - stringValue_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - input.readMessage( - getUserValueFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 42: { - input.readMessage( - getGiftValueFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - input.readMessage( - getHeartValueFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - input.readMessage( - getPatternRefValueFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 66: { - input.readMessage( - getImageValueFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000080; - break; - } // case 66 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private boolean type_ ; - /** - * bool type = 1; - * @return The type. - */ - @java.lang.Override - public boolean getType() { - return type_; - } - /** - * bool type = 1; - * @param value The type to set. - * @return This builder for chaining. - */ - public Builder setType(boolean value) { - - type_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool type = 1; - * @return This builder for chaining. - */ - public Builder clearType() { - bitField0_ = (bitField0_ & ~0x00000001); - type_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat format_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> formatBuilder_; - /** - * .TextFormat format = 2; - * @return Whether the format field is set. - */ - public boolean hasFormat() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .TextFormat format = 2; - * @return The format. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat() { - if (formatBuilder_ == null) { - return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; - } else { - return formatBuilder_.getMessage(); - } - } - /** - * .TextFormat format = 2; - */ - public Builder setFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { - if (formatBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - format_ = value; - } else { - formatBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextFormat format = 2; - */ - public Builder setFormat( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder builderForValue) { - if (formatBuilder_ == null) { - format_ = builderForValue.build(); - } else { - formatBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextFormat format = 2; - */ - public Builder mergeFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { - if (formatBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - format_ != null && - format_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) { - getFormatBuilder().mergeFrom(value); - } else { - format_ = value; - } - } else { - formatBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .TextFormat format = 2; - */ - public Builder clearFormat() { - bitField0_ = (bitField0_ & ~0x00000002); - format_ = null; - if (formatBuilder_ != null) { - formatBuilder_.dispose(); - formatBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextFormat format = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder getFormatBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getFormatFieldBuilder().getBuilder(); - } - /** - * .TextFormat format = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder() { - if (formatBuilder_ != null) { - return formatBuilder_.getMessageOrBuilder(); - } else { - return format_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; - } - } - /** - * .TextFormat format = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> - getFormatFieldBuilder() { - if (formatBuilder_ == null) { - formatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder>( - getFormat(), - getParentForChildren(), - isClean()); - format_ = null; - } - return formatBuilder_; - } - - private java.lang.Object stringValue_ = ""; - /** - * string string_value = 3; - * @return The stringValue. - */ - public java.lang.String getStringValue() { - java.lang.Object ref = stringValue_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - stringValue_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string string_value = 3; - * @return The bytes for stringValue. - */ - public com.google.protobuf.ByteString - getStringValueBytes() { - java.lang.Object ref = stringValue_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - stringValue_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string string_value = 3; - * @param value The stringValue to set. - * @return This builder for chaining. - */ - public Builder setStringValue( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - stringValue_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string string_value = 3; - * @return This builder for chaining. - */ - public Builder clearStringValue() { - stringValue_ = getDefaultInstance().getStringValue(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string string_value = 3; - * @param value The bytes for stringValue to set. - * @return This builder for chaining. - */ - public Builder setStringValueBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - stringValue_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser userValue_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder> userValueBuilder_; - /** - * .TextPieceUser user_value = 4; - * @return Whether the userValue field is set. - */ - public boolean hasUserValue() { - return ((bitField0_ & 0x00000008) != 0); - } - /** - * .TextPieceUser user_value = 4; - * @return The userValue. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue() { - if (userValueBuilder_ == null) { - return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; - } else { - return userValueBuilder_.getMessage(); - } - } - /** - * .TextPieceUser user_value = 4; - */ - public Builder setUserValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser value) { - if (userValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - userValue_ = value; - } else { - userValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPieceUser user_value = 4; - */ - public Builder setUserValue( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder builderForValue) { - if (userValueBuilder_ == null) { - userValue_ = builderForValue.build(); - } else { - userValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPieceUser user_value = 4; - */ - public Builder mergeUserValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser value) { - if (userValueBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && - userValue_ != null && - userValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance()) { - getUserValueBuilder().mergeFrom(value); - } else { - userValue_ = value; - } - } else { - userValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .TextPieceUser user_value = 4; - */ - public Builder clearUserValue() { - bitField0_ = (bitField0_ & ~0x00000008); - userValue_ = null; - if (userValueBuilder_ != null) { - userValueBuilder_.dispose(); - userValueBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPieceUser user_value = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder getUserValueBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getUserValueFieldBuilder().getBuilder(); - } - /** - * .TextPieceUser user_value = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder() { - if (userValueBuilder_ != null) { - return userValueBuilder_.getMessageOrBuilder(); - } else { - return userValue_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; - } - } - /** - * .TextPieceUser user_value = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder> - getUserValueFieldBuilder() { - if (userValueBuilder_ == null) { - userValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder>( - getUserValue(), - getParentForChildren(), - isClean()); - userValue_ = null; - } - return userValueBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift giftValue_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder> giftValueBuilder_; - /** - * .TextPieceGift gift_value = 5; - * @return Whether the giftValue field is set. - */ - public boolean hasGiftValue() { - return ((bitField0_ & 0x00000010) != 0); - } - /** - * .TextPieceGift gift_value = 5; - * @return The giftValue. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue() { - if (giftValueBuilder_ == null) { - return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; - } else { - return giftValueBuilder_.getMessage(); - } - } - /** - * .TextPieceGift gift_value = 5; - */ - public Builder setGiftValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift value) { - if (giftValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - giftValue_ = value; - } else { - giftValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .TextPieceGift gift_value = 5; - */ - public Builder setGiftValue( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder builderForValue) { - if (giftValueBuilder_ == null) { - giftValue_ = builderForValue.build(); - } else { - giftValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .TextPieceGift gift_value = 5; - */ - public Builder mergeGiftValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift value) { - if (giftValueBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) && - giftValue_ != null && - giftValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance()) { - getGiftValueBuilder().mergeFrom(value); - } else { - giftValue_ = value; - } - } else { - giftValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .TextPieceGift gift_value = 5; - */ - public Builder clearGiftValue() { - bitField0_ = (bitField0_ & ~0x00000010); - giftValue_ = null; - if (giftValueBuilder_ != null) { - giftValueBuilder_.dispose(); - giftValueBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPieceGift gift_value = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder getGiftValueBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getGiftValueFieldBuilder().getBuilder(); - } - /** - * .TextPieceGift gift_value = 5; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder() { - if (giftValueBuilder_ != null) { - return giftValueBuilder_.getMessageOrBuilder(); - } else { - return giftValue_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; - } - } - /** - * .TextPieceGift gift_value = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder> - getGiftValueFieldBuilder() { - if (giftValueBuilder_ == null) { - giftValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder>( - getGiftValue(), - getParentForChildren(), - isClean()); - giftValue_ = null; - } - return giftValueBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart heartValue_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder> heartValueBuilder_; - /** - * .TextPieceHeart heart_value = 6; - * @return Whether the heartValue field is set. - */ - public boolean hasHeartValue() { - return ((bitField0_ & 0x00000020) != 0); - } - /** - * .TextPieceHeart heart_value = 6; - * @return The heartValue. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue() { - if (heartValueBuilder_ == null) { - return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; - } else { - return heartValueBuilder_.getMessage(); - } - } - /** - * .TextPieceHeart heart_value = 6; - */ - public Builder setHeartValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart value) { - if (heartValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - heartValue_ = value; - } else { - heartValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .TextPieceHeart heart_value = 6; - */ - public Builder setHeartValue( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder builderForValue) { - if (heartValueBuilder_ == null) { - heartValue_ = builderForValue.build(); - } else { - heartValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .TextPieceHeart heart_value = 6; - */ - public Builder mergeHeartValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart value) { - if (heartValueBuilder_ == null) { - if (((bitField0_ & 0x00000020) != 0) && - heartValue_ != null && - heartValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance()) { - getHeartValueBuilder().mergeFrom(value); - } else { - heartValue_ = value; - } - } else { - heartValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .TextPieceHeart heart_value = 6; - */ - public Builder clearHeartValue() { - bitField0_ = (bitField0_ & ~0x00000020); - heartValue_ = null; - if (heartValueBuilder_ != null) { - heartValueBuilder_.dispose(); - heartValueBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPieceHeart heart_value = 6; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder getHeartValueBuilder() { - bitField0_ |= 0x00000020; - onChanged(); - return getHeartValueFieldBuilder().getBuilder(); - } - /** - * .TextPieceHeart heart_value = 6; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder() { - if (heartValueBuilder_ != null) { - return heartValueBuilder_.getMessageOrBuilder(); - } else { - return heartValue_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; - } - } - /** - * .TextPieceHeart heart_value = 6; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder> - getHeartValueFieldBuilder() { - if (heartValueBuilder_ == null) { - heartValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder>( - getHeartValue(), - getParentForChildren(), - isClean()); - heartValue_ = null; - } - return heartValueBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef patternRefValue_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder> patternRefValueBuilder_; - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return Whether the patternRefValue field is set. - */ - public boolean hasPatternRefValue() { - return ((bitField0_ & 0x00000040) != 0); - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - * @return The patternRefValue. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue() { - if (patternRefValueBuilder_ == null) { - return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; - } else { - return patternRefValueBuilder_.getMessage(); - } - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public Builder setPatternRefValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef value) { - if (patternRefValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - patternRefValue_ = value; - } else { - patternRefValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public Builder setPatternRefValue( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder builderForValue) { - if (patternRefValueBuilder_ == null) { - patternRefValue_ = builderForValue.build(); - } else { - patternRefValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public Builder mergePatternRefValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef value) { - if (patternRefValueBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0) && - patternRefValue_ != null && - patternRefValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance()) { - getPatternRefValueBuilder().mergeFrom(value); - } else { - patternRefValue_ = value; - } - } else { - patternRefValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public Builder clearPatternRefValue() { - bitField0_ = (bitField0_ & ~0x00000040); - patternRefValue_ = null; - if (patternRefValueBuilder_ != null) { - patternRefValueBuilder_.dispose(); - patternRefValueBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder getPatternRefValueBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getPatternRefValueFieldBuilder().getBuilder(); - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder() { - if (patternRefValueBuilder_ != null) { - return patternRefValueBuilder_.getMessageOrBuilder(); - } else { - return patternRefValue_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; - } - } - /** - * .TextPiecePatternRef pattern_ref_value = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder> - getPatternRefValueFieldBuilder() { - if (patternRefValueBuilder_ == null) { - patternRefValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder>( - getPatternRefValue(), - getParentForChildren(), - isClean()); - patternRefValue_ = null; - } - return patternRefValueBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage imageValue_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder> imageValueBuilder_; - /** - * .TextPieceImage image_value = 8; - * @return Whether the imageValue field is set. - */ - public boolean hasImageValue() { - return ((bitField0_ & 0x00000080) != 0); - } - /** - * .TextPieceImage image_value = 8; - * @return The imageValue. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue() { - if (imageValueBuilder_ == null) { - return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; - } else { - return imageValueBuilder_.getMessage(); - } - } - /** - * .TextPieceImage image_value = 8; - */ - public Builder setImageValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage value) { - if (imageValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - imageValue_ = value; - } else { - imageValueBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .TextPieceImage image_value = 8; - */ - public Builder setImageValue( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder builderForValue) { - if (imageValueBuilder_ == null) { - imageValue_ = builderForValue.build(); - } else { - imageValueBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .TextPieceImage image_value = 8; - */ - public Builder mergeImageValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage value) { - if (imageValueBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) && - imageValue_ != null && - imageValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance()) { - getImageValueBuilder().mergeFrom(value); - } else { - imageValue_ = value; - } - } else { - imageValueBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .TextPieceImage image_value = 8; - */ - public Builder clearImageValue() { - bitField0_ = (bitField0_ & ~0x00000080); - imageValue_ = null; - if (imageValueBuilder_ != null) { - imageValueBuilder_.dispose(); - imageValueBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .TextPieceImage image_value = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder getImageValueBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getImageValueFieldBuilder().getBuilder(); - } - /** - * .TextPieceImage image_value = 8; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder() { - if (imageValueBuilder_ != null) { - return imageValueBuilder_.getMessageOrBuilder(); - } else { - return imageValue_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; - } - } - /** - * .TextPieceImage image_value = 8; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder> - getImageValueFieldBuilder() { - if (imageValueBuilder_ == null) { - imageValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder>( - getImageValue(), - getParentForChildren(), - isClean()); - imageValue_ = null; - } - return imageValueBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPiece) - } - - // @@protoc_insertion_point(class_scope:TextPiece) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPiece parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPiece_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPiece_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\017TextPiece.proto\032\020TextFormat.proto\032\024Tex" + - "tPieceImage.proto\032\031TextPiecePatternRef.p" + - "roto\032\024TextPieceHeart.proto\032\023TextPieceGif" + - "t.proto\032\023TextPieceUser.proto\"\221\002\n\tTextPie" + - "ce\022\014\n\004type\030\001 \001(\010\022\033\n\006format\030\002 \001(\0132\013.TextF" + - "ormat\022\024\n\014string_value\030\003 \001(\t\022\"\n\nuser_valu" + - "e\030\004 \001(\0132\016.TextPieceUser\022\"\n\ngift_value\030\005 " + - "\001(\0132\016.TextPieceGift\022$\n\013heart_value\030\006 \001(\013" + - "2\017.TextPieceHeart\022/\n\021pattern_ref_value\030\007" + - " \001(\0132\024.TextPiecePatternRef\022$\n\013image_valu" + - "e\030\010 \001(\0132\017.TextPieceImageB8\n6tech.ordinar" + - "yroad.live.chat.client.douyin.protobuf.d" + - "tob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.getDescriptor(), - }); - internal_static_TextPiece_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPiece_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPiece_descriptor, - new java.lang.String[] { "Type", "Format", "StringValue", "UserValue", "GiftValue", "HeartValue", "PatternRefValue", "ImageValue", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java deleted file mode 100644 index 1a928e54..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java +++ /dev/null @@ -1,773 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPiecePatternRef.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPiecePatternRefOuterClass { - private TextPiecePatternRefOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPiecePatternRefOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPiecePatternRef) - com.google.protobuf.MessageOrBuilder { - - /** - * string key = 1; - * @return The key. - */ - java.lang.String getKey(); - /** - * string key = 1; - * @return The bytes for key. - */ - com.google.protobuf.ByteString - getKeyBytes(); - - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - java.lang.String getDefaultPattern(); - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - com.google.protobuf.ByteString - getDefaultPatternBytes(); - } - /** - * Protobuf type {@code TextPiecePatternRef} - */ - public static final class TextPiecePatternRef extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPiecePatternRef) - TextPiecePatternRefOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPiecePatternRef.newBuilder() to construct. - private TextPiecePatternRef(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPiecePatternRef() { - key_ = ""; - defaultPattern_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPiecePatternRef(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder.class); - } - - public static final int KEY_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - @java.lang.Override - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DEFAULT_PATTERN_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object defaultPattern_ = ""; - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - @java.lang.Override - public java.lang.String getDefaultPattern() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPattern_ = s; - return s; - } - } - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDefaultPatternBytes() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPattern_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPattern_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef) obj; - - if (!getKey() - .equals(other.getKey())) return false; - if (!getDefaultPattern() - .equals(other.getDefaultPattern())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + KEY_FIELD_NUMBER; - hash = (53 * hash) + getKey().hashCode(); - hash = (37 * hash) + DEFAULT_PATTERN_FIELD_NUMBER; - hash = (53 * hash) + getDefaultPattern().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPiecePatternRef} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPiecePatternRef) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - key_ = ""; - defaultPattern_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.key_ = key_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.defaultPattern_ = defaultPattern_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance()) return this; - if (!other.getKey().isEmpty()) { - key_ = other.key_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getDefaultPattern().isEmpty()) { - defaultPattern_ = other.defaultPattern_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - key_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - defaultPattern_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object key_ = ""; - /** - * string key = 1; - * @return The key. - */ - public java.lang.String getKey() { - java.lang.Object ref = key_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - key_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string key = 1; - * @return The bytes for key. - */ - public com.google.protobuf.ByteString - getKeyBytes() { - java.lang.Object ref = key_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - key_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string key = 1; - * @param value The key to set. - * @return This builder for chaining. - */ - public Builder setKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string key = 1; - * @return This builder for chaining. - */ - public Builder clearKey() { - key_ = getDefaultInstance().getKey(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string key = 1; - * @param value The bytes for key to set. - * @return This builder for chaining. - */ - public Builder setKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - key_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object defaultPattern_ = ""; - /** - * string default_pattern = 2; - * @return The defaultPattern. - */ - public java.lang.String getDefaultPattern() { - java.lang.Object ref = defaultPattern_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - defaultPattern_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string default_pattern = 2; - * @return The bytes for defaultPattern. - */ - public com.google.protobuf.ByteString - getDefaultPatternBytes() { - java.lang.Object ref = defaultPattern_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - defaultPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string default_pattern = 2; - * @param value The defaultPattern to set. - * @return This builder for chaining. - */ - public Builder setDefaultPattern( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - defaultPattern_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string default_pattern = 2; - * @return This builder for chaining. - */ - public Builder clearDefaultPattern() { - defaultPattern_ = getDefaultInstance().getDefaultPattern(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string default_pattern = 2; - * @param value The bytes for defaultPattern to set. - * @return This builder for chaining. - */ - public Builder setDefaultPatternBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - defaultPattern_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPiecePatternRef) - } - - // @@protoc_insertion_point(class_scope:TextPiecePatternRef) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPiecePatternRef parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPiecePatternRef_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPiecePatternRef_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\031TextPiecePatternRef.proto\";\n\023TextPiece" + - "PatternRef\022\013\n\003key\030\001 \001(\t\022\027\n\017default_patte" + - "rn\030\002 \001(\tB8\n6tech.ordinaryroad.live.chat." + - "client.douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_TextPiecePatternRef_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPiecePatternRef_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPiecePatternRef_descriptor, - new java.lang.String[] { "Key", "DefaultPattern", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java deleted file mode 100644 index 2d0fc474..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java +++ /dev/null @@ -1,748 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: TextPieceUser.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class TextPieceUserOuterClass { - private TextPieceUserOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface TextPieceUserOrBuilder extends - // @@protoc_insertion_point(interface_extends:TextPieceUser) - com.google.protobuf.MessageOrBuilder { - - /** - * .User user = 1; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .User user = 1; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); - /** - * .User user = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); - - /** - * bool with_colon = 2; - * @return The withColon. - */ - boolean getWithColon(); - } - /** - * Protobuf type {@code TextPieceUser} - */ - public static final class TextPieceUser extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:TextPieceUser) - TextPieceUserOrBuilder { - private static final long serialVersionUID = 0L; - // Use TextPieceUser.newBuilder() to construct. - private TextPieceUser(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private TextPieceUser() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new TextPieceUser(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder.class); - } - - public static final int USER_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - /** - * .User user = 1; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .User user = 1; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - /** - * .User user = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - - public static final int WITH_COLON_FIELD_NUMBER = 2; - private boolean withColon_ = false; - /** - * bool with_colon = 2; - * @return The withColon. - */ - @java.lang.Override - public boolean getWithColon() { - return withColon_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (user_ != null) { - output.writeMessage(1, getUser()); - } - if (withColon_ != false) { - output.writeBool(2, withColon_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getUser()); - } - if (withColon_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, withColon_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser) obj; - - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getWithColon() - != other.getWithColon()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + WITH_COLON_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getWithColon()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code TextPieceUser} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:TextPieceUser) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - withColon_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.withColon_ = withColon_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance()) return this; - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getWithColon() != false) { - setWithColon(other.getWithColon()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - withColon_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; - /** - * .User user = 1; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .User user = 1; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .User user = 1; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User user = 1; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User user = 1; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User user = 1; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000001); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User user = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .User user = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; - } - } - /** - * .User user = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private boolean withColon_ ; - /** - * bool with_colon = 2; - * @return The withColon. - */ - @java.lang.Override - public boolean getWithColon() { - return withColon_; - } - /** - * bool with_colon = 2; - * @param value The withColon to set. - * @return This builder for chaining. - */ - public Builder setWithColon(boolean value) { - - withColon_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool with_colon = 2; - * @return This builder for chaining. - */ - public Builder clearWithColon() { - bitField0_ = (bitField0_ & ~0x00000002); - withColon_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:TextPieceUser) - } - - // @@protoc_insertion_point(class_scope:TextPieceUser) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public TextPieceUser parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_TextPieceUser_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_TextPieceUser_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023TextPieceUser.proto\032\nUser.proto\"8\n\rTex" + - "tPieceUser\022\023\n\004user\030\001 \001(\0132\005.User\022\022\n\nwith_" + - "colon\030\002 \001(\010B8\n6tech.ordinaryroad.live.ch" + - "at.client.douyin.protobuf.dtob\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), - }); - internal_static_TextPieceUser_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_TextPieceUser_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_TextPieceUser_descriptor, - new java.lang.String[] { "User", "WithColon", }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java deleted file mode 100644 index e8d3b539..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java +++ /dev/null @@ -1,33138 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: User.proto - -package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; - -public final class UserOuterClass { - private UserOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface UserOrBuilder extends - // @@protoc_insertion_point(interface_extends:User) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 id = 1; - * @return The id. - */ - long getId(); - - /** - * uint64 shortId = 2; - * @return The shortId. - */ - long getShortId(); - - /** - * string nickname = 3; - * @return The nickname. - */ - java.lang.String getNickname(); - /** - * string nickname = 3; - * @return The bytes for nickname. - */ - com.google.protobuf.ByteString - getNicknameBytes(); - - /** - * uint32 gender = 4; - * @return The gender. - */ - int getGender(); - - /** - * string signature = 5; - * @return The signature. - */ - java.lang.String getSignature(); - /** - * string signature = 5; - * @return The bytes for signature. - */ - com.google.protobuf.ByteString - getSignatureBytes(); - - /** - * uint32 level = 6; - * @return The level. - */ - int getLevel(); - - /** - * uint64 birthday = 7; - * @return The birthday. - */ - long getBirthday(); - - /** - * string telephone = 8; - * @return The telephone. - */ - java.lang.String getTelephone(); - /** - * string telephone = 8; - * @return The bytes for telephone. - */ - com.google.protobuf.ByteString - getTelephoneBytes(); - - /** - * .Image avatarThumb = 9; - * @return Whether the avatarThumb field is set. - */ - boolean hasAvatarThumb(); - /** - * .Image avatarThumb = 9; - * @return The avatarThumb. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb(); - /** - * .Image avatarThumb = 9; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder(); - - /** - * .Image avatarMedium = 10; - * @return Whether the avatarMedium field is set. - */ - boolean hasAvatarMedium(); - /** - * .Image avatarMedium = 10; - * @return The avatarMedium. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium(); - /** - * .Image avatarMedium = 10; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder(); - - /** - * .Image avatarLarge = 11; - * @return Whether the avatarLarge field is set. - */ - boolean hasAvatarLarge(); - /** - * .Image avatarLarge = 11; - * @return The avatarLarge. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge(); - /** - * .Image avatarLarge = 11; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder(); - - /** - * bool verified = 12; - * @return The verified. - */ - boolean getVerified(); - - /** - * int32 experience = 13; - * @return The experience. - */ - int getExperience(); - - /** - * string city = 14; - * @return The city. - */ - java.lang.String getCity(); - /** - * string city = 14; - * @return The bytes for city. - */ - com.google.protobuf.ByteString - getCityBytes(); - - /** - * int32 status = 15; - * @return The status. - */ - int getStatus(); - - /** - * int64 createTime = 16; - * @return The createTime. - */ - long getCreateTime(); - - /** - * int64 modifyTime = 17; - * @return The modifyTime. - */ - long getModifyTime(); - - /** - * int32 secret = 18; - * @return The secret. - */ - int getSecret(); - - /** - * string shareQrcodeUri = 19; - * @return The shareQrcodeUri. - */ - java.lang.String getShareQrcodeUri(); - /** - * string shareQrcodeUri = 19; - * @return The bytes for shareQrcodeUri. - */ - com.google.protobuf.ByteString - getShareQrcodeUriBytes(); - - /** - * int32 incomeSharePercent = 20; - * @return The incomeSharePercent. - */ - int getIncomeSharePercent(); - - /** - * .Image badgeImageListList = 21; - * @return Whether the badgeImageListList field is set. - */ - boolean hasBadgeImageListList(); - /** - * .Image badgeImageListList = 21; - * @return The badgeImageListList. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList(); - /** - * .Image badgeImageListList = 21; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder(); - - /** - * .User.FollowInfo followInfo = 22; - * @return Whether the followInfo field is set. - */ - boolean hasFollowInfo(); - /** - * .User.FollowInfo followInfo = 22; - * @return The followInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo(); - /** - * .User.FollowInfo followInfo = 22; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder(); - - /** - * .User.PayGrade payGrade = 23; - * @return Whether the payGrade field is set. - */ - boolean hasPayGrade(); - /** - * .User.PayGrade payGrade = 23; - * @return The payGrade. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade(); - /** - * .User.PayGrade payGrade = 23; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder(); - - /** - * .User.FansClub fansClub = 24; - * @return Whether the fansClub field is set. - */ - boolean hasFansClub(); - /** - * .User.FansClub fansClub = 24; - * @return The fansClub. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub(); - /** - * .User.FansClub fansClub = 24; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder(); - - /** - * .User.Border border = 25; - * @return Whether the border field is set. - */ - boolean hasBorder(); - /** - * .User.Border border = 25; - * @return The border. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder(); - /** - * .User.Border border = 25; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder(); - - /** - * string specialId = 26; - * @return The specialId. - */ - java.lang.String getSpecialId(); - /** - * string specialId = 26; - * @return The bytes for specialId. - */ - com.google.protobuf.ByteString - getSpecialIdBytes(); - - /** - * .Image avatarBorder = 27; - * @return Whether the avatarBorder field is set. - */ - boolean hasAvatarBorder(); - /** - * .Image avatarBorder = 27; - * @return The avatarBorder. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder(); - /** - * .Image avatarBorder = 27; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder(); - - /** - * .Image medal = 28; - * @return Whether the medal field is set. - */ - boolean hasMedal(); - /** - * .Image medal = 28; - * @return The medal. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal(); - /** - * .Image medal = 28; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder(); - - /** - * repeated .Image realTimeIconsList = 29; - */ - java.util.List - getRealTimeIconsListList(); - /** - * repeated .Image realTimeIconsList = 29; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index); - /** - * repeated .Image realTimeIconsList = 29; - */ - int getRealTimeIconsListCount(); - /** - * repeated .Image realTimeIconsList = 29; - */ - java.util.List - getRealTimeIconsListOrBuilderList(); - /** - * repeated .Image realTimeIconsList = 29; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( - int index); - - /** - * repeated .Image newRealTimeIconsList = 30; - */ - java.util.List - getNewRealTimeIconsListList(); - /** - * repeated .Image newRealTimeIconsList = 30; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index); - /** - * repeated .Image newRealTimeIconsList = 30; - */ - int getNewRealTimeIconsListCount(); - /** - * repeated .Image newRealTimeIconsList = 30; - */ - java.util.List - getNewRealTimeIconsListOrBuilderList(); - /** - * repeated .Image newRealTimeIconsList = 30; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( - int index); - - /** - * int64 topVipNo = 31; - * @return The topVipNo. - */ - long getTopVipNo(); - - /** - * .User.UserAttr userAttr = 32; - * @return Whether the userAttr field is set. - */ - boolean hasUserAttr(); - /** - * .User.UserAttr userAttr = 32; - * @return The userAttr. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr(); - /** - * .User.UserAttr userAttr = 32; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder(); - - /** - * .User.OwnRoom ownRoom = 33; - * @return Whether the ownRoom field is set. - */ - boolean hasOwnRoom(); - /** - * .User.OwnRoom ownRoom = 33; - * @return The ownRoom. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom(); - /** - * .User.OwnRoom ownRoom = 33; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder(); - - /** - * int64 payScore = 34; - * @return The payScore. - */ - long getPayScore(); - - /** - * int64 ticketCount = 35; - * @return The ticketCount. - */ - long getTicketCount(); - - /** - * .User.AnchorInfo anchorInfo = 36; - * @return Whether the anchorInfo field is set. - */ - boolean hasAnchorInfo(); - /** - * .User.AnchorInfo anchorInfo = 36; - * @return The anchorInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo(); - /** - * .User.AnchorInfo anchorInfo = 36; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder(); - - /** - * int32 linkMicStats = 37; - * @return The linkMicStats. - */ - int getLinkMicStats(); - - /** - * string displayId = 38; - * @return The displayId. - */ - java.lang.String getDisplayId(); - /** - * string displayId = 38; - * @return The bytes for displayId. - */ - com.google.protobuf.ByteString - getDisplayIdBytes(); - - /** - * bool withCommercePermission = 39; - * @return The withCommercePermission. - */ - boolean getWithCommercePermission(); - - /** - * bool withFusionShopEntry = 40; - * @return The withFusionShopEntry. - */ - boolean getWithFusionShopEntry(); - - /** - * int64 totalRechargeDiamondCount = 41; - * @return The totalRechargeDiamondCount. - */ - long getTotalRechargeDiamondCount(); - - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return Whether the webcastAnchorLevel field is set. - */ - boolean hasWebcastAnchorLevel(); - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return The webcastAnchorLevel. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel(); - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder(); - - /** - * string verifiedContent = 43; - * @return The verifiedContent. - */ - java.lang.String getVerifiedContent(); - /** - * string verifiedContent = 43; - * @return The bytes for verifiedContent. - */ - com.google.protobuf.ByteString - getVerifiedContentBytes(); - - /** - * .User.AuthorStats authorStats = 44; - * @return Whether the authorStats field is set. - */ - boolean hasAuthorStats(); - /** - * .User.AuthorStats authorStats = 44; - * @return The authorStats. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats(); - /** - * .User.AuthorStats authorStats = 44; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder(); - - /** - * repeated .User topFansList = 45; - */ - java.util.List - getTopFansListList(); - /** - * repeated .User topFansList = 45; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index); - /** - * repeated .User topFansList = 45; - */ - int getTopFansListCount(); - /** - * repeated .User topFansList = 45; - */ - java.util.List - getTopFansListOrBuilderList(); - /** - * repeated .User topFansList = 45; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( - int index); - - /** - * string secUid = 46; - * @return The secUid. - */ - java.lang.String getSecUid(); - /** - * string secUid = 46; - * @return The bytes for secUid. - */ - com.google.protobuf.ByteString - getSecUidBytes(); - - /** - * int32 userRole = 47; - * @return The userRole. - */ - int getUserRole(); - - /** - * .User.XiguaParams xiguaInfo = 48; - * @return Whether the xiguaInfo field is set. - */ - boolean hasXiguaInfo(); - /** - * .User.XiguaParams xiguaInfo = 48; - * @return The xiguaInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo(); - /** - * .User.XiguaParams xiguaInfo = 48; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder(); - - /** - * .User.ActivityInfo activityReward = 49; - * @return Whether the activityReward field is set. - */ - boolean hasActivityReward(); - /** - * .User.ActivityInfo activityReward = 49; - * @return The activityReward. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward(); - /** - * .User.ActivityInfo activityReward = 49; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder(); - - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return Whether the nobleInfo field is set. - */ - boolean hasNobleInfo(); - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return The nobleInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo(); - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder(); - - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return Whether the brotherhoodInfo field is set. - */ - boolean hasBrotherhoodInfo(); - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return The brotherhoodInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo(); - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder(); - - /** - * .Image personalCard = 52; - * @return Whether the personalCard field is set. - */ - boolean hasPersonalCard(); - /** - * .Image personalCard = 52; - * @return The personalCard. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard(); - /** - * .Image personalCard = 52; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder(); - - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return Whether the authenticationInfo field is set. - */ - boolean hasAuthenticationInfo(); - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return The authenticationInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo(); - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder(); - - /** - * int32 authorizationInfo = 54; - * @return The authorizationInfo. - */ - int getAuthorizationInfo(); - - /** - * int32 adversaryAuthorizationInfo = 55; - * @return The adversaryAuthorizationInfo. - */ - int getAdversaryAuthorizationInfo(); - - /** - * .User.PoiInfo poiInfo = 56; - * @return Whether the poiInfo field is set. - */ - boolean hasPoiInfo(); - /** - * .User.PoiInfo poiInfo = 56; - * @return The poiInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo(); - /** - * .User.PoiInfo poiInfo = 56; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder(); - - /** - * .Image mediaBadgeImageListList = 57; - * @return Whether the mediaBadgeImageListList field is set. - */ - boolean hasMediaBadgeImageListList(); - /** - * .Image mediaBadgeImageListList = 57; - * @return The mediaBadgeImageListList. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList(); - /** - * .Image mediaBadgeImageListList = 57; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder(); - - /** - * int32 adversaryUserStatus = 58; - * @return The adversaryUserStatus. - */ - int getAdversaryUserStatus(); - - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return Whether the userVipInfo field is set. - */ - boolean hasUserVipInfo(); - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return The userVipInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo(); - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder(); - - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return A list containing the commerceWebcastConfigIdsList. - */ - java.util.List getCommerceWebcastConfigIdsListList(); - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return The count of commerceWebcastConfigIdsList. - */ - int getCommerceWebcastConfigIdsListCount(); - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param index The index of the element to return. - * @return The commerceWebcastConfigIdsList at the given index. - */ - long getCommerceWebcastConfigIdsList(int index); - - /** - * .Image badgeImageListV2List = 61; - * @return Whether the badgeImageListV2List field is set. - */ - boolean hasBadgeImageListV2List(); - /** - * .Image badgeImageListV2List = 61; - * @return The badgeImageListV2List. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List(); - /** - * .Image badgeImageListV2List = 61; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder(); - - /** - *
-     * IndustryCertification  industryCertification = 62;
-     * 
- * - * string locationCity = 63; - * @return The locationCity. - */ - java.lang.String getLocationCity(); - /** - *
-     * IndustryCertification  industryCertification = 62;
-     * 
- * - * string locationCity = 63; - * @return The bytes for locationCity. - */ - com.google.protobuf.ByteString - getLocationCityBytes(); - - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return Whether the fansGroupInfo field is set. - */ - boolean hasFansGroupInfo(); - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return The fansGroupInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo(); - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder(); - - /** - * string remarkName = 65; - * @return The remarkName. - */ - java.lang.String getRemarkName(); - /** - * string remarkName = 65; - * @return The bytes for remarkName. - */ - com.google.protobuf.ByteString - getRemarkNameBytes(); - - /** - * int32 mysteryMan = 66; - * @return The mysteryMan. - */ - int getMysteryMan(); - - /** - * string webRid = 67; - * @return The webRid. - */ - java.lang.String getWebRid(); - /** - * string webRid = 67; - * @return The bytes for webRid. - */ - com.google.protobuf.ByteString - getWebRidBytes(); - - /** - * string desensitizedNickname = 68; - * @return The desensitizedNickname. - */ - java.lang.String getDesensitizedNickname(); - /** - * string desensitizedNickname = 68; - * @return The bytes for desensitizedNickname. - */ - com.google.protobuf.ByteString - getDesensitizedNicknameBytes(); - - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return Whether the jAccreditInfo field is set. - */ - boolean hasJAccreditInfo(); - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return The jAccreditInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo(); - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder(); - - /** - * .User.Subscribe subscribe = 70; - * @return Whether the subscribe field is set. - */ - boolean hasSubscribe(); - /** - * .User.Subscribe subscribe = 70; - * @return The subscribe. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe(); - /** - * .User.Subscribe subscribe = 70; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder(); - - /** - * bool isAnonymous = 71; - * @return The isAnonymous. - */ - boolean getIsAnonymous(); - - /** - * int32 consumeDiamondLevel = 72; - * @return The consumeDiamondLevel. - */ - int getConsumeDiamondLevel(); - - /** - * string webcastUid = 73; - * @return The webcastUid. - */ - java.lang.String getWebcastUid(); - /** - * string webcastUid = 73; - * @return The bytes for webcastUid. - */ - com.google.protobuf.ByteString - getWebcastUidBytes(); - - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return Whether the profileStyleParams field is set. - */ - boolean hasProfileStyleParams(); - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return The profileStyleParams. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams(); - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder(); - - /** - * .User.UserDressInfo userDressInfo = 75; - * @return Whether the userDressInfo field is set. - */ - boolean hasUserDressInfo(); - /** - * .User.UserDressInfo userDressInfo = 75; - * @return The userDressInfo. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo(); - /** - * .User.UserDressInfo userDressInfo = 75; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder(); - - /** - * bool allowBeLocated = 1001; - * @return The allowBeLocated. - */ - boolean getAllowBeLocated(); - - /** - * bool allowFindByContacts = 1002; - * @return The allowFindByContacts. - */ - boolean getAllowFindByContacts(); - - /** - * bool allowOthersDownloadVideo = 1003; - * @return The allowOthersDownloadVideo. - */ - boolean getAllowOthersDownloadVideo(); - - /** - * bool allowOthersDownloadWhenSharingVideo = 1004; - * @return The allowOthersDownloadWhenSharingVideo. - */ - boolean getAllowOthersDownloadWhenSharingVideo(); - - /** - * bool allowShareShowProfile = 1005; - * @return The allowShareShowProfile. - */ - boolean getAllowShareShowProfile(); - - /** - * bool allowShowInGossip = 1006; - * @return The allowShowInGossip. - */ - boolean getAllowShowInGossip(); - - /** - * bool allowShowMyAction = 1007; - * @return The allowShowMyAction. - */ - boolean getAllowShowMyAction(); - - /** - * bool allowStrangeComment = 1008; - * @return The allowStrangeComment. - */ - boolean getAllowStrangeComment(); - - /** - * bool allowUnfollowerComment = 1009; - * @return The allowUnfollowerComment. - */ - boolean getAllowUnfollowerComment(); - - /** - * bool allowUseLinkmic = 1010; - * @return The allowUseLinkmic. - */ - boolean getAllowUseLinkmic(); - - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return Whether the anchorLevel field is set. - */ - boolean hasAnchorLevel(); - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return The anchorLevel. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel(); - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder(); - - /** - * .Image avatarJpg = 1012; - * @return Whether the avatarJpg field is set. - */ - boolean hasAvatarJpg(); - /** - * .Image avatarJpg = 1012; - * @return The avatarJpg. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg(); - /** - * .Image avatarJpg = 1012; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder(); - - /** - * string bgImgUrl = 1013; - * @return The bgImgUrl. - */ - java.lang.String getBgImgUrl(); - /** - * string bgImgUrl = 1013; - * @return The bytes for bgImgUrl. - */ - com.google.protobuf.ByteString - getBgImgUrlBytes(); - - /** - * string birthdayDescription = 1014; - * @return The birthdayDescription. - */ - java.lang.String getBirthdayDescription(); - /** - * string birthdayDescription = 1014; - * @return The bytes for birthdayDescription. - */ - com.google.protobuf.ByteString - getBirthdayDescriptionBytes(); - - /** - * bool birthdayValid = 1015; - * @return The birthdayValid. - */ - boolean getBirthdayValid(); - - /** - * int32 blockStatus = 1016; - * @return The blockStatus. - */ - int getBlockStatus(); - - /** - * int32 commentRestrict = 1017; - * @return The commentRestrict. - */ - int getCommentRestrict(); - - /** - * string constellation = 1018; - * @return The constellation. - */ - java.lang.String getConstellation(); - /** - * string constellation = 1018; - * @return The bytes for constellation. - */ - com.google.protobuf.ByteString - getConstellationBytes(); - - /** - * int32 disableIchat = 1019; - * @return The disableIchat. - */ - int getDisableIchat(); - - /** - * int64 enableIchatImg = 1020; - * @return The enableIchatImg. - */ - long getEnableIchatImg(); - - /** - * int32 exp = 1021; - * @return The exp. - */ - int getExp(); - - /** - * int64 fanTicketCount = 1022; - * @return The fanTicketCount. - */ - long getFanTicketCount(); - - /** - * bool foldStrangerChat = 1023; - * @return The foldStrangerChat. - */ - boolean getFoldStrangerChat(); - - /** - * int64 followStatus = 1024; - * @return The followStatus. - */ - long getFollowStatus(); - - /** - * bool hotsoonVerified = 1025; - * @return The hotsoonVerified. - */ - boolean getHotsoonVerified(); - - /** - * string hotsoonVerifiedReason = 1026; - * @return The hotsoonVerifiedReason. - */ - java.lang.String getHotsoonVerifiedReason(); - /** - * string hotsoonVerifiedReason = 1026; - * @return The bytes for hotsoonVerifiedReason. - */ - com.google.protobuf.ByteString - getHotsoonVerifiedReasonBytes(); - - /** - * int32 ichatRestrictType = 1027; - * @return The ichatRestrictType. - */ - int getIchatRestrictType(); - - /** - * string idStr = 1028; - * @return The idStr. - */ - java.lang.String getIdStr(); - /** - * string idStr = 1028; - * @return The bytes for idStr. - */ - com.google.protobuf.ByteString - getIdStrBytes(); - - /** - * bool isFollower = 1029; - * @return The isFollower. - */ - boolean getIsFollower(); - - /** - * bool isFollowing = 1030; - * @return The isFollowing. - */ - boolean getIsFollowing(); - - /** - * bool needProfileGuide = 1031; - * @return The needProfileGuide. - */ - boolean getNeedProfileGuide(); - - /** - * int64 payScores = 1032; - * @return The payScores. - */ - long getPayScores(); - - /** - * bool pushCommentStatus = 1033; - * @return The pushCommentStatus. - */ - boolean getPushCommentStatus(); - - /** - * bool pushDigg = 1034; - * @return The pushDigg. - */ - boolean getPushDigg(); - - /** - * bool pushFollow = 1035; - * @return The pushFollow. - */ - boolean getPushFollow(); - - /** - * bool pushFriendAction = 1036; - * @return The pushFriendAction. - */ - boolean getPushFriendAction(); - - /** - * bool pushIchat = 1037; - * @return The pushIchat. - */ - boolean getPushIchat(); - - /** - * bool pushStatus = 1038; - * @return The pushStatus. - */ - boolean getPushStatus(); - - /** - * bool pushVideoPost = 1039; - * @return The pushVideoPost. - */ - boolean getPushVideoPost(); - - /** - * bool pushVideoRecommend = 1040; - * @return The pushVideoRecommend. - */ - boolean getPushVideoRecommend(); - - /** - * .User.UserStats stats = 1041; - * @return Whether the stats field is set. - */ - boolean hasStats(); - /** - * .User.UserStats stats = 1041; - * @return The stats. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats(); - /** - * .User.UserStats stats = 1041; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder(); - - /** - * bool verifiedMobile = 1042; - * @return The verifiedMobile. - */ - boolean getVerifiedMobile(); - - /** - * string verifiedReason = 1043; - * @return The verifiedReason. - */ - java.lang.String getVerifiedReason(); - /** - * string verifiedReason = 1043; - * @return The bytes for verifiedReason. - */ - com.google.protobuf.ByteString - getVerifiedReasonBytes(); - - /** - * bool withCarManagementPermission = 1044; - * @return The withCarManagementPermission. - */ - boolean getWithCarManagementPermission(); - - /** - * int32 ageRange = 1045; - * @return The ageRange. - */ - int getAgeRange(); - - /** - * int64 watchDurationMonth = 1046; - * @return The watchDurationMonth. - */ - long getWatchDurationMonth(); - } - /** - * Protobuf type {@code User} - */ - public static final class User extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User) - UserOrBuilder { - private static final long serialVersionUID = 0L; - // Use User.newBuilder() to construct. - private User(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private User() { - nickname_ = ""; - signature_ = ""; - telephone_ = ""; - city_ = ""; - shareQrcodeUri_ = ""; - specialId_ = ""; - realTimeIconsList_ = java.util.Collections.emptyList(); - newRealTimeIconsList_ = java.util.Collections.emptyList(); - displayId_ = ""; - verifiedContent_ = ""; - topFansList_ = java.util.Collections.emptyList(); - secUid_ = ""; - commerceWebcastConfigIdsList_ = emptyLongList(); - locationCity_ = ""; - remarkName_ = ""; - webRid_ = ""; - desensitizedNickname_ = ""; - webcastUid_ = ""; - bgImgUrl_ = ""; - birthdayDescription_ = ""; - constellation_ = ""; - hotsoonVerifiedReason_ = ""; - idStr_ = ""; - verifiedReason_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new User(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder.class); - } - - public interface ActivityInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.ActivityInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.ActivityInfo} - */ - public static final class ActivityInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.ActivityInfo) - ActivityInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use ActivityInfo.newBuilder() to construct. - private ActivityInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ActivityInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ActivityInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.ActivityInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.ActivityInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.ActivityInfo) - } - - // @@protoc_insertion_point(class_scope:User.ActivityInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ActivityInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface AnchorInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.AnchorInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.AnchorInfo} - */ - public static final class AnchorInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.AnchorInfo) - AnchorInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use AnchorInfo.newBuilder() to construct. - private AnchorInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AnchorInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AnchorInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.AnchorInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.AnchorInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.AnchorInfo) - } - - // @@protoc_insertion_point(class_scope:User.AnchorInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AnchorInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface AnchorLevelOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.AnchorLevel) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.AnchorLevel} - */ - public static final class AnchorLevel extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.AnchorLevel) - AnchorLevelOrBuilder { - private static final long serialVersionUID = 0L; - // Use AnchorLevel.newBuilder() to construct. - private AnchorLevel(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AnchorLevel() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AnchorLevel(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.AnchorLevel} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.AnchorLevel) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.AnchorLevel) - } - - // @@protoc_insertion_point(class_scope:User.AnchorLevel) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AnchorLevel parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface AuthenticationInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.AuthenticationInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.AuthenticationInfo} - */ - public static final class AuthenticationInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.AuthenticationInfo) - AuthenticationInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use AuthenticationInfo.newBuilder() to construct. - private AuthenticationInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AuthenticationInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AuthenticationInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.AuthenticationInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.AuthenticationInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.AuthenticationInfo) - } - - // @@protoc_insertion_point(class_scope:User.AuthenticationInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AuthenticationInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface AuthorStatsOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.AuthorStats) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.AuthorStats} - */ - public static final class AuthorStats extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.AuthorStats) - AuthorStatsOrBuilder { - private static final long serialVersionUID = 0L; - // Use AuthorStats.newBuilder() to construct. - private AuthorStats(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AuthorStats() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AuthorStats(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.AuthorStats} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.AuthorStats) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.AuthorStats) - } - - // @@protoc_insertion_point(class_scope:User.AuthorStats) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AuthorStats parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface BorderOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.Border) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.Border} - */ - public static final class Border extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.Border) - BorderOrBuilder { - private static final long serialVersionUID = 0L; - // Use Border.newBuilder() to construct. - private Border(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Border() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Border(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.Border} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.Border) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.Border) - } - - // @@protoc_insertion_point(class_scope:User.Border) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Border parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface BrotherhoodInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.BrotherhoodInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.BrotherhoodInfo} - */ - public static final class BrotherhoodInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.BrotherhoodInfo) - BrotherhoodInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use BrotherhoodInfo.newBuilder() to construct. - private BrotherhoodInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private BrotherhoodInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new BrotherhoodInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.BrotherhoodInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.BrotherhoodInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.BrotherhoodInfo) - } - - // @@protoc_insertion_point(class_scope:User.BrotherhoodInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public BrotherhoodInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface FansClubOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.FansClub) - com.google.protobuf.MessageOrBuilder { - - /** - * .User.FansClub.FansClubData data = 1; - * @return Whether the data field is set. - */ - boolean hasData(); - /** - * .User.FansClub.FansClubData data = 1; - * @return The data. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData(); - /** - * .User.FansClub.FansClubData data = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder(); - - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - int getPreferDataCount(); - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - boolean containsPreferData( - int key); - /** - * Use {@link #getPreferDataMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getPreferData(); - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - java.util.Map - getPreferDataMap(); - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue); - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( - int key); - } - /** - * Protobuf type {@code User.FansClub} - */ - public static final class FansClub extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.FansClub) - FansClubOrBuilder { - private static final long serialVersionUID = 0L; - // Use FansClub.newBuilder() to construct. - private FansClub(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private FansClub() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new FansClub(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 2: - return internalGetPreferData(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder.class); - } - - public interface FansClubDataOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.FansClub.FansClubData) - com.google.protobuf.MessageOrBuilder { - - /** - * string clubName = 1; - * @return The clubName. - */ - java.lang.String getClubName(); - /** - * string clubName = 1; - * @return The bytes for clubName. - */ - com.google.protobuf.ByteString - getClubNameBytes(); - - /** - * int32 level = 2; - * @return The level. - */ - int getLevel(); - - /** - * int32 userFansClubStatus = 3; - * @return The userFansClubStatus. - */ - int getUserFansClubStatus(); - - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return Whether the badge field is set. - */ - boolean hasBadge(); - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return The badge. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge(); - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder(); - - /** - * repeated int64 availableGiftIds = 5; - * @return A list containing the availableGiftIds. - */ - java.util.List getAvailableGiftIdsList(); - /** - * repeated int64 availableGiftIds = 5; - * @return The count of availableGiftIds. - */ - int getAvailableGiftIdsCount(); - /** - * repeated int64 availableGiftIds = 5; - * @param index The index of the element to return. - * @return The availableGiftIds at the given index. - */ - long getAvailableGiftIds(int index); - - /** - * int64 anchorId = 6; - * @return The anchorId. - */ - long getAnchorId(); - } - /** - * Protobuf type {@code User.FansClub.FansClubData} - */ - public static final class FansClubData extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.FansClub.FansClubData) - FansClubDataOrBuilder { - private static final long serialVersionUID = 0L; - // Use FansClubData.newBuilder() to construct. - private FansClubData(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private FansClubData() { - clubName_ = ""; - availableGiftIds_ = emptyLongList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new FansClubData(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder.class); - } - - public interface UserBadgeOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.FansClub.FansClubData.UserBadge) - com.google.protobuf.MessageOrBuilder { - - /** - * map<int32, .Image> icons = 1; - */ - int getIconsCount(); - /** - * map<int32, .Image> icons = 1; - */ - boolean containsIcons( - int key); - /** - * Use {@link #getIconsMap()} instead. - */ - @java.lang.Deprecated - java.util.Map - getIcons(); - /** - * map<int32, .Image> icons = 1; - */ - java.util.Map - getIconsMap(); - /** - * map<int32, .Image> icons = 1; - */ - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue); - /** - * map<int32, .Image> icons = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( - int key); - - /** - * string title = 2; - * @return The title. - */ - java.lang.String getTitle(); - /** - * string title = 2; - * @return The bytes for title. - */ - com.google.protobuf.ByteString - getTitleBytes(); - } - /** - * Protobuf type {@code User.FansClub.FansClubData.UserBadge} - */ - public static final class UserBadge extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.FansClub.FansClubData.UserBadge) - UserBadgeOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserBadge.newBuilder() to construct. - private UserBadge(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserBadge() { - title_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserBadge(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - @java.lang.Override - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 1: - return internalGetIcons(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder.class); - } - - public static final int ICONS_FIELD_NUMBER = 1; - private static final class IconsDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.INT32, - 0, - com.google.protobuf.WireFormat.FieldType.MESSAGE, - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> icons_; - private com.google.protobuf.MapField - internalGetIcons() { - if (icons_ == null) { - return com.google.protobuf.MapField.emptyMapField( - IconsDefaultEntryHolder.defaultEntry); - } - return icons_; - } - public int getIconsCount() { - return internalGetIcons().getMap().size(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public boolean containsIcons( - int key) { - - return internalGetIcons().getMap().containsKey(key); - } - /** - * Use {@link #getIconsMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getIcons() { - return getIconsMap(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public java.util.Map getIconsMap() { - return internalGetIcons().getMap(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue) { - - java.util.Map map = - internalGetIcons().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( - int key) { - - java.util.Map map = - internalGetIcons().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - public static final int TITLE_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object title_ = ""; - /** - * string title = 2; - * @return The title. - */ - @java.lang.Override - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } - } - /** - * string title = 2; - * @return The bytes for title. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - com.google.protobuf.GeneratedMessageV3 - .serializeIntegerMapTo( - output, - internalGetIcons(), - IconsDefaultEntryHolder.defaultEntry, - 1); - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (java.util.Map.Entry entry - : internalGetIcons().getMap().entrySet()) { - com.google.protobuf.MapEntry - icons__ = IconsDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, icons__); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge) obj; - - if (!internalGetIcons().equals( - other.internalGetIcons())) return false; - if (!getTitle() - .equals(other.getTitle())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (!internalGetIcons().getMap().isEmpty()) { - hash = (37 * hash) + ICONS_FIELD_NUMBER; - hash = (53 * hash) + internalGetIcons().hashCode(); - } - hash = (37 * hash) + TITLE_FIELD_NUMBER; - hash = (53 * hash) + getTitle().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.FansClub.FansClubData.UserBadge} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.FansClub.FansClubData.UserBadge) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 1: - return internalGetIcons(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 1: - return internalGetMutableIcons(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - internalGetMutableIcons().clear(); - title_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.icons_ = internalGetIcons(); - result.icons_.makeImmutable(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.title_ = title_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance()) return this; - internalGetMutableIcons().mergeFrom( - other.internalGetIcons()); - bitField0_ |= 0x00000001; - if (!other.getTitle().isEmpty()) { - title_ = other.title_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - com.google.protobuf.MapEntry - icons__ = input.readMessage( - IconsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutableIcons().getMutableMap().put( - icons__.getKey(), icons__.getValue()); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - title_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private com.google.protobuf.MapField< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> icons_; - private com.google.protobuf.MapField - internalGetIcons() { - if (icons_ == null) { - return com.google.protobuf.MapField.emptyMapField( - IconsDefaultEntryHolder.defaultEntry); - } - return icons_; - } - private com.google.protobuf.MapField - internalGetMutableIcons() { - if (icons_ == null) { - icons_ = com.google.protobuf.MapField.newMapField( - IconsDefaultEntryHolder.defaultEntry); - } - if (!icons_.isMutable()) { - icons_ = icons_.copy(); - } - bitField0_ |= 0x00000001; - onChanged(); - return icons_; - } - public int getIconsCount() { - return internalGetIcons().getMap().size(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public boolean containsIcons( - int key) { - - return internalGetIcons().getMap().containsKey(key); - } - /** - * Use {@link #getIconsMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getIcons() { - return getIconsMap(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public java.util.Map getIconsMap() { - return internalGetIcons().getMap(); - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue) { - - java.util.Map map = - internalGetIcons().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<int32, .Image> icons = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( - int key) { - - java.util.Map map = - internalGetIcons().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearIcons() { - bitField0_ = (bitField0_ & ~0x00000001); - internalGetMutableIcons().getMutableMap() - .clear(); - return this; - } - /** - * map<int32, .Image> icons = 1; - */ - public Builder removeIcons( - int key) { - - internalGetMutableIcons().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutableIcons() { - bitField0_ |= 0x00000001; - return internalGetMutableIcons().getMutableMap(); - } - /** - * map<int32, .Image> icons = 1; - */ - public Builder putIcons( - int key, - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - - if (value == null) { throw new NullPointerException("map value"); } - internalGetMutableIcons().getMutableMap() - .put(key, value); - bitField0_ |= 0x00000001; - return this; - } - /** - * map<int32, .Image> icons = 1; - */ - public Builder putAllIcons( - java.util.Map values) { - internalGetMutableIcons().getMutableMap() - .putAll(values); - bitField0_ |= 0x00000001; - return this; - } - - private java.lang.Object title_ = ""; - /** - * string title = 2; - * @return The title. - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string title = 2; - * @return The bytes for title. - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string title = 2; - * @param value The title to set. - * @return This builder for chaining. - */ - public Builder setTitle( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - title_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string title = 2; - * @return This builder for chaining. - */ - public Builder clearTitle() { - title_ = getDefaultInstance().getTitle(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string title = 2; - * @param value The bytes for title to set. - * @return This builder for chaining. - */ - public Builder setTitleBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - title_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.FansClub.FansClubData.UserBadge) - } - - // @@protoc_insertion_point(class_scope:User.FansClub.FansClubData.UserBadge) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserBadge parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int CLUBNAME_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object clubName_ = ""; - /** - * string clubName = 1; - * @return The clubName. - */ - @java.lang.Override - public java.lang.String getClubName() { - java.lang.Object ref = clubName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - clubName_ = s; - return s; - } - } - /** - * string clubName = 1; - * @return The bytes for clubName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getClubNameBytes() { - java.lang.Object ref = clubName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - clubName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LEVEL_FIELD_NUMBER = 2; - private int level_ = 0; - /** - * int32 level = 2; - * @return The level. - */ - @java.lang.Override - public int getLevel() { - return level_; - } - - public static final int USERFANSCLUBSTATUS_FIELD_NUMBER = 3; - private int userFansClubStatus_ = 0; - /** - * int32 userFansClubStatus = 3; - * @return The userFansClubStatus. - */ - @java.lang.Override - public int getUserFansClubStatus() { - return userFansClubStatus_; - } - - public static final int BADGE_FIELD_NUMBER = 4; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge badge_; - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return Whether the badge field is set. - */ - @java.lang.Override - public boolean hasBadge() { - return badge_ != null; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return The badge. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge() { - return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder() { - return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; - } - - public static final int AVAILABLEGIFTIDS_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList availableGiftIds_; - /** - * repeated int64 availableGiftIds = 5; - * @return A list containing the availableGiftIds. - */ - @java.lang.Override - public java.util.List - getAvailableGiftIdsList() { - return availableGiftIds_; - } - /** - * repeated int64 availableGiftIds = 5; - * @return The count of availableGiftIds. - */ - public int getAvailableGiftIdsCount() { - return availableGiftIds_.size(); - } - /** - * repeated int64 availableGiftIds = 5; - * @param index The index of the element to return. - * @return The availableGiftIds at the given index. - */ - public long getAvailableGiftIds(int index) { - return availableGiftIds_.getLong(index); - } - private int availableGiftIdsMemoizedSerializedSize = -1; - - public static final int ANCHORID_FIELD_NUMBER = 6; - private long anchorId_ = 0L; - /** - * int64 anchorId = 6; - * @return The anchorId. - */ - @java.lang.Override - public long getAnchorId() { - return anchorId_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clubName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clubName_); - } - if (level_ != 0) { - output.writeInt32(2, level_); - } - if (userFansClubStatus_ != 0) { - output.writeInt32(3, userFansClubStatus_); - } - if (badge_ != null) { - output.writeMessage(4, getBadge()); - } - if (getAvailableGiftIdsList().size() > 0) { - output.writeUInt32NoTag(42); - output.writeUInt32NoTag(availableGiftIdsMemoizedSerializedSize); - } - for (int i = 0; i < availableGiftIds_.size(); i++) { - output.writeInt64NoTag(availableGiftIds_.getLong(i)); - } - if (anchorId_ != 0L) { - output.writeInt64(6, anchorId_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clubName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clubName_); - } - if (level_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, level_); - } - if (userFansClubStatus_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, userFansClubStatus_); - } - if (badge_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getBadge()); - } - { - int dataSize = 0; - for (int i = 0; i < availableGiftIds_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeInt64SizeNoTag(availableGiftIds_.getLong(i)); - } - size += dataSize; - if (!getAvailableGiftIdsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - availableGiftIdsMemoizedSerializedSize = dataSize; - } - if (anchorId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(6, anchorId_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData) obj; - - if (!getClubName() - .equals(other.getClubName())) return false; - if (getLevel() - != other.getLevel()) return false; - if (getUserFansClubStatus() - != other.getUserFansClubStatus()) return false; - if (hasBadge() != other.hasBadge()) return false; - if (hasBadge()) { - if (!getBadge() - .equals(other.getBadge())) return false; - } - if (!getAvailableGiftIdsList() - .equals(other.getAvailableGiftIdsList())) return false; - if (getAnchorId() - != other.getAnchorId()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CLUBNAME_FIELD_NUMBER; - hash = (53 * hash) + getClubName().hashCode(); - hash = (37 * hash) + LEVEL_FIELD_NUMBER; - hash = (53 * hash) + getLevel(); - hash = (37 * hash) + USERFANSCLUBSTATUS_FIELD_NUMBER; - hash = (53 * hash) + getUserFansClubStatus(); - if (hasBadge()) { - hash = (37 * hash) + BADGE_FIELD_NUMBER; - hash = (53 * hash) + getBadge().hashCode(); - } - if (getAvailableGiftIdsCount() > 0) { - hash = (37 * hash) + AVAILABLEGIFTIDS_FIELD_NUMBER; - hash = (53 * hash) + getAvailableGiftIdsList().hashCode(); - } - hash = (37 * hash) + ANCHORID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getAnchorId()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.FansClub.FansClubData} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.FansClub.FansClubData) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - clubName_ = ""; - level_ = 0; - userFansClubStatus_ = 0; - badge_ = null; - if (badgeBuilder_ != null) { - badgeBuilder_.dispose(); - badgeBuilder_ = null; - } - availableGiftIds_ = emptyLongList(); - anchorId_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result) { - if (((bitField0_ & 0x00000010) != 0)) { - availableGiftIds_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.availableGiftIds_ = availableGiftIds_; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.clubName_ = clubName_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.level_ = level_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.userFansClubStatus_ = userFansClubStatus_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.badge_ = badgeBuilder_ == null - ? badge_ - : badgeBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.anchorId_ = anchorId_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()) return this; - if (!other.getClubName().isEmpty()) { - clubName_ = other.clubName_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getLevel() != 0) { - setLevel(other.getLevel()); - } - if (other.getUserFansClubStatus() != 0) { - setUserFansClubStatus(other.getUserFansClubStatus()); - } - if (other.hasBadge()) { - mergeBadge(other.getBadge()); - } - if (!other.availableGiftIds_.isEmpty()) { - if (availableGiftIds_.isEmpty()) { - availableGiftIds_ = other.availableGiftIds_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureAvailableGiftIdsIsMutable(); - availableGiftIds_.addAll(other.availableGiftIds_); - } - onChanged(); - } - if (other.getAnchorId() != 0L) { - setAnchorId(other.getAnchorId()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - clubName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - level_ = input.readInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - userFansClubStatus_ = input.readInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - input.readMessage( - getBadgeFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 40: { - long v = input.readInt64(); - ensureAvailableGiftIdsIsMutable(); - availableGiftIds_.addLong(v); - break; - } // case 40 - case 42: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureAvailableGiftIdsIsMutable(); - while (input.getBytesUntilLimit() > 0) { - availableGiftIds_.addLong(input.readInt64()); - } - input.popLimit(limit); - break; - } // case 42 - case 48: { - anchorId_ = input.readInt64(); - bitField0_ |= 0x00000020; - break; - } // case 48 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object clubName_ = ""; - /** - * string clubName = 1; - * @return The clubName. - */ - public java.lang.String getClubName() { - java.lang.Object ref = clubName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - clubName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string clubName = 1; - * @return The bytes for clubName. - */ - public com.google.protobuf.ByteString - getClubNameBytes() { - java.lang.Object ref = clubName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - clubName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string clubName = 1; - * @param value The clubName to set. - * @return This builder for chaining. - */ - public Builder setClubName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - clubName_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string clubName = 1; - * @return This builder for chaining. - */ - public Builder clearClubName() { - clubName_ = getDefaultInstance().getClubName(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string clubName = 1; - * @param value The bytes for clubName to set. - * @return This builder for chaining. - */ - public Builder setClubNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - clubName_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private int level_ ; - /** - * int32 level = 2; - * @return The level. - */ - @java.lang.Override - public int getLevel() { - return level_; - } - /** - * int32 level = 2; - * @param value The level to set. - * @return This builder for chaining. - */ - public Builder setLevel(int value) { - - level_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int32 level = 2; - * @return This builder for chaining. - */ - public Builder clearLevel() { - bitField0_ = (bitField0_ & ~0x00000002); - level_ = 0; - onChanged(); - return this; - } - - private int userFansClubStatus_ ; - /** - * int32 userFansClubStatus = 3; - * @return The userFansClubStatus. - */ - @java.lang.Override - public int getUserFansClubStatus() { - return userFansClubStatus_; - } - /** - * int32 userFansClubStatus = 3; - * @param value The userFansClubStatus to set. - * @return This builder for chaining. - */ - public Builder setUserFansClubStatus(int value) { - - userFansClubStatus_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int32 userFansClubStatus = 3; - * @return This builder for chaining. - */ - public Builder clearUserFansClubStatus() { - bitField0_ = (bitField0_ & ~0x00000004); - userFansClubStatus_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge badge_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder> badgeBuilder_; - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return Whether the badge field is set. - */ - public boolean hasBadge() { - return ((bitField0_ & 0x00000008) != 0); - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - * @return The badge. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge() { - if (badgeBuilder_ == null) { - return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; - } else { - return badgeBuilder_.getMessage(); - } - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public Builder setBadge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge value) { - if (badgeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - badge_ = value; - } else { - badgeBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public Builder setBadge( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder builderForValue) { - if (badgeBuilder_ == null) { - badge_ = builderForValue.build(); - } else { - badgeBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public Builder mergeBadge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge value) { - if (badgeBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && - badge_ != null && - badge_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance()) { - getBadgeBuilder().mergeFrom(value); - } else { - badge_ = value; - } - } else { - badgeBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public Builder clearBadge() { - bitField0_ = (bitField0_ & ~0x00000008); - badge_ = null; - if (badgeBuilder_ != null) { - badgeBuilder_.dispose(); - badgeBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder getBadgeBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getBadgeFieldBuilder().getBuilder(); - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder() { - if (badgeBuilder_ != null) { - return badgeBuilder_.getMessageOrBuilder(); - } else { - return badge_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; - } - } - /** - * .User.FansClub.FansClubData.UserBadge badge = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder> - getBadgeFieldBuilder() { - if (badgeBuilder_ == null) { - badgeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder>( - getBadge(), - getParentForChildren(), - isClean()); - badge_ = null; - } - return badgeBuilder_; - } - - private com.google.protobuf.Internal.LongList availableGiftIds_ = emptyLongList(); - private void ensureAvailableGiftIdsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { - availableGiftIds_ = mutableCopy(availableGiftIds_); - bitField0_ |= 0x00000010; - } - } - /** - * repeated int64 availableGiftIds = 5; - * @return A list containing the availableGiftIds. - */ - public java.util.List - getAvailableGiftIdsList() { - return ((bitField0_ & 0x00000010) != 0) ? - java.util.Collections.unmodifiableList(availableGiftIds_) : availableGiftIds_; - } - /** - * repeated int64 availableGiftIds = 5; - * @return The count of availableGiftIds. - */ - public int getAvailableGiftIdsCount() { - return availableGiftIds_.size(); - } - /** - * repeated int64 availableGiftIds = 5; - * @param index The index of the element to return. - * @return The availableGiftIds at the given index. - */ - public long getAvailableGiftIds(int index) { - return availableGiftIds_.getLong(index); - } - /** - * repeated int64 availableGiftIds = 5; - * @param index The index to set the value at. - * @param value The availableGiftIds to set. - * @return This builder for chaining. - */ - public Builder setAvailableGiftIds( - int index, long value) { - - ensureAvailableGiftIdsIsMutable(); - availableGiftIds_.setLong(index, value); - onChanged(); - return this; - } - /** - * repeated int64 availableGiftIds = 5; - * @param value The availableGiftIds to add. - * @return This builder for chaining. - */ - public Builder addAvailableGiftIds(long value) { - - ensureAvailableGiftIdsIsMutable(); - availableGiftIds_.addLong(value); - onChanged(); - return this; - } - /** - * repeated int64 availableGiftIds = 5; - * @param values The availableGiftIds to add. - * @return This builder for chaining. - */ - public Builder addAllAvailableGiftIds( - java.lang.Iterable values) { - ensureAvailableGiftIdsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, availableGiftIds_); - onChanged(); - return this; - } - /** - * repeated int64 availableGiftIds = 5; - * @return This builder for chaining. - */ - public Builder clearAvailableGiftIds() { - availableGiftIds_ = emptyLongList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - - private long anchorId_ ; - /** - * int64 anchorId = 6; - * @return The anchorId. - */ - @java.lang.Override - public long getAnchorId() { - return anchorId_; - } - /** - * int64 anchorId = 6; - * @param value The anchorId to set. - * @return This builder for chaining. - */ - public Builder setAnchorId(long value) { - - anchorId_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * int64 anchorId = 6; - * @return This builder for chaining. - */ - public Builder clearAnchorId() { - bitField0_ = (bitField0_ & ~0x00000020); - anchorId_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.FansClub.FansClubData) - } - - // @@protoc_insertion_point(class_scope:User.FansClub.FansClubData) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public FansClubData parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int DATA_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData data_; - /** - * .User.FansClub.FansClubData data = 1; - * @return Whether the data field is set. - */ - @java.lang.Override - public boolean hasData() { - return data_ != null; - } - /** - * .User.FansClub.FansClubData data = 1; - * @return The data. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData() { - return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; - } - /** - * .User.FansClub.FansClubData data = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder() { - return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; - } - - public static final int PREFERDATA_FIELD_NUMBER = 2; - private static final class PreferDataDefaultEntryHolder { - static final com.google.protobuf.MapEntry< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> defaultEntry = - com.google.protobuf.MapEntry - .newDefaultInstance( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_PreferDataEntry_descriptor, - com.google.protobuf.WireFormat.FieldType.INT32, - 0, - com.google.protobuf.WireFormat.FieldType.MESSAGE, - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()); - } - @SuppressWarnings("serial") - private com.google.protobuf.MapField< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> preferData_; - private com.google.protobuf.MapField - internalGetPreferData() { - if (preferData_ == null) { - return com.google.protobuf.MapField.emptyMapField( - PreferDataDefaultEntryHolder.defaultEntry); - } - return preferData_; - } - public int getPreferDataCount() { - return internalGetPreferData().getMap().size(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public boolean containsPreferData( - int key) { - - return internalGetPreferData().getMap().containsKey(key); - } - /** - * Use {@link #getPreferDataMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getPreferData() { - return getPreferDataMap(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public java.util.Map getPreferDataMap() { - return internalGetPreferData().getMap(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue) { - - java.util.Map map = - internalGetPreferData().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( - int key) { - - java.util.Map map = - internalGetPreferData().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (data_ != null) { - output.writeMessage(1, getData()); - } - com.google.protobuf.GeneratedMessageV3 - .serializeIntegerMapTo( - output, - internalGetPreferData(), - PreferDataDefaultEntryHolder.defaultEntry, - 2); - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (data_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getData()); - } - for (java.util.Map.Entry entry - : internalGetPreferData().getMap().entrySet()) { - com.google.protobuf.MapEntry - preferData__ = PreferDataDefaultEntryHolder.defaultEntry.newBuilderForType() - .setKey(entry.getKey()) - .setValue(entry.getValue()) - .build(); - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, preferData__); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub) obj; - - if (hasData() != other.hasData()) return false; - if (hasData()) { - if (!getData() - .equals(other.getData())) return false; - } - if (!internalGetPreferData().equals( - other.internalGetPreferData())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasData()) { - hash = (37 * hash) + DATA_FIELD_NUMBER; - hash = (53 * hash) + getData().hashCode(); - } - if (!internalGetPreferData().getMap().isEmpty()) { - hash = (37 * hash) + PREFERDATA_FIELD_NUMBER; - hash = (53 * hash) + internalGetPreferData().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.FansClub} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.FansClub) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; - } - - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMapField( - int number) { - switch (number) { - case 2: - return internalGetPreferData(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @SuppressWarnings({"rawtypes"}) - protected com.google.protobuf.MapField internalGetMutableMapField( - int number) { - switch (number) { - case 2: - return internalGetMutablePreferData(); - default: - throw new RuntimeException( - "Invalid map field number: " + number); - } - } - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - data_ = null; - if (dataBuilder_ != null) { - dataBuilder_.dispose(); - dataBuilder_ = null; - } - internalGetMutablePreferData().clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.data_ = dataBuilder_ == null - ? data_ - : dataBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.preferData_ = internalGetPreferData(); - result.preferData_.makeImmutable(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance()) return this; - if (other.hasData()) { - mergeData(other.getData()); - } - internalGetMutablePreferData().mergeFrom( - other.internalGetPreferData()); - bitField0_ |= 0x00000002; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getDataFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - com.google.protobuf.MapEntry - preferData__ = input.readMessage( - PreferDataDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - internalGetMutablePreferData().getMutableMap().put( - preferData__.getKey(), preferData__.getValue()); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData data_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder> dataBuilder_; - /** - * .User.FansClub.FansClubData data = 1; - * @return Whether the data field is set. - */ - public boolean hasData() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .User.FansClub.FansClubData data = 1; - * @return The data. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData() { - if (dataBuilder_ == null) { - return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; - } else { - return dataBuilder_.getMessage(); - } - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public Builder setData(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { - if (dataBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - data_ = value; - } else { - dataBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public Builder setData( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder builderForValue) { - if (dataBuilder_ == null) { - data_ = builderForValue.build(); - } else { - dataBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public Builder mergeData(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { - if (dataBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - data_ != null && - data_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()) { - getDataBuilder().mergeFrom(value); - } else { - data_ = value; - } - } else { - dataBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public Builder clearData() { - bitField0_ = (bitField0_ & ~0x00000001); - data_ = null; - if (dataBuilder_ != null) { - dataBuilder_.dispose(); - dataBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder getDataBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getDataFieldBuilder().getBuilder(); - } - /** - * .User.FansClub.FansClubData data = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder() { - if (dataBuilder_ != null) { - return dataBuilder_.getMessageOrBuilder(); - } else { - return data_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; - } - } - /** - * .User.FansClub.FansClubData data = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder> - getDataFieldBuilder() { - if (dataBuilder_ == null) { - dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder>( - getData(), - getParentForChildren(), - isClean()); - data_ = null; - } - return dataBuilder_; - } - - private com.google.protobuf.MapField< - java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> preferData_; - private com.google.protobuf.MapField - internalGetPreferData() { - if (preferData_ == null) { - return com.google.protobuf.MapField.emptyMapField( - PreferDataDefaultEntryHolder.defaultEntry); - } - return preferData_; - } - private com.google.protobuf.MapField - internalGetMutablePreferData() { - if (preferData_ == null) { - preferData_ = com.google.protobuf.MapField.newMapField( - PreferDataDefaultEntryHolder.defaultEntry); - } - if (!preferData_.isMutable()) { - preferData_ = preferData_.copy(); - } - bitField0_ |= 0x00000002; - onChanged(); - return preferData_; - } - public int getPreferDataCount() { - return internalGetPreferData().getMap().size(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public boolean containsPreferData( - int key) { - - return internalGetPreferData().getMap().containsKey(key); - } - /** - * Use {@link #getPreferDataMap()} instead. - */ - @java.lang.Override - @java.lang.Deprecated - public java.util.Map getPreferData() { - return getPreferDataMap(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public java.util.Map getPreferDataMap() { - return internalGetPreferData().getMap(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( - int key, - /* nullable */ -tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue) { - - java.util.Map map = - internalGetPreferData().getMap(); - return map.containsKey(key) ? map.get(key) : defaultValue; - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( - int key) { - - java.util.Map map = - internalGetPreferData().getMap(); - if (!map.containsKey(key)) { - throw new java.lang.IllegalArgumentException(); - } - return map.get(key); - } - public Builder clearPreferData() { - bitField0_ = (bitField0_ & ~0x00000002); - internalGetMutablePreferData().getMutableMap() - .clear(); - return this; - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - public Builder removePreferData( - int key) { - - internalGetMutablePreferData().getMutableMap() - .remove(key); - return this; - } - /** - * Use alternate mutation accessors instead. - */ - @java.lang.Deprecated - public java.util.Map - getMutablePreferData() { - bitField0_ |= 0x00000002; - return internalGetMutablePreferData().getMutableMap(); - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - public Builder putPreferData( - int key, - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { - - if (value == null) { throw new NullPointerException("map value"); } - internalGetMutablePreferData().getMutableMap() - .put(key, value); - bitField0_ |= 0x00000002; - return this; - } - /** - * map<int32, .User.FansClub.FansClubData> preferData = 2; - */ - public Builder putAllPreferData( - java.util.Map values) { - internalGetMutablePreferData().getMutableMap() - .putAll(values); - bitField0_ |= 0x00000002; - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.FansClub) - } - - // @@protoc_insertion_point(class_scope:User.FansClub) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public FansClub parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface FansGroupInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.FansGroupInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.FansGroupInfo} - */ - public static final class FansGroupInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.FansGroupInfo) - FansGroupInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use FansGroupInfo.newBuilder() to construct. - private FansGroupInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private FansGroupInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new FansGroupInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.FansGroupInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.FansGroupInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.FansGroupInfo) - } - - // @@protoc_insertion_point(class_scope:User.FansGroupInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public FansGroupInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface FollowInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.FollowInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * int64 followingCount = 1; - * @return The followingCount. - */ - long getFollowingCount(); - - /** - * int64 followerCount = 2; - * @return The followerCount. - */ - long getFollowerCount(); - - /** - * int64 followStatus = 3; - * @return The followStatus. - */ - long getFollowStatus(); - - /** - * int64 pushStatus = 4; - * @return The pushStatus. - */ - long getPushStatus(); - - /** - * string remarkName = 5; - * @return The remarkName. - */ - java.lang.String getRemarkName(); - /** - * string remarkName = 5; - * @return The bytes for remarkName. - */ - com.google.protobuf.ByteString - getRemarkNameBytes(); - } - /** - * Protobuf type {@code User.FollowInfo} - */ - public static final class FollowInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.FollowInfo) - FollowInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use FollowInfo.newBuilder() to construct. - private FollowInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private FollowInfo() { - remarkName_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new FollowInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder.class); - } - - public static final int FOLLOWINGCOUNT_FIELD_NUMBER = 1; - private long followingCount_ = 0L; - /** - * int64 followingCount = 1; - * @return The followingCount. - */ - @java.lang.Override - public long getFollowingCount() { - return followingCount_; - } - - public static final int FOLLOWERCOUNT_FIELD_NUMBER = 2; - private long followerCount_ = 0L; - /** - * int64 followerCount = 2; - * @return The followerCount. - */ - @java.lang.Override - public long getFollowerCount() { - return followerCount_; - } - - public static final int FOLLOWSTATUS_FIELD_NUMBER = 3; - private long followStatus_ = 0L; - /** - * int64 followStatus = 3; - * @return The followStatus. - */ - @java.lang.Override - public long getFollowStatus() { - return followStatus_; - } - - public static final int PUSHSTATUS_FIELD_NUMBER = 4; - private long pushStatus_ = 0L; - /** - * int64 pushStatus = 4; - * @return The pushStatus. - */ - @java.lang.Override - public long getPushStatus() { - return pushStatus_; - } - - public static final int REMARKNAME_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object remarkName_ = ""; - /** - * string remarkName = 5; - * @return The remarkName. - */ - @java.lang.Override - public java.lang.String getRemarkName() { - java.lang.Object ref = remarkName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - remarkName_ = s; - return s; - } - } - /** - * string remarkName = 5; - * @return The bytes for remarkName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getRemarkNameBytes() { - java.lang.Object ref = remarkName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - remarkName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (followingCount_ != 0L) { - output.writeInt64(1, followingCount_); - } - if (followerCount_ != 0L) { - output.writeInt64(2, followerCount_); - } - if (followStatus_ != 0L) { - output.writeInt64(3, followStatus_); - } - if (pushStatus_ != 0L) { - output.writeInt64(4, pushStatus_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, remarkName_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (followingCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, followingCount_); - } - if (followerCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, followerCount_); - } - if (followStatus_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, followStatus_); - } - if (pushStatus_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(4, pushStatus_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, remarkName_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo) obj; - - if (getFollowingCount() - != other.getFollowingCount()) return false; - if (getFollowerCount() - != other.getFollowerCount()) return false; - if (getFollowStatus() - != other.getFollowStatus()) return false; - if (getPushStatus() - != other.getPushStatus()) return false; - if (!getRemarkName() - .equals(other.getRemarkName())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + FOLLOWINGCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFollowingCount()); - hash = (37 * hash) + FOLLOWERCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFollowerCount()); - hash = (37 * hash) + FOLLOWSTATUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFollowStatus()); - hash = (37 * hash) + PUSHSTATUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPushStatus()); - hash = (37 * hash) + REMARKNAME_FIELD_NUMBER; - hash = (53 * hash) + getRemarkName().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.FollowInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.FollowInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - followingCount_ = 0L; - followerCount_ = 0L; - followStatus_ = 0L; - pushStatus_ = 0L; - remarkName_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.followingCount_ = followingCount_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.followerCount_ = followerCount_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.followStatus_ = followStatus_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.pushStatus_ = pushStatus_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.remarkName_ = remarkName_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance()) return this; - if (other.getFollowingCount() != 0L) { - setFollowingCount(other.getFollowingCount()); - } - if (other.getFollowerCount() != 0L) { - setFollowerCount(other.getFollowerCount()); - } - if (other.getFollowStatus() != 0L) { - setFollowStatus(other.getFollowStatus()); - } - if (other.getPushStatus() != 0L) { - setPushStatus(other.getPushStatus()); - } - if (!other.getRemarkName().isEmpty()) { - remarkName_ = other.remarkName_; - bitField0_ |= 0x00000010; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - followingCount_ = input.readInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - followerCount_ = input.readInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - followStatus_ = input.readInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - pushStatus_ = input.readInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - remarkName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long followingCount_ ; - /** - * int64 followingCount = 1; - * @return The followingCount. - */ - @java.lang.Override - public long getFollowingCount() { - return followingCount_; - } - /** - * int64 followingCount = 1; - * @param value The followingCount to set. - * @return This builder for chaining. - */ - public Builder setFollowingCount(long value) { - - followingCount_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * int64 followingCount = 1; - * @return This builder for chaining. - */ - public Builder clearFollowingCount() { - bitField0_ = (bitField0_ & ~0x00000001); - followingCount_ = 0L; - onChanged(); - return this; - } - - private long followerCount_ ; - /** - * int64 followerCount = 2; - * @return The followerCount. - */ - @java.lang.Override - public long getFollowerCount() { - return followerCount_; - } - /** - * int64 followerCount = 2; - * @param value The followerCount to set. - * @return This builder for chaining. - */ - public Builder setFollowerCount(long value) { - - followerCount_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int64 followerCount = 2; - * @return This builder for chaining. - */ - public Builder clearFollowerCount() { - bitField0_ = (bitField0_ & ~0x00000002); - followerCount_ = 0L; - onChanged(); - return this; - } - - private long followStatus_ ; - /** - * int64 followStatus = 3; - * @return The followStatus. - */ - @java.lang.Override - public long getFollowStatus() { - return followStatus_; - } - /** - * int64 followStatus = 3; - * @param value The followStatus to set. - * @return This builder for chaining. - */ - public Builder setFollowStatus(long value) { - - followStatus_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 followStatus = 3; - * @return This builder for chaining. - */ - public Builder clearFollowStatus() { - bitField0_ = (bitField0_ & ~0x00000004); - followStatus_ = 0L; - onChanged(); - return this; - } - - private long pushStatus_ ; - /** - * int64 pushStatus = 4; - * @return The pushStatus. - */ - @java.lang.Override - public long getPushStatus() { - return pushStatus_; - } - /** - * int64 pushStatus = 4; - * @param value The pushStatus to set. - * @return This builder for chaining. - */ - public Builder setPushStatus(long value) { - - pushStatus_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * int64 pushStatus = 4; - * @return This builder for chaining. - */ - public Builder clearPushStatus() { - bitField0_ = (bitField0_ & ~0x00000008); - pushStatus_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object remarkName_ = ""; - /** - * string remarkName = 5; - * @return The remarkName. - */ - public java.lang.String getRemarkName() { - java.lang.Object ref = remarkName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - remarkName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string remarkName = 5; - * @return The bytes for remarkName. - */ - public com.google.protobuf.ByteString - getRemarkNameBytes() { - java.lang.Object ref = remarkName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - remarkName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string remarkName = 5; - * @param value The remarkName to set. - * @return This builder for chaining. - */ - public Builder setRemarkName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - remarkName_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string remarkName = 5; - * @return This builder for chaining. - */ - public Builder clearRemarkName() { - remarkName_ = getDefaultInstance().getRemarkName(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string remarkName = 5; - * @param value The bytes for remarkName to set. - * @return This builder for chaining. - */ - public Builder setRemarkNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - remarkName_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.FollowInfo) - } - - // @@protoc_insertion_point(class_scope:User.FollowInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public FollowInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface JAccreditInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.JAccreditInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.JAccreditInfo} - */ - public static final class JAccreditInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.JAccreditInfo) - JAccreditInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use JAccreditInfo.newBuilder() to construct. - private JAccreditInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private JAccreditInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new JAccreditInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.JAccreditInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.JAccreditInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.JAccreditInfo) - } - - // @@protoc_insertion_point(class_scope:User.JAccreditInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public JAccreditInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface NobleLevelInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.NobleLevelInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.NobleLevelInfo} - */ - public static final class NobleLevelInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.NobleLevelInfo) - NobleLevelInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use NobleLevelInfo.newBuilder() to construct. - private NobleLevelInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private NobleLevelInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new NobleLevelInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.NobleLevelInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.NobleLevelInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.NobleLevelInfo) - } - - // @@protoc_insertion_point(class_scope:User.NobleLevelInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public NobleLevelInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface OwnRoomOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.OwnRoom) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.OwnRoom} - */ - public static final class OwnRoom extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.OwnRoom) - OwnRoomOrBuilder { - private static final long serialVersionUID = 0L; - // Use OwnRoom.newBuilder() to construct. - private OwnRoom(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private OwnRoom() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new OwnRoom(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.OwnRoom} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.OwnRoom) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.OwnRoom) - } - - // @@protoc_insertion_point(class_scope:User.OwnRoom) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public OwnRoom parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface PayGradeOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.PayGrade) - com.google.protobuf.MessageOrBuilder { - - /** - * int64 totalDiamondCount = 1; - * @return The totalDiamondCount. - */ - long getTotalDiamondCount(); - - /** - * .Image diamondIcon = 2; - * @return Whether the diamondIcon field is set. - */ - boolean hasDiamondIcon(); - /** - * .Image diamondIcon = 2; - * @return The diamondIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon(); - /** - * .Image diamondIcon = 2; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder(); - - /** - * string name = 3; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 3; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); - - /** - * .Image icon = 4; - * @return Whether the icon field is set. - */ - boolean hasIcon(); - /** - * .Image icon = 4; - * @return The icon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); - /** - * .Image icon = 4; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); - - /** - * string nextName = 5; - * @return The nextName. - */ - java.lang.String getNextName(); - /** - * string nextName = 5; - * @return The bytes for nextName. - */ - com.google.protobuf.ByteString - getNextNameBytes(); - - /** - * int64 level = 6; - * @return The level. - */ - long getLevel(); - - /** - * .Image nextIcon = 7; - * @return Whether the nextIcon field is set. - */ - boolean hasNextIcon(); - /** - * .Image nextIcon = 7; - * @return The nextIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon(); - /** - * .Image nextIcon = 7; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder(); - - /** - * int64 nextDiamond = 8; - * @return The nextDiamond. - */ - long getNextDiamond(); - - /** - * int64 nowDiamond = 9; - * @return The nowDiamond. - */ - long getNowDiamond(); - - /** - * int64 thisGradeMinDiamond = 10; - * @return The thisGradeMinDiamond. - */ - long getThisGradeMinDiamond(); - - /** - * int64 thisGradeMaxDiamond = 11; - * @return The thisGradeMaxDiamond. - */ - long getThisGradeMaxDiamond(); - - /** - * int64 payDiamondBak = 12; - * @return The payDiamondBak. - */ - long getPayDiamondBak(); - - /** - * string gradeDescribe = 13; - * @return The gradeDescribe. - */ - java.lang.String getGradeDescribe(); - /** - * string gradeDescribe = 13; - * @return The bytes for gradeDescribe. - */ - com.google.protobuf.ByteString - getGradeDescribeBytes(); - - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - java.util.List - getGradeIconListList(); - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index); - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - int getGradeIconListCount(); - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - java.util.List - getGradeIconListOrBuilderList(); - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( - int index); - - /** - * int64 screenChatType = 15; - * @return The screenChatType. - */ - long getScreenChatType(); - - /** - * .Image imIcon = 16; - * @return Whether the imIcon field is set. - */ - boolean hasImIcon(); - /** - * .Image imIcon = 16; - * @return The imIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon(); - /** - * .Image imIcon = 16; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder(); - - /** - * .Image imIconWithLevel = 17; - * @return Whether the imIconWithLevel field is set. - */ - boolean hasImIconWithLevel(); - /** - * .Image imIconWithLevel = 17; - * @return The imIconWithLevel. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel(); - /** - * .Image imIconWithLevel = 17; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder(); - - /** - * .Image liveIcon = 18; - * @return Whether the liveIcon field is set. - */ - boolean hasLiveIcon(); - /** - * .Image liveIcon = 18; - * @return The liveIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon(); - /** - * .Image liveIcon = 18; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder(); - - /** - * .Image newImIconWithLevel = 19; - * @return Whether the newImIconWithLevel field is set. - */ - boolean hasNewImIconWithLevel(); - /** - * .Image newImIconWithLevel = 19; - * @return The newImIconWithLevel. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel(); - /** - * .Image newImIconWithLevel = 19; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder(); - - /** - * .Image newLiveIcon = 20; - * @return Whether the newLiveIcon field is set. - */ - boolean hasNewLiveIcon(); - /** - * .Image newLiveIcon = 20; - * @return The newLiveIcon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon(); - /** - * .Image newLiveIcon = 20; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder(); - - /** - * int64 upgradeNeedConsume = 21; - * @return The upgradeNeedConsume. - */ - long getUpgradeNeedConsume(); - - /** - * string nextPrivileges = 22; - * @return The nextPrivileges. - */ - java.lang.String getNextPrivileges(); - /** - * string nextPrivileges = 22; - * @return The bytes for nextPrivileges. - */ - com.google.protobuf.ByteString - getNextPrivilegesBytes(); - - /** - * .Image background = 23; - * @return Whether the background field is set. - */ - boolean hasBackground(); - /** - * .Image background = 23; - * @return The background. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground(); - /** - * .Image background = 23; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder(); - - /** - * .Image backgroundBack = 24; - * @return Whether the backgroundBack field is set. - */ - boolean hasBackgroundBack(); - /** - * .Image backgroundBack = 24; - * @return The backgroundBack. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack(); - /** - * .Image backgroundBack = 24; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder(); - - /** - * int64 score = 25; - * @return The score. - */ - long getScore(); - - /** - *
-       * GradeBuffInfo buffInfo = 26;
-       * 
- * - * string gradeBanner = 1001; - * @return The gradeBanner. - */ - java.lang.String getGradeBanner(); - /** - *
-       * GradeBuffInfo buffInfo = 26;
-       * 
- * - * string gradeBanner = 1001; - * @return The bytes for gradeBanner. - */ - com.google.protobuf.ByteString - getGradeBannerBytes(); - - /** - * .Image profileDialogBg = 1002; - * @return Whether the profileDialogBg field is set. - */ - boolean hasProfileDialogBg(); - /** - * .Image profileDialogBg = 1002; - * @return The profileDialogBg. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg(); - /** - * .Image profileDialogBg = 1002; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder(); - - /** - * .Image profileDialogBgBack = 1003; - * @return Whether the profileDialogBgBack field is set. - */ - boolean hasProfileDialogBgBack(); - /** - * .Image profileDialogBgBack = 1003; - * @return The profileDialogBgBack. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack(); - /** - * .Image profileDialogBgBack = 1003; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder(); - } - /** - * Protobuf type {@code User.PayGrade} - */ - public static final class PayGrade extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.PayGrade) - PayGradeOrBuilder { - private static final long serialVersionUID = 0L; - // Use PayGrade.newBuilder() to construct. - private PayGrade(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PayGrade() { - name_ = ""; - nextName_ = ""; - gradeDescribe_ = ""; - gradeIconList_ = java.util.Collections.emptyList(); - nextPrivileges_ = ""; - gradeBanner_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PayGrade(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder.class); - } - - public interface GradeIconOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.PayGrade.GradeIcon) - com.google.protobuf.MessageOrBuilder { - - /** - * .Image icon = 1; - * @return Whether the icon field is set. - */ - boolean hasIcon(); - /** - * .Image icon = 1; - * @return The icon. - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); - /** - * .Image icon = 1; - */ - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); - - /** - * int64 iconDiamond = 2; - * @return The iconDiamond. - */ - long getIconDiamond(); - - /** - * int64 level = 3; - * @return The level. - */ - long getLevel(); - - /** - * string levelStr = 4; - * @return The levelStr. - */ - java.lang.String getLevelStr(); - /** - * string levelStr = 4; - * @return The bytes for levelStr. - */ - com.google.protobuf.ByteString - getLevelStrBytes(); - } - /** - * Protobuf type {@code User.PayGrade.GradeIcon} - */ - public static final class GradeIcon extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.PayGrade.GradeIcon) - GradeIconOrBuilder { - private static final long serialVersionUID = 0L; - // Use GradeIcon.newBuilder() to construct. - private GradeIcon(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GradeIcon() { - levelStr_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GradeIcon(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder.class); - } - - public static final int ICON_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - /** - * .Image icon = 1; - * @return Whether the icon field is set. - */ - @java.lang.Override - public boolean hasIcon() { - return icon_ != null; - } - /** - * .Image icon = 1; - * @return The icon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - /** - * .Image icon = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - - public static final int ICONDIAMOND_FIELD_NUMBER = 2; - private long iconDiamond_ = 0L; - /** - * int64 iconDiamond = 2; - * @return The iconDiamond. - */ - @java.lang.Override - public long getIconDiamond() { - return iconDiamond_; - } - - public static final int LEVEL_FIELD_NUMBER = 3; - private long level_ = 0L; - /** - * int64 level = 3; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - - public static final int LEVELSTR_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object levelStr_ = ""; - /** - * string levelStr = 4; - * @return The levelStr. - */ - @java.lang.Override - public java.lang.String getLevelStr() { - java.lang.Object ref = levelStr_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - levelStr_ = s; - return s; - } - } - /** - * string levelStr = 4; - * @return The bytes for levelStr. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLevelStrBytes() { - java.lang.Object ref = levelStr_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - levelStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (icon_ != null) { - output.writeMessage(1, getIcon()); - } - if (iconDiamond_ != 0L) { - output.writeInt64(2, iconDiamond_); - } - if (level_ != 0L) { - output.writeInt64(3, level_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(levelStr_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, levelStr_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (icon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getIcon()); - } - if (iconDiamond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, iconDiamond_); - } - if (level_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, level_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(levelStr_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, levelStr_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon) obj; - - if (hasIcon() != other.hasIcon()) return false; - if (hasIcon()) { - if (!getIcon() - .equals(other.getIcon())) return false; - } - if (getIconDiamond() - != other.getIconDiamond()) return false; - if (getLevel() - != other.getLevel()) return false; - if (!getLevelStr() - .equals(other.getLevelStr())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasIcon()) { - hash = (37 * hash) + ICON_FIELD_NUMBER; - hash = (53 * hash) + getIcon().hashCode(); - } - hash = (37 * hash) + ICONDIAMOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getIconDiamond()); - hash = (37 * hash) + LEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLevel()); - hash = (37 * hash) + LEVELSTR_FIELD_NUMBER; - hash = (53 * hash) + getLevelStr().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.PayGrade.GradeIcon} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.PayGrade.GradeIcon) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - iconDiamond_ = 0L; - level_ = 0L; - levelStr_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.icon_ = iconBuilder_ == null - ? icon_ - : iconBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.iconDiamond_ = iconDiamond_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.level_ = level_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.levelStr_ = levelStr_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()) return this; - if (other.hasIcon()) { - mergeIcon(other.getIcon()); - } - if (other.getIconDiamond() != 0L) { - setIconDiamond(other.getIconDiamond()); - } - if (other.getLevel() != 0L) { - setLevel(other.getLevel()); - } - if (!other.getLevelStr().isEmpty()) { - levelStr_ = other.levelStr_; - bitField0_ |= 0x00000008; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - iconDiamond_ = input.readInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - level_ = input.readInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - levelStr_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; - /** - * .Image icon = 1; - * @return Whether the icon field is set. - */ - public boolean hasIcon() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .Image icon = 1; - * @return The icon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - if (iconBuilder_ == null) { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } else { - return iconBuilder_.getMessage(); - } - } - /** - * .Image icon = 1; - */ - public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - icon_ = value; - } else { - iconBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image icon = 1; - */ - public Builder setIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (iconBuilder_ == null) { - icon_ = builderForValue.build(); - } else { - iconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image icon = 1; - */ - public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - icon_ != null && - icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getIconBuilder().mergeFrom(value); - } else { - icon_ = value; - } - } else { - iconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .Image icon = 1; - */ - public Builder clearIcon() { - bitField0_ = (bitField0_ & ~0x00000001); - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image icon = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getIconFieldBuilder().getBuilder(); - } - /** - * .Image icon = 1; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - if (iconBuilder_ != null) { - return iconBuilder_.getMessageOrBuilder(); - } else { - return icon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - } - /** - * .Image icon = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getIconFieldBuilder() { - if (iconBuilder_ == null) { - iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getIcon(), - getParentForChildren(), - isClean()); - icon_ = null; - } - return iconBuilder_; - } - - private long iconDiamond_ ; - /** - * int64 iconDiamond = 2; - * @return The iconDiamond. - */ - @java.lang.Override - public long getIconDiamond() { - return iconDiamond_; - } - /** - * int64 iconDiamond = 2; - * @param value The iconDiamond to set. - * @return This builder for chaining. - */ - public Builder setIconDiamond(long value) { - - iconDiamond_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int64 iconDiamond = 2; - * @return This builder for chaining. - */ - public Builder clearIconDiamond() { - bitField0_ = (bitField0_ & ~0x00000002); - iconDiamond_ = 0L; - onChanged(); - return this; - } - - private long level_ ; - /** - * int64 level = 3; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - /** - * int64 level = 3; - * @param value The level to set. - * @return This builder for chaining. - */ - public Builder setLevel(long value) { - - level_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 level = 3; - * @return This builder for chaining. - */ - public Builder clearLevel() { - bitField0_ = (bitField0_ & ~0x00000004); - level_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object levelStr_ = ""; - /** - * string levelStr = 4; - * @return The levelStr. - */ - public java.lang.String getLevelStr() { - java.lang.Object ref = levelStr_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - levelStr_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string levelStr = 4; - * @return The bytes for levelStr. - */ - public com.google.protobuf.ByteString - getLevelStrBytes() { - java.lang.Object ref = levelStr_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - levelStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string levelStr = 4; - * @param value The levelStr to set. - * @return This builder for chaining. - */ - public Builder setLevelStr( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - levelStr_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string levelStr = 4; - * @return This builder for chaining. - */ - public Builder clearLevelStr() { - levelStr_ = getDefaultInstance().getLevelStr(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string levelStr = 4; - * @param value The bytes for levelStr to set. - * @return This builder for chaining. - */ - public Builder setLevelStrBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - levelStr_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.PayGrade.GradeIcon) - } - - // @@protoc_insertion_point(class_scope:User.PayGrade.GradeIcon) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public GradeIcon parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int TOTALDIAMONDCOUNT_FIELD_NUMBER = 1; - private long totalDiamondCount_ = 0L; - /** - * int64 totalDiamondCount = 1; - * @return The totalDiamondCount. - */ - @java.lang.Override - public long getTotalDiamondCount() { - return totalDiamondCount_; - } - - public static final int DIAMONDICON_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image diamondIcon_; - /** - * .Image diamondIcon = 2; - * @return Whether the diamondIcon field is set. - */ - @java.lang.Override - public boolean hasDiamondIcon() { - return diamondIcon_ != null; - } - /** - * .Image diamondIcon = 2; - * @return The diamondIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon() { - return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; - } - /** - * .Image diamondIcon = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder() { - return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; - } - - public static final int NAME_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - * string name = 3; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 3; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ICON_FIELD_NUMBER = 4; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - /** - * .Image icon = 4; - * @return Whether the icon field is set. - */ - @java.lang.Override - public boolean hasIcon() { - return icon_ != null; - } - /** - * .Image icon = 4; - * @return The icon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - /** - * .Image icon = 4; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - - public static final int NEXTNAME_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object nextName_ = ""; - /** - * string nextName = 5; - * @return The nextName. - */ - @java.lang.Override - public java.lang.String getNextName() { - java.lang.Object ref = nextName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nextName_ = s; - return s; - } - } - /** - * string nextName = 5; - * @return The bytes for nextName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNextNameBytes() { - java.lang.Object ref = nextName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nextName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LEVEL_FIELD_NUMBER = 6; - private long level_ = 0L; - /** - * int64 level = 6; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - - public static final int NEXTICON_FIELD_NUMBER = 7; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image nextIcon_; - /** - * .Image nextIcon = 7; - * @return Whether the nextIcon field is set. - */ - @java.lang.Override - public boolean hasNextIcon() { - return nextIcon_ != null; - } - /** - * .Image nextIcon = 7; - * @return The nextIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon() { - return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; - } - /** - * .Image nextIcon = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder() { - return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; - } - - public static final int NEXTDIAMOND_FIELD_NUMBER = 8; - private long nextDiamond_ = 0L; - /** - * int64 nextDiamond = 8; - * @return The nextDiamond. - */ - @java.lang.Override - public long getNextDiamond() { - return nextDiamond_; - } - - public static final int NOWDIAMOND_FIELD_NUMBER = 9; - private long nowDiamond_ = 0L; - /** - * int64 nowDiamond = 9; - * @return The nowDiamond. - */ - @java.lang.Override - public long getNowDiamond() { - return nowDiamond_; - } - - public static final int THISGRADEMINDIAMOND_FIELD_NUMBER = 10; - private long thisGradeMinDiamond_ = 0L; - /** - * int64 thisGradeMinDiamond = 10; - * @return The thisGradeMinDiamond. - */ - @java.lang.Override - public long getThisGradeMinDiamond() { - return thisGradeMinDiamond_; - } - - public static final int THISGRADEMAXDIAMOND_FIELD_NUMBER = 11; - private long thisGradeMaxDiamond_ = 0L; - /** - * int64 thisGradeMaxDiamond = 11; - * @return The thisGradeMaxDiamond. - */ - @java.lang.Override - public long getThisGradeMaxDiamond() { - return thisGradeMaxDiamond_; - } - - public static final int PAYDIAMONDBAK_FIELD_NUMBER = 12; - private long payDiamondBak_ = 0L; - /** - * int64 payDiamondBak = 12; - * @return The payDiamondBak. - */ - @java.lang.Override - public long getPayDiamondBak() { - return payDiamondBak_; - } - - public static final int GRADEDESCRIBE_FIELD_NUMBER = 13; - @SuppressWarnings("serial") - private volatile java.lang.Object gradeDescribe_ = ""; - /** - * string gradeDescribe = 13; - * @return The gradeDescribe. - */ - @java.lang.Override - public java.lang.String getGradeDescribe() { - java.lang.Object ref = gradeDescribe_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - gradeDescribe_ = s; - return s; - } - } - /** - * string gradeDescribe = 13; - * @return The bytes for gradeDescribe. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGradeDescribeBytes() { - java.lang.Object ref = gradeDescribe_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - gradeDescribe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int GRADEICONLIST_FIELD_NUMBER = 14; - @SuppressWarnings("serial") - private java.util.List gradeIconList_; - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - @java.lang.Override - public java.util.List getGradeIconListList() { - return gradeIconList_; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - @java.lang.Override - public java.util.List - getGradeIconListOrBuilderList() { - return gradeIconList_; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - @java.lang.Override - public int getGradeIconListCount() { - return gradeIconList_.size(); - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index) { - return gradeIconList_.get(index); - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( - int index) { - return gradeIconList_.get(index); - } - - public static final int SCREENCHATTYPE_FIELD_NUMBER = 15; - private long screenChatType_ = 0L; - /** - * int64 screenChatType = 15; - * @return The screenChatType. - */ - @java.lang.Override - public long getScreenChatType() { - return screenChatType_; - } - - public static final int IMICON_FIELD_NUMBER = 16; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIcon_; - /** - * .Image imIcon = 16; - * @return Whether the imIcon field is set. - */ - @java.lang.Override - public boolean hasImIcon() { - return imIcon_ != null; - } - /** - * .Image imIcon = 16; - * @return The imIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon() { - return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; - } - /** - * .Image imIcon = 16; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder() { - return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; - } - - public static final int IMICONWITHLEVEL_FIELD_NUMBER = 17; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIconWithLevel_; - /** - * .Image imIconWithLevel = 17; - * @return Whether the imIconWithLevel field is set. - */ - @java.lang.Override - public boolean hasImIconWithLevel() { - return imIconWithLevel_ != null; - } - /** - * .Image imIconWithLevel = 17; - * @return The imIconWithLevel. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel() { - return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; - } - /** - * .Image imIconWithLevel = 17; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder() { - return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; - } - - public static final int LIVEICON_FIELD_NUMBER = 18; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image liveIcon_; - /** - * .Image liveIcon = 18; - * @return Whether the liveIcon field is set. - */ - @java.lang.Override - public boolean hasLiveIcon() { - return liveIcon_ != null; - } - /** - * .Image liveIcon = 18; - * @return The liveIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon() { - return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; - } - /** - * .Image liveIcon = 18; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder() { - return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; - } - - public static final int NEWIMICONWITHLEVEL_FIELD_NUMBER = 19; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newImIconWithLevel_; - /** - * .Image newImIconWithLevel = 19; - * @return Whether the newImIconWithLevel field is set. - */ - @java.lang.Override - public boolean hasNewImIconWithLevel() { - return newImIconWithLevel_ != null; - } - /** - * .Image newImIconWithLevel = 19; - * @return The newImIconWithLevel. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel() { - return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; - } - /** - * .Image newImIconWithLevel = 19; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder() { - return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; - } - - public static final int NEWLIVEICON_FIELD_NUMBER = 20; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newLiveIcon_; - /** - * .Image newLiveIcon = 20; - * @return Whether the newLiveIcon field is set. - */ - @java.lang.Override - public boolean hasNewLiveIcon() { - return newLiveIcon_ != null; - } - /** - * .Image newLiveIcon = 20; - * @return The newLiveIcon. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon() { - return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; - } - /** - * .Image newLiveIcon = 20; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder() { - return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; - } - - public static final int UPGRADENEEDCONSUME_FIELD_NUMBER = 21; - private long upgradeNeedConsume_ = 0L; - /** - * int64 upgradeNeedConsume = 21; - * @return The upgradeNeedConsume. - */ - @java.lang.Override - public long getUpgradeNeedConsume() { - return upgradeNeedConsume_; - } - - public static final int NEXTPRIVILEGES_FIELD_NUMBER = 22; - @SuppressWarnings("serial") - private volatile java.lang.Object nextPrivileges_ = ""; - /** - * string nextPrivileges = 22; - * @return The nextPrivileges. - */ - @java.lang.Override - public java.lang.String getNextPrivileges() { - java.lang.Object ref = nextPrivileges_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nextPrivileges_ = s; - return s; - } - } - /** - * string nextPrivileges = 22; - * @return The bytes for nextPrivileges. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNextPrivilegesBytes() { - java.lang.Object ref = nextPrivileges_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nextPrivileges_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BACKGROUND_FIELD_NUMBER = 23; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; - /** - * .Image background = 23; - * @return Whether the background field is set. - */ - @java.lang.Override - public boolean hasBackground() { - return background_ != null; - } - /** - * .Image background = 23; - * @return The background. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - /** - * .Image background = 23; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - - public static final int BACKGROUNDBACK_FIELD_NUMBER = 24; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundBack_; - /** - * .Image backgroundBack = 24; - * @return Whether the backgroundBack field is set. - */ - @java.lang.Override - public boolean hasBackgroundBack() { - return backgroundBack_ != null; - } - /** - * .Image backgroundBack = 24; - * @return The backgroundBack. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack() { - return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; - } - /** - * .Image backgroundBack = 24; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder() { - return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; - } - - public static final int SCORE_FIELD_NUMBER = 25; - private long score_ = 0L; - /** - * int64 score = 25; - * @return The score. - */ - @java.lang.Override - public long getScore() { - return score_; - } - - public static final int GRADEBANNER_FIELD_NUMBER = 1001; - @SuppressWarnings("serial") - private volatile java.lang.Object gradeBanner_ = ""; - /** - *
-       * GradeBuffInfo buffInfo = 26;
-       * 
- * - * string gradeBanner = 1001; - * @return The gradeBanner. - */ - @java.lang.Override - public java.lang.String getGradeBanner() { - java.lang.Object ref = gradeBanner_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - gradeBanner_ = s; - return s; - } - } - /** - *
-       * GradeBuffInfo buffInfo = 26;
-       * 
- * - * string gradeBanner = 1001; - * @return The bytes for gradeBanner. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGradeBannerBytes() { - java.lang.Object ref = gradeBanner_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - gradeBanner_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PROFILEDIALOGBG_FIELD_NUMBER = 1002; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBg_; - /** - * .Image profileDialogBg = 1002; - * @return Whether the profileDialogBg field is set. - */ - @java.lang.Override - public boolean hasProfileDialogBg() { - return profileDialogBg_ != null; - } - /** - * .Image profileDialogBg = 1002; - * @return The profileDialogBg. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg() { - return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; - } - /** - * .Image profileDialogBg = 1002; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder() { - return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; - } - - public static final int PROFILEDIALOGBGBACK_FIELD_NUMBER = 1003; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBgBack_; - /** - * .Image profileDialogBgBack = 1003; - * @return Whether the profileDialogBgBack field is set. - */ - @java.lang.Override - public boolean hasProfileDialogBgBack() { - return profileDialogBgBack_ != null; - } - /** - * .Image profileDialogBgBack = 1003; - * @return The profileDialogBgBack. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack() { - return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; - } - /** - * .Image profileDialogBgBack = 1003; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder() { - return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (totalDiamondCount_ != 0L) { - output.writeInt64(1, totalDiamondCount_); - } - if (diamondIcon_ != null) { - output.writeMessage(2, getDiamondIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_); - } - if (icon_ != null) { - output.writeMessage(4, getIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, nextName_); - } - if (level_ != 0L) { - output.writeInt64(6, level_); - } - if (nextIcon_ != null) { - output.writeMessage(7, getNextIcon()); - } - if (nextDiamond_ != 0L) { - output.writeInt64(8, nextDiamond_); - } - if (nowDiamond_ != 0L) { - output.writeInt64(9, nowDiamond_); - } - if (thisGradeMinDiamond_ != 0L) { - output.writeInt64(10, thisGradeMinDiamond_); - } - if (thisGradeMaxDiamond_ != 0L) { - output.writeInt64(11, thisGradeMaxDiamond_); - } - if (payDiamondBak_ != 0L) { - output.writeInt64(12, payDiamondBak_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeDescribe_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 13, gradeDescribe_); - } - for (int i = 0; i < gradeIconList_.size(); i++) { - output.writeMessage(14, gradeIconList_.get(i)); - } - if (screenChatType_ != 0L) { - output.writeInt64(15, screenChatType_); - } - if (imIcon_ != null) { - output.writeMessage(16, getImIcon()); - } - if (imIconWithLevel_ != null) { - output.writeMessage(17, getImIconWithLevel()); - } - if (liveIcon_ != null) { - output.writeMessage(18, getLiveIcon()); - } - if (newImIconWithLevel_ != null) { - output.writeMessage(19, getNewImIconWithLevel()); - } - if (newLiveIcon_ != null) { - output.writeMessage(20, getNewLiveIcon()); - } - if (upgradeNeedConsume_ != 0L) { - output.writeInt64(21, upgradeNeedConsume_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPrivileges_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 22, nextPrivileges_); - } - if (background_ != null) { - output.writeMessage(23, getBackground()); - } - if (backgroundBack_ != null) { - output.writeMessage(24, getBackgroundBack()); - } - if (score_ != 0L) { - output.writeInt64(25, score_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeBanner_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1001, gradeBanner_); - } - if (profileDialogBg_ != null) { - output.writeMessage(1002, getProfileDialogBg()); - } - if (profileDialogBgBack_ != null) { - output.writeMessage(1003, getProfileDialogBgBack()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (totalDiamondCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, totalDiamondCount_); - } - if (diamondIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getDiamondIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_); - } - if (icon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getIcon()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, nextName_); - } - if (level_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(6, level_); - } - if (nextIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, getNextIcon()); - } - if (nextDiamond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(8, nextDiamond_); - } - if (nowDiamond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(9, nowDiamond_); - } - if (thisGradeMinDiamond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(10, thisGradeMinDiamond_); - } - if (thisGradeMaxDiamond_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(11, thisGradeMaxDiamond_); - } - if (payDiamondBak_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(12, payDiamondBak_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeDescribe_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, gradeDescribe_); - } - for (int i = 0; i < gradeIconList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(14, gradeIconList_.get(i)); - } - if (screenChatType_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(15, screenChatType_); - } - if (imIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(16, getImIcon()); - } - if (imIconWithLevel_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(17, getImIconWithLevel()); - } - if (liveIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(18, getLiveIcon()); - } - if (newImIconWithLevel_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(19, getNewImIconWithLevel()); - } - if (newLiveIcon_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(20, getNewLiveIcon()); - } - if (upgradeNeedConsume_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(21, upgradeNeedConsume_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPrivileges_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, nextPrivileges_); - } - if (background_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(23, getBackground()); - } - if (backgroundBack_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(24, getBackgroundBack()); - } - if (score_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(25, score_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeBanner_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1001, gradeBanner_); - } - if (profileDialogBg_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1002, getProfileDialogBg()); - } - if (profileDialogBgBack_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1003, getProfileDialogBgBack()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade) obj; - - if (getTotalDiamondCount() - != other.getTotalDiamondCount()) return false; - if (hasDiamondIcon() != other.hasDiamondIcon()) return false; - if (hasDiamondIcon()) { - if (!getDiamondIcon() - .equals(other.getDiamondIcon())) return false; - } - if (!getName() - .equals(other.getName())) return false; - if (hasIcon() != other.hasIcon()) return false; - if (hasIcon()) { - if (!getIcon() - .equals(other.getIcon())) return false; - } - if (!getNextName() - .equals(other.getNextName())) return false; - if (getLevel() - != other.getLevel()) return false; - if (hasNextIcon() != other.hasNextIcon()) return false; - if (hasNextIcon()) { - if (!getNextIcon() - .equals(other.getNextIcon())) return false; - } - if (getNextDiamond() - != other.getNextDiamond()) return false; - if (getNowDiamond() - != other.getNowDiamond()) return false; - if (getThisGradeMinDiamond() - != other.getThisGradeMinDiamond()) return false; - if (getThisGradeMaxDiamond() - != other.getThisGradeMaxDiamond()) return false; - if (getPayDiamondBak() - != other.getPayDiamondBak()) return false; - if (!getGradeDescribe() - .equals(other.getGradeDescribe())) return false; - if (!getGradeIconListList() - .equals(other.getGradeIconListList())) return false; - if (getScreenChatType() - != other.getScreenChatType()) return false; - if (hasImIcon() != other.hasImIcon()) return false; - if (hasImIcon()) { - if (!getImIcon() - .equals(other.getImIcon())) return false; - } - if (hasImIconWithLevel() != other.hasImIconWithLevel()) return false; - if (hasImIconWithLevel()) { - if (!getImIconWithLevel() - .equals(other.getImIconWithLevel())) return false; - } - if (hasLiveIcon() != other.hasLiveIcon()) return false; - if (hasLiveIcon()) { - if (!getLiveIcon() - .equals(other.getLiveIcon())) return false; - } - if (hasNewImIconWithLevel() != other.hasNewImIconWithLevel()) return false; - if (hasNewImIconWithLevel()) { - if (!getNewImIconWithLevel() - .equals(other.getNewImIconWithLevel())) return false; - } - if (hasNewLiveIcon() != other.hasNewLiveIcon()) return false; - if (hasNewLiveIcon()) { - if (!getNewLiveIcon() - .equals(other.getNewLiveIcon())) return false; - } - if (getUpgradeNeedConsume() - != other.getUpgradeNeedConsume()) return false; - if (!getNextPrivileges() - .equals(other.getNextPrivileges())) return false; - if (hasBackground() != other.hasBackground()) return false; - if (hasBackground()) { - if (!getBackground() - .equals(other.getBackground())) return false; - } - if (hasBackgroundBack() != other.hasBackgroundBack()) return false; - if (hasBackgroundBack()) { - if (!getBackgroundBack() - .equals(other.getBackgroundBack())) return false; - } - if (getScore() - != other.getScore()) return false; - if (!getGradeBanner() - .equals(other.getGradeBanner())) return false; - if (hasProfileDialogBg() != other.hasProfileDialogBg()) return false; - if (hasProfileDialogBg()) { - if (!getProfileDialogBg() - .equals(other.getProfileDialogBg())) return false; - } - if (hasProfileDialogBgBack() != other.hasProfileDialogBgBack()) return false; - if (hasProfileDialogBgBack()) { - if (!getProfileDialogBgBack() - .equals(other.getProfileDialogBgBack())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TOTALDIAMONDCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTotalDiamondCount()); - if (hasDiamondIcon()) { - hash = (37 * hash) + DIAMONDICON_FIELD_NUMBER; - hash = (53 * hash) + getDiamondIcon().hashCode(); - } - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (hasIcon()) { - hash = (37 * hash) + ICON_FIELD_NUMBER; - hash = (53 * hash) + getIcon().hashCode(); - } - hash = (37 * hash) + NEXTNAME_FIELD_NUMBER; - hash = (53 * hash) + getNextName().hashCode(); - hash = (37 * hash) + LEVEL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLevel()); - if (hasNextIcon()) { - hash = (37 * hash) + NEXTICON_FIELD_NUMBER; - hash = (53 * hash) + getNextIcon().hashCode(); - } - hash = (37 * hash) + NEXTDIAMOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getNextDiamond()); - hash = (37 * hash) + NOWDIAMOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getNowDiamond()); - hash = (37 * hash) + THISGRADEMINDIAMOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getThisGradeMinDiamond()); - hash = (37 * hash) + THISGRADEMAXDIAMOND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getThisGradeMaxDiamond()); - hash = (37 * hash) + PAYDIAMONDBAK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPayDiamondBak()); - hash = (37 * hash) + GRADEDESCRIBE_FIELD_NUMBER; - hash = (53 * hash) + getGradeDescribe().hashCode(); - if (getGradeIconListCount() > 0) { - hash = (37 * hash) + GRADEICONLIST_FIELD_NUMBER; - hash = (53 * hash) + getGradeIconListList().hashCode(); - } - hash = (37 * hash) + SCREENCHATTYPE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getScreenChatType()); - if (hasImIcon()) { - hash = (37 * hash) + IMICON_FIELD_NUMBER; - hash = (53 * hash) + getImIcon().hashCode(); - } - if (hasImIconWithLevel()) { - hash = (37 * hash) + IMICONWITHLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getImIconWithLevel().hashCode(); - } - if (hasLiveIcon()) { - hash = (37 * hash) + LIVEICON_FIELD_NUMBER; - hash = (53 * hash) + getLiveIcon().hashCode(); - } - if (hasNewImIconWithLevel()) { - hash = (37 * hash) + NEWIMICONWITHLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getNewImIconWithLevel().hashCode(); - } - if (hasNewLiveIcon()) { - hash = (37 * hash) + NEWLIVEICON_FIELD_NUMBER; - hash = (53 * hash) + getNewLiveIcon().hashCode(); - } - hash = (37 * hash) + UPGRADENEEDCONSUME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUpgradeNeedConsume()); - hash = (37 * hash) + NEXTPRIVILEGES_FIELD_NUMBER; - hash = (53 * hash) + getNextPrivileges().hashCode(); - if (hasBackground()) { - hash = (37 * hash) + BACKGROUND_FIELD_NUMBER; - hash = (53 * hash) + getBackground().hashCode(); - } - if (hasBackgroundBack()) { - hash = (37 * hash) + BACKGROUNDBACK_FIELD_NUMBER; - hash = (53 * hash) + getBackgroundBack().hashCode(); - } - hash = (37 * hash) + SCORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getScore()); - hash = (37 * hash) + GRADEBANNER_FIELD_NUMBER; - hash = (53 * hash) + getGradeBanner().hashCode(); - if (hasProfileDialogBg()) { - hash = (37 * hash) + PROFILEDIALOGBG_FIELD_NUMBER; - hash = (53 * hash) + getProfileDialogBg().hashCode(); - } - if (hasProfileDialogBgBack()) { - hash = (37 * hash) + PROFILEDIALOGBGBACK_FIELD_NUMBER; - hash = (53 * hash) + getProfileDialogBgBack().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.PayGrade} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.PayGrade) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - totalDiamondCount_ = 0L; - diamondIcon_ = null; - if (diamondIconBuilder_ != null) { - diamondIconBuilder_.dispose(); - diamondIconBuilder_ = null; - } - name_ = ""; - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - nextName_ = ""; - level_ = 0L; - nextIcon_ = null; - if (nextIconBuilder_ != null) { - nextIconBuilder_.dispose(); - nextIconBuilder_ = null; - } - nextDiamond_ = 0L; - nowDiamond_ = 0L; - thisGradeMinDiamond_ = 0L; - thisGradeMaxDiamond_ = 0L; - payDiamondBak_ = 0L; - gradeDescribe_ = ""; - if (gradeIconListBuilder_ == null) { - gradeIconList_ = java.util.Collections.emptyList(); - } else { - gradeIconList_ = null; - gradeIconListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00002000); - screenChatType_ = 0L; - imIcon_ = null; - if (imIconBuilder_ != null) { - imIconBuilder_.dispose(); - imIconBuilder_ = null; - } - imIconWithLevel_ = null; - if (imIconWithLevelBuilder_ != null) { - imIconWithLevelBuilder_.dispose(); - imIconWithLevelBuilder_ = null; - } - liveIcon_ = null; - if (liveIconBuilder_ != null) { - liveIconBuilder_.dispose(); - liveIconBuilder_ = null; - } - newImIconWithLevel_ = null; - if (newImIconWithLevelBuilder_ != null) { - newImIconWithLevelBuilder_.dispose(); - newImIconWithLevelBuilder_ = null; - } - newLiveIcon_ = null; - if (newLiveIconBuilder_ != null) { - newLiveIconBuilder_.dispose(); - newLiveIconBuilder_ = null; - } - upgradeNeedConsume_ = 0L; - nextPrivileges_ = ""; - background_ = null; - if (backgroundBuilder_ != null) { - backgroundBuilder_.dispose(); - backgroundBuilder_ = null; - } - backgroundBack_ = null; - if (backgroundBackBuilder_ != null) { - backgroundBackBuilder_.dispose(); - backgroundBackBuilder_ = null; - } - score_ = 0L; - gradeBanner_ = ""; - profileDialogBg_ = null; - if (profileDialogBgBuilder_ != null) { - profileDialogBgBuilder_.dispose(); - profileDialogBgBuilder_ = null; - } - profileDialogBgBack_ = null; - if (profileDialogBgBackBuilder_ != null) { - profileDialogBgBackBuilder_.dispose(); - profileDialogBgBackBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result) { - if (gradeIconListBuilder_ == null) { - if (((bitField0_ & 0x00002000) != 0)) { - gradeIconList_ = java.util.Collections.unmodifiableList(gradeIconList_); - bitField0_ = (bitField0_ & ~0x00002000); - } - result.gradeIconList_ = gradeIconList_; - } else { - result.gradeIconList_ = gradeIconListBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.totalDiamondCount_ = totalDiamondCount_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.diamondIcon_ = diamondIconBuilder_ == null - ? diamondIcon_ - : diamondIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.name_ = name_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.icon_ = iconBuilder_ == null - ? icon_ - : iconBuilder_.build(); - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.nextName_ = nextName_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.level_ = level_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.nextIcon_ = nextIconBuilder_ == null - ? nextIcon_ - : nextIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.nextDiamond_ = nextDiamond_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.nowDiamond_ = nowDiamond_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.thisGradeMinDiamond_ = thisGradeMinDiamond_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.thisGradeMaxDiamond_ = thisGradeMaxDiamond_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.payDiamondBak_ = payDiamondBak_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.gradeDescribe_ = gradeDescribe_; - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.screenChatType_ = screenChatType_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.imIcon_ = imIconBuilder_ == null - ? imIcon_ - : imIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.imIconWithLevel_ = imIconWithLevelBuilder_ == null - ? imIconWithLevel_ - : imIconWithLevelBuilder_.build(); - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.liveIcon_ = liveIconBuilder_ == null - ? liveIcon_ - : liveIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.newImIconWithLevel_ = newImIconWithLevelBuilder_ == null - ? newImIconWithLevel_ - : newImIconWithLevelBuilder_.build(); - } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.newLiveIcon_ = newLiveIconBuilder_ == null - ? newLiveIcon_ - : newLiveIconBuilder_.build(); - } - if (((from_bitField0_ & 0x00100000) != 0)) { - result.upgradeNeedConsume_ = upgradeNeedConsume_; - } - if (((from_bitField0_ & 0x00200000) != 0)) { - result.nextPrivileges_ = nextPrivileges_; - } - if (((from_bitField0_ & 0x00400000) != 0)) { - result.background_ = backgroundBuilder_ == null - ? background_ - : backgroundBuilder_.build(); - } - if (((from_bitField0_ & 0x00800000) != 0)) { - result.backgroundBack_ = backgroundBackBuilder_ == null - ? backgroundBack_ - : backgroundBackBuilder_.build(); - } - if (((from_bitField0_ & 0x01000000) != 0)) { - result.score_ = score_; - } - if (((from_bitField0_ & 0x02000000) != 0)) { - result.gradeBanner_ = gradeBanner_; - } - if (((from_bitField0_ & 0x04000000) != 0)) { - result.profileDialogBg_ = profileDialogBgBuilder_ == null - ? profileDialogBg_ - : profileDialogBgBuilder_.build(); - } - if (((from_bitField0_ & 0x08000000) != 0)) { - result.profileDialogBgBack_ = profileDialogBgBackBuilder_ == null - ? profileDialogBgBack_ - : profileDialogBgBackBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance()) return this; - if (other.getTotalDiamondCount() != 0L) { - setTotalDiamondCount(other.getTotalDiamondCount()); - } - if (other.hasDiamondIcon()) { - mergeDiamondIcon(other.getDiamondIcon()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.hasIcon()) { - mergeIcon(other.getIcon()); - } - if (!other.getNextName().isEmpty()) { - nextName_ = other.nextName_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (other.getLevel() != 0L) { - setLevel(other.getLevel()); - } - if (other.hasNextIcon()) { - mergeNextIcon(other.getNextIcon()); - } - if (other.getNextDiamond() != 0L) { - setNextDiamond(other.getNextDiamond()); - } - if (other.getNowDiamond() != 0L) { - setNowDiamond(other.getNowDiamond()); - } - if (other.getThisGradeMinDiamond() != 0L) { - setThisGradeMinDiamond(other.getThisGradeMinDiamond()); - } - if (other.getThisGradeMaxDiamond() != 0L) { - setThisGradeMaxDiamond(other.getThisGradeMaxDiamond()); - } - if (other.getPayDiamondBak() != 0L) { - setPayDiamondBak(other.getPayDiamondBak()); - } - if (!other.getGradeDescribe().isEmpty()) { - gradeDescribe_ = other.gradeDescribe_; - bitField0_ |= 0x00001000; - onChanged(); - } - if (gradeIconListBuilder_ == null) { - if (!other.gradeIconList_.isEmpty()) { - if (gradeIconList_.isEmpty()) { - gradeIconList_ = other.gradeIconList_; - bitField0_ = (bitField0_ & ~0x00002000); - } else { - ensureGradeIconListIsMutable(); - gradeIconList_.addAll(other.gradeIconList_); - } - onChanged(); - } - } else { - if (!other.gradeIconList_.isEmpty()) { - if (gradeIconListBuilder_.isEmpty()) { - gradeIconListBuilder_.dispose(); - gradeIconListBuilder_ = null; - gradeIconList_ = other.gradeIconList_; - bitField0_ = (bitField0_ & ~0x00002000); - gradeIconListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getGradeIconListFieldBuilder() : null; - } else { - gradeIconListBuilder_.addAllMessages(other.gradeIconList_); - } - } - } - if (other.getScreenChatType() != 0L) { - setScreenChatType(other.getScreenChatType()); - } - if (other.hasImIcon()) { - mergeImIcon(other.getImIcon()); - } - if (other.hasImIconWithLevel()) { - mergeImIconWithLevel(other.getImIconWithLevel()); - } - if (other.hasLiveIcon()) { - mergeLiveIcon(other.getLiveIcon()); - } - if (other.hasNewImIconWithLevel()) { - mergeNewImIconWithLevel(other.getNewImIconWithLevel()); - } - if (other.hasNewLiveIcon()) { - mergeNewLiveIcon(other.getNewLiveIcon()); - } - if (other.getUpgradeNeedConsume() != 0L) { - setUpgradeNeedConsume(other.getUpgradeNeedConsume()); - } - if (!other.getNextPrivileges().isEmpty()) { - nextPrivileges_ = other.nextPrivileges_; - bitField0_ |= 0x00200000; - onChanged(); - } - if (other.hasBackground()) { - mergeBackground(other.getBackground()); - } - if (other.hasBackgroundBack()) { - mergeBackgroundBack(other.getBackgroundBack()); - } - if (other.getScore() != 0L) { - setScore(other.getScore()); - } - if (!other.getGradeBanner().isEmpty()) { - gradeBanner_ = other.gradeBanner_; - bitField0_ |= 0x02000000; - onChanged(); - } - if (other.hasProfileDialogBg()) { - mergeProfileDialogBg(other.getProfileDialogBg()); - } - if (other.hasProfileDialogBgBack()) { - mergeProfileDialogBgBack(other.getProfileDialogBgBack()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - totalDiamondCount_ = input.readInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - input.readMessage( - getDiamondIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - name_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - input.readMessage( - getIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 42: { - nextName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 48: { - level_ = input.readInt64(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - input.readMessage( - getNextIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 64: { - nextDiamond_ = input.readInt64(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - nowDiamond_ = input.readInt64(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: { - thisGradeMinDiamond_ = input.readInt64(); - bitField0_ |= 0x00000200; - break; - } // case 80 - case 88: { - thisGradeMaxDiamond_ = input.readInt64(); - bitField0_ |= 0x00000400; - break; - } // case 88 - case 96: { - payDiamondBak_ = input.readInt64(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 106: { - gradeDescribe_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00001000; - break; - } // case 106 - case 114: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.parser(), - extensionRegistry); - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - gradeIconList_.add(m); - } else { - gradeIconListBuilder_.addMessage(m); - } - break; - } // case 114 - case 120: { - screenChatType_ = input.readInt64(); - bitField0_ |= 0x00004000; - break; - } // case 120 - case 130: { - input.readMessage( - getImIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00008000; - break; - } // case 130 - case 138: { - input.readMessage( - getImIconWithLevelFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00010000; - break; - } // case 138 - case 146: { - input.readMessage( - getLiveIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00020000; - break; - } // case 146 - case 154: { - input.readMessage( - getNewImIconWithLevelFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00040000; - break; - } // case 154 - case 162: { - input.readMessage( - getNewLiveIconFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00080000; - break; - } // case 162 - case 168: { - upgradeNeedConsume_ = input.readInt64(); - bitField0_ |= 0x00100000; - break; - } // case 168 - case 178: { - nextPrivileges_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00200000; - break; - } // case 178 - case 186: { - input.readMessage( - getBackgroundFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00400000; - break; - } // case 186 - case 194: { - input.readMessage( - getBackgroundBackFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00800000; - break; - } // case 194 - case 200: { - score_ = input.readInt64(); - bitField0_ |= 0x01000000; - break; - } // case 200 - case 8010: { - gradeBanner_ = input.readStringRequireUtf8(); - bitField0_ |= 0x02000000; - break; - } // case 8010 - case 8018: { - input.readMessage( - getProfileDialogBgFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x04000000; - break; - } // case 8018 - case 8026: { - input.readMessage( - getProfileDialogBgBackFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x08000000; - break; - } // case 8026 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long totalDiamondCount_ ; - /** - * int64 totalDiamondCount = 1; - * @return The totalDiamondCount. - */ - @java.lang.Override - public long getTotalDiamondCount() { - return totalDiamondCount_; - } - /** - * int64 totalDiamondCount = 1; - * @param value The totalDiamondCount to set. - * @return This builder for chaining. - */ - public Builder setTotalDiamondCount(long value) { - - totalDiamondCount_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * int64 totalDiamondCount = 1; - * @return This builder for chaining. - */ - public Builder clearTotalDiamondCount() { - bitField0_ = (bitField0_ & ~0x00000001); - totalDiamondCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image diamondIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> diamondIconBuilder_; - /** - * .Image diamondIcon = 2; - * @return Whether the diamondIcon field is set. - */ - public boolean hasDiamondIcon() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .Image diamondIcon = 2; - * @return The diamondIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon() { - if (diamondIconBuilder_ == null) { - return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; - } else { - return diamondIconBuilder_.getMessage(); - } - } - /** - * .Image diamondIcon = 2; - */ - public Builder setDiamondIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (diamondIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - diamondIcon_ = value; - } else { - diamondIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .Image diamondIcon = 2; - */ - public Builder setDiamondIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (diamondIconBuilder_ == null) { - diamondIcon_ = builderForValue.build(); - } else { - diamondIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .Image diamondIcon = 2; - */ - public Builder mergeDiamondIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (diamondIconBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - diamondIcon_ != null && - diamondIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getDiamondIconBuilder().mergeFrom(value); - } else { - diamondIcon_ = value; - } - } else { - diamondIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .Image diamondIcon = 2; - */ - public Builder clearDiamondIcon() { - bitField0_ = (bitField0_ & ~0x00000002); - diamondIcon_ = null; - if (diamondIconBuilder_ != null) { - diamondIconBuilder_.dispose(); - diamondIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image diamondIcon = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getDiamondIconBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getDiamondIconFieldBuilder().getBuilder(); - } - /** - * .Image diamondIcon = 2; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder() { - if (diamondIconBuilder_ != null) { - return diamondIconBuilder_.getMessageOrBuilder(); - } else { - return diamondIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; - } - } - /** - * .Image diamondIcon = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getDiamondIconFieldBuilder() { - if (diamondIconBuilder_ == null) { - diamondIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getDiamondIcon(), - getParentForChildren(), - isClean()); - diamondIcon_ = null; - } - return diamondIconBuilder_; - } - - private java.lang.Object name_ = ""; - /** - * string name = 3; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 3; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 3; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - name_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string name = 3; - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string name = 3; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; - /** - * .Image icon = 4; - * @return Whether the icon field is set. - */ - public boolean hasIcon() { - return ((bitField0_ & 0x00000008) != 0); - } - /** - * .Image icon = 4; - * @return The icon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { - if (iconBuilder_ == null) { - return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } else { - return iconBuilder_.getMessage(); - } - } - /** - * .Image icon = 4; - */ - public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - icon_ = value; - } else { - iconBuilder_.setMessage(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .Image icon = 4; - */ - public Builder setIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (iconBuilder_ == null) { - icon_ = builderForValue.build(); - } else { - iconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .Image icon = 4; - */ - public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (iconBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && - icon_ != null && - icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getIconBuilder().mergeFrom(value); - } else { - icon_ = value; - } - } else { - iconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .Image icon = 4; - */ - public Builder clearIcon() { - bitField0_ = (bitField0_ & ~0x00000008); - icon_ = null; - if (iconBuilder_ != null) { - iconBuilder_.dispose(); - iconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image icon = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { - bitField0_ |= 0x00000008; - onChanged(); - return getIconFieldBuilder().getBuilder(); - } - /** - * .Image icon = 4; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { - if (iconBuilder_ != null) { - return iconBuilder_.getMessageOrBuilder(); - } else { - return icon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; - } - } - /** - * .Image icon = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getIconFieldBuilder() { - if (iconBuilder_ == null) { - iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getIcon(), - getParentForChildren(), - isClean()); - icon_ = null; - } - return iconBuilder_; - } - - private java.lang.Object nextName_ = ""; - /** - * string nextName = 5; - * @return The nextName. - */ - public java.lang.String getNextName() { - java.lang.Object ref = nextName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nextName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string nextName = 5; - * @return The bytes for nextName. - */ - public com.google.protobuf.ByteString - getNextNameBytes() { - java.lang.Object ref = nextName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nextName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string nextName = 5; - * @param value The nextName to set. - * @return This builder for chaining. - */ - public Builder setNextName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - nextName_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string nextName = 5; - * @return This builder for chaining. - */ - public Builder clearNextName() { - nextName_ = getDefaultInstance().getNextName(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string nextName = 5; - * @param value The bytes for nextName to set. - * @return This builder for chaining. - */ - public Builder setNextNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - nextName_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - private long level_ ; - /** - * int64 level = 6; - * @return The level. - */ - @java.lang.Override - public long getLevel() { - return level_; - } - /** - * int64 level = 6; - * @param value The level to set. - * @return This builder for chaining. - */ - public Builder setLevel(long value) { - - level_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * int64 level = 6; - * @return This builder for chaining. - */ - public Builder clearLevel() { - bitField0_ = (bitField0_ & ~0x00000020); - level_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image nextIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> nextIconBuilder_; - /** - * .Image nextIcon = 7; - * @return Whether the nextIcon field is set. - */ - public boolean hasNextIcon() { - return ((bitField0_ & 0x00000040) != 0); - } - /** - * .Image nextIcon = 7; - * @return The nextIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon() { - if (nextIconBuilder_ == null) { - return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; - } else { - return nextIconBuilder_.getMessage(); - } - } - /** - * .Image nextIcon = 7; - */ - public Builder setNextIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (nextIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - nextIcon_ = value; - } else { - nextIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image nextIcon = 7; - */ - public Builder setNextIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (nextIconBuilder_ == null) { - nextIcon_ = builderForValue.build(); - } else { - nextIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image nextIcon = 7; - */ - public Builder mergeNextIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (nextIconBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0) && - nextIcon_ != null && - nextIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getNextIconBuilder().mergeFrom(value); - } else { - nextIcon_ = value; - } - } else { - nextIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .Image nextIcon = 7; - */ - public Builder clearNextIcon() { - bitField0_ = (bitField0_ & ~0x00000040); - nextIcon_ = null; - if (nextIconBuilder_ != null) { - nextIconBuilder_.dispose(); - nextIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image nextIcon = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNextIconBuilder() { - bitField0_ |= 0x00000040; - onChanged(); - return getNextIconFieldBuilder().getBuilder(); - } - /** - * .Image nextIcon = 7; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder() { - if (nextIconBuilder_ != null) { - return nextIconBuilder_.getMessageOrBuilder(); - } else { - return nextIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; - } - } - /** - * .Image nextIcon = 7; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getNextIconFieldBuilder() { - if (nextIconBuilder_ == null) { - nextIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getNextIcon(), - getParentForChildren(), - isClean()); - nextIcon_ = null; - } - return nextIconBuilder_; - } - - private long nextDiamond_ ; - /** - * int64 nextDiamond = 8; - * @return The nextDiamond. - */ - @java.lang.Override - public long getNextDiamond() { - return nextDiamond_; - } - /** - * int64 nextDiamond = 8; - * @param value The nextDiamond to set. - * @return This builder for chaining. - */ - public Builder setNextDiamond(long value) { - - nextDiamond_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * int64 nextDiamond = 8; - * @return This builder for chaining. - */ - public Builder clearNextDiamond() { - bitField0_ = (bitField0_ & ~0x00000080); - nextDiamond_ = 0L; - onChanged(); - return this; - } - - private long nowDiamond_ ; - /** - * int64 nowDiamond = 9; - * @return The nowDiamond. - */ - @java.lang.Override - public long getNowDiamond() { - return nowDiamond_; - } - /** - * int64 nowDiamond = 9; - * @param value The nowDiamond to set. - * @return This builder for chaining. - */ - public Builder setNowDiamond(long value) { - - nowDiamond_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * int64 nowDiamond = 9; - * @return This builder for chaining. - */ - public Builder clearNowDiamond() { - bitField0_ = (bitField0_ & ~0x00000100); - nowDiamond_ = 0L; - onChanged(); - return this; - } - - private long thisGradeMinDiamond_ ; - /** - * int64 thisGradeMinDiamond = 10; - * @return The thisGradeMinDiamond. - */ - @java.lang.Override - public long getThisGradeMinDiamond() { - return thisGradeMinDiamond_; - } - /** - * int64 thisGradeMinDiamond = 10; - * @param value The thisGradeMinDiamond to set. - * @return This builder for chaining. - */ - public Builder setThisGradeMinDiamond(long value) { - - thisGradeMinDiamond_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * int64 thisGradeMinDiamond = 10; - * @return This builder for chaining. - */ - public Builder clearThisGradeMinDiamond() { - bitField0_ = (bitField0_ & ~0x00000200); - thisGradeMinDiamond_ = 0L; - onChanged(); - return this; - } - - private long thisGradeMaxDiamond_ ; - /** - * int64 thisGradeMaxDiamond = 11; - * @return The thisGradeMaxDiamond. - */ - @java.lang.Override - public long getThisGradeMaxDiamond() { - return thisGradeMaxDiamond_; - } - /** - * int64 thisGradeMaxDiamond = 11; - * @param value The thisGradeMaxDiamond to set. - * @return This builder for chaining. - */ - public Builder setThisGradeMaxDiamond(long value) { - - thisGradeMaxDiamond_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * int64 thisGradeMaxDiamond = 11; - * @return This builder for chaining. - */ - public Builder clearThisGradeMaxDiamond() { - bitField0_ = (bitField0_ & ~0x00000400); - thisGradeMaxDiamond_ = 0L; - onChanged(); - return this; - } - - private long payDiamondBak_ ; - /** - * int64 payDiamondBak = 12; - * @return The payDiamondBak. - */ - @java.lang.Override - public long getPayDiamondBak() { - return payDiamondBak_; - } - /** - * int64 payDiamondBak = 12; - * @param value The payDiamondBak to set. - * @return This builder for chaining. - */ - public Builder setPayDiamondBak(long value) { - - payDiamondBak_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * int64 payDiamondBak = 12; - * @return This builder for chaining. - */ - public Builder clearPayDiamondBak() { - bitField0_ = (bitField0_ & ~0x00000800); - payDiamondBak_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object gradeDescribe_ = ""; - /** - * string gradeDescribe = 13; - * @return The gradeDescribe. - */ - public java.lang.String getGradeDescribe() { - java.lang.Object ref = gradeDescribe_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - gradeDescribe_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string gradeDescribe = 13; - * @return The bytes for gradeDescribe. - */ - public com.google.protobuf.ByteString - getGradeDescribeBytes() { - java.lang.Object ref = gradeDescribe_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - gradeDescribe_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string gradeDescribe = 13; - * @param value The gradeDescribe to set. - * @return This builder for chaining. - */ - public Builder setGradeDescribe( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - gradeDescribe_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * string gradeDescribe = 13; - * @return This builder for chaining. - */ - public Builder clearGradeDescribe() { - gradeDescribe_ = getDefaultInstance().getGradeDescribe(); - bitField0_ = (bitField0_ & ~0x00001000); - onChanged(); - return this; - } - /** - * string gradeDescribe = 13; - * @param value The bytes for gradeDescribe to set. - * @return This builder for chaining. - */ - public Builder setGradeDescribeBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - gradeDescribe_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - - private java.util.List gradeIconList_ = - java.util.Collections.emptyList(); - private void ensureGradeIconListIsMutable() { - if (!((bitField0_ & 0x00002000) != 0)) { - gradeIconList_ = new java.util.ArrayList(gradeIconList_); - bitField0_ |= 0x00002000; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder> gradeIconListBuilder_; - - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public java.util.List getGradeIconListList() { - if (gradeIconListBuilder_ == null) { - return java.util.Collections.unmodifiableList(gradeIconList_); - } else { - return gradeIconListBuilder_.getMessageList(); - } - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public int getGradeIconListCount() { - if (gradeIconListBuilder_ == null) { - return gradeIconList_.size(); - } else { - return gradeIconListBuilder_.getCount(); - } - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index) { - if (gradeIconListBuilder_ == null) { - return gradeIconList_.get(index); - } else { - return gradeIconListBuilder_.getMessage(index); - } - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder setGradeIconList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { - if (gradeIconListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGradeIconListIsMutable(); - gradeIconList_.set(index, value); - onChanged(); - } else { - gradeIconListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder setGradeIconList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - gradeIconList_.set(index, builderForValue.build()); - onChanged(); - } else { - gradeIconListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder addGradeIconList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { - if (gradeIconListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGradeIconListIsMutable(); - gradeIconList_.add(value); - onChanged(); - } else { - gradeIconListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder addGradeIconList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { - if (gradeIconListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGradeIconListIsMutable(); - gradeIconList_.add(index, value); - onChanged(); - } else { - gradeIconListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder addGradeIconList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - gradeIconList_.add(builderForValue.build()); - onChanged(); - } else { - gradeIconListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder addGradeIconList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - gradeIconList_.add(index, builderForValue.build()); - onChanged(); - } else { - gradeIconListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder addAllGradeIconList( - java.lang.Iterable values) { - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, gradeIconList_); - onChanged(); - } else { - gradeIconListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder clearGradeIconList() { - if (gradeIconListBuilder_ == null) { - gradeIconList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00002000); - onChanged(); - } else { - gradeIconListBuilder_.clear(); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public Builder removeGradeIconList(int index) { - if (gradeIconListBuilder_ == null) { - ensureGradeIconListIsMutable(); - gradeIconList_.remove(index); - onChanged(); - } else { - gradeIconListBuilder_.remove(index); - } - return this; - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder getGradeIconListBuilder( - int index) { - return getGradeIconListFieldBuilder().getBuilder(index); - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( - int index) { - if (gradeIconListBuilder_ == null) { - return gradeIconList_.get(index); } else { - return gradeIconListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public java.util.List - getGradeIconListOrBuilderList() { - if (gradeIconListBuilder_ != null) { - return gradeIconListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(gradeIconList_); - } - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder addGradeIconListBuilder() { - return getGradeIconListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()); - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder addGradeIconListBuilder( - int index) { - return getGradeIconListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()); - } - /** - * repeated .User.PayGrade.GradeIcon gradeIconList = 14; - */ - public java.util.List - getGradeIconListBuilderList() { - return getGradeIconListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder> - getGradeIconListFieldBuilder() { - if (gradeIconListBuilder_ == null) { - gradeIconListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder>( - gradeIconList_, - ((bitField0_ & 0x00002000) != 0), - getParentForChildren(), - isClean()); - gradeIconList_ = null; - } - return gradeIconListBuilder_; - } - - private long screenChatType_ ; - /** - * int64 screenChatType = 15; - * @return The screenChatType. - */ - @java.lang.Override - public long getScreenChatType() { - return screenChatType_; - } - /** - * int64 screenChatType = 15; - * @param value The screenChatType to set. - * @return This builder for chaining. - */ - public Builder setScreenChatType(long value) { - - screenChatType_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * int64 screenChatType = 15; - * @return This builder for chaining. - */ - public Builder clearScreenChatType() { - bitField0_ = (bitField0_ & ~0x00004000); - screenChatType_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imIconBuilder_; - /** - * .Image imIcon = 16; - * @return Whether the imIcon field is set. - */ - public boolean hasImIcon() { - return ((bitField0_ & 0x00008000) != 0); - } - /** - * .Image imIcon = 16; - * @return The imIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon() { - if (imIconBuilder_ == null) { - return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; - } else { - return imIconBuilder_.getMessage(); - } - } - /** - * .Image imIcon = 16; - */ - public Builder setImIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - imIcon_ = value; - } else { - imIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Image imIcon = 16; - */ - public Builder setImIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (imIconBuilder_ == null) { - imIcon_ = builderForValue.build(); - } else { - imIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Image imIcon = 16; - */ - public Builder mergeImIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imIconBuilder_ == null) { - if (((bitField0_ & 0x00008000) != 0) && - imIcon_ != null && - imIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getImIconBuilder().mergeFrom(value); - } else { - imIcon_ = value; - } - } else { - imIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .Image imIcon = 16; - */ - public Builder clearImIcon() { - bitField0_ = (bitField0_ & ~0x00008000); - imIcon_ = null; - if (imIconBuilder_ != null) { - imIconBuilder_.dispose(); - imIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image imIcon = 16; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImIconBuilder() { - bitField0_ |= 0x00008000; - onChanged(); - return getImIconFieldBuilder().getBuilder(); - } - /** - * .Image imIcon = 16; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder() { - if (imIconBuilder_ != null) { - return imIconBuilder_.getMessageOrBuilder(); - } else { - return imIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; - } - } - /** - * .Image imIcon = 16; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getImIconFieldBuilder() { - if (imIconBuilder_ == null) { - imIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getImIcon(), - getParentForChildren(), - isClean()); - imIcon_ = null; - } - return imIconBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIconWithLevel_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imIconWithLevelBuilder_; - /** - * .Image imIconWithLevel = 17; - * @return Whether the imIconWithLevel field is set. - */ - public boolean hasImIconWithLevel() { - return ((bitField0_ & 0x00010000) != 0); - } - /** - * .Image imIconWithLevel = 17; - * @return The imIconWithLevel. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel() { - if (imIconWithLevelBuilder_ == null) { - return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; - } else { - return imIconWithLevelBuilder_.getMessage(); - } - } - /** - * .Image imIconWithLevel = 17; - */ - public Builder setImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imIconWithLevelBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - imIconWithLevel_ = value; - } else { - imIconWithLevelBuilder_.setMessage(value); - } - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .Image imIconWithLevel = 17; - */ - public Builder setImIconWithLevel( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (imIconWithLevelBuilder_ == null) { - imIconWithLevel_ = builderForValue.build(); - } else { - imIconWithLevelBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .Image imIconWithLevel = 17; - */ - public Builder mergeImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (imIconWithLevelBuilder_ == null) { - if (((bitField0_ & 0x00010000) != 0) && - imIconWithLevel_ != null && - imIconWithLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getImIconWithLevelBuilder().mergeFrom(value); - } else { - imIconWithLevel_ = value; - } - } else { - imIconWithLevelBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .Image imIconWithLevel = 17; - */ - public Builder clearImIconWithLevel() { - bitField0_ = (bitField0_ & ~0x00010000); - imIconWithLevel_ = null; - if (imIconWithLevelBuilder_ != null) { - imIconWithLevelBuilder_.dispose(); - imIconWithLevelBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image imIconWithLevel = 17; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImIconWithLevelBuilder() { - bitField0_ |= 0x00010000; - onChanged(); - return getImIconWithLevelFieldBuilder().getBuilder(); - } - /** - * .Image imIconWithLevel = 17; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder() { - if (imIconWithLevelBuilder_ != null) { - return imIconWithLevelBuilder_.getMessageOrBuilder(); - } else { - return imIconWithLevel_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; - } - } - /** - * .Image imIconWithLevel = 17; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getImIconWithLevelFieldBuilder() { - if (imIconWithLevelBuilder_ == null) { - imIconWithLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getImIconWithLevel(), - getParentForChildren(), - isClean()); - imIconWithLevel_ = null; - } - return imIconWithLevelBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image liveIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> liveIconBuilder_; - /** - * .Image liveIcon = 18; - * @return Whether the liveIcon field is set. - */ - public boolean hasLiveIcon() { - return ((bitField0_ & 0x00020000) != 0); - } - /** - * .Image liveIcon = 18; - * @return The liveIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon() { - if (liveIconBuilder_ == null) { - return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; - } else { - return liveIconBuilder_.getMessage(); - } - } - /** - * .Image liveIcon = 18; - */ - public Builder setLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (liveIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - liveIcon_ = value; - } else { - liveIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .Image liveIcon = 18; - */ - public Builder setLiveIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (liveIconBuilder_ == null) { - liveIcon_ = builderForValue.build(); - } else { - liveIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .Image liveIcon = 18; - */ - public Builder mergeLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (liveIconBuilder_ == null) { - if (((bitField0_ & 0x00020000) != 0) && - liveIcon_ != null && - liveIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getLiveIconBuilder().mergeFrom(value); - } else { - liveIcon_ = value; - } - } else { - liveIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .Image liveIcon = 18; - */ - public Builder clearLiveIcon() { - bitField0_ = (bitField0_ & ~0x00020000); - liveIcon_ = null; - if (liveIconBuilder_ != null) { - liveIconBuilder_.dispose(); - liveIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image liveIcon = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getLiveIconBuilder() { - bitField0_ |= 0x00020000; - onChanged(); - return getLiveIconFieldBuilder().getBuilder(); - } - /** - * .Image liveIcon = 18; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder() { - if (liveIconBuilder_ != null) { - return liveIconBuilder_.getMessageOrBuilder(); - } else { - return liveIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; - } - } - /** - * .Image liveIcon = 18; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getLiveIconFieldBuilder() { - if (liveIconBuilder_ == null) { - liveIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getLiveIcon(), - getParentForChildren(), - isClean()); - liveIcon_ = null; - } - return liveIconBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newImIconWithLevel_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newImIconWithLevelBuilder_; - /** - * .Image newImIconWithLevel = 19; - * @return Whether the newImIconWithLevel field is set. - */ - public boolean hasNewImIconWithLevel() { - return ((bitField0_ & 0x00040000) != 0); - } - /** - * .Image newImIconWithLevel = 19; - * @return The newImIconWithLevel. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel() { - if (newImIconWithLevelBuilder_ == null) { - return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; - } else { - return newImIconWithLevelBuilder_.getMessage(); - } - } - /** - * .Image newImIconWithLevel = 19; - */ - public Builder setNewImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newImIconWithLevelBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - newImIconWithLevel_ = value; - } else { - newImIconWithLevelBuilder_.setMessage(value); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Image newImIconWithLevel = 19; - */ - public Builder setNewImIconWithLevel( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (newImIconWithLevelBuilder_ == null) { - newImIconWithLevel_ = builderForValue.build(); - } else { - newImIconWithLevelBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Image newImIconWithLevel = 19; - */ - public Builder mergeNewImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newImIconWithLevelBuilder_ == null) { - if (((bitField0_ & 0x00040000) != 0) && - newImIconWithLevel_ != null && - newImIconWithLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getNewImIconWithLevelBuilder().mergeFrom(value); - } else { - newImIconWithLevel_ = value; - } - } else { - newImIconWithLevelBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .Image newImIconWithLevel = 19; - */ - public Builder clearNewImIconWithLevel() { - bitField0_ = (bitField0_ & ~0x00040000); - newImIconWithLevel_ = null; - if (newImIconWithLevelBuilder_ != null) { - newImIconWithLevelBuilder_.dispose(); - newImIconWithLevelBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image newImIconWithLevel = 19; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewImIconWithLevelBuilder() { - bitField0_ |= 0x00040000; - onChanged(); - return getNewImIconWithLevelFieldBuilder().getBuilder(); - } - /** - * .Image newImIconWithLevel = 19; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder() { - if (newImIconWithLevelBuilder_ != null) { - return newImIconWithLevelBuilder_.getMessageOrBuilder(); - } else { - return newImIconWithLevel_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; - } - } - /** - * .Image newImIconWithLevel = 19; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getNewImIconWithLevelFieldBuilder() { - if (newImIconWithLevelBuilder_ == null) { - newImIconWithLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getNewImIconWithLevel(), - getParentForChildren(), - isClean()); - newImIconWithLevel_ = null; - } - return newImIconWithLevelBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newLiveIcon_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newLiveIconBuilder_; - /** - * .Image newLiveIcon = 20; - * @return Whether the newLiveIcon field is set. - */ - public boolean hasNewLiveIcon() { - return ((bitField0_ & 0x00080000) != 0); - } - /** - * .Image newLiveIcon = 20; - * @return The newLiveIcon. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon() { - if (newLiveIconBuilder_ == null) { - return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; - } else { - return newLiveIconBuilder_.getMessage(); - } - } - /** - * .Image newLiveIcon = 20; - */ - public Builder setNewLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newLiveIconBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - newLiveIcon_ = value; - } else { - newLiveIconBuilder_.setMessage(value); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image newLiveIcon = 20; - */ - public Builder setNewLiveIcon( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (newLiveIconBuilder_ == null) { - newLiveIcon_ = builderForValue.build(); - } else { - newLiveIconBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image newLiveIcon = 20; - */ - public Builder mergeNewLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newLiveIconBuilder_ == null) { - if (((bitField0_ & 0x00080000) != 0) && - newLiveIcon_ != null && - newLiveIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getNewLiveIconBuilder().mergeFrom(value); - } else { - newLiveIcon_ = value; - } - } else { - newLiveIconBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image newLiveIcon = 20; - */ - public Builder clearNewLiveIcon() { - bitField0_ = (bitField0_ & ~0x00080000); - newLiveIcon_ = null; - if (newLiveIconBuilder_ != null) { - newLiveIconBuilder_.dispose(); - newLiveIconBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image newLiveIcon = 20; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewLiveIconBuilder() { - bitField0_ |= 0x00080000; - onChanged(); - return getNewLiveIconFieldBuilder().getBuilder(); - } - /** - * .Image newLiveIcon = 20; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder() { - if (newLiveIconBuilder_ != null) { - return newLiveIconBuilder_.getMessageOrBuilder(); - } else { - return newLiveIcon_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; - } - } - /** - * .Image newLiveIcon = 20; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getNewLiveIconFieldBuilder() { - if (newLiveIconBuilder_ == null) { - newLiveIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getNewLiveIcon(), - getParentForChildren(), - isClean()); - newLiveIcon_ = null; - } - return newLiveIconBuilder_; - } - - private long upgradeNeedConsume_ ; - /** - * int64 upgradeNeedConsume = 21; - * @return The upgradeNeedConsume. - */ - @java.lang.Override - public long getUpgradeNeedConsume() { - return upgradeNeedConsume_; - } - /** - * int64 upgradeNeedConsume = 21; - * @param value The upgradeNeedConsume to set. - * @return This builder for chaining. - */ - public Builder setUpgradeNeedConsume(long value) { - - upgradeNeedConsume_ = value; - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * int64 upgradeNeedConsume = 21; - * @return This builder for chaining. - */ - public Builder clearUpgradeNeedConsume() { - bitField0_ = (bitField0_ & ~0x00100000); - upgradeNeedConsume_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object nextPrivileges_ = ""; - /** - * string nextPrivileges = 22; - * @return The nextPrivileges. - */ - public java.lang.String getNextPrivileges() { - java.lang.Object ref = nextPrivileges_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nextPrivileges_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string nextPrivileges = 22; - * @return The bytes for nextPrivileges. - */ - public com.google.protobuf.ByteString - getNextPrivilegesBytes() { - java.lang.Object ref = nextPrivileges_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nextPrivileges_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string nextPrivileges = 22; - * @param value The nextPrivileges to set. - * @return This builder for chaining. - */ - public Builder setNextPrivileges( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - nextPrivileges_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * string nextPrivileges = 22; - * @return This builder for chaining. - */ - public Builder clearNextPrivileges() { - nextPrivileges_ = getDefaultInstance().getNextPrivileges(); - bitField0_ = (bitField0_ & ~0x00200000); - onChanged(); - return this; - } - /** - * string nextPrivileges = 22; - * @param value The bytes for nextPrivileges to set. - * @return This builder for chaining. - */ - public Builder setNextPrivilegesBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - nextPrivileges_ = value; - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBuilder_; - /** - * .Image background = 23; - * @return Whether the background field is set. - */ - public boolean hasBackground() { - return ((bitField0_ & 0x00400000) != 0); - } - /** - * .Image background = 23; - * @return The background. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { - if (backgroundBuilder_ == null) { - return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } else { - return backgroundBuilder_.getMessage(); - } - } - /** - * .Image background = 23; - */ - public Builder setBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - background_ = value; - } else { - backgroundBuilder_.setMessage(value); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .Image background = 23; - */ - public Builder setBackground( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundBuilder_ == null) { - background_ = builderForValue.build(); - } else { - backgroundBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .Image background = 23; - */ - public Builder mergeBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBuilder_ == null) { - if (((bitField0_ & 0x00400000) != 0) && - background_ != null && - background_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundBuilder().mergeFrom(value); - } else { - background_ = value; - } - } else { - backgroundBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .Image background = 23; - */ - public Builder clearBackground() { - bitField0_ = (bitField0_ & ~0x00400000); - background_ = null; - if (backgroundBuilder_ != null) { - backgroundBuilder_.dispose(); - backgroundBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image background = 23; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBuilder() { - bitField0_ |= 0x00400000; - onChanged(); - return getBackgroundFieldBuilder().getBuilder(); - } - /** - * .Image background = 23; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { - if (backgroundBuilder_ != null) { - return backgroundBuilder_.getMessageOrBuilder(); - } else { - return background_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; - } - } - /** - * .Image background = 23; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundFieldBuilder() { - if (backgroundBuilder_ == null) { - backgroundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackground(), - getParentForChildren(), - isClean()); - background_ = null; - } - return backgroundBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundBack_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBackBuilder_; - /** - * .Image backgroundBack = 24; - * @return Whether the backgroundBack field is set. - */ - public boolean hasBackgroundBack() { - return ((bitField0_ & 0x00800000) != 0); - } - /** - * .Image backgroundBack = 24; - * @return The backgroundBack. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack() { - if (backgroundBackBuilder_ == null) { - return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; - } else { - return backgroundBackBuilder_.getMessage(); - } - } - /** - * .Image backgroundBack = 24; - */ - public Builder setBackgroundBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBackBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - backgroundBack_ = value; - } else { - backgroundBackBuilder_.setMessage(value); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .Image backgroundBack = 24; - */ - public Builder setBackgroundBack( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (backgroundBackBuilder_ == null) { - backgroundBack_ = builderForValue.build(); - } else { - backgroundBackBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .Image backgroundBack = 24; - */ - public Builder mergeBackgroundBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (backgroundBackBuilder_ == null) { - if (((bitField0_ & 0x00800000) != 0) && - backgroundBack_ != null && - backgroundBack_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBackgroundBackBuilder().mergeFrom(value); - } else { - backgroundBack_ = value; - } - } else { - backgroundBackBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .Image backgroundBack = 24; - */ - public Builder clearBackgroundBack() { - bitField0_ = (bitField0_ & ~0x00800000); - backgroundBack_ = null; - if (backgroundBackBuilder_ != null) { - backgroundBackBuilder_.dispose(); - backgroundBackBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image backgroundBack = 24; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBackBuilder() { - bitField0_ |= 0x00800000; - onChanged(); - return getBackgroundBackFieldBuilder().getBuilder(); - } - /** - * .Image backgroundBack = 24; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder() { - if (backgroundBackBuilder_ != null) { - return backgroundBackBuilder_.getMessageOrBuilder(); - } else { - return backgroundBack_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; - } - } - /** - * .Image backgroundBack = 24; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBackgroundBackFieldBuilder() { - if (backgroundBackBuilder_ == null) { - backgroundBackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBackgroundBack(), - getParentForChildren(), - isClean()); - backgroundBack_ = null; - } - return backgroundBackBuilder_; - } - - private long score_ ; - /** - * int64 score = 25; - * @return The score. - */ - @java.lang.Override - public long getScore() { - return score_; - } - /** - * int64 score = 25; - * @param value The score to set. - * @return This builder for chaining. - */ - public Builder setScore(long value) { - - score_ = value; - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * int64 score = 25; - * @return This builder for chaining. - */ - public Builder clearScore() { - bitField0_ = (bitField0_ & ~0x01000000); - score_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object gradeBanner_ = ""; - /** - *
-         * GradeBuffInfo buffInfo = 26;
-         * 
- * - * string gradeBanner = 1001; - * @return The gradeBanner. - */ - public java.lang.String getGradeBanner() { - java.lang.Object ref = gradeBanner_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - gradeBanner_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-         * GradeBuffInfo buffInfo = 26;
-         * 
- * - * string gradeBanner = 1001; - * @return The bytes for gradeBanner. - */ - public com.google.protobuf.ByteString - getGradeBannerBytes() { - java.lang.Object ref = gradeBanner_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - gradeBanner_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-         * GradeBuffInfo buffInfo = 26;
-         * 
- * - * string gradeBanner = 1001; - * @param value The gradeBanner to set. - * @return This builder for chaining. - */ - public Builder setGradeBanner( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - gradeBanner_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - /** - *
-         * GradeBuffInfo buffInfo = 26;
-         * 
- * - * string gradeBanner = 1001; - * @return This builder for chaining. - */ - public Builder clearGradeBanner() { - gradeBanner_ = getDefaultInstance().getGradeBanner(); - bitField0_ = (bitField0_ & ~0x02000000); - onChanged(); - return this; - } - /** - *
-         * GradeBuffInfo buffInfo = 26;
-         * 
- * - * string gradeBanner = 1001; - * @param value The bytes for gradeBanner to set. - * @return This builder for chaining. - */ - public Builder setGradeBannerBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - gradeBanner_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBg_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> profileDialogBgBuilder_; - /** - * .Image profileDialogBg = 1002; - * @return Whether the profileDialogBg field is set. - */ - public boolean hasProfileDialogBg() { - return ((bitField0_ & 0x04000000) != 0); - } - /** - * .Image profileDialogBg = 1002; - * @return The profileDialogBg. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg() { - if (profileDialogBgBuilder_ == null) { - return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; - } else { - return profileDialogBgBuilder_.getMessage(); - } - } - /** - * .Image profileDialogBg = 1002; - */ - public Builder setProfileDialogBg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (profileDialogBgBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - profileDialogBg_ = value; - } else { - profileDialogBgBuilder_.setMessage(value); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBg = 1002; - */ - public Builder setProfileDialogBg( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (profileDialogBgBuilder_ == null) { - profileDialogBg_ = builderForValue.build(); - } else { - profileDialogBgBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBg = 1002; - */ - public Builder mergeProfileDialogBg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (profileDialogBgBuilder_ == null) { - if (((bitField0_ & 0x04000000) != 0) && - profileDialogBg_ != null && - profileDialogBg_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getProfileDialogBgBuilder().mergeFrom(value); - } else { - profileDialogBg_ = value; - } - } else { - profileDialogBgBuilder_.mergeFrom(value); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBg = 1002; - */ - public Builder clearProfileDialogBg() { - bitField0_ = (bitField0_ & ~0x04000000); - profileDialogBg_ = null; - if (profileDialogBgBuilder_ != null) { - profileDialogBgBuilder_.dispose(); - profileDialogBgBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image profileDialogBg = 1002; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getProfileDialogBgBuilder() { - bitField0_ |= 0x04000000; - onChanged(); - return getProfileDialogBgFieldBuilder().getBuilder(); - } - /** - * .Image profileDialogBg = 1002; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder() { - if (profileDialogBgBuilder_ != null) { - return profileDialogBgBuilder_.getMessageOrBuilder(); - } else { - return profileDialogBg_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; - } - } - /** - * .Image profileDialogBg = 1002; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getProfileDialogBgFieldBuilder() { - if (profileDialogBgBuilder_ == null) { - profileDialogBgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getProfileDialogBg(), - getParentForChildren(), - isClean()); - profileDialogBg_ = null; - } - return profileDialogBgBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBgBack_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> profileDialogBgBackBuilder_; - /** - * .Image profileDialogBgBack = 1003; - * @return Whether the profileDialogBgBack field is set. - */ - public boolean hasProfileDialogBgBack() { - return ((bitField0_ & 0x08000000) != 0); - } - /** - * .Image profileDialogBgBack = 1003; - * @return The profileDialogBgBack. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack() { - if (profileDialogBgBackBuilder_ == null) { - return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; - } else { - return profileDialogBgBackBuilder_.getMessage(); - } - } - /** - * .Image profileDialogBgBack = 1003; - */ - public Builder setProfileDialogBgBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (profileDialogBgBackBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - profileDialogBgBack_ = value; - } else { - profileDialogBgBackBuilder_.setMessage(value); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBgBack = 1003; - */ - public Builder setProfileDialogBgBack( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (profileDialogBgBackBuilder_ == null) { - profileDialogBgBack_ = builderForValue.build(); - } else { - profileDialogBgBackBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBgBack = 1003; - */ - public Builder mergeProfileDialogBgBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (profileDialogBgBackBuilder_ == null) { - if (((bitField0_ & 0x08000000) != 0) && - profileDialogBgBack_ != null && - profileDialogBgBack_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getProfileDialogBgBackBuilder().mergeFrom(value); - } else { - profileDialogBgBack_ = value; - } - } else { - profileDialogBgBackBuilder_.mergeFrom(value); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image profileDialogBgBack = 1003; - */ - public Builder clearProfileDialogBgBack() { - bitField0_ = (bitField0_ & ~0x08000000); - profileDialogBgBack_ = null; - if (profileDialogBgBackBuilder_ != null) { - profileDialogBgBackBuilder_.dispose(); - profileDialogBgBackBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image profileDialogBgBack = 1003; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getProfileDialogBgBackBuilder() { - bitField0_ |= 0x08000000; - onChanged(); - return getProfileDialogBgBackFieldBuilder().getBuilder(); - } - /** - * .Image profileDialogBgBack = 1003; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder() { - if (profileDialogBgBackBuilder_ != null) { - return profileDialogBgBackBuilder_.getMessageOrBuilder(); - } else { - return profileDialogBgBack_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; - } - } - /** - * .Image profileDialogBgBack = 1003; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getProfileDialogBgBackFieldBuilder() { - if (profileDialogBgBackBuilder_ == null) { - profileDialogBgBackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getProfileDialogBgBack(), - getParentForChildren(), - isClean()); - profileDialogBgBack_ = null; - } - return profileDialogBgBackBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.PayGrade) - } - - // @@protoc_insertion_point(class_scope:User.PayGrade) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PayGrade parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface PoiInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.PoiInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.PoiInfo} - */ - public static final class PoiInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.PoiInfo) - PoiInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use PoiInfo.newBuilder() to construct. - private PoiInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PoiInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PoiInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.PoiInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.PoiInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.PoiInfo) - } - - // @@protoc_insertion_point(class_scope:User.PoiInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PoiInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface ProfileStyleParamsOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.ProfileStyleParams) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.ProfileStyleParams} - */ - public static final class ProfileStyleParams extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.ProfileStyleParams) - ProfileStyleParamsOrBuilder { - private static final long serialVersionUID = 0L; - // Use ProfileStyleParams.newBuilder() to construct. - private ProfileStyleParams(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ProfileStyleParams() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ProfileStyleParams(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.ProfileStyleParams} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.ProfileStyleParams) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.ProfileStyleParams) - } - - // @@protoc_insertion_point(class_scope:User.ProfileStyleParams) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ProfileStyleParams parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface SubscribeOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.Subscribe) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.Subscribe} - */ - public static final class Subscribe extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.Subscribe) - SubscribeOrBuilder { - private static final long serialVersionUID = 0L; - // Use Subscribe.newBuilder() to construct. - private Subscribe(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private Subscribe() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new Subscribe(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.Subscribe} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.Subscribe) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.Subscribe) - } - - // @@protoc_insertion_point(class_scope:User.Subscribe) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Subscribe parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface UserAttrOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.UserAttr) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.UserAttr} - */ - public static final class UserAttr extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.UserAttr) - UserAttrOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserAttr.newBuilder() to construct. - private UserAttr(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserAttr() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserAttr(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.UserAttr} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.UserAttr) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.UserAttr) - } - - // @@protoc_insertion_point(class_scope:User.UserAttr) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserAttr parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface UserDressInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.UserDressInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.UserDressInfo} - */ - public static final class UserDressInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.UserDressInfo) - UserDressInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserDressInfo.newBuilder() to construct. - private UserDressInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserDressInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserDressInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.UserDressInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.UserDressInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.UserDressInfo) - } - - // @@protoc_insertion_point(class_scope:User.UserDressInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserDressInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface UserVIPInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.UserVIPInfo) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.UserVIPInfo} - */ - public static final class UserVIPInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.UserVIPInfo) - UserVIPInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserVIPInfo.newBuilder() to construct. - private UserVIPInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserVIPInfo() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserVIPInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.UserVIPInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.UserVIPInfo) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.UserVIPInfo) - } - - // @@protoc_insertion_point(class_scope:User.UserVIPInfo) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserVIPInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface UserStatsOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.UserStats) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.UserStats} - */ - public static final class UserStats extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.UserStats) - UserStatsOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserStats.newBuilder() to construct. - private UserStats(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserStats() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserStats(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.UserStats} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.UserStats) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.UserStats) - } - - // @@protoc_insertion_point(class_scope:User.UserStats) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserStats parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface XiguaParamsOrBuilder extends - // @@protoc_insertion_point(interface_extends:User.XiguaParams) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code User.XiguaParams} - */ - public static final class XiguaParams extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:User.XiguaParams) - XiguaParamsOrBuilder { - private static final long serialVersionUID = 0L; - // Use XiguaParams.newBuilder() to construct. - private XiguaParams(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private XiguaParams() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new XiguaParams(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User.XiguaParams} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User.XiguaParams) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User.XiguaParams) - } - - // @@protoc_insertion_point(class_scope:User.XiguaParams) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public XiguaParams parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public static final int ID_FIELD_NUMBER = 1; - private long id_ = 0L; - /** - * uint64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - - public static final int SHORTID_FIELD_NUMBER = 2; - private long shortId_ = 0L; - /** - * uint64 shortId = 2; - * @return The shortId. - */ - @java.lang.Override - public long getShortId() { - return shortId_; - } - - public static final int NICKNAME_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object nickname_ = ""; - /** - * string nickname = 3; - * @return The nickname. - */ - @java.lang.Override - public java.lang.String getNickname() { - java.lang.Object ref = nickname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nickname_ = s; - return s; - } - } - /** - * string nickname = 3; - * @return The bytes for nickname. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNicknameBytes() { - java.lang.Object ref = nickname_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int GENDER_FIELD_NUMBER = 4; - private int gender_ = 0; - /** - * uint32 gender = 4; - * @return The gender. - */ - @java.lang.Override - public int getGender() { - return gender_; - } - - public static final int SIGNATURE_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object signature_ = ""; - /** - * string signature = 5; - * @return The signature. - */ - @java.lang.Override - public java.lang.String getSignature() { - java.lang.Object ref = signature_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - signature_ = s; - return s; - } - } - /** - * string signature = 5; - * @return The bytes for signature. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSignatureBytes() { - java.lang.Object ref = signature_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - signature_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LEVEL_FIELD_NUMBER = 6; - private int level_ = 0; - /** - * uint32 level = 6; - * @return The level. - */ - @java.lang.Override - public int getLevel() { - return level_; - } - - public static final int BIRTHDAY_FIELD_NUMBER = 7; - private long birthday_ = 0L; - /** - * uint64 birthday = 7; - * @return The birthday. - */ - @java.lang.Override - public long getBirthday() { - return birthday_; - } - - public static final int TELEPHONE_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private volatile java.lang.Object telephone_ = ""; - /** - * string telephone = 8; - * @return The telephone. - */ - @java.lang.Override - public java.lang.String getTelephone() { - java.lang.Object ref = telephone_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - telephone_ = s; - return s; - } - } - /** - * string telephone = 8; - * @return The bytes for telephone. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTelephoneBytes() { - java.lang.Object ref = telephone_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - telephone_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int AVATARTHUMB_FIELD_NUMBER = 9; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarThumb_; - /** - * .Image avatarThumb = 9; - * @return Whether the avatarThumb field is set. - */ - @java.lang.Override - public boolean hasAvatarThumb() { - return avatarThumb_ != null; - } - /** - * .Image avatarThumb = 9; - * @return The avatarThumb. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb() { - return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; - } - /** - * .Image avatarThumb = 9; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder() { - return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; - } - - public static final int AVATARMEDIUM_FIELD_NUMBER = 10; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarMedium_; - /** - * .Image avatarMedium = 10; - * @return Whether the avatarMedium field is set. - */ - @java.lang.Override - public boolean hasAvatarMedium() { - return avatarMedium_ != null; - } - /** - * .Image avatarMedium = 10; - * @return The avatarMedium. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium() { - return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; - } - /** - * .Image avatarMedium = 10; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder() { - return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; - } - - public static final int AVATARLARGE_FIELD_NUMBER = 11; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarLarge_; - /** - * .Image avatarLarge = 11; - * @return Whether the avatarLarge field is set. - */ - @java.lang.Override - public boolean hasAvatarLarge() { - return avatarLarge_ != null; - } - /** - * .Image avatarLarge = 11; - * @return The avatarLarge. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge() { - return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; - } - /** - * .Image avatarLarge = 11; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder() { - return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; - } - - public static final int VERIFIED_FIELD_NUMBER = 12; - private boolean verified_ = false; - /** - * bool verified = 12; - * @return The verified. - */ - @java.lang.Override - public boolean getVerified() { - return verified_; - } - - public static final int EXPERIENCE_FIELD_NUMBER = 13; - private int experience_ = 0; - /** - * int32 experience = 13; - * @return The experience. - */ - @java.lang.Override - public int getExperience() { - return experience_; - } - - public static final int CITY_FIELD_NUMBER = 14; - @SuppressWarnings("serial") - private volatile java.lang.Object city_ = ""; - /** - * string city = 14; - * @return The city. - */ - @java.lang.Override - public java.lang.String getCity() { - java.lang.Object ref = city_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - city_ = s; - return s; - } - } - /** - * string city = 14; - * @return The bytes for city. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCityBytes() { - java.lang.Object ref = city_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - city_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int STATUS_FIELD_NUMBER = 15; - private int status_ = 0; - /** - * int32 status = 15; - * @return The status. - */ - @java.lang.Override - public int getStatus() { - return status_; - } - - public static final int CREATETIME_FIELD_NUMBER = 16; - private long createTime_ = 0L; - /** - * int64 createTime = 16; - * @return The createTime. - */ - @java.lang.Override - public long getCreateTime() { - return createTime_; - } - - public static final int MODIFYTIME_FIELD_NUMBER = 17; - private long modifyTime_ = 0L; - /** - * int64 modifyTime = 17; - * @return The modifyTime. - */ - @java.lang.Override - public long getModifyTime() { - return modifyTime_; - } - - public static final int SECRET_FIELD_NUMBER = 18; - private int secret_ = 0; - /** - * int32 secret = 18; - * @return The secret. - */ - @java.lang.Override - public int getSecret() { - return secret_; - } - - public static final int SHAREQRCODEURI_FIELD_NUMBER = 19; - @SuppressWarnings("serial") - private volatile java.lang.Object shareQrcodeUri_ = ""; - /** - * string shareQrcodeUri = 19; - * @return The shareQrcodeUri. - */ - @java.lang.Override - public java.lang.String getShareQrcodeUri() { - java.lang.Object ref = shareQrcodeUri_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - shareQrcodeUri_ = s; - return s; - } - } - /** - * string shareQrcodeUri = 19; - * @return The bytes for shareQrcodeUri. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getShareQrcodeUriBytes() { - java.lang.Object ref = shareQrcodeUri_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - shareQrcodeUri_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int INCOMESHAREPERCENT_FIELD_NUMBER = 20; - private int incomeSharePercent_ = 0; - /** - * int32 incomeSharePercent = 20; - * @return The incomeSharePercent. - */ - @java.lang.Override - public int getIncomeSharePercent() { - return incomeSharePercent_; - } - - public static final int BADGEIMAGELISTLIST_FIELD_NUMBER = 21; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListList_; - /** - * .Image badgeImageListList = 21; - * @return Whether the badgeImageListList field is set. - */ - @java.lang.Override - public boolean hasBadgeImageListList() { - return badgeImageListList_ != null; - } - /** - * .Image badgeImageListList = 21; - * @return The badgeImageListList. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList() { - return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; - } - /** - * .Image badgeImageListList = 21; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder() { - return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; - } - - public static final int FOLLOWINFO_FIELD_NUMBER = 22; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo followInfo_; - /** - * .User.FollowInfo followInfo = 22; - * @return Whether the followInfo field is set. - */ - @java.lang.Override - public boolean hasFollowInfo() { - return followInfo_ != null; - } - /** - * .User.FollowInfo followInfo = 22; - * @return The followInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo() { - return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; - } - /** - * .User.FollowInfo followInfo = 22; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder() { - return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; - } - - public static final int PAYGRADE_FIELD_NUMBER = 23; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade payGrade_; - /** - * .User.PayGrade payGrade = 23; - * @return Whether the payGrade field is set. - */ - @java.lang.Override - public boolean hasPayGrade() { - return payGrade_ != null; - } - /** - * .User.PayGrade payGrade = 23; - * @return The payGrade. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade() { - return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; - } - /** - * .User.PayGrade payGrade = 23; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder() { - return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; - } - - public static final int FANSCLUB_FIELD_NUMBER = 24; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub fansClub_; - /** - * .User.FansClub fansClub = 24; - * @return Whether the fansClub field is set. - */ - @java.lang.Override - public boolean hasFansClub() { - return fansClub_ != null; - } - /** - * .User.FansClub fansClub = 24; - * @return The fansClub. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub() { - return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; - } - /** - * .User.FansClub fansClub = 24; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder() { - return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; - } - - public static final int BORDER_FIELD_NUMBER = 25; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border border_; - /** - * .User.Border border = 25; - * @return Whether the border field is set. - */ - @java.lang.Override - public boolean hasBorder() { - return border_ != null; - } - /** - * .User.Border border = 25; - * @return The border. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder() { - return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; - } - /** - * .User.Border border = 25; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder() { - return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; - } - - public static final int SPECIALID_FIELD_NUMBER = 26; - @SuppressWarnings("serial") - private volatile java.lang.Object specialId_ = ""; - /** - * string specialId = 26; - * @return The specialId. - */ - @java.lang.Override - public java.lang.String getSpecialId() { - java.lang.Object ref = specialId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - specialId_ = s; - return s; - } - } - /** - * string specialId = 26; - * @return The bytes for specialId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSpecialIdBytes() { - java.lang.Object ref = specialId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - specialId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int AVATARBORDER_FIELD_NUMBER = 27; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarBorder_; - /** - * .Image avatarBorder = 27; - * @return Whether the avatarBorder field is set. - */ - @java.lang.Override - public boolean hasAvatarBorder() { - return avatarBorder_ != null; - } - /** - * .Image avatarBorder = 27; - * @return The avatarBorder. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder() { - return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; - } - /** - * .Image avatarBorder = 27; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder() { - return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; - } - - public static final int MEDAL_FIELD_NUMBER = 28; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image medal_; - /** - * .Image medal = 28; - * @return Whether the medal field is set. - */ - @java.lang.Override - public boolean hasMedal() { - return medal_ != null; - } - /** - * .Image medal = 28; - * @return The medal. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal() { - return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; - } - /** - * .Image medal = 28; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder() { - return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; - } - - public static final int REALTIMEICONSLIST_FIELD_NUMBER = 29; - @SuppressWarnings("serial") - private java.util.List realTimeIconsList_; - /** - * repeated .Image realTimeIconsList = 29; - */ - @java.lang.Override - public java.util.List getRealTimeIconsListList() { - return realTimeIconsList_; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - @java.lang.Override - public java.util.List - getRealTimeIconsListOrBuilderList() { - return realTimeIconsList_; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - @java.lang.Override - public int getRealTimeIconsListCount() { - return realTimeIconsList_.size(); - } - /** - * repeated .Image realTimeIconsList = 29; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index) { - return realTimeIconsList_.get(index); - } - /** - * repeated .Image realTimeIconsList = 29; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( - int index) { - return realTimeIconsList_.get(index); - } - - public static final int NEWREALTIMEICONSLIST_FIELD_NUMBER = 30; - @SuppressWarnings("serial") - private java.util.List newRealTimeIconsList_; - /** - * repeated .Image newRealTimeIconsList = 30; - */ - @java.lang.Override - public java.util.List getNewRealTimeIconsListList() { - return newRealTimeIconsList_; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - @java.lang.Override - public java.util.List - getNewRealTimeIconsListOrBuilderList() { - return newRealTimeIconsList_; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - @java.lang.Override - public int getNewRealTimeIconsListCount() { - return newRealTimeIconsList_.size(); - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index) { - return newRealTimeIconsList_.get(index); - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( - int index) { - return newRealTimeIconsList_.get(index); - } - - public static final int TOPVIPNO_FIELD_NUMBER = 31; - private long topVipNo_ = 0L; - /** - * int64 topVipNo = 31; - * @return The topVipNo. - */ - @java.lang.Override - public long getTopVipNo() { - return topVipNo_; - } - - public static final int USERATTR_FIELD_NUMBER = 32; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr userAttr_; - /** - * .User.UserAttr userAttr = 32; - * @return Whether the userAttr field is set. - */ - @java.lang.Override - public boolean hasUserAttr() { - return userAttr_ != null; - } - /** - * .User.UserAttr userAttr = 32; - * @return The userAttr. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr() { - return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; - } - /** - * .User.UserAttr userAttr = 32; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder() { - return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; - } - - public static final int OWNROOM_FIELD_NUMBER = 33; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom ownRoom_; - /** - * .User.OwnRoom ownRoom = 33; - * @return Whether the ownRoom field is set. - */ - @java.lang.Override - public boolean hasOwnRoom() { - return ownRoom_ != null; - } - /** - * .User.OwnRoom ownRoom = 33; - * @return The ownRoom. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom() { - return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; - } - /** - * .User.OwnRoom ownRoom = 33; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder() { - return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; - } - - public static final int PAYSCORE_FIELD_NUMBER = 34; - private long payScore_ = 0L; - /** - * int64 payScore = 34; - * @return The payScore. - */ - @java.lang.Override - public long getPayScore() { - return payScore_; - } - - public static final int TICKETCOUNT_FIELD_NUMBER = 35; - private long ticketCount_ = 0L; - /** - * int64 ticketCount = 35; - * @return The ticketCount. - */ - @java.lang.Override - public long getTicketCount() { - return ticketCount_; - } - - public static final int ANCHORINFO_FIELD_NUMBER = 36; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo anchorInfo_; - /** - * .User.AnchorInfo anchorInfo = 36; - * @return Whether the anchorInfo field is set. - */ - @java.lang.Override - public boolean hasAnchorInfo() { - return anchorInfo_ != null; - } - /** - * .User.AnchorInfo anchorInfo = 36; - * @return The anchorInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo() { - return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder() { - return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; - } - - public static final int LINKMICSTATS_FIELD_NUMBER = 37; - private int linkMicStats_ = 0; - /** - * int32 linkMicStats = 37; - * @return The linkMicStats. - */ - @java.lang.Override - public int getLinkMicStats() { - return linkMicStats_; - } - - public static final int DISPLAYID_FIELD_NUMBER = 38; - @SuppressWarnings("serial") - private volatile java.lang.Object displayId_ = ""; - /** - * string displayId = 38; - * @return The displayId. - */ - @java.lang.Override - public java.lang.String getDisplayId() { - java.lang.Object ref = displayId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayId_ = s; - return s; - } - } - /** - * string displayId = 38; - * @return The bytes for displayId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayIdBytes() { - java.lang.Object ref = displayId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int WITHCOMMERCEPERMISSION_FIELD_NUMBER = 39; - private boolean withCommercePermission_ = false; - /** - * bool withCommercePermission = 39; - * @return The withCommercePermission. - */ - @java.lang.Override - public boolean getWithCommercePermission() { - return withCommercePermission_; - } - - public static final int WITHFUSIONSHOPENTRY_FIELD_NUMBER = 40; - private boolean withFusionShopEntry_ = false; - /** - * bool withFusionShopEntry = 40; - * @return The withFusionShopEntry. - */ - @java.lang.Override - public boolean getWithFusionShopEntry() { - return withFusionShopEntry_; - } - - public static final int TOTALRECHARGEDIAMONDCOUNT_FIELD_NUMBER = 41; - private long totalRechargeDiamondCount_ = 0L; - /** - * int64 totalRechargeDiamondCount = 41; - * @return The totalRechargeDiamondCount. - */ - @java.lang.Override - public long getTotalRechargeDiamondCount() { - return totalRechargeDiamondCount_; - } - - public static final int WEBCASTANCHORLEVEL_FIELD_NUMBER = 42; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel webcastAnchorLevel_; - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return Whether the webcastAnchorLevel field is set. - */ - @java.lang.Override - public boolean hasWebcastAnchorLevel() { - return webcastAnchorLevel_ != null; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return The webcastAnchorLevel. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel() { - return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder() { - return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; - } - - public static final int VERIFIEDCONTENT_FIELD_NUMBER = 43; - @SuppressWarnings("serial") - private volatile java.lang.Object verifiedContent_ = ""; - /** - * string verifiedContent = 43; - * @return The verifiedContent. - */ - @java.lang.Override - public java.lang.String getVerifiedContent() { - java.lang.Object ref = verifiedContent_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - verifiedContent_ = s; - return s; - } - } - /** - * string verifiedContent = 43; - * @return The bytes for verifiedContent. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getVerifiedContentBytes() { - java.lang.Object ref = verifiedContent_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verifiedContent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int AUTHORSTATS_FIELD_NUMBER = 44; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats authorStats_; - /** - * .User.AuthorStats authorStats = 44; - * @return Whether the authorStats field is set. - */ - @java.lang.Override - public boolean hasAuthorStats() { - return authorStats_ != null; - } - /** - * .User.AuthorStats authorStats = 44; - * @return The authorStats. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats() { - return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; - } - /** - * .User.AuthorStats authorStats = 44; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder() { - return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; - } - - public static final int TOPFANSLIST_FIELD_NUMBER = 45; - @SuppressWarnings("serial") - private java.util.List topFansList_; - /** - * repeated .User topFansList = 45; - */ - @java.lang.Override - public java.util.List getTopFansListList() { - return topFansList_; - } - /** - * repeated .User topFansList = 45; - */ - @java.lang.Override - public java.util.List - getTopFansListOrBuilderList() { - return topFansList_; - } - /** - * repeated .User topFansList = 45; - */ - @java.lang.Override - public int getTopFansListCount() { - return topFansList_.size(); - } - /** - * repeated .User topFansList = 45; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index) { - return topFansList_.get(index); - } - /** - * repeated .User topFansList = 45; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( - int index) { - return topFansList_.get(index); - } - - public static final int SECUID_FIELD_NUMBER = 46; - @SuppressWarnings("serial") - private volatile java.lang.Object secUid_ = ""; - /** - * string secUid = 46; - * @return The secUid. - */ - @java.lang.Override - public java.lang.String getSecUid() { - java.lang.Object ref = secUid_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - secUid_ = s; - return s; - } - } - /** - * string secUid = 46; - * @return The bytes for secUid. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSecUidBytes() { - java.lang.Object ref = secUid_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - secUid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USERROLE_FIELD_NUMBER = 47; - private int userRole_ = 0; - /** - * int32 userRole = 47; - * @return The userRole. - */ - @java.lang.Override - public int getUserRole() { - return userRole_; - } - - public static final int XIGUAINFO_FIELD_NUMBER = 48; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams xiguaInfo_; - /** - * .User.XiguaParams xiguaInfo = 48; - * @return Whether the xiguaInfo field is set. - */ - @java.lang.Override - public boolean hasXiguaInfo() { - return xiguaInfo_ != null; - } - /** - * .User.XiguaParams xiguaInfo = 48; - * @return The xiguaInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo() { - return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder() { - return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; - } - - public static final int ACTIVITYREWARD_FIELD_NUMBER = 49; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo activityReward_; - /** - * .User.ActivityInfo activityReward = 49; - * @return Whether the activityReward field is set. - */ - @java.lang.Override - public boolean hasActivityReward() { - return activityReward_ != null; - } - /** - * .User.ActivityInfo activityReward = 49; - * @return The activityReward. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward() { - return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; - } - /** - * .User.ActivityInfo activityReward = 49; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder() { - return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; - } - - public static final int NOBLEINFO_FIELD_NUMBER = 50; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo nobleInfo_; - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return Whether the nobleInfo field is set. - */ - @java.lang.Override - public boolean hasNobleInfo() { - return nobleInfo_ != null; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return The nobleInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo() { - return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder() { - return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; - } - - public static final int BROTHERHOODINFO_FIELD_NUMBER = 51; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo brotherhoodInfo_; - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return Whether the brotherhoodInfo field is set. - */ - @java.lang.Override - public boolean hasBrotherhoodInfo() { - return brotherhoodInfo_ != null; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return The brotherhoodInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo() { - return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder() { - return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; - } - - public static final int PERSONALCARD_FIELD_NUMBER = 52; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image personalCard_; - /** - * .Image personalCard = 52; - * @return Whether the personalCard field is set. - */ - @java.lang.Override - public boolean hasPersonalCard() { - return personalCard_ != null; - } - /** - * .Image personalCard = 52; - * @return The personalCard. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard() { - return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; - } - /** - * .Image personalCard = 52; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder() { - return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; - } - - public static final int AUTHENTICATIONINFO_FIELD_NUMBER = 53; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo authenticationInfo_; - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return Whether the authenticationInfo field is set. - */ - @java.lang.Override - public boolean hasAuthenticationInfo() { - return authenticationInfo_ != null; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return The authenticationInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo() { - return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder() { - return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; - } - - public static final int AUTHORIZATIONINFO_FIELD_NUMBER = 54; - private int authorizationInfo_ = 0; - /** - * int32 authorizationInfo = 54; - * @return The authorizationInfo. - */ - @java.lang.Override - public int getAuthorizationInfo() { - return authorizationInfo_; - } - - public static final int ADVERSARYAUTHORIZATIONINFO_FIELD_NUMBER = 55; - private int adversaryAuthorizationInfo_ = 0; - /** - * int32 adversaryAuthorizationInfo = 55; - * @return The adversaryAuthorizationInfo. - */ - @java.lang.Override - public int getAdversaryAuthorizationInfo() { - return adversaryAuthorizationInfo_; - } - - public static final int POIINFO_FIELD_NUMBER = 56; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo poiInfo_; - /** - * .User.PoiInfo poiInfo = 56; - * @return Whether the poiInfo field is set. - */ - @java.lang.Override - public boolean hasPoiInfo() { - return poiInfo_ != null; - } - /** - * .User.PoiInfo poiInfo = 56; - * @return The poiInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo() { - return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; - } - /** - * .User.PoiInfo poiInfo = 56; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder() { - return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; - } - - public static final int MEDIABADGEIMAGELISTLIST_FIELD_NUMBER = 57; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image mediaBadgeImageListList_; - /** - * .Image mediaBadgeImageListList = 57; - * @return Whether the mediaBadgeImageListList field is set. - */ - @java.lang.Override - public boolean hasMediaBadgeImageListList() { - return mediaBadgeImageListList_ != null; - } - /** - * .Image mediaBadgeImageListList = 57; - * @return The mediaBadgeImageListList. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList() { - return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; - } - /** - * .Image mediaBadgeImageListList = 57; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder() { - return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; - } - - public static final int ADVERSARYUSERSTATUS_FIELD_NUMBER = 58; - private int adversaryUserStatus_ = 0; - /** - * int32 adversaryUserStatus = 58; - * @return The adversaryUserStatus. - */ - @java.lang.Override - public int getAdversaryUserStatus() { - return adversaryUserStatus_; - } - - public static final int USERVIPINFO_FIELD_NUMBER = 59; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo userVipInfo_; - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return Whether the userVipInfo field is set. - */ - @java.lang.Override - public boolean hasUserVipInfo() { - return userVipInfo_ != null; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return The userVipInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo() { - return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder() { - return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; - } - - public static final int COMMERCEWEBCASTCONFIGIDSLIST_FIELD_NUMBER = 60; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.LongList commerceWebcastConfigIdsList_; - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return A list containing the commerceWebcastConfigIdsList. - */ - @java.lang.Override - public java.util.List - getCommerceWebcastConfigIdsListList() { - return commerceWebcastConfigIdsList_; - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return The count of commerceWebcastConfigIdsList. - */ - public int getCommerceWebcastConfigIdsListCount() { - return commerceWebcastConfigIdsList_.size(); - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param index The index of the element to return. - * @return The commerceWebcastConfigIdsList at the given index. - */ - public long getCommerceWebcastConfigIdsList(int index) { - return commerceWebcastConfigIdsList_.getLong(index); - } - private int commerceWebcastConfigIdsListMemoizedSerializedSize = -1; - - public static final int BADGEIMAGELISTV2LIST_FIELD_NUMBER = 61; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListV2List_; - /** - * .Image badgeImageListV2List = 61; - * @return Whether the badgeImageListV2List field is set. - */ - @java.lang.Override - public boolean hasBadgeImageListV2List() { - return badgeImageListV2List_ != null; - } - /** - * .Image badgeImageListV2List = 61; - * @return The badgeImageListV2List. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List() { - return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; - } - /** - * .Image badgeImageListV2List = 61; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder() { - return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; - } - - public static final int LOCATIONCITY_FIELD_NUMBER = 63; - @SuppressWarnings("serial") - private volatile java.lang.Object locationCity_ = ""; - /** - *
-     * IndustryCertification  industryCertification = 62;
-     * 
- * - * string locationCity = 63; - * @return The locationCity. - */ - @java.lang.Override - public java.lang.String getLocationCity() { - java.lang.Object ref = locationCity_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - locationCity_ = s; - return s; - } - } - /** - *
-     * IndustryCertification  industryCertification = 62;
-     * 
- * - * string locationCity = 63; - * @return The bytes for locationCity. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLocationCityBytes() { - java.lang.Object ref = locationCity_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - locationCity_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FANSGROUPINFO_FIELD_NUMBER = 64; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo fansGroupInfo_; - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return Whether the fansGroupInfo field is set. - */ - @java.lang.Override - public boolean hasFansGroupInfo() { - return fansGroupInfo_ != null; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return The fansGroupInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo() { - return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder() { - return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; - } - - public static final int REMARKNAME_FIELD_NUMBER = 65; - @SuppressWarnings("serial") - private volatile java.lang.Object remarkName_ = ""; - /** - * string remarkName = 65; - * @return The remarkName. - */ - @java.lang.Override - public java.lang.String getRemarkName() { - java.lang.Object ref = remarkName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - remarkName_ = s; - return s; - } - } - /** - * string remarkName = 65; - * @return The bytes for remarkName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getRemarkNameBytes() { - java.lang.Object ref = remarkName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - remarkName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int MYSTERYMAN_FIELD_NUMBER = 66; - private int mysteryMan_ = 0; - /** - * int32 mysteryMan = 66; - * @return The mysteryMan. - */ - @java.lang.Override - public int getMysteryMan() { - return mysteryMan_; - } - - public static final int WEBRID_FIELD_NUMBER = 67; - @SuppressWarnings("serial") - private volatile java.lang.Object webRid_ = ""; - /** - * string webRid = 67; - * @return The webRid. - */ - @java.lang.Override - public java.lang.String getWebRid() { - java.lang.Object ref = webRid_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - webRid_ = s; - return s; - } - } - /** - * string webRid = 67; - * @return The bytes for webRid. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getWebRidBytes() { - java.lang.Object ref = webRid_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - webRid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DESENSITIZEDNICKNAME_FIELD_NUMBER = 68; - @SuppressWarnings("serial") - private volatile java.lang.Object desensitizedNickname_ = ""; - /** - * string desensitizedNickname = 68; - * @return The desensitizedNickname. - */ - @java.lang.Override - public java.lang.String getDesensitizedNickname() { - java.lang.Object ref = desensitizedNickname_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - desensitizedNickname_ = s; - return s; - } - } - /** - * string desensitizedNickname = 68; - * @return The bytes for desensitizedNickname. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDesensitizedNicknameBytes() { - java.lang.Object ref = desensitizedNickname_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - desensitizedNickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int JACCREDITINFO_FIELD_NUMBER = 69; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo jAccreditInfo_; - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return Whether the jAccreditInfo field is set. - */ - @java.lang.Override - public boolean hasJAccreditInfo() { - return jAccreditInfo_ != null; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return The jAccreditInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo() { - return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder() { - return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; - } - - public static final int SUBSCRIBE_FIELD_NUMBER = 70; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe subscribe_; - /** - * .User.Subscribe subscribe = 70; - * @return Whether the subscribe field is set. - */ - @java.lang.Override - public boolean hasSubscribe() { - return subscribe_ != null; - } - /** - * .User.Subscribe subscribe = 70; - * @return The subscribe. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe() { - return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; - } - /** - * .User.Subscribe subscribe = 70; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder() { - return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; - } - - public static final int ISANONYMOUS_FIELD_NUMBER = 71; - private boolean isAnonymous_ = false; - /** - * bool isAnonymous = 71; - * @return The isAnonymous. - */ - @java.lang.Override - public boolean getIsAnonymous() { - return isAnonymous_; - } - - public static final int CONSUMEDIAMONDLEVEL_FIELD_NUMBER = 72; - private int consumeDiamondLevel_ = 0; - /** - * int32 consumeDiamondLevel = 72; - * @return The consumeDiamondLevel. - */ - @java.lang.Override - public int getConsumeDiamondLevel() { - return consumeDiamondLevel_; - } - - public static final int WEBCASTUID_FIELD_NUMBER = 73; - @SuppressWarnings("serial") - private volatile java.lang.Object webcastUid_ = ""; - /** - * string webcastUid = 73; - * @return The webcastUid. - */ - @java.lang.Override - public java.lang.String getWebcastUid() { - java.lang.Object ref = webcastUid_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - webcastUid_ = s; - return s; - } - } - /** - * string webcastUid = 73; - * @return The bytes for webcastUid. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getWebcastUidBytes() { - java.lang.Object ref = webcastUid_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - webcastUid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PROFILESTYLEPARAMS_FIELD_NUMBER = 74; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams profileStyleParams_; - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return Whether the profileStyleParams field is set. - */ - @java.lang.Override - public boolean hasProfileStyleParams() { - return profileStyleParams_ != null; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return The profileStyleParams. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams() { - return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder() { - return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; - } - - public static final int USERDRESSINFO_FIELD_NUMBER = 75; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo userDressInfo_; - /** - * .User.UserDressInfo userDressInfo = 75; - * @return Whether the userDressInfo field is set. - */ - @java.lang.Override - public boolean hasUserDressInfo() { - return userDressInfo_ != null; - } - /** - * .User.UserDressInfo userDressInfo = 75; - * @return The userDressInfo. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo() { - return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder() { - return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; - } - - public static final int ALLOWBELOCATED_FIELD_NUMBER = 1001; - private boolean allowBeLocated_ = false; - /** - * bool allowBeLocated = 1001; - * @return The allowBeLocated. - */ - @java.lang.Override - public boolean getAllowBeLocated() { - return allowBeLocated_; - } - - public static final int ALLOWFINDBYCONTACTS_FIELD_NUMBER = 1002; - private boolean allowFindByContacts_ = false; - /** - * bool allowFindByContacts = 1002; - * @return The allowFindByContacts. - */ - @java.lang.Override - public boolean getAllowFindByContacts() { - return allowFindByContacts_; - } - - public static final int ALLOWOTHERSDOWNLOADVIDEO_FIELD_NUMBER = 1003; - private boolean allowOthersDownloadVideo_ = false; - /** - * bool allowOthersDownloadVideo = 1003; - * @return The allowOthersDownloadVideo. - */ - @java.lang.Override - public boolean getAllowOthersDownloadVideo() { - return allowOthersDownloadVideo_; - } - - public static final int ALLOWOTHERSDOWNLOADWHENSHARINGVIDEO_FIELD_NUMBER = 1004; - private boolean allowOthersDownloadWhenSharingVideo_ = false; - /** - * bool allowOthersDownloadWhenSharingVideo = 1004; - * @return The allowOthersDownloadWhenSharingVideo. - */ - @java.lang.Override - public boolean getAllowOthersDownloadWhenSharingVideo() { - return allowOthersDownloadWhenSharingVideo_; - } - - public static final int ALLOWSHARESHOWPROFILE_FIELD_NUMBER = 1005; - private boolean allowShareShowProfile_ = false; - /** - * bool allowShareShowProfile = 1005; - * @return The allowShareShowProfile. - */ - @java.lang.Override - public boolean getAllowShareShowProfile() { - return allowShareShowProfile_; - } - - public static final int ALLOWSHOWINGOSSIP_FIELD_NUMBER = 1006; - private boolean allowShowInGossip_ = false; - /** - * bool allowShowInGossip = 1006; - * @return The allowShowInGossip. - */ - @java.lang.Override - public boolean getAllowShowInGossip() { - return allowShowInGossip_; - } - - public static final int ALLOWSHOWMYACTION_FIELD_NUMBER = 1007; - private boolean allowShowMyAction_ = false; - /** - * bool allowShowMyAction = 1007; - * @return The allowShowMyAction. - */ - @java.lang.Override - public boolean getAllowShowMyAction() { - return allowShowMyAction_; - } - - public static final int ALLOWSTRANGECOMMENT_FIELD_NUMBER = 1008; - private boolean allowStrangeComment_ = false; - /** - * bool allowStrangeComment = 1008; - * @return The allowStrangeComment. - */ - @java.lang.Override - public boolean getAllowStrangeComment() { - return allowStrangeComment_; - } - - public static final int ALLOWUNFOLLOWERCOMMENT_FIELD_NUMBER = 1009; - private boolean allowUnfollowerComment_ = false; - /** - * bool allowUnfollowerComment = 1009; - * @return The allowUnfollowerComment. - */ - @java.lang.Override - public boolean getAllowUnfollowerComment() { - return allowUnfollowerComment_; - } - - public static final int ALLOWUSELINKMIC_FIELD_NUMBER = 1010; - private boolean allowUseLinkmic_ = false; - /** - * bool allowUseLinkmic = 1010; - * @return The allowUseLinkmic. - */ - @java.lang.Override - public boolean getAllowUseLinkmic() { - return allowUseLinkmic_; - } - - public static final int ANCHORLEVEL_FIELD_NUMBER = 1011; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel anchorLevel_; - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return Whether the anchorLevel field is set. - */ - @java.lang.Override - public boolean hasAnchorLevel() { - return anchorLevel_ != null; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return The anchorLevel. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel() { - return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder() { - return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; - } - - public static final int AVATARJPG_FIELD_NUMBER = 1012; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarJpg_; - /** - * .Image avatarJpg = 1012; - * @return Whether the avatarJpg field is set. - */ - @java.lang.Override - public boolean hasAvatarJpg() { - return avatarJpg_ != null; - } - /** - * .Image avatarJpg = 1012; - * @return The avatarJpg. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg() { - return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; - } - /** - * .Image avatarJpg = 1012; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder() { - return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; - } - - public static final int BGIMGURL_FIELD_NUMBER = 1013; - @SuppressWarnings("serial") - private volatile java.lang.Object bgImgUrl_ = ""; - /** - * string bgImgUrl = 1013; - * @return The bgImgUrl. - */ - @java.lang.Override - public java.lang.String getBgImgUrl() { - java.lang.Object ref = bgImgUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - bgImgUrl_ = s; - return s; - } - } - /** - * string bgImgUrl = 1013; - * @return The bytes for bgImgUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getBgImgUrlBytes() { - java.lang.Object ref = bgImgUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - bgImgUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BIRTHDAYDESCRIPTION_FIELD_NUMBER = 1014; - @SuppressWarnings("serial") - private volatile java.lang.Object birthdayDescription_ = ""; - /** - * string birthdayDescription = 1014; - * @return The birthdayDescription. - */ - @java.lang.Override - public java.lang.String getBirthdayDescription() { - java.lang.Object ref = birthdayDescription_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - birthdayDescription_ = s; - return s; - } - } - /** - * string birthdayDescription = 1014; - * @return The bytes for birthdayDescription. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getBirthdayDescriptionBytes() { - java.lang.Object ref = birthdayDescription_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - birthdayDescription_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BIRTHDAYVALID_FIELD_NUMBER = 1015; - private boolean birthdayValid_ = false; - /** - * bool birthdayValid = 1015; - * @return The birthdayValid. - */ - @java.lang.Override - public boolean getBirthdayValid() { - return birthdayValid_; - } - - public static final int BLOCKSTATUS_FIELD_NUMBER = 1016; - private int blockStatus_ = 0; - /** - * int32 blockStatus = 1016; - * @return The blockStatus. - */ - @java.lang.Override - public int getBlockStatus() { - return blockStatus_; - } - - public static final int COMMENTRESTRICT_FIELD_NUMBER = 1017; - private int commentRestrict_ = 0; - /** - * int32 commentRestrict = 1017; - * @return The commentRestrict. - */ - @java.lang.Override - public int getCommentRestrict() { - return commentRestrict_; - } - - public static final int CONSTELLATION_FIELD_NUMBER = 1018; - @SuppressWarnings("serial") - private volatile java.lang.Object constellation_ = ""; - /** - * string constellation = 1018; - * @return The constellation. - */ - @java.lang.Override - public java.lang.String getConstellation() { - java.lang.Object ref = constellation_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - constellation_ = s; - return s; - } - } - /** - * string constellation = 1018; - * @return The bytes for constellation. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getConstellationBytes() { - java.lang.Object ref = constellation_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - constellation_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DISABLEICHAT_FIELD_NUMBER = 1019; - private int disableIchat_ = 0; - /** - * int32 disableIchat = 1019; - * @return The disableIchat. - */ - @java.lang.Override - public int getDisableIchat() { - return disableIchat_; - } - - public static final int ENABLEICHATIMG_FIELD_NUMBER = 1020; - private long enableIchatImg_ = 0L; - /** - * int64 enableIchatImg = 1020; - * @return The enableIchatImg. - */ - @java.lang.Override - public long getEnableIchatImg() { - return enableIchatImg_; - } - - public static final int EXP_FIELD_NUMBER = 1021; - private int exp_ = 0; - /** - * int32 exp = 1021; - * @return The exp. - */ - @java.lang.Override - public int getExp() { - return exp_; - } - - public static final int FANTICKETCOUNT_FIELD_NUMBER = 1022; - private long fanTicketCount_ = 0L; - /** - * int64 fanTicketCount = 1022; - * @return The fanTicketCount. - */ - @java.lang.Override - public long getFanTicketCount() { - return fanTicketCount_; - } - - public static final int FOLDSTRANGERCHAT_FIELD_NUMBER = 1023; - private boolean foldStrangerChat_ = false; - /** - * bool foldStrangerChat = 1023; - * @return The foldStrangerChat. - */ - @java.lang.Override - public boolean getFoldStrangerChat() { - return foldStrangerChat_; - } - - public static final int FOLLOWSTATUS_FIELD_NUMBER = 1024; - private long followStatus_ = 0L; - /** - * int64 followStatus = 1024; - * @return The followStatus. - */ - @java.lang.Override - public long getFollowStatus() { - return followStatus_; - } - - public static final int HOTSOONVERIFIED_FIELD_NUMBER = 1025; - private boolean hotsoonVerified_ = false; - /** - * bool hotsoonVerified = 1025; - * @return The hotsoonVerified. - */ - @java.lang.Override - public boolean getHotsoonVerified() { - return hotsoonVerified_; - } - - public static final int HOTSOONVERIFIEDREASON_FIELD_NUMBER = 1026; - @SuppressWarnings("serial") - private volatile java.lang.Object hotsoonVerifiedReason_ = ""; - /** - * string hotsoonVerifiedReason = 1026; - * @return The hotsoonVerifiedReason. - */ - @java.lang.Override - public java.lang.String getHotsoonVerifiedReason() { - java.lang.Object ref = hotsoonVerifiedReason_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - hotsoonVerifiedReason_ = s; - return s; - } - } - /** - * string hotsoonVerifiedReason = 1026; - * @return The bytes for hotsoonVerifiedReason. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getHotsoonVerifiedReasonBytes() { - java.lang.Object ref = hotsoonVerifiedReason_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - hotsoonVerifiedReason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ICHATRESTRICTTYPE_FIELD_NUMBER = 1027; - private int ichatRestrictType_ = 0; - /** - * int32 ichatRestrictType = 1027; - * @return The ichatRestrictType. - */ - @java.lang.Override - public int getIchatRestrictType() { - return ichatRestrictType_; - } - - public static final int IDSTR_FIELD_NUMBER = 1028; - @SuppressWarnings("serial") - private volatile java.lang.Object idStr_ = ""; - /** - * string idStr = 1028; - * @return The idStr. - */ - @java.lang.Override - public java.lang.String getIdStr() { - java.lang.Object ref = idStr_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - idStr_ = s; - return s; - } - } - /** - * string idStr = 1028; - * @return The bytes for idStr. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdStrBytes() { - java.lang.Object ref = idStr_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - idStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ISFOLLOWER_FIELD_NUMBER = 1029; - private boolean isFollower_ = false; - /** - * bool isFollower = 1029; - * @return The isFollower. - */ - @java.lang.Override - public boolean getIsFollower() { - return isFollower_; - } - - public static final int ISFOLLOWING_FIELD_NUMBER = 1030; - private boolean isFollowing_ = false; - /** - * bool isFollowing = 1030; - * @return The isFollowing. - */ - @java.lang.Override - public boolean getIsFollowing() { - return isFollowing_; - } - - public static final int NEEDPROFILEGUIDE_FIELD_NUMBER = 1031; - private boolean needProfileGuide_ = false; - /** - * bool needProfileGuide = 1031; - * @return The needProfileGuide. - */ - @java.lang.Override - public boolean getNeedProfileGuide() { - return needProfileGuide_; - } - - public static final int PAYSCORES_FIELD_NUMBER = 1032; - private long payScores_ = 0L; - /** - * int64 payScores = 1032; - * @return The payScores. - */ - @java.lang.Override - public long getPayScores() { - return payScores_; - } - - public static final int PUSHCOMMENTSTATUS_FIELD_NUMBER = 1033; - private boolean pushCommentStatus_ = false; - /** - * bool pushCommentStatus = 1033; - * @return The pushCommentStatus. - */ - @java.lang.Override - public boolean getPushCommentStatus() { - return pushCommentStatus_; - } - - public static final int PUSHDIGG_FIELD_NUMBER = 1034; - private boolean pushDigg_ = false; - /** - * bool pushDigg = 1034; - * @return The pushDigg. - */ - @java.lang.Override - public boolean getPushDigg() { - return pushDigg_; - } - - public static final int PUSHFOLLOW_FIELD_NUMBER = 1035; - private boolean pushFollow_ = false; - /** - * bool pushFollow = 1035; - * @return The pushFollow. - */ - @java.lang.Override - public boolean getPushFollow() { - return pushFollow_; - } - - public static final int PUSHFRIENDACTION_FIELD_NUMBER = 1036; - private boolean pushFriendAction_ = false; - /** - * bool pushFriendAction = 1036; - * @return The pushFriendAction. - */ - @java.lang.Override - public boolean getPushFriendAction() { - return pushFriendAction_; - } - - public static final int PUSHICHAT_FIELD_NUMBER = 1037; - private boolean pushIchat_ = false; - /** - * bool pushIchat = 1037; - * @return The pushIchat. - */ - @java.lang.Override - public boolean getPushIchat() { - return pushIchat_; - } - - public static final int PUSHSTATUS_FIELD_NUMBER = 1038; - private boolean pushStatus_ = false; - /** - * bool pushStatus = 1038; - * @return The pushStatus. - */ - @java.lang.Override - public boolean getPushStatus() { - return pushStatus_; - } - - public static final int PUSHVIDEOPOST_FIELD_NUMBER = 1039; - private boolean pushVideoPost_ = false; - /** - * bool pushVideoPost = 1039; - * @return The pushVideoPost. - */ - @java.lang.Override - public boolean getPushVideoPost() { - return pushVideoPost_; - } - - public static final int PUSHVIDEORECOMMEND_FIELD_NUMBER = 1040; - private boolean pushVideoRecommend_ = false; - /** - * bool pushVideoRecommend = 1040; - * @return The pushVideoRecommend. - */ - @java.lang.Override - public boolean getPushVideoRecommend() { - return pushVideoRecommend_; - } - - public static final int STATS_FIELD_NUMBER = 1041; - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats stats_; - /** - * .User.UserStats stats = 1041; - * @return Whether the stats field is set. - */ - @java.lang.Override - public boolean hasStats() { - return stats_ != null; - } - /** - * .User.UserStats stats = 1041; - * @return The stats. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats() { - return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; - } - /** - * .User.UserStats stats = 1041; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder() { - return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; - } - - public static final int VERIFIEDMOBILE_FIELD_NUMBER = 1042; - private boolean verifiedMobile_ = false; - /** - * bool verifiedMobile = 1042; - * @return The verifiedMobile. - */ - @java.lang.Override - public boolean getVerifiedMobile() { - return verifiedMobile_; - } - - public static final int VERIFIEDREASON_FIELD_NUMBER = 1043; - @SuppressWarnings("serial") - private volatile java.lang.Object verifiedReason_ = ""; - /** - * string verifiedReason = 1043; - * @return The verifiedReason. - */ - @java.lang.Override - public java.lang.String getVerifiedReason() { - java.lang.Object ref = verifiedReason_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - verifiedReason_ = s; - return s; - } - } - /** - * string verifiedReason = 1043; - * @return The bytes for verifiedReason. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getVerifiedReasonBytes() { - java.lang.Object ref = verifiedReason_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verifiedReason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int WITHCARMANAGEMENTPERMISSION_FIELD_NUMBER = 1044; - private boolean withCarManagementPermission_ = false; - /** - * bool withCarManagementPermission = 1044; - * @return The withCarManagementPermission. - */ - @java.lang.Override - public boolean getWithCarManagementPermission() { - return withCarManagementPermission_; - } - - public static final int AGERANGE_FIELD_NUMBER = 1045; - private int ageRange_ = 0; - /** - * int32 ageRange = 1045; - * @return The ageRange. - */ - @java.lang.Override - public int getAgeRange() { - return ageRange_; - } - - public static final int WATCHDURATIONMONTH_FIELD_NUMBER = 1046; - private long watchDurationMonth_ = 0L; - /** - * int64 watchDurationMonth = 1046; - * @return The watchDurationMonth. - */ - @java.lang.Override - public long getWatchDurationMonth() { - return watchDurationMonth_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getSerializedSize(); - if (id_ != 0L) { - output.writeUInt64(1, id_); - } - if (shortId_ != 0L) { - output.writeUInt64(2, shortId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nickname_); - } - if (gender_ != 0) { - output.writeUInt32(4, gender_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, signature_); - } - if (level_ != 0) { - output.writeUInt32(6, level_); - } - if (birthday_ != 0L) { - output.writeUInt64(7, birthday_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 8, telephone_); - } - if (avatarThumb_ != null) { - output.writeMessage(9, getAvatarThumb()); - } - if (avatarMedium_ != null) { - output.writeMessage(10, getAvatarMedium()); - } - if (avatarLarge_ != null) { - output.writeMessage(11, getAvatarLarge()); - } - if (verified_ != false) { - output.writeBool(12, verified_); - } - if (experience_ != 0) { - output.writeInt32(13, experience_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 14, city_); - } - if (status_ != 0) { - output.writeInt32(15, status_); - } - if (createTime_ != 0L) { - output.writeInt64(16, createTime_); - } - if (modifyTime_ != 0L) { - output.writeInt64(17, modifyTime_); - } - if (secret_ != 0) { - output.writeInt32(18, secret_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 19, shareQrcodeUri_); - } - if (incomeSharePercent_ != 0) { - output.writeInt32(20, incomeSharePercent_); - } - if (badgeImageListList_ != null) { - output.writeMessage(21, getBadgeImageListList()); - } - if (followInfo_ != null) { - output.writeMessage(22, getFollowInfo()); - } - if (payGrade_ != null) { - output.writeMessage(23, getPayGrade()); - } - if (fansClub_ != null) { - output.writeMessage(24, getFansClub()); - } - if (border_ != null) { - output.writeMessage(25, getBorder()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 26, specialId_); - } - if (avatarBorder_ != null) { - output.writeMessage(27, getAvatarBorder()); - } - if (medal_ != null) { - output.writeMessage(28, getMedal()); - } - for (int i = 0; i < realTimeIconsList_.size(); i++) { - output.writeMessage(29, realTimeIconsList_.get(i)); - } - for (int i = 0; i < newRealTimeIconsList_.size(); i++) { - output.writeMessage(30, newRealTimeIconsList_.get(i)); - } - if (topVipNo_ != 0L) { - output.writeInt64(31, topVipNo_); - } - if (userAttr_ != null) { - output.writeMessage(32, getUserAttr()); - } - if (ownRoom_ != null) { - output.writeMessage(33, getOwnRoom()); - } - if (payScore_ != 0L) { - output.writeInt64(34, payScore_); - } - if (ticketCount_ != 0L) { - output.writeInt64(35, ticketCount_); - } - if (anchorInfo_ != null) { - output.writeMessage(36, getAnchorInfo()); - } - if (linkMicStats_ != 0) { - output.writeInt32(37, linkMicStats_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 38, displayId_); - } - if (withCommercePermission_ != false) { - output.writeBool(39, withCommercePermission_); - } - if (withFusionShopEntry_ != false) { - output.writeBool(40, withFusionShopEntry_); - } - if (totalRechargeDiamondCount_ != 0L) { - output.writeInt64(41, totalRechargeDiamondCount_); - } - if (webcastAnchorLevel_ != null) { - output.writeMessage(42, getWebcastAnchorLevel()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedContent_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 43, verifiedContent_); - } - if (authorStats_ != null) { - output.writeMessage(44, getAuthorStats()); - } - for (int i = 0; i < topFansList_.size(); i++) { - output.writeMessage(45, topFansList_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 46, secUid_); - } - if (userRole_ != 0) { - output.writeInt32(47, userRole_); - } - if (xiguaInfo_ != null) { - output.writeMessage(48, getXiguaInfo()); - } - if (activityReward_ != null) { - output.writeMessage(49, getActivityReward()); - } - if (nobleInfo_ != null) { - output.writeMessage(50, getNobleInfo()); - } - if (brotherhoodInfo_ != null) { - output.writeMessage(51, getBrotherhoodInfo()); - } - if (personalCard_ != null) { - output.writeMessage(52, getPersonalCard()); - } - if (authenticationInfo_ != null) { - output.writeMessage(53, getAuthenticationInfo()); - } - if (authorizationInfo_ != 0) { - output.writeInt32(54, authorizationInfo_); - } - if (adversaryAuthorizationInfo_ != 0) { - output.writeInt32(55, adversaryAuthorizationInfo_); - } - if (poiInfo_ != null) { - output.writeMessage(56, getPoiInfo()); - } - if (mediaBadgeImageListList_ != null) { - output.writeMessage(57, getMediaBadgeImageListList()); - } - if (adversaryUserStatus_ != 0) { - output.writeInt32(58, adversaryUserStatus_); - } - if (userVipInfo_ != null) { - output.writeMessage(59, getUserVipInfo()); - } - if (getCommerceWebcastConfigIdsListList().size() > 0) { - output.writeUInt32NoTag(482); - output.writeUInt32NoTag(commerceWebcastConfigIdsListMemoizedSerializedSize); - } - for (int i = 0; i < commerceWebcastConfigIdsList_.size(); i++) { - output.writeInt64NoTag(commerceWebcastConfigIdsList_.getLong(i)); - } - if (badgeImageListV2List_ != null) { - output.writeMessage(61, getBadgeImageListV2List()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(locationCity_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 63, locationCity_); - } - if (fansGroupInfo_ != null) { - output.writeMessage(64, getFansGroupInfo()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 65, remarkName_); - } - if (mysteryMan_ != 0) { - output.writeInt32(66, mysteryMan_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webRid_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 67, webRid_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desensitizedNickname_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 68, desensitizedNickname_); - } - if (jAccreditInfo_ != null) { - output.writeMessage(69, getJAccreditInfo()); - } - if (subscribe_ != null) { - output.writeMessage(70, getSubscribe()); - } - if (isAnonymous_ != false) { - output.writeBool(71, isAnonymous_); - } - if (consumeDiamondLevel_ != 0) { - output.writeInt32(72, consumeDiamondLevel_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webcastUid_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 73, webcastUid_); - } - if (profileStyleParams_ != null) { - output.writeMessage(74, getProfileStyleParams()); - } - if (userDressInfo_ != null) { - output.writeMessage(75, getUserDressInfo()); - } - if (allowBeLocated_ != false) { - output.writeBool(1001, allowBeLocated_); - } - if (allowFindByContacts_ != false) { - output.writeBool(1002, allowFindByContacts_); - } - if (allowOthersDownloadVideo_ != false) { - output.writeBool(1003, allowOthersDownloadVideo_); - } - if (allowOthersDownloadWhenSharingVideo_ != false) { - output.writeBool(1004, allowOthersDownloadWhenSharingVideo_); - } - if (allowShareShowProfile_ != false) { - output.writeBool(1005, allowShareShowProfile_); - } - if (allowShowInGossip_ != false) { - output.writeBool(1006, allowShowInGossip_); - } - if (allowShowMyAction_ != false) { - output.writeBool(1007, allowShowMyAction_); - } - if (allowStrangeComment_ != false) { - output.writeBool(1008, allowStrangeComment_); - } - if (allowUnfollowerComment_ != false) { - output.writeBool(1009, allowUnfollowerComment_); - } - if (allowUseLinkmic_ != false) { - output.writeBool(1010, allowUseLinkmic_); - } - if (anchorLevel_ != null) { - output.writeMessage(1011, getAnchorLevel()); - } - if (avatarJpg_ != null) { - output.writeMessage(1012, getAvatarJpg()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bgImgUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1013, bgImgUrl_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthdayDescription_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1014, birthdayDescription_); - } - if (birthdayValid_ != false) { - output.writeBool(1015, birthdayValid_); - } - if (blockStatus_ != 0) { - output.writeInt32(1016, blockStatus_); - } - if (commentRestrict_ != 0) { - output.writeInt32(1017, commentRestrict_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constellation_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1018, constellation_); - } - if (disableIchat_ != 0) { - output.writeInt32(1019, disableIchat_); - } - if (enableIchatImg_ != 0L) { - output.writeInt64(1020, enableIchatImg_); - } - if (exp_ != 0) { - output.writeInt32(1021, exp_); - } - if (fanTicketCount_ != 0L) { - output.writeInt64(1022, fanTicketCount_); - } - if (foldStrangerChat_ != false) { - output.writeBool(1023, foldStrangerChat_); - } - if (followStatus_ != 0L) { - output.writeInt64(1024, followStatus_); - } - if (hotsoonVerified_ != false) { - output.writeBool(1025, hotsoonVerified_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hotsoonVerifiedReason_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1026, hotsoonVerifiedReason_); - } - if (ichatRestrictType_ != 0) { - output.writeInt32(1027, ichatRestrictType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1028, idStr_); - } - if (isFollower_ != false) { - output.writeBool(1029, isFollower_); - } - if (isFollowing_ != false) { - output.writeBool(1030, isFollowing_); - } - if (needProfileGuide_ != false) { - output.writeBool(1031, needProfileGuide_); - } - if (payScores_ != 0L) { - output.writeInt64(1032, payScores_); - } - if (pushCommentStatus_ != false) { - output.writeBool(1033, pushCommentStatus_); - } - if (pushDigg_ != false) { - output.writeBool(1034, pushDigg_); - } - if (pushFollow_ != false) { - output.writeBool(1035, pushFollow_); - } - if (pushFriendAction_ != false) { - output.writeBool(1036, pushFriendAction_); - } - if (pushIchat_ != false) { - output.writeBool(1037, pushIchat_); - } - if (pushStatus_ != false) { - output.writeBool(1038, pushStatus_); - } - if (pushVideoPost_ != false) { - output.writeBool(1039, pushVideoPost_); - } - if (pushVideoRecommend_ != false) { - output.writeBool(1040, pushVideoRecommend_); - } - if (stats_ != null) { - output.writeMessage(1041, getStats()); - } - if (verifiedMobile_ != false) { - output.writeBool(1042, verifiedMobile_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedReason_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1043, verifiedReason_); - } - if (withCarManagementPermission_ != false) { - output.writeBool(1044, withCarManagementPermission_); - } - if (ageRange_ != 0) { - output.writeInt32(1045, ageRange_); - } - if (watchDurationMonth_ != 0L) { - output.writeInt64(1046, watchDurationMonth_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (id_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, id_); - } - if (shortId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, shortId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nickname_); - } - if (gender_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, gender_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, signature_); - } - if (level_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(6, level_); - } - if (birthday_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(7, birthday_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, telephone_); - } - if (avatarThumb_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, getAvatarThumb()); - } - if (avatarMedium_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, getAvatarMedium()); - } - if (avatarLarge_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(11, getAvatarLarge()); - } - if (verified_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(12, verified_); - } - if (experience_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(13, experience_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, city_); - } - if (status_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(15, status_); - } - if (createTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(16, createTime_); - } - if (modifyTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(17, modifyTime_); - } - if (secret_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(18, secret_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, shareQrcodeUri_); - } - if (incomeSharePercent_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(20, incomeSharePercent_); - } - if (badgeImageListList_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(21, getBadgeImageListList()); - } - if (followInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(22, getFollowInfo()); - } - if (payGrade_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(23, getPayGrade()); - } - if (fansClub_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(24, getFansClub()); - } - if (border_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(25, getBorder()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, specialId_); - } - if (avatarBorder_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(27, getAvatarBorder()); - } - if (medal_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(28, getMedal()); - } - for (int i = 0; i < realTimeIconsList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(29, realTimeIconsList_.get(i)); - } - for (int i = 0; i < newRealTimeIconsList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(30, newRealTimeIconsList_.get(i)); - } - if (topVipNo_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(31, topVipNo_); - } - if (userAttr_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(32, getUserAttr()); - } - if (ownRoom_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(33, getOwnRoom()); - } - if (payScore_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(34, payScore_); - } - if (ticketCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(35, ticketCount_); - } - if (anchorInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(36, getAnchorInfo()); - } - if (linkMicStats_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(37, linkMicStats_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(38, displayId_); - } - if (withCommercePermission_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(39, withCommercePermission_); - } - if (withFusionShopEntry_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(40, withFusionShopEntry_); - } - if (totalRechargeDiamondCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(41, totalRechargeDiamondCount_); - } - if (webcastAnchorLevel_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(42, getWebcastAnchorLevel()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedContent_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(43, verifiedContent_); - } - if (authorStats_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(44, getAuthorStats()); - } - for (int i = 0; i < topFansList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(45, topFansList_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(46, secUid_); - } - if (userRole_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(47, userRole_); - } - if (xiguaInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(48, getXiguaInfo()); - } - if (activityReward_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(49, getActivityReward()); - } - if (nobleInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(50, getNobleInfo()); - } - if (brotherhoodInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(51, getBrotherhoodInfo()); - } - if (personalCard_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(52, getPersonalCard()); - } - if (authenticationInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(53, getAuthenticationInfo()); - } - if (authorizationInfo_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(54, authorizationInfo_); - } - if (adversaryAuthorizationInfo_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(55, adversaryAuthorizationInfo_); - } - if (poiInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(56, getPoiInfo()); - } - if (mediaBadgeImageListList_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(57, getMediaBadgeImageListList()); - } - if (adversaryUserStatus_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(58, adversaryUserStatus_); - } - if (userVipInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(59, getUserVipInfo()); - } - { - int dataSize = 0; - for (int i = 0; i < commerceWebcastConfigIdsList_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream - .computeInt64SizeNoTag(commerceWebcastConfigIdsList_.getLong(i)); - } - size += dataSize; - if (!getCommerceWebcastConfigIdsListList().isEmpty()) { - size += 2; - size += com.google.protobuf.CodedOutputStream - .computeInt32SizeNoTag(dataSize); - } - commerceWebcastConfigIdsListMemoizedSerializedSize = dataSize; - } - if (badgeImageListV2List_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(61, getBadgeImageListV2List()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(locationCity_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(63, locationCity_); - } - if (fansGroupInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(64, getFansGroupInfo()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(65, remarkName_); - } - if (mysteryMan_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(66, mysteryMan_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webRid_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(67, webRid_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desensitizedNickname_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(68, desensitizedNickname_); - } - if (jAccreditInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(69, getJAccreditInfo()); - } - if (subscribe_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(70, getSubscribe()); - } - if (isAnonymous_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(71, isAnonymous_); - } - if (consumeDiamondLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(72, consumeDiamondLevel_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webcastUid_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(73, webcastUid_); - } - if (profileStyleParams_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(74, getProfileStyleParams()); - } - if (userDressInfo_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(75, getUserDressInfo()); - } - if (allowBeLocated_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1001, allowBeLocated_); - } - if (allowFindByContacts_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1002, allowFindByContacts_); - } - if (allowOthersDownloadVideo_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1003, allowOthersDownloadVideo_); - } - if (allowOthersDownloadWhenSharingVideo_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1004, allowOthersDownloadWhenSharingVideo_); - } - if (allowShareShowProfile_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1005, allowShareShowProfile_); - } - if (allowShowInGossip_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1006, allowShowInGossip_); - } - if (allowShowMyAction_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1007, allowShowMyAction_); - } - if (allowStrangeComment_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1008, allowStrangeComment_); - } - if (allowUnfollowerComment_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1009, allowUnfollowerComment_); - } - if (allowUseLinkmic_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1010, allowUseLinkmic_); - } - if (anchorLevel_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1011, getAnchorLevel()); - } - if (avatarJpg_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1012, getAvatarJpg()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bgImgUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1013, bgImgUrl_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthdayDescription_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1014, birthdayDescription_); - } - if (birthdayValid_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1015, birthdayValid_); - } - if (blockStatus_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1016, blockStatus_); - } - if (commentRestrict_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1017, commentRestrict_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constellation_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1018, constellation_); - } - if (disableIchat_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1019, disableIchat_); - } - if (enableIchatImg_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1020, enableIchatImg_); - } - if (exp_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1021, exp_); - } - if (fanTicketCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1022, fanTicketCount_); - } - if (foldStrangerChat_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1023, foldStrangerChat_); - } - if (followStatus_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1024, followStatus_); - } - if (hotsoonVerified_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1025, hotsoonVerified_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hotsoonVerifiedReason_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1026, hotsoonVerifiedReason_); - } - if (ichatRestrictType_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1027, ichatRestrictType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1028, idStr_); - } - if (isFollower_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1029, isFollower_); - } - if (isFollowing_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1030, isFollowing_); - } - if (needProfileGuide_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1031, needProfileGuide_); - } - if (payScores_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1032, payScores_); - } - if (pushCommentStatus_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1033, pushCommentStatus_); - } - if (pushDigg_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1034, pushDigg_); - } - if (pushFollow_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1035, pushFollow_); - } - if (pushFriendAction_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1036, pushFriendAction_); - } - if (pushIchat_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1037, pushIchat_); - } - if (pushStatus_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1038, pushStatus_); - } - if (pushVideoPost_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1039, pushVideoPost_); - } - if (pushVideoRecommend_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1040, pushVideoRecommend_); - } - if (stats_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1041, getStats()); - } - if (verifiedMobile_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1042, verifiedMobile_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedReason_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1043, verifiedReason_); - } - if (withCarManagementPermission_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1044, withCarManagementPermission_); - } - if (ageRange_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1045, ageRange_); - } - if (watchDurationMonth_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1046, watchDurationMonth_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User) obj; - - if (getId() - != other.getId()) return false; - if (getShortId() - != other.getShortId()) return false; - if (!getNickname() - .equals(other.getNickname())) return false; - if (getGender() - != other.getGender()) return false; - if (!getSignature() - .equals(other.getSignature())) return false; - if (getLevel() - != other.getLevel()) return false; - if (getBirthday() - != other.getBirthday()) return false; - if (!getTelephone() - .equals(other.getTelephone())) return false; - if (hasAvatarThumb() != other.hasAvatarThumb()) return false; - if (hasAvatarThumb()) { - if (!getAvatarThumb() - .equals(other.getAvatarThumb())) return false; - } - if (hasAvatarMedium() != other.hasAvatarMedium()) return false; - if (hasAvatarMedium()) { - if (!getAvatarMedium() - .equals(other.getAvatarMedium())) return false; - } - if (hasAvatarLarge() != other.hasAvatarLarge()) return false; - if (hasAvatarLarge()) { - if (!getAvatarLarge() - .equals(other.getAvatarLarge())) return false; - } - if (getVerified() - != other.getVerified()) return false; - if (getExperience() - != other.getExperience()) return false; - if (!getCity() - .equals(other.getCity())) return false; - if (getStatus() - != other.getStatus()) return false; - if (getCreateTime() - != other.getCreateTime()) return false; - if (getModifyTime() - != other.getModifyTime()) return false; - if (getSecret() - != other.getSecret()) return false; - if (!getShareQrcodeUri() - .equals(other.getShareQrcodeUri())) return false; - if (getIncomeSharePercent() - != other.getIncomeSharePercent()) return false; - if (hasBadgeImageListList() != other.hasBadgeImageListList()) return false; - if (hasBadgeImageListList()) { - if (!getBadgeImageListList() - .equals(other.getBadgeImageListList())) return false; - } - if (hasFollowInfo() != other.hasFollowInfo()) return false; - if (hasFollowInfo()) { - if (!getFollowInfo() - .equals(other.getFollowInfo())) return false; - } - if (hasPayGrade() != other.hasPayGrade()) return false; - if (hasPayGrade()) { - if (!getPayGrade() - .equals(other.getPayGrade())) return false; - } - if (hasFansClub() != other.hasFansClub()) return false; - if (hasFansClub()) { - if (!getFansClub() - .equals(other.getFansClub())) return false; - } - if (hasBorder() != other.hasBorder()) return false; - if (hasBorder()) { - if (!getBorder() - .equals(other.getBorder())) return false; - } - if (!getSpecialId() - .equals(other.getSpecialId())) return false; - if (hasAvatarBorder() != other.hasAvatarBorder()) return false; - if (hasAvatarBorder()) { - if (!getAvatarBorder() - .equals(other.getAvatarBorder())) return false; - } - if (hasMedal() != other.hasMedal()) return false; - if (hasMedal()) { - if (!getMedal() - .equals(other.getMedal())) return false; - } - if (!getRealTimeIconsListList() - .equals(other.getRealTimeIconsListList())) return false; - if (!getNewRealTimeIconsListList() - .equals(other.getNewRealTimeIconsListList())) return false; - if (getTopVipNo() - != other.getTopVipNo()) return false; - if (hasUserAttr() != other.hasUserAttr()) return false; - if (hasUserAttr()) { - if (!getUserAttr() - .equals(other.getUserAttr())) return false; - } - if (hasOwnRoom() != other.hasOwnRoom()) return false; - if (hasOwnRoom()) { - if (!getOwnRoom() - .equals(other.getOwnRoom())) return false; - } - if (getPayScore() - != other.getPayScore()) return false; - if (getTicketCount() - != other.getTicketCount()) return false; - if (hasAnchorInfo() != other.hasAnchorInfo()) return false; - if (hasAnchorInfo()) { - if (!getAnchorInfo() - .equals(other.getAnchorInfo())) return false; - } - if (getLinkMicStats() - != other.getLinkMicStats()) return false; - if (!getDisplayId() - .equals(other.getDisplayId())) return false; - if (getWithCommercePermission() - != other.getWithCommercePermission()) return false; - if (getWithFusionShopEntry() - != other.getWithFusionShopEntry()) return false; - if (getTotalRechargeDiamondCount() - != other.getTotalRechargeDiamondCount()) return false; - if (hasWebcastAnchorLevel() != other.hasWebcastAnchorLevel()) return false; - if (hasWebcastAnchorLevel()) { - if (!getWebcastAnchorLevel() - .equals(other.getWebcastAnchorLevel())) return false; - } - if (!getVerifiedContent() - .equals(other.getVerifiedContent())) return false; - if (hasAuthorStats() != other.hasAuthorStats()) return false; - if (hasAuthorStats()) { - if (!getAuthorStats() - .equals(other.getAuthorStats())) return false; - } - if (!getTopFansListList() - .equals(other.getTopFansListList())) return false; - if (!getSecUid() - .equals(other.getSecUid())) return false; - if (getUserRole() - != other.getUserRole()) return false; - if (hasXiguaInfo() != other.hasXiguaInfo()) return false; - if (hasXiguaInfo()) { - if (!getXiguaInfo() - .equals(other.getXiguaInfo())) return false; - } - if (hasActivityReward() != other.hasActivityReward()) return false; - if (hasActivityReward()) { - if (!getActivityReward() - .equals(other.getActivityReward())) return false; - } - if (hasNobleInfo() != other.hasNobleInfo()) return false; - if (hasNobleInfo()) { - if (!getNobleInfo() - .equals(other.getNobleInfo())) return false; - } - if (hasBrotherhoodInfo() != other.hasBrotherhoodInfo()) return false; - if (hasBrotherhoodInfo()) { - if (!getBrotherhoodInfo() - .equals(other.getBrotherhoodInfo())) return false; - } - if (hasPersonalCard() != other.hasPersonalCard()) return false; - if (hasPersonalCard()) { - if (!getPersonalCard() - .equals(other.getPersonalCard())) return false; - } - if (hasAuthenticationInfo() != other.hasAuthenticationInfo()) return false; - if (hasAuthenticationInfo()) { - if (!getAuthenticationInfo() - .equals(other.getAuthenticationInfo())) return false; - } - if (getAuthorizationInfo() - != other.getAuthorizationInfo()) return false; - if (getAdversaryAuthorizationInfo() - != other.getAdversaryAuthorizationInfo()) return false; - if (hasPoiInfo() != other.hasPoiInfo()) return false; - if (hasPoiInfo()) { - if (!getPoiInfo() - .equals(other.getPoiInfo())) return false; - } - if (hasMediaBadgeImageListList() != other.hasMediaBadgeImageListList()) return false; - if (hasMediaBadgeImageListList()) { - if (!getMediaBadgeImageListList() - .equals(other.getMediaBadgeImageListList())) return false; - } - if (getAdversaryUserStatus() - != other.getAdversaryUserStatus()) return false; - if (hasUserVipInfo() != other.hasUserVipInfo()) return false; - if (hasUserVipInfo()) { - if (!getUserVipInfo() - .equals(other.getUserVipInfo())) return false; - } - if (!getCommerceWebcastConfigIdsListList() - .equals(other.getCommerceWebcastConfigIdsListList())) return false; - if (hasBadgeImageListV2List() != other.hasBadgeImageListV2List()) return false; - if (hasBadgeImageListV2List()) { - if (!getBadgeImageListV2List() - .equals(other.getBadgeImageListV2List())) return false; - } - if (!getLocationCity() - .equals(other.getLocationCity())) return false; - if (hasFansGroupInfo() != other.hasFansGroupInfo()) return false; - if (hasFansGroupInfo()) { - if (!getFansGroupInfo() - .equals(other.getFansGroupInfo())) return false; - } - if (!getRemarkName() - .equals(other.getRemarkName())) return false; - if (getMysteryMan() - != other.getMysteryMan()) return false; - if (!getWebRid() - .equals(other.getWebRid())) return false; - if (!getDesensitizedNickname() - .equals(other.getDesensitizedNickname())) return false; - if (hasJAccreditInfo() != other.hasJAccreditInfo()) return false; - if (hasJAccreditInfo()) { - if (!getJAccreditInfo() - .equals(other.getJAccreditInfo())) return false; - } - if (hasSubscribe() != other.hasSubscribe()) return false; - if (hasSubscribe()) { - if (!getSubscribe() - .equals(other.getSubscribe())) return false; - } - if (getIsAnonymous() - != other.getIsAnonymous()) return false; - if (getConsumeDiamondLevel() - != other.getConsumeDiamondLevel()) return false; - if (!getWebcastUid() - .equals(other.getWebcastUid())) return false; - if (hasProfileStyleParams() != other.hasProfileStyleParams()) return false; - if (hasProfileStyleParams()) { - if (!getProfileStyleParams() - .equals(other.getProfileStyleParams())) return false; - } - if (hasUserDressInfo() != other.hasUserDressInfo()) return false; - if (hasUserDressInfo()) { - if (!getUserDressInfo() - .equals(other.getUserDressInfo())) return false; - } - if (getAllowBeLocated() - != other.getAllowBeLocated()) return false; - if (getAllowFindByContacts() - != other.getAllowFindByContacts()) return false; - if (getAllowOthersDownloadVideo() - != other.getAllowOthersDownloadVideo()) return false; - if (getAllowOthersDownloadWhenSharingVideo() - != other.getAllowOthersDownloadWhenSharingVideo()) return false; - if (getAllowShareShowProfile() - != other.getAllowShareShowProfile()) return false; - if (getAllowShowInGossip() - != other.getAllowShowInGossip()) return false; - if (getAllowShowMyAction() - != other.getAllowShowMyAction()) return false; - if (getAllowStrangeComment() - != other.getAllowStrangeComment()) return false; - if (getAllowUnfollowerComment() - != other.getAllowUnfollowerComment()) return false; - if (getAllowUseLinkmic() - != other.getAllowUseLinkmic()) return false; - if (hasAnchorLevel() != other.hasAnchorLevel()) return false; - if (hasAnchorLevel()) { - if (!getAnchorLevel() - .equals(other.getAnchorLevel())) return false; - } - if (hasAvatarJpg() != other.hasAvatarJpg()) return false; - if (hasAvatarJpg()) { - if (!getAvatarJpg() - .equals(other.getAvatarJpg())) return false; - } - if (!getBgImgUrl() - .equals(other.getBgImgUrl())) return false; - if (!getBirthdayDescription() - .equals(other.getBirthdayDescription())) return false; - if (getBirthdayValid() - != other.getBirthdayValid()) return false; - if (getBlockStatus() - != other.getBlockStatus()) return false; - if (getCommentRestrict() - != other.getCommentRestrict()) return false; - if (!getConstellation() - .equals(other.getConstellation())) return false; - if (getDisableIchat() - != other.getDisableIchat()) return false; - if (getEnableIchatImg() - != other.getEnableIchatImg()) return false; - if (getExp() - != other.getExp()) return false; - if (getFanTicketCount() - != other.getFanTicketCount()) return false; - if (getFoldStrangerChat() - != other.getFoldStrangerChat()) return false; - if (getFollowStatus() - != other.getFollowStatus()) return false; - if (getHotsoonVerified() - != other.getHotsoonVerified()) return false; - if (!getHotsoonVerifiedReason() - .equals(other.getHotsoonVerifiedReason())) return false; - if (getIchatRestrictType() - != other.getIchatRestrictType()) return false; - if (!getIdStr() - .equals(other.getIdStr())) return false; - if (getIsFollower() - != other.getIsFollower()) return false; - if (getIsFollowing() - != other.getIsFollowing()) return false; - if (getNeedProfileGuide() - != other.getNeedProfileGuide()) return false; - if (getPayScores() - != other.getPayScores()) return false; - if (getPushCommentStatus() - != other.getPushCommentStatus()) return false; - if (getPushDigg() - != other.getPushDigg()) return false; - if (getPushFollow() - != other.getPushFollow()) return false; - if (getPushFriendAction() - != other.getPushFriendAction()) return false; - if (getPushIchat() - != other.getPushIchat()) return false; - if (getPushStatus() - != other.getPushStatus()) return false; - if (getPushVideoPost() - != other.getPushVideoPost()) return false; - if (getPushVideoRecommend() - != other.getPushVideoRecommend()) return false; - if (hasStats() != other.hasStats()) return false; - if (hasStats()) { - if (!getStats() - .equals(other.getStats())) return false; - } - if (getVerifiedMobile() - != other.getVerifiedMobile()) return false; - if (!getVerifiedReason() - .equals(other.getVerifiedReason())) return false; - if (getWithCarManagementPermission() - != other.getWithCarManagementPermission()) return false; - if (getAgeRange() - != other.getAgeRange()) return false; - if (getWatchDurationMonth() - != other.getWatchDurationMonth()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getId()); - hash = (37 * hash) + SHORTID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getShortId()); - hash = (37 * hash) + NICKNAME_FIELD_NUMBER; - hash = (53 * hash) + getNickname().hashCode(); - hash = (37 * hash) + GENDER_FIELD_NUMBER; - hash = (53 * hash) + getGender(); - hash = (37 * hash) + SIGNATURE_FIELD_NUMBER; - hash = (53 * hash) + getSignature().hashCode(); - hash = (37 * hash) + LEVEL_FIELD_NUMBER; - hash = (53 * hash) + getLevel(); - hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getBirthday()); - hash = (37 * hash) + TELEPHONE_FIELD_NUMBER; - hash = (53 * hash) + getTelephone().hashCode(); - if (hasAvatarThumb()) { - hash = (37 * hash) + AVATARTHUMB_FIELD_NUMBER; - hash = (53 * hash) + getAvatarThumb().hashCode(); - } - if (hasAvatarMedium()) { - hash = (37 * hash) + AVATARMEDIUM_FIELD_NUMBER; - hash = (53 * hash) + getAvatarMedium().hashCode(); - } - if (hasAvatarLarge()) { - hash = (37 * hash) + AVATARLARGE_FIELD_NUMBER; - hash = (53 * hash) + getAvatarLarge().hashCode(); - } - hash = (37 * hash) + VERIFIED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getVerified()); - hash = (37 * hash) + EXPERIENCE_FIELD_NUMBER; - hash = (53 * hash) + getExperience(); - hash = (37 * hash) + CITY_FIELD_NUMBER; - hash = (53 * hash) + getCity().hashCode(); - hash = (37 * hash) + STATUS_FIELD_NUMBER; - hash = (53 * hash) + getStatus(); - hash = (37 * hash) + CREATETIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getCreateTime()); - hash = (37 * hash) + MODIFYTIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getModifyTime()); - hash = (37 * hash) + SECRET_FIELD_NUMBER; - hash = (53 * hash) + getSecret(); - hash = (37 * hash) + SHAREQRCODEURI_FIELD_NUMBER; - hash = (53 * hash) + getShareQrcodeUri().hashCode(); - hash = (37 * hash) + INCOMESHAREPERCENT_FIELD_NUMBER; - hash = (53 * hash) + getIncomeSharePercent(); - if (hasBadgeImageListList()) { - hash = (37 * hash) + BADGEIMAGELISTLIST_FIELD_NUMBER; - hash = (53 * hash) + getBadgeImageListList().hashCode(); - } - if (hasFollowInfo()) { - hash = (37 * hash) + FOLLOWINFO_FIELD_NUMBER; - hash = (53 * hash) + getFollowInfo().hashCode(); - } - if (hasPayGrade()) { - hash = (37 * hash) + PAYGRADE_FIELD_NUMBER; - hash = (53 * hash) + getPayGrade().hashCode(); - } - if (hasFansClub()) { - hash = (37 * hash) + FANSCLUB_FIELD_NUMBER; - hash = (53 * hash) + getFansClub().hashCode(); - } - if (hasBorder()) { - hash = (37 * hash) + BORDER_FIELD_NUMBER; - hash = (53 * hash) + getBorder().hashCode(); - } - hash = (37 * hash) + SPECIALID_FIELD_NUMBER; - hash = (53 * hash) + getSpecialId().hashCode(); - if (hasAvatarBorder()) { - hash = (37 * hash) + AVATARBORDER_FIELD_NUMBER; - hash = (53 * hash) + getAvatarBorder().hashCode(); - } - if (hasMedal()) { - hash = (37 * hash) + MEDAL_FIELD_NUMBER; - hash = (53 * hash) + getMedal().hashCode(); - } - if (getRealTimeIconsListCount() > 0) { - hash = (37 * hash) + REALTIMEICONSLIST_FIELD_NUMBER; - hash = (53 * hash) + getRealTimeIconsListList().hashCode(); - } - if (getNewRealTimeIconsListCount() > 0) { - hash = (37 * hash) + NEWREALTIMEICONSLIST_FIELD_NUMBER; - hash = (53 * hash) + getNewRealTimeIconsListList().hashCode(); - } - hash = (37 * hash) + TOPVIPNO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTopVipNo()); - if (hasUserAttr()) { - hash = (37 * hash) + USERATTR_FIELD_NUMBER; - hash = (53 * hash) + getUserAttr().hashCode(); - } - if (hasOwnRoom()) { - hash = (37 * hash) + OWNROOM_FIELD_NUMBER; - hash = (53 * hash) + getOwnRoom().hashCode(); - } - hash = (37 * hash) + PAYSCORE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPayScore()); - hash = (37 * hash) + TICKETCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTicketCount()); - if (hasAnchorInfo()) { - hash = (37 * hash) + ANCHORINFO_FIELD_NUMBER; - hash = (53 * hash) + getAnchorInfo().hashCode(); - } - hash = (37 * hash) + LINKMICSTATS_FIELD_NUMBER; - hash = (53 * hash) + getLinkMicStats(); - hash = (37 * hash) + DISPLAYID_FIELD_NUMBER; - hash = (53 * hash) + getDisplayId().hashCode(); - hash = (37 * hash) + WITHCOMMERCEPERMISSION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getWithCommercePermission()); - hash = (37 * hash) + WITHFUSIONSHOPENTRY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getWithFusionShopEntry()); - hash = (37 * hash) + TOTALRECHARGEDIAMONDCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTotalRechargeDiamondCount()); - if (hasWebcastAnchorLevel()) { - hash = (37 * hash) + WEBCASTANCHORLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getWebcastAnchorLevel().hashCode(); - } - hash = (37 * hash) + VERIFIEDCONTENT_FIELD_NUMBER; - hash = (53 * hash) + getVerifiedContent().hashCode(); - if (hasAuthorStats()) { - hash = (37 * hash) + AUTHORSTATS_FIELD_NUMBER; - hash = (53 * hash) + getAuthorStats().hashCode(); - } - if (getTopFansListCount() > 0) { - hash = (37 * hash) + TOPFANSLIST_FIELD_NUMBER; - hash = (53 * hash) + getTopFansListList().hashCode(); - } - hash = (37 * hash) + SECUID_FIELD_NUMBER; - hash = (53 * hash) + getSecUid().hashCode(); - hash = (37 * hash) + USERROLE_FIELD_NUMBER; - hash = (53 * hash) + getUserRole(); - if (hasXiguaInfo()) { - hash = (37 * hash) + XIGUAINFO_FIELD_NUMBER; - hash = (53 * hash) + getXiguaInfo().hashCode(); - } - if (hasActivityReward()) { - hash = (37 * hash) + ACTIVITYREWARD_FIELD_NUMBER; - hash = (53 * hash) + getActivityReward().hashCode(); - } - if (hasNobleInfo()) { - hash = (37 * hash) + NOBLEINFO_FIELD_NUMBER; - hash = (53 * hash) + getNobleInfo().hashCode(); - } - if (hasBrotherhoodInfo()) { - hash = (37 * hash) + BROTHERHOODINFO_FIELD_NUMBER; - hash = (53 * hash) + getBrotherhoodInfo().hashCode(); - } - if (hasPersonalCard()) { - hash = (37 * hash) + PERSONALCARD_FIELD_NUMBER; - hash = (53 * hash) + getPersonalCard().hashCode(); - } - if (hasAuthenticationInfo()) { - hash = (37 * hash) + AUTHENTICATIONINFO_FIELD_NUMBER; - hash = (53 * hash) + getAuthenticationInfo().hashCode(); - } - hash = (37 * hash) + AUTHORIZATIONINFO_FIELD_NUMBER; - hash = (53 * hash) + getAuthorizationInfo(); - hash = (37 * hash) + ADVERSARYAUTHORIZATIONINFO_FIELD_NUMBER; - hash = (53 * hash) + getAdversaryAuthorizationInfo(); - if (hasPoiInfo()) { - hash = (37 * hash) + POIINFO_FIELD_NUMBER; - hash = (53 * hash) + getPoiInfo().hashCode(); - } - if (hasMediaBadgeImageListList()) { - hash = (37 * hash) + MEDIABADGEIMAGELISTLIST_FIELD_NUMBER; - hash = (53 * hash) + getMediaBadgeImageListList().hashCode(); - } - hash = (37 * hash) + ADVERSARYUSERSTATUS_FIELD_NUMBER; - hash = (53 * hash) + getAdversaryUserStatus(); - if (hasUserVipInfo()) { - hash = (37 * hash) + USERVIPINFO_FIELD_NUMBER; - hash = (53 * hash) + getUserVipInfo().hashCode(); - } - if (getCommerceWebcastConfigIdsListCount() > 0) { - hash = (37 * hash) + COMMERCEWEBCASTCONFIGIDSLIST_FIELD_NUMBER; - hash = (53 * hash) + getCommerceWebcastConfigIdsListList().hashCode(); - } - if (hasBadgeImageListV2List()) { - hash = (37 * hash) + BADGEIMAGELISTV2LIST_FIELD_NUMBER; - hash = (53 * hash) + getBadgeImageListV2List().hashCode(); - } - hash = (37 * hash) + LOCATIONCITY_FIELD_NUMBER; - hash = (53 * hash) + getLocationCity().hashCode(); - if (hasFansGroupInfo()) { - hash = (37 * hash) + FANSGROUPINFO_FIELD_NUMBER; - hash = (53 * hash) + getFansGroupInfo().hashCode(); - } - hash = (37 * hash) + REMARKNAME_FIELD_NUMBER; - hash = (53 * hash) + getRemarkName().hashCode(); - hash = (37 * hash) + MYSTERYMAN_FIELD_NUMBER; - hash = (53 * hash) + getMysteryMan(); - hash = (37 * hash) + WEBRID_FIELD_NUMBER; - hash = (53 * hash) + getWebRid().hashCode(); - hash = (37 * hash) + DESENSITIZEDNICKNAME_FIELD_NUMBER; - hash = (53 * hash) + getDesensitizedNickname().hashCode(); - if (hasJAccreditInfo()) { - hash = (37 * hash) + JACCREDITINFO_FIELD_NUMBER; - hash = (53 * hash) + getJAccreditInfo().hashCode(); - } - if (hasSubscribe()) { - hash = (37 * hash) + SUBSCRIBE_FIELD_NUMBER; - hash = (53 * hash) + getSubscribe().hashCode(); - } - hash = (37 * hash) + ISANONYMOUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsAnonymous()); - hash = (37 * hash) + CONSUMEDIAMONDLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getConsumeDiamondLevel(); - hash = (37 * hash) + WEBCASTUID_FIELD_NUMBER; - hash = (53 * hash) + getWebcastUid().hashCode(); - if (hasProfileStyleParams()) { - hash = (37 * hash) + PROFILESTYLEPARAMS_FIELD_NUMBER; - hash = (53 * hash) + getProfileStyleParams().hashCode(); - } - if (hasUserDressInfo()) { - hash = (37 * hash) + USERDRESSINFO_FIELD_NUMBER; - hash = (53 * hash) + getUserDressInfo().hashCode(); - } - hash = (37 * hash) + ALLOWBELOCATED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowBeLocated()); - hash = (37 * hash) + ALLOWFINDBYCONTACTS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowFindByContacts()); - hash = (37 * hash) + ALLOWOTHERSDOWNLOADVIDEO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowOthersDownloadVideo()); - hash = (37 * hash) + ALLOWOTHERSDOWNLOADWHENSHARINGVIDEO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowOthersDownloadWhenSharingVideo()); - hash = (37 * hash) + ALLOWSHARESHOWPROFILE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowShareShowProfile()); - hash = (37 * hash) + ALLOWSHOWINGOSSIP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowShowInGossip()); - hash = (37 * hash) + ALLOWSHOWMYACTION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowShowMyAction()); - hash = (37 * hash) + ALLOWSTRANGECOMMENT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowStrangeComment()); - hash = (37 * hash) + ALLOWUNFOLLOWERCOMMENT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowUnfollowerComment()); - hash = (37 * hash) + ALLOWUSELINKMIC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAllowUseLinkmic()); - if (hasAnchorLevel()) { - hash = (37 * hash) + ANCHORLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getAnchorLevel().hashCode(); - } - if (hasAvatarJpg()) { - hash = (37 * hash) + AVATARJPG_FIELD_NUMBER; - hash = (53 * hash) + getAvatarJpg().hashCode(); - } - hash = (37 * hash) + BGIMGURL_FIELD_NUMBER; - hash = (53 * hash) + getBgImgUrl().hashCode(); - hash = (37 * hash) + BIRTHDAYDESCRIPTION_FIELD_NUMBER; - hash = (53 * hash) + getBirthdayDescription().hashCode(); - hash = (37 * hash) + BIRTHDAYVALID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getBirthdayValid()); - hash = (37 * hash) + BLOCKSTATUS_FIELD_NUMBER; - hash = (53 * hash) + getBlockStatus(); - hash = (37 * hash) + COMMENTRESTRICT_FIELD_NUMBER; - hash = (53 * hash) + getCommentRestrict(); - hash = (37 * hash) + CONSTELLATION_FIELD_NUMBER; - hash = (53 * hash) + getConstellation().hashCode(); - hash = (37 * hash) + DISABLEICHAT_FIELD_NUMBER; - hash = (53 * hash) + getDisableIchat(); - hash = (37 * hash) + ENABLEICHATIMG_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getEnableIchatImg()); - hash = (37 * hash) + EXP_FIELD_NUMBER; - hash = (53 * hash) + getExp(); - hash = (37 * hash) + FANTICKETCOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFanTicketCount()); - hash = (37 * hash) + FOLDSTRANGERCHAT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getFoldStrangerChat()); - hash = (37 * hash) + FOLLOWSTATUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFollowStatus()); - hash = (37 * hash) + HOTSOONVERIFIED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getHotsoonVerified()); - hash = (37 * hash) + HOTSOONVERIFIEDREASON_FIELD_NUMBER; - hash = (53 * hash) + getHotsoonVerifiedReason().hashCode(); - hash = (37 * hash) + ICHATRESTRICTTYPE_FIELD_NUMBER; - hash = (53 * hash) + getIchatRestrictType(); - hash = (37 * hash) + IDSTR_FIELD_NUMBER; - hash = (53 * hash) + getIdStr().hashCode(); - hash = (37 * hash) + ISFOLLOWER_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsFollower()); - hash = (37 * hash) + ISFOLLOWING_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsFollowing()); - hash = (37 * hash) + NEEDPROFILEGUIDE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getNeedProfileGuide()); - hash = (37 * hash) + PAYSCORES_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPayScores()); - hash = (37 * hash) + PUSHCOMMENTSTATUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushCommentStatus()); - hash = (37 * hash) + PUSHDIGG_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushDigg()); - hash = (37 * hash) + PUSHFOLLOW_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushFollow()); - hash = (37 * hash) + PUSHFRIENDACTION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushFriendAction()); - hash = (37 * hash) + PUSHICHAT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushIchat()); - hash = (37 * hash) + PUSHSTATUS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushStatus()); - hash = (37 * hash) + PUSHVIDEOPOST_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushVideoPost()); - hash = (37 * hash) + PUSHVIDEORECOMMEND_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getPushVideoRecommend()); - if (hasStats()) { - hash = (37 * hash) + STATS_FIELD_NUMBER; - hash = (53 * hash) + getStats().hashCode(); - } - hash = (37 * hash) + VERIFIEDMOBILE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getVerifiedMobile()); - hash = (37 * hash) + VERIFIEDREASON_FIELD_NUMBER; - hash = (53 * hash) + getVerifiedReason().hashCode(); - hash = (37 * hash) + WITHCARMANAGEMENTPERMISSION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getWithCarManagementPermission()); - hash = (37 * hash) + AGERANGE_FIELD_NUMBER; - hash = (53 * hash) + getAgeRange(); - hash = (37 * hash) + WATCHDURATIONMONTH_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getWatchDurationMonth()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code User} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:User) - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - bitField1_ = 0; - bitField2_ = 0; - bitField3_ = 0; - id_ = 0L; - shortId_ = 0L; - nickname_ = ""; - gender_ = 0; - signature_ = ""; - level_ = 0; - birthday_ = 0L; - telephone_ = ""; - avatarThumb_ = null; - if (avatarThumbBuilder_ != null) { - avatarThumbBuilder_.dispose(); - avatarThumbBuilder_ = null; - } - avatarMedium_ = null; - if (avatarMediumBuilder_ != null) { - avatarMediumBuilder_.dispose(); - avatarMediumBuilder_ = null; - } - avatarLarge_ = null; - if (avatarLargeBuilder_ != null) { - avatarLargeBuilder_.dispose(); - avatarLargeBuilder_ = null; - } - verified_ = false; - experience_ = 0; - city_ = ""; - status_ = 0; - createTime_ = 0L; - modifyTime_ = 0L; - secret_ = 0; - shareQrcodeUri_ = ""; - incomeSharePercent_ = 0; - badgeImageListList_ = null; - if (badgeImageListListBuilder_ != null) { - badgeImageListListBuilder_.dispose(); - badgeImageListListBuilder_ = null; - } - followInfo_ = null; - if (followInfoBuilder_ != null) { - followInfoBuilder_.dispose(); - followInfoBuilder_ = null; - } - payGrade_ = null; - if (payGradeBuilder_ != null) { - payGradeBuilder_.dispose(); - payGradeBuilder_ = null; - } - fansClub_ = null; - if (fansClubBuilder_ != null) { - fansClubBuilder_.dispose(); - fansClubBuilder_ = null; - } - border_ = null; - if (borderBuilder_ != null) { - borderBuilder_.dispose(); - borderBuilder_ = null; - } - specialId_ = ""; - avatarBorder_ = null; - if (avatarBorderBuilder_ != null) { - avatarBorderBuilder_.dispose(); - avatarBorderBuilder_ = null; - } - medal_ = null; - if (medalBuilder_ != null) { - medalBuilder_.dispose(); - medalBuilder_ = null; - } - if (realTimeIconsListBuilder_ == null) { - realTimeIconsList_ = java.util.Collections.emptyList(); - } else { - realTimeIconsList_ = null; - realTimeIconsListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x10000000); - if (newRealTimeIconsListBuilder_ == null) { - newRealTimeIconsList_ = java.util.Collections.emptyList(); - } else { - newRealTimeIconsList_ = null; - newRealTimeIconsListBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x20000000); - topVipNo_ = 0L; - userAttr_ = null; - if (userAttrBuilder_ != null) { - userAttrBuilder_.dispose(); - userAttrBuilder_ = null; - } - ownRoom_ = null; - if (ownRoomBuilder_ != null) { - ownRoomBuilder_.dispose(); - ownRoomBuilder_ = null; - } - payScore_ = 0L; - ticketCount_ = 0L; - anchorInfo_ = null; - if (anchorInfoBuilder_ != null) { - anchorInfoBuilder_.dispose(); - anchorInfoBuilder_ = null; - } - linkMicStats_ = 0; - displayId_ = ""; - withCommercePermission_ = false; - withFusionShopEntry_ = false; - totalRechargeDiamondCount_ = 0L; - webcastAnchorLevel_ = null; - if (webcastAnchorLevelBuilder_ != null) { - webcastAnchorLevelBuilder_.dispose(); - webcastAnchorLevelBuilder_ = null; - } - verifiedContent_ = ""; - authorStats_ = null; - if (authorStatsBuilder_ != null) { - authorStatsBuilder_.dispose(); - authorStatsBuilder_ = null; - } - if (topFansListBuilder_ == null) { - topFansList_ = java.util.Collections.emptyList(); - } else { - topFansList_ = null; - topFansListBuilder_.clear(); - } - bitField1_ = (bitField1_ & ~0x00001000); - secUid_ = ""; - userRole_ = 0; - xiguaInfo_ = null; - if (xiguaInfoBuilder_ != null) { - xiguaInfoBuilder_.dispose(); - xiguaInfoBuilder_ = null; - } - activityReward_ = null; - if (activityRewardBuilder_ != null) { - activityRewardBuilder_.dispose(); - activityRewardBuilder_ = null; - } - nobleInfo_ = null; - if (nobleInfoBuilder_ != null) { - nobleInfoBuilder_.dispose(); - nobleInfoBuilder_ = null; - } - brotherhoodInfo_ = null; - if (brotherhoodInfoBuilder_ != null) { - brotherhoodInfoBuilder_.dispose(); - brotherhoodInfoBuilder_ = null; - } - personalCard_ = null; - if (personalCardBuilder_ != null) { - personalCardBuilder_.dispose(); - personalCardBuilder_ = null; - } - authenticationInfo_ = null; - if (authenticationInfoBuilder_ != null) { - authenticationInfoBuilder_.dispose(); - authenticationInfoBuilder_ = null; - } - authorizationInfo_ = 0; - adversaryAuthorizationInfo_ = 0; - poiInfo_ = null; - if (poiInfoBuilder_ != null) { - poiInfoBuilder_.dispose(); - poiInfoBuilder_ = null; - } - mediaBadgeImageListList_ = null; - if (mediaBadgeImageListListBuilder_ != null) { - mediaBadgeImageListListBuilder_.dispose(); - mediaBadgeImageListListBuilder_ = null; - } - adversaryUserStatus_ = 0; - userVipInfo_ = null; - if (userVipInfoBuilder_ != null) { - userVipInfoBuilder_.dispose(); - userVipInfoBuilder_ = null; - } - commerceWebcastConfigIdsList_ = emptyLongList(); - badgeImageListV2List_ = null; - if (badgeImageListV2ListBuilder_ != null) { - badgeImageListV2ListBuilder_.dispose(); - badgeImageListV2ListBuilder_ = null; - } - locationCity_ = ""; - fansGroupInfo_ = null; - if (fansGroupInfoBuilder_ != null) { - fansGroupInfoBuilder_.dispose(); - fansGroupInfoBuilder_ = null; - } - remarkName_ = ""; - mysteryMan_ = 0; - webRid_ = ""; - desensitizedNickname_ = ""; - jAccreditInfo_ = null; - if (jAccreditInfoBuilder_ != null) { - jAccreditInfoBuilder_.dispose(); - jAccreditInfoBuilder_ = null; - } - subscribe_ = null; - if (subscribeBuilder_ != null) { - subscribeBuilder_.dispose(); - subscribeBuilder_ = null; - } - isAnonymous_ = false; - consumeDiamondLevel_ = 0; - webcastUid_ = ""; - profileStyleParams_ = null; - if (profileStyleParamsBuilder_ != null) { - profileStyleParamsBuilder_.dispose(); - profileStyleParamsBuilder_ = null; - } - userDressInfo_ = null; - if (userDressInfoBuilder_ != null) { - userDressInfoBuilder_.dispose(); - userDressInfoBuilder_ = null; - } - allowBeLocated_ = false; - allowFindByContacts_ = false; - allowOthersDownloadVideo_ = false; - allowOthersDownloadWhenSharingVideo_ = false; - allowShareShowProfile_ = false; - allowShowInGossip_ = false; - allowShowMyAction_ = false; - allowStrangeComment_ = false; - allowUnfollowerComment_ = false; - allowUseLinkmic_ = false; - anchorLevel_ = null; - if (anchorLevelBuilder_ != null) { - anchorLevelBuilder_.dispose(); - anchorLevelBuilder_ = null; - } - avatarJpg_ = null; - if (avatarJpgBuilder_ != null) { - avatarJpgBuilder_.dispose(); - avatarJpgBuilder_ = null; - } - bgImgUrl_ = ""; - birthdayDescription_ = ""; - birthdayValid_ = false; - blockStatus_ = 0; - commentRestrict_ = 0; - constellation_ = ""; - disableIchat_ = 0; - enableIchatImg_ = 0L; - exp_ = 0; - fanTicketCount_ = 0L; - foldStrangerChat_ = false; - followStatus_ = 0L; - hotsoonVerified_ = false; - hotsoonVerifiedReason_ = ""; - ichatRestrictType_ = 0; - idStr_ = ""; - isFollower_ = false; - isFollowing_ = false; - needProfileGuide_ = false; - payScores_ = 0L; - pushCommentStatus_ = false; - pushDigg_ = false; - pushFollow_ = false; - pushFriendAction_ = false; - pushIchat_ = false; - pushStatus_ = false; - pushVideoPost_ = false; - pushVideoRecommend_ = false; - stats_ = null; - if (statsBuilder_ != null) { - statsBuilder_.dispose(); - statsBuilder_ = null; - } - verifiedMobile_ = false; - verifiedReason_ = ""; - withCarManagementPermission_ = false; - ageRange_ = 0; - watchDurationMonth_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User build() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User buildPartial() { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - if (bitField1_ != 0) { buildPartial1(result); } - if (bitField2_ != 0) { buildPartial2(result); } - if (bitField3_ != 0) { buildPartial3(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { - if (realTimeIconsListBuilder_ == null) { - if (((bitField0_ & 0x10000000) != 0)) { - realTimeIconsList_ = java.util.Collections.unmodifiableList(realTimeIconsList_); - bitField0_ = (bitField0_ & ~0x10000000); - } - result.realTimeIconsList_ = realTimeIconsList_; - } else { - result.realTimeIconsList_ = realTimeIconsListBuilder_.build(); - } - if (newRealTimeIconsListBuilder_ == null) { - if (((bitField0_ & 0x20000000) != 0)) { - newRealTimeIconsList_ = java.util.Collections.unmodifiableList(newRealTimeIconsList_); - bitField0_ = (bitField0_ & ~0x20000000); - } - result.newRealTimeIconsList_ = newRealTimeIconsList_; - } else { - result.newRealTimeIconsList_ = newRealTimeIconsListBuilder_.build(); - } - if (topFansListBuilder_ == null) { - if (((bitField1_ & 0x00001000) != 0)) { - topFansList_ = java.util.Collections.unmodifiableList(topFansList_); - bitField1_ = (bitField1_ & ~0x00001000); - } - result.topFansList_ = topFansList_; - } else { - result.topFansList_ = topFansListBuilder_.build(); - } - if (((bitField1_ & 0x08000000) != 0)) { - commerceWebcastConfigIdsList_.makeImmutable(); - bitField1_ = (bitField1_ & ~0x08000000); - } - result.commerceWebcastConfigIdsList_ = commerceWebcastConfigIdsList_; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.shortId_ = shortId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.nickname_ = nickname_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.gender_ = gender_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.signature_ = signature_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.level_ = level_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.birthday_ = birthday_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.telephone_ = telephone_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.avatarThumb_ = avatarThumbBuilder_ == null - ? avatarThumb_ - : avatarThumbBuilder_.build(); - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.avatarMedium_ = avatarMediumBuilder_ == null - ? avatarMedium_ - : avatarMediumBuilder_.build(); - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.avatarLarge_ = avatarLargeBuilder_ == null - ? avatarLarge_ - : avatarLargeBuilder_.build(); - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.verified_ = verified_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.experience_ = experience_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.city_ = city_; - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.status_ = status_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.createTime_ = createTime_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.modifyTime_ = modifyTime_; - } - if (((from_bitField0_ & 0x00020000) != 0)) { - result.secret_ = secret_; - } - if (((from_bitField0_ & 0x00040000) != 0)) { - result.shareQrcodeUri_ = shareQrcodeUri_; - } - if (((from_bitField0_ & 0x00080000) != 0)) { - result.incomeSharePercent_ = incomeSharePercent_; - } - if (((from_bitField0_ & 0x00100000) != 0)) { - result.badgeImageListList_ = badgeImageListListBuilder_ == null - ? badgeImageListList_ - : badgeImageListListBuilder_.build(); - } - if (((from_bitField0_ & 0x00200000) != 0)) { - result.followInfo_ = followInfoBuilder_ == null - ? followInfo_ - : followInfoBuilder_.build(); - } - if (((from_bitField0_ & 0x00400000) != 0)) { - result.payGrade_ = payGradeBuilder_ == null - ? payGrade_ - : payGradeBuilder_.build(); - } - if (((from_bitField0_ & 0x00800000) != 0)) { - result.fansClub_ = fansClubBuilder_ == null - ? fansClub_ - : fansClubBuilder_.build(); - } - if (((from_bitField0_ & 0x01000000) != 0)) { - result.border_ = borderBuilder_ == null - ? border_ - : borderBuilder_.build(); - } - if (((from_bitField0_ & 0x02000000) != 0)) { - result.specialId_ = specialId_; - } - if (((from_bitField0_ & 0x04000000) != 0)) { - result.avatarBorder_ = avatarBorderBuilder_ == null - ? avatarBorder_ - : avatarBorderBuilder_.build(); - } - if (((from_bitField0_ & 0x08000000) != 0)) { - result.medal_ = medalBuilder_ == null - ? medal_ - : medalBuilder_.build(); - } - if (((from_bitField0_ & 0x40000000) != 0)) { - result.topVipNo_ = topVipNo_; - } - if (((from_bitField0_ & 0x80000000) != 0)) { - result.userAttr_ = userAttrBuilder_ == null - ? userAttr_ - : userAttrBuilder_.build(); - } - } - - private void buildPartial1(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { - int from_bitField1_ = bitField1_; - if (((from_bitField1_ & 0x00000001) != 0)) { - result.ownRoom_ = ownRoomBuilder_ == null - ? ownRoom_ - : ownRoomBuilder_.build(); - } - if (((from_bitField1_ & 0x00000002) != 0)) { - result.payScore_ = payScore_; - } - if (((from_bitField1_ & 0x00000004) != 0)) { - result.ticketCount_ = ticketCount_; - } - if (((from_bitField1_ & 0x00000008) != 0)) { - result.anchorInfo_ = anchorInfoBuilder_ == null - ? anchorInfo_ - : anchorInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x00000010) != 0)) { - result.linkMicStats_ = linkMicStats_; - } - if (((from_bitField1_ & 0x00000020) != 0)) { - result.displayId_ = displayId_; - } - if (((from_bitField1_ & 0x00000040) != 0)) { - result.withCommercePermission_ = withCommercePermission_; - } - if (((from_bitField1_ & 0x00000080) != 0)) { - result.withFusionShopEntry_ = withFusionShopEntry_; - } - if (((from_bitField1_ & 0x00000100) != 0)) { - result.totalRechargeDiamondCount_ = totalRechargeDiamondCount_; - } - if (((from_bitField1_ & 0x00000200) != 0)) { - result.webcastAnchorLevel_ = webcastAnchorLevelBuilder_ == null - ? webcastAnchorLevel_ - : webcastAnchorLevelBuilder_.build(); - } - if (((from_bitField1_ & 0x00000400) != 0)) { - result.verifiedContent_ = verifiedContent_; - } - if (((from_bitField1_ & 0x00000800) != 0)) { - result.authorStats_ = authorStatsBuilder_ == null - ? authorStats_ - : authorStatsBuilder_.build(); - } - if (((from_bitField1_ & 0x00002000) != 0)) { - result.secUid_ = secUid_; - } - if (((from_bitField1_ & 0x00004000) != 0)) { - result.userRole_ = userRole_; - } - if (((from_bitField1_ & 0x00008000) != 0)) { - result.xiguaInfo_ = xiguaInfoBuilder_ == null - ? xiguaInfo_ - : xiguaInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x00010000) != 0)) { - result.activityReward_ = activityRewardBuilder_ == null - ? activityReward_ - : activityRewardBuilder_.build(); - } - if (((from_bitField1_ & 0x00020000) != 0)) { - result.nobleInfo_ = nobleInfoBuilder_ == null - ? nobleInfo_ - : nobleInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x00040000) != 0)) { - result.brotherhoodInfo_ = brotherhoodInfoBuilder_ == null - ? brotherhoodInfo_ - : brotherhoodInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x00080000) != 0)) { - result.personalCard_ = personalCardBuilder_ == null - ? personalCard_ - : personalCardBuilder_.build(); - } - if (((from_bitField1_ & 0x00100000) != 0)) { - result.authenticationInfo_ = authenticationInfoBuilder_ == null - ? authenticationInfo_ - : authenticationInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x00200000) != 0)) { - result.authorizationInfo_ = authorizationInfo_; - } - if (((from_bitField1_ & 0x00400000) != 0)) { - result.adversaryAuthorizationInfo_ = adversaryAuthorizationInfo_; - } - if (((from_bitField1_ & 0x00800000) != 0)) { - result.poiInfo_ = poiInfoBuilder_ == null - ? poiInfo_ - : poiInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x01000000) != 0)) { - result.mediaBadgeImageListList_ = mediaBadgeImageListListBuilder_ == null - ? mediaBadgeImageListList_ - : mediaBadgeImageListListBuilder_.build(); - } - if (((from_bitField1_ & 0x02000000) != 0)) { - result.adversaryUserStatus_ = adversaryUserStatus_; - } - if (((from_bitField1_ & 0x04000000) != 0)) { - result.userVipInfo_ = userVipInfoBuilder_ == null - ? userVipInfo_ - : userVipInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x10000000) != 0)) { - result.badgeImageListV2List_ = badgeImageListV2ListBuilder_ == null - ? badgeImageListV2List_ - : badgeImageListV2ListBuilder_.build(); - } - if (((from_bitField1_ & 0x20000000) != 0)) { - result.locationCity_ = locationCity_; - } - if (((from_bitField1_ & 0x40000000) != 0)) { - result.fansGroupInfo_ = fansGroupInfoBuilder_ == null - ? fansGroupInfo_ - : fansGroupInfoBuilder_.build(); - } - if (((from_bitField1_ & 0x80000000) != 0)) { - result.remarkName_ = remarkName_; - } - } - - private void buildPartial2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { - int from_bitField2_ = bitField2_; - if (((from_bitField2_ & 0x00000001) != 0)) { - result.mysteryMan_ = mysteryMan_; - } - if (((from_bitField2_ & 0x00000002) != 0)) { - result.webRid_ = webRid_; - } - if (((from_bitField2_ & 0x00000004) != 0)) { - result.desensitizedNickname_ = desensitizedNickname_; - } - if (((from_bitField2_ & 0x00000008) != 0)) { - result.jAccreditInfo_ = jAccreditInfoBuilder_ == null - ? jAccreditInfo_ - : jAccreditInfoBuilder_.build(); - } - if (((from_bitField2_ & 0x00000010) != 0)) { - result.subscribe_ = subscribeBuilder_ == null - ? subscribe_ - : subscribeBuilder_.build(); - } - if (((from_bitField2_ & 0x00000020) != 0)) { - result.isAnonymous_ = isAnonymous_; - } - if (((from_bitField2_ & 0x00000040) != 0)) { - result.consumeDiamondLevel_ = consumeDiamondLevel_; - } - if (((from_bitField2_ & 0x00000080) != 0)) { - result.webcastUid_ = webcastUid_; - } - if (((from_bitField2_ & 0x00000100) != 0)) { - result.profileStyleParams_ = profileStyleParamsBuilder_ == null - ? profileStyleParams_ - : profileStyleParamsBuilder_.build(); - } - if (((from_bitField2_ & 0x00000200) != 0)) { - result.userDressInfo_ = userDressInfoBuilder_ == null - ? userDressInfo_ - : userDressInfoBuilder_.build(); - } - if (((from_bitField2_ & 0x00000400) != 0)) { - result.allowBeLocated_ = allowBeLocated_; - } - if (((from_bitField2_ & 0x00000800) != 0)) { - result.allowFindByContacts_ = allowFindByContacts_; - } - if (((from_bitField2_ & 0x00001000) != 0)) { - result.allowOthersDownloadVideo_ = allowOthersDownloadVideo_; - } - if (((from_bitField2_ & 0x00002000) != 0)) { - result.allowOthersDownloadWhenSharingVideo_ = allowOthersDownloadWhenSharingVideo_; - } - if (((from_bitField2_ & 0x00004000) != 0)) { - result.allowShareShowProfile_ = allowShareShowProfile_; - } - if (((from_bitField2_ & 0x00008000) != 0)) { - result.allowShowInGossip_ = allowShowInGossip_; - } - if (((from_bitField2_ & 0x00010000) != 0)) { - result.allowShowMyAction_ = allowShowMyAction_; - } - if (((from_bitField2_ & 0x00020000) != 0)) { - result.allowStrangeComment_ = allowStrangeComment_; - } - if (((from_bitField2_ & 0x00040000) != 0)) { - result.allowUnfollowerComment_ = allowUnfollowerComment_; - } - if (((from_bitField2_ & 0x00080000) != 0)) { - result.allowUseLinkmic_ = allowUseLinkmic_; - } - if (((from_bitField2_ & 0x00100000) != 0)) { - result.anchorLevel_ = anchorLevelBuilder_ == null - ? anchorLevel_ - : anchorLevelBuilder_.build(); - } - if (((from_bitField2_ & 0x00200000) != 0)) { - result.avatarJpg_ = avatarJpgBuilder_ == null - ? avatarJpg_ - : avatarJpgBuilder_.build(); - } - if (((from_bitField2_ & 0x00400000) != 0)) { - result.bgImgUrl_ = bgImgUrl_; - } - if (((from_bitField2_ & 0x00800000) != 0)) { - result.birthdayDescription_ = birthdayDescription_; - } - if (((from_bitField2_ & 0x01000000) != 0)) { - result.birthdayValid_ = birthdayValid_; - } - if (((from_bitField2_ & 0x02000000) != 0)) { - result.blockStatus_ = blockStatus_; - } - if (((from_bitField2_ & 0x04000000) != 0)) { - result.commentRestrict_ = commentRestrict_; - } - if (((from_bitField2_ & 0x08000000) != 0)) { - result.constellation_ = constellation_; - } - if (((from_bitField2_ & 0x10000000) != 0)) { - result.disableIchat_ = disableIchat_; - } - if (((from_bitField2_ & 0x20000000) != 0)) { - result.enableIchatImg_ = enableIchatImg_; - } - if (((from_bitField2_ & 0x40000000) != 0)) { - result.exp_ = exp_; - } - if (((from_bitField2_ & 0x80000000) != 0)) { - result.fanTicketCount_ = fanTicketCount_; - } - } - - private void buildPartial3(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { - int from_bitField3_ = bitField3_; - if (((from_bitField3_ & 0x00000001) != 0)) { - result.foldStrangerChat_ = foldStrangerChat_; - } - if (((from_bitField3_ & 0x00000002) != 0)) { - result.followStatus_ = followStatus_; - } - if (((from_bitField3_ & 0x00000004) != 0)) { - result.hotsoonVerified_ = hotsoonVerified_; - } - if (((from_bitField3_ & 0x00000008) != 0)) { - result.hotsoonVerifiedReason_ = hotsoonVerifiedReason_; - } - if (((from_bitField3_ & 0x00000010) != 0)) { - result.ichatRestrictType_ = ichatRestrictType_; - } - if (((from_bitField3_ & 0x00000020) != 0)) { - result.idStr_ = idStr_; - } - if (((from_bitField3_ & 0x00000040) != 0)) { - result.isFollower_ = isFollower_; - } - if (((from_bitField3_ & 0x00000080) != 0)) { - result.isFollowing_ = isFollowing_; - } - if (((from_bitField3_ & 0x00000100) != 0)) { - result.needProfileGuide_ = needProfileGuide_; - } - if (((from_bitField3_ & 0x00000200) != 0)) { - result.payScores_ = payScores_; - } - if (((from_bitField3_ & 0x00000400) != 0)) { - result.pushCommentStatus_ = pushCommentStatus_; - } - if (((from_bitField3_ & 0x00000800) != 0)) { - result.pushDigg_ = pushDigg_; - } - if (((from_bitField3_ & 0x00001000) != 0)) { - result.pushFollow_ = pushFollow_; - } - if (((from_bitField3_ & 0x00002000) != 0)) { - result.pushFriendAction_ = pushFriendAction_; - } - if (((from_bitField3_ & 0x00004000) != 0)) { - result.pushIchat_ = pushIchat_; - } - if (((from_bitField3_ & 0x00008000) != 0)) { - result.pushStatus_ = pushStatus_; - } - if (((from_bitField3_ & 0x00010000) != 0)) { - result.pushVideoPost_ = pushVideoPost_; - } - if (((from_bitField3_ & 0x00020000) != 0)) { - result.pushVideoRecommend_ = pushVideoRecommend_; - } - if (((from_bitField3_ & 0x00040000) != 0)) { - result.stats_ = statsBuilder_ == null - ? stats_ - : statsBuilder_.build(); - } - if (((from_bitField3_ & 0x00080000) != 0)) { - result.verifiedMobile_ = verifiedMobile_; - } - if (((from_bitField3_ & 0x00100000) != 0)) { - result.verifiedReason_ = verifiedReason_; - } - if (((from_bitField3_ & 0x00200000) != 0)) { - result.withCarManagementPermission_ = withCarManagementPermission_; - } - if (((from_bitField3_ & 0x00400000) != 0)) { - result.ageRange_ = ageRange_; - } - if (((from_bitField3_ & 0x00800000) != 0)) { - result.watchDurationMonth_ = watchDurationMonth_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User) { - return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User other) { - if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) return this; - if (other.getId() != 0L) { - setId(other.getId()); - } - if (other.getShortId() != 0L) { - setShortId(other.getShortId()); - } - if (!other.getNickname().isEmpty()) { - nickname_ = other.nickname_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (other.getGender() != 0) { - setGender(other.getGender()); - } - if (!other.getSignature().isEmpty()) { - signature_ = other.signature_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (other.getLevel() != 0) { - setLevel(other.getLevel()); - } - if (other.getBirthday() != 0L) { - setBirthday(other.getBirthday()); - } - if (!other.getTelephone().isEmpty()) { - telephone_ = other.telephone_; - bitField0_ |= 0x00000080; - onChanged(); - } - if (other.hasAvatarThumb()) { - mergeAvatarThumb(other.getAvatarThumb()); - } - if (other.hasAvatarMedium()) { - mergeAvatarMedium(other.getAvatarMedium()); - } - if (other.hasAvatarLarge()) { - mergeAvatarLarge(other.getAvatarLarge()); - } - if (other.getVerified() != false) { - setVerified(other.getVerified()); - } - if (other.getExperience() != 0) { - setExperience(other.getExperience()); - } - if (!other.getCity().isEmpty()) { - city_ = other.city_; - bitField0_ |= 0x00002000; - onChanged(); - } - if (other.getStatus() != 0) { - setStatus(other.getStatus()); - } - if (other.getCreateTime() != 0L) { - setCreateTime(other.getCreateTime()); - } - if (other.getModifyTime() != 0L) { - setModifyTime(other.getModifyTime()); - } - if (other.getSecret() != 0) { - setSecret(other.getSecret()); - } - if (!other.getShareQrcodeUri().isEmpty()) { - shareQrcodeUri_ = other.shareQrcodeUri_; - bitField0_ |= 0x00040000; - onChanged(); - } - if (other.getIncomeSharePercent() != 0) { - setIncomeSharePercent(other.getIncomeSharePercent()); - } - if (other.hasBadgeImageListList()) { - mergeBadgeImageListList(other.getBadgeImageListList()); - } - if (other.hasFollowInfo()) { - mergeFollowInfo(other.getFollowInfo()); - } - if (other.hasPayGrade()) { - mergePayGrade(other.getPayGrade()); - } - if (other.hasFansClub()) { - mergeFansClub(other.getFansClub()); - } - if (other.hasBorder()) { - mergeBorder(other.getBorder()); - } - if (!other.getSpecialId().isEmpty()) { - specialId_ = other.specialId_; - bitField0_ |= 0x02000000; - onChanged(); - } - if (other.hasAvatarBorder()) { - mergeAvatarBorder(other.getAvatarBorder()); - } - if (other.hasMedal()) { - mergeMedal(other.getMedal()); - } - if (realTimeIconsListBuilder_ == null) { - if (!other.realTimeIconsList_.isEmpty()) { - if (realTimeIconsList_.isEmpty()) { - realTimeIconsList_ = other.realTimeIconsList_; - bitField0_ = (bitField0_ & ~0x10000000); - } else { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.addAll(other.realTimeIconsList_); - } - onChanged(); - } - } else { - if (!other.realTimeIconsList_.isEmpty()) { - if (realTimeIconsListBuilder_.isEmpty()) { - realTimeIconsListBuilder_.dispose(); - realTimeIconsListBuilder_ = null; - realTimeIconsList_ = other.realTimeIconsList_; - bitField0_ = (bitField0_ & ~0x10000000); - realTimeIconsListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getRealTimeIconsListFieldBuilder() : null; - } else { - realTimeIconsListBuilder_.addAllMessages(other.realTimeIconsList_); - } - } - } - if (newRealTimeIconsListBuilder_ == null) { - if (!other.newRealTimeIconsList_.isEmpty()) { - if (newRealTimeIconsList_.isEmpty()) { - newRealTimeIconsList_ = other.newRealTimeIconsList_; - bitField0_ = (bitField0_ & ~0x20000000); - } else { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.addAll(other.newRealTimeIconsList_); - } - onChanged(); - } - } else { - if (!other.newRealTimeIconsList_.isEmpty()) { - if (newRealTimeIconsListBuilder_.isEmpty()) { - newRealTimeIconsListBuilder_.dispose(); - newRealTimeIconsListBuilder_ = null; - newRealTimeIconsList_ = other.newRealTimeIconsList_; - bitField0_ = (bitField0_ & ~0x20000000); - newRealTimeIconsListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getNewRealTimeIconsListFieldBuilder() : null; - } else { - newRealTimeIconsListBuilder_.addAllMessages(other.newRealTimeIconsList_); - } - } - } - if (other.getTopVipNo() != 0L) { - setTopVipNo(other.getTopVipNo()); - } - if (other.hasUserAttr()) { - mergeUserAttr(other.getUserAttr()); - } - if (other.hasOwnRoom()) { - mergeOwnRoom(other.getOwnRoom()); - } - if (other.getPayScore() != 0L) { - setPayScore(other.getPayScore()); - } - if (other.getTicketCount() != 0L) { - setTicketCount(other.getTicketCount()); - } - if (other.hasAnchorInfo()) { - mergeAnchorInfo(other.getAnchorInfo()); - } - if (other.getLinkMicStats() != 0) { - setLinkMicStats(other.getLinkMicStats()); - } - if (!other.getDisplayId().isEmpty()) { - displayId_ = other.displayId_; - bitField1_ |= 0x00000020; - onChanged(); - } - if (other.getWithCommercePermission() != false) { - setWithCommercePermission(other.getWithCommercePermission()); - } - if (other.getWithFusionShopEntry() != false) { - setWithFusionShopEntry(other.getWithFusionShopEntry()); - } - if (other.getTotalRechargeDiamondCount() != 0L) { - setTotalRechargeDiamondCount(other.getTotalRechargeDiamondCount()); - } - if (other.hasWebcastAnchorLevel()) { - mergeWebcastAnchorLevel(other.getWebcastAnchorLevel()); - } - if (!other.getVerifiedContent().isEmpty()) { - verifiedContent_ = other.verifiedContent_; - bitField1_ |= 0x00000400; - onChanged(); - } - if (other.hasAuthorStats()) { - mergeAuthorStats(other.getAuthorStats()); - } - if (topFansListBuilder_ == null) { - if (!other.topFansList_.isEmpty()) { - if (topFansList_.isEmpty()) { - topFansList_ = other.topFansList_; - bitField1_ = (bitField1_ & ~0x00001000); - } else { - ensureTopFansListIsMutable(); - topFansList_.addAll(other.topFansList_); - } - onChanged(); - } - } else { - if (!other.topFansList_.isEmpty()) { - if (topFansListBuilder_.isEmpty()) { - topFansListBuilder_.dispose(); - topFansListBuilder_ = null; - topFansList_ = other.topFansList_; - bitField1_ = (bitField1_ & ~0x00001000); - topFansListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getTopFansListFieldBuilder() : null; - } else { - topFansListBuilder_.addAllMessages(other.topFansList_); - } - } - } - if (!other.getSecUid().isEmpty()) { - secUid_ = other.secUid_; - bitField1_ |= 0x00002000; - onChanged(); - } - if (other.getUserRole() != 0) { - setUserRole(other.getUserRole()); - } - if (other.hasXiguaInfo()) { - mergeXiguaInfo(other.getXiguaInfo()); - } - if (other.hasActivityReward()) { - mergeActivityReward(other.getActivityReward()); - } - if (other.hasNobleInfo()) { - mergeNobleInfo(other.getNobleInfo()); - } - if (other.hasBrotherhoodInfo()) { - mergeBrotherhoodInfo(other.getBrotherhoodInfo()); - } - if (other.hasPersonalCard()) { - mergePersonalCard(other.getPersonalCard()); - } - if (other.hasAuthenticationInfo()) { - mergeAuthenticationInfo(other.getAuthenticationInfo()); - } - if (other.getAuthorizationInfo() != 0) { - setAuthorizationInfo(other.getAuthorizationInfo()); - } - if (other.getAdversaryAuthorizationInfo() != 0) { - setAdversaryAuthorizationInfo(other.getAdversaryAuthorizationInfo()); - } - if (other.hasPoiInfo()) { - mergePoiInfo(other.getPoiInfo()); - } - if (other.hasMediaBadgeImageListList()) { - mergeMediaBadgeImageListList(other.getMediaBadgeImageListList()); - } - if (other.getAdversaryUserStatus() != 0) { - setAdversaryUserStatus(other.getAdversaryUserStatus()); - } - if (other.hasUserVipInfo()) { - mergeUserVipInfo(other.getUserVipInfo()); - } - if (!other.commerceWebcastConfigIdsList_.isEmpty()) { - if (commerceWebcastConfigIdsList_.isEmpty()) { - commerceWebcastConfigIdsList_ = other.commerceWebcastConfigIdsList_; - bitField1_ = (bitField1_ & ~0x08000000); - } else { - ensureCommerceWebcastConfigIdsListIsMutable(); - commerceWebcastConfigIdsList_.addAll(other.commerceWebcastConfigIdsList_); - } - onChanged(); - } - if (other.hasBadgeImageListV2List()) { - mergeBadgeImageListV2List(other.getBadgeImageListV2List()); - } - if (!other.getLocationCity().isEmpty()) { - locationCity_ = other.locationCity_; - bitField1_ |= 0x20000000; - onChanged(); - } - if (other.hasFansGroupInfo()) { - mergeFansGroupInfo(other.getFansGroupInfo()); - } - if (!other.getRemarkName().isEmpty()) { - remarkName_ = other.remarkName_; - bitField1_ |= 0x80000000; - onChanged(); - } - if (other.getMysteryMan() != 0) { - setMysteryMan(other.getMysteryMan()); - } - if (!other.getWebRid().isEmpty()) { - webRid_ = other.webRid_; - bitField2_ |= 0x00000002; - onChanged(); - } - if (!other.getDesensitizedNickname().isEmpty()) { - desensitizedNickname_ = other.desensitizedNickname_; - bitField2_ |= 0x00000004; - onChanged(); - } - if (other.hasJAccreditInfo()) { - mergeJAccreditInfo(other.getJAccreditInfo()); - } - if (other.hasSubscribe()) { - mergeSubscribe(other.getSubscribe()); - } - if (other.getIsAnonymous() != false) { - setIsAnonymous(other.getIsAnonymous()); - } - if (other.getConsumeDiamondLevel() != 0) { - setConsumeDiamondLevel(other.getConsumeDiamondLevel()); - } - if (!other.getWebcastUid().isEmpty()) { - webcastUid_ = other.webcastUid_; - bitField2_ |= 0x00000080; - onChanged(); - } - if (other.hasProfileStyleParams()) { - mergeProfileStyleParams(other.getProfileStyleParams()); - } - if (other.hasUserDressInfo()) { - mergeUserDressInfo(other.getUserDressInfo()); - } - if (other.getAllowBeLocated() != false) { - setAllowBeLocated(other.getAllowBeLocated()); - } - if (other.getAllowFindByContacts() != false) { - setAllowFindByContacts(other.getAllowFindByContacts()); - } - if (other.getAllowOthersDownloadVideo() != false) { - setAllowOthersDownloadVideo(other.getAllowOthersDownloadVideo()); - } - if (other.getAllowOthersDownloadWhenSharingVideo() != false) { - setAllowOthersDownloadWhenSharingVideo(other.getAllowOthersDownloadWhenSharingVideo()); - } - if (other.getAllowShareShowProfile() != false) { - setAllowShareShowProfile(other.getAllowShareShowProfile()); - } - if (other.getAllowShowInGossip() != false) { - setAllowShowInGossip(other.getAllowShowInGossip()); - } - if (other.getAllowShowMyAction() != false) { - setAllowShowMyAction(other.getAllowShowMyAction()); - } - if (other.getAllowStrangeComment() != false) { - setAllowStrangeComment(other.getAllowStrangeComment()); - } - if (other.getAllowUnfollowerComment() != false) { - setAllowUnfollowerComment(other.getAllowUnfollowerComment()); - } - if (other.getAllowUseLinkmic() != false) { - setAllowUseLinkmic(other.getAllowUseLinkmic()); - } - if (other.hasAnchorLevel()) { - mergeAnchorLevel(other.getAnchorLevel()); - } - if (other.hasAvatarJpg()) { - mergeAvatarJpg(other.getAvatarJpg()); - } - if (!other.getBgImgUrl().isEmpty()) { - bgImgUrl_ = other.bgImgUrl_; - bitField2_ |= 0x00400000; - onChanged(); - } - if (!other.getBirthdayDescription().isEmpty()) { - birthdayDescription_ = other.birthdayDescription_; - bitField2_ |= 0x00800000; - onChanged(); - } - if (other.getBirthdayValid() != false) { - setBirthdayValid(other.getBirthdayValid()); - } - if (other.getBlockStatus() != 0) { - setBlockStatus(other.getBlockStatus()); - } - if (other.getCommentRestrict() != 0) { - setCommentRestrict(other.getCommentRestrict()); - } - if (!other.getConstellation().isEmpty()) { - constellation_ = other.constellation_; - bitField2_ |= 0x08000000; - onChanged(); - } - if (other.getDisableIchat() != 0) { - setDisableIchat(other.getDisableIchat()); - } - if (other.getEnableIchatImg() != 0L) { - setEnableIchatImg(other.getEnableIchatImg()); - } - if (other.getExp() != 0) { - setExp(other.getExp()); - } - if (other.getFanTicketCount() != 0L) { - setFanTicketCount(other.getFanTicketCount()); - } - if (other.getFoldStrangerChat() != false) { - setFoldStrangerChat(other.getFoldStrangerChat()); - } - if (other.getFollowStatus() != 0L) { - setFollowStatus(other.getFollowStatus()); - } - if (other.getHotsoonVerified() != false) { - setHotsoonVerified(other.getHotsoonVerified()); - } - if (!other.getHotsoonVerifiedReason().isEmpty()) { - hotsoonVerifiedReason_ = other.hotsoonVerifiedReason_; - bitField3_ |= 0x00000008; - onChanged(); - } - if (other.getIchatRestrictType() != 0) { - setIchatRestrictType(other.getIchatRestrictType()); - } - if (!other.getIdStr().isEmpty()) { - idStr_ = other.idStr_; - bitField3_ |= 0x00000020; - onChanged(); - } - if (other.getIsFollower() != false) { - setIsFollower(other.getIsFollower()); - } - if (other.getIsFollowing() != false) { - setIsFollowing(other.getIsFollowing()); - } - if (other.getNeedProfileGuide() != false) { - setNeedProfileGuide(other.getNeedProfileGuide()); - } - if (other.getPayScores() != 0L) { - setPayScores(other.getPayScores()); - } - if (other.getPushCommentStatus() != false) { - setPushCommentStatus(other.getPushCommentStatus()); - } - if (other.getPushDigg() != false) { - setPushDigg(other.getPushDigg()); - } - if (other.getPushFollow() != false) { - setPushFollow(other.getPushFollow()); - } - if (other.getPushFriendAction() != false) { - setPushFriendAction(other.getPushFriendAction()); - } - if (other.getPushIchat() != false) { - setPushIchat(other.getPushIchat()); - } - if (other.getPushStatus() != false) { - setPushStatus(other.getPushStatus()); - } - if (other.getPushVideoPost() != false) { - setPushVideoPost(other.getPushVideoPost()); - } - if (other.getPushVideoRecommend() != false) { - setPushVideoRecommend(other.getPushVideoRecommend()); - } - if (other.hasStats()) { - mergeStats(other.getStats()); - } - if (other.getVerifiedMobile() != false) { - setVerifiedMobile(other.getVerifiedMobile()); - } - if (!other.getVerifiedReason().isEmpty()) { - verifiedReason_ = other.verifiedReason_; - bitField3_ |= 0x00100000; - onChanged(); - } - if (other.getWithCarManagementPermission() != false) { - setWithCarManagementPermission(other.getWithCarManagementPermission()); - } - if (other.getAgeRange() != 0) { - setAgeRange(other.getAgeRange()); - } - if (other.getWatchDurationMonth() != 0L) { - setWatchDurationMonth(other.getWatchDurationMonth()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - id_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - shortId_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 26: { - nickname_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 32: { - gender_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - signature_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 48: { - level_ = input.readUInt32(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - birthday_ = input.readUInt64(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 66: { - telephone_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000080; - break; - } // case 66 - case 74: { - input.readMessage( - getAvatarThumbFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000100; - break; - } // case 74 - case 82: { - input.readMessage( - getAvatarMediumFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000200; - break; - } // case 82 - case 90: { - input.readMessage( - getAvatarLargeFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000400; - break; - } // case 90 - case 96: { - verified_ = input.readBool(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 104: { - experience_ = input.readInt32(); - bitField0_ |= 0x00001000; - break; - } // case 104 - case 114: { - city_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00002000; - break; - } // case 114 - case 120: { - status_ = input.readInt32(); - bitField0_ |= 0x00004000; - break; - } // case 120 - case 128: { - createTime_ = input.readInt64(); - bitField0_ |= 0x00008000; - break; - } // case 128 - case 136: { - modifyTime_ = input.readInt64(); - bitField0_ |= 0x00010000; - break; - } // case 136 - case 144: { - secret_ = input.readInt32(); - bitField0_ |= 0x00020000; - break; - } // case 144 - case 154: { - shareQrcodeUri_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00040000; - break; - } // case 154 - case 160: { - incomeSharePercent_ = input.readInt32(); - bitField0_ |= 0x00080000; - break; - } // case 160 - case 170: { - input.readMessage( - getBadgeImageListListFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00100000; - break; - } // case 170 - case 178: { - input.readMessage( - getFollowInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00200000; - break; - } // case 178 - case 186: { - input.readMessage( - getPayGradeFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00400000; - break; - } // case 186 - case 194: { - input.readMessage( - getFansClubFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00800000; - break; - } // case 194 - case 202: { - input.readMessage( - getBorderFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x01000000; - break; - } // case 202 - case 210: { - specialId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x02000000; - break; - } // case 210 - case 218: { - input.readMessage( - getAvatarBorderFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x04000000; - break; - } // case 218 - case 226: { - input.readMessage( - getMedalFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x08000000; - break; - } // case 226 - case 234: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.parser(), - extensionRegistry); - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.add(m); - } else { - realTimeIconsListBuilder_.addMessage(m); - } - break; - } // case 234 - case 242: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.parser(), - extensionRegistry); - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.add(m); - } else { - newRealTimeIconsListBuilder_.addMessage(m); - } - break; - } // case 242 - case 248: { - topVipNo_ = input.readInt64(); - bitField0_ |= 0x40000000; - break; - } // case 248 - case 258: { - input.readMessage( - getUserAttrFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x80000000; - break; - } // case 258 - case 266: { - input.readMessage( - getOwnRoomFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000001; - break; - } // case 266 - case 272: { - payScore_ = input.readInt64(); - bitField1_ |= 0x00000002; - break; - } // case 272 - case 280: { - ticketCount_ = input.readInt64(); - bitField1_ |= 0x00000004; - break; - } // case 280 - case 290: { - input.readMessage( - getAnchorInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000008; - break; - } // case 290 - case 296: { - linkMicStats_ = input.readInt32(); - bitField1_ |= 0x00000010; - break; - } // case 296 - case 306: { - displayId_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00000020; - break; - } // case 306 - case 312: { - withCommercePermission_ = input.readBool(); - bitField1_ |= 0x00000040; - break; - } // case 312 - case 320: { - withFusionShopEntry_ = input.readBool(); - bitField1_ |= 0x00000080; - break; - } // case 320 - case 328: { - totalRechargeDiamondCount_ = input.readInt64(); - bitField1_ |= 0x00000100; - break; - } // case 328 - case 338: { - input.readMessage( - getWebcastAnchorLevelFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000200; - break; - } // case 338 - case 346: { - verifiedContent_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00000400; - break; - } // case 346 - case 354: { - input.readMessage( - getAuthorStatsFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00000800; - break; - } // case 354 - case 362: { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User m = - input.readMessage( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.parser(), - extensionRegistry); - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - topFansList_.add(m); - } else { - topFansListBuilder_.addMessage(m); - } - break; - } // case 362 - case 370: { - secUid_ = input.readStringRequireUtf8(); - bitField1_ |= 0x00002000; - break; - } // case 370 - case 376: { - userRole_ = input.readInt32(); - bitField1_ |= 0x00004000; - break; - } // case 376 - case 386: { - input.readMessage( - getXiguaInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00008000; - break; - } // case 386 - case 394: { - input.readMessage( - getActivityRewardFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00010000; - break; - } // case 394 - case 402: { - input.readMessage( - getNobleInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00020000; - break; - } // case 402 - case 410: { - input.readMessage( - getBrotherhoodInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00040000; - break; - } // case 410 - case 418: { - input.readMessage( - getPersonalCardFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00080000; - break; - } // case 418 - case 426: { - input.readMessage( - getAuthenticationInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00100000; - break; - } // case 426 - case 432: { - authorizationInfo_ = input.readInt32(); - bitField1_ |= 0x00200000; - break; - } // case 432 - case 440: { - adversaryAuthorizationInfo_ = input.readInt32(); - bitField1_ |= 0x00400000; - break; - } // case 440 - case 450: { - input.readMessage( - getPoiInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x00800000; - break; - } // case 450 - case 458: { - input.readMessage( - getMediaBadgeImageListListFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x01000000; - break; - } // case 458 - case 464: { - adversaryUserStatus_ = input.readInt32(); - bitField1_ |= 0x02000000; - break; - } // case 464 - case 474: { - input.readMessage( - getUserVipInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x04000000; - break; - } // case 474 - case 480: { - long v = input.readInt64(); - ensureCommerceWebcastConfigIdsListIsMutable(); - commerceWebcastConfigIdsList_.addLong(v); - break; - } // case 480 - case 482: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureCommerceWebcastConfigIdsListIsMutable(); - while (input.getBytesUntilLimit() > 0) { - commerceWebcastConfigIdsList_.addLong(input.readInt64()); - } - input.popLimit(limit); - break; - } // case 482 - case 490: { - input.readMessage( - getBadgeImageListV2ListFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x10000000; - break; - } // case 490 - case 506: { - locationCity_ = input.readStringRequireUtf8(); - bitField1_ |= 0x20000000; - break; - } // case 506 - case 514: { - input.readMessage( - getFansGroupInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField1_ |= 0x40000000; - break; - } // case 514 - case 522: { - remarkName_ = input.readStringRequireUtf8(); - bitField1_ |= 0x80000000; - break; - } // case 522 - case 528: { - mysteryMan_ = input.readInt32(); - bitField2_ |= 0x00000001; - break; - } // case 528 - case 538: { - webRid_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00000002; - break; - } // case 538 - case 546: { - desensitizedNickname_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00000004; - break; - } // case 546 - case 554: { - input.readMessage( - getJAccreditInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00000008; - break; - } // case 554 - case 562: { - input.readMessage( - getSubscribeFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00000010; - break; - } // case 562 - case 568: { - isAnonymous_ = input.readBool(); - bitField2_ |= 0x00000020; - break; - } // case 568 - case 576: { - consumeDiamondLevel_ = input.readInt32(); - bitField2_ |= 0x00000040; - break; - } // case 576 - case 586: { - webcastUid_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00000080; - break; - } // case 586 - case 594: { - input.readMessage( - getProfileStyleParamsFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00000100; - break; - } // case 594 - case 602: { - input.readMessage( - getUserDressInfoFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00000200; - break; - } // case 602 - case 8008: { - allowBeLocated_ = input.readBool(); - bitField2_ |= 0x00000400; - break; - } // case 8008 - case 8016: { - allowFindByContacts_ = input.readBool(); - bitField2_ |= 0x00000800; - break; - } // case 8016 - case 8024: { - allowOthersDownloadVideo_ = input.readBool(); - bitField2_ |= 0x00001000; - break; - } // case 8024 - case 8032: { - allowOthersDownloadWhenSharingVideo_ = input.readBool(); - bitField2_ |= 0x00002000; - break; - } // case 8032 - case 8040: { - allowShareShowProfile_ = input.readBool(); - bitField2_ |= 0x00004000; - break; - } // case 8040 - case 8048: { - allowShowInGossip_ = input.readBool(); - bitField2_ |= 0x00008000; - break; - } // case 8048 - case 8056: { - allowShowMyAction_ = input.readBool(); - bitField2_ |= 0x00010000; - break; - } // case 8056 - case 8064: { - allowStrangeComment_ = input.readBool(); - bitField2_ |= 0x00020000; - break; - } // case 8064 - case 8072: { - allowUnfollowerComment_ = input.readBool(); - bitField2_ |= 0x00040000; - break; - } // case 8072 - case 8080: { - allowUseLinkmic_ = input.readBool(); - bitField2_ |= 0x00080000; - break; - } // case 8080 - case 8090: { - input.readMessage( - getAnchorLevelFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00100000; - break; - } // case 8090 - case 8098: { - input.readMessage( - getAvatarJpgFieldBuilder().getBuilder(), - extensionRegistry); - bitField2_ |= 0x00200000; - break; - } // case 8098 - case 8106: { - bgImgUrl_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00400000; - break; - } // case 8106 - case 8114: { - birthdayDescription_ = input.readStringRequireUtf8(); - bitField2_ |= 0x00800000; - break; - } // case 8114 - case 8120: { - birthdayValid_ = input.readBool(); - bitField2_ |= 0x01000000; - break; - } // case 8120 - case 8128: { - blockStatus_ = input.readInt32(); - bitField2_ |= 0x02000000; - break; - } // case 8128 - case 8136: { - commentRestrict_ = input.readInt32(); - bitField2_ |= 0x04000000; - break; - } // case 8136 - case 8146: { - constellation_ = input.readStringRequireUtf8(); - bitField2_ |= 0x08000000; - break; - } // case 8146 - case 8152: { - disableIchat_ = input.readInt32(); - bitField2_ |= 0x10000000; - break; - } // case 8152 - case 8160: { - enableIchatImg_ = input.readInt64(); - bitField2_ |= 0x20000000; - break; - } // case 8160 - case 8168: { - exp_ = input.readInt32(); - bitField2_ |= 0x40000000; - break; - } // case 8168 - case 8176: { - fanTicketCount_ = input.readInt64(); - bitField2_ |= 0x80000000; - break; - } // case 8176 - case 8184: { - foldStrangerChat_ = input.readBool(); - bitField3_ |= 0x00000001; - break; - } // case 8184 - case 8192: { - followStatus_ = input.readInt64(); - bitField3_ |= 0x00000002; - break; - } // case 8192 - case 8200: { - hotsoonVerified_ = input.readBool(); - bitField3_ |= 0x00000004; - break; - } // case 8200 - case 8210: { - hotsoonVerifiedReason_ = input.readStringRequireUtf8(); - bitField3_ |= 0x00000008; - break; - } // case 8210 - case 8216: { - ichatRestrictType_ = input.readInt32(); - bitField3_ |= 0x00000010; - break; - } // case 8216 - case 8226: { - idStr_ = input.readStringRequireUtf8(); - bitField3_ |= 0x00000020; - break; - } // case 8226 - case 8232: { - isFollower_ = input.readBool(); - bitField3_ |= 0x00000040; - break; - } // case 8232 - case 8240: { - isFollowing_ = input.readBool(); - bitField3_ |= 0x00000080; - break; - } // case 8240 - case 8248: { - needProfileGuide_ = input.readBool(); - bitField3_ |= 0x00000100; - break; - } // case 8248 - case 8256: { - payScores_ = input.readInt64(); - bitField3_ |= 0x00000200; - break; - } // case 8256 - case 8264: { - pushCommentStatus_ = input.readBool(); - bitField3_ |= 0x00000400; - break; - } // case 8264 - case 8272: { - pushDigg_ = input.readBool(); - bitField3_ |= 0x00000800; - break; - } // case 8272 - case 8280: { - pushFollow_ = input.readBool(); - bitField3_ |= 0x00001000; - break; - } // case 8280 - case 8288: { - pushFriendAction_ = input.readBool(); - bitField3_ |= 0x00002000; - break; - } // case 8288 - case 8296: { - pushIchat_ = input.readBool(); - bitField3_ |= 0x00004000; - break; - } // case 8296 - case 8304: { - pushStatus_ = input.readBool(); - bitField3_ |= 0x00008000; - break; - } // case 8304 - case 8312: { - pushVideoPost_ = input.readBool(); - bitField3_ |= 0x00010000; - break; - } // case 8312 - case 8320: { - pushVideoRecommend_ = input.readBool(); - bitField3_ |= 0x00020000; - break; - } // case 8320 - case 8330: { - input.readMessage( - getStatsFieldBuilder().getBuilder(), - extensionRegistry); - bitField3_ |= 0x00040000; - break; - } // case 8330 - case 8336: { - verifiedMobile_ = input.readBool(); - bitField3_ |= 0x00080000; - break; - } // case 8336 - case 8346: { - verifiedReason_ = input.readStringRequireUtf8(); - bitField3_ |= 0x00100000; - break; - } // case 8346 - case 8352: { - withCarManagementPermission_ = input.readBool(); - bitField3_ |= 0x00200000; - break; - } // case 8352 - case 8360: { - ageRange_ = input.readInt32(); - bitField3_ |= 0x00400000; - break; - } // case 8360 - case 8368: { - watchDurationMonth_ = input.readInt64(); - bitField3_ |= 0x00800000; - break; - } // case 8368 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - private int bitField1_; - private int bitField2_; - private int bitField3_; - - private long id_ ; - /** - * uint64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - /** - * uint64 id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(long value) { - - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - private long shortId_ ; - /** - * uint64 shortId = 2; - * @return The shortId. - */ - @java.lang.Override - public long getShortId() { - return shortId_; - } - /** - * uint64 shortId = 2; - * @param value The shortId to set. - * @return This builder for chaining. - */ - public Builder setShortId(long value) { - - shortId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 shortId = 2; - * @return This builder for chaining. - */ - public Builder clearShortId() { - bitField0_ = (bitField0_ & ~0x00000002); - shortId_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object nickname_ = ""; - /** - * string nickname = 3; - * @return The nickname. - */ - public java.lang.String getNickname() { - java.lang.Object ref = nickname_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - nickname_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string nickname = 3; - * @return The bytes for nickname. - */ - public com.google.protobuf.ByteString - getNicknameBytes() { - java.lang.Object ref = nickname_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - nickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string nickname = 3; - * @param value The nickname to set. - * @return This builder for chaining. - */ - public Builder setNickname( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - nickname_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string nickname = 3; - * @return This builder for chaining. - */ - public Builder clearNickname() { - nickname_ = getDefaultInstance().getNickname(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string nickname = 3; - * @param value The bytes for nickname to set. - * @return This builder for chaining. - */ - public Builder setNicknameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - nickname_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private int gender_ ; - /** - * uint32 gender = 4; - * @return The gender. - */ - @java.lang.Override - public int getGender() { - return gender_; - } - /** - * uint32 gender = 4; - * @param value The gender to set. - * @return This builder for chaining. - */ - public Builder setGender(int value) { - - gender_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 gender = 4; - * @return This builder for chaining. - */ - public Builder clearGender() { - bitField0_ = (bitField0_ & ~0x00000008); - gender_ = 0; - onChanged(); - return this; - } - - private java.lang.Object signature_ = ""; - /** - * string signature = 5; - * @return The signature. - */ - public java.lang.String getSignature() { - java.lang.Object ref = signature_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - signature_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string signature = 5; - * @return The bytes for signature. - */ - public com.google.protobuf.ByteString - getSignatureBytes() { - java.lang.Object ref = signature_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - signature_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string signature = 5; - * @param value The signature to set. - * @return This builder for chaining. - */ - public Builder setSignature( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - signature_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string signature = 5; - * @return This builder for chaining. - */ - public Builder clearSignature() { - signature_ = getDefaultInstance().getSignature(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string signature = 5; - * @param value The bytes for signature to set. - * @return This builder for chaining. - */ - public Builder setSignatureBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - signature_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - private int level_ ; - /** - * uint32 level = 6; - * @return The level. - */ - @java.lang.Override - public int getLevel() { - return level_; - } - /** - * uint32 level = 6; - * @param value The level to set. - * @return This builder for chaining. - */ - public Builder setLevel(int value) { - - level_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint32 level = 6; - * @return This builder for chaining. - */ - public Builder clearLevel() { - bitField0_ = (bitField0_ & ~0x00000020); - level_ = 0; - onChanged(); - return this; - } - - private long birthday_ ; - /** - * uint64 birthday = 7; - * @return The birthday. - */ - @java.lang.Override - public long getBirthday() { - return birthday_; - } - /** - * uint64 birthday = 7; - * @param value The birthday to set. - * @return This builder for chaining. - */ - public Builder setBirthday(long value) { - - birthday_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * uint64 birthday = 7; - * @return This builder for chaining. - */ - public Builder clearBirthday() { - bitField0_ = (bitField0_ & ~0x00000040); - birthday_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object telephone_ = ""; - /** - * string telephone = 8; - * @return The telephone. - */ - public java.lang.String getTelephone() { - java.lang.Object ref = telephone_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - telephone_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string telephone = 8; - * @return The bytes for telephone. - */ - public com.google.protobuf.ByteString - getTelephoneBytes() { - java.lang.Object ref = telephone_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - telephone_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string telephone = 8; - * @param value The telephone to set. - * @return This builder for chaining. - */ - public Builder setTelephone( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - telephone_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * string telephone = 8; - * @return This builder for chaining. - */ - public Builder clearTelephone() { - telephone_ = getDefaultInstance().getTelephone(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - return this; - } - /** - * string telephone = 8; - * @param value The bytes for telephone to set. - * @return This builder for chaining. - */ - public Builder setTelephoneBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - telephone_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarThumb_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarThumbBuilder_; - /** - * .Image avatarThumb = 9; - * @return Whether the avatarThumb field is set. - */ - public boolean hasAvatarThumb() { - return ((bitField0_ & 0x00000100) != 0); - } - /** - * .Image avatarThumb = 9; - * @return The avatarThumb. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb() { - if (avatarThumbBuilder_ == null) { - return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; - } else { - return avatarThumbBuilder_.getMessage(); - } - } - /** - * .Image avatarThumb = 9; - */ - public Builder setAvatarThumb(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarThumbBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatarThumb_ = value; - } else { - avatarThumbBuilder_.setMessage(value); - } - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .Image avatarThumb = 9; - */ - public Builder setAvatarThumb( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (avatarThumbBuilder_ == null) { - avatarThumb_ = builderForValue.build(); - } else { - avatarThumbBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .Image avatarThumb = 9; - */ - public Builder mergeAvatarThumb(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarThumbBuilder_ == null) { - if (((bitField0_ & 0x00000100) != 0) && - avatarThumb_ != null && - avatarThumb_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getAvatarThumbBuilder().mergeFrom(value); - } else { - avatarThumb_ = value; - } - } else { - avatarThumbBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .Image avatarThumb = 9; - */ - public Builder clearAvatarThumb() { - bitField0_ = (bitField0_ & ~0x00000100); - avatarThumb_ = null; - if (avatarThumbBuilder_ != null) { - avatarThumbBuilder_.dispose(); - avatarThumbBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image avatarThumb = 9; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarThumbBuilder() { - bitField0_ |= 0x00000100; - onChanged(); - return getAvatarThumbFieldBuilder().getBuilder(); - } - /** - * .Image avatarThumb = 9; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder() { - if (avatarThumbBuilder_ != null) { - return avatarThumbBuilder_.getMessageOrBuilder(); - } else { - return avatarThumb_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; - } - } - /** - * .Image avatarThumb = 9; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getAvatarThumbFieldBuilder() { - if (avatarThumbBuilder_ == null) { - avatarThumbBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getAvatarThumb(), - getParentForChildren(), - isClean()); - avatarThumb_ = null; - } - return avatarThumbBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarMedium_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarMediumBuilder_; - /** - * .Image avatarMedium = 10; - * @return Whether the avatarMedium field is set. - */ - public boolean hasAvatarMedium() { - return ((bitField0_ & 0x00000200) != 0); - } - /** - * .Image avatarMedium = 10; - * @return The avatarMedium. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium() { - if (avatarMediumBuilder_ == null) { - return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; - } else { - return avatarMediumBuilder_.getMessage(); - } - } - /** - * .Image avatarMedium = 10; - */ - public Builder setAvatarMedium(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarMediumBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatarMedium_ = value; - } else { - avatarMediumBuilder_.setMessage(value); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image avatarMedium = 10; - */ - public Builder setAvatarMedium( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (avatarMediumBuilder_ == null) { - avatarMedium_ = builderForValue.build(); - } else { - avatarMediumBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image avatarMedium = 10; - */ - public Builder mergeAvatarMedium(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarMediumBuilder_ == null) { - if (((bitField0_ & 0x00000200) != 0) && - avatarMedium_ != null && - avatarMedium_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getAvatarMediumBuilder().mergeFrom(value); - } else { - avatarMedium_ = value; - } - } else { - avatarMediumBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .Image avatarMedium = 10; - */ - public Builder clearAvatarMedium() { - bitField0_ = (bitField0_ & ~0x00000200); - avatarMedium_ = null; - if (avatarMediumBuilder_ != null) { - avatarMediumBuilder_.dispose(); - avatarMediumBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image avatarMedium = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarMediumBuilder() { - bitField0_ |= 0x00000200; - onChanged(); - return getAvatarMediumFieldBuilder().getBuilder(); - } - /** - * .Image avatarMedium = 10; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder() { - if (avatarMediumBuilder_ != null) { - return avatarMediumBuilder_.getMessageOrBuilder(); - } else { - return avatarMedium_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; - } - } - /** - * .Image avatarMedium = 10; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getAvatarMediumFieldBuilder() { - if (avatarMediumBuilder_ == null) { - avatarMediumBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getAvatarMedium(), - getParentForChildren(), - isClean()); - avatarMedium_ = null; - } - return avatarMediumBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarLarge_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarLargeBuilder_; - /** - * .Image avatarLarge = 11; - * @return Whether the avatarLarge field is set. - */ - public boolean hasAvatarLarge() { - return ((bitField0_ & 0x00000400) != 0); - } - /** - * .Image avatarLarge = 11; - * @return The avatarLarge. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge() { - if (avatarLargeBuilder_ == null) { - return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; - } else { - return avatarLargeBuilder_.getMessage(); - } - } - /** - * .Image avatarLarge = 11; - */ - public Builder setAvatarLarge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarLargeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatarLarge_ = value; - } else { - avatarLargeBuilder_.setMessage(value); - } - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * .Image avatarLarge = 11; - */ - public Builder setAvatarLarge( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (avatarLargeBuilder_ == null) { - avatarLarge_ = builderForValue.build(); - } else { - avatarLargeBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * .Image avatarLarge = 11; - */ - public Builder mergeAvatarLarge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarLargeBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0) && - avatarLarge_ != null && - avatarLarge_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getAvatarLargeBuilder().mergeFrom(value); - } else { - avatarLarge_ = value; - } - } else { - avatarLargeBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * .Image avatarLarge = 11; - */ - public Builder clearAvatarLarge() { - bitField0_ = (bitField0_ & ~0x00000400); - avatarLarge_ = null; - if (avatarLargeBuilder_ != null) { - avatarLargeBuilder_.dispose(); - avatarLargeBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image avatarLarge = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarLargeBuilder() { - bitField0_ |= 0x00000400; - onChanged(); - return getAvatarLargeFieldBuilder().getBuilder(); - } - /** - * .Image avatarLarge = 11; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder() { - if (avatarLargeBuilder_ != null) { - return avatarLargeBuilder_.getMessageOrBuilder(); - } else { - return avatarLarge_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; - } - } - /** - * .Image avatarLarge = 11; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getAvatarLargeFieldBuilder() { - if (avatarLargeBuilder_ == null) { - avatarLargeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getAvatarLarge(), - getParentForChildren(), - isClean()); - avatarLarge_ = null; - } - return avatarLargeBuilder_; - } - - private boolean verified_ ; - /** - * bool verified = 12; - * @return The verified. - */ - @java.lang.Override - public boolean getVerified() { - return verified_; - } - /** - * bool verified = 12; - * @param value The verified to set. - * @return This builder for chaining. - */ - public Builder setVerified(boolean value) { - - verified_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool verified = 12; - * @return This builder for chaining. - */ - public Builder clearVerified() { - bitField0_ = (bitField0_ & ~0x00000800); - verified_ = false; - onChanged(); - return this; - } - - private int experience_ ; - /** - * int32 experience = 13; - * @return The experience. - */ - @java.lang.Override - public int getExperience() { - return experience_; - } - /** - * int32 experience = 13; - * @param value The experience to set. - * @return This builder for chaining. - */ - public Builder setExperience(int value) { - - experience_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * int32 experience = 13; - * @return This builder for chaining. - */ - public Builder clearExperience() { - bitField0_ = (bitField0_ & ~0x00001000); - experience_ = 0; - onChanged(); - return this; - } - - private java.lang.Object city_ = ""; - /** - * string city = 14; - * @return The city. - */ - public java.lang.String getCity() { - java.lang.Object ref = city_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - city_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string city = 14; - * @return The bytes for city. - */ - public com.google.protobuf.ByteString - getCityBytes() { - java.lang.Object ref = city_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - city_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string city = 14; - * @param value The city to set. - * @return This builder for chaining. - */ - public Builder setCity( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - city_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * string city = 14; - * @return This builder for chaining. - */ - public Builder clearCity() { - city_ = getDefaultInstance().getCity(); - bitField0_ = (bitField0_ & ~0x00002000); - onChanged(); - return this; - } - /** - * string city = 14; - * @param value The bytes for city to set. - * @return This builder for chaining. - */ - public Builder setCityBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - city_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - - private int status_ ; - /** - * int32 status = 15; - * @return The status. - */ - @java.lang.Override - public int getStatus() { - return status_; - } - /** - * int32 status = 15; - * @param value The status to set. - * @return This builder for chaining. - */ - public Builder setStatus(int value) { - - status_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * int32 status = 15; - * @return This builder for chaining. - */ - public Builder clearStatus() { - bitField0_ = (bitField0_ & ~0x00004000); - status_ = 0; - onChanged(); - return this; - } - - private long createTime_ ; - /** - * int64 createTime = 16; - * @return The createTime. - */ - @java.lang.Override - public long getCreateTime() { - return createTime_; - } - /** - * int64 createTime = 16; - * @param value The createTime to set. - * @return This builder for chaining. - */ - public Builder setCreateTime(long value) { - - createTime_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * int64 createTime = 16; - * @return This builder for chaining. - */ - public Builder clearCreateTime() { - bitField0_ = (bitField0_ & ~0x00008000); - createTime_ = 0L; - onChanged(); - return this; - } - - private long modifyTime_ ; - /** - * int64 modifyTime = 17; - * @return The modifyTime. - */ - @java.lang.Override - public long getModifyTime() { - return modifyTime_; - } - /** - * int64 modifyTime = 17; - * @param value The modifyTime to set. - * @return This builder for chaining. - */ - public Builder setModifyTime(long value) { - - modifyTime_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * int64 modifyTime = 17; - * @return This builder for chaining. - */ - public Builder clearModifyTime() { - bitField0_ = (bitField0_ & ~0x00010000); - modifyTime_ = 0L; - onChanged(); - return this; - } - - private int secret_ ; - /** - * int32 secret = 18; - * @return The secret. - */ - @java.lang.Override - public int getSecret() { - return secret_; - } - /** - * int32 secret = 18; - * @param value The secret to set. - * @return This builder for chaining. - */ - public Builder setSecret(int value) { - - secret_ = value; - bitField0_ |= 0x00020000; - onChanged(); - return this; - } - /** - * int32 secret = 18; - * @return This builder for chaining. - */ - public Builder clearSecret() { - bitField0_ = (bitField0_ & ~0x00020000); - secret_ = 0; - onChanged(); - return this; - } - - private java.lang.Object shareQrcodeUri_ = ""; - /** - * string shareQrcodeUri = 19; - * @return The shareQrcodeUri. - */ - public java.lang.String getShareQrcodeUri() { - java.lang.Object ref = shareQrcodeUri_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - shareQrcodeUri_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string shareQrcodeUri = 19; - * @return The bytes for shareQrcodeUri. - */ - public com.google.protobuf.ByteString - getShareQrcodeUriBytes() { - java.lang.Object ref = shareQrcodeUri_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - shareQrcodeUri_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string shareQrcodeUri = 19; - * @param value The shareQrcodeUri to set. - * @return This builder for chaining. - */ - public Builder setShareQrcodeUri( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - shareQrcodeUri_ = value; - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - /** - * string shareQrcodeUri = 19; - * @return This builder for chaining. - */ - public Builder clearShareQrcodeUri() { - shareQrcodeUri_ = getDefaultInstance().getShareQrcodeUri(); - bitField0_ = (bitField0_ & ~0x00040000); - onChanged(); - return this; - } - /** - * string shareQrcodeUri = 19; - * @param value The bytes for shareQrcodeUri to set. - * @return This builder for chaining. - */ - public Builder setShareQrcodeUriBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - shareQrcodeUri_ = value; - bitField0_ |= 0x00040000; - onChanged(); - return this; - } - - private int incomeSharePercent_ ; - /** - * int32 incomeSharePercent = 20; - * @return The incomeSharePercent. - */ - @java.lang.Override - public int getIncomeSharePercent() { - return incomeSharePercent_; - } - /** - * int32 incomeSharePercent = 20; - * @param value The incomeSharePercent to set. - * @return This builder for chaining. - */ - public Builder setIncomeSharePercent(int value) { - - incomeSharePercent_ = value; - bitField0_ |= 0x00080000; - onChanged(); - return this; - } - /** - * int32 incomeSharePercent = 20; - * @return This builder for chaining. - */ - public Builder clearIncomeSharePercent() { - bitField0_ = (bitField0_ & ~0x00080000); - incomeSharePercent_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListList_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> badgeImageListListBuilder_; - /** - * .Image badgeImageListList = 21; - * @return Whether the badgeImageListList field is set. - */ - public boolean hasBadgeImageListList() { - return ((bitField0_ & 0x00100000) != 0); - } - /** - * .Image badgeImageListList = 21; - * @return The badgeImageListList. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList() { - if (badgeImageListListBuilder_ == null) { - return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; - } else { - return badgeImageListListBuilder_.getMessage(); - } - } - /** - * .Image badgeImageListList = 21; - */ - public Builder setBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (badgeImageListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - badgeImageListList_ = value; - } else { - badgeImageListListBuilder_.setMessage(value); - } - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .Image badgeImageListList = 21; - */ - public Builder setBadgeImageListList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (badgeImageListListBuilder_ == null) { - badgeImageListList_ = builderForValue.build(); - } else { - badgeImageListListBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .Image badgeImageListList = 21; - */ - public Builder mergeBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (badgeImageListListBuilder_ == null) { - if (((bitField0_ & 0x00100000) != 0) && - badgeImageListList_ != null && - badgeImageListList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBadgeImageListListBuilder().mergeFrom(value); - } else { - badgeImageListList_ = value; - } - } else { - badgeImageListListBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .Image badgeImageListList = 21; - */ - public Builder clearBadgeImageListList() { - bitField0_ = (bitField0_ & ~0x00100000); - badgeImageListList_ = null; - if (badgeImageListListBuilder_ != null) { - badgeImageListListBuilder_.dispose(); - badgeImageListListBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image badgeImageListList = 21; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBadgeImageListListBuilder() { - bitField0_ |= 0x00100000; - onChanged(); - return getBadgeImageListListFieldBuilder().getBuilder(); - } - /** - * .Image badgeImageListList = 21; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder() { - if (badgeImageListListBuilder_ != null) { - return badgeImageListListBuilder_.getMessageOrBuilder(); - } else { - return badgeImageListList_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; - } - } - /** - * .Image badgeImageListList = 21; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBadgeImageListListFieldBuilder() { - if (badgeImageListListBuilder_ == null) { - badgeImageListListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBadgeImageListList(), - getParentForChildren(), - isClean()); - badgeImageListList_ = null; - } - return badgeImageListListBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo followInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder> followInfoBuilder_; - /** - * .User.FollowInfo followInfo = 22; - * @return Whether the followInfo field is set. - */ - public boolean hasFollowInfo() { - return ((bitField0_ & 0x00200000) != 0); - } - /** - * .User.FollowInfo followInfo = 22; - * @return The followInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo() { - if (followInfoBuilder_ == null) { - return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; - } else { - return followInfoBuilder_.getMessage(); - } - } - /** - * .User.FollowInfo followInfo = 22; - */ - public Builder setFollowInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo value) { - if (followInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - followInfo_ = value; - } else { - followInfoBuilder_.setMessage(value); - } - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .User.FollowInfo followInfo = 22; - */ - public Builder setFollowInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder builderForValue) { - if (followInfoBuilder_ == null) { - followInfo_ = builderForValue.build(); - } else { - followInfoBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .User.FollowInfo followInfo = 22; - */ - public Builder mergeFollowInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo value) { - if (followInfoBuilder_ == null) { - if (((bitField0_ & 0x00200000) != 0) && - followInfo_ != null && - followInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance()) { - getFollowInfoBuilder().mergeFrom(value); - } else { - followInfo_ = value; - } - } else { - followInfoBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .User.FollowInfo followInfo = 22; - */ - public Builder clearFollowInfo() { - bitField0_ = (bitField0_ & ~0x00200000); - followInfo_ = null; - if (followInfoBuilder_ != null) { - followInfoBuilder_.dispose(); - followInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.FollowInfo followInfo = 22; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder getFollowInfoBuilder() { - bitField0_ |= 0x00200000; - onChanged(); - return getFollowInfoFieldBuilder().getBuilder(); - } - /** - * .User.FollowInfo followInfo = 22; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder() { - if (followInfoBuilder_ != null) { - return followInfoBuilder_.getMessageOrBuilder(); - } else { - return followInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; - } - } - /** - * .User.FollowInfo followInfo = 22; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder> - getFollowInfoFieldBuilder() { - if (followInfoBuilder_ == null) { - followInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder>( - getFollowInfo(), - getParentForChildren(), - isClean()); - followInfo_ = null; - } - return followInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade payGrade_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder> payGradeBuilder_; - /** - * .User.PayGrade payGrade = 23; - * @return Whether the payGrade field is set. - */ - public boolean hasPayGrade() { - return ((bitField0_ & 0x00400000) != 0); - } - /** - * .User.PayGrade payGrade = 23; - * @return The payGrade. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade() { - if (payGradeBuilder_ == null) { - return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; - } else { - return payGradeBuilder_.getMessage(); - } - } - /** - * .User.PayGrade payGrade = 23; - */ - public Builder setPayGrade(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade value) { - if (payGradeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payGrade_ = value; - } else { - payGradeBuilder_.setMessage(value); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .User.PayGrade payGrade = 23; - */ - public Builder setPayGrade( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder builderForValue) { - if (payGradeBuilder_ == null) { - payGrade_ = builderForValue.build(); - } else { - payGradeBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .User.PayGrade payGrade = 23; - */ - public Builder mergePayGrade(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade value) { - if (payGradeBuilder_ == null) { - if (((bitField0_ & 0x00400000) != 0) && - payGrade_ != null && - payGrade_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance()) { - getPayGradeBuilder().mergeFrom(value); - } else { - payGrade_ = value; - } - } else { - payGradeBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00400000; - onChanged(); - return this; - } - /** - * .User.PayGrade payGrade = 23; - */ - public Builder clearPayGrade() { - bitField0_ = (bitField0_ & ~0x00400000); - payGrade_ = null; - if (payGradeBuilder_ != null) { - payGradeBuilder_.dispose(); - payGradeBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.PayGrade payGrade = 23; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder getPayGradeBuilder() { - bitField0_ |= 0x00400000; - onChanged(); - return getPayGradeFieldBuilder().getBuilder(); - } - /** - * .User.PayGrade payGrade = 23; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder() { - if (payGradeBuilder_ != null) { - return payGradeBuilder_.getMessageOrBuilder(); - } else { - return payGrade_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; - } - } - /** - * .User.PayGrade payGrade = 23; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder> - getPayGradeFieldBuilder() { - if (payGradeBuilder_ == null) { - payGradeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder>( - getPayGrade(), - getParentForChildren(), - isClean()); - payGrade_ = null; - } - return payGradeBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub fansClub_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder> fansClubBuilder_; - /** - * .User.FansClub fansClub = 24; - * @return Whether the fansClub field is set. - */ - public boolean hasFansClub() { - return ((bitField0_ & 0x00800000) != 0); - } - /** - * .User.FansClub fansClub = 24; - * @return The fansClub. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub() { - if (fansClubBuilder_ == null) { - return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; - } else { - return fansClubBuilder_.getMessage(); - } - } - /** - * .User.FansClub fansClub = 24; - */ - public Builder setFansClub(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub value) { - if (fansClubBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - fansClub_ = value; - } else { - fansClubBuilder_.setMessage(value); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.FansClub fansClub = 24; - */ - public Builder setFansClub( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder builderForValue) { - if (fansClubBuilder_ == null) { - fansClub_ = builderForValue.build(); - } else { - fansClubBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.FansClub fansClub = 24; - */ - public Builder mergeFansClub(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub value) { - if (fansClubBuilder_ == null) { - if (((bitField0_ & 0x00800000) != 0) && - fansClub_ != null && - fansClub_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance()) { - getFansClubBuilder().mergeFrom(value); - } else { - fansClub_ = value; - } - } else { - fansClubBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.FansClub fansClub = 24; - */ - public Builder clearFansClub() { - bitField0_ = (bitField0_ & ~0x00800000); - fansClub_ = null; - if (fansClubBuilder_ != null) { - fansClubBuilder_.dispose(); - fansClubBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.FansClub fansClub = 24; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder getFansClubBuilder() { - bitField0_ |= 0x00800000; - onChanged(); - return getFansClubFieldBuilder().getBuilder(); - } - /** - * .User.FansClub fansClub = 24; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder() { - if (fansClubBuilder_ != null) { - return fansClubBuilder_.getMessageOrBuilder(); - } else { - return fansClub_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; - } - } - /** - * .User.FansClub fansClub = 24; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder> - getFansClubFieldBuilder() { - if (fansClubBuilder_ == null) { - fansClubBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder>( - getFansClub(), - getParentForChildren(), - isClean()); - fansClub_ = null; - } - return fansClubBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border border_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder> borderBuilder_; - /** - * .User.Border border = 25; - * @return Whether the border field is set. - */ - public boolean hasBorder() { - return ((bitField0_ & 0x01000000) != 0); - } - /** - * .User.Border border = 25; - * @return The border. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder() { - if (borderBuilder_ == null) { - return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; - } else { - return borderBuilder_.getMessage(); - } - } - /** - * .User.Border border = 25; - */ - public Builder setBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border value) { - if (borderBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - border_ = value; - } else { - borderBuilder_.setMessage(value); - } - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .User.Border border = 25; - */ - public Builder setBorder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder builderForValue) { - if (borderBuilder_ == null) { - border_ = builderForValue.build(); - } else { - borderBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .User.Border border = 25; - */ - public Builder mergeBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border value) { - if (borderBuilder_ == null) { - if (((bitField0_ & 0x01000000) != 0) && - border_ != null && - border_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance()) { - getBorderBuilder().mergeFrom(value); - } else { - border_ = value; - } - } else { - borderBuilder_.mergeFrom(value); - } - bitField0_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .User.Border border = 25; - */ - public Builder clearBorder() { - bitField0_ = (bitField0_ & ~0x01000000); - border_ = null; - if (borderBuilder_ != null) { - borderBuilder_.dispose(); - borderBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.Border border = 25; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder getBorderBuilder() { - bitField0_ |= 0x01000000; - onChanged(); - return getBorderFieldBuilder().getBuilder(); - } - /** - * .User.Border border = 25; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder() { - if (borderBuilder_ != null) { - return borderBuilder_.getMessageOrBuilder(); - } else { - return border_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; - } - } - /** - * .User.Border border = 25; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder> - getBorderFieldBuilder() { - if (borderBuilder_ == null) { - borderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder>( - getBorder(), - getParentForChildren(), - isClean()); - border_ = null; - } - return borderBuilder_; - } - - private java.lang.Object specialId_ = ""; - /** - * string specialId = 26; - * @return The specialId. - */ - public java.lang.String getSpecialId() { - java.lang.Object ref = specialId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - specialId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string specialId = 26; - * @return The bytes for specialId. - */ - public com.google.protobuf.ByteString - getSpecialIdBytes() { - java.lang.Object ref = specialId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - specialId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string specialId = 26; - * @param value The specialId to set. - * @return This builder for chaining. - */ - public Builder setSpecialId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - specialId_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - /** - * string specialId = 26; - * @return This builder for chaining. - */ - public Builder clearSpecialId() { - specialId_ = getDefaultInstance().getSpecialId(); - bitField0_ = (bitField0_ & ~0x02000000); - onChanged(); - return this; - } - /** - * string specialId = 26; - * @param value The bytes for specialId to set. - * @return This builder for chaining. - */ - public Builder setSpecialIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - specialId_ = value; - bitField0_ |= 0x02000000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarBorder_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarBorderBuilder_; - /** - * .Image avatarBorder = 27; - * @return Whether the avatarBorder field is set. - */ - public boolean hasAvatarBorder() { - return ((bitField0_ & 0x04000000) != 0); - } - /** - * .Image avatarBorder = 27; - * @return The avatarBorder. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder() { - if (avatarBorderBuilder_ == null) { - return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; - } else { - return avatarBorderBuilder_.getMessage(); - } - } - /** - * .Image avatarBorder = 27; - */ - public Builder setAvatarBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarBorderBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatarBorder_ = value; - } else { - avatarBorderBuilder_.setMessage(value); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image avatarBorder = 27; - */ - public Builder setAvatarBorder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (avatarBorderBuilder_ == null) { - avatarBorder_ = builderForValue.build(); - } else { - avatarBorderBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image avatarBorder = 27; - */ - public Builder mergeAvatarBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarBorderBuilder_ == null) { - if (((bitField0_ & 0x04000000) != 0) && - avatarBorder_ != null && - avatarBorder_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getAvatarBorderBuilder().mergeFrom(value); - } else { - avatarBorder_ = value; - } - } else { - avatarBorderBuilder_.mergeFrom(value); - } - bitField0_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .Image avatarBorder = 27; - */ - public Builder clearAvatarBorder() { - bitField0_ = (bitField0_ & ~0x04000000); - avatarBorder_ = null; - if (avatarBorderBuilder_ != null) { - avatarBorderBuilder_.dispose(); - avatarBorderBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image avatarBorder = 27; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarBorderBuilder() { - bitField0_ |= 0x04000000; - onChanged(); - return getAvatarBorderFieldBuilder().getBuilder(); - } - /** - * .Image avatarBorder = 27; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder() { - if (avatarBorderBuilder_ != null) { - return avatarBorderBuilder_.getMessageOrBuilder(); - } else { - return avatarBorder_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; - } - } - /** - * .Image avatarBorder = 27; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getAvatarBorderFieldBuilder() { - if (avatarBorderBuilder_ == null) { - avatarBorderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getAvatarBorder(), - getParentForChildren(), - isClean()); - avatarBorder_ = null; - } - return avatarBorderBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image medal_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> medalBuilder_; - /** - * .Image medal = 28; - * @return Whether the medal field is set. - */ - public boolean hasMedal() { - return ((bitField0_ & 0x08000000) != 0); - } - /** - * .Image medal = 28; - * @return The medal. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal() { - if (medalBuilder_ == null) { - return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; - } else { - return medalBuilder_.getMessage(); - } - } - /** - * .Image medal = 28; - */ - public Builder setMedal(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (medalBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - medal_ = value; - } else { - medalBuilder_.setMessage(value); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image medal = 28; - */ - public Builder setMedal( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (medalBuilder_ == null) { - medal_ = builderForValue.build(); - } else { - medalBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image medal = 28; - */ - public Builder mergeMedal(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (medalBuilder_ == null) { - if (((bitField0_ & 0x08000000) != 0) && - medal_ != null && - medal_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getMedalBuilder().mergeFrom(value); - } else { - medal_ = value; - } - } else { - medalBuilder_.mergeFrom(value); - } - bitField0_ |= 0x08000000; - onChanged(); - return this; - } - /** - * .Image medal = 28; - */ - public Builder clearMedal() { - bitField0_ = (bitField0_ & ~0x08000000); - medal_ = null; - if (medalBuilder_ != null) { - medalBuilder_.dispose(); - medalBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image medal = 28; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getMedalBuilder() { - bitField0_ |= 0x08000000; - onChanged(); - return getMedalFieldBuilder().getBuilder(); - } - /** - * .Image medal = 28; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder() { - if (medalBuilder_ != null) { - return medalBuilder_.getMessageOrBuilder(); - } else { - return medal_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; - } - } - /** - * .Image medal = 28; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getMedalFieldBuilder() { - if (medalBuilder_ == null) { - medalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getMedal(), - getParentForChildren(), - isClean()); - medal_ = null; - } - return medalBuilder_; - } - - private java.util.List realTimeIconsList_ = - java.util.Collections.emptyList(); - private void ensureRealTimeIconsListIsMutable() { - if (!((bitField0_ & 0x10000000) != 0)) { - realTimeIconsList_ = new java.util.ArrayList(realTimeIconsList_); - bitField0_ |= 0x10000000; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> realTimeIconsListBuilder_; - - /** - * repeated .Image realTimeIconsList = 29; - */ - public java.util.List getRealTimeIconsListList() { - if (realTimeIconsListBuilder_ == null) { - return java.util.Collections.unmodifiableList(realTimeIconsList_); - } else { - return realTimeIconsListBuilder_.getMessageList(); - } - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public int getRealTimeIconsListCount() { - if (realTimeIconsListBuilder_ == null) { - return realTimeIconsList_.size(); - } else { - return realTimeIconsListBuilder_.getCount(); - } - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index) { - if (realTimeIconsListBuilder_ == null) { - return realTimeIconsList_.get(index); - } else { - return realTimeIconsListBuilder_.getMessage(index); - } - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder setRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (realTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.set(index, value); - onChanged(); - } else { - realTimeIconsListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder setRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.set(index, builderForValue.build()); - onChanged(); - } else { - realTimeIconsListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder addRealTimeIconsList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (realTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.add(value); - onChanged(); - } else { - realTimeIconsListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder addRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (realTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.add(index, value); - onChanged(); - } else { - realTimeIconsListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder addRealTimeIconsList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.add(builderForValue.build()); - onChanged(); - } else { - realTimeIconsListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder addRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.add(index, builderForValue.build()); - onChanged(); - } else { - realTimeIconsListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder addAllRealTimeIconsList( - java.lang.Iterable values) { - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, realTimeIconsList_); - onChanged(); - } else { - realTimeIconsListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder clearRealTimeIconsList() { - if (realTimeIconsListBuilder_ == null) { - realTimeIconsList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x10000000); - onChanged(); - } else { - realTimeIconsListBuilder_.clear(); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public Builder removeRealTimeIconsList(int index) { - if (realTimeIconsListBuilder_ == null) { - ensureRealTimeIconsListIsMutable(); - realTimeIconsList_.remove(index); - onChanged(); - } else { - realTimeIconsListBuilder_.remove(index); - } - return this; - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getRealTimeIconsListBuilder( - int index) { - return getRealTimeIconsListFieldBuilder().getBuilder(index); - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( - int index) { - if (realTimeIconsListBuilder_ == null) { - return realTimeIconsList_.get(index); } else { - return realTimeIconsListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public java.util.List - getRealTimeIconsListOrBuilderList() { - if (realTimeIconsListBuilder_ != null) { - return realTimeIconsListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(realTimeIconsList_); - } - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addRealTimeIconsListBuilder() { - return getRealTimeIconsListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addRealTimeIconsListBuilder( - int index) { - return getRealTimeIconsListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); - } - /** - * repeated .Image realTimeIconsList = 29; - */ - public java.util.List - getRealTimeIconsListBuilderList() { - return getRealTimeIconsListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getRealTimeIconsListFieldBuilder() { - if (realTimeIconsListBuilder_ == null) { - realTimeIconsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - realTimeIconsList_, - ((bitField0_ & 0x10000000) != 0), - getParentForChildren(), - isClean()); - realTimeIconsList_ = null; - } - return realTimeIconsListBuilder_; - } - - private java.util.List newRealTimeIconsList_ = - java.util.Collections.emptyList(); - private void ensureNewRealTimeIconsListIsMutable() { - if (!((bitField0_ & 0x20000000) != 0)) { - newRealTimeIconsList_ = new java.util.ArrayList(newRealTimeIconsList_); - bitField0_ |= 0x20000000; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newRealTimeIconsListBuilder_; - - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public java.util.List getNewRealTimeIconsListList() { - if (newRealTimeIconsListBuilder_ == null) { - return java.util.Collections.unmodifiableList(newRealTimeIconsList_); - } else { - return newRealTimeIconsListBuilder_.getMessageList(); - } - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public int getNewRealTimeIconsListCount() { - if (newRealTimeIconsListBuilder_ == null) { - return newRealTimeIconsList_.size(); - } else { - return newRealTimeIconsListBuilder_.getCount(); - } - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index) { - if (newRealTimeIconsListBuilder_ == null) { - return newRealTimeIconsList_.get(index); - } else { - return newRealTimeIconsListBuilder_.getMessage(index); - } - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder setNewRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newRealTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.set(index, value); - onChanged(); - } else { - newRealTimeIconsListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder setNewRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.set(index, builderForValue.build()); - onChanged(); - } else { - newRealTimeIconsListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder addNewRealTimeIconsList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newRealTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.add(value); - onChanged(); - } else { - newRealTimeIconsListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder addNewRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (newRealTimeIconsListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.add(index, value); - onChanged(); - } else { - newRealTimeIconsListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder addNewRealTimeIconsList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.add(builderForValue.build()); - onChanged(); - } else { - newRealTimeIconsListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder addNewRealTimeIconsList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.add(index, builderForValue.build()); - onChanged(); - } else { - newRealTimeIconsListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder addAllNewRealTimeIconsList( - java.lang.Iterable values) { - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, newRealTimeIconsList_); - onChanged(); - } else { - newRealTimeIconsListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder clearNewRealTimeIconsList() { - if (newRealTimeIconsListBuilder_ == null) { - newRealTimeIconsList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x20000000); - onChanged(); - } else { - newRealTimeIconsListBuilder_.clear(); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public Builder removeNewRealTimeIconsList(int index) { - if (newRealTimeIconsListBuilder_ == null) { - ensureNewRealTimeIconsListIsMutable(); - newRealTimeIconsList_.remove(index); - onChanged(); - } else { - newRealTimeIconsListBuilder_.remove(index); - } - return this; - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewRealTimeIconsListBuilder( - int index) { - return getNewRealTimeIconsListFieldBuilder().getBuilder(index); - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( - int index) { - if (newRealTimeIconsListBuilder_ == null) { - return newRealTimeIconsList_.get(index); } else { - return newRealTimeIconsListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public java.util.List - getNewRealTimeIconsListOrBuilderList() { - if (newRealTimeIconsListBuilder_ != null) { - return newRealTimeIconsListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(newRealTimeIconsList_); - } - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addNewRealTimeIconsListBuilder() { - return getNewRealTimeIconsListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addNewRealTimeIconsListBuilder( - int index) { - return getNewRealTimeIconsListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); - } - /** - * repeated .Image newRealTimeIconsList = 30; - */ - public java.util.List - getNewRealTimeIconsListBuilderList() { - return getNewRealTimeIconsListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getNewRealTimeIconsListFieldBuilder() { - if (newRealTimeIconsListBuilder_ == null) { - newRealTimeIconsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - newRealTimeIconsList_, - ((bitField0_ & 0x20000000) != 0), - getParentForChildren(), - isClean()); - newRealTimeIconsList_ = null; - } - return newRealTimeIconsListBuilder_; - } - - private long topVipNo_ ; - /** - * int64 topVipNo = 31; - * @return The topVipNo. - */ - @java.lang.Override - public long getTopVipNo() { - return topVipNo_; - } - /** - * int64 topVipNo = 31; - * @param value The topVipNo to set. - * @return This builder for chaining. - */ - public Builder setTopVipNo(long value) { - - topVipNo_ = value; - bitField0_ |= 0x40000000; - onChanged(); - return this; - } - /** - * int64 topVipNo = 31; - * @return This builder for chaining. - */ - public Builder clearTopVipNo() { - bitField0_ = (bitField0_ & ~0x40000000); - topVipNo_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr userAttr_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder> userAttrBuilder_; - /** - * .User.UserAttr userAttr = 32; - * @return Whether the userAttr field is set. - */ - public boolean hasUserAttr() { - return ((bitField0_ & 0x80000000) != 0); - } - /** - * .User.UserAttr userAttr = 32; - * @return The userAttr. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr() { - if (userAttrBuilder_ == null) { - return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; - } else { - return userAttrBuilder_.getMessage(); - } - } - /** - * .User.UserAttr userAttr = 32; - */ - public Builder setUserAttr(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr value) { - if (userAttrBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - userAttr_ = value; - } else { - userAttrBuilder_.setMessage(value); - } - bitField0_ |= 0x80000000; - onChanged(); - return this; - } - /** - * .User.UserAttr userAttr = 32; - */ - public Builder setUserAttr( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder builderForValue) { - if (userAttrBuilder_ == null) { - userAttr_ = builderForValue.build(); - } else { - userAttrBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x80000000; - onChanged(); - return this; - } - /** - * .User.UserAttr userAttr = 32; - */ - public Builder mergeUserAttr(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr value) { - if (userAttrBuilder_ == null) { - if (((bitField0_ & 0x80000000) != 0) && - userAttr_ != null && - userAttr_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance()) { - getUserAttrBuilder().mergeFrom(value); - } else { - userAttr_ = value; - } - } else { - userAttrBuilder_.mergeFrom(value); - } - bitField0_ |= 0x80000000; - onChanged(); - return this; - } - /** - * .User.UserAttr userAttr = 32; - */ - public Builder clearUserAttr() { - bitField0_ = (bitField0_ & ~0x80000000); - userAttr_ = null; - if (userAttrBuilder_ != null) { - userAttrBuilder_.dispose(); - userAttrBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.UserAttr userAttr = 32; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder getUserAttrBuilder() { - bitField0_ |= 0x80000000; - onChanged(); - return getUserAttrFieldBuilder().getBuilder(); - } - /** - * .User.UserAttr userAttr = 32; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder() { - if (userAttrBuilder_ != null) { - return userAttrBuilder_.getMessageOrBuilder(); - } else { - return userAttr_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; - } - } - /** - * .User.UserAttr userAttr = 32; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder> - getUserAttrFieldBuilder() { - if (userAttrBuilder_ == null) { - userAttrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder>( - getUserAttr(), - getParentForChildren(), - isClean()); - userAttr_ = null; - } - return userAttrBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom ownRoom_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder> ownRoomBuilder_; - /** - * .User.OwnRoom ownRoom = 33; - * @return Whether the ownRoom field is set. - */ - public boolean hasOwnRoom() { - return ((bitField1_ & 0x00000001) != 0); - } - /** - * .User.OwnRoom ownRoom = 33; - * @return The ownRoom. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom() { - if (ownRoomBuilder_ == null) { - return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; - } else { - return ownRoomBuilder_.getMessage(); - } - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public Builder setOwnRoom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom value) { - if (ownRoomBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ownRoom_ = value; - } else { - ownRoomBuilder_.setMessage(value); - } - bitField1_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public Builder setOwnRoom( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder builderForValue) { - if (ownRoomBuilder_ == null) { - ownRoom_ = builderForValue.build(); - } else { - ownRoomBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public Builder mergeOwnRoom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom value) { - if (ownRoomBuilder_ == null) { - if (((bitField1_ & 0x00000001) != 0) && - ownRoom_ != null && - ownRoom_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance()) { - getOwnRoomBuilder().mergeFrom(value); - } else { - ownRoom_ = value; - } - } else { - ownRoomBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public Builder clearOwnRoom() { - bitField1_ = (bitField1_ & ~0x00000001); - ownRoom_ = null; - if (ownRoomBuilder_ != null) { - ownRoomBuilder_.dispose(); - ownRoomBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder getOwnRoomBuilder() { - bitField1_ |= 0x00000001; - onChanged(); - return getOwnRoomFieldBuilder().getBuilder(); - } - /** - * .User.OwnRoom ownRoom = 33; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder() { - if (ownRoomBuilder_ != null) { - return ownRoomBuilder_.getMessageOrBuilder(); - } else { - return ownRoom_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; - } - } - /** - * .User.OwnRoom ownRoom = 33; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder> - getOwnRoomFieldBuilder() { - if (ownRoomBuilder_ == null) { - ownRoomBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder>( - getOwnRoom(), - getParentForChildren(), - isClean()); - ownRoom_ = null; - } - return ownRoomBuilder_; - } - - private long payScore_ ; - /** - * int64 payScore = 34; - * @return The payScore. - */ - @java.lang.Override - public long getPayScore() { - return payScore_; - } - /** - * int64 payScore = 34; - * @param value The payScore to set. - * @return This builder for chaining. - */ - public Builder setPayScore(long value) { - - payScore_ = value; - bitField1_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int64 payScore = 34; - * @return This builder for chaining. - */ - public Builder clearPayScore() { - bitField1_ = (bitField1_ & ~0x00000002); - payScore_ = 0L; - onChanged(); - return this; - } - - private long ticketCount_ ; - /** - * int64 ticketCount = 35; - * @return The ticketCount. - */ - @java.lang.Override - public long getTicketCount() { - return ticketCount_; - } - /** - * int64 ticketCount = 35; - * @param value The ticketCount to set. - * @return This builder for chaining. - */ - public Builder setTicketCount(long value) { - - ticketCount_ = value; - bitField1_ |= 0x00000004; - onChanged(); - return this; - } - /** - * int64 ticketCount = 35; - * @return This builder for chaining. - */ - public Builder clearTicketCount() { - bitField1_ = (bitField1_ & ~0x00000004); - ticketCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo anchorInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder> anchorInfoBuilder_; - /** - * .User.AnchorInfo anchorInfo = 36; - * @return Whether the anchorInfo field is set. - */ - public boolean hasAnchorInfo() { - return ((bitField1_ & 0x00000008) != 0); - } - /** - * .User.AnchorInfo anchorInfo = 36; - * @return The anchorInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo() { - if (anchorInfoBuilder_ == null) { - return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; - } else { - return anchorInfoBuilder_.getMessage(); - } - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public Builder setAnchorInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo value) { - if (anchorInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - anchorInfo_ = value; - } else { - anchorInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public Builder setAnchorInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder builderForValue) { - if (anchorInfoBuilder_ == null) { - anchorInfo_ = builderForValue.build(); - } else { - anchorInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public Builder mergeAnchorInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo value) { - if (anchorInfoBuilder_ == null) { - if (((bitField1_ & 0x00000008) != 0) && - anchorInfo_ != null && - anchorInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance()) { - getAnchorInfoBuilder().mergeFrom(value); - } else { - anchorInfo_ = value; - } - } else { - anchorInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public Builder clearAnchorInfo() { - bitField1_ = (bitField1_ & ~0x00000008); - anchorInfo_ = null; - if (anchorInfoBuilder_ != null) { - anchorInfoBuilder_.dispose(); - anchorInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder getAnchorInfoBuilder() { - bitField1_ |= 0x00000008; - onChanged(); - return getAnchorInfoFieldBuilder().getBuilder(); - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder() { - if (anchorInfoBuilder_ != null) { - return anchorInfoBuilder_.getMessageOrBuilder(); - } else { - return anchorInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; - } - } - /** - * .User.AnchorInfo anchorInfo = 36; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder> - getAnchorInfoFieldBuilder() { - if (anchorInfoBuilder_ == null) { - anchorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder>( - getAnchorInfo(), - getParentForChildren(), - isClean()); - anchorInfo_ = null; - } - return anchorInfoBuilder_; - } - - private int linkMicStats_ ; - /** - * int32 linkMicStats = 37; - * @return The linkMicStats. - */ - @java.lang.Override - public int getLinkMicStats() { - return linkMicStats_; - } - /** - * int32 linkMicStats = 37; - * @param value The linkMicStats to set. - * @return This builder for chaining. - */ - public Builder setLinkMicStats(int value) { - - linkMicStats_ = value; - bitField1_ |= 0x00000010; - onChanged(); - return this; - } - /** - * int32 linkMicStats = 37; - * @return This builder for chaining. - */ - public Builder clearLinkMicStats() { - bitField1_ = (bitField1_ & ~0x00000010); - linkMicStats_ = 0; - onChanged(); - return this; - } - - private java.lang.Object displayId_ = ""; - /** - * string displayId = 38; - * @return The displayId. - */ - public java.lang.String getDisplayId() { - java.lang.Object ref = displayId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string displayId = 38; - * @return The bytes for displayId. - */ - public com.google.protobuf.ByteString - getDisplayIdBytes() { - java.lang.Object ref = displayId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string displayId = 38; - * @param value The displayId to set. - * @return This builder for chaining. - */ - public Builder setDisplayId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - displayId_ = value; - bitField1_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string displayId = 38; - * @return This builder for chaining. - */ - public Builder clearDisplayId() { - displayId_ = getDefaultInstance().getDisplayId(); - bitField1_ = (bitField1_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string displayId = 38; - * @param value The bytes for displayId to set. - * @return This builder for chaining. - */ - public Builder setDisplayIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - displayId_ = value; - bitField1_ |= 0x00000020; - onChanged(); - return this; - } - - private boolean withCommercePermission_ ; - /** - * bool withCommercePermission = 39; - * @return The withCommercePermission. - */ - @java.lang.Override - public boolean getWithCommercePermission() { - return withCommercePermission_; - } - /** - * bool withCommercePermission = 39; - * @param value The withCommercePermission to set. - * @return This builder for chaining. - */ - public Builder setWithCommercePermission(boolean value) { - - withCommercePermission_ = value; - bitField1_ |= 0x00000040; - onChanged(); - return this; - } - /** - * bool withCommercePermission = 39; - * @return This builder for chaining. - */ - public Builder clearWithCommercePermission() { - bitField1_ = (bitField1_ & ~0x00000040); - withCommercePermission_ = false; - onChanged(); - return this; - } - - private boolean withFusionShopEntry_ ; - /** - * bool withFusionShopEntry = 40; - * @return The withFusionShopEntry. - */ - @java.lang.Override - public boolean getWithFusionShopEntry() { - return withFusionShopEntry_; - } - /** - * bool withFusionShopEntry = 40; - * @param value The withFusionShopEntry to set. - * @return This builder for chaining. - */ - public Builder setWithFusionShopEntry(boolean value) { - - withFusionShopEntry_ = value; - bitField1_ |= 0x00000080; - onChanged(); - return this; - } - /** - * bool withFusionShopEntry = 40; - * @return This builder for chaining. - */ - public Builder clearWithFusionShopEntry() { - bitField1_ = (bitField1_ & ~0x00000080); - withFusionShopEntry_ = false; - onChanged(); - return this; - } - - private long totalRechargeDiamondCount_ ; - /** - * int64 totalRechargeDiamondCount = 41; - * @return The totalRechargeDiamondCount. - */ - @java.lang.Override - public long getTotalRechargeDiamondCount() { - return totalRechargeDiamondCount_; - } - /** - * int64 totalRechargeDiamondCount = 41; - * @param value The totalRechargeDiamondCount to set. - * @return This builder for chaining. - */ - public Builder setTotalRechargeDiamondCount(long value) { - - totalRechargeDiamondCount_ = value; - bitField1_ |= 0x00000100; - onChanged(); - return this; - } - /** - * int64 totalRechargeDiamondCount = 41; - * @return This builder for chaining. - */ - public Builder clearTotalRechargeDiamondCount() { - bitField1_ = (bitField1_ & ~0x00000100); - totalRechargeDiamondCount_ = 0L; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel webcastAnchorLevel_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> webcastAnchorLevelBuilder_; - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return Whether the webcastAnchorLevel field is set. - */ - public boolean hasWebcastAnchorLevel() { - return ((bitField1_ & 0x00000200) != 0); - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - * @return The webcastAnchorLevel. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel() { - if (webcastAnchorLevelBuilder_ == null) { - return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; - } else { - return webcastAnchorLevelBuilder_.getMessage(); - } - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public Builder setWebcastAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { - if (webcastAnchorLevelBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - webcastAnchorLevel_ = value; - } else { - webcastAnchorLevelBuilder_.setMessage(value); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public Builder setWebcastAnchorLevel( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder builderForValue) { - if (webcastAnchorLevelBuilder_ == null) { - webcastAnchorLevel_ = builderForValue.build(); - } else { - webcastAnchorLevelBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public Builder mergeWebcastAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { - if (webcastAnchorLevelBuilder_ == null) { - if (((bitField1_ & 0x00000200) != 0) && - webcastAnchorLevel_ != null && - webcastAnchorLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) { - getWebcastAnchorLevelBuilder().mergeFrom(value); - } else { - webcastAnchorLevel_ = value; - } - } else { - webcastAnchorLevelBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public Builder clearWebcastAnchorLevel() { - bitField1_ = (bitField1_ & ~0x00000200); - webcastAnchorLevel_ = null; - if (webcastAnchorLevelBuilder_ != null) { - webcastAnchorLevelBuilder_.dispose(); - webcastAnchorLevelBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder getWebcastAnchorLevelBuilder() { - bitField1_ |= 0x00000200; - onChanged(); - return getWebcastAnchorLevelFieldBuilder().getBuilder(); - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder() { - if (webcastAnchorLevelBuilder_ != null) { - return webcastAnchorLevelBuilder_.getMessageOrBuilder(); - } else { - return webcastAnchorLevel_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; - } - } - /** - * .User.AnchorLevel webcastAnchorLevel = 42; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> - getWebcastAnchorLevelFieldBuilder() { - if (webcastAnchorLevelBuilder_ == null) { - webcastAnchorLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder>( - getWebcastAnchorLevel(), - getParentForChildren(), - isClean()); - webcastAnchorLevel_ = null; - } - return webcastAnchorLevelBuilder_; - } - - private java.lang.Object verifiedContent_ = ""; - /** - * string verifiedContent = 43; - * @return The verifiedContent. - */ - public java.lang.String getVerifiedContent() { - java.lang.Object ref = verifiedContent_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - verifiedContent_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string verifiedContent = 43; - * @return The bytes for verifiedContent. - */ - public com.google.protobuf.ByteString - getVerifiedContentBytes() { - java.lang.Object ref = verifiedContent_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verifiedContent_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string verifiedContent = 43; - * @param value The verifiedContent to set. - * @return This builder for chaining. - */ - public Builder setVerifiedContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - verifiedContent_ = value; - bitField1_ |= 0x00000400; - onChanged(); - return this; - } - /** - * string verifiedContent = 43; - * @return This builder for chaining. - */ - public Builder clearVerifiedContent() { - verifiedContent_ = getDefaultInstance().getVerifiedContent(); - bitField1_ = (bitField1_ & ~0x00000400); - onChanged(); - return this; - } - /** - * string verifiedContent = 43; - * @param value The bytes for verifiedContent to set. - * @return This builder for chaining. - */ - public Builder setVerifiedContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - verifiedContent_ = value; - bitField1_ |= 0x00000400; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats authorStats_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder> authorStatsBuilder_; - /** - * .User.AuthorStats authorStats = 44; - * @return Whether the authorStats field is set. - */ - public boolean hasAuthorStats() { - return ((bitField1_ & 0x00000800) != 0); - } - /** - * .User.AuthorStats authorStats = 44; - * @return The authorStats. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats() { - if (authorStatsBuilder_ == null) { - return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; - } else { - return authorStatsBuilder_.getMessage(); - } - } - /** - * .User.AuthorStats authorStats = 44; - */ - public Builder setAuthorStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats value) { - if (authorStatsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - authorStats_ = value; - } else { - authorStatsBuilder_.setMessage(value); - } - bitField1_ |= 0x00000800; - onChanged(); - return this; - } - /** - * .User.AuthorStats authorStats = 44; - */ - public Builder setAuthorStats( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder builderForValue) { - if (authorStatsBuilder_ == null) { - authorStats_ = builderForValue.build(); - } else { - authorStatsBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00000800; - onChanged(); - return this; - } - /** - * .User.AuthorStats authorStats = 44; - */ - public Builder mergeAuthorStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats value) { - if (authorStatsBuilder_ == null) { - if (((bitField1_ & 0x00000800) != 0) && - authorStats_ != null && - authorStats_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance()) { - getAuthorStatsBuilder().mergeFrom(value); - } else { - authorStats_ = value; - } - } else { - authorStatsBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00000800; - onChanged(); - return this; - } - /** - * .User.AuthorStats authorStats = 44; - */ - public Builder clearAuthorStats() { - bitField1_ = (bitField1_ & ~0x00000800); - authorStats_ = null; - if (authorStatsBuilder_ != null) { - authorStatsBuilder_.dispose(); - authorStatsBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.AuthorStats authorStats = 44; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder getAuthorStatsBuilder() { - bitField1_ |= 0x00000800; - onChanged(); - return getAuthorStatsFieldBuilder().getBuilder(); - } - /** - * .User.AuthorStats authorStats = 44; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder() { - if (authorStatsBuilder_ != null) { - return authorStatsBuilder_.getMessageOrBuilder(); - } else { - return authorStats_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; - } - } - /** - * .User.AuthorStats authorStats = 44; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder> - getAuthorStatsFieldBuilder() { - if (authorStatsBuilder_ == null) { - authorStatsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder>( - getAuthorStats(), - getParentForChildren(), - isClean()); - authorStats_ = null; - } - return authorStatsBuilder_; - } - - private java.util.List topFansList_ = - java.util.Collections.emptyList(); - private void ensureTopFansListIsMutable() { - if (!((bitField1_ & 0x00001000) != 0)) { - topFansList_ = new java.util.ArrayList(topFansList_); - bitField1_ |= 0x00001000; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> topFansListBuilder_; - - /** - * repeated .User topFansList = 45; - */ - public java.util.List getTopFansListList() { - if (topFansListBuilder_ == null) { - return java.util.Collections.unmodifiableList(topFansList_); - } else { - return topFansListBuilder_.getMessageList(); - } - } - /** - * repeated .User topFansList = 45; - */ - public int getTopFansListCount() { - if (topFansListBuilder_ == null) { - return topFansList_.size(); - } else { - return topFansListBuilder_.getCount(); - } - } - /** - * repeated .User topFansList = 45; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index) { - if (topFansListBuilder_ == null) { - return topFansList_.get(index); - } else { - return topFansListBuilder_.getMessage(index); - } - } - /** - * repeated .User topFansList = 45; - */ - public Builder setTopFansList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (topFansListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopFansListIsMutable(); - topFansList_.set(index, value); - onChanged(); - } else { - topFansListBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder setTopFansList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - topFansList_.set(index, builderForValue.build()); - onChanged(); - } else { - topFansListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder addTopFansList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (topFansListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopFansListIsMutable(); - topFansList_.add(value); - onChanged(); - } else { - topFansListBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder addTopFansList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { - if (topFansListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureTopFansListIsMutable(); - topFansList_.add(index, value); - onChanged(); - } else { - topFansListBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder addTopFansList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - topFansList_.add(builderForValue.build()); - onChanged(); - } else { - topFansListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder addTopFansList( - int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - topFansList_.add(index, builderForValue.build()); - onChanged(); - } else { - topFansListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder addAllTopFansList( - java.lang.Iterable values) { - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, topFansList_); - onChanged(); - } else { - topFansListBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder clearTopFansList() { - if (topFansListBuilder_ == null) { - topFansList_ = java.util.Collections.emptyList(); - bitField1_ = (bitField1_ & ~0x00001000); - onChanged(); - } else { - topFansListBuilder_.clear(); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public Builder removeTopFansList(int index) { - if (topFansListBuilder_ == null) { - ensureTopFansListIsMutable(); - topFansList_.remove(index); - onChanged(); - } else { - topFansListBuilder_.remove(index); - } - return this; - } - /** - * repeated .User topFansList = 45; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getTopFansListBuilder( - int index) { - return getTopFansListFieldBuilder().getBuilder(index); - } - /** - * repeated .User topFansList = 45; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( - int index) { - if (topFansListBuilder_ == null) { - return topFansList_.get(index); } else { - return topFansListBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .User topFansList = 45; - */ - public java.util.List - getTopFansListOrBuilderList() { - if (topFansListBuilder_ != null) { - return topFansListBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(topFansList_); - } - } - /** - * repeated .User topFansList = 45; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder addTopFansListBuilder() { - return getTopFansListFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()); - } - /** - * repeated .User topFansList = 45; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder addTopFansListBuilder( - int index) { - return getTopFansListFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()); - } - /** - * repeated .User topFansList = 45; - */ - public java.util.List - getTopFansListBuilderList() { - return getTopFansListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> - getTopFansListFieldBuilder() { - if (topFansListBuilder_ == null) { - topFansListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( - topFansList_, - ((bitField1_ & 0x00001000) != 0), - getParentForChildren(), - isClean()); - topFansList_ = null; - } - return topFansListBuilder_; - } - - private java.lang.Object secUid_ = ""; - /** - * string secUid = 46; - * @return The secUid. - */ - public java.lang.String getSecUid() { - java.lang.Object ref = secUid_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - secUid_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string secUid = 46; - * @return The bytes for secUid. - */ - public com.google.protobuf.ByteString - getSecUidBytes() { - java.lang.Object ref = secUid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - secUid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string secUid = 46; - * @param value The secUid to set. - * @return This builder for chaining. - */ - public Builder setSecUid( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - secUid_ = value; - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - /** - * string secUid = 46; - * @return This builder for chaining. - */ - public Builder clearSecUid() { - secUid_ = getDefaultInstance().getSecUid(); - bitField1_ = (bitField1_ & ~0x00002000); - onChanged(); - return this; - } - /** - * string secUid = 46; - * @param value The bytes for secUid to set. - * @return This builder for chaining. - */ - public Builder setSecUidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - secUid_ = value; - bitField1_ |= 0x00002000; - onChanged(); - return this; - } - - private int userRole_ ; - /** - * int32 userRole = 47; - * @return The userRole. - */ - @java.lang.Override - public int getUserRole() { - return userRole_; - } - /** - * int32 userRole = 47; - * @param value The userRole to set. - * @return This builder for chaining. - */ - public Builder setUserRole(int value) { - - userRole_ = value; - bitField1_ |= 0x00004000; - onChanged(); - return this; - } - /** - * int32 userRole = 47; - * @return This builder for chaining. - */ - public Builder clearUserRole() { - bitField1_ = (bitField1_ & ~0x00004000); - userRole_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams xiguaInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder> xiguaInfoBuilder_; - /** - * .User.XiguaParams xiguaInfo = 48; - * @return Whether the xiguaInfo field is set. - */ - public boolean hasXiguaInfo() { - return ((bitField1_ & 0x00008000) != 0); - } - /** - * .User.XiguaParams xiguaInfo = 48; - * @return The xiguaInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo() { - if (xiguaInfoBuilder_ == null) { - return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; - } else { - return xiguaInfoBuilder_.getMessage(); - } - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public Builder setXiguaInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams value) { - if (xiguaInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - xiguaInfo_ = value; - } else { - xiguaInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public Builder setXiguaInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder builderForValue) { - if (xiguaInfoBuilder_ == null) { - xiguaInfo_ = builderForValue.build(); - } else { - xiguaInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public Builder mergeXiguaInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams value) { - if (xiguaInfoBuilder_ == null) { - if (((bitField1_ & 0x00008000) != 0) && - xiguaInfo_ != null && - xiguaInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance()) { - getXiguaInfoBuilder().mergeFrom(value); - } else { - xiguaInfo_ = value; - } - } else { - xiguaInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00008000; - onChanged(); - return this; - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public Builder clearXiguaInfo() { - bitField1_ = (bitField1_ & ~0x00008000); - xiguaInfo_ = null; - if (xiguaInfoBuilder_ != null) { - xiguaInfoBuilder_.dispose(); - xiguaInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder getXiguaInfoBuilder() { - bitField1_ |= 0x00008000; - onChanged(); - return getXiguaInfoFieldBuilder().getBuilder(); - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder() { - if (xiguaInfoBuilder_ != null) { - return xiguaInfoBuilder_.getMessageOrBuilder(); - } else { - return xiguaInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; - } - } - /** - * .User.XiguaParams xiguaInfo = 48; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder> - getXiguaInfoFieldBuilder() { - if (xiguaInfoBuilder_ == null) { - xiguaInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder>( - getXiguaInfo(), - getParentForChildren(), - isClean()); - xiguaInfo_ = null; - } - return xiguaInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo activityReward_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder> activityRewardBuilder_; - /** - * .User.ActivityInfo activityReward = 49; - * @return Whether the activityReward field is set. - */ - public boolean hasActivityReward() { - return ((bitField1_ & 0x00010000) != 0); - } - /** - * .User.ActivityInfo activityReward = 49; - * @return The activityReward. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward() { - if (activityRewardBuilder_ == null) { - return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; - } else { - return activityRewardBuilder_.getMessage(); - } - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public Builder setActivityReward(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo value) { - if (activityRewardBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - activityReward_ = value; - } else { - activityRewardBuilder_.setMessage(value); - } - bitField1_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public Builder setActivityReward( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder builderForValue) { - if (activityRewardBuilder_ == null) { - activityReward_ = builderForValue.build(); - } else { - activityRewardBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public Builder mergeActivityReward(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo value) { - if (activityRewardBuilder_ == null) { - if (((bitField1_ & 0x00010000) != 0) && - activityReward_ != null && - activityReward_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance()) { - getActivityRewardBuilder().mergeFrom(value); - } else { - activityReward_ = value; - } - } else { - activityRewardBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00010000; - onChanged(); - return this; - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public Builder clearActivityReward() { - bitField1_ = (bitField1_ & ~0x00010000); - activityReward_ = null; - if (activityRewardBuilder_ != null) { - activityRewardBuilder_.dispose(); - activityRewardBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder getActivityRewardBuilder() { - bitField1_ |= 0x00010000; - onChanged(); - return getActivityRewardFieldBuilder().getBuilder(); - } - /** - * .User.ActivityInfo activityReward = 49; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder() { - if (activityRewardBuilder_ != null) { - return activityRewardBuilder_.getMessageOrBuilder(); - } else { - return activityReward_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; - } - } - /** - * .User.ActivityInfo activityReward = 49; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder> - getActivityRewardFieldBuilder() { - if (activityRewardBuilder_ == null) { - activityRewardBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder>( - getActivityReward(), - getParentForChildren(), - isClean()); - activityReward_ = null; - } - return activityRewardBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo nobleInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder> nobleInfoBuilder_; - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return Whether the nobleInfo field is set. - */ - public boolean hasNobleInfo() { - return ((bitField1_ & 0x00020000) != 0); - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - * @return The nobleInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo() { - if (nobleInfoBuilder_ == null) { - return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; - } else { - return nobleInfoBuilder_.getMessage(); - } - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public Builder setNobleInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo value) { - if (nobleInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - nobleInfo_ = value; - } else { - nobleInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public Builder setNobleInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder builderForValue) { - if (nobleInfoBuilder_ == null) { - nobleInfo_ = builderForValue.build(); - } else { - nobleInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public Builder mergeNobleInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo value) { - if (nobleInfoBuilder_ == null) { - if (((bitField1_ & 0x00020000) != 0) && - nobleInfo_ != null && - nobleInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance()) { - getNobleInfoBuilder().mergeFrom(value); - } else { - nobleInfo_ = value; - } - } else { - nobleInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00020000; - onChanged(); - return this; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public Builder clearNobleInfo() { - bitField1_ = (bitField1_ & ~0x00020000); - nobleInfo_ = null; - if (nobleInfoBuilder_ != null) { - nobleInfoBuilder_.dispose(); - nobleInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder getNobleInfoBuilder() { - bitField1_ |= 0x00020000; - onChanged(); - return getNobleInfoFieldBuilder().getBuilder(); - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder() { - if (nobleInfoBuilder_ != null) { - return nobleInfoBuilder_.getMessageOrBuilder(); - } else { - return nobleInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; - } - } - /** - * .User.NobleLevelInfo nobleInfo = 50; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder> - getNobleInfoFieldBuilder() { - if (nobleInfoBuilder_ == null) { - nobleInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder>( - getNobleInfo(), - getParentForChildren(), - isClean()); - nobleInfo_ = null; - } - return nobleInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo brotherhoodInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder> brotherhoodInfoBuilder_; - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return Whether the brotherhoodInfo field is set. - */ - public boolean hasBrotherhoodInfo() { - return ((bitField1_ & 0x00040000) != 0); - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - * @return The brotherhoodInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo() { - if (brotherhoodInfoBuilder_ == null) { - return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; - } else { - return brotherhoodInfoBuilder_.getMessage(); - } - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public Builder setBrotherhoodInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo value) { - if (brotherhoodInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - brotherhoodInfo_ = value; - } else { - brotherhoodInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public Builder setBrotherhoodInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder builderForValue) { - if (brotherhoodInfoBuilder_ == null) { - brotherhoodInfo_ = builderForValue.build(); - } else { - brotherhoodInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public Builder mergeBrotherhoodInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo value) { - if (brotherhoodInfoBuilder_ == null) { - if (((bitField1_ & 0x00040000) != 0) && - brotherhoodInfo_ != null && - brotherhoodInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance()) { - getBrotherhoodInfoBuilder().mergeFrom(value); - } else { - brotherhoodInfo_ = value; - } - } else { - brotherhoodInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public Builder clearBrotherhoodInfo() { - bitField1_ = (bitField1_ & ~0x00040000); - brotherhoodInfo_ = null; - if (brotherhoodInfoBuilder_ != null) { - brotherhoodInfoBuilder_.dispose(); - brotherhoodInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder getBrotherhoodInfoBuilder() { - bitField1_ |= 0x00040000; - onChanged(); - return getBrotherhoodInfoFieldBuilder().getBuilder(); - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder() { - if (brotherhoodInfoBuilder_ != null) { - return brotherhoodInfoBuilder_.getMessageOrBuilder(); - } else { - return brotherhoodInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; - } - } - /** - * .User.BrotherhoodInfo brotherhoodInfo = 51; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder> - getBrotherhoodInfoFieldBuilder() { - if (brotherhoodInfoBuilder_ == null) { - brotherhoodInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder>( - getBrotherhoodInfo(), - getParentForChildren(), - isClean()); - brotherhoodInfo_ = null; - } - return brotherhoodInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image personalCard_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> personalCardBuilder_; - /** - * .Image personalCard = 52; - * @return Whether the personalCard field is set. - */ - public boolean hasPersonalCard() { - return ((bitField1_ & 0x00080000) != 0); - } - /** - * .Image personalCard = 52; - * @return The personalCard. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard() { - if (personalCardBuilder_ == null) { - return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; - } else { - return personalCardBuilder_.getMessage(); - } - } - /** - * .Image personalCard = 52; - */ - public Builder setPersonalCard(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (personalCardBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - personalCard_ = value; - } else { - personalCardBuilder_.setMessage(value); - } - bitField1_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image personalCard = 52; - */ - public Builder setPersonalCard( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (personalCardBuilder_ == null) { - personalCard_ = builderForValue.build(); - } else { - personalCardBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image personalCard = 52; - */ - public Builder mergePersonalCard(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (personalCardBuilder_ == null) { - if (((bitField1_ & 0x00080000) != 0) && - personalCard_ != null && - personalCard_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getPersonalCardBuilder().mergeFrom(value); - } else { - personalCard_ = value; - } - } else { - personalCardBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00080000; - onChanged(); - return this; - } - /** - * .Image personalCard = 52; - */ - public Builder clearPersonalCard() { - bitField1_ = (bitField1_ & ~0x00080000); - personalCard_ = null; - if (personalCardBuilder_ != null) { - personalCardBuilder_.dispose(); - personalCardBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image personalCard = 52; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getPersonalCardBuilder() { - bitField1_ |= 0x00080000; - onChanged(); - return getPersonalCardFieldBuilder().getBuilder(); - } - /** - * .Image personalCard = 52; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder() { - if (personalCardBuilder_ != null) { - return personalCardBuilder_.getMessageOrBuilder(); - } else { - return personalCard_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; - } - } - /** - * .Image personalCard = 52; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getPersonalCardFieldBuilder() { - if (personalCardBuilder_ == null) { - personalCardBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getPersonalCard(), - getParentForChildren(), - isClean()); - personalCard_ = null; - } - return personalCardBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo authenticationInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder> authenticationInfoBuilder_; - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return Whether the authenticationInfo field is set. - */ - public boolean hasAuthenticationInfo() { - return ((bitField1_ & 0x00100000) != 0); - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - * @return The authenticationInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo() { - if (authenticationInfoBuilder_ == null) { - return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; - } else { - return authenticationInfoBuilder_.getMessage(); - } - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public Builder setAuthenticationInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo value) { - if (authenticationInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - authenticationInfo_ = value; - } else { - authenticationInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public Builder setAuthenticationInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder builderForValue) { - if (authenticationInfoBuilder_ == null) { - authenticationInfo_ = builderForValue.build(); - } else { - authenticationInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public Builder mergeAuthenticationInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo value) { - if (authenticationInfoBuilder_ == null) { - if (((bitField1_ & 0x00100000) != 0) && - authenticationInfo_ != null && - authenticationInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance()) { - getAuthenticationInfoBuilder().mergeFrom(value); - } else { - authenticationInfo_ = value; - } - } else { - authenticationInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public Builder clearAuthenticationInfo() { - bitField1_ = (bitField1_ & ~0x00100000); - authenticationInfo_ = null; - if (authenticationInfoBuilder_ != null) { - authenticationInfoBuilder_.dispose(); - authenticationInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder getAuthenticationInfoBuilder() { - bitField1_ |= 0x00100000; - onChanged(); - return getAuthenticationInfoFieldBuilder().getBuilder(); - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder() { - if (authenticationInfoBuilder_ != null) { - return authenticationInfoBuilder_.getMessageOrBuilder(); - } else { - return authenticationInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; - } - } - /** - * .User.AuthenticationInfo authenticationInfo = 53; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder> - getAuthenticationInfoFieldBuilder() { - if (authenticationInfoBuilder_ == null) { - authenticationInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder>( - getAuthenticationInfo(), - getParentForChildren(), - isClean()); - authenticationInfo_ = null; - } - return authenticationInfoBuilder_; - } - - private int authorizationInfo_ ; - /** - * int32 authorizationInfo = 54; - * @return The authorizationInfo. - */ - @java.lang.Override - public int getAuthorizationInfo() { - return authorizationInfo_; - } - /** - * int32 authorizationInfo = 54; - * @param value The authorizationInfo to set. - * @return This builder for chaining. - */ - public Builder setAuthorizationInfo(int value) { - - authorizationInfo_ = value; - bitField1_ |= 0x00200000; - onChanged(); - return this; - } - /** - * int32 authorizationInfo = 54; - * @return This builder for chaining. - */ - public Builder clearAuthorizationInfo() { - bitField1_ = (bitField1_ & ~0x00200000); - authorizationInfo_ = 0; - onChanged(); - return this; - } - - private int adversaryAuthorizationInfo_ ; - /** - * int32 adversaryAuthorizationInfo = 55; - * @return The adversaryAuthorizationInfo. - */ - @java.lang.Override - public int getAdversaryAuthorizationInfo() { - return adversaryAuthorizationInfo_; - } - /** - * int32 adversaryAuthorizationInfo = 55; - * @param value The adversaryAuthorizationInfo to set. - * @return This builder for chaining. - */ - public Builder setAdversaryAuthorizationInfo(int value) { - - adversaryAuthorizationInfo_ = value; - bitField1_ |= 0x00400000; - onChanged(); - return this; - } - /** - * int32 adversaryAuthorizationInfo = 55; - * @return This builder for chaining. - */ - public Builder clearAdversaryAuthorizationInfo() { - bitField1_ = (bitField1_ & ~0x00400000); - adversaryAuthorizationInfo_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo poiInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder> poiInfoBuilder_; - /** - * .User.PoiInfo poiInfo = 56; - * @return Whether the poiInfo field is set. - */ - public boolean hasPoiInfo() { - return ((bitField1_ & 0x00800000) != 0); - } - /** - * .User.PoiInfo poiInfo = 56; - * @return The poiInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo() { - if (poiInfoBuilder_ == null) { - return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; - } else { - return poiInfoBuilder_.getMessage(); - } - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public Builder setPoiInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo value) { - if (poiInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - poiInfo_ = value; - } else { - poiInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public Builder setPoiInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder builderForValue) { - if (poiInfoBuilder_ == null) { - poiInfo_ = builderForValue.build(); - } else { - poiInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public Builder mergePoiInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo value) { - if (poiInfoBuilder_ == null) { - if (((bitField1_ & 0x00800000) != 0) && - poiInfo_ != null && - poiInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance()) { - getPoiInfoBuilder().mergeFrom(value); - } else { - poiInfo_ = value; - } - } else { - poiInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x00800000; - onChanged(); - return this; - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public Builder clearPoiInfo() { - bitField1_ = (bitField1_ & ~0x00800000); - poiInfo_ = null; - if (poiInfoBuilder_ != null) { - poiInfoBuilder_.dispose(); - poiInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder getPoiInfoBuilder() { - bitField1_ |= 0x00800000; - onChanged(); - return getPoiInfoFieldBuilder().getBuilder(); - } - /** - * .User.PoiInfo poiInfo = 56; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder() { - if (poiInfoBuilder_ != null) { - return poiInfoBuilder_.getMessageOrBuilder(); - } else { - return poiInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; - } - } - /** - * .User.PoiInfo poiInfo = 56; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder> - getPoiInfoFieldBuilder() { - if (poiInfoBuilder_ == null) { - poiInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder>( - getPoiInfo(), - getParentForChildren(), - isClean()); - poiInfo_ = null; - } - return poiInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image mediaBadgeImageListList_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> mediaBadgeImageListListBuilder_; - /** - * .Image mediaBadgeImageListList = 57; - * @return Whether the mediaBadgeImageListList field is set. - */ - public boolean hasMediaBadgeImageListList() { - return ((bitField1_ & 0x01000000) != 0); - } - /** - * .Image mediaBadgeImageListList = 57; - * @return The mediaBadgeImageListList. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList() { - if (mediaBadgeImageListListBuilder_ == null) { - return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; - } else { - return mediaBadgeImageListListBuilder_.getMessage(); - } - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public Builder setMediaBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (mediaBadgeImageListListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - mediaBadgeImageListList_ = value; - } else { - mediaBadgeImageListListBuilder_.setMessage(value); - } - bitField1_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public Builder setMediaBadgeImageListList( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (mediaBadgeImageListListBuilder_ == null) { - mediaBadgeImageListList_ = builderForValue.build(); - } else { - mediaBadgeImageListListBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public Builder mergeMediaBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (mediaBadgeImageListListBuilder_ == null) { - if (((bitField1_ & 0x01000000) != 0) && - mediaBadgeImageListList_ != null && - mediaBadgeImageListList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getMediaBadgeImageListListBuilder().mergeFrom(value); - } else { - mediaBadgeImageListList_ = value; - } - } else { - mediaBadgeImageListListBuilder_.mergeFrom(value); - } - bitField1_ |= 0x01000000; - onChanged(); - return this; - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public Builder clearMediaBadgeImageListList() { - bitField1_ = (bitField1_ & ~0x01000000); - mediaBadgeImageListList_ = null; - if (mediaBadgeImageListListBuilder_ != null) { - mediaBadgeImageListListBuilder_.dispose(); - mediaBadgeImageListListBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getMediaBadgeImageListListBuilder() { - bitField1_ |= 0x01000000; - onChanged(); - return getMediaBadgeImageListListFieldBuilder().getBuilder(); - } - /** - * .Image mediaBadgeImageListList = 57; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder() { - if (mediaBadgeImageListListBuilder_ != null) { - return mediaBadgeImageListListBuilder_.getMessageOrBuilder(); - } else { - return mediaBadgeImageListList_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; - } - } - /** - * .Image mediaBadgeImageListList = 57; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getMediaBadgeImageListListFieldBuilder() { - if (mediaBadgeImageListListBuilder_ == null) { - mediaBadgeImageListListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getMediaBadgeImageListList(), - getParentForChildren(), - isClean()); - mediaBadgeImageListList_ = null; - } - return mediaBadgeImageListListBuilder_; - } - - private int adversaryUserStatus_ ; - /** - * int32 adversaryUserStatus = 58; - * @return The adversaryUserStatus. - */ - @java.lang.Override - public int getAdversaryUserStatus() { - return adversaryUserStatus_; - } - /** - * int32 adversaryUserStatus = 58; - * @param value The adversaryUserStatus to set. - * @return This builder for chaining. - */ - public Builder setAdversaryUserStatus(int value) { - - adversaryUserStatus_ = value; - bitField1_ |= 0x02000000; - onChanged(); - return this; - } - /** - * int32 adversaryUserStatus = 58; - * @return This builder for chaining. - */ - public Builder clearAdversaryUserStatus() { - bitField1_ = (bitField1_ & ~0x02000000); - adversaryUserStatus_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo userVipInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder> userVipInfoBuilder_; - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return Whether the userVipInfo field is set. - */ - public boolean hasUserVipInfo() { - return ((bitField1_ & 0x04000000) != 0); - } - /** - * .User.UserVIPInfo userVipInfo = 59; - * @return The userVipInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo() { - if (userVipInfoBuilder_ == null) { - return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; - } else { - return userVipInfoBuilder_.getMessage(); - } - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public Builder setUserVipInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo value) { - if (userVipInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - userVipInfo_ = value; - } else { - userVipInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public Builder setUserVipInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder builderForValue) { - if (userVipInfoBuilder_ == null) { - userVipInfo_ = builderForValue.build(); - } else { - userVipInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public Builder mergeUserVipInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo value) { - if (userVipInfoBuilder_ == null) { - if (((bitField1_ & 0x04000000) != 0) && - userVipInfo_ != null && - userVipInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance()) { - getUserVipInfoBuilder().mergeFrom(value); - } else { - userVipInfo_ = value; - } - } else { - userVipInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x04000000; - onChanged(); - return this; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public Builder clearUserVipInfo() { - bitField1_ = (bitField1_ & ~0x04000000); - userVipInfo_ = null; - if (userVipInfoBuilder_ != null) { - userVipInfoBuilder_.dispose(); - userVipInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder getUserVipInfoBuilder() { - bitField1_ |= 0x04000000; - onChanged(); - return getUserVipInfoFieldBuilder().getBuilder(); - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder() { - if (userVipInfoBuilder_ != null) { - return userVipInfoBuilder_.getMessageOrBuilder(); - } else { - return userVipInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; - } - } - /** - * .User.UserVIPInfo userVipInfo = 59; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder> - getUserVipInfoFieldBuilder() { - if (userVipInfoBuilder_ == null) { - userVipInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder>( - getUserVipInfo(), - getParentForChildren(), - isClean()); - userVipInfo_ = null; - } - return userVipInfoBuilder_; - } - - private com.google.protobuf.Internal.LongList commerceWebcastConfigIdsList_ = emptyLongList(); - private void ensureCommerceWebcastConfigIdsListIsMutable() { - if (!((bitField1_ & 0x08000000) != 0)) { - commerceWebcastConfigIdsList_ = mutableCopy(commerceWebcastConfigIdsList_); - bitField1_ |= 0x08000000; - } - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return A list containing the commerceWebcastConfigIdsList. - */ - public java.util.List - getCommerceWebcastConfigIdsListList() { - return ((bitField1_ & 0x08000000) != 0) ? - java.util.Collections.unmodifiableList(commerceWebcastConfigIdsList_) : commerceWebcastConfigIdsList_; - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return The count of commerceWebcastConfigIdsList. - */ - public int getCommerceWebcastConfigIdsListCount() { - return commerceWebcastConfigIdsList_.size(); - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param index The index of the element to return. - * @return The commerceWebcastConfigIdsList at the given index. - */ - public long getCommerceWebcastConfigIdsList(int index) { - return commerceWebcastConfigIdsList_.getLong(index); - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param index The index to set the value at. - * @param value The commerceWebcastConfigIdsList to set. - * @return This builder for chaining. - */ - public Builder setCommerceWebcastConfigIdsList( - int index, long value) { - - ensureCommerceWebcastConfigIdsListIsMutable(); - commerceWebcastConfigIdsList_.setLong(index, value); - onChanged(); - return this; - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param value The commerceWebcastConfigIdsList to add. - * @return This builder for chaining. - */ - public Builder addCommerceWebcastConfigIdsList(long value) { - - ensureCommerceWebcastConfigIdsListIsMutable(); - commerceWebcastConfigIdsList_.addLong(value); - onChanged(); - return this; - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @param values The commerceWebcastConfigIdsList to add. - * @return This builder for chaining. - */ - public Builder addAllCommerceWebcastConfigIdsList( - java.lang.Iterable values) { - ensureCommerceWebcastConfigIdsListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, commerceWebcastConfigIdsList_); - onChanged(); - return this; - } - /** - * repeated int64 commerceWebcastConfigIdsList = 60; - * @return This builder for chaining. - */ - public Builder clearCommerceWebcastConfigIdsList() { - commerceWebcastConfigIdsList_ = emptyLongList(); - bitField1_ = (bitField1_ & ~0x08000000); - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListV2List_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> badgeImageListV2ListBuilder_; - /** - * .Image badgeImageListV2List = 61; - * @return Whether the badgeImageListV2List field is set. - */ - public boolean hasBadgeImageListV2List() { - return ((bitField1_ & 0x10000000) != 0); - } - /** - * .Image badgeImageListV2List = 61; - * @return The badgeImageListV2List. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List() { - if (badgeImageListV2ListBuilder_ == null) { - return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; - } else { - return badgeImageListV2ListBuilder_.getMessage(); - } - } - /** - * .Image badgeImageListV2List = 61; - */ - public Builder setBadgeImageListV2List(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (badgeImageListV2ListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - badgeImageListV2List_ = value; - } else { - badgeImageListV2ListBuilder_.setMessage(value); - } - bitField1_ |= 0x10000000; - onChanged(); - return this; - } - /** - * .Image badgeImageListV2List = 61; - */ - public Builder setBadgeImageListV2List( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (badgeImageListV2ListBuilder_ == null) { - badgeImageListV2List_ = builderForValue.build(); - } else { - badgeImageListV2ListBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x10000000; - onChanged(); - return this; - } - /** - * .Image badgeImageListV2List = 61; - */ - public Builder mergeBadgeImageListV2List(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (badgeImageListV2ListBuilder_ == null) { - if (((bitField1_ & 0x10000000) != 0) && - badgeImageListV2List_ != null && - badgeImageListV2List_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getBadgeImageListV2ListBuilder().mergeFrom(value); - } else { - badgeImageListV2List_ = value; - } - } else { - badgeImageListV2ListBuilder_.mergeFrom(value); - } - bitField1_ |= 0x10000000; - onChanged(); - return this; - } - /** - * .Image badgeImageListV2List = 61; - */ - public Builder clearBadgeImageListV2List() { - bitField1_ = (bitField1_ & ~0x10000000); - badgeImageListV2List_ = null; - if (badgeImageListV2ListBuilder_ != null) { - badgeImageListV2ListBuilder_.dispose(); - badgeImageListV2ListBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image badgeImageListV2List = 61; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBadgeImageListV2ListBuilder() { - bitField1_ |= 0x10000000; - onChanged(); - return getBadgeImageListV2ListFieldBuilder().getBuilder(); - } - /** - * .Image badgeImageListV2List = 61; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder() { - if (badgeImageListV2ListBuilder_ != null) { - return badgeImageListV2ListBuilder_.getMessageOrBuilder(); - } else { - return badgeImageListV2List_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; - } - } - /** - * .Image badgeImageListV2List = 61; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getBadgeImageListV2ListFieldBuilder() { - if (badgeImageListV2ListBuilder_ == null) { - badgeImageListV2ListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getBadgeImageListV2List(), - getParentForChildren(), - isClean()); - badgeImageListV2List_ = null; - } - return badgeImageListV2ListBuilder_; - } - - private java.lang.Object locationCity_ = ""; - /** - *
-       * IndustryCertification  industryCertification = 62;
-       * 
- * - * string locationCity = 63; - * @return The locationCity. - */ - public java.lang.String getLocationCity() { - java.lang.Object ref = locationCity_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - locationCity_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * IndustryCertification  industryCertification = 62;
-       * 
- * - * string locationCity = 63; - * @return The bytes for locationCity. - */ - public com.google.protobuf.ByteString - getLocationCityBytes() { - java.lang.Object ref = locationCity_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - locationCity_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * IndustryCertification  industryCertification = 62;
-       * 
- * - * string locationCity = 63; - * @param value The locationCity to set. - * @return This builder for chaining. - */ - public Builder setLocationCity( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - locationCity_ = value; - bitField1_ |= 0x20000000; - onChanged(); - return this; - } - /** - *
-       * IndustryCertification  industryCertification = 62;
-       * 
- * - * string locationCity = 63; - * @return This builder for chaining. - */ - public Builder clearLocationCity() { - locationCity_ = getDefaultInstance().getLocationCity(); - bitField1_ = (bitField1_ & ~0x20000000); - onChanged(); - return this; - } - /** - *
-       * IndustryCertification  industryCertification = 62;
-       * 
- * - * string locationCity = 63; - * @param value The bytes for locationCity to set. - * @return This builder for chaining. - */ - public Builder setLocationCityBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - locationCity_ = value; - bitField1_ |= 0x20000000; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo fansGroupInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder> fansGroupInfoBuilder_; - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return Whether the fansGroupInfo field is set. - */ - public boolean hasFansGroupInfo() { - return ((bitField1_ & 0x40000000) != 0); - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - * @return The fansGroupInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo() { - if (fansGroupInfoBuilder_ == null) { - return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; - } else { - return fansGroupInfoBuilder_.getMessage(); - } - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public Builder setFansGroupInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo value) { - if (fansGroupInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - fansGroupInfo_ = value; - } else { - fansGroupInfoBuilder_.setMessage(value); - } - bitField1_ |= 0x40000000; - onChanged(); - return this; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public Builder setFansGroupInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder builderForValue) { - if (fansGroupInfoBuilder_ == null) { - fansGroupInfo_ = builderForValue.build(); - } else { - fansGroupInfoBuilder_.setMessage(builderForValue.build()); - } - bitField1_ |= 0x40000000; - onChanged(); - return this; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public Builder mergeFansGroupInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo value) { - if (fansGroupInfoBuilder_ == null) { - if (((bitField1_ & 0x40000000) != 0) && - fansGroupInfo_ != null && - fansGroupInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance()) { - getFansGroupInfoBuilder().mergeFrom(value); - } else { - fansGroupInfo_ = value; - } - } else { - fansGroupInfoBuilder_.mergeFrom(value); - } - bitField1_ |= 0x40000000; - onChanged(); - return this; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public Builder clearFansGroupInfo() { - bitField1_ = (bitField1_ & ~0x40000000); - fansGroupInfo_ = null; - if (fansGroupInfoBuilder_ != null) { - fansGroupInfoBuilder_.dispose(); - fansGroupInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder getFansGroupInfoBuilder() { - bitField1_ |= 0x40000000; - onChanged(); - return getFansGroupInfoFieldBuilder().getBuilder(); - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder() { - if (fansGroupInfoBuilder_ != null) { - return fansGroupInfoBuilder_.getMessageOrBuilder(); - } else { - return fansGroupInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; - } - } - /** - * .User.FansGroupInfo fansGroupInfo = 64; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder> - getFansGroupInfoFieldBuilder() { - if (fansGroupInfoBuilder_ == null) { - fansGroupInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder>( - getFansGroupInfo(), - getParentForChildren(), - isClean()); - fansGroupInfo_ = null; - } - return fansGroupInfoBuilder_; - } - - private java.lang.Object remarkName_ = ""; - /** - * string remarkName = 65; - * @return The remarkName. - */ - public java.lang.String getRemarkName() { - java.lang.Object ref = remarkName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - remarkName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string remarkName = 65; - * @return The bytes for remarkName. - */ - public com.google.protobuf.ByteString - getRemarkNameBytes() { - java.lang.Object ref = remarkName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - remarkName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string remarkName = 65; - * @param value The remarkName to set. - * @return This builder for chaining. - */ - public Builder setRemarkName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - remarkName_ = value; - bitField1_ |= 0x80000000; - onChanged(); - return this; - } - /** - * string remarkName = 65; - * @return This builder for chaining. - */ - public Builder clearRemarkName() { - remarkName_ = getDefaultInstance().getRemarkName(); - bitField1_ = (bitField1_ & ~0x80000000); - onChanged(); - return this; - } - /** - * string remarkName = 65; - * @param value The bytes for remarkName to set. - * @return This builder for chaining. - */ - public Builder setRemarkNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - remarkName_ = value; - bitField1_ |= 0x80000000; - onChanged(); - return this; - } - - private int mysteryMan_ ; - /** - * int32 mysteryMan = 66; - * @return The mysteryMan. - */ - @java.lang.Override - public int getMysteryMan() { - return mysteryMan_; - } - /** - * int32 mysteryMan = 66; - * @param value The mysteryMan to set. - * @return This builder for chaining. - */ - public Builder setMysteryMan(int value) { - - mysteryMan_ = value; - bitField2_ |= 0x00000001; - onChanged(); - return this; - } - /** - * int32 mysteryMan = 66; - * @return This builder for chaining. - */ - public Builder clearMysteryMan() { - bitField2_ = (bitField2_ & ~0x00000001); - mysteryMan_ = 0; - onChanged(); - return this; - } - - private java.lang.Object webRid_ = ""; - /** - * string webRid = 67; - * @return The webRid. - */ - public java.lang.String getWebRid() { - java.lang.Object ref = webRid_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - webRid_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string webRid = 67; - * @return The bytes for webRid. - */ - public com.google.protobuf.ByteString - getWebRidBytes() { - java.lang.Object ref = webRid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - webRid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string webRid = 67; - * @param value The webRid to set. - * @return This builder for chaining. - */ - public Builder setWebRid( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - webRid_ = value; - bitField2_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string webRid = 67; - * @return This builder for chaining. - */ - public Builder clearWebRid() { - webRid_ = getDefaultInstance().getWebRid(); - bitField2_ = (bitField2_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string webRid = 67; - * @param value The bytes for webRid to set. - * @return This builder for chaining. - */ - public Builder setWebRidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - webRid_ = value; - bitField2_ |= 0x00000002; - onChanged(); - return this; - } - - private java.lang.Object desensitizedNickname_ = ""; - /** - * string desensitizedNickname = 68; - * @return The desensitizedNickname. - */ - public java.lang.String getDesensitizedNickname() { - java.lang.Object ref = desensitizedNickname_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - desensitizedNickname_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string desensitizedNickname = 68; - * @return The bytes for desensitizedNickname. - */ - public com.google.protobuf.ByteString - getDesensitizedNicknameBytes() { - java.lang.Object ref = desensitizedNickname_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - desensitizedNickname_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string desensitizedNickname = 68; - * @param value The desensitizedNickname to set. - * @return This builder for chaining. - */ - public Builder setDesensitizedNickname( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - desensitizedNickname_ = value; - bitField2_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string desensitizedNickname = 68; - * @return This builder for chaining. - */ - public Builder clearDesensitizedNickname() { - desensitizedNickname_ = getDefaultInstance().getDesensitizedNickname(); - bitField2_ = (bitField2_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string desensitizedNickname = 68; - * @param value The bytes for desensitizedNickname to set. - * @return This builder for chaining. - */ - public Builder setDesensitizedNicknameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - desensitizedNickname_ = value; - bitField2_ |= 0x00000004; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo jAccreditInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder> jAccreditInfoBuilder_; - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return Whether the jAccreditInfo field is set. - */ - public boolean hasJAccreditInfo() { - return ((bitField2_ & 0x00000008) != 0); - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - * @return The jAccreditInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo() { - if (jAccreditInfoBuilder_ == null) { - return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; - } else { - return jAccreditInfoBuilder_.getMessage(); - } - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public Builder setJAccreditInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo value) { - if (jAccreditInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - jAccreditInfo_ = value; - } else { - jAccreditInfoBuilder_.setMessage(value); - } - bitField2_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public Builder setJAccreditInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder builderForValue) { - if (jAccreditInfoBuilder_ == null) { - jAccreditInfo_ = builderForValue.build(); - } else { - jAccreditInfoBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public Builder mergeJAccreditInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo value) { - if (jAccreditInfoBuilder_ == null) { - if (((bitField2_ & 0x00000008) != 0) && - jAccreditInfo_ != null && - jAccreditInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance()) { - getJAccreditInfoBuilder().mergeFrom(value); - } else { - jAccreditInfo_ = value; - } - } else { - jAccreditInfoBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public Builder clearJAccreditInfo() { - bitField2_ = (bitField2_ & ~0x00000008); - jAccreditInfo_ = null; - if (jAccreditInfoBuilder_ != null) { - jAccreditInfoBuilder_.dispose(); - jAccreditInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder getJAccreditInfoBuilder() { - bitField2_ |= 0x00000008; - onChanged(); - return getJAccreditInfoFieldBuilder().getBuilder(); - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder() { - if (jAccreditInfoBuilder_ != null) { - return jAccreditInfoBuilder_.getMessageOrBuilder(); - } else { - return jAccreditInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; - } - } - /** - * .User.JAccreditInfo jAccreditInfo = 69; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder> - getJAccreditInfoFieldBuilder() { - if (jAccreditInfoBuilder_ == null) { - jAccreditInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder>( - getJAccreditInfo(), - getParentForChildren(), - isClean()); - jAccreditInfo_ = null; - } - return jAccreditInfoBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe subscribe_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder> subscribeBuilder_; - /** - * .User.Subscribe subscribe = 70; - * @return Whether the subscribe field is set. - */ - public boolean hasSubscribe() { - return ((bitField2_ & 0x00000010) != 0); - } - /** - * .User.Subscribe subscribe = 70; - * @return The subscribe. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe() { - if (subscribeBuilder_ == null) { - return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; - } else { - return subscribeBuilder_.getMessage(); - } - } - /** - * .User.Subscribe subscribe = 70; - */ - public Builder setSubscribe(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe value) { - if (subscribeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - subscribe_ = value; - } else { - subscribeBuilder_.setMessage(value); - } - bitField2_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User.Subscribe subscribe = 70; - */ - public Builder setSubscribe( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder builderForValue) { - if (subscribeBuilder_ == null) { - subscribe_ = builderForValue.build(); - } else { - subscribeBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User.Subscribe subscribe = 70; - */ - public Builder mergeSubscribe(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe value) { - if (subscribeBuilder_ == null) { - if (((bitField2_ & 0x00000010) != 0) && - subscribe_ != null && - subscribe_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance()) { - getSubscribeBuilder().mergeFrom(value); - } else { - subscribe_ = value; - } - } else { - subscribeBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .User.Subscribe subscribe = 70; - */ - public Builder clearSubscribe() { - bitField2_ = (bitField2_ & ~0x00000010); - subscribe_ = null; - if (subscribeBuilder_ != null) { - subscribeBuilder_.dispose(); - subscribeBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.Subscribe subscribe = 70; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder getSubscribeBuilder() { - bitField2_ |= 0x00000010; - onChanged(); - return getSubscribeFieldBuilder().getBuilder(); - } - /** - * .User.Subscribe subscribe = 70; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder() { - if (subscribeBuilder_ != null) { - return subscribeBuilder_.getMessageOrBuilder(); - } else { - return subscribe_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; - } - } - /** - * .User.Subscribe subscribe = 70; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder> - getSubscribeFieldBuilder() { - if (subscribeBuilder_ == null) { - subscribeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder>( - getSubscribe(), - getParentForChildren(), - isClean()); - subscribe_ = null; - } - return subscribeBuilder_; - } - - private boolean isAnonymous_ ; - /** - * bool isAnonymous = 71; - * @return The isAnonymous. - */ - @java.lang.Override - public boolean getIsAnonymous() { - return isAnonymous_; - } - /** - * bool isAnonymous = 71; - * @param value The isAnonymous to set. - * @return This builder for chaining. - */ - public Builder setIsAnonymous(boolean value) { - - isAnonymous_ = value; - bitField2_ |= 0x00000020; - onChanged(); - return this; - } - /** - * bool isAnonymous = 71; - * @return This builder for chaining. - */ - public Builder clearIsAnonymous() { - bitField2_ = (bitField2_ & ~0x00000020); - isAnonymous_ = false; - onChanged(); - return this; - } - - private int consumeDiamondLevel_ ; - /** - * int32 consumeDiamondLevel = 72; - * @return The consumeDiamondLevel. - */ - @java.lang.Override - public int getConsumeDiamondLevel() { - return consumeDiamondLevel_; - } - /** - * int32 consumeDiamondLevel = 72; - * @param value The consumeDiamondLevel to set. - * @return This builder for chaining. - */ - public Builder setConsumeDiamondLevel(int value) { - - consumeDiamondLevel_ = value; - bitField2_ |= 0x00000040; - onChanged(); - return this; - } - /** - * int32 consumeDiamondLevel = 72; - * @return This builder for chaining. - */ - public Builder clearConsumeDiamondLevel() { - bitField2_ = (bitField2_ & ~0x00000040); - consumeDiamondLevel_ = 0; - onChanged(); - return this; - } - - private java.lang.Object webcastUid_ = ""; - /** - * string webcastUid = 73; - * @return The webcastUid. - */ - public java.lang.String getWebcastUid() { - java.lang.Object ref = webcastUid_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - webcastUid_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string webcastUid = 73; - * @return The bytes for webcastUid. - */ - public com.google.protobuf.ByteString - getWebcastUidBytes() { - java.lang.Object ref = webcastUid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - webcastUid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string webcastUid = 73; - * @param value The webcastUid to set. - * @return This builder for chaining. - */ - public Builder setWebcastUid( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - webcastUid_ = value; - bitField2_ |= 0x00000080; - onChanged(); - return this; - } - /** - * string webcastUid = 73; - * @return This builder for chaining. - */ - public Builder clearWebcastUid() { - webcastUid_ = getDefaultInstance().getWebcastUid(); - bitField2_ = (bitField2_ & ~0x00000080); - onChanged(); - return this; - } - /** - * string webcastUid = 73; - * @param value The bytes for webcastUid to set. - * @return This builder for chaining. - */ - public Builder setWebcastUidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - webcastUid_ = value; - bitField2_ |= 0x00000080; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams profileStyleParams_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder> profileStyleParamsBuilder_; - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return Whether the profileStyleParams field is set. - */ - public boolean hasProfileStyleParams() { - return ((bitField2_ & 0x00000100) != 0); - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - * @return The profileStyleParams. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams() { - if (profileStyleParamsBuilder_ == null) { - return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; - } else { - return profileStyleParamsBuilder_.getMessage(); - } - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public Builder setProfileStyleParams(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams value) { - if (profileStyleParamsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - profileStyleParams_ = value; - } else { - profileStyleParamsBuilder_.setMessage(value); - } - bitField2_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public Builder setProfileStyleParams( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder builderForValue) { - if (profileStyleParamsBuilder_ == null) { - profileStyleParams_ = builderForValue.build(); - } else { - profileStyleParamsBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public Builder mergeProfileStyleParams(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams value) { - if (profileStyleParamsBuilder_ == null) { - if (((bitField2_ & 0x00000100) != 0) && - profileStyleParams_ != null && - profileStyleParams_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance()) { - getProfileStyleParamsBuilder().mergeFrom(value); - } else { - profileStyleParams_ = value; - } - } else { - profileStyleParamsBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00000100; - onChanged(); - return this; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public Builder clearProfileStyleParams() { - bitField2_ = (bitField2_ & ~0x00000100); - profileStyleParams_ = null; - if (profileStyleParamsBuilder_ != null) { - profileStyleParamsBuilder_.dispose(); - profileStyleParamsBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder getProfileStyleParamsBuilder() { - bitField2_ |= 0x00000100; - onChanged(); - return getProfileStyleParamsFieldBuilder().getBuilder(); - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder() { - if (profileStyleParamsBuilder_ != null) { - return profileStyleParamsBuilder_.getMessageOrBuilder(); - } else { - return profileStyleParams_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; - } - } - /** - * .User.ProfileStyleParams profileStyleParams = 74; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder> - getProfileStyleParamsFieldBuilder() { - if (profileStyleParamsBuilder_ == null) { - profileStyleParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder>( - getProfileStyleParams(), - getParentForChildren(), - isClean()); - profileStyleParams_ = null; - } - return profileStyleParamsBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo userDressInfo_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder> userDressInfoBuilder_; - /** - * .User.UserDressInfo userDressInfo = 75; - * @return Whether the userDressInfo field is set. - */ - public boolean hasUserDressInfo() { - return ((bitField2_ & 0x00000200) != 0); - } - /** - * .User.UserDressInfo userDressInfo = 75; - * @return The userDressInfo. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo() { - if (userDressInfoBuilder_ == null) { - return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; - } else { - return userDressInfoBuilder_.getMessage(); - } - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public Builder setUserDressInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo value) { - if (userDressInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - userDressInfo_ = value; - } else { - userDressInfoBuilder_.setMessage(value); - } - bitField2_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public Builder setUserDressInfo( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder builderForValue) { - if (userDressInfoBuilder_ == null) { - userDressInfo_ = builderForValue.build(); - } else { - userDressInfoBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public Builder mergeUserDressInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo value) { - if (userDressInfoBuilder_ == null) { - if (((bitField2_ & 0x00000200) != 0) && - userDressInfo_ != null && - userDressInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance()) { - getUserDressInfoBuilder().mergeFrom(value); - } else { - userDressInfo_ = value; - } - } else { - userDressInfoBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public Builder clearUserDressInfo() { - bitField2_ = (bitField2_ & ~0x00000200); - userDressInfo_ = null; - if (userDressInfoBuilder_ != null) { - userDressInfoBuilder_.dispose(); - userDressInfoBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder getUserDressInfoBuilder() { - bitField2_ |= 0x00000200; - onChanged(); - return getUserDressInfoFieldBuilder().getBuilder(); - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder() { - if (userDressInfoBuilder_ != null) { - return userDressInfoBuilder_.getMessageOrBuilder(); - } else { - return userDressInfo_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; - } - } - /** - * .User.UserDressInfo userDressInfo = 75; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder> - getUserDressInfoFieldBuilder() { - if (userDressInfoBuilder_ == null) { - userDressInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder>( - getUserDressInfo(), - getParentForChildren(), - isClean()); - userDressInfo_ = null; - } - return userDressInfoBuilder_; - } - - private boolean allowBeLocated_ ; - /** - * bool allowBeLocated = 1001; - * @return The allowBeLocated. - */ - @java.lang.Override - public boolean getAllowBeLocated() { - return allowBeLocated_; - } - /** - * bool allowBeLocated = 1001; - * @param value The allowBeLocated to set. - * @return This builder for chaining. - */ - public Builder setAllowBeLocated(boolean value) { - - allowBeLocated_ = value; - bitField2_ |= 0x00000400; - onChanged(); - return this; - } - /** - * bool allowBeLocated = 1001; - * @return This builder for chaining. - */ - public Builder clearAllowBeLocated() { - bitField2_ = (bitField2_ & ~0x00000400); - allowBeLocated_ = false; - onChanged(); - return this; - } - - private boolean allowFindByContacts_ ; - /** - * bool allowFindByContacts = 1002; - * @return The allowFindByContacts. - */ - @java.lang.Override - public boolean getAllowFindByContacts() { - return allowFindByContacts_; - } - /** - * bool allowFindByContacts = 1002; - * @param value The allowFindByContacts to set. - * @return This builder for chaining. - */ - public Builder setAllowFindByContacts(boolean value) { - - allowFindByContacts_ = value; - bitField2_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool allowFindByContacts = 1002; - * @return This builder for chaining. - */ - public Builder clearAllowFindByContacts() { - bitField2_ = (bitField2_ & ~0x00000800); - allowFindByContacts_ = false; - onChanged(); - return this; - } - - private boolean allowOthersDownloadVideo_ ; - /** - * bool allowOthersDownloadVideo = 1003; - * @return The allowOthersDownloadVideo. - */ - @java.lang.Override - public boolean getAllowOthersDownloadVideo() { - return allowOthersDownloadVideo_; - } - /** - * bool allowOthersDownloadVideo = 1003; - * @param value The allowOthersDownloadVideo to set. - * @return This builder for chaining. - */ - public Builder setAllowOthersDownloadVideo(boolean value) { - - allowOthersDownloadVideo_ = value; - bitField2_ |= 0x00001000; - onChanged(); - return this; - } - /** - * bool allowOthersDownloadVideo = 1003; - * @return This builder for chaining. - */ - public Builder clearAllowOthersDownloadVideo() { - bitField2_ = (bitField2_ & ~0x00001000); - allowOthersDownloadVideo_ = false; - onChanged(); - return this; - } - - private boolean allowOthersDownloadWhenSharingVideo_ ; - /** - * bool allowOthersDownloadWhenSharingVideo = 1004; - * @return The allowOthersDownloadWhenSharingVideo. - */ - @java.lang.Override - public boolean getAllowOthersDownloadWhenSharingVideo() { - return allowOthersDownloadWhenSharingVideo_; - } - /** - * bool allowOthersDownloadWhenSharingVideo = 1004; - * @param value The allowOthersDownloadWhenSharingVideo to set. - * @return This builder for chaining. - */ - public Builder setAllowOthersDownloadWhenSharingVideo(boolean value) { - - allowOthersDownloadWhenSharingVideo_ = value; - bitField2_ |= 0x00002000; - onChanged(); - return this; - } - /** - * bool allowOthersDownloadWhenSharingVideo = 1004; - * @return This builder for chaining. - */ - public Builder clearAllowOthersDownloadWhenSharingVideo() { - bitField2_ = (bitField2_ & ~0x00002000); - allowOthersDownloadWhenSharingVideo_ = false; - onChanged(); - return this; - } - - private boolean allowShareShowProfile_ ; - /** - * bool allowShareShowProfile = 1005; - * @return The allowShareShowProfile. - */ - @java.lang.Override - public boolean getAllowShareShowProfile() { - return allowShareShowProfile_; - } - /** - * bool allowShareShowProfile = 1005; - * @param value The allowShareShowProfile to set. - * @return This builder for chaining. - */ - public Builder setAllowShareShowProfile(boolean value) { - - allowShareShowProfile_ = value; - bitField2_ |= 0x00004000; - onChanged(); - return this; - } - /** - * bool allowShareShowProfile = 1005; - * @return This builder for chaining. - */ - public Builder clearAllowShareShowProfile() { - bitField2_ = (bitField2_ & ~0x00004000); - allowShareShowProfile_ = false; - onChanged(); - return this; - } - - private boolean allowShowInGossip_ ; - /** - * bool allowShowInGossip = 1006; - * @return The allowShowInGossip. - */ - @java.lang.Override - public boolean getAllowShowInGossip() { - return allowShowInGossip_; - } - /** - * bool allowShowInGossip = 1006; - * @param value The allowShowInGossip to set. - * @return This builder for chaining. - */ - public Builder setAllowShowInGossip(boolean value) { - - allowShowInGossip_ = value; - bitField2_ |= 0x00008000; - onChanged(); - return this; - } - /** - * bool allowShowInGossip = 1006; - * @return This builder for chaining. - */ - public Builder clearAllowShowInGossip() { - bitField2_ = (bitField2_ & ~0x00008000); - allowShowInGossip_ = false; - onChanged(); - return this; - } - - private boolean allowShowMyAction_ ; - /** - * bool allowShowMyAction = 1007; - * @return The allowShowMyAction. - */ - @java.lang.Override - public boolean getAllowShowMyAction() { - return allowShowMyAction_; - } - /** - * bool allowShowMyAction = 1007; - * @param value The allowShowMyAction to set. - * @return This builder for chaining. - */ - public Builder setAllowShowMyAction(boolean value) { - - allowShowMyAction_ = value; - bitField2_ |= 0x00010000; - onChanged(); - return this; - } - /** - * bool allowShowMyAction = 1007; - * @return This builder for chaining. - */ - public Builder clearAllowShowMyAction() { - bitField2_ = (bitField2_ & ~0x00010000); - allowShowMyAction_ = false; - onChanged(); - return this; - } - - private boolean allowStrangeComment_ ; - /** - * bool allowStrangeComment = 1008; - * @return The allowStrangeComment. - */ - @java.lang.Override - public boolean getAllowStrangeComment() { - return allowStrangeComment_; - } - /** - * bool allowStrangeComment = 1008; - * @param value The allowStrangeComment to set. - * @return This builder for chaining. - */ - public Builder setAllowStrangeComment(boolean value) { - - allowStrangeComment_ = value; - bitField2_ |= 0x00020000; - onChanged(); - return this; - } - /** - * bool allowStrangeComment = 1008; - * @return This builder for chaining. - */ - public Builder clearAllowStrangeComment() { - bitField2_ = (bitField2_ & ~0x00020000); - allowStrangeComment_ = false; - onChanged(); - return this; - } - - private boolean allowUnfollowerComment_ ; - /** - * bool allowUnfollowerComment = 1009; - * @return The allowUnfollowerComment. - */ - @java.lang.Override - public boolean getAllowUnfollowerComment() { - return allowUnfollowerComment_; - } - /** - * bool allowUnfollowerComment = 1009; - * @param value The allowUnfollowerComment to set. - * @return This builder for chaining. - */ - public Builder setAllowUnfollowerComment(boolean value) { - - allowUnfollowerComment_ = value; - bitField2_ |= 0x00040000; - onChanged(); - return this; - } - /** - * bool allowUnfollowerComment = 1009; - * @return This builder for chaining. - */ - public Builder clearAllowUnfollowerComment() { - bitField2_ = (bitField2_ & ~0x00040000); - allowUnfollowerComment_ = false; - onChanged(); - return this; - } - - private boolean allowUseLinkmic_ ; - /** - * bool allowUseLinkmic = 1010; - * @return The allowUseLinkmic. - */ - @java.lang.Override - public boolean getAllowUseLinkmic() { - return allowUseLinkmic_; - } - /** - * bool allowUseLinkmic = 1010; - * @param value The allowUseLinkmic to set. - * @return This builder for chaining. - */ - public Builder setAllowUseLinkmic(boolean value) { - - allowUseLinkmic_ = value; - bitField2_ |= 0x00080000; - onChanged(); - return this; - } - /** - * bool allowUseLinkmic = 1010; - * @return This builder for chaining. - */ - public Builder clearAllowUseLinkmic() { - bitField2_ = (bitField2_ & ~0x00080000); - allowUseLinkmic_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel anchorLevel_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> anchorLevelBuilder_; - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return Whether the anchorLevel field is set. - */ - public boolean hasAnchorLevel() { - return ((bitField2_ & 0x00100000) != 0); - } - /** - * .User.AnchorLevel anchorLevel = 1011; - * @return The anchorLevel. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel() { - if (anchorLevelBuilder_ == null) { - return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; - } else { - return anchorLevelBuilder_.getMessage(); - } - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public Builder setAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { - if (anchorLevelBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - anchorLevel_ = value; - } else { - anchorLevelBuilder_.setMessage(value); - } - bitField2_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public Builder setAnchorLevel( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder builderForValue) { - if (anchorLevelBuilder_ == null) { - anchorLevel_ = builderForValue.build(); - } else { - anchorLevelBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public Builder mergeAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { - if (anchorLevelBuilder_ == null) { - if (((bitField2_ & 0x00100000) != 0) && - anchorLevel_ != null && - anchorLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) { - getAnchorLevelBuilder().mergeFrom(value); - } else { - anchorLevel_ = value; - } - } else { - anchorLevelBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00100000; - onChanged(); - return this; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public Builder clearAnchorLevel() { - bitField2_ = (bitField2_ & ~0x00100000); - anchorLevel_ = null; - if (anchorLevelBuilder_ != null) { - anchorLevelBuilder_.dispose(); - anchorLevelBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder getAnchorLevelBuilder() { - bitField2_ |= 0x00100000; - onChanged(); - return getAnchorLevelFieldBuilder().getBuilder(); - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder() { - if (anchorLevelBuilder_ != null) { - return anchorLevelBuilder_.getMessageOrBuilder(); - } else { - return anchorLevel_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; - } - } - /** - * .User.AnchorLevel anchorLevel = 1011; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> - getAnchorLevelFieldBuilder() { - if (anchorLevelBuilder_ == null) { - anchorLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder>( - getAnchorLevel(), - getParentForChildren(), - isClean()); - anchorLevel_ = null; - } - return anchorLevelBuilder_; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarJpg_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarJpgBuilder_; - /** - * .Image avatarJpg = 1012; - * @return Whether the avatarJpg field is set. - */ - public boolean hasAvatarJpg() { - return ((bitField2_ & 0x00200000) != 0); - } - /** - * .Image avatarJpg = 1012; - * @return The avatarJpg. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg() { - if (avatarJpgBuilder_ == null) { - return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; - } else { - return avatarJpgBuilder_.getMessage(); - } - } - /** - * .Image avatarJpg = 1012; - */ - public Builder setAvatarJpg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarJpgBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - avatarJpg_ = value; - } else { - avatarJpgBuilder_.setMessage(value); - } - bitField2_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .Image avatarJpg = 1012; - */ - public Builder setAvatarJpg( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { - if (avatarJpgBuilder_ == null) { - avatarJpg_ = builderForValue.build(); - } else { - avatarJpgBuilder_.setMessage(builderForValue.build()); - } - bitField2_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .Image avatarJpg = 1012; - */ - public Builder mergeAvatarJpg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { - if (avatarJpgBuilder_ == null) { - if (((bitField2_ & 0x00200000) != 0) && - avatarJpg_ != null && - avatarJpg_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { - getAvatarJpgBuilder().mergeFrom(value); - } else { - avatarJpg_ = value; - } - } else { - avatarJpgBuilder_.mergeFrom(value); - } - bitField2_ |= 0x00200000; - onChanged(); - return this; - } - /** - * .Image avatarJpg = 1012; - */ - public Builder clearAvatarJpg() { - bitField2_ = (bitField2_ & ~0x00200000); - avatarJpg_ = null; - if (avatarJpgBuilder_ != null) { - avatarJpgBuilder_.dispose(); - avatarJpgBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .Image avatarJpg = 1012; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarJpgBuilder() { - bitField2_ |= 0x00200000; - onChanged(); - return getAvatarJpgFieldBuilder().getBuilder(); - } - /** - * .Image avatarJpg = 1012; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder() { - if (avatarJpgBuilder_ != null) { - return avatarJpgBuilder_.getMessageOrBuilder(); - } else { - return avatarJpg_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; - } - } - /** - * .Image avatarJpg = 1012; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> - getAvatarJpgFieldBuilder() { - if (avatarJpgBuilder_ == null) { - avatarJpgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( - getAvatarJpg(), - getParentForChildren(), - isClean()); - avatarJpg_ = null; - } - return avatarJpgBuilder_; - } - - private java.lang.Object bgImgUrl_ = ""; - /** - * string bgImgUrl = 1013; - * @return The bgImgUrl. - */ - public java.lang.String getBgImgUrl() { - java.lang.Object ref = bgImgUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - bgImgUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string bgImgUrl = 1013; - * @return The bytes for bgImgUrl. - */ - public com.google.protobuf.ByteString - getBgImgUrlBytes() { - java.lang.Object ref = bgImgUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - bgImgUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string bgImgUrl = 1013; - * @param value The bgImgUrl to set. - * @return This builder for chaining. - */ - public Builder setBgImgUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - bgImgUrl_ = value; - bitField2_ |= 0x00400000; - onChanged(); - return this; - } - /** - * string bgImgUrl = 1013; - * @return This builder for chaining. - */ - public Builder clearBgImgUrl() { - bgImgUrl_ = getDefaultInstance().getBgImgUrl(); - bitField2_ = (bitField2_ & ~0x00400000); - onChanged(); - return this; - } - /** - * string bgImgUrl = 1013; - * @param value The bytes for bgImgUrl to set. - * @return This builder for chaining. - */ - public Builder setBgImgUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - bgImgUrl_ = value; - bitField2_ |= 0x00400000; - onChanged(); - return this; - } - - private java.lang.Object birthdayDescription_ = ""; - /** - * string birthdayDescription = 1014; - * @return The birthdayDescription. - */ - public java.lang.String getBirthdayDescription() { - java.lang.Object ref = birthdayDescription_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - birthdayDescription_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string birthdayDescription = 1014; - * @return The bytes for birthdayDescription. - */ - public com.google.protobuf.ByteString - getBirthdayDescriptionBytes() { - java.lang.Object ref = birthdayDescription_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - birthdayDescription_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string birthdayDescription = 1014; - * @param value The birthdayDescription to set. - * @return This builder for chaining. - */ - public Builder setBirthdayDescription( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - birthdayDescription_ = value; - bitField2_ |= 0x00800000; - onChanged(); - return this; - } - /** - * string birthdayDescription = 1014; - * @return This builder for chaining. - */ - public Builder clearBirthdayDescription() { - birthdayDescription_ = getDefaultInstance().getBirthdayDescription(); - bitField2_ = (bitField2_ & ~0x00800000); - onChanged(); - return this; - } - /** - * string birthdayDescription = 1014; - * @param value The bytes for birthdayDescription to set. - * @return This builder for chaining. - */ - public Builder setBirthdayDescriptionBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - birthdayDescription_ = value; - bitField2_ |= 0x00800000; - onChanged(); - return this; - } - - private boolean birthdayValid_ ; - /** - * bool birthdayValid = 1015; - * @return The birthdayValid. - */ - @java.lang.Override - public boolean getBirthdayValid() { - return birthdayValid_; - } - /** - * bool birthdayValid = 1015; - * @param value The birthdayValid to set. - * @return This builder for chaining. - */ - public Builder setBirthdayValid(boolean value) { - - birthdayValid_ = value; - bitField2_ |= 0x01000000; - onChanged(); - return this; - } - /** - * bool birthdayValid = 1015; - * @return This builder for chaining. - */ - public Builder clearBirthdayValid() { - bitField2_ = (bitField2_ & ~0x01000000); - birthdayValid_ = false; - onChanged(); - return this; - } - - private int blockStatus_ ; - /** - * int32 blockStatus = 1016; - * @return The blockStatus. - */ - @java.lang.Override - public int getBlockStatus() { - return blockStatus_; - } - /** - * int32 blockStatus = 1016; - * @param value The blockStatus to set. - * @return This builder for chaining. - */ - public Builder setBlockStatus(int value) { - - blockStatus_ = value; - bitField2_ |= 0x02000000; - onChanged(); - return this; - } - /** - * int32 blockStatus = 1016; - * @return This builder for chaining. - */ - public Builder clearBlockStatus() { - bitField2_ = (bitField2_ & ~0x02000000); - blockStatus_ = 0; - onChanged(); - return this; - } - - private int commentRestrict_ ; - /** - * int32 commentRestrict = 1017; - * @return The commentRestrict. - */ - @java.lang.Override - public int getCommentRestrict() { - return commentRestrict_; - } - /** - * int32 commentRestrict = 1017; - * @param value The commentRestrict to set. - * @return This builder for chaining. - */ - public Builder setCommentRestrict(int value) { - - commentRestrict_ = value; - bitField2_ |= 0x04000000; - onChanged(); - return this; - } - /** - * int32 commentRestrict = 1017; - * @return This builder for chaining. - */ - public Builder clearCommentRestrict() { - bitField2_ = (bitField2_ & ~0x04000000); - commentRestrict_ = 0; - onChanged(); - return this; - } - - private java.lang.Object constellation_ = ""; - /** - * string constellation = 1018; - * @return The constellation. - */ - public java.lang.String getConstellation() { - java.lang.Object ref = constellation_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - constellation_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string constellation = 1018; - * @return The bytes for constellation. - */ - public com.google.protobuf.ByteString - getConstellationBytes() { - java.lang.Object ref = constellation_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - constellation_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string constellation = 1018; - * @param value The constellation to set. - * @return This builder for chaining. - */ - public Builder setConstellation( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - constellation_ = value; - bitField2_ |= 0x08000000; - onChanged(); - return this; - } - /** - * string constellation = 1018; - * @return This builder for chaining. - */ - public Builder clearConstellation() { - constellation_ = getDefaultInstance().getConstellation(); - bitField2_ = (bitField2_ & ~0x08000000); - onChanged(); - return this; - } - /** - * string constellation = 1018; - * @param value The bytes for constellation to set. - * @return This builder for chaining. - */ - public Builder setConstellationBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - constellation_ = value; - bitField2_ |= 0x08000000; - onChanged(); - return this; - } - - private int disableIchat_ ; - /** - * int32 disableIchat = 1019; - * @return The disableIchat. - */ - @java.lang.Override - public int getDisableIchat() { - return disableIchat_; - } - /** - * int32 disableIchat = 1019; - * @param value The disableIchat to set. - * @return This builder for chaining. - */ - public Builder setDisableIchat(int value) { - - disableIchat_ = value; - bitField2_ |= 0x10000000; - onChanged(); - return this; - } - /** - * int32 disableIchat = 1019; - * @return This builder for chaining. - */ - public Builder clearDisableIchat() { - bitField2_ = (bitField2_ & ~0x10000000); - disableIchat_ = 0; - onChanged(); - return this; - } - - private long enableIchatImg_ ; - /** - * int64 enableIchatImg = 1020; - * @return The enableIchatImg. - */ - @java.lang.Override - public long getEnableIchatImg() { - return enableIchatImg_; - } - /** - * int64 enableIchatImg = 1020; - * @param value The enableIchatImg to set. - * @return This builder for chaining. - */ - public Builder setEnableIchatImg(long value) { - - enableIchatImg_ = value; - bitField2_ |= 0x20000000; - onChanged(); - return this; - } - /** - * int64 enableIchatImg = 1020; - * @return This builder for chaining. - */ - public Builder clearEnableIchatImg() { - bitField2_ = (bitField2_ & ~0x20000000); - enableIchatImg_ = 0L; - onChanged(); - return this; - } - - private int exp_ ; - /** - * int32 exp = 1021; - * @return The exp. - */ - @java.lang.Override - public int getExp() { - return exp_; - } - /** - * int32 exp = 1021; - * @param value The exp to set. - * @return This builder for chaining. - */ - public Builder setExp(int value) { - - exp_ = value; - bitField2_ |= 0x40000000; - onChanged(); - return this; - } - /** - * int32 exp = 1021; - * @return This builder for chaining. - */ - public Builder clearExp() { - bitField2_ = (bitField2_ & ~0x40000000); - exp_ = 0; - onChanged(); - return this; - } - - private long fanTicketCount_ ; - /** - * int64 fanTicketCount = 1022; - * @return The fanTicketCount. - */ - @java.lang.Override - public long getFanTicketCount() { - return fanTicketCount_; - } - /** - * int64 fanTicketCount = 1022; - * @param value The fanTicketCount to set. - * @return This builder for chaining. - */ - public Builder setFanTicketCount(long value) { - - fanTicketCount_ = value; - bitField2_ |= 0x80000000; - onChanged(); - return this; - } - /** - * int64 fanTicketCount = 1022; - * @return This builder for chaining. - */ - public Builder clearFanTicketCount() { - bitField2_ = (bitField2_ & ~0x80000000); - fanTicketCount_ = 0L; - onChanged(); - return this; - } - - private boolean foldStrangerChat_ ; - /** - * bool foldStrangerChat = 1023; - * @return The foldStrangerChat. - */ - @java.lang.Override - public boolean getFoldStrangerChat() { - return foldStrangerChat_; - } - /** - * bool foldStrangerChat = 1023; - * @param value The foldStrangerChat to set. - * @return This builder for chaining. - */ - public Builder setFoldStrangerChat(boolean value) { - - foldStrangerChat_ = value; - bitField3_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool foldStrangerChat = 1023; - * @return This builder for chaining. - */ - public Builder clearFoldStrangerChat() { - bitField3_ = (bitField3_ & ~0x00000001); - foldStrangerChat_ = false; - onChanged(); - return this; - } - - private long followStatus_ ; - /** - * int64 followStatus = 1024; - * @return The followStatus. - */ - @java.lang.Override - public long getFollowStatus() { - return followStatus_; - } - /** - * int64 followStatus = 1024; - * @param value The followStatus to set. - * @return This builder for chaining. - */ - public Builder setFollowStatus(long value) { - - followStatus_ = value; - bitField3_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int64 followStatus = 1024; - * @return This builder for chaining. - */ - public Builder clearFollowStatus() { - bitField3_ = (bitField3_ & ~0x00000002); - followStatus_ = 0L; - onChanged(); - return this; - } - - private boolean hotsoonVerified_ ; - /** - * bool hotsoonVerified = 1025; - * @return The hotsoonVerified. - */ - @java.lang.Override - public boolean getHotsoonVerified() { - return hotsoonVerified_; - } - /** - * bool hotsoonVerified = 1025; - * @param value The hotsoonVerified to set. - * @return This builder for chaining. - */ - public Builder setHotsoonVerified(boolean value) { - - hotsoonVerified_ = value; - bitField3_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bool hotsoonVerified = 1025; - * @return This builder for chaining. - */ - public Builder clearHotsoonVerified() { - bitField3_ = (bitField3_ & ~0x00000004); - hotsoonVerified_ = false; - onChanged(); - return this; - } - - private java.lang.Object hotsoonVerifiedReason_ = ""; - /** - * string hotsoonVerifiedReason = 1026; - * @return The hotsoonVerifiedReason. - */ - public java.lang.String getHotsoonVerifiedReason() { - java.lang.Object ref = hotsoonVerifiedReason_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - hotsoonVerifiedReason_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string hotsoonVerifiedReason = 1026; - * @return The bytes for hotsoonVerifiedReason. - */ - public com.google.protobuf.ByteString - getHotsoonVerifiedReasonBytes() { - java.lang.Object ref = hotsoonVerifiedReason_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - hotsoonVerifiedReason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string hotsoonVerifiedReason = 1026; - * @param value The hotsoonVerifiedReason to set. - * @return This builder for chaining. - */ - public Builder setHotsoonVerifiedReason( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - hotsoonVerifiedReason_ = value; - bitField3_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string hotsoonVerifiedReason = 1026; - * @return This builder for chaining. - */ - public Builder clearHotsoonVerifiedReason() { - hotsoonVerifiedReason_ = getDefaultInstance().getHotsoonVerifiedReason(); - bitField3_ = (bitField3_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string hotsoonVerifiedReason = 1026; - * @param value The bytes for hotsoonVerifiedReason to set. - * @return This builder for chaining. - */ - public Builder setHotsoonVerifiedReasonBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - hotsoonVerifiedReason_ = value; - bitField3_ |= 0x00000008; - onChanged(); - return this; - } - - private int ichatRestrictType_ ; - /** - * int32 ichatRestrictType = 1027; - * @return The ichatRestrictType. - */ - @java.lang.Override - public int getIchatRestrictType() { - return ichatRestrictType_; - } - /** - * int32 ichatRestrictType = 1027; - * @param value The ichatRestrictType to set. - * @return This builder for chaining. - */ - public Builder setIchatRestrictType(int value) { - - ichatRestrictType_ = value; - bitField3_ |= 0x00000010; - onChanged(); - return this; - } - /** - * int32 ichatRestrictType = 1027; - * @return This builder for chaining. - */ - public Builder clearIchatRestrictType() { - bitField3_ = (bitField3_ & ~0x00000010); - ichatRestrictType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object idStr_ = ""; - /** - * string idStr = 1028; - * @return The idStr. - */ - public java.lang.String getIdStr() { - java.lang.Object ref = idStr_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - idStr_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string idStr = 1028; - * @return The bytes for idStr. - */ - public com.google.protobuf.ByteString - getIdStrBytes() { - java.lang.Object ref = idStr_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - idStr_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string idStr = 1028; - * @param value The idStr to set. - * @return This builder for chaining. - */ - public Builder setIdStr( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - idStr_ = value; - bitField3_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string idStr = 1028; - * @return This builder for chaining. - */ - public Builder clearIdStr() { - idStr_ = getDefaultInstance().getIdStr(); - bitField3_ = (bitField3_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string idStr = 1028; - * @param value The bytes for idStr to set. - * @return This builder for chaining. - */ - public Builder setIdStrBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - idStr_ = value; - bitField3_ |= 0x00000020; - onChanged(); - return this; - } - - private boolean isFollower_ ; - /** - * bool isFollower = 1029; - * @return The isFollower. - */ - @java.lang.Override - public boolean getIsFollower() { - return isFollower_; - } - /** - * bool isFollower = 1029; - * @param value The isFollower to set. - * @return This builder for chaining. - */ - public Builder setIsFollower(boolean value) { - - isFollower_ = value; - bitField3_ |= 0x00000040; - onChanged(); - return this; - } - /** - * bool isFollower = 1029; - * @return This builder for chaining. - */ - public Builder clearIsFollower() { - bitField3_ = (bitField3_ & ~0x00000040); - isFollower_ = false; - onChanged(); - return this; - } - - private boolean isFollowing_ ; - /** - * bool isFollowing = 1030; - * @return The isFollowing. - */ - @java.lang.Override - public boolean getIsFollowing() { - return isFollowing_; - } - /** - * bool isFollowing = 1030; - * @param value The isFollowing to set. - * @return This builder for chaining. - */ - public Builder setIsFollowing(boolean value) { - - isFollowing_ = value; - bitField3_ |= 0x00000080; - onChanged(); - return this; - } - /** - * bool isFollowing = 1030; - * @return This builder for chaining. - */ - public Builder clearIsFollowing() { - bitField3_ = (bitField3_ & ~0x00000080); - isFollowing_ = false; - onChanged(); - return this; - } - - private boolean needProfileGuide_ ; - /** - * bool needProfileGuide = 1031; - * @return The needProfileGuide. - */ - @java.lang.Override - public boolean getNeedProfileGuide() { - return needProfileGuide_; - } - /** - * bool needProfileGuide = 1031; - * @param value The needProfileGuide to set. - * @return This builder for chaining. - */ - public Builder setNeedProfileGuide(boolean value) { - - needProfileGuide_ = value; - bitField3_ |= 0x00000100; - onChanged(); - return this; - } - /** - * bool needProfileGuide = 1031; - * @return This builder for chaining. - */ - public Builder clearNeedProfileGuide() { - bitField3_ = (bitField3_ & ~0x00000100); - needProfileGuide_ = false; - onChanged(); - return this; - } - - private long payScores_ ; - /** - * int64 payScores = 1032; - * @return The payScores. - */ - @java.lang.Override - public long getPayScores() { - return payScores_; - } - /** - * int64 payScores = 1032; - * @param value The payScores to set. - * @return This builder for chaining. - */ - public Builder setPayScores(long value) { - - payScores_ = value; - bitField3_ |= 0x00000200; - onChanged(); - return this; - } - /** - * int64 payScores = 1032; - * @return This builder for chaining. - */ - public Builder clearPayScores() { - bitField3_ = (bitField3_ & ~0x00000200); - payScores_ = 0L; - onChanged(); - return this; - } - - private boolean pushCommentStatus_ ; - /** - * bool pushCommentStatus = 1033; - * @return The pushCommentStatus. - */ - @java.lang.Override - public boolean getPushCommentStatus() { - return pushCommentStatus_; - } - /** - * bool pushCommentStatus = 1033; - * @param value The pushCommentStatus to set. - * @return This builder for chaining. - */ - public Builder setPushCommentStatus(boolean value) { - - pushCommentStatus_ = value; - bitField3_ |= 0x00000400; - onChanged(); - return this; - } - /** - * bool pushCommentStatus = 1033; - * @return This builder for chaining. - */ - public Builder clearPushCommentStatus() { - bitField3_ = (bitField3_ & ~0x00000400); - pushCommentStatus_ = false; - onChanged(); - return this; - } - - private boolean pushDigg_ ; - /** - * bool pushDigg = 1034; - * @return The pushDigg. - */ - @java.lang.Override - public boolean getPushDigg() { - return pushDigg_; - } - /** - * bool pushDigg = 1034; - * @param value The pushDigg to set. - * @return This builder for chaining. - */ - public Builder setPushDigg(boolean value) { - - pushDigg_ = value; - bitField3_ |= 0x00000800; - onChanged(); - return this; - } - /** - * bool pushDigg = 1034; - * @return This builder for chaining. - */ - public Builder clearPushDigg() { - bitField3_ = (bitField3_ & ~0x00000800); - pushDigg_ = false; - onChanged(); - return this; - } - - private boolean pushFollow_ ; - /** - * bool pushFollow = 1035; - * @return The pushFollow. - */ - @java.lang.Override - public boolean getPushFollow() { - return pushFollow_; - } - /** - * bool pushFollow = 1035; - * @param value The pushFollow to set. - * @return This builder for chaining. - */ - public Builder setPushFollow(boolean value) { - - pushFollow_ = value; - bitField3_ |= 0x00001000; - onChanged(); - return this; - } - /** - * bool pushFollow = 1035; - * @return This builder for chaining. - */ - public Builder clearPushFollow() { - bitField3_ = (bitField3_ & ~0x00001000); - pushFollow_ = false; - onChanged(); - return this; - } - - private boolean pushFriendAction_ ; - /** - * bool pushFriendAction = 1036; - * @return The pushFriendAction. - */ - @java.lang.Override - public boolean getPushFriendAction() { - return pushFriendAction_; - } - /** - * bool pushFriendAction = 1036; - * @param value The pushFriendAction to set. - * @return This builder for chaining. - */ - public Builder setPushFriendAction(boolean value) { - - pushFriendAction_ = value; - bitField3_ |= 0x00002000; - onChanged(); - return this; - } - /** - * bool pushFriendAction = 1036; - * @return This builder for chaining. - */ - public Builder clearPushFriendAction() { - bitField3_ = (bitField3_ & ~0x00002000); - pushFriendAction_ = false; - onChanged(); - return this; - } - - private boolean pushIchat_ ; - /** - * bool pushIchat = 1037; - * @return The pushIchat. - */ - @java.lang.Override - public boolean getPushIchat() { - return pushIchat_; - } - /** - * bool pushIchat = 1037; - * @param value The pushIchat to set. - * @return This builder for chaining. - */ - public Builder setPushIchat(boolean value) { - - pushIchat_ = value; - bitField3_ |= 0x00004000; - onChanged(); - return this; - } - /** - * bool pushIchat = 1037; - * @return This builder for chaining. - */ - public Builder clearPushIchat() { - bitField3_ = (bitField3_ & ~0x00004000); - pushIchat_ = false; - onChanged(); - return this; - } - - private boolean pushStatus_ ; - /** - * bool pushStatus = 1038; - * @return The pushStatus. - */ - @java.lang.Override - public boolean getPushStatus() { - return pushStatus_; - } - /** - * bool pushStatus = 1038; - * @param value The pushStatus to set. - * @return This builder for chaining. - */ - public Builder setPushStatus(boolean value) { - - pushStatus_ = value; - bitField3_ |= 0x00008000; - onChanged(); - return this; - } - /** - * bool pushStatus = 1038; - * @return This builder for chaining. - */ - public Builder clearPushStatus() { - bitField3_ = (bitField3_ & ~0x00008000); - pushStatus_ = false; - onChanged(); - return this; - } - - private boolean pushVideoPost_ ; - /** - * bool pushVideoPost = 1039; - * @return The pushVideoPost. - */ - @java.lang.Override - public boolean getPushVideoPost() { - return pushVideoPost_; - } - /** - * bool pushVideoPost = 1039; - * @param value The pushVideoPost to set. - * @return This builder for chaining. - */ - public Builder setPushVideoPost(boolean value) { - - pushVideoPost_ = value; - bitField3_ |= 0x00010000; - onChanged(); - return this; - } - /** - * bool pushVideoPost = 1039; - * @return This builder for chaining. - */ - public Builder clearPushVideoPost() { - bitField3_ = (bitField3_ & ~0x00010000); - pushVideoPost_ = false; - onChanged(); - return this; - } - - private boolean pushVideoRecommend_ ; - /** - * bool pushVideoRecommend = 1040; - * @return The pushVideoRecommend. - */ - @java.lang.Override - public boolean getPushVideoRecommend() { - return pushVideoRecommend_; - } - /** - * bool pushVideoRecommend = 1040; - * @param value The pushVideoRecommend to set. - * @return This builder for chaining. - */ - public Builder setPushVideoRecommend(boolean value) { - - pushVideoRecommend_ = value; - bitField3_ |= 0x00020000; - onChanged(); - return this; - } - /** - * bool pushVideoRecommend = 1040; - * @return This builder for chaining. - */ - public Builder clearPushVideoRecommend() { - bitField3_ = (bitField3_ & ~0x00020000); - pushVideoRecommend_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats stats_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder> statsBuilder_; - /** - * .User.UserStats stats = 1041; - * @return Whether the stats field is set. - */ - public boolean hasStats() { - return ((bitField3_ & 0x00040000) != 0); - } - /** - * .User.UserStats stats = 1041; - * @return The stats. - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats() { - if (statsBuilder_ == null) { - return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; - } else { - return statsBuilder_.getMessage(); - } - } - /** - * .User.UserStats stats = 1041; - */ - public Builder setStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats value) { - if (statsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - stats_ = value; - } else { - statsBuilder_.setMessage(value); - } - bitField3_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.UserStats stats = 1041; - */ - public Builder setStats( - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder builderForValue) { - if (statsBuilder_ == null) { - stats_ = builderForValue.build(); - } else { - statsBuilder_.setMessage(builderForValue.build()); - } - bitField3_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.UserStats stats = 1041; - */ - public Builder mergeStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats value) { - if (statsBuilder_ == null) { - if (((bitField3_ & 0x00040000) != 0) && - stats_ != null && - stats_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance()) { - getStatsBuilder().mergeFrom(value); - } else { - stats_ = value; - } - } else { - statsBuilder_.mergeFrom(value); - } - bitField3_ |= 0x00040000; - onChanged(); - return this; - } - /** - * .User.UserStats stats = 1041; - */ - public Builder clearStats() { - bitField3_ = (bitField3_ & ~0x00040000); - stats_ = null; - if (statsBuilder_ != null) { - statsBuilder_.dispose(); - statsBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .User.UserStats stats = 1041; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder getStatsBuilder() { - bitField3_ |= 0x00040000; - onChanged(); - return getStatsFieldBuilder().getBuilder(); - } - /** - * .User.UserStats stats = 1041; - */ - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder() { - if (statsBuilder_ != null) { - return statsBuilder_.getMessageOrBuilder(); - } else { - return stats_ == null ? - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; - } - } - /** - * .User.UserStats stats = 1041; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder> - getStatsFieldBuilder() { - if (statsBuilder_ == null) { - statsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder>( - getStats(), - getParentForChildren(), - isClean()); - stats_ = null; - } - return statsBuilder_; - } - - private boolean verifiedMobile_ ; - /** - * bool verifiedMobile = 1042; - * @return The verifiedMobile. - */ - @java.lang.Override - public boolean getVerifiedMobile() { - return verifiedMobile_; - } - /** - * bool verifiedMobile = 1042; - * @param value The verifiedMobile to set. - * @return This builder for chaining. - */ - public Builder setVerifiedMobile(boolean value) { - - verifiedMobile_ = value; - bitField3_ |= 0x00080000; - onChanged(); - return this; - } - /** - * bool verifiedMobile = 1042; - * @return This builder for chaining. - */ - public Builder clearVerifiedMobile() { - bitField3_ = (bitField3_ & ~0x00080000); - verifiedMobile_ = false; - onChanged(); - return this; - } - - private java.lang.Object verifiedReason_ = ""; - /** - * string verifiedReason = 1043; - * @return The verifiedReason. - */ - public java.lang.String getVerifiedReason() { - java.lang.Object ref = verifiedReason_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - verifiedReason_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string verifiedReason = 1043; - * @return The bytes for verifiedReason. - */ - public com.google.protobuf.ByteString - getVerifiedReasonBytes() { - java.lang.Object ref = verifiedReason_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - verifiedReason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string verifiedReason = 1043; - * @param value The verifiedReason to set. - * @return This builder for chaining. - */ - public Builder setVerifiedReason( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - verifiedReason_ = value; - bitField3_ |= 0x00100000; - onChanged(); - return this; - } - /** - * string verifiedReason = 1043; - * @return This builder for chaining. - */ - public Builder clearVerifiedReason() { - verifiedReason_ = getDefaultInstance().getVerifiedReason(); - bitField3_ = (bitField3_ & ~0x00100000); - onChanged(); - return this; - } - /** - * string verifiedReason = 1043; - * @param value The bytes for verifiedReason to set. - * @return This builder for chaining. - */ - public Builder setVerifiedReasonBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - verifiedReason_ = value; - bitField3_ |= 0x00100000; - onChanged(); - return this; - } - - private boolean withCarManagementPermission_ ; - /** - * bool withCarManagementPermission = 1044; - * @return The withCarManagementPermission. - */ - @java.lang.Override - public boolean getWithCarManagementPermission() { - return withCarManagementPermission_; - } - /** - * bool withCarManagementPermission = 1044; - * @param value The withCarManagementPermission to set. - * @return This builder for chaining. - */ - public Builder setWithCarManagementPermission(boolean value) { - - withCarManagementPermission_ = value; - bitField3_ |= 0x00200000; - onChanged(); - return this; - } - /** - * bool withCarManagementPermission = 1044; - * @return This builder for chaining. - */ - public Builder clearWithCarManagementPermission() { - bitField3_ = (bitField3_ & ~0x00200000); - withCarManagementPermission_ = false; - onChanged(); - return this; - } - - private int ageRange_ ; - /** - * int32 ageRange = 1045; - * @return The ageRange. - */ - @java.lang.Override - public int getAgeRange() { - return ageRange_; - } - /** - * int32 ageRange = 1045; - * @param value The ageRange to set. - * @return This builder for chaining. - */ - public Builder setAgeRange(int value) { - - ageRange_ = value; - bitField3_ |= 0x00400000; - onChanged(); - return this; - } - /** - * int32 ageRange = 1045; - * @return This builder for chaining. - */ - public Builder clearAgeRange() { - bitField3_ = (bitField3_ & ~0x00400000); - ageRange_ = 0; - onChanged(); - return this; - } - - private long watchDurationMonth_ ; - /** - * int64 watchDurationMonth = 1046; - * @return The watchDurationMonth. - */ - @java.lang.Override - public long getWatchDurationMonth() { - return watchDurationMonth_; - } - /** - * int64 watchDurationMonth = 1046; - * @param value The watchDurationMonth to set. - * @return This builder for chaining. - */ - public Builder setWatchDurationMonth(long value) { - - watchDurationMonth_ = value; - bitField3_ |= 0x00800000; - onChanged(); - return this; - } - /** - * int64 watchDurationMonth = 1046; - * @return This builder for chaining. - */ - public Builder clearWatchDurationMonth() { - bitField3_ = (bitField3_ & ~0x00800000); - watchDurationMonth_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:User) - } - - // @@protoc_insertion_point(class_scope:User) - private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User(); - } - - public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public User parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_ActivityInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_ActivityInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_AnchorInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_AnchorInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_AnchorLevel_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_AnchorLevel_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_AuthenticationInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_AuthenticationInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_AuthorStats_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_AuthorStats_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_Border_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_Border_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_BrotherhoodInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_BrotherhoodInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansClub_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansClub_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansClub_PreferDataEntry_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansClub_PreferDataEntry_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansClub_FansClubData_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansClub_FansClubData_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansClub_FansClubData_UserBadge_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FansGroupInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FansGroupInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_FollowInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_FollowInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_JAccreditInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_JAccreditInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_NobleLevelInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_NobleLevelInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_OwnRoom_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_OwnRoom_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_PayGrade_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_PayGrade_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_PayGrade_GradeIcon_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_PayGrade_GradeIcon_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_PoiInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_PoiInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_ProfileStyleParams_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_ProfileStyleParams_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_Subscribe_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_Subscribe_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_UserAttr_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_UserAttr_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_UserDressInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_UserDressInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_UserVIPInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_UserVIPInfo_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_UserStats_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_UserStats_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_User_XiguaParams_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_User_XiguaParams_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\nUser.proto\032\013Image.proto\"\366\'\n\004User\022\n\n\002id" + - "\030\001 \001(\004\022\017\n\007shortId\030\002 \001(\004\022\020\n\010nickname\030\003 \001(" + - "\t\022\016\n\006gender\030\004 \001(\r\022\021\n\tsignature\030\005 \001(\t\022\r\n\005" + - "level\030\006 \001(\r\022\020\n\010birthday\030\007 \001(\004\022\021\n\ttelepho" + - "ne\030\010 \001(\t\022\033\n\013avatarThumb\030\t \001(\0132\006.Image\022\034\n" + - "\014avatarMedium\030\n \001(\0132\006.Image\022\033\n\013avatarLar" + - "ge\030\013 \001(\0132\006.Image\022\020\n\010verified\030\014 \001(\010\022\022\n\nex" + - "perience\030\r \001(\005\022\014\n\004city\030\016 \001(\t\022\016\n\006status\030\017" + - " \001(\005\022\022\n\ncreateTime\030\020 \001(\003\022\022\n\nmodifyTime\030\021" + - " \001(\003\022\016\n\006secret\030\022 \001(\005\022\026\n\016shareQrcodeUri\030\023" + - " \001(\t\022\032\n\022incomeSharePercent\030\024 \001(\005\022\"\n\022badg" + - "eImageListList\030\025 \001(\0132\006.Image\022$\n\nfollowIn" + - "fo\030\026 \001(\0132\020.User.FollowInfo\022 \n\010payGrade\030\027" + - " \001(\0132\016.User.PayGrade\022 \n\010fansClub\030\030 \001(\0132\016" + - ".User.FansClub\022\034\n\006border\030\031 \001(\0132\014.User.Bo" + - "rder\022\021\n\tspecialId\030\032 \001(\t\022\034\n\014avatarBorder\030" + - "\033 \001(\0132\006.Image\022\025\n\005medal\030\034 \001(\0132\006.Image\022!\n\021" + - "realTimeIconsList\030\035 \003(\0132\006.Image\022$\n\024newRe" + - "alTimeIconsList\030\036 \003(\0132\006.Image\022\020\n\010topVipN" + - "o\030\037 \001(\003\022 \n\010userAttr\030 \001(\0132\016.User.UserAtt" + - "r\022\036\n\007ownRoom\030! \001(\0132\r.User.OwnRoom\022\020\n\010pay" + - "Score\030\" \001(\003\022\023\n\013ticketCount\030# \001(\003\022$\n\nanch" + - "orInfo\030$ \001(\0132\020.User.AnchorInfo\022\024\n\014linkMi" + - "cStats\030% \001(\005\022\021\n\tdisplayId\030& \001(\t\022\036\n\026withC" + - "ommercePermission\030\' \001(\010\022\033\n\023withFusionSho" + - "pEntry\030( \001(\010\022!\n\031totalRechargeDiamondCoun" + - "t\030) \001(\003\022-\n\022webcastAnchorLevel\030* \001(\0132\021.Us" + - "er.AnchorLevel\022\027\n\017verifiedContent\030+ \001(\t\022" + - "&\n\013authorStats\030, \001(\0132\021.User.AuthorStats\022" + - "\032\n\013topFansList\030- \003(\0132\005.User\022\016\n\006secUid\030. " + - "\001(\t\022\020\n\010userRole\030/ \001(\005\022$\n\txiguaInfo\0300 \001(\013" + - "2\021.User.XiguaParams\022*\n\016activityReward\0301 " + - "\001(\0132\022.User.ActivityInfo\022\'\n\tnobleInfo\0302 \001" + - "(\0132\024.User.NobleLevelInfo\022.\n\017brotherhoodI" + - "nfo\0303 \001(\0132\025.User.BrotherhoodInfo\022\034\n\014pers" + - "onalCard\0304 \001(\0132\006.Image\0224\n\022authentication" + - "Info\0305 \001(\0132\030.User.AuthenticationInfo\022\031\n\021" + - "authorizationInfo\0306 \001(\005\022\"\n\032adversaryAuth" + - "orizationInfo\0307 \001(\005\022\036\n\007poiInfo\0308 \001(\0132\r.U" + - "ser.PoiInfo\022\'\n\027mediaBadgeImageListList\0309" + - " \001(\0132\006.Image\022\033\n\023adversaryUserStatus\030: \001(" + - "\005\022&\n\013userVipInfo\030; \001(\0132\021.User.UserVIPInf" + - "o\022$\n\034commerceWebcastConfigIdsList\030< \003(\003\022" + - "$\n\024badgeImageListV2List\030= \001(\0132\006.Image\022\024\n" + - "\014locationCity\030? \001(\t\022*\n\rfansGroupInfo\030@ \001" + - "(\0132\023.User.FansGroupInfo\022\022\n\nremarkName\030A " + - "\001(\t\022\022\n\nmysteryMan\030B \001(\005\022\016\n\006webRid\030C \001(\t\022" + - "\034\n\024desensitizedNickname\030D \001(\t\022*\n\rjAccred" + - "itInfo\030E \001(\0132\023.User.JAccreditInfo\022\"\n\tsub" + - "scribe\030F \001(\0132\017.User.Subscribe\022\023\n\013isAnony" + - "mous\030G \001(\010\022\033\n\023consumeDiamondLevel\030H \001(\005\022" + - "\022\n\nwebcastUid\030I \001(\t\0224\n\022profileStyleParam" + - "s\030J \001(\0132\030.User.ProfileStyleParams\022*\n\ruse" + - "rDressInfo\030K \001(\0132\023.User.UserDressInfo\022\027\n" + - "\016allowBeLocated\030\351\007 \001(\010\022\034\n\023allowFindByCon" + - "tacts\030\352\007 \001(\010\022!\n\030allowOthersDownloadVideo" + - "\030\353\007 \001(\010\022,\n#allowOthersDownloadWhenSharin" + - "gVideo\030\354\007 \001(\010\022\036\n\025allowShareShowProfile\030\355" + - "\007 \001(\010\022\032\n\021allowShowInGossip\030\356\007 \001(\010\022\032\n\021all" + - "owShowMyAction\030\357\007 \001(\010\022\034\n\023allowStrangeCom" + - "ment\030\360\007 \001(\010\022\037\n\026allowUnfollowerComment\030\361\007" + - " \001(\010\022\030\n\017allowUseLinkmic\030\362\007 \001(\010\022\'\n\013anchor" + - "Level\030\363\007 \001(\0132\021.User.AnchorLevel\022\032\n\tavata" + - "rJpg\030\364\007 \001(\0132\006.Image\022\021\n\010bgImgUrl\030\365\007 \001(\t\022\034" + - "\n\023birthdayDescription\030\366\007 \001(\t\022\026\n\rbirthday" + - "Valid\030\367\007 \001(\010\022\024\n\013blockStatus\030\370\007 \001(\005\022\030\n\017co" + - "mmentRestrict\030\371\007 \001(\005\022\026\n\rconstellation\030\372\007" + - " \001(\t\022\025\n\014disableIchat\030\373\007 \001(\005\022\027\n\016enableIch" + - "atImg\030\374\007 \001(\003\022\014\n\003exp\030\375\007 \001(\005\022\027\n\016fanTicketC" + - "ount\030\376\007 \001(\003\022\031\n\020foldStrangerChat\030\377\007 \001(\010\022\025" + - "\n\014followStatus\030\200\010 \001(\003\022\030\n\017hotsoonVerified" + - "\030\201\010 \001(\010\022\036\n\025hotsoonVerifiedReason\030\202\010 \001(\t\022" + - "\032\n\021ichatRestrictType\030\203\010 \001(\005\022\016\n\005idStr\030\204\010 " + - "\001(\t\022\023\n\nisFollower\030\205\010 \001(\010\022\024\n\013isFollowing\030" + - "\206\010 \001(\010\022\031\n\020needProfileGuide\030\207\010 \001(\010\022\022\n\tpay" + - "Scores\030\210\010 \001(\003\022\032\n\021pushCommentStatus\030\211\010 \001(" + - "\010\022\021\n\010pushDigg\030\212\010 \001(\010\022\023\n\npushFollow\030\213\010 \001(" + - "\010\022\031\n\020pushFriendAction\030\214\010 \001(\010\022\022\n\tpushIcha" + - "t\030\215\010 \001(\010\022\023\n\npushStatus\030\216\010 \001(\010\022\026\n\rpushVid" + - "eoPost\030\217\010 \001(\010\022\033\n\022pushVideoRecommend\030\220\010 \001" + - "(\010\022\037\n\005stats\030\221\010 \001(\0132\017.User.UserStats\022\027\n\016v" + - "erifiedMobile\030\222\010 \001(\010\022\027\n\016verifiedReason\030\223" + - "\010 \001(\t\022$\n\033withCarManagementPermission\030\224\010 " + - "\001(\010\022\021\n\010ageRange\030\225\010 \001(\005\022\033\n\022watchDurationM" + - "onth\030\226\010 \001(\003\032\016\n\014ActivityInfo\032\014\n\nAnchorInf" + - "o\032\r\n\013AnchorLevel\032\024\n\022AuthenticationInfo\032\r" + - "\n\013AuthorStats\032\010\n\006Border\032\021\n\017BrotherhoodIn" + - "fo\032\375\003\n\010FansClub\022)\n\004data\030\001 \001(\0132\033.User.Fan" + - "sClub.FansClubData\0222\n\npreferData\030\002 \003(\0132\036" + - ".User.FansClub.PreferDataEntry\032N\n\017Prefer" + - "DataEntry\022\013\n\003key\030\001 \001(\005\022*\n\005value\030\002 \001(\0132\033." + - "User.FansClub.FansClubData:\0028\001\032\301\002\n\014FansC" + - "lubData\022\020\n\010clubName\030\001 \001(\t\022\r\n\005level\030\002 \001(\005" + - "\022\032\n\022userFansClubStatus\030\003 \001(\005\0224\n\005badge\030\004 " + - "\001(\0132%.User.FansClub.FansClubData.UserBad" + - "ge\022\030\n\020availableGiftIds\030\005 \003(\003\022\020\n\010anchorId" + - "\030\006 \001(\003\032\221\001\n\tUserBadge\022?\n\005icons\030\001 \003(\01320.Us" + - "er.FansClub.FansClubData.UserBadge.Icons" + - "Entry\022\r\n\005title\030\002 \001(\t\0324\n\nIconsEntry\022\013\n\003ke" + - "y\030\001 \001(\005\022\025\n\005value\030\002 \001(\0132\006.Image:\0028\001\032\017\n\rFa" + - "nsGroupInfo\032y\n\nFollowInfo\022\026\n\016followingCo" + - "unt\030\001 \001(\003\022\025\n\rfollowerCount\030\002 \001(\003\022\024\n\014foll" + - "owStatus\030\003 \001(\003\022\022\n\npushStatus\030\004 \001(\003\022\022\n\nre" + - "markName\030\005 \001(\t\032\017\n\rJAccreditInfo\032\020\n\016Noble" + - "LevelInfo\032\t\n\007OwnRoom\032\305\006\n\010PayGrade\022\031\n\021tot" + - "alDiamondCount\030\001 \001(\003\022\033\n\013diamondIcon\030\002 \001(" + - "\0132\006.Image\022\014\n\004name\030\003 \001(\t\022\024\n\004icon\030\004 \001(\0132\006." + - "Image\022\020\n\010nextName\030\005 \001(\t\022\r\n\005level\030\006 \001(\003\022\030" + - "\n\010nextIcon\030\007 \001(\0132\006.Image\022\023\n\013nextDiamond\030" + - "\010 \001(\003\022\022\n\nnowDiamond\030\t \001(\003\022\033\n\023thisGradeMi" + - "nDiamond\030\n \001(\003\022\033\n\023thisGradeMaxDiamond\030\013 " + - "\001(\003\022\025\n\rpayDiamondBak\030\014 \001(\003\022\025\n\rgradeDescr" + - "ibe\030\r \001(\t\022/\n\rgradeIconList\030\016 \003(\0132\030.User." + - "PayGrade.GradeIcon\022\026\n\016screenChatType\030\017 \001" + - "(\003\022\026\n\006imIcon\030\020 \001(\0132\006.Image\022\037\n\017imIconWith" + - "Level\030\021 \001(\0132\006.Image\022\030\n\010liveIcon\030\022 \001(\0132\006." + - "Image\022\"\n\022newImIconWithLevel\030\023 \001(\0132\006.Imag" + - "e\022\033\n\013newLiveIcon\030\024 \001(\0132\006.Image\022\032\n\022upgrad" + - "eNeedConsume\030\025 \001(\003\022\026\n\016nextPrivileges\030\026 \001" + - "(\t\022\032\n\nbackground\030\027 \001(\0132\006.Image\022\036\n\016backgr" + - "oundBack\030\030 \001(\0132\006.Image\022\r\n\005score\030\031 \001(\003\022\024\n" + - "\013gradeBanner\030\351\007 \001(\t\022 \n\017profileDialogBg\030\352" + - "\007 \001(\0132\006.Image\022$\n\023profileDialogBgBack\030\353\007 " + - "\001(\0132\006.Image\032W\n\tGradeIcon\022\024\n\004icon\030\001 \001(\0132\006" + - ".Image\022\023\n\013iconDiamond\030\002 \001(\003\022\r\n\005level\030\003 \001" + - "(\003\022\020\n\010levelStr\030\004 \001(\t\032\t\n\007PoiInfo\032\024\n\022Profi" + - "leStyleParams\032\013\n\tSubscribe\032\n\n\010UserAttr\032\017" + - "\n\rUserDressInfo\032\r\n\013UserVIPInfo\032\013\n\tUserSt" + - "ats\032\r\n\013XiguaParamsB8\n6tech.ordinaryroad." + - "live.chat.client.douyin.protobuf.dtob\006pr" + - "oto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), - }); - internal_static_User_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_User_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_descriptor, - new java.lang.String[] { "Id", "ShortId", "Nickname", "Gender", "Signature", "Level", "Birthday", "Telephone", "AvatarThumb", "AvatarMedium", "AvatarLarge", "Verified", "Experience", "City", "Status", "CreateTime", "ModifyTime", "Secret", "ShareQrcodeUri", "IncomeSharePercent", "BadgeImageListList", "FollowInfo", "PayGrade", "FansClub", "Border", "SpecialId", "AvatarBorder", "Medal", "RealTimeIconsList", "NewRealTimeIconsList", "TopVipNo", "UserAttr", "OwnRoom", "PayScore", "TicketCount", "AnchorInfo", "LinkMicStats", "DisplayId", "WithCommercePermission", "WithFusionShopEntry", "TotalRechargeDiamondCount", "WebcastAnchorLevel", "VerifiedContent", "AuthorStats", "TopFansList", "SecUid", "UserRole", "XiguaInfo", "ActivityReward", "NobleInfo", "BrotherhoodInfo", "PersonalCard", "AuthenticationInfo", "AuthorizationInfo", "AdversaryAuthorizationInfo", "PoiInfo", "MediaBadgeImageListList", "AdversaryUserStatus", "UserVipInfo", "CommerceWebcastConfigIdsList", "BadgeImageListV2List", "LocationCity", "FansGroupInfo", "RemarkName", "MysteryMan", "WebRid", "DesensitizedNickname", "JAccreditInfo", "Subscribe", "IsAnonymous", "ConsumeDiamondLevel", "WebcastUid", "ProfileStyleParams", "UserDressInfo", "AllowBeLocated", "AllowFindByContacts", "AllowOthersDownloadVideo", "AllowOthersDownloadWhenSharingVideo", "AllowShareShowProfile", "AllowShowInGossip", "AllowShowMyAction", "AllowStrangeComment", "AllowUnfollowerComment", "AllowUseLinkmic", "AnchorLevel", "AvatarJpg", "BgImgUrl", "BirthdayDescription", "BirthdayValid", "BlockStatus", "CommentRestrict", "Constellation", "DisableIchat", "EnableIchatImg", "Exp", "FanTicketCount", "FoldStrangerChat", "FollowStatus", "HotsoonVerified", "HotsoonVerifiedReason", "IchatRestrictType", "IdStr", "IsFollower", "IsFollowing", "NeedProfileGuide", "PayScores", "PushCommentStatus", "PushDigg", "PushFollow", "PushFriendAction", "PushIchat", "PushStatus", "PushVideoPost", "PushVideoRecommend", "Stats", "VerifiedMobile", "VerifiedReason", "WithCarManagementPermission", "AgeRange", "WatchDurationMonth", }); - internal_static_User_ActivityInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(0); - internal_static_User_ActivityInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_ActivityInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_AnchorInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(1); - internal_static_User_AnchorInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_AnchorInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_AnchorLevel_descriptor = - internal_static_User_descriptor.getNestedTypes().get(2); - internal_static_User_AnchorLevel_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_AnchorLevel_descriptor, - new java.lang.String[] { }); - internal_static_User_AuthenticationInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(3); - internal_static_User_AuthenticationInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_AuthenticationInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_AuthorStats_descriptor = - internal_static_User_descriptor.getNestedTypes().get(4); - internal_static_User_AuthorStats_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_AuthorStats_descriptor, - new java.lang.String[] { }); - internal_static_User_Border_descriptor = - internal_static_User_descriptor.getNestedTypes().get(5); - internal_static_User_Border_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_Border_descriptor, - new java.lang.String[] { }); - internal_static_User_BrotherhoodInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(6); - internal_static_User_BrotherhoodInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_BrotherhoodInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_FansClub_descriptor = - internal_static_User_descriptor.getNestedTypes().get(7); - internal_static_User_FansClub_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansClub_descriptor, - new java.lang.String[] { "Data", "PreferData", }); - internal_static_User_FansClub_PreferDataEntry_descriptor = - internal_static_User_FansClub_descriptor.getNestedTypes().get(0); - internal_static_User_FansClub_PreferDataEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansClub_PreferDataEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - internal_static_User_FansClub_FansClubData_descriptor = - internal_static_User_FansClub_descriptor.getNestedTypes().get(1); - internal_static_User_FansClub_FansClubData_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansClub_FansClubData_descriptor, - new java.lang.String[] { "ClubName", "Level", "UserFansClubStatus", "Badge", "AvailableGiftIds", "AnchorId", }); - internal_static_User_FansClub_FansClubData_UserBadge_descriptor = - internal_static_User_FansClub_FansClubData_descriptor.getNestedTypes().get(0); - internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansClub_FansClubData_UserBadge_descriptor, - new java.lang.String[] { "Icons", "Title", }); - internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor = - internal_static_User_FansClub_FansClubData_UserBadge_descriptor.getNestedTypes().get(0); - internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor, - new java.lang.String[] { "Key", "Value", }); - internal_static_User_FansGroupInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(8); - internal_static_User_FansGroupInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FansGroupInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_FollowInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(9); - internal_static_User_FollowInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_FollowInfo_descriptor, - new java.lang.String[] { "FollowingCount", "FollowerCount", "FollowStatus", "PushStatus", "RemarkName", }); - internal_static_User_JAccreditInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(10); - internal_static_User_JAccreditInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_JAccreditInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_NobleLevelInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(11); - internal_static_User_NobleLevelInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_NobleLevelInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_OwnRoom_descriptor = - internal_static_User_descriptor.getNestedTypes().get(12); - internal_static_User_OwnRoom_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_OwnRoom_descriptor, - new java.lang.String[] { }); - internal_static_User_PayGrade_descriptor = - internal_static_User_descriptor.getNestedTypes().get(13); - internal_static_User_PayGrade_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_PayGrade_descriptor, - new java.lang.String[] { "TotalDiamondCount", "DiamondIcon", "Name", "Icon", "NextName", "Level", "NextIcon", "NextDiamond", "NowDiamond", "ThisGradeMinDiamond", "ThisGradeMaxDiamond", "PayDiamondBak", "GradeDescribe", "GradeIconList", "ScreenChatType", "ImIcon", "ImIconWithLevel", "LiveIcon", "NewImIconWithLevel", "NewLiveIcon", "UpgradeNeedConsume", "NextPrivileges", "Background", "BackgroundBack", "Score", "GradeBanner", "ProfileDialogBg", "ProfileDialogBgBack", }); - internal_static_User_PayGrade_GradeIcon_descriptor = - internal_static_User_PayGrade_descriptor.getNestedTypes().get(0); - internal_static_User_PayGrade_GradeIcon_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_PayGrade_GradeIcon_descriptor, - new java.lang.String[] { "Icon", "IconDiamond", "Level", "LevelStr", }); - internal_static_User_PoiInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(14); - internal_static_User_PoiInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_PoiInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_ProfileStyleParams_descriptor = - internal_static_User_descriptor.getNestedTypes().get(15); - internal_static_User_ProfileStyleParams_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_ProfileStyleParams_descriptor, - new java.lang.String[] { }); - internal_static_User_Subscribe_descriptor = - internal_static_User_descriptor.getNestedTypes().get(16); - internal_static_User_Subscribe_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_Subscribe_descriptor, - new java.lang.String[] { }); - internal_static_User_UserAttr_descriptor = - internal_static_User_descriptor.getNestedTypes().get(17); - internal_static_User_UserAttr_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_UserAttr_descriptor, - new java.lang.String[] { }); - internal_static_User_UserDressInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(18); - internal_static_User_UserDressInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_UserDressInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_UserVIPInfo_descriptor = - internal_static_User_descriptor.getNestedTypes().get(19); - internal_static_User_UserVIPInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_UserVIPInfo_descriptor, - new java.lang.String[] { }); - internal_static_User_UserStats_descriptor = - internal_static_User_descriptor.getNestedTypes().get(20); - internal_static_User_UserStats_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_UserStats_descriptor, - new java.lang.String[] { }); - internal_static_User_XiguaParams_descriptor = - internal_static_User_descriptor.getNestedTypes().get(21); - internal_static_User_XiguaParams_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_User_XiguaParams_descriptor, - new java.lang.String[] { }); - tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto deleted file mode 100644 index a09a395b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; -import "User.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message Common { - string method = 1; - uint64 msgId = 2; - uint64 roomId = 3; - uint64 createTime = 4; - uint32 monitor = 5; - bool isShowMsg = 6; - string describe = 7; - // DisplayText displayText = 8; - uint64 foldType = 9; - uint64 anchorFoldType = 10; - uint64 priorityScore = 11; - string logId = 12; - string msgProcessFilterK = 13; - string msgProcessFilterV = 14; - User user = 15; - // Room room = 16; - uint64 anchorFoldTypeV2 = 17; - uint64 processAtSeiTimeMs = 18; - uint64 randomDispatchMs = 19; - bool isDispatch = 20; - uint32 channelId = 21; - uint64 diffSei2absSecond = 22; - uint64 anchorFoldDuration = 23; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto deleted file mode 100644 index de0b28a5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message DoubleLikeDetail { - bool doubleFlag = 1; - uint32 seqId = 2; - uint32 renewalsNum = 3; - uint32 triggersNum = 4; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto deleted file mode 100644 index 3b8db33a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message GiftIMPriority { - repeated uint64 queue_sizes_list = 1; - uint64 self_queue_priority = 2; - uint64 priority = 3; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto deleted file mode 100644 index 3031acca..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto +++ /dev/null @@ -1,66 +0,0 @@ -syntax = "proto3"; -import "Image.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message GiftStruct { - Image image = 1; - string describe = 2; - bool notify = 3; - uint64 duration = 4; - uint64 id = 5; - // GiftStructFansClubInfo fansclubInfo = 6; - bool for_linkmic = 7; - bool doodle = 8; - bool for_fansclub = 9; - bool combo = 10; - uint32 type = 11; - uint32 diamond_count = 12; - bool is_displayed_on_panel = 13; - uint64 primary_effect_id = 14; - Image gift_label_icon = 15; - string name = 16; - string region = 17; - string manual = 18; - bool for_custom = 19; - map specialEffectsMap = 20; - Image icon = 21; - uint32 action_type = 22; - int32 watermelonSeeds = 23; - string goldEffect = 24; - // repeated LuckyMoneyGiftMeta subs = 25; - int64 goldenBeans = 26; - int64 honorLevel = 27; - int32 itemType = 28; - string schemeUrl = 29; - // GiftPanelOperation giftOperation = 30; - string eventName = 31; - int64 nobleLevel = 32; - string guideUrl = 33; - bool punishMedicine = 34; - bool forPortal = 35; - string businessText = 36; - bool cnyGift = 37; - int64 appId = 38; - int64 vipLevel = 39; - bool isGray = 40; - string graySchemeUrl = 41; - int64 giftScene = 42; - // GiftBanner giftBanner = 43; - repeated string triggerWords = 44; - // repeated GiftBuffInfo giftBuffInfos = 45; - bool forFirstRecharge = 46; - Image dynamicImgForSelected = 47; - int32 afterSendAction = 48; - int64 giftOfflineTime = 49; - string topBarText = 50; - Image topRightAvatar = 51; - string bannerSchemeUrl = 52; - bool isLocked = 53; - int64 reqExtraType = 54; - repeated int64 assetIds = 55; - // GiftPreviewInfo giftPreviewInfo = 56; - // GiftTip giftTip = 57; - int32 needSweepLightCount = 58; - // repeated GiftGroupInfo groupInfo = 59; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto deleted file mode 100644 index 1f487296..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto +++ /dev/null @@ -1,29 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message Image { - repeated string urlListList = 1; - string uri = 2; - int64 height = 3; - int64 width = 4; - string avgColor = 5; - int32 imageType = 6; - string openWebUrl = 7; - Content content = 8; - bool isAnimated = 9; - repeated NinePatchSetting flexSettingListList = 10; - repeated NinePatchSetting textSettingListList = 11; - - message Content { - string name = 1; - string fontColor = 2; - int64 level = 3; - string alternativeText = 4; - } - - message NinePatchSetting{ - - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto deleted file mode 100644 index 5caa0e47..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto +++ /dev/null @@ -1,8 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message PatternRef { - string key = 1; - string default_pattern = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto deleted file mode 100644 index 01358fd1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "Image.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message PublicAreaCommon { - Image user_label = 1; - uint64 user_consume_in_room = 2; - uint64 user_send_gift_cnt_in_room = 3; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto deleted file mode 100644 index 60f985cf..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -import "TextFormat.proto"; -import "TextPiece.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message Text { - string key = 1; - string default_patter = 2; - TextFormat default_format = 3; - TextPiece pieces_list = 4; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto deleted file mode 100644 index 662e1682..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -import "TextEffectDetail.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextEffect { - TextEffectDetail portrait = 1; - TextEffectDetail landscape = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto deleted file mode 100644 index 6d1146a4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -import "Image.proto"; -import "Text.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextEffectDetail { - Text text = 1; - uint32 text_font_size = 2; - Image background = 3; - uint32 start = 4; - uint32 duration = 5; - uint32 x = 6; - uint32 y = 7; - uint32 width = 8; - uint32 height = 9; - uint32 shadow_dx = 10; - uint32 shadow_dy = 11; - uint32 shadow_radius = 12; - string shadow_color = 13; - string stroke_color = 14; - uint32 stroke_width = 15; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto deleted file mode 100644 index 8ca8ab55..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextFormat { - string color = 1; - bool bold = 2; - bool italic = 3; - uint32 weight = 4; - uint32 italic_angle = 5; - uint32 font_size = 6; - bool use_heigh_light_color = 7; - bool use_remote_clor = 8; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto deleted file mode 100644 index e76d1ce4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto +++ /dev/null @@ -1,20 +0,0 @@ -syntax = "proto3"; -import "TextFormat.proto"; -import "TextPieceImage.proto"; -import "TextPiecePatternRef.proto"; -import "TextPieceHeart.proto"; -import "TextPieceGift.proto"; -import "TextPieceUser.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPiece { - bool type = 1; - TextFormat format = 2; - string string_value = 3; - TextPieceUser user_value = 4; - TextPieceGift gift_value = 5; - TextPieceHeart heart_value = 6; - TextPiecePatternRef pattern_ref_value = 7; - TextPieceImage image_value = 8; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto deleted file mode 100644 index 5ed59e23..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -import "PatternRef.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPieceGift { - uint64 gift_id = 1; - PatternRef name_ref = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto deleted file mode 100644 index 6528fd14..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto +++ /dev/null @@ -1,7 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPieceHeart { - string color = 1; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto deleted file mode 100644 index 6f507145..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -import "Image.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPieceImage { - Image image = 1; - float scaling_rate = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto deleted file mode 100644 index c3a51aa9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto +++ /dev/null @@ -1,8 +0,0 @@ -syntax = "proto3"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPiecePatternRef { - string key = 1; - string default_pattern = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto deleted file mode 100644 index c46ae9ad..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -import "User.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message TextPieceUser { - User user = 1; - bool with_colon = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto deleted file mode 100644 index 4a296841..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto +++ /dev/null @@ -1,272 +0,0 @@ -syntax = "proto3"; -import "Image.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; - -message User { - uint64 id = 1; - uint64 shortId = 2; - string nickname = 3; - uint32 gender = 4; - string signature = 5; - uint32 level = 6; - uint64 birthday = 7; - string telephone = 8; - Image avatarThumb = 9; - Image avatarMedium = 10; - Image avatarLarge = 11; - bool verified = 12; - int32 experience = 13; - string city = 14; - int32 status = 15; - int64 createTime = 16; - int64 modifyTime = 17; - int32 secret = 18; - string shareQrcodeUri = 19; - int32 incomeSharePercent = 20; - Image badgeImageListList = 21; - FollowInfo followInfo = 22; - PayGrade payGrade = 23; - FansClub fansClub = 24; - Border border = 25; - string specialId = 26; - Image avatarBorder = 27; - Image medal = 28; - repeated Image realTimeIconsList = 29; - repeated Image newRealTimeIconsList = 30; - int64 topVipNo = 31; - UserAttr userAttr = 32; - OwnRoom ownRoom = 33; - int64 payScore = 34; - int64 ticketCount = 35; - AnchorInfo anchorInfo = 36; - int32 linkMicStats = 37; - string displayId = 38; - bool withCommercePermission = 39; - bool withFusionShopEntry = 40; - int64 totalRechargeDiamondCount = 41; - AnchorLevel webcastAnchorLevel = 42; - string verifiedContent = 43; - AuthorStats authorStats = 44; - repeated User topFansList = 45; - string secUid = 46; - int32 userRole = 47; - XiguaParams xiguaInfo = 48; - ActivityInfo activityReward = 49; - NobleLevelInfo nobleInfo = 50; - BrotherhoodInfo brotherhoodInfo = 51; - Image personalCard = 52; - AuthenticationInfo authenticationInfo = 53; - int32 authorizationInfo = 54; - int32 adversaryAuthorizationInfo = 55; - PoiInfo poiInfo = 56; - Image mediaBadgeImageListList = 57; - int32 adversaryUserStatus = 58; - UserVIPInfo userVipInfo = 59; - repeated int64 commerceWebcastConfigIdsList = 60; - Image badgeImageListV2List = 61; - // IndustryCertification industryCertification = 62; - string locationCity = 63; - FansGroupInfo fansGroupInfo = 64; - string remarkName = 65; - int32 mysteryMan = 66; - string webRid = 67; - string desensitizedNickname = 68; - JAccreditInfo jAccreditInfo = 69; - Subscribe subscribe = 70; - bool isAnonymous = 71; - int32 consumeDiamondLevel = 72; - string webcastUid = 73; - ProfileStyleParams profileStyleParams = 74; - UserDressInfo userDressInfo = 75; - bool allowBeLocated = 1001; - bool allowFindByContacts = 1002; - bool allowOthersDownloadVideo = 1003; - bool allowOthersDownloadWhenSharingVideo = 1004; - bool allowShareShowProfile = 1005; - bool allowShowInGossip = 1006; - bool allowShowMyAction = 1007; - bool allowStrangeComment = 1008; - bool allowUnfollowerComment = 1009; - bool allowUseLinkmic = 1010; - AnchorLevel anchorLevel = 1011; - Image avatarJpg = 1012; - string bgImgUrl = 1013; - string birthdayDescription = 1014; - bool birthdayValid = 1015; - int32 blockStatus = 1016; - int32 commentRestrict = 1017; - string constellation = 1018; - int32 disableIchat = 1019; - int64 enableIchatImg = 1020; - int32 exp = 1021; - int64 fanTicketCount = 1022; - bool foldStrangerChat = 1023; - int64 followStatus = 1024; - bool hotsoonVerified = 1025; - string hotsoonVerifiedReason = 1026; - int32 ichatRestrictType = 1027; - string idStr = 1028; - bool isFollower = 1029; - bool isFollowing = 1030; - bool needProfileGuide = 1031; - int64 payScores = 1032; - bool pushCommentStatus = 1033; - bool pushDigg = 1034; - bool pushFollow = 1035; - bool pushFriendAction = 1036; - bool pushIchat = 1037; - bool pushStatus = 1038; - bool pushVideoPost = 1039; - bool pushVideoRecommend = 1040; - UserStats stats = 1041; - bool verifiedMobile = 1042; - string verifiedReason = 1043; - bool withCarManagementPermission = 1044; - int32 ageRange = 1045; - int64 watchDurationMonth = 1046; - - message ActivityInfo{ - - } - - message AnchorInfo { - - } - - message AnchorLevel{ - - } - - message AuthenticationInfo{ - - } - - message AuthorStats{ - - } - - message Border{ - - } - - message BrotherhoodInfo{ - - } - - message FansClub { - FansClubData data = 1; - map preferData = 2; - - message FansClubData { - string clubName = 1; - int32 level = 2; - int32 userFansClubStatus = 3; - UserBadge badge = 4; - repeated int64 availableGiftIds = 5; - int64 anchorId = 6; - - message UserBadge { - map icons = 1; - string title = 2; - } - - } - } - - message FansGroupInfo{ - - } - - message FollowInfo { - int64 followingCount = 1; - int64 followerCount = 2; - int64 followStatus = 3; - int64 pushStatus = 4; - string remarkName = 5; - } - - message JAccreditInfo{ - - } - - message NobleLevelInfo{ - - } - - message OwnRoom { - - } - - message PayGrade { - int64 totalDiamondCount = 1; - Image diamondIcon = 2; - string name = 3; - Image icon = 4; - string nextName = 5; - int64 level = 6; - Image nextIcon = 7; - int64 nextDiamond = 8; - int64 nowDiamond = 9; - int64 thisGradeMinDiamond = 10; - int64 thisGradeMaxDiamond = 11; - int64 payDiamondBak = 12; - string gradeDescribe = 13; - repeated GradeIcon gradeIconList = 14; - int64 screenChatType = 15; - Image imIcon = 16; - Image imIconWithLevel = 17; - Image liveIcon = 18; - Image newImIconWithLevel = 19; - Image newLiveIcon = 20; - int64 upgradeNeedConsume = 21; - string nextPrivileges = 22; - Image background = 23; - Image backgroundBack = 24; - int64 score = 25; - // GradeBuffInfo buffInfo = 26; - string gradeBanner = 1001; - Image profileDialogBg = 1002; - Image profileDialogBgBack = 1003; - - message GradeIcon{ - Image icon = 1; - int64 iconDiamond = 2; - int64 level = 3; - string levelStr = 4; - } - - } - - message PoiInfo{ - - } - - message ProfileStyleParams{ - - } - - message Subscribe{ - - } - - message UserAttr{ - - } - - message UserDressInfo{ - - } - - message UserVIPInfo { - - } - - message UserStats{ - - } - - message XiguaParams{ - - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto deleted file mode 100644 index 41a71eb4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "Douyin_cmd_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_cmd_msg { - string method = 1; - bytes payload = 2; - int64 msg_id = 3; - int32 msg_type = 4; - int64 offset = 5; - bool need_wrds_store = 6; - int64 wrds_version = 7; - string wrds_sub_key = 8; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto deleted file mode 100644 index 4866a3b4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; -import "Common.proto"; -import "User.proto"; -import "Image.proto"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "Douyin_webcast_chat_message_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_webcast_chat_message_msg { - Common common = 1; - User user = 2; - string content = 3; - bool visible_to_sender = 4; - Image background_image = 5; - string full_screen_text_color = 6; - Image background_image_v2 = 7; - // PublicAreaCommon public_area_common = 9; - Image gift_image = 10; - uint64 agree_msg_id = 11; - uint32 priority_level = 12; - // LandscapeAreaCommon landscape_area_common = 13; - uint64 event_time = 15; - bool send_review = 16; - bool from_intercom = 17; - bool intercom_hide_user_card = 18; - // repeated string chatTagsList = 19; - string chat_by = 20; - uint32 individual_chat_priority = 21; - // Text rtf_content = 22 ; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto deleted file mode 100644 index fcd1d786..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto +++ /dev/null @@ -1,52 +0,0 @@ -syntax = "proto3"; -import "Common.proto"; -import "User.proto"; -import "TextEffect.proto"; -import "Text.proto"; -import "GiftIMPriority.proto"; -import "GiftStruct.proto"; -import "PublicAreaCommon.proto"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "Douyin_webcast_gift_message_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_webcast_gift_message_msg { - Common common = 1; - uint64 long_gift_id = 2; - uint64 fan_ticket_count = 3; - uint64 group_count = 4; - uint64 repeat_count = 5; - uint64 combo_count = 6; - User user = 7; - User to_user = 8 ; - uint32 repeat_end = 9 ; - TextEffect text_effect = 10 ; - uint64 group_id = 11 ; - uint64 income_taskgifts = 12 ; - uint64 room_fan_ticket_count = 13 ; - GiftIMPriority priority = 14 ; - GiftStruct gift = 15 ; - string log_id = 16 ; - uint64 send_type = 17 ; - PublicAreaCommon public_area_common = 18 ; - Text tray_display_text = 19 ; - uint64 banned_display_effects = 20 ; - // GiftTrayInfo trayInfo = 21; - // AssetEffectMixInfo assetEffectMixInfo = 22; - bool display_for_self = 25; - string interact_gift_info = 26; - string diy_item_info = 27; - repeated uint64 min_asset_set_list = 28; - uint64 total_count = 29; - uint32 client_gift_source = 30; - // AnchorGiftData anchorGift = 31; - repeated uint64 to_user_ids_list = 32; - uint64 send_timet = 33; - uint64 force_display_effectst = 34; - string trace_id = 35; - uint64 effect_display_ts = 36; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto deleted file mode 100644 index 2a617397..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -import "Common.proto"; -import "User.proto"; -import "DoubleLikeDetail.proto"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "douyin_webcast_like_message_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_webcast_like_message_msg { - Common common = 1; - uint64 count = 2; - uint64 total = 3; - uint64 color = 4; - User user = 5; - string icon = 6; - DoubleLikeDetail doubleLikeDetail = 7; - // DisplayControlInfo displayControlInfo = 8; - uint64 linkmicGuestUid = 9; - string scene = 10; - // PicoDisplayInfo picoDisplayInfo = 11; - // = 12; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto deleted file mode 100644 index f892a74c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto +++ /dev/null @@ -1,37 +0,0 @@ -syntax = "proto3"; -import "Common.proto"; -import "User.proto"; -import "Image.proto"; -import "Text.proto"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "Douyin_webcast_member_message_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_webcast_member_message_msg { - Common common = 1; - User user = 2; - uint64 memberCount = 3; - User operator = 4; - bool isSetToAdmin = 5; - bool isTopUser = 6; - int64 rankScore = 7; - int64 topUserNo = 8; - int64 enterType = 9; - int64 action = 10; - string actionDescription = 11; - int64 userId = 12; - // EffectConfig effectConfig = 13; - string popStr = 14; - // EffectConfig enterEffectConfig = 15; - Image backgroundImage = 16; - Image backgroundImageV2 = 17; - Text anchorDisplayText = 18; - // PublicAreaCommon publicAreaCommon = 19; - int64 userEnterTipType = 20; - int64 anchorEnterTipType = 21; - map buriedPointMap = 22; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto deleted file mode 100644 index fe01e9ab..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "Douyin_websocket_frameProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -message douyin_websocket_frame { - uint64 seq_id = 1; - uint64 log_id = 2; - uint64 service = 3; - uint64 method = 4; - map headers_list = 5; - string payload_encoding = 6; - string payload_type = 7; - bytes payload = 8; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto deleted file mode 100644 index 808bb2fb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; - -package tech.ordinaryroad.live.chat.client.douyin.protobuf; - -option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; -option java_outer_classname = "douyin_websocket_frame_msgProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -import "douyin_cmd_msg.proto"; - -message douyin_websocket_frame_msg { - repeated douyin_cmd_msg messages_list = 1; - string cursor = 2; - uint64 fetch_interval = 3; - uint64 now = 4; - string internal_ext = 5; - uint32 fetch_type = 6; - map route_params = 7; - uint64 heartbeat_duration = 8; - bool need_ack = 9; - string push_server = 10; - string live_cursor = 11; - bool history_no_more = 12; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java deleted file mode 100644 index fe217bcc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyin.api; - -import org.junit.jupiter.api.Test; - -/** - * @author mjz - * @date 2024/1/3 - */ -class DouyinApisTest { - - @Test - void roomInit() { - DouyinApis.roomInit("886419461662"); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java deleted file mode 100644 index a80ec93d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java +++ /dev/null @@ -1,93 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyin.client; - -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; -import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; -import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; -import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; - -/** - * @author mjz - * @date 2024/1/2 - */ -@Slf4j -class DouyinLiveChatClientTest { - - static Object lock = new Object(); - DouyinLiveChatClient client; - - @Test - void example() throws InterruptedException { - String cookie = System.getenv("cookie"); - log.error("cookie: {}", cookie); - DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder() - // TODO 浏览器Cookie - .cookie(cookie) - .roomId("renyixu1989") - .roomId("567789235524") - .roomId("166163409118") - .roomId("722266687616") - .roomId("o333") - .roomId("qilongmusic") - .roomId("yimei20210922") - .build(); - - client = new DouyinLiveChatClient(config, new IDouyinMsgListener() { - @Override - public void onMsg(IMsg msg) { - // log.debug("收到{}消息 {}", msg.getClass(), msg); - } - - @Override - public void onCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { - // log.debug("收到CMD消息{} {}", cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { - log.debug("收到其他CMD消息 {}", cmd); - } - - @Override - public void onUnknownCmd(String cmdString, IMsg msg) { - log.debug("收到未知CMD消息 {}", cmdString); - } - - @Override - public void onDanmuMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinDanmuMsg msg) { - log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinGiftMsg msg) { - log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); - } - - @Override - public void onLikeMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinLikeMsg msg) { - log.info("{} 收到点赞 [{}] {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - - @Override - public void onEnterRoomMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinEnterRoomMsg msg) { - log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - }); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md deleted file mode 100644 index 0b71bda0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md +++ /dev/null @@ -1,52 +0,0 @@ -### 序列化 - -#### 序列化基本数据类型 - -1. escape(key) -2. escape(value) -3. key@=value/ - -#### 序列化Map - -1. escape(key) -2. value for each - 1. escape(key) - 2. escape(value) - 3. escape(key@=value/) -3. escape(value) -4. key@=value/ - -### 反序列化 - -#### 反序列化基本数据类型 - -1. spilt("/"): - type@=chatmsg - -2. split("@="): - 1. key: unescape(key) = el - 2. unescape(value).endsWith("/") = false - 2.1 value = chatmsg - -#### 反序列化Map - -1. spilt("/"): - el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS - -2. split("@="): - 1. key: unescape = el - 2. unescape(value).endsWith("/") = true - eid@A=1/etp@A=1/sc@A=1/ - 1. split("/") - eid@A=1 - etp@A=1 - sc@A=1 - 2. unescape: - eid@=1 - etp@=1 - sc@=1 - 3. for each - 1. split("@=") - 2. unescape(key) - 3. unescape(value) - 4. value: map \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml deleted file mode 100644 index d051f935..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - live-chat-clients - ${revision} - ../pom.xml - - jar - - live-chat-client-douyu - live-chat-client-douyu - - - UTF-8 - - - - - org.ruoyi - live-chat-client-servers-netty-client - - - - ch.qos.logback - logback-classic - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java deleted file mode 100644 index 32c53664..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.api; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.ReUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.digest.MD5; -import cn.hutool.http.*; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.Cleanup; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; - -import java.util.List; -import java.util.Map; - -/** - * API简易版 - * - * @author mjz - * @date 2023/5/5 - */ -@Slf4j -public class DouyuApis { - - public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); - public static final String PATTERN_BODY_ROOM_ID = "\\$ROOM\\.room_id\\D+(\\d+)"; - public static final String KEY_REDIRECT_LOCATION_RID = "rid"; - public static final String KEY_COOKIE_DY_DID = "dy_did"; - public static final String KEY_COOKIE_ACF_UID = "acf_uid"; - public static final String KEY_COOKIE_ACF_STK = "acf_stk"; - public static final String KEY_COOKIE_ACF_LTKID = "acf_ltkid"; - public static final String API_AVATAR = "https://apic.douyucdn.cn/upload/"; - // https://webconf.douyucdn.cn/resource/common/gift/flash/gift_effect.json - // https://webconf.douyucdn.cn/resource/common/gift/common_config_v2.json - // https://webconf.douyucdn.cn/resource/common/prop_gift_list/prop_gift_config.json - // 用PID查询礼物信息:https://gift.douyucdn.cn/api/prop/v1/web/single?pid= - // 查询房间礼物列表:https://gift.douyucdn.cn/api/gift/v3/web/list?rid= - public static final String API_GIFT_LIST = "https://gift.douyucdn.cn/api/gift/v3/web/list?rid="; - public static final String API_PROP_SINGLE = "https://gift.douyucdn.cn/api/prop/v1/web/single?pid="; - public static final String API_AVATAR_PREFIX_SMALL = "_small.jpg"; - public static final String API_AVATAR_PREFIX_MIDDLE = "_middle.jpg"; - public static final String API_AVATAR_PREFIX_BIG = "_big.jpg"; - - public static String getAvatarUrl(List list, String prefix) { - if (CollUtil.isEmpty(list) || list.size() < 3) { - return StrUtil.EMPTY; - } - return API_AVATAR + CollUtil.join(list, "/") + prefix; - } - - public static String getSmallAvatarUrl(List list) { - return getAvatarUrl(list, API_AVATAR_PREFIX_SMALL); - } - - public static long getRealRoomId(long roomId, String cookie) { - String realRoomIdString = null; - @Cleanup - HttpResponse execute = createGetRequest("https://www.douyu.com/" + roomId, cookie).execute(); - if (execute.getStatus() == HttpStatus.HTTP_NOT_FOUND) { - throw new BaseException("获取" + roomId + "真实房间ID失败"); - } - if (HttpStatus.isRedirected(execute.getStatus())) { - String location = execute.header(Header.LOCATION); - Map paramMap = HttpUtil.decodeParamMap(location, null); - if (paramMap.containsKey(KEY_REDIRECT_LOCATION_RID)) { - realRoomIdString = paramMap.get(KEY_REDIRECT_LOCATION_RID); - } - } - if (StrUtil.isBlank(realRoomIdString)) { - String body = execute.body(); - String matchString = ReUtil.get(PATTERN_BODY_ROOM_ID, body, 1); - if (StrUtil.isNotBlank(matchString)) { - realRoomIdString = matchString; - } - } - long realRoomId = roomId; - if (!StrUtil.isBlank(realRoomIdString)) { - try { - realRoomId = NumberUtil.parseLong(realRoomIdString); - } catch (Exception e) { - throw new BaseException("获取" + roomId + "真实房间ID失败"); - } - } - return realRoomId; - } - - public static long getRealRoomId(long roomId) { - return getRealRoomId(roomId, null); - } - - public static JsonNode getServerInfo(long roomId, String cookie) { - @Cleanup - HttpResponse execute = createPostRequest("https://www.douyu.com/lapi/live/gateway/web/" + roomId + "?isH5=1", cookie).execute(); - return responseInterceptor(execute.body()); - } - - public static JsonNode getServerInfo(long roomId) { - return getServerInfo(roomId, null); - } - - public static String getRandomWssUri(long roomId) { - JsonNode serverInfo = getServerInfo(roomId); - JsonNode wss = serverInfo.get("wss"); - JsonNode jsonNode = wss.get(RandomUtil.randomInt(0, wss.size())); - return "wss://" + jsonNode.get("domain").asText() + ":" + jsonNode.get("port").asInt(); - } - - public static JsonNode getGiftList(long roomId) { - @Cleanup - HttpResponse execute = createGetRequest(API_GIFT_LIST + roomId, null).execute(); - return responseInterceptor(execute.body()); - } - - @SneakyThrows - public static GiftPropSingle getGiftPropSingleByPid(String pid) { - @Cleanup - HttpResponse execute = createGetRequest(API_PROP_SINGLE + pid, null).execute(); - JsonNode jsonNode = responseInterceptor(execute.body()); - return BaseMsg.OBJECT_MAPPER.readValue(jsonNode.toString(), GiftPropSingle.class); - } - - public static final String vk_secret = "r5*^5;}2#${XF[h+;'./.Q'1;,-]f'p["; - - /** - * 参考: 斗鱼关注人数爬取 ── 字体反爬的攻与防 - * - * @param currentTimeSecs - * @param did - * @return - */ - public static String generateVk(long currentTimeSecs, String did) { - return MD5.create().digestHex(currentTimeSecs + vk_secret + did); - } - - public static String generateVk(String did) { - return generateVk(OrLocalDateTimeUtil.zonedCurrentTimeSecs(), did); - } - - public static HttpRequest createGetRequest(String url, String cookie) { - return HttpUtil.createGet(url) - .cookie(cookie); - } - - public static HttpRequest createPostRequest(String url, String cookie) { - return HttpUtil.createPost(url) - .cookie(cookie); - } - - private static JsonNode responseInterceptor(String responseString) { - try { - JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); - int code = jsonNode.get("error").asInt(); - if (code == 0) { - // 成功 - return jsonNode.get("data"); - } else { - throw new BaseException(jsonNode.get("msg").asText()); - } - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java deleted file mode 100644 index a780acaf..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.client; - -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.LoginresMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; - -import java.util.List; - -/** - * 直播间弹幕客户端{@link DouyuClientModeEnum#DANMU} - * - * @author mjz - * @date 2023/8/20 - */ -@Slf4j -public class DouyuDanmuLiveChatClient extends BaseDouyuLiveChatClient implements IDouyuMsgListener { - - public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(DouyuClientModeEnum.DANMU, config, msgListeners, connectionListener, workerGroup); - addMsgListener(DouyuDanmuLiveChatClient.this); - } - - public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(DouyuClientModeEnum.DANMU, config, msgListener, connectionListener, workerGroup); - addMsgListener(DouyuDanmuLiveChatClient.this); - } - - public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { - this(config, msgListener, null); - } - - public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config) { - this(config, null); - } - - @Override - public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - return new DouyuConnectionHandler(DouyuClientModeEnum.DANMU, - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), - DouyuDanmuLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public DouyuBinaryFrameHandler initBinaryFrameHandler() { - return new DouyuBinaryFrameHandler(msgListeners, DouyuDanmuLiveChatClient.this); - } - - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - if (msg instanceof LoginresMsg) { - // 1 type@=joingroup/rid@=4615502/gid@=1/ - send(getWebSocketFrameFactory(getConfig().getRoomId()).createJoingroup(), () -> { - // 2 type@=mrkl/ - send(getWebSocketFrameFactory(getConfig().getRoomId()).createHeartbeat(), () -> { - // 3 type@=sub/mt@=dayrk/ - send(getWebSocketFrameFactory(getConfig().getRoomId()).createSub()); - }); - }); - } - } - - @Override - public boolean removeMsgListener(IDouyuMsgListener msgListener) { - if (msgListener == DouyuDanmuLiveChatClient.this) { - return false; - } - return super.removeMsgListener(msgListener); - } - - @Override - public void removeAllMsgListeners() { - super.removeAllMsgListeners(); - addMsgListener(DouyuDanmuLiveChatClient.this); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java deleted file mode 100644 index 4e183a14..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.client; - -import cn.hutool.cache.impl.TimedCache; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.bean.copier.CopyOptions; -import cn.hutool.core.util.RandomUtil; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.MsgrepeaterproxylistMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -/** - * 直播间弹幕客户端 - * - * @author mjz - * @date 2023/8/20 - */ -@Slf4j -public class DouyuLiveChatClient extends DouyuWsLiveChatClient implements IDouyuMsgListener { - - /** - * 通用礼物缓存,过期时间1天 - * pid,Info - */ - public static final TimedCache giftMap = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); - /** - * 房间礼物缓存,过期时间1天 - * realRoomId,(giftId,Info) - */ - public static final TimedCache> roomGiftMap = new TimedCache<>(TimeUnit.DAYS.toMillis(1), new HashMap<>()); - private final DouyuWsLiveChatClient proxyClient = this; - private DouyuDanmuLiveChatClient danmuClient = null; - private DouyuConnectionHandler connectionHandler; - /** - * 统一管理Ws、Danmu的连接状态 - */ - private final IDouyuConnectionListener connectionListener; - - public DouyuLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, msgListeners, null, workerGroup); - this.connectionListener = connectionListener; - } - - public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, msgListener, null, workerGroup); - this.connectionListener = connectionListener; - } - - public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { - this(config, msgListener, null); - } - - public DouyuLiveChatClient(DouyuLiveChatClientConfig config) { - this(config, null); - } - - @Override - public void init() { - super.init(); - - // 初始化房间礼物列表 - Map map = new HashMap<>(); - DouyuApis.getGiftList(getConfig().getRoomId()) - .get("giftList") - .forEach(jsonNode -> { - try { - GiftListInfo giftListInfo = BaseMsg.OBJECT_MAPPER.readValue(jsonNode.toString(), GiftListInfo.class); - map.put(String.valueOf(giftListInfo.getId()), giftListInfo); - } catch (Exception e) { - if (log.isDebugEnabled()) { - log.debug("获取房间礼物列表异常", e); - } - // ignore - } - }); - roomGiftMap.put(String.valueOf(DouyuApis.getRealRoomId(getConfig().getRoomId())), map); - } - - @Override - public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - this.connectionHandler = super.initConnectionHandler(super.clientConnectionListener); - return connectionHandler; - } - - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - super.onMsg(binaryFrameHandler, msg); - if (msg instanceof MsgrepeaterproxylistMsg) { - MsgrepeaterproxylistMsg msgrepeaterproxylistMsg = (MsgrepeaterproxylistMsg) msg; - List> list = msgrepeaterproxylistMsg.getList(); - if (list.isEmpty()) { - log.error("弹幕服务器列表为空"); - if (connectionListener != null) { - connectionListener.onConnectFailed(connectionHandler); - } - disconnect(); - } else { - // 初始化danmuClient - int randomIndex = RandomUtil.randomInt(0, list.size()); - Map randomMap = list.get(randomIndex); - DouyuLiveChatClientConfig danmuClientConfig = BeanUtil.toBean(getConfig(), DouyuLiveChatClientConfig.class, CopyOptions.create().ignoreNullValue()); - danmuClientConfig.setWebsocketUri(String.format("wss://%s:%s/", randomMap.get("ip"), randomMap.get("port"))); - destroyDanmuClient(); - this.danmuClient = new DouyuDanmuLiveChatClient(danmuClientConfig, new IDouyuMsgListener() { - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onMsg(binaryFrameHandler, msg)); - } - - @Override - public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(binaryFrameHandler, msg)); - } - - @Override - public void onGiftMsg(DouyuBinaryFrameHandler binaryFrameHandler, DgbMsg msg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(binaryFrameHandler, msg)); - } - - @Override - public void onEnterRoomMsg(DouyuBinaryFrameHandler binaryFrameHandler, UenterMsg uenterMsg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(binaryFrameHandler, uenterMsg)); - } - - @Override - public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, ICmdMsg cmdMsg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(binaryFrameHandler, cmd, cmdMsg)); - } - - @Override - public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, ICmdMsg cmdMsg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg)); - } - - @Override - public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, IMsg msg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(binaryFrameHandler, cmdString, msg)); - } - - @Override - public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(binaryFrameHandler, cmd, cmdMsg)); - } - - @Override - public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg)); - } - - @Override - public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, BaseMsg msg) { - proxyClient.iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(binaryFrameHandler, cmdString, msg)); - } - }, new IDouyuConnectionListener() { - @Override - public void onConnected(DouyuConnectionHandler connectionHandler) { - if (connectionListener != null) { - connectionListener.onConnected(connectionHandler); - } - } - - @Override - public void onConnectFailed(DouyuConnectionHandler connectionHandler) { - if (connectionListener != null) { - connectionListener.onConnectFailed(connectionHandler); - } - } - - @Override - public void onDisconnected(DouyuConnectionHandler connectionHandler) { - if (connectionListener != null) { - connectionListener.onDisconnected(connectionHandler); - } - } - }); - this.danmuClient.addStatusChangeListener(evt -> { - ClientStatusEnums newStatus = (ClientStatusEnums) evt.getNewValue(); - switch (newStatus) { - case CONNECTED: - case RECONNECTING: - case CONNECT_FAILED: - case DISCONNECTED: - case CONNECTING: { - super.setStatus(newStatus); - break; - } - default: { - // ignore - } - } - - }); - this.danmuClient.connect(); - } - } - } - - @Override - protected void setStatus(ClientStatusEnums status) { - if (status == ClientStatusEnums.CONNECTED) { - return; - } - super.setStatus(status); - } - - @Override - public void destroy() { - destroyDanmuClient(); - super.destroy(); - } - - private void destroyDanmuClient() { - if (danmuClient != null) { - danmuClient.destroy(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java deleted file mode 100644 index e6d50621..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.client; - -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.LoginresMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; - -import java.util.List; - -/** - * 直播间弹幕客户端{@link DouyuClientModeEnum#WS} - * - * @author mjz - * @date 2023/8/20 - */ -@Slf4j -public class DouyuWsLiveChatClient extends BaseDouyuLiveChatClient implements IDouyuMsgListener { - - public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(DouyuClientModeEnum.WS, config, msgListeners, connectionListener, workerGroup); - addMsgListener(DouyuWsLiveChatClient.this); - } - - public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(DouyuClientModeEnum.WS, config, msgListener, connectionListener, workerGroup); - addMsgListener(DouyuWsLiveChatClient.this); - } - - public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { - this(config, msgListener, null); - } - - public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config) { - this(config, null); - } - - @Override - protected String getWebSocketUriString() { - return DouyuApis.getRandomWssUri(getConfig().getRoomId()); - } - - @Override - public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - return new DouyuConnectionHandler(DouyuClientModeEnum.WS, - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), - DouyuWsLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public DouyuBinaryFrameHandler initBinaryFrameHandler() { - return new DouyuBinaryFrameHandler(msgListeners, DouyuWsLiveChatClient.this); - } - - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - if (msg instanceof LoginresMsg) { - send(getWebSocketFrameFactory(getConfig().getRoomId()).createKeeplive(getConfig().getCookie())); - } - } - - @Override - public boolean removeMsgListener(IDouyuMsgListener msgListener) { - if (msgListener == DouyuWsLiveChatClient.this) { - return false; - } - return super.removeMsgListener(msgListener); - } - - @Override - public void removeAllMsgListeners() { - super.removeAllMsgListeners(); - addMsgListener(DouyuWsLiveChatClient.this); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java deleted file mode 100644 index 799eab2f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.client.base; - -import cn.hutool.core.collection.CollUtil; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory.DouyuWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; - -import java.util.List; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2023/9/15 - */ -@Slf4j -public abstract class BaseDouyuLiveChatClient extends BaseNettyClient< - DouyuLiveChatClientConfig, - DouyuCmdEnum, - IDouyuMsg, - IDouyuMsgListener, - DouyuConnectionHandler, - DouyuBinaryFrameHandler - > { - - private final DouyuClientModeEnum mode; - - public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - this.mode = mode; - addMsgListeners(msgListeners); - - // 初始化 - this.init(); - } - - public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - this.mode = mode; - addMsgListener(msgListener); - - // 初始化 - this.init(); - } - - public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { - this(mode, config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { - this(mode, config, msgListener, null, new NioEventLoopGroup()); - } - - public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config) { - this(mode, config, CollUtil.newArrayList(), null, new NioEventLoopGroup()); - } - - @Override - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - if (!checkCanSendDanmu()) { - return; - } - if (mode == DouyuClientModeEnum.WS && danmu instanceof String) { - String msg = (String) danmu; - if (log.isDebugEnabled()) { - log.debug("{} douyu发送弹幕 {}", getConfig().getRoomId(), danmu); - } - - WebSocketFrame webSocketFrame = null; - try { - webSocketFrame = getWebSocketFrameFactory(getConfig().getRoomId()).createDanmu(msg, getConfig().getCookie()); - } catch (Exception e) { - log.error("douyu弹幕包创建失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (webSocketFrame == null) { - return; - } - - send(webSocketFrame, () -> { - if (log.isDebugEnabled()) { - log.debug("douyu弹幕发送成功 {}", danmu); - } - if (success != null) { - success.run(); - } - finishSendDanmu(); - }, throwable -> { - log.error("douyu弹幕发送失败", throwable); - if (failed != null) { - failed.accept(throwable); - } - }); - } else { - super.sendDanmu(danmu); - } - } - - protected static DouyuWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { - return DouyuWebSocketFrameFactory.getInstance(roomId); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java deleted file mode 100644 index 685cd8d5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.config; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatNumberUtil; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; - -/** - * Douyu直播间弹幕客户端配置 - * - * @author mjz - * @date 2023/8/21 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public class DouyuLiveChatClientConfig extends BaseNettyClientConfig { - - @Builder.Default - private String ver = "20220825"; - - @Builder.Default - private String aver = "218101901"; - - @Override - public Long getRoomId() { - return OrLiveChatNumberUtil.parseLong(super.getRoomId()); - } - - public void setVer(String ver) { - String oldValue = this.ver; - this.ver = ver; - super.propertyChangeSupport.firePropertyChange("ver", oldValue, ver); - } - - public void setAver(String aver) { - String oldValue = this.aver; - this.aver = aver; - super.propertyChangeSupport.firePropertyChange("aver", oldValue, aver); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java deleted file mode 100644 index dbdc8b22..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.constant; - -/** - * @author mjz - * @date 2023/9/15 - */ -public enum DouyuClientModeEnum { - /** - * 发送弹幕,获取可用的Danmu服务器链接 - */ - WS, - /** - * 接收直播间弹幕 - */ - DANMU, -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java deleted file mode 100644 index 9078fcda..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.constant; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import tech.ordinaryroad.live.chat.client.douyu.msg.*; - -/** - * 文档 - * - * @author mjz - * @date 2023/1/6 - */ -@Getter -@AllArgsConstructor -@RequiredArgsConstructor -public enum DouyuCmdEnum { - /** - * 登录请求消息 - *
{@code
-     * type@=loginreq/roomid@=7750753/dfl@=/username@=visitor10424697/uid@=1168052601/ver@=20220825/aver@=218101901/ct@=0/
-     * type@=loginreq/roomid@=58839/aid@=yihanTest/token@=4c8421535f9639d8c1ad35d1fa421f36/time@=1574850339/auth@=45619bb990e6b76db06a66d5a8a446d7/
-     * }
- */ - loginreq(LoginreqMsg.class), - /** - * 登录响应消息 - *
{@code
-     * type@=loginres/userid@=1168052601/roomgroup@=0/pg@=0/sessionid@=0/username@=/nickname@=/live_stat@=0/is_illegal@=0/ill_ct@=/ill_ts@=0/now@=0/ps@=0/es@=0/it@=0/its@=0/npv@=0/best_dlev@=0/cur_lev@=0/nrc@=964715377/ih@=0/sid@=76494/sahf@=0/sceneid@=0/newrg@=0/regts@=0/ip@=112.43.93.229/rn@=0/rct@=0/
-     * type@=loginresp/msg@=ok/rid@=77614265/
-     * }
- */ - loginres(LoginresMsg.class), - /** - * 入组 - * type@=joingroup/rid@=59872/aid@=yourapplicaitonID/token@=4c8421535f9639d8c1ad35d1fa421f36/time@=1574850339/auth@=xxxxxxxxxxxx/ - * Auth 生成方式为 md5({secret}_{aid}_{time}_{token}), secret为aid对应的秘钥 - */ - joingroup(JoingroupMsg.class), - /** - * 客户端旧版心跳、心跳回复 - *
{@code
-     * type@=keeplive/tick@=1439802131/
-     * }
- */ - keeplive(KeepliveMsg.class), - /** - * 客户端新版心跳、心跳回复 - *
{@code
-     * type@=mrkl/
-     * }
- */ - mrkl, - /** - * 订阅贵族排行变动 - * type@=sub/mt@=online_vip_list/ - */ - sub(SubMsg.class), - subres, - noble_num_info, - oni, - postLogin, - /** - * 弹幕 - * type@=chatmsg/rid@=7750753/uid@=549977/nn@=一闪一闪亮品品/txt@=冷门歌手哎,声音独特哎/cid@=044c3bf3074b483275a44e0000000000/ic@=avatar@Sdefault@S08/level@=29/sahf@=0/nl@=7/cst@=1693107871294/bnn@=/bl@=0/brid@=0/hc@=/lk@=/dms@=8/pdg@=26/pdk@=86/ext@=/ - * type@=chatmsg/rid@=58839/ct@=8/hashid@=9LA18ePx4dqW/nn@=test/txt@=666/cid@=1111/ic@=icon/sahf@=0/level@=1/nl@=0/nc@=0/cmt@=0/gt@=0/col@=0/rg@=0/pg@=0/dlv@=0/dc@=0/bdlv@=0/gatin@=0/ chtin@=0/repin@=0/bnn@=test/bl@=0/brid@=58839/hc@=0/ol@=0/rev@=0/hl@=0/ifs@=0/p2p@=0/el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS/ - */ - chatmsg(ChatmsgMsg.class), - pingreq, - /** - * 登出 - * type@=logout/ - */ - logout, - /** - * 登录响应 - * type@=loginresp/msg@=ok/rid@=77614265/ - */ - loginresp, - /** - * 礼物 - * type@=dgb/gfid@=1/gs@=59872/gfcnt@=1/hashid@=1/rid@=1/nn@=someone/level@=1/dw@=1/ - */ - dgb(DgbMsg.class), - /** - * 用户进房通知消息 - * type@=uenter/rid@=1/ uid@=1/nn@=someone/str@=1/level@=1/el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS@S/ - */ - uenter(UenterMsg.class), - /** - * 房间开关播提醒 - * type@=rss/rid@=1/ss@=1/code@=1/rt@=0/notify@=1/endtime@=1/ - */ - rss, - /** - * 超级弹幕消息 - * type@=ssd/rid@=1/trid@=1/content@=test/cli tp@=1/url@=test_url/jmptp@=1/ - */ - ssd, - /** - * 房间内礼物广播 - * type@=spbc/rid@=1/gfid@=1/sn@=name/dn@=name/gn@=1/gc@=1/gb@=1/es@=1/ eid@=1/ - */ - spbc, - /** - * 房间宝箱消息 - * type@=tsgs/rid@=1/gid@=1/gfid@=1/sn@=name/dn@=name/gn@=1/gc@=1/gb@=1/es@=1/gfid@=1/eid@=1/ - */ - tsgs, - /** - * 房间内 top10 变化消息 - * type@=rankup/uid@=1/rn@=3/rid@=1/rkt@=1/gid@=-9999/rt@=0/ nk@=test/sz@=3/drid@=1/bt@=1/ - */ - rankup, - /** - * 主播离开提醒 - * type@=al/rid@=10111/aid@=3044114/ - */ - al, - /** - * 主播回来继续直播提醒 - * type@=ab/rid@=10111/gid@=-9999/aid@=3044114/ - */ - ab, - /** - * 用户等级提升消息 - * type@=upgrade/rid@=1/gid@=-9999/uid@=12001/nn@=test/level@=3/ic@=icon/ - */ - upgrade, - /** - * 主播等级提升广播 - * type@=upbc/rid@=1/gid@=-9999/lev@=20/pu@=0/ - */ - upbc, - /** - * 禁言操作结果 - * type@=newblackres/rid@=1/gid@=-9999/ret@=0/otype@=2/sid@=10002/did@=10003/snic@=stest/dnic@=dtest/endtime@=1501920157/ - */ - newblackres, - /** - * 徽章等级提升通知 - * type@=blab/rid@=1/gid@=-9999/uid@=10002/nn@=test/lbl@=2/bl@=3/ba@=1/bnn@=ttt/ - */ - blab, - /** - * 用户分享了直播间通知 - * type@=srres/rid@=1/gid@=-9999/uid@=12001/nickname@=test/exp@=3/ - */ - srres, - /** - * 栏目排行榜变更通知 - * type@=rri/rid@=1/rn@=cate_rank/cate_id@=5/uid@=10005/sc@=100 00/idx@=10/bcr@=1/ibc@=1/an@=test/rktype@=1/tag_id@=1200/gif t_id@=100/ - */ - rri, - mapkb(MapkbMsg.class), - /** - * 发送弹幕 - */ - chatmessage(ChatmessageMsg.class), - h5ckreq(H5ckreqMsg.class), - h5gkcreq(H5gkcreqMsg.class), - h5cs(H5csMsg.class), - msgrepeaterproxylist(MsgrepeaterproxylistMsg.class), - ; - - private Class tClass; - - public static DouyuCmdEnum getByString(String cmd) { - try { - return DouyuCmdEnum.valueOf(cmd); - } catch (Exception e) { - return null; - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java deleted file mode 100644 index cc3d33da..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.listener; - - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; - -/** - * 连接回调 - * - * @author mjz - * @date 2023/8/21 - */ -public interface IDouyuConnectionListener extends IBaseConnectionListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java deleted file mode 100644 index 782c884e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IEnterRoomMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; - -/** - * @author mjz - * @date 2023/1/7 - */ -public interface IDouyuMsgListener extends IBaseMsgListener, - IDanmuMsgListener, - IGiftMsgListener, - IEnterRoomMsgListener { -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java deleted file mode 100644 index 1e801cee..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import cn.hutool.core.util.RandomUtil; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/9/7 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ChatmessageMsg extends BaseDouyuCmdMsg { - - private String pe = "0"; - /** - * 弹幕内容 - */ - private String content; - private String col = "0"; - /** - * Cookie中的dy_did - */ - private String dy; - /** - * Cookie中的acf_uid - */ - private String sender; - private String ifs = "0"; - private String nc = "0"; - private String dat = "0"; - private String rev = "0"; - /** - * 当前时间戳(秒) - */ - private String tts; - private String admzq = "0"; - /** - * tts往后加几秒的时间戳(毫秒) - */ - private String cst; - - public ChatmessageMsg(String content, String dy, String sender) { - this.content = content; - this.dy = dy; - this.sender = sender; - this.tts = String.valueOf(OrLocalDateTimeUtil.zonedCurrentTimeSecs()); - this.cst = String.valueOf(OrLocalDateTimeUtil.zonedCurrentTimeMillis() + RandomUtil.randomLong(8000, 10000)); - } - - @Override - public String getType() { - return DouyuCmdEnum.chatmessage.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java deleted file mode 100644 index 052954e3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -import java.util.List; - -/** - *
{@code
- * {
- * 	"type": "chatmsg",
- * 	"cmdEnum": "chatmsg",
- * 	"cmd": "chatmsg",
- * 	"nn": "宋老二929",
- * 	"ext": null,
- * 	"bnn": null,
- * 	"level": "1",
- * 	"cst": "1693213418102",
- * 	"brid": "0",
- * 	"bl": "0",
- * 	"dms": "5",
- * 	"rid": "3168536",
- * 	"uid": "396023456",
- * 	"txt": "666",
- * 	"pdg": "47",
- * 	"pdk": "89",
- * 	"sahf": "0",
- * 	"ic": ["avatar_v3", "202101", "45daf5ceb475414293e3da4559552655"],
- * 	"hb": ["2719"],
- * 	"hc": null,
- * 	"cid": "0b37e26cccd54f7c4d73590000000000",
- * 	"lk": null
- * }
- * }
- * - * @author mjz - * @date 2023/8/28 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ChatmsgMsg extends BaseDouyuCmdMsg implements IDanmuMsg { - - private String nn; - private String ext; - private String bnn; - private String level; - private String cst; - private String brid; - private byte bl; - private String dms; - private long rid; - private String uid; - private String txt; - private String pdg; - private String pdk; - private String sahf; - private List ic; - private List hb; - private String hc; - private String cid; - private JsonNode lk; - - @Override - public String getType() { - return DouyuCmdEnum.chatmsg.name(); - } - - @Override - public String getBadgeName() { - return this.bnn; - } - - @Override - public byte getBadgeLevel() { - return this.bl; - } - - @Override - public String getUsername() { - return this.nn; - } - - @Override - public String getUserAvatar() { - return DouyuApis.getSmallAvatarUrl(ic); - } - - @Override - public String getContent() { - return this.txt; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java deleted file mode 100644 index a8c54164..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; - -import java.util.List; - -/** - * 收到礼物消息 - *
{@code
- * {
- * 	"type": "dgb",
- * 	"nn": "用户名",
- * 	"eid": "0",
- * 	"bst": "32",
- * 	"brid": "0",
- * 	"pma": "186963537",
- * 	"bnid": "1",
- * 	"gfid": "824",
- * 	"bl": "0",
- * 	"pid": "268",
- * 	"rid": "290935",
- * 	"mss": "186963457",
- * 	"bcst": "2",
- * 	"uid": "用户id",
- * 	"receive_uid": "接受用户id",
- * 	"ic": ["avatar_v3", "201912", "d031765fbe764a49887083bcf200da0b"],
- * 	"from": "2",
- * 	"gpf": "1",
- * 	"bnl": "1",
- * 	"ce": "1",
- * 	"bnn": null,
- * 	"receive_nn": "接受用户用户名",
- * 	"level": "43",
- * 	"bcnt": "1",
- * 	"gs": "0",
- * 	"hits": "249",
- * 	"gfcnt": "249",
- * 	"ct": "0",
- * 	"pfm": "27585",
- * 	"sahf": "0",
- * 	"hc": null,
- * 	"fc": "0",
- * 	"eic": "0"
- * }
- * }
- * - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DgbMsg extends BaseDouyuCmdMsg implements IGiftMsg { - - /** - * 用户名 - */ - private String nn; - private String eid; - private String bst; - private String brid; - private String pma; - private String bnid; - private long gfid; - private byte bl; - private String pid; - private String rid; - private String mss; - private String bcst; - /** - * 用户id - */ - private String uid; - /** - * 收礼物用户id - */ - private long receive_uid; - private List ic; - private String from; - private String gpf; - private String bnl; - private String ce; - private String bnn; - /** - * 收礼物用户名 - */ - private String receive_nn; - private String level; - private String bcnt; - private String gs; - /** - * 连击 - */ - private String hits; - /** - * 礼物个数 - */ - private int gfcnt; - private String ct; - private String pfm; - private String sahf; - private String hc; - private String fc; - private String eic; - private String bsfl; - private String skinid; - - // region 额外属性 - private GiftPropSingle giftInfo = GiftPropSingle.DEFAULT_GIFT; - private GiftListInfo roomGiftInfo = GiftListInfo.DEFAULT_GIFT; - // endregion - - @Override - public String getType() { - return DouyuCmdEnum.dgb.name(); - } - - @Override - public String getBadgeName() { - return this.bnn; - } - - @Override - public byte getBadgeLevel() { - return this.bl; - } - - @Override - public String getUsername() { - return this.nn; - } - - @Override - public String getUserAvatar() { - return DouyuApis.getSmallAvatarUrl(ic); - } - - @Override - public String getGiftName() { - if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT) { - return this.roomGiftInfo.getName(); - } - - if (this.giftInfo == null) { - return "未知礼物"; - } - - return this.giftInfo.getName(); - } - - @Override - public String getGiftImg() { - if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT && this.roomGiftInfo.getBasicInfo() != null) { - return this.roomGiftInfo.getPicUrlPrefix() + this.roomGiftInfo.getBasicInfo().getChatPic(); - } - - if (this.giftInfo == null) { - return ""; - } - - return this.giftInfo.getPicUrlPrefix() + this.giftInfo.getChatPic(); - } - - @Override - public String getGiftId() { - return Long.toString(this.gfid); - } - - @Override - public int getGiftCount() { - return this.gfcnt; - } - - /** - * 100 => 1鱼翅 - */ - @Override - public int getGiftPrice() { - if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT && this.roomGiftInfo.getPriceInfo() != null) { - return this.roomGiftInfo.getPriceInfo().getPrice(); - } - - if (this.giftInfo == null) { - return -1; - } - - return this.giftInfo.getPrice(); - } - - @Override - public String getReceiveUid() { - return Long.toString(this.receive_uid); - } - - @Override - public String getReceiveUsername() { - return this.receive_nn; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java deleted file mode 100644 index dcef8803..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * type@=chatmsg/rid@=7750753/uid@=549977/nn@=一闪一闪亮品品/txt@=冷门歌手哎,声音独特哎/cid@=044c3bf3074b483275a44e0000000000/ic@=avatar@Sdefault@S08/level@=29/sahf@=0/nl@=7/cst@=1693107871294/bnn@=/bl@=0/brid@=0/hc@=/lk@=/dms@=8/pdg@=26/pdk@=86/ext@=/ - * - * @see tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil#getDouyuMsgClassByType(DouyuCmdEnum, short) - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DouyuCmdMsg extends BaseDouyuCmdMsg { - - private String tick; - - private String res; - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java deleted file mode 100644 index 3736591c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class H5ckreqMsg extends BaseDouyuCmdMsg { - - private String rid; - private String ti; - - @Override - public String getType() { - return DouyuCmdEnum.h5ckreq.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java deleted file mode 100644 index 29b0957a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class H5csMsg extends BaseDouyuCmdMsg { - - private String result; - - @Override - public String getType() { - return DouyuCmdEnum.h5cs.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java deleted file mode 100644 index 7e5a8b9f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class H5gkcreqMsg extends BaseDouyuCmdMsg { - - private String rid; - private String ti; - - @Override - public String getType() { - return DouyuCmdEnum.h5gkcreq.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java deleted file mode 100644 index 934e9531..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -public class HeartbeatMsg extends BaseDouyuCmdMsg { - - @Override - public String getType() { - return DouyuCmdEnum.mrkl.name(); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java deleted file mode 100644 index 37eaa904..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/1/6 - */ -public class HeartbeatReplyMsg extends BaseDouyuCmdMsg { - - @Override - public String getType() { - return DouyuCmdEnum.mrkl.name(); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java deleted file mode 100644 index 9d2694f2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/8/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class JoingroupMsg extends BaseDouyuCmdMsg { - - private long rid; - private long gid = -9999; - - @Override - public String getType() { - return DouyuCmdEnum.joingroup.name(); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java deleted file mode 100644 index e7a0ff39..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - *
{@code
- * type@=keeplive/vbw@=0/cdn@=hs-h5/tick@=1694099389/kd@=da9c384371b4552ac94e1237d2596262/
- * }
- * - * @author mjz - * @date 2023/9/7 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class KeepliveMsg extends BaseDouyuCmdMsg { - - private String vbw = "0"; - private String cnd; - private long tick = OrLocalDateTimeUtil.zonedCurrentTimeSecs(); - private String kd = ""; - - public KeepliveMsg(String cnd) { - this.cnd = cnd; - } - - @Override - public String getType() { - return DouyuCmdEnum.keeplive.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java deleted file mode 100644 index f180e8ce..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -import java.util.Arrays; -import java.util.List; - -/** - * @author mjz - * @date 2023/8/27 - */ -@Getter -@Setter -@RequiredArgsConstructor -public class LoginreqMsg extends BaseDouyuCmdMsg { - - public static List SHOULD_IGNORE_NEW_LOGIN_PROPERTIES = Arrays.asList("roomid", "dfl", "username", "uid", "ver", "aver", "ct", "type"); - public static List SHOULD_IGNORE_OLD_LOGIN_PROPERTIES = Arrays.asList("type", "roomid", "dfl", "username", "password", "ltkid", "biz", "stk", "devid", "ct", "pt", "cvr", "tvr", "apd", "rt", "vk", "ver", "aver", "dmbt", "dmbv"); - - private long roomid; - private String dfl; - private String username; - private long uid; - private String ver; - private String aver; - private int ct = 0; - - private String password; - /** - * Cookie中的acf_ltkid - */ - private String ltkid; - private String biz; - /** - * Cookie中的acf_stk - */ - private String stk; - /** - * Cookie中的dy_did - */ - private String devid; - private String pt = "2"; - private String cvr = "0"; - private String tvr = "7"; - private String apd = ""; - private long rt = OrLocalDateTimeUtil.zonedCurrentTimeSecs(); - private String vk; - private String dmbt = "chrome"; - private String dmbv = "116"; - - public LoginreqMsg(long roomid, String dfl, String username, long uid, String ver, String aver) { - this.roomid = roomid; - this.dfl = dfl; - this.username = username; - this.uid = uid; - this.ver = ver; - this.aver = aver; - } - - public LoginreqMsg(long roomid, String dfl, String username, String ver, String aver, String ltkid, String biz, String stk, String devid) { - this.roomid = roomid; - this.dfl = dfl; - this.username = username; - this.ver = ver; - this.aver = aver; - this.ltkid = ltkid; - this.biz = biz; - this.stk = stk; - this.devid = devid; - this.vk = DouyuApis.generateVk(devid); - } - - @Override - public String getType() { - return DouyuCmdEnum.loginreq.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java deleted file mode 100644 index 8db0f3cc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/8/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LoginresMsg extends BaseDouyuCmdMsg { - - private long userid; - private int roomgroup; - private int pg; - private long sessionid; - private String username; - private String nickname; - private int live_stat; - private boolean is_illegal; - private String ill_ct; - private String ill_ts; - private String now; - private String ps; - private String es; - private String it; - private String its; - private String npv; - private String best_dlev; - private String cur_lev; - private String nrc; - private String ih; - private String sid; - private String sahf; - private String sceneid; - private String newrg; - private String regts; - private String ip; - private String rn; - private String rct; - - @Override - public String getType() { - return DouyuCmdEnum.loginres.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java deleted file mode 100644 index e81b7649..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -import java.util.List; - -/** - * @author mjz - * @date 2023/8/28 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MapkbMsg extends BaseDouyuCmdMsg { - - private long pk_time; - private List teams; - - @Override - public String getType() { - return DouyuCmdEnum.mapkb.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java deleted file mode 100644 index 0bfdb5f2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -import java.util.List; -import java.util.Map; - -/** - * @author mjz - * @date 2023/9/8 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MsgrepeaterproxylistMsg extends BaseDouyuCmdMsg { - - private String rid; - - /** - *
{@code
-     * [{
-     * 	"nr": "0",
-     * 	"port": "8501",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }, {
-     * 	"nr": "0",
-     * 	"port": "8502",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }, {
-     * 	"nr": "0",
-     * 	"port": "8503",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }, {
-     * 	"nr": "0",
-     * 	"port": "8504",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }, {
-     * 	"nr": "0",
-     * 	"port": "8505",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }, {
-     * 	"nr": "0",
-     * 	"port": "8506",
-     * 	"ip": "danmuproxy.douyu.com",
-     * 	"id": "0",
-     * 	"ml": "10000"
-     * }]
-     * }
- */ - private List> list; - - @Override - public String getType() { - return DouyuCmdEnum.msgrepeaterproxylist.name(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java deleted file mode 100644 index c642c28f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -/** - * @author mjz - * @date 2023/8/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SubMsg extends BaseDouyuCmdMsg { - - private String mt = "dayrk"; - - @Override - public String getType() { - return DouyuCmdEnum.sub.name(); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java deleted file mode 100644 index 91b6b2e4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; - -import java.util.List; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UenterMsg extends BaseDouyuCmdMsg implements IEnterRoomMsg { - - private String nn; - private long uid; - private int level; - private String sahf; - private List ic; - private String rid; - - @Override - public String getBadgeName() { - return null; - } - - @Override - public byte getBadgeLevel() { - return 0; - } - - @Override - public String getUid() { - return Long.toString(uid); - } - - @Override - public String getUsername() { - return nn; - } - - @Override - public String getUserAvatar() { - return DouyuApis.getSmallAvatarUrl(ic); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java deleted file mode 100644 index 90e7478e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg.base; - - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; - -/** - * @author mjz - * @date 2023/1/6 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public abstract class BaseDouyuCmdMsg extends BaseCmdMsg implements IDouyuMsg { - - private String type; - - @Override - public String getCmd() { - return type; - } - - @Override - public void setCmd(String cmd) { - type = cmd; - } - - @Override - public DouyuCmdEnum getCmdEnum() { - return DouyuCmdEnum.getByString(type); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java deleted file mode 100644 index dac7d08d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -/** - * @author mjz - * @date 2023/8/26 - */ -public interface IDouyuMsg extends IMsg { - - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java deleted file mode 100644 index 03f2ee3e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package tech.ordinaryroad.live.chat.client.douyu.msg.dto; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GiftListInfo { - - public static final GiftListInfo DEFAULT_GIFT = new GiftListInfo(); - - private BasicInfo basicInfo; - private JsonNode batchInfo; - private int batchInfoFlag; - private int countLimit; - private int defaultSkinId; - private int donateStatus; - private JsonNode effectInfo; - private int effectStatus; - private int endTime; - private JsonNode growthInfo; - private long hitInterval; - private int id; - private int isBatchLimited; - private int isFace; - private String name = "未知礼物"; - private String picUrlPrefix; - private PriceInfo priceInfo = new PriceInfo(); - private int showStatus; - private List skinIds; - private int startTime; - private List tabIds; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - - @Data - public static class BasicInfo { - private String bizTag; - private String borderColor; - private String chatPic; - private String culture; - private String desc1; - private String desc2; - private String focusPic; - private String giftPic; - private int giftType; - private int guardLevel; - private String sendPic; - private String subscriptColor; - private String subscriptText; - private String webSubscriptBigPic; - private String webSubscriptSmallPic; - private String webSubscriptText; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } - - @Data - public static class PriceInfo { - private int price = -1; - private String priceType; - private int returnNum; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java deleted file mode 100644 index 64e3e28f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package tech.ordinaryroad.live.chat.client.douyu.msg.dto; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GiftPropInfo { - - public static final GiftPropInfo DEFAULT_GIFT = new GiftPropInfo(); - - private String name = "未知礼物"; - private String bimg; - private String himg; - private String cimg; - private int stay_time; - private int show_combo; - private String batch_preset; - private List hit; - private int type; - private int style; - private int pc; - private int ry; - private int ef; - private int effect; - private int is_syn_fs; - private int is_stay; - private String drgb; - private String urgb; - private String grgb; - private String brgb; - private String small_effect_icon; - private String big_effect_icon; - private String effect_icon; - private String gift_icon; - private String gift_open_icon; - private int bonus; - private String web_flash; - private String hit_interval; - private int devote; - private int attack; - private int exp; - private int active_type; - private String pc_full_icon; - private String pc_full_bg_icon; - private int pc_show_combo; - private String pc_urgb; - private String pc_grgb; - private int index; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java deleted file mode 100644 index de9ebe67..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ -package tech.ordinaryroad.live.chat.client.douyu.msg.dto; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GiftPropSingle { - - public static final GiftPropSingle DEFAULT_GIFT = new GiftPropSingle(); - - // key,value - private JsonNode batchInfo; - private String bizTag; - private String borderColor; - private String chatPic; - private int count; - private String description; - private String description2; - private int devote; - // key,value - private JsonNode effectInfo; - private int exp; - private int expiry; - private String focusPic; - private int hitInterval; - private long id; - private int intimate; - private String intro; - private int isClick; - private int isFace; - private int isValuable; - private int level; - private int levelTime; - private int met; - private String name = "未知礼物"; - private String picUrlPrefix; - private int price = -1; - private int priceType; - private String propPic; - private int propType; - private int returnNum; - private String sendPic; - private String subscriptColor; - private String subscriptText; - private String webSubscriptBigPic; - private String webSubscriptSmallPic; - private String webSubscriptText; - - /** - * 未知属性都放在这 - */ - private final Map unknownProperties = new HashMap<>(); - - @JsonAnyGetter - public Map getUnknownProperties() { - return unknownProperties; - } - - @JsonAnySetter - public void setOther(String key, JsonNode value) { - this.unknownProperties.put(key, value); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java deleted file mode 100644 index 6293b94e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.frame; - -import io.netty.buffer.ByteBuf; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class AuthWebSocketFrame extends BaseDouyuWebSocketFrame { - - public AuthWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java deleted file mode 100644 index 1dd882eb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.frame; - -import io.netty.buffer.ByteBuf; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class HeartbeatWebSocketFrame extends BaseDouyuWebSocketFrame { - - public HeartbeatWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java deleted file mode 100644 index 43e88af2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.frame; - -import io.netty.buffer.ByteBuf; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; - -/** - * @author mjz - * @date 2023/9/8 - */ -public class KeepliveWebSocketFrame extends BaseDouyuWebSocketFrame { - - public KeepliveWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java deleted file mode 100644 index da484fed..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.frame.base; - -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; - -/** - * @author mjz - * @date 2023/8/27 - */ -public abstract class BaseDouyuWebSocketFrame extends BinaryWebSocketFrame { - - public BaseDouyuWebSocketFrame(ByteBuf byteBuf) { - super(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java deleted file mode 100644 index 64bf90b0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory; - -import cn.hutool.core.lang.UUID; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.*; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.AuthWebSocketFrame; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.HeartbeatWebSocketFrame; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.KeepliveWebSocketFrame; -import tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class DouyuWebSocketFrameFactory { - - private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); - /** - * 浏览器地址中的房间id,暂不支持短id - */ - private final long roomId; - private volatile static HeartbeatMsg heartbeatMsg; - - public DouyuWebSocketFrameFactory(long roomId) { - this.roomId = roomId; - } - - public synchronized static DouyuWebSocketFrameFactory getInstance(long roomId) { - return CACHE.computeIfAbsent(roomId, aLong -> new DouyuWebSocketFrameFactory(roomId)); - } - - /** - * 创建认证包 - * - * @param mode {@link DouyuClientModeEnum#DANMU}, {@link DouyuClientModeEnum#WS} - * @param ver {@link DouyuLiveChatClientConfig#getVer()} - * @param aver {@link DouyuLiveChatClientConfig#getAver()} - * @param cookie 浏览器Cookie,发送弹幕时必传 - * @return AuthWebSocketFrame - */ - public AuthWebSocketFrame createAuth(DouyuClientModeEnum mode, String ver, String aver, String cookie) { - try { - // type@=loginreq/roomid@=7750753/dfl@=/username@=visitor10424697/uid@=1168052601/ver@=20220825/aver@=218101901/ct@=0/ - LoginreqMsg loginreqMsg; - long realRoomId = DouyuApis.getRealRoomId(roomId); - long uid; - String username; - Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); - - if (cookieMap.isEmpty()) { - // 视为未登录 - if (mode == DouyuClientModeEnum.DANMU) { - uid = RandomUtil.randomLong(10000000, 19999999); - username = "visitor" + RandomUtil.randomLong(10000000, 19999999); - loginreqMsg = new LoginreqMsg(realRoomId, "", username, uid, ver, aver); - return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_NEW_LOGIN_PROPERTIES)); - } else { - loginreqMsg = new LoginreqMsg(realRoomId, "", "", ver, aver, "", "", "", UUID.fastUUID().toString(true)); - return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_OLD_LOGIN_PROPERTIES)); - } - } - // 视为登录 - else { - String acfUid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_UID, () -> { - throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_UID); - }); - uid = NumberUtil.parseLong(acfUid); - username = acfUid; - String dfl = "sn@A=105@Sss@A=1"; - if (mode == DouyuClientModeEnum.DANMU) { - loginreqMsg = new LoginreqMsg(realRoomId, dfl, username, uid, ver, aver); - return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_NEW_LOGIN_PROPERTIES)); - } else { - String acfLtkid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_LTKID, () -> { - throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_LTKID); - }); - String acfStk = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_STK, () -> { - throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_STK); - }); - String dyDid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_DY_DID, () -> { - throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_DY_DID); - }); - loginreqMsg = new LoginreqMsg(realRoomId, dfl, username, ver, aver, acfLtkid, "1", acfStk, dyDid); - return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_OLD_LOGIN_PROPERTIES)); - } - } - } catch (Exception e) { - throw new BaseException(String.format("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s", roomId, e.getMessage())); - } - } - - public AuthWebSocketFrame createAuth(DouyuClientModeEnum mode, String ver, String aver) { - return this.createAuth(mode, ver, aver, null); - } - - public HeartbeatWebSocketFrame createHeartbeat() { - return new HeartbeatWebSocketFrame(DouyuCodecUtil.encode(this.getHeartbeatMsg())); - } - - public KeepliveWebSocketFrame createKeeplive(String cookie) { - return new KeepliveWebSocketFrame(DouyuCodecUtil.encode(this.getKeepliveMsg(StrUtil.isNotBlank(cookie) ? "hs-h5" : ""))); - } - - /** - * 心跳包单例模式 - * - * @return HeartbeatWebSocketFrame - */ - public HeartbeatMsg getHeartbeatMsg() { - if (heartbeatMsg == null) { - synchronized (DouyuWebSocketFrameFactory.this) { - if (heartbeatMsg == null) { - heartbeatMsg = new HeartbeatMsg(); - } - } - } - return heartbeatMsg; - } - - private BaseDouyuCmdMsg getKeepliveMsg(String cnd) { - return new KeepliveMsg(cnd); - } - - public WebSocketFrame createJoingroup() { - JoingroupMsg joingroupMsg = new JoingroupMsg(); - joingroupMsg.setRid(roomId); - return new BinaryWebSocketFrame(DouyuCodecUtil.encode(joingroupMsg)); - } - - public WebSocketFrame createSub() { - return new BinaryWebSocketFrame(DouyuCodecUtil.encode(new SubMsg())); - } - - public WebSocketFrame createDanmu(String msg, String cookie) { - String dyDid = OrLiveChatCookieUtil.getCookieByName(cookie, DouyuApis.KEY_COOKIE_DY_DID, () -> { - throw new BaseException("cookie中缺少参数" + DouyuApis.KEY_COOKIE_DY_DID); - }); - String acfUid = OrLiveChatCookieUtil.getCookieByName(cookie, DouyuApis.KEY_COOKIE_ACF_UID, () -> { - throw new BaseException("cookie中缺少参数" + DouyuApis.KEY_COOKIE_ACF_UID); - }); - ChatmessageMsg chatmessageMsg = new ChatmessageMsg(msg, dyDid, acfUid); - return new BinaryWebSocketFrame(DouyuCodecUtil.encode(chatmessageMsg)); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java deleted file mode 100644 index f7d3e551..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.handler; - -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandler; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; -import tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; - -import java.util.List; - - -/** - * 消息处理器 - * - * @author mjz - * @date 2023/1/4 - */ -@Slf4j -@ChannelHandler.Sharable -public class DouyuBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { - - public DouyuBinaryFrameHandler(List msgListeners, BaseDouyuLiveChatClient client) { - super(msgListeners, client); - } - - public DouyuBinaryFrameHandler(List msgListeners, long roomId) { - super(msgListeners, roomId); - } - - @Override - public void onCmdMsg(DouyuCmdEnum cmd, ICmdMsg cmdMsg) { - if (super.msgListeners.isEmpty()) { - return; - } - - switch (cmd) { - case chatmsg: { - iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(DouyuBinaryFrameHandler.this, (ChatmsgMsg) cmdMsg)); - break; - } - case dgb: { - iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(DouyuBinaryFrameHandler.this, (DgbMsg) cmdMsg)); - break; - } - case uenter: { - iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(DouyuBinaryFrameHandler.this, (UenterMsg) cmdMsg)); - break; - } - default: { - if (!(cmdMsg instanceof DouyuCmdMsg)) { - if (log.isDebugEnabled()) { - log.debug("非DouyuCmdMsg {}", cmdMsg.getClass()); - } - return; - } - iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(DouyuBinaryFrameHandler.this, cmd, cmdMsg)); - } - } - } - - @Override - protected List decode(ByteBuf byteBuf) { - return DouyuCodecUtil.decode(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java deleted file mode 100644 index e878c2b7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.netty.handler; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; -import tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory.DouyuWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; - - -/** - * 连接处理器 - * - * @author mjz - * @date 2023/8/21 - */ -@Slf4j -@ChannelHandler.Sharable -public class DouyuConnectionHandler extends BaseNettyClientConnectionHandler { - - @Getter - private final DouyuClientModeEnum mode; - /** - * 以ClientConfig为主 - */ - private final long roomId; - /** - * 以ClientConfig为主 - */ - private final String ver; - /** - * 以ClientConfig为主 - */ - private final String aver; - /** - * 以ClientConfig为主 - */ - private String cookie; - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, BaseDouyuLiveChatClient client, IBaseConnectionListener listener) { - super(handshaker, client, listener); - this.mode = mode; - this.roomId = client.getConfig().getRoomId(); - this.ver = client.getConfig().getVer(); - this.aver = client.getConfig().getAver(); - this.cookie = client.getConfig().getCookie(); - } - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, BaseDouyuLiveChatClient client) { - this(mode, handshaker, client, null); - } - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, IBaseConnectionListener listener, String cookie) { - super(handshaker, listener); - this.mode = mode; - this.roomId = roomId; - this.ver = ver; - this.aver = aver; - this.cookie = cookie; - } - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, IBaseConnectionListener listener) { - this(mode, handshaker, roomId, ver, aver, listener, null); - } - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, String cookie) { - this(mode, handshaker, roomId, ver, aver, null, cookie); - } - - public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver) { - this(mode, handshaker, roomId, ver, aver, null, null); - } - - @Override - protected void sendHeartbeat(ChannelHandlerContext ctx) { - if (log.isDebugEnabled()) { - log.debug("发送心跳包"); - } - WebSocketFrame webSocketFrame; - if (mode == DouyuClientModeEnum.DANMU) { - webSocketFrame = getWebSocketFrameFactory(getRoomId()).createHeartbeat(); - } else { - webSocketFrame = getWebSocketFrameFactory(getRoomId()).createKeeplive(getCookie()); - } - ctx.writeAndFlush(webSocketFrame).addListener((ChannelFutureListener) future -> { - if (future.isSuccess()) { - if (log.isDebugEnabled()) { - log.debug("心跳包发送完成"); - } - } else { - log.error("心跳包发送失败", future.cause()); - } - }); - } - - @Override - public void sendAuthRequest(Channel channel) { - if (log.isDebugEnabled()) { - log.debug("发送认证包"); - } - channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(mode, getVer(), getAver(), getCookie())); - } - - private DouyuWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { - return DouyuWebSocketFrameFactory.getInstance(roomId); - } - - public long getRoomId() { - return client != null ? client.getConfig().getRoomId() : roomId; - } - - private String getVer() { - return client != null ? client.getConfig().getVer() : ver; - } - - private String getAver() { - return client != null ? client.getConfig().getAver() : aver; - } - - private String getCookie() { - return client != null ? client.getConfig().getCookie() : cookie; - } - - @Override - protected long getHeartbeatPeriod() { - if (client == null) { - return DouyuLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; - } else { - return client.getConfig().getHeartbeatPeriod(); - } - } - - @Override - protected long getHeartbeatInitialDelay() { - if (client == null) { - return DouyuLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; - } else { - return client.getConfig().getHeartbeatInitialDelay(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java deleted file mode 100644 index dad8a581..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.util; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ReflectUtil; -import cn.hutool.core.util.StrUtil; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatReflectUtil; -import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; -import tech.ordinaryroad.live.chat.client.douyu.client.DouyuLiveChatClient; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.HeartbeatMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.HeartbeatReplyMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.nio.charset.StandardCharsets; -import java.util.*; - -/** - * 参考:https://open.douyu.com/source/api/63 - * - * @author mjz - * @date 2023/1/6 - */ -@Slf4j -public class DouyuCodecUtil { - - public static final String[] IGNORE_PROPERTIES = {"OBJECT_MAPPER", "unknownProperties"}; - /** - * 以SHOULD_IGNORE开头的成员变量将不会序列化 - */ - public static final String SHOULD_IGNORE_PROPERTIES_PREFIX = "SHOULD_IGNORE"; - - public static final short MSG_TYPE_SEND = 689; - public static final short MSG_TYPE_RECEIVE = 690; - public static final short FRAME_HEADER_LENGTH = 8; - - public static ByteBuf encode(BaseDouyuCmdMsg msg, List containProperties) { - ByteBuf out = Unpooled.buffer(FRAME_HEADER_LENGTH); - String bodyDouyuSttString = StrUtil.nullToEmpty(toDouyuSttString(msg, containProperties)) + SUFFIX; - byte[] bodyBytes = bodyDouyuSttString.getBytes(StandardCharsets.UTF_8); - int length = bodyBytes.length + FRAME_HEADER_LENGTH; - out.writeIntLE(length); - out.writeIntLE(length); - out.writeShortLE(MSG_TYPE_SEND); - out.writeByte(0); - out.writeByte(0); - out.writeBytes(bodyBytes); - return out; - } - - public static ByteBuf encode(BaseDouyuCmdMsg msg) { - return encode(msg, null); - } - - public static List decode(ByteBuf in) { - List msgList = new ArrayList<>(); - Queue pendingByteBuf = new LinkedList<>(); - - do { - Optional msg = doDecode(in, pendingByteBuf); - msg.ifPresent(msgList::add); - in = pendingByteBuf.poll(); - } while (in != null); - - return msgList; - } - - /** - * 执行解码操作 - * - * @param in handler收到的一条消息 - * @param pendingByteBuf 用于存放未读取完的ByteBuf - * @return Optional 何时为空值:不支持的{@link DouyuCmdEnum},{@link #parseDouyuSttString(String, short)}反序列化失败 - */ - private static Optional doDecode(ByteBuf in, Queue pendingByteBuf) { - int length = in.readIntLE(); - in.readIntLE(); - // MSG_TYPE_RECEIVE - short msgType = in.readShortLE(); - if (msgType != MSG_TYPE_RECEIVE) { - log.error("decode消息类型 非 收到的消息"); - } - in.readByte(); - in.readByte(); - int contentLength = length - FRAME_HEADER_LENGTH; - byte[] inputBytes = new byte[contentLength]; - in.readBytes(inputBytes); - if (in.readableBytes() != 0) { - // log.error("in.readableBytes() {}", in.readableBytes()); - pendingByteBuf.offer(in); - } - - String bodyDouyuSttString = new String(inputBytes, 0, inputBytes.length - 1); - return Optional.ofNullable(parseDouyuSttString(bodyDouyuSttString, msgType)); - } - - public static final String SPLITTER = "@="; - public static final String END = "/"; - public static final String SUFFIX = "\0"; - - /** - *
{@code @S/ -> @AS@S}
- * - * @param string - * @return - */ - public static String escape(String string) { -// return string == null ? StrUtil.EMPTY : (string.replaceAll("/", "@S").replaceAll("@", "@A")); - return string == null ? StrUtil.EMPTY : (string.replaceAll("@", "@A").replaceAll("/", "@S")); - } - - /** - *
{@code @AS@S -> @S/}
- * - * @param string - * @return - */ - public static String unescape(String string) { - return string == null ? StrUtil.EMPTY : (string.replaceAll("@S", "/").replaceAll("@A", "@")); - } - - public static String toDouyuSttString(Object object, List containProperties) { - StringBuffer sb = new StringBuffer(); - if (object instanceof IDouyuMsg) { - Class objectClass = object.getClass(); - Field[] fields = ReflectUtil.getFields(objectClass, field -> { - String name = field.getName(); - if (CollUtil.isNotEmpty(containProperties)) { - return containProperties.contains(name); - } else { - return !name.startsWith(SHOULD_IGNORE_PROPERTIES_PREFIX) && !ArrayUtil.contains(IGNORE_PROPERTIES, name); - } - }); - for (Field field : fields) { - String key = field.getName(); - Method method = OrLiveChatReflectUtil.getGetterMethod(objectClass, key); - Object value = ReflectUtil.invoke(object, method); - String douyuSttString = toDouyuSttString(value, containProperties); - String escape = escape(douyuSttString); - sb.append(escape(key)) - .append(SPLITTER) - .append(escape) - .append(END); - } - } else { - if (object instanceof Iterable) { - Iterable iterable = (Iterable) object; - StringBuffer iterableStringBuffer = new StringBuffer(); - for (Object o : iterable) { - String douyuSttString = toDouyuSttString(o, containProperties); - String escape = escape(douyuSttString); - iterableStringBuffer.append(escape) - .append(END); - } - sb.append((iterableStringBuffer.toString())); - } else if (object instanceof Map) { - Map map = (Map) object; - StringBuffer mapStringBuffer = new StringBuffer(); - map.forEach((mapKey, mapValue) -> { - mapStringBuffer.append(escape(StrUtil.toStringOrNull(mapKey))) - .append(SPLITTER) - .append(escape(toDouyuSttString(mapValue, containProperties))) - .append(END); - }); - sb.append((mapStringBuffer.toString())); - } else { - sb.append((StrUtil.nullToEmpty(StrUtil.toStringOrNull(object)))); - } - } - return sb.toString(); - } - - public static String toDouyuSttString(Object object) { - return toDouyuSttString(object, null); - } - - public static IDouyuMsg parseDouyuSttString(String string, short msgType) { - Map stringObjectMap = parseDouyuSttStringToMap(string); - String type = (String) stringObjectMap.get("type"); - DouyuCmdEnum cmdEnum = DouyuCmdEnum.getByString(type); - - Class msgClass = getDouyuMsgClassByType(cmdEnum, msgType); - if (msgClass == null) { - // TODO 不支持的cmdEnum - if (log.isWarnEnabled()) { - log.warn("暂不支持 cmdEnum {}, msgType {}", cmdEnum, msgType); - } - return null; - } - - IDouyuMsg t = ReflectUtil.newInstance(msgClass); - stringObjectMap.forEach((key, value) -> { - Field field = ReflectUtil.getField(t.getClass(), key); - // 未知key - if (field == null) { - // Object -> JsonNode - ((BaseDouyuCmdMsg) t).getUnknownProperties().put(key, BaseDouyuCmdMsg.OBJECT_MAPPER.valueToTree(value)); - // log.debug("未知key {} {},已存放于unknownProperties中", msgClass, key); - } else { - ReflectUtil.setFieldValue(t, field, value); - } - }); - - // 礼物消息设置礼物信息字段 - if (t instanceof DgbMsg) { - DgbMsg msg = (DgbMsg) t; - String pid = msg.getPid(); - // 通用礼物 - if (StrUtil.isNotBlank(pid)) { - GiftPropSingle giftSingle = DouyuLiveChatClient.giftMap.get(pid, () -> { - GiftPropSingle gift = GiftPropSingle.DEFAULT_GIFT; - try { - gift = DouyuApis.getGiftPropSingleByPid(pid); - } catch (Exception e) { - log.error("礼物信息获取失败, pid=" + pid, e); - } - return gift; - }); - msg.setGiftInfo(giftSingle); - } - // 房间礼物 - else { - String realRoomId = msg.getRid(); - if (DouyuLiveChatClient.roomGiftMap.containsKey(realRoomId)) { - Map stringGiftListInfoMap = DouyuLiveChatClient.roomGiftMap.get(realRoomId); - msg.setRoomGiftInfo(stringGiftListInfoMap.getOrDefault(String.valueOf(msg.getGfid()), GiftListInfo.DEFAULT_GIFT)); - } - } - } - - return t; - } - - public static Object parseDouyuSttStringToObject(String value) { - Object valueObject; - if (StrUtil.isBlank(value)) { - return null; - } - if (value.contains(SPLITTER) && value.contains(END)) { - // log.debug("map valueObject {}", value); - valueObject = parseDouyuSttStringToMap(value); - } - // List - else if (!value.contains(SPLITTER) && value.contains(END)) { - // log.debug("list valueObject {}", value); - List list = new ArrayList<>(); - for (String s : value.split(END)) { - list.add(parseDouyuSttStringToObject(unescape(s))); - } - valueObject = list; - } - // String - else { - valueObject = value; - } - return valueObject; - } - - public static Map parseDouyuSttStringToMap(String string) { - Map stringObjectMap = new HashMap<>(); - for (String s : string.split(END)) { - String[] entry = s.split(SPLITTER); - String key = unescape(entry[0]); - String value = unescape(ArrayUtil.get(entry, 1)); - Object valueObject = parseDouyuSttStringToObject(value); - stringObjectMap.put(key, valueObject); - } - return stringObjectMap; - } - - public static Class getDouyuMsgClassByType(DouyuCmdEnum douyuCmdEnum, short msgType) { - if (douyuCmdEnum == null) { - return (Class) DouyuCmdMsg.class; - } - - Class msgClass; - Class tClass = douyuCmdEnum.getTClass(); - if (tClass == null) { - if (douyuCmdEnum == DouyuCmdEnum.mrkl) { - if (msgType == MSG_TYPE_RECEIVE) { - msgClass = HeartbeatReplyMsg.class; - } else if (msgType == MSG_TYPE_SEND) { - msgClass = HeartbeatMsg.class; - } else { - msgClass = null; - } - } else { - msgClass = DouyuCmdMsg.class; - } - } else { - msgClass = tClass; - } - return (Class) msgClass; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java deleted file mode 100644 index cf828401..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.api; - -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -/** - * @author mjz - * @date 2023/8/30 - */ -class DouyuApisTest { - - @Test - void getRealRoomId() { - assertEquals(2947432, DouyuApis.getRealRoomId(92000)); - assertEquals(3168536, DouyuApis.getRealRoomId(3168536)); - assertEquals(290935, DouyuApis.getRealRoomId(22222)); - assertEquals(290935, DouyuApis.getRealRoomId(290935)); - assertEquals(520, DouyuApis.getRealRoomId(520)); - assertThrows(RuntimeException.class, () -> DouyuApis.getRealRoomId(-1)); - } - - @Test - void getGiftInfo() { - GiftPropSingle giftByPid = DouyuApis.getGiftPropSingleByPid("4"); - assertEquals("赞", giftByPid.getName()); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java deleted file mode 100644 index 7919ad15..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java +++ /dev/null @@ -1,31 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.client; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述: - * - * @author https:www.unfbx.com - * @since 2023-03-02 - */ -@Data -@JsonIgnoreProperties(ignoreUnknown = true) -public class ChatChoice implements Serializable { - private long index; - /** - * 请求参数stream为true返回是delta - */ - @JsonProperty("delta") - private Message delta; - /** - * 请求参数stream为false返回是message - */ - @JsonProperty("message") - private Message message; - @JsonProperty("finish_reason") - private String finishReason; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java deleted file mode 100644 index 3134d4ee..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java +++ /dev/null @@ -1,24 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.client; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * 描述: chat答案类 - * - * @author https:www.unfbx.com - * 2023-03-02 - */ -@Data -@JsonIgnoreProperties(ignoreUnknown = true) -public class ChatCompletionResponse implements Serializable { - private String id; - private String object; - private long created; - private String model; - private List choices; - private Usage usage; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java deleted file mode 100644 index 56cc6d0e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java +++ /dev/null @@ -1,410 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.douyu.client; - -import com.fasterxml.jackson.databind.ObjectMapper; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.util.internal.StringUtil; -import lombok.extern.slf4j.Slf4j; -import okhttp3.*; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; -import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; -import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.IOException; -import java.util.Objects; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -/** - * @author mjz - * @date 2023/8/26 - */ -@Slf4j -class DouyuLiveChatClientTest implements IDouyuConnectionListener, IDouyuMsgListener { - - static Object lock = new Object(); - DouyuLiveChatClient client; - - private final OkHttpClient okClient = new OkHttpClient(); - private static final String API_KEY = "sk-xxxxxx"; - private static final String URL = "https://api.pandarobot.chat/v1/chat/completions"; - - private final Lock reentrantLock = new ReentrantLock(); - private boolean isProcessing = false; - - - public String getChatGptResponse(String prompt){ - if (!reentrantLock.tryLock()) { - // 如果无法立即获得锁,直接返回空字符串 - log.info("自动回复:我还没准备好"); - return ""; - } - try { - if (isProcessing) { - log.info("自动回复:我还没准备好"); - // 如果已经在处理中,直接返回 - return ""; - } - isProcessing = true; - // 你的原始代码逻辑 - RequestBody body = RequestBody.create(MediaType.get("application/json; charset=utf-8"), - "{\"model\": \"gpt-4-0125-preview\", \"messages\": [{\"role\": \"system\", \"content\": \"扮演一个充满机智和幽默感的斗鱼直播弹幕助手,你的任务是用不超过30字的诙谐小段子来回复直播间用户的评论。你的回复应该机智幽默,不夸张能引发笑声,同时也要和谐适应直播间的气氛。当你收到用户的评论时,迅速给出一个既幽默又贴切的回复。例如:评论: 今天的直播怎么样?回复: 好看得让人忘记摸鱼,专心变成鱼粉!\"}, {\"role\": \"user\", \"content\": \"" + prompt + "\"}]}"); - Request request = new Request.Builder() - .url(URL) - .post(body) - .addHeader("Authorization", "Bearer " + API_KEY) - .build(); - - long startTime = System.currentTimeMillis(); // 获取开始时间的毫秒数 - System.out.println("执行前......."); - Thread.sleep(3000); - System.out.println("执行后......."); - long endTime = System.currentTimeMillis(); // 获取结束时间的毫秒数 - long timeDiff = endTime - startTime; // 计算时间差 - System.out.println("执行时间 " + timeDiff / 1000 + " 秒。"); - - try (Response response = okClient.newCall(request).execute()) { - if (response.body() != null) { - ObjectMapper mapper = new ObjectMapper(); - ChatCompletionResponse completionResponse = mapper.readValue(response.body().string(), ChatCompletionResponse.class); - return completionResponse.getChoices().get(0).getMessage().getContent(); - } - } catch (Exception e) { - log.info("调用出错了{}",e.getMessage()); - } - return ""; - } catch (InterruptedException e) { - throw new RuntimeException(e); - } finally { - isProcessing = false; - reentrantLock.unlock(); - } - } - - @Test - void example() throws InterruptedException { - String cookie = "dy_did=621fbe7a636002f6e6cc42eb00091701; acf_did=621fbe7a636002f6e6cc42eb00091701; dy_teen_mode=%7B%22uid%22%3A%22145703733%22%2C%22status%22%3A0%2C%22birthday%22%3A%22%22%2C%22password%22%3A%22%22%7D; dy_did=621fbe7a636002f6e6cc42eb00091701; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1706978160,1707033428,1707109487; PHPSESSID=1orrfq0m0gfrbd58slgh6shqc7; acf_auth=c22dT%2BYJG1xQ3ZuNrfxYNS06lnIjzNl%2F58xziUwyAsNedpJWvbEtIBh%2Bq%2F%2FYxo%2FFYAp9aQr4i4iYqTp2kYdb7n2JNUFBwGEBgZ8GiGS6O%2FR0CNLy8kQ2iVw; dy_auth=d0d0Ps%2FEOPWjXoPGMenITKuiBIC7wTua3heP19LVKzOZ8qibQpmTA9Hpyx%2FdxtDei1Db6KUWkzq1fEC0BLSZVSUbDkuv%2FX%2F%2B0pMu1kgXnk%2FUzQ%2BhV3EiRf8; wan_auth37wan=f0a9656c2e00K9uFDlpgnTfrv3m8aZoYB0WQTWxGSrSccCMd9LUiEUD2oYpJ%2F5Oe5uD2tVpaUA69sGzlTAtl9p3uLSSqgrvH%2F8sy1gWyyrS4fxotQSU; acf_uid=145703733; acf_username=145703733; acf_nickname=%E5%9B%BE%E5%85%94%E5%85%94%E7%9A%84%E5%85%94%E5%85%94%E5%9B%BE; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favanew%2Fface%2F201706%2F25%2F21%2F82973545fd6b770fe03175783ffbc3d5_; acf_ct=0; acf_ltkid=28814433; acf_biz=1; acf_stk=1213d18dc8e6b5b1; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1707141953"; - DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() - // TODO 修改房间id(支持短id) - .roomId(7828414) - .cookie(cookie) - .build(); - - client = new DouyuLiveChatClient(config, new IDouyuMsgListener() { - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - IDouyuMsgListener.super.onMsg(binaryFrameHandler, msg); - // log.debug("{} 收到{}消息 {}", binaryFrameHandler.getRoomId(), msg.getClass(), msg); - } - - @Override - public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { - if(Integer.parseInt(msg.getLevel())>5){ - String chatGptResponse = getChatGptResponse(msg.getContent()); - log.info("自动回复:"+ "@"+msg.getUsername()+": "+chatGptResponse); - if(!Objects.equals(chatGptResponse, "")){ - client.sendDanmu("@"+msg.getUsername()+": "+chatGptResponse); - } - } - log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(DouyuBinaryFrameHandler binaryFrameHandler, DgbMsg msg) { - IDouyuMsgListener.super.onGiftMsg(binaryFrameHandler, msg); - // log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); - } - - @Override - public void onEnterRoomMsg(UenterMsg msg) { -// if(msg.getLevel()>20){ -// String chatGptResponse = getChatGptResponse(msg.getUsername()+"加入了直播间,请你帮忙编写简短有创意的欢迎语"); -// if(!Objects.equals(chatGptResponse, "")){ -// client.sendDanmu(chatGptResponse); -// } -// } - log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - - @Override - public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { - IDouyuMsgListener.super.onCmdMsg(binaryFrameHandler, cmd, cmdMsg); - //log.info("{} 收到CMD消息{} {}", binaryFrameHandler.getRoomId(), cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { - IDouyuMsgListener.super.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg); - - // log.debug("{} 收到其他CMD消息 {}", binaryFrameHandler.getRoomId(), cmd); - } - - @Override - public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, BaseMsg msg) { - IDouyuMsgListener.super.onUnknownCmd(binaryFrameHandler, cmdString, msg); - - // log.debug("{} 收到未知CMD消息 {}", binaryFrameHandler.getRoomId(), cmdString); - } - }, new IDouyuConnectionListener() { - @Override - public void onConnected(DouyuConnectionHandler connectionHandler) { - log.info("{} onConnected", connectionHandler.getRoomId()); - } - - @Override - public void onConnectFailed(DouyuConnectionHandler connectionHandler) { - log.info("{} onConnectFailed", connectionHandler.getRoomId()); - } - - @Override - public void onDisconnected(DouyuConnectionHandler connectionHandler) { - log.info("{} onDisconnected", connectionHandler.getRoomId()); - } - }); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void multipyListeners() throws InterruptedException { - DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() - // TODO 修改房间id(支持短id) - .roomId(74751) - .build(); - - client = new DouyuLiveChatClient(config, null, this); - client.addMsgListener(new IDouyuMsgListener() { - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - log.info("listener 1 onMsg {}", msg); - } - }); - IDouyuMsgListener msgListener2 = new IDouyuMsgListener() { - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - log.info("listener 2 onMsg {}", msg); - } - }; - client.addMsgListener(msgListener2); - AtomicBoolean removed = new AtomicBoolean(false); - client.addMsgListener(new IDouyuMsgListener() { - @Override - public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { - log.info("listener 3 onMsg {}", msg); - if (!removed.get()) { - log.warn("remove listener 2 by listener 3"); - removed.set(client.removeMsgListener(msgListener2)); - } - } - }); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void multiplyClient() throws InterruptedException { - DouyuLiveChatClientConfig config1 = DouyuLiveChatClientConfig.builder().roomId(890074).build(); - DouyuLiveChatClient client1 = new DouyuLiveChatClient(config1, DouyuLiveChatClientTest.this, DouyuLiveChatClientTest.this); - - DouyuLiveChatClientConfig config2 = DouyuLiveChatClientConfig.builder().roomId(718133).build(); - DouyuLiveChatClient client2 = new DouyuLiveChatClient(config2, DouyuLiveChatClientTest.this, DouyuLiveChatClientTest.this); - - client1.connect(() -> { - log.warn("client1 connect successfully, start connecting client2"); - client2.connect(() -> { - log.warn("client2 connect successfully"); - }); - }); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void sendDanmu() throws InterruptedException { - String cookie = "dy_did=621fbe7a636002f6e6cc42eb00091701; acf_did=621fbe7a636002f6e6cc42eb00091701; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1706978160; PHPSESSID=5mg98bkoens5bsg7da6ooj74b7; acf_auth=2a246MCoU1hPn940VxZrs0wQVc8tY96s6rHocobTmUJF8XKjoxWmv51PLf1V4T5g8QiEAyy6u%2BHQfC%2FTNkJudUVdEowNqAF81eaUzHvo5i1MIXBRbDXYXwY; dy_auth=d066mz7%2BE83QjmEJfujfi%2FyOuib9Y2qfBcK7pINX6Gde4HGRaiWZxhNXkqdbLU1aV%2FXaQ0wbkyxV0DddiF9jBc4tMpCMjvi4a1C6EJTfpLHvMmaGBKlI%2FlQ; wan_auth37wan=b747c445309bcOqiaMF72xt346irN4v%2Fhi%2BgabHCNxe812jm9rR8kGws8cdJlsn0C6jxsVKY6We5xWlrjHKesoD2%2B0Av52%2FWzIxaZKT0f30GASOJz58; acf_uid=145703733; acf_username=145703733; acf_nickname=%E5%9B%BE%E5%85%94%E5%85%94%E7%9A%84%E5%85%94%E5%85%94%E5%9B%BE; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favanew%2Fface%2F201706%2F25%2F21%2F82973545fd6b770fe03175783ffbc3d5_; acf_ct=0; acf_ltkid=28814429; acf_biz=1; acf_stk=0fad5f2454193f86; dy_teen_mode=%7B%22uid%22%3A%22145703733%22%2C%22status%22%3A0%2C%22birthday%22%3A%22%22%2C%22password%22%3A%22%22%7D; dy_did=621fbe7a636002f6e6cc42eb00091701; acf_ccn=5ba506efe2d8a939cf09f8597c7d8030; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1706978671"; - // log.error("cookie: {}", cookie); - DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() - .cookie(cookie) - // TODO 修改弹幕发送最短时间间隔,默认3s - .minSendDanmuPeriod(10 * 1000) - // TODO 修改房间id(支持短id) - .roomId(4624967) - .build(); - DouyuWsLiveChatClient client = new DouyuWsLiveChatClient(config, new IDouyuMsgListener() { - @Override - public void onMsg(IMsg msg) { - IDouyuMsgListener.super.onMsg(msg); - -// log.debug("收到消息 {}", msg.getClass()); - } - - @Override - public void onCmdMsg(DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { - log.debug("收到CMD消息 {} {}", cmd, cmdMsg); - } - - @Override - public void onEnterRoomMsg(UenterMsg msg) { - log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - @Override - public void onUnknownCmd(String cmdString, BaseMsg msg) { - IDouyuMsgListener.super.onUnknownCmd(cmdString, msg); - - log.debug("收到未知CMD消息 {} {}", cmdString, msg); - } - }, new IDouyuConnectionListener() { - @Override - public void onConnected(DouyuConnectionHandler connectionHandler) { - log.error("{} onConnected", connectionHandler.getRoomId()); - } - - @Override - public void onConnectFailed(DouyuConnectionHandler connectionHandler) { - log.error("{} onConnectFailed", connectionHandler.getRoomId()); - } - - @Override - public void onDisconnected(DouyuConnectionHandler connectionHandler) { - log.error("{} onDisconnected", connectionHandler.getRoomId()); - } - }, new NioEventLoopGroup()); - client.connect(() -> { - client.sendDanmu("主播真好看"); - }); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void createAuthFrameFailedAndDisconnect() throws InterruptedException { - DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() - // TODO 修改房间id(支持短id) - .autoReconnect(false) - .cookie("12323232'123'213'2'13'2") - .roomId(22222) - .build(); - - client = new DouyuLiveChatClient(config, this, this); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void autoReconnect() throws InterruptedException { - DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() - // TODO 修改房间id(支持短id) - .autoReconnect(true) - .cookie("12323232'123'213'2'13'2") -// .websocketUri("wss://sa.asd.asd:12") - .roomId(22222) - .build(); - - client = new DouyuLiveChatClient(config, this, this); - client.addStatusChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - Object oldStatus = evt.getOldValue(); - Object newStatus = evt.getNewValue(); - log.error("{} => {}", oldStatus, newStatus); - } - }); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Override - public void onConnected(DouyuConnectionHandler connectionHandler) { - log.info("{} onConnected", connectionHandler.getRoomId()); - } - - @Override - public void onConnectFailed(DouyuConnectionHandler connectionHandler) { - log.info("{} onConnectFailed", connectionHandler.getRoomId()); - } - - @Override - public void onDisconnected(DouyuConnectionHandler connectionHandler) { - log.info("{} onDisconnected", connectionHandler.getRoomId()); - } - - @Override - public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { - IDouyuMsgListener.super.onDanmuMsg(binaryFrameHandler, msg); - - log.info("{} 收到弹幕 {}({}):{}", binaryFrameHandler.getRoomId(), msg.getNn(), msg.getUid(), msg.getTxt()); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java deleted file mode 100644 index 7ab7d80b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java +++ /dev/null @@ -1,104 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.client; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.Getter; - -import java.io.Serializable; - -/** - * 描述: - * - * @author https:www.unfbx.com - * @since 2023-03-02 - */ -@Data -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -public class Message implements Serializable { - - /** - * 目前支持四个中角色参考官网,进行情景输入: - * https://platform.openai.com/docs/guides/chat/introduction - */ - private String role; - - private String content; - - private String name; - - public static Builder builder() { - return new Builder(); - } - - /** - * 构造函数 - * - * @param role 角色 - * @param content 描述主题信息 - * @param name name - */ - public Message(String role, String content, String name) { - this.role = role; - this.content = content; - this.name = name; - } - - public Message() { - } - - private Message(Builder builder) { - setRole(builder.role); - setContent(builder.content); - setName(builder.name); - } - - - @Getter - @AllArgsConstructor - public enum Role { - - SYSTEM("system"), - USER("user"), - ASSISTANT("assistant"), - FUNCTION("function"), - ; - private String name; - } - - public static final class Builder { - private String role; - private String content; - private String name; - - public Builder() { - } - - public Builder role(Role role) { - this.role = role.getName(); - return this; - } - - public Builder role(String role) { - this.role = role; - return this; - } - - public Builder content(String content) { - this.content = content; - return this; - } - - public Builder name(String name) { - this.name = name; - return this; - } - - - public Message build() { - return new Message(this); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java deleted file mode 100644 index 5595bc08..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java +++ /dev/null @@ -1,24 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.client; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * 描述: - * - * @author https:www.unfbx.com - * 2023-02-15 - */ -@Data -@JsonIgnoreProperties(ignoreUnknown = true) -public class Usage implements Serializable { - @JsonProperty("prompt_tokens") - private long promptTokens; - @JsonProperty("completion_tokens") - private long completionTokens; - @JsonProperty("total_tokens") - private long totalTokens; -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java deleted file mode 100644 index b4d72604..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java +++ /dev/null @@ -1,102 +0,0 @@ -package tech.ordinaryroad.live.chat.client.douyu.util; - -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; -import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -/** - * @author mjz - * @date 2023/8/27 - */ -class DouyuCodecUtilTest { - - @Test - void test() { - String loginres = "type@=loginres/userid@=1235403446/roomgroup@=0/pg@=0/sessionid@=0/username@=/nickname@=/live_stat@=0/is_illegal@=0/ill_ct@=/ill_ts@=0/now@=0/ps@=0/es@=0/it@=0/its@=0/npv@=0/best_dlev@=0/cur_lev@=0/nrc@=2785047409/ih@=0/sid@=72256/sahf@=0/sceneid@=0/newrg@=0/regts@=0/ip@=112.43.93.229/rn@=0/rct@=0/"; - String pingreq = "type@=pingreq/tick@=1693128084471/"; - String mrkl = "type@=mrkl/"; - String subres = "type@=subres/res@=0/"; - String mapkb = "type@=mapkb/cmd@=3/rid@=5515841/pk_time@=600/lt@=156/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/members@=rid@AA=5515841@ASuid@AA=219585944@ASnick@AA=喵小莎@ASicon@AA=avatar_v3@AAS202303@AAS4cab38d935004acfab53f77a730c9d42@ASstatus@AA=0@ASsc@AA=100000@AStime@AA=1693127363@ASteam@AA=3@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8733064@ASuid@AA=364378905@ASnick@AA=阿允唱情歌@ASicon@AA=avatar_v3@AAS202008@AAS31b239d8af174462b5e0a2990c70b818@ASstatus@AA=0@ASsc@AA=600000@AStime@AA=1693127527@ASteam@AA=6@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=10673032@ASuid@AA=442218984@ASnick@AA=果酱Broly@ASicon@AA=avatar_v3@AAS202306@AASf7d61a0ea3bb4c179af7b5e24f94953e@ASstatus@AA=0@ASsc@AA=200@AStime@AA=1693127347@ASteam@AA=1@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=533813@ASuid@AA=36922190@ASnick@AA=正直博@ASicon@AA=avatar_v3@AAS202212@AAS4e340983996f43b991ffa50af7b956f6@ASstatus@AA=0@ASsc@AA=302000@AStime@AA=1693127348@ASteam@AA=2@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8031896@ASuid@AA=243111494@ASnick@AA=青榎@ASicon@AA=avatar_v3@AAS202305@AAS8bd800d3bb8d4e16884dcb3e3f77b038@ASstatus@AA=0@ASsc@AA=456000@AStime@AA=1693127393@ASteam@AA=4@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=7009686@ASuid@AA=299482114@ASnick@AA=紫薇同学@ASicon@AA=avatar_v3@AAS202302@AASb67044b78b494b0896fd6738bc2d5b7b@ASstatus@AA=0@ASsc@AA=660000@AStime@AA=1693127424@ASteam@AA=5@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@S/subcmd@=0/pkm@=0/rlt@=0/"; - String pdrinfo = "giftId@=23518/total@=total@A=3@Snum@A=0@Sfin@A=0@S/actStatus@=1/time@=1693158017596/type@=pdrinfo/dayFin@=0/list@=1@A=total@AAA=6@AASnum@AAA=6@AASpid@AAA=2682@AASfin@AAA=1@AAS@AStotal@AAA=600@AASnum@AAA=336@AASpid@AAA=2680@AASfin@AAA=0@AAS@AS@S100@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2685@AASfin@AAA=0@AAS@AStotal@AAA=100@AASnum@AAA=5@AASpid@AAA=2682@AASfin@AAA=0@AAS@AS@S10@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2683@AASfin@AAA=0@AAS@AStotal@AAA=80@AASnum@AAA=35@AASpid@AAA=2681@AASfin@AAA=0@AAS@AS@S/"; - - Map map = new HashMap<>(); - map.put("loginres", loginres); - map.put("pingreq", pingreq); - map.put("mrkl", mrkl); - map.put("subres", subres); - map.put("mapkb", mapkb); - map.put("pdrinfo", pdrinfo); - - map.forEach((string, string2) -> { - BaseDouyuCmdMsg baseDouyuCmdMsg = (BaseDouyuCmdMsg) DouyuCodecUtil.parseDouyuSttString(string2, DouyuCodecUtil.MSG_TYPE_RECEIVE); - assertNotNull(baseDouyuCmdMsg); - String cmd = baseDouyuCmdMsg.getCmd(); - assertEquals(string, cmd); - }); - } - - @Test - void decodeTest() { - String mapkb = "type@=mapkb/cmd@=3/rid@=5515841/pk_time@=600/lt@=156/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/members@=rid@AA=5515841@ASuid@AA=219585944@ASnick@AA=喵小莎@ASicon@AA=avatar_v3@AAS202303@AAS4cab38d935004acfab53f77a730c9d42@ASstatus@AA=0@ASsc@AA=100000@AStime@AA=1693127363@ASteam@AA=3@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8733064@ASuid@AA=364378905@ASnick@AA=阿允唱情歌@ASicon@AA=avatar_v3@AAS202008@AAS31b239d8af174462b5e0a2990c70b818@ASstatus@AA=0@ASsc@AA=600000@AStime@AA=1693127527@ASteam@AA=6@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=10673032@ASuid@AA=442218984@ASnick@AA=果酱Broly@ASicon@AA=avatar_v3@AAS202306@AASf7d61a0ea3bb4c179af7b5e24f94953e@ASstatus@AA=0@ASsc@AA=200@AStime@AA=1693127347@ASteam@AA=1@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=533813@ASuid@AA=36922190@ASnick@AA=正直博@ASicon@AA=avatar_v3@AAS202212@AAS4e340983996f43b991ffa50af7b956f6@ASstatus@AA=0@ASsc@AA=302000@AStime@AA=1693127348@ASteam@AA=2@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8031896@ASuid@AA=243111494@ASnick@AA=青榎@ASicon@AA=avatar_v3@AAS202305@AAS8bd800d3bb8d4e16884dcb3e3f77b038@ASstatus@AA=0@ASsc@AA=456000@AStime@AA=1693127393@ASteam@AA=4@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=7009686@ASuid@AA=299482114@ASnick@AA=紫薇同学@ASicon@AA=avatar_v3@AAS202302@AASb67044b78b494b0896fd6738bc2d5b7b@ASstatus@AA=0@ASsc@AA=660000@AStime@AA=1693127424@ASteam@AA=5@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@S/subcmd@=0/pkm@=0/rlt@=0/"; - Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(mapkb); - assertNotNull(stringObjectMap); - stringObjectMap.forEach((string, o) -> { - System.out.println(string); - }); - } - - @Test - void decodeTest2() { - String pdrinfo = "giftId@=23518/total@=total@A=3@Snum@A=0@Sfin@A=0@S/actStatus@=1/time@=1693158017596/type@=pdrinfo/dayFin@=0/list@=1@A=total@AAA=6@AASnum@AAA=6@AASpid@AAA=2682@AASfin@AAA=1@AAS@AStotal@AAA=600@AASnum@AAA=336@AASpid@AAA=2680@AASfin@AAA=0@AAS@AS@S100@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2685@AASfin@AAA=0@AAS@AStotal@AAA=100@AASnum@AAA=5@AASpid@AAA=2682@AASfin@AAA=0@AAS@AS@S10@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2683@AASfin@AAA=0@AAS@AStotal@AAA=80@AASnum@AAA=35@AASpid@AAA=2681@AASfin@AAA=0@AAS@AS@S/"; - Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(pdrinfo); - assertNotNull(stringObjectMap); - stringObjectMap.forEach((string, o) -> { - System.out.println(string); - }); - } - - @Test - void toDouyuSttStringTest() { - String douyuSttString = DouyuCodecUtil.toDouyuSttString(new HashMap() {{ - put("key1", "value1"); - put("key2", 2); - put("key3", new ArrayList>() {{ - add(new HashMap() {{ - put("11", 11); - put("12", 12); - }}); - add(new HashMap() {{ - put("21", 21); - put("22", 22); - }}); - }}); - }}); - System.out.println(douyuSttString); - assertEquals("key1@=value1/key2@=2/key3@=11@AA=11@AS12@AA=12@AS@S22@AA=22@AS21@AA=21@AS@S/".length(), douyuSttString.length()); - } - - @Test - void codecTest() { - String mapkb = "type@=mapkb/pk_time@=600/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/"; - IDouyuMsg iDouyuMsg = DouyuCodecUtil.parseDouyuSttString(mapkb, DouyuCodecUtil.MSG_TYPE_RECEIVE); - String douyuSttString = DouyuCodecUtil.toDouyuSttString(iDouyuMsg); - System.out.println(mapkb); - System.out.println(douyuSttString); - assertEquals(mapkb.length(), douyuSttString.length()); - IDouyuMsg douyuSttStringMsg = DouyuCodecUtil.parseDouyuSttString(douyuSttString, DouyuCodecUtil.MSG_TYPE_RECEIVE); - assertNotNull(douyuSttStringMsg); - } - - @Test - void unescape() { - String unescape = DouyuCodecUtil.unescape("team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S"); - System.out.println(unescape); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml deleted file mode 100644 index ff7529a5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - 4.0.0 - - org.ruoyi - live-chat-clients - ${revision} - ../pom.xml - - jar - - live-chat-client-huya - live-chat-client-huya - - - UTF-8 - - - - - org.ruoyi - live-chat-client-servers-netty-client - - - - com.tencent.tars - tars-core - - - - ch.qos.logback - logback-classic - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java deleted file mode 100644 index bd891301..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.api; - -import cn.hutool.core.util.ReUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpStatus; -import cn.hutool.http.HttpUtil; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import lombok.Cleanup; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; - -import java.util.HashMap; -import java.util.Map; - -import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; - -/** - * API简易版 - *
- * vplayerUI.js - *
- * taf-signal.global.0.0.4.prod.js - * - * @author mjz - * @date 2023/9/5 - */ -@Slf4j -public class HuyaApis { - - // TODO TimedCache - public static final Map GIFT_ITEMS = new HashMap<>(); - - public static JsonNode roomInit(Object roomId) { - @Cleanup - HttpResponse response = createGetRequest("https://www.huya.com/" + roomId, null).execute(); - if (response.getStatus() != HttpStatus.HTTP_OK) { - throw new BaseException("获取" + roomId + "真实房间ID失败"); - } - String body = response.body(); - String lSubChannelId = ReUtil.getGroup1("\"lp\"\\D+(\\d+)", body); - String lChannelId = ReUtil.getGroup1("\"lp\"\\D+(\\d+)", body); - String lYyid = ReUtil.getGroup1("\"yyid\"\\D+(\\d+)", body); - ObjectNode objectNode = OBJECT_MAPPER.createObjectNode(); - objectNode.put("lSubChannelId", StrUtil.emptyToDefault(lSubChannelId, "0")); - objectNode.put("lChannelId", StrUtil.emptyToDefault(lChannelId, "0")); - objectNode.put("lYyid", lYyid); - return objectNode; - } - - public static HttpRequest createGetRequest(String url, String cookies) { - return HttpUtil.createGet(url) - .cookie(cookies); - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java deleted file mode 100644 index ecad0b3c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.client; - -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; -import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaConnectionListener; -import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; -import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaConnectionHandler; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; - -import java.util.List; -import java.util.function.Consumer; - -/** - * 虎牙直播间弹幕客户端 - * - * @author mjz - * @date 2023/8/20 - */ -@Slf4j -public class HuyaLiveChatClient extends BaseNettyClient< - HuyaLiveChatClientConfig, - HuyaCmdEnum, - IHuyaMsg, - IHuyaMsgListener, - HuyaConnectionHandler, - HuyaBinaryFrameHandler> { - - public HuyaLiveChatClient(HuyaLiveChatClientConfig config, List msgListeners, IHuyaConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListeners(msgListeners); - - // 初始化 - this.init(); - } - - public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener, IHuyaConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListener(msgListener); - - // 初始化 - this.init(); - } - - public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener, IHuyaConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener) { - this(config, msgListener, null, new NioEventLoopGroup()); - } - - public HuyaLiveChatClient(HuyaLiveChatClientConfig config) { - this(config, null); - } - - - @Override - public HuyaConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - return new HuyaConnectionHandler( - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), - HuyaLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public HuyaBinaryFrameHandler initBinaryFrameHandler() { - return new HuyaBinaryFrameHandler(super.msgListeners, HuyaLiveChatClient.this); - } - - @Override - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - if (!checkCanSendDanmu()) { - return; - } - - if (danmu instanceof String) { - String msg = (String) danmu; - if (log.isDebugEnabled()) { - log.debug("{} huya发送弹幕 {}", getConfig().getRoomId(), danmu); - } - - WebSocketFrame webSocketFrame = null; - try { - webSocketFrame = HuyaWebSocketFrameFactory.getInstance(getConfig().getRoomId()).createSendMessageReq(msg, getConfig().getVer(), getConfig().getCookie()); - } catch (Exception e) { - log.error("huya弹幕包创建失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (webSocketFrame == null) { - return; - } - - send(webSocketFrame, () -> { - if (log.isDebugEnabled()) { - log.debug("huya弹幕发送成功 {}", danmu); - } - if (success != null) { - success.run(); - } - finishSendDanmu(); - }, throwable -> { - log.error("huya弹幕发送失败", throwable); - if (failed != null) { - failed.accept(throwable); - } - }); - } else { - super.sendDanmu(danmu); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java deleted file mode 100644 index 176bc74d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.config; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; - -/** - * 直播间弹幕客户端配置 - * - * @author mjz - * @date 2023/9/5 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public class HuyaLiveChatClientConfig extends BaseNettyClientConfig { - - public static final String VER = "2309271152"; - - @Builder.Default -// private String websocketUri = "wss://wsapi.huya.com:443"; - private String websocketUri = "wss://cdnws.api.huya.com:443"; - - @Builder.Default - private int aggregatorMaxContentLength = 64 * 1024 * 1024; - - @Builder.Default - private int maxFramePayloadLength = 64 * 1024 * 1024; - - @Builder.Default - private String ver = VER; - - @Builder.Default - private String exp = "15547.23738,16582.25335,32083.50834"; - - @Builder.Default - private String appSrc = "HUYA&ZH&2052"; - - public void setVer(String ver) { - String oldValue = this.ver; - this.ver = ver; - super.propertyChangeSupport.firePropertyChange("ver", oldValue, ver); - } - - public void setExp(String exp) { - String oldValue = this.exp; - this.exp = exp; - super.propertyChangeSupport.firePropertyChange("exp", oldValue, exp); - } - - public void setAppSrc(String appSrc) { - String oldValue = this.appSrc; - this.appSrc = appSrc; - super.propertyChangeSupport.firePropertyChange("appSrc", oldValue, appSrc); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java deleted file mode 100644 index 48ddedfc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaClientTemplateTypeEnum { - - TPL_PC(64), - TPL_WEB(32), - TPL_JIEDAI(16), - TPL_TEXAS(8), - TPL_MATCH(4), - TPL_HUYAAPP(2), - TPL_MIRROR(1), - ; - - private final int code; - - public static HuyaClientTemplateTypeEnum getByCode(int code) { - for (HuyaClientTemplateTypeEnum value : values()) { - if (value.getCode() == code) { - return value; - } - } - return null; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java deleted file mode 100644 index e47b2c26..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java +++ /dev/null @@ -1,206 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaCmdEnum { - - NobleNotice(1001), - // NobleEnterNotice(1002), - NobleEnterNotice(1005), - NobleLevelNotice(1006), - MessageNotice(1400), - // ExpressionEmoticonNotice(1420), - ExpressionEmoticonNotice(1422), - OpenEmojiTrialNotice(1441), - SubscribeInfoNotify(3104), - PublicMessageAreaGuideWindow(6074), - // WeekStarPropsIds(6100), - WeekStarPropsIdsTab(6102), - /** - * https://dev.huya.com/docs/miniapp/dev/scenario/vip-event/ - */ - VipEnterBanner(6110), - VipBarListStatInfo(6211), - EnterPushInfo(6200), - GameAdvertisement(6201), - ViewerListRsp(6203), - VipBarListRsp(6210), - UserWeekRankScoreInfo(6219), - WeekRankListRsp(6220), - WeekRankEnterBanner(6221), - FansSupportListRsp(6223), - FansRankListRsp(6230), - BadgeInfo(6231), - BadgeScoreChanged(6232), - FansInfoNotice(6233), - UserGiftNotice(6234), - WeekStarPropsIds(6235), - SuperFansExtendInfo(6245), - TrialFansBadgeScoreChanged(6246), - GuardianCountChangedNotice(6249), - GiftBarRsp(6250), - GrandCeremonyChampionPresenter(6260), - LotteryAnnounce(6289), - NewsTicker(6290), - SendItemSubBroadcastPacket(6501), - SendItemNoticeWordBroadcastPacket(6502), - ShowScreenSkinNotify(6640), - HideScreenSkinNotify(6641), - ActivetyBarrageNotice(6650), - BannerNotice(6291), - // OnTVPanel(6294), - OnTVPanel(6295), - OnTVData(6296), - OnTVEndNotice(6297), - OnTVBarrageNotice(6298), - CheckRoomStatus(6340), - SendItemNoticeGameBroadcastPacket(6507), - SendItemActivityNoticeBroadcastPacket(6508), - SendItemOtherBroadcastPacket(6514), - GiftStatusNotify(6515), - ActivitySpecialNoticeBroadcastPacket(6540), - UserDIYMountsChanged(6575), - ObtainDecoNotify(6590), - TreasureResultBroadcastPacket(6602), - TreasureUpdateNotice(6604), - TreasureLotteryResultNoticePacket(6605), - TreasureBoxPanel(6606), - TreasureBoxBigAwardNotice(6607), - ItemLotterySubNotice(6616), - ItemLotteryGameNotice(6617), - FansBadgeLevelUpNotice(6710), - FansPromoteNotice(6711), - ActCommPanelChangeNotify(6647), - MatchRaffleResultNotice(7055), - BatchGameInfoNotice(7500), - GameInfoChangeNotice(7501), - EndHistoryGameNotice(7502), - GameSettlementNotice(7503), - PresenterEndGameNotice(7504), - // PresenterLevelNotice(7708), - PresenterLevelNotice(7709), - EffectsConfChangeNoticeMsg(7772), - BeginLiveNotice(8000), - EndLiveNotice(8001), - StreamSettingNotice(8002), - LiveInfoChangedNotice(8004), - AttendeeCountNotice(8006), - ReplayPresenterInLiveNotify(9010), - RoomAuditWarningNotice(10039), - AuditorEnterLiveNotice(10040), - AuditorRoleChangeNotice(10041), - GetRoomAuditConfRsp(10042), - UserConsumePrivilegeChangeNotice(10047), - LinkMicStatusChangeNotice(42008), - InterveneCountRsp(44000), - UserLevelUpgradeNotice(1000106), - PushUserLevelTaskCompleteNotice(1130055), - GuardianPresenterInfoNotice(1020001), - SupportCampInfoRsp(1025300), - UserSupportCampRsp(1025301), - UserSupportEffectRsp(1025302), - WSRedirect(1025305), - HuYaUdbNotify(10220051), - infoBody(10220053), - UnionAuthPushMsg(10220054), - RMessageNotify(1025000), - PushPresenterAdNotice(1025493), - RoomAdInfo(1025504), - // PushAdInfo(1025562), -// PushAdInfo(1025564), - PushAdInfo(1025566), - // AdExtServer.PushOfflineInfo(1025569), - WSP2POpenNotify(1025307), - WSP2PCloseNotify(1025308), - LiveMeetingSyncNotice(1025601), - MakeFriendsPKInfo(1025604), - LiveRoomTransferNotice(1025605), - GetPugcVipListRsp(1025800), - PugcVipInfo(1025801), - StreamChangeNotice(100000), - PayLiveRoomNotice(1033001), - MatchEndNotice(1034001), - LiveRoomProfileChangedNotice(1035400), - ACOrderInfo(1060003), - // WEBACT.Message(108e4), - MultiPKNotice(1090007), - MultiPKPanelInfo(1090009), - AiBarrageDetectNotify(1100003), - FloatMomentNotice(1130050), - FloatBallNotice(1130052), - VoiceMuteJsonInfo(1200000), - PixelateInfo(1200001), - // MpsDeliverData(1210000), - MpsDeliverData(1220000), - ActivityMsgRsp(1010003), - // Message(1040000), - Message(1040002), - LiveEventMessage(1040003), - LiveViewLimitChangeNotice(1035100), - PrivilegeRenewalNotice(1035101), - MatchRecLiveInfo(1029001), - GetBattleTeamInfoRsp(1029002), - // MatchGuess.MatchCmdColorNotify(1025312), - GameStatusInfo(1130003), - MatchPlaybackPointNotice(1150001), - PushFaceDirectorCurrentProgram(1130070), - JoinSplitScreenNotice(1500001), - LeaveSplitScreenNotice(1500002), - GameLivePromoteNotify(1800009), - MotorcadeGatherBeginNotice(2000001), - MotorcadeGatherEndNotice(2000002), - MotorcadeGatherResponseNotice(2000003), - MotorcadeActivityPanel(2000041), - MessageRichTextNotice(2001231), - MultiVideoSyncNotice(2400001), - PassParcelChangeNotify(2400002), - MatchLiveCommentorChangeNotify(2400020), - MessageEasterEggNotice(2001203), - MessageEasterEggToastNotice(2001202), - UserFollowStrollIconNotice(2410001), - UserFollowStrollBarrageNotice(2410002), -// LiveMatch.MatchLiveRoomRecMsg(2500406), - ; - - private final long code; - - public static HuyaCmdEnum getByCode(long code) { - for (HuyaCmdEnum value : HuyaCmdEnum.values()) { - if (value.code == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java deleted file mode 100644 index 834af679..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaDecorationAppTypeEnum { - - kDecorationAppTypeCommon(100), - kDecorationAppTypeContentBubble(5000), - kDecorationAppTypeContentBubbleNew(5001), - kDecorationAppTypeEffectsMessenger(5002), - kDecorationAppTypeMsgInterConnect(5010), - kDecorationAppTypeMsgLocation(5011), - kDecorationAppTypeChannel(10000), - kDecorationAppTypeGuildAdmin(10090), - kDecorationAppTypeAdmin(10100), - kDecorationAppTypeDaiyanClub(10150), - kDecorationAppTypeNoble(10200), - KDecorationAppTypeGuildVip(10210), - kDecorationAppTypeGuard(10300), - kDecorationAppTypeDiamondUser_V2(10310), - kDecorationAppTypeTeamMedalV2(10350), - kDecorationAppTypeTrialFans(10399), - kDecorationAppTypeFans(10400), - kDecorationAppTypeWatchTogetherVip(10425), - kDecorationAppTypeTeamMedal(10450), - kDecorationAppTypeVIP(10500), - kDecorationAppTypeUserProfile(10560), - kDecorationAppTyperPurpleDiamond(10600), - kDecorationAppTypeStamp(10700), - KDecorationAppTypeNobleEmoticon(10800), - KDecorationAppTypeAnotherAi(10801), - KDecorationAppTypePresenter(10900), - KDecorationAppTypeFirstRecharge(11000), - kDecorationAppTypeCheckRoom(11100), - kDecorationAppTypeTWatch(11101), - kDecorationAppTypeEasterEgg(11102), - kDecorationAppTypeRepeatMessengeFilter(11103), - kDecorationAppTypeEasterEggCounter(11104), - kDecorationAppTypeACOrderIntimacy(12001), - kDecorationAppTypeSuperWord(13000), - kDecorationAppTypeDiamondUser(14000), - kDecorationAppTypeRedBag(15000), - kDecorationAppTypeUsrAvatarDeco(100009), - kDecorationAppTypeUsrBeautyId(100100), - ; - - private final int code; - - public static HuyaDecorationAppTypeEnum getByCode(int code) { - for (HuyaDecorationAppTypeEnum value : values()) { - if (value.getCode() == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java deleted file mode 100644 index 3e1318bd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaDecorationViewTypeEnum { - - kDecorationViewTypeCustomized(0), - kDecorationViewTypeText(1), - kDecorationViewTypeIcon(2), - kDecorationViewTypeSuperWord(4), - ; - - private final int code; - - public static HuyaDecorationViewTypeEnum getByCode(int code) { - for (HuyaDecorationViewTypeEnum value : values()) { - if (value.getCode() == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java deleted file mode 100644 index 830c6f46..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaGenderEnum { - - MALE(0), - FEMALE(1), - ; - private final int code; - - public static HuyaGenderEnum getByCode(int code) { - for (HuyaGenderEnum value : values()) { - if (value.getCode() == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java deleted file mode 100644 index ce93ab6a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaLiveSource { - - PC_YY(0), - PC_HUYA(1), - MOBILE_HUYA(2), - WEB_HUYA(3), - ; - - private final int code; - - public static HuyaLiveSource getByCode(int code){ - for (HuyaLiveSource value : values()) { - if (value.getCode()==code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java deleted file mode 100644 index dca59798..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaOperationEnum { - EWSCmd_NULL(0), - EWSCmd_RegisterReq(1), - EWSCmd_RegisterRsp(2), - EWSCmd_WupReq(3), - EWSCmd_WupRsp(4), - EWSCmdC2S_HeartBeat(5), - EWSCmdS2C_HeartBeatAck(6), - EWSCmdS2C_MsgPushReq(7), - EWSCmdC2S_DeregisterReq(8), - EWSCmdS2C_DeRegisterRsp(9), - EWSCmdC2S_VerifyCookieReq(10), - EWSCmdS2C_VerifyCookieRsp(11), - EWSCmdC2S_VerifyHuyaTokenReq(12), - EWSCmdS2C_VerifyHuyaTokenRsp(13), - EWSCmdC2S_UNVerifyReq(14), - EWSCmdS2C_UNVerifyRsp(15), - EWSCmdC2S_RegisterGroupReq(16), - EWSCmdS2C_RegisterGroupRsp(17), - EWSCmdC2S_UnRegisterGroupReq(18), - EWSCmdS2C_UnRegisterGroupRsp(19), - EWSCmdC2S_HeartBeatReq(20), - EWSCmdS2C_HeartBeatRsp(21), - EWSCmdS2C_MsgPushReq_V2(22), - EWSCmdC2S_UpdateUserExpsReq(23), - EWSCmdS2C_UpdateUserExpsRsp(24), - EWSCmdC2S_WSHistoryMsgReq(25), - EWSCmdS2C_WSHistoryMsgRsp(26), - EWSCmdS2C_EnterP2P(27), - EWSCmdS2C_EnterP2PAck(28), - EWSCmdS2C_ExitP2P(29), - EWSCmdS2C_ExitP2PAck(30), - EWSCmdC2S_SyncGroupReq(31), - EWSCmdS2C_SyncGroupRsp(32), - EWSCmdC2S_UpdateUserInfoReq(33), - EWSCmdS2C_UpdateUserInfoRsp(34), - EWSCmdC2S_MsgAckReq(35), - EWSCmdS2C_MsgAckRsp(36), - EWSCmdC2S_CloudGameReq(37), - EWSCmdS2C_CloudGamePush(38), - EWSCmdS2C_CloudGameRsp(39), - EWSCmdS2C_RpcReq(40), - EWSCmdC2S_RpcRsp(41), - EWSCmdS2C_RpcRspRsp(42), - EWSCmdC2S_GetStunPortReq(101), - EWSCmdS2C_GetStunPortRsp(102), - EWSCmdC2S_WebRTCOfferReq(103), - EWSCmdS2C_WebRTCOfferRsp(104), - EWSCmdC2S_SignalUpgradeReq(105), - EWSCmdS2C_SignalUpgradeRsp(106), - ; - private final int code; - - public static HuyaOperationEnum getByCode(int code) { - for (HuyaOperationEnum value : HuyaOperationEnum.values()) { - if (value.code == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java deleted file mode 100644 index 3696532e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaStreamLineTypeEnum { - - STREAM_LINE_OLD_YY(0), - STREAM_LINE_WS(1), - STREAM_LINE_NEW_YY(2), - STREAM_LINE_AL(3), - STREAM_LINE_HUYA(4), - STREAM_LINE_TX(5), - STREAM_LINE_CDN(8), - STREAM_LINE_HW(6), - STREAM_LINE_BD(7), - STREAM_LINE_GG(9), - STREAM_LINE_CF(10), - STREAM_LINE_QUICK_HUYA(99), - ; - - private final int code; - - public static HuyaStreamLineTypeEnum getByCode(int code) { - for (HuyaStreamLineTypeEnum value : values()) { - if (value.getCode() == code) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java deleted file mode 100644 index c7e9906e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.constant; - -import cn.hutool.core.util.StrUtil; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@RequiredArgsConstructor -public enum HuyaWupFunctionEnum { - - doLaunch, - speak, - getPropsList, - OnUserHeartBeat, - getLivingInfo, - sendMessage, - ; - - public static HuyaWupFunctionEnum getByName(String name) { - if (StrUtil.isBlank(name)) { - return null; - } - - for (HuyaWupFunctionEnum value : values()) { - if (value.name().equals(name)) { - return value; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java deleted file mode 100644 index caa46741..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.listener; - - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaConnectionHandler; - -/** - * 连接回调 - * - * @author mjz - * @date 2023/9/5 - */ -public interface IHuyaConnectionListener extends IBaseConnectionListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java deleted file mode 100644 index 48e656db..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IEnterRoomMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.MessageNoticeMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.SendItemSubBroadcastPacketMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.VipEnterBannerMsg; -import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; - -/** - * @author mjz - * @date 2023/9/5 - */ -public interface IHuyaMsgListener extends IBaseMsgListener, - IDanmuMsgListener, - IGiftMsgListener, - IEnterRoomMsgListener { -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java deleted file mode 100644 index 9a924f36..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.support.TarsMethodInfo; -import com.qq.tars.protocol.util.TarsHelper; -import com.qq.tars.rpc.protocol.tars.TarsServantRequest; -import com.qq.tars.rpc.protocol.tup.UniAttribute; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; -import io.netty.buffer.Unpooled; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public abstract class BaseWup extends BaseHuyaMsg { - - private TarsServantRequest tarsServantRequest = new TarsServantRequest(null) {{ - setMethodInfo(new TarsMethodInfo()); - }}; - private UniAttribute uniAttribute = new UniAttribute(); - - public BaseWup(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { -// os.write(this.tarsServantRequest.getVersion(), 1); - os.write(TarsHelper.VERSION3, 1); - os.write(this.tarsServantRequest.getPacketType(), 2); - os.write(this.tarsServantRequest.getMessageType(), 3); - os.write(this.tarsServantRequest.getRequestId(), 4); - os.write(this.tarsServantRequest.getServantName(), 5); - os.write(this.tarsServantRequest.getFunctionName(), 6); - os.write(this.uniAttribute.encode(), 7); - os.write(this.tarsServantRequest.getTimeout(), 8); - os.write(this.tarsServantRequest.getContext(), 9); - os.write(this.tarsServantRequest.getStatus(), 10); - } - - @Override - public void readFrom(TarsInputStream is) { - this.tarsServantRequest.setVersion(is.read(this.tarsServantRequest.getVersion(), 1, false)); - this.tarsServantRequest.setPacketType(is.read(this.tarsServantRequest.getPacketType(), 2, false)); - this.tarsServantRequest.setMessageType(is.read(this.tarsServantRequest.getMessageType(), 3, false)); - this.tarsServantRequest.setRequestId(is.read(this.tarsServantRequest.getRequestId(), 4, false)); - this.tarsServantRequest.setServantName(is.read(this.tarsServantRequest.getServantName(), 5, false)); - this.tarsServantRequest.setFunctionName(is.read(this.tarsServantRequest.getFunctionName(), 6, false)); - this.uniAttribute.decode(is.read(new byte[]{}, 7, false)); - this.tarsServantRequest.setTimeout(is.read(this.tarsServantRequest.getTimeout(), 8, false)); - this.tarsServantRequest.setContext(is.readMap(this.tarsServantRequest.getContext(), 9, false)); - this.tarsServantRequest.setStatus(is.readMap(this.tarsServantRequest.getStatus(), 10, false)); - } - - public byte[] encode() { - TarsOutputStream wupTarsOutputStream = new TarsOutputStream(); - this.writeTo(wupTarsOutputStream); - - ByteBuf buffer = Unpooled.buffer(); - buffer.writeInt(4 + wupTarsOutputStream.getByteBuffer().position()); - buffer.writeBytes(wupTarsOutputStream.toByteArray()); - - return ByteBufUtil.getBytes(buffer); - } - - public void decode(byte[] bytes) { - ByteBuf byteBuf = Unpooled.wrappedBuffer(bytes); - int size = byteBuf.readInt(); - if (size < 4) { - return; - } - - bytes = new byte[byteBuf.readableBytes()]; - byteBuf.readBytes(bytes); - this.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(bytes)); - } - - @Override - public String toString() { - Map map = new HashMap<>(); - map.put("version", this.tarsServantRequest.getVersion()); - map.put("packetType", this.tarsServantRequest.getPacketType()); - map.put("messageType", this.tarsServantRequest.getMessageType()); - map.put("requestId", this.tarsServantRequest.getRequestId()); - map.put("servantName", this.tarsServantRequest.getServantName()); - map.put("functionName", this.tarsServantRequest.getFunctionName()); - map.put("timeout", this.tarsServantRequest.getTimeout()); - map.put("context", this.tarsServantRequest.getContext()); - map.put("status", this.tarsServantRequest.getStatus()); - try { - return BaseMsg.OBJECT_MAPPER.writeValueAsString(map); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java deleted file mode 100644 index 75e55e6f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/9/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ConnectParaInfo extends TarsStructBase { - - private long lUid = 0; - private String sGuid = ""; - private String sUA = ""; - private String sAppSrc = ""; - private String sMid = ""; - private String sExp = ""; - private int iTokenType = 0; - private String sToken = ""; - private String sCookie = ""; - private String sTraceId = ""; - private Map mCustomHeaders = new HashMap() {{ - put("", ""); - }}; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sGuid, 1); - os.write(this.sUA, 2); - os.write(this.sAppSrc, 3); - os.write(this.sMid, 4); - os.write(this.sExp, 5); - os.write(this.iTokenType, 6); - os.write(this.sToken, 7); - os.write(this.sCookie, 8); - os.write(this.sTraceId, 9); - os.write(this.mCustomHeaders, 10); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.sGuid = is.read(this.sGuid, 1, false); - this.sUA = is.read(this.sUA, 2, false); - this.sAppSrc = is.read(this.sAppSrc, 3, false); - this.sMid = is.read(this.sMid, 4, false); - this.sExp = is.read(this.sExp, 5, false); - this.iTokenType = is.read(this.iTokenType, 6, false); - this.sToken = is.read(this.sToken, 7, false); - this.sCookie = is.read(this.sCookie, 8, false); - this.sTraceId = is.read(this.sTraceId, 9, false); - this.mCustomHeaders = is.readMap(this.mCustomHeaders, 10, false); - } - - public static ConnectParaInfo newWSConnectParaInfo(String ver, String sExp, String appSrc) { - ConnectParaInfo wsConnectParaInfo = new ConnectParaInfo(); -// wsConnectParaInfo.sGuid = UUID.fastUUID().toString(true); - - wsConnectParaInfo.sUA = String.format("webh5&%s&websocket", ver); - wsConnectParaInfo.sAppSrc = appSrc; - wsConnectParaInfo.sExp = sExp; - wsConnectParaInfo.mCustomHeaders = new HashMap() {{ - put("HUYA_NET", "0"); - put("HUYA_VSDKUA", wsConnectParaInfo.sUA); - }}; - return wsConnectParaInfo; - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java deleted file mode 100644 index 71ed2cc9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.LiveProxyValue; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LiveLaunchRsp extends BaseHuyaMsg { - - private String sGuid = ""; - private int iTime; - private List vProxyList = CollUtil.newArrayList(new LiveProxyValue()); - private int eAccess; - private String sClientIp = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sGuid, 0); - os.write(this.iTime, 1); - os.write(this.vProxyList, 2); - os.write(this.eAccess, 3); - os.write(this.sClientIp, 4); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sGuid = is.read(this.sGuid, 0, false); - this.iTime = is.read(this.iTime, 1, false); - this.vProxyList = is.readArray(this.vProxyList, 2, false); - this.eAccess = is.read(this.eAccess, 3, false); - this.sClientIp = is.read(this.sClientIp, 4, false); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmd_WupRsp; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java deleted file mode 100644 index a0178e5a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; -import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; - -import java.util.List; -import java.util.Optional; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MessageNoticeMsg extends BaseHuyaMsg implements IDanmuMsg { - - private SenderInfo tUserInfo = new SenderInfo(); - private long lTid; - private long lSid; - private String sContent = ""; - private int iShowMode; - private ContentFormat tFormat = new ContentFormat(); - private BulletFormat tBulletFormat = new BulletFormat(); - private int iTermType; - private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); - private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); - private List vAtSomeone = CollUtil.newArrayList(new UidNickName()); - private long lPid; - private List vBulletPrefix = CollUtil.newArrayList(new DecorationInfo()); - private String sIconUrl = ""; - private int iType; - private List vBulletSuffix = CollUtil.newArrayList(new DecorationInfo()); - private List vTagInfo = CollUtil.newArrayList(new MessageTagInfo()); - private SendMessageFormat tSenceFormat = new SendMessageFormat(); - private MessageContentExpand tContentExpand = new MessageContentExpand(); - private int iMessageMode; - - // region 额外属性 - private BadgeInfo badgeInfo; - // endregion - - public MessageNoticeMsg(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tUserInfo, 0); - os.write(this.lTid, 1); - os.write(this.lSid, 2); - os.write(this.sContent, 3); - os.write(this.iShowMode, 4); - os.write(this.tFormat, 5); - os.write(this.tBulletFormat, 6); - os.write(this.iTermType, 7); - os.write(this.vDecorationPrefix, 8); - os.write(this.vDecorationSuffix, 9); - os.write(this.vAtSomeone, 10); - os.write(this.lPid, 11); - os.write(this.vBulletPrefix, 12); - os.write(this.sIconUrl, 13); - os.write(this.iType, 14); - os.write(this.vBulletSuffix, 15); - os.write(this.vTagInfo, 16); - os.write(this.tSenceFormat, 17); - os.write(this.tContentExpand, 18); - os.write(this.iMessageMode, 19); - } - - @Override - public void readFrom(TarsInputStream is) { - this.tUserInfo = (SenderInfo) is.directRead(this.tUserInfo, 0, true); - this.lTid = is.read(this.lTid, 1, true); - this.lSid = is.read(this.lSid, 2, true); - this.sContent = is.readString(3, true); - this.iShowMode = is.read(this.iShowMode, 4, true); - this.tFormat = (ContentFormat) is.directRead(this.tFormat, 5, true); - this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 6, true); - this.iTermType = is.read(this.iTermType, 7, true); - this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 8, true); - this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 9, true); - this.vAtSomeone = is.readArray(this.vAtSomeone, 10, true); - this.lPid = is.read(this.lPid, 11, true); - this.vBulletPrefix = is.readArray(this.vBulletPrefix, 12, false); - this.sIconUrl = is.read(this.sIconUrl, 13, false); - this.iType = is.read(this.iType, 14, false); - this.vBulletSuffix = is.readArray(this.vBulletSuffix, 15, false); - this.vTagInfo = is.readArray(this.vTagInfo, 16, false); - this.tSenceFormat = (SendMessageFormat) is.directRead(this.tSenceFormat, 17, false); - this.tContentExpand = (MessageContentExpand) is.directRead(this.tContentExpand, 18, false); - this.iMessageMode = is.read(this.iMessageMode, 19, false); - - // 解析额外属性 - for (DecorationInfo decorationPrefix : vDecorationPrefix) { - Optional optional = HuyaCodecUtil.decodeDecorationInfo(decorationPrefix); - if (optional.isPresent()) { - TarsStructBase tarsStructBase = optional.get(); - if (tarsStructBase instanceof BadgeInfo) { - this.badgeInfo = (BadgeInfo) tarsStructBase; - break; - } - } - } - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; - } - - @Override - public String getBadgeName() { - if (this.badgeInfo == null) { - return ""; - } - - return this.badgeInfo.getSBadgeName(); - } - - @Override - public byte getBadgeLevel() { - if (this.badgeInfo == null) { - return 0; - } - - return (byte) this.badgeInfo.getIBadgeLevel(); - } - - @Override - public String getUid() { - if (this.tUserInfo == null) { - return null; - } - - return Long.toString(this.tUserInfo.getLUid()); - } - - @Override - public String getUsername() { - if (this.tUserInfo == null) { - return ""; - } - - return this.tUserInfo.getSNickName(); - } - - @Override - public String getUserAvatar() { - if (this.tUserInfo == null) { - return ""; - } - - return this.tUserInfo.getSAvatarUrl(); - } - - @Override - public String getContent() { - return this.sContent; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java deleted file mode 100644 index 9008d882..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaCmdMsg; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PushMessage extends BaseHuyaCmdMsg { - - private int ePushType; - private byte[] dataBytes; - private int iProtocolType; - private String sGroupId = ""; - private long lMsgId; - private int iMsgTag; - - public PushMessage(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.ePushType, 0); - os.write(super.getLUri(), 1); - os.write(this.dataBytes, 2); - os.write(this.iProtocolType, 3); - os.write(this.sGroupId, 4); - os.write(this.lMsgId, 5); - os.write(this.iMsgTag, 6); - - } - - @Override - public void readFrom(TarsInputStream is) { - this.ePushType = is.read(this.ePushType, 0, true); - super.setLUri(is.read(super.getLUri(), 1, true)); - this.dataBytes = is.read(this.dataBytes, 2, true); - this.iProtocolType = is.read(this.iProtocolType, 3, true); - this.sGroupId = is.read(this.sGroupId, 4, true); - this.lMsgId = is.read(this.lMsgId, 5, true); - this.iMsgTag = is.read(this.iMsgTag, 6, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java deleted file mode 100644 index a9aa3b16..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgItem; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PushMessage_V2 extends BaseHuyaMsg { - - private String sGroupId; - private List vMsgItem = CollUtil.newArrayList(new MsgItem()); - - public PushMessage_V2(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sGroupId, 0); - os.write(this.vMsgItem, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sGroupId = is.read(this.sGroupId, 0, true); - this.vMsgItem = is.readArray(this.vMsgItem, 1, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java deleted file mode 100644 index 1060ae58..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class RegisterGroupRsp extends BaseHuyaMsg { - - private int iResCode; - private List vSupportP2PGroupId = CollUtil.newArrayList(""); - - public RegisterGroupRsp(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iResCode, 0); - os.write(this.vSupportP2PGroupId, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iResCode = is.read(this.iResCode, 0, true); - this.vSupportP2PGroupId = is.readArray(this.vSupportP2PGroupId, 1, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_RegisterGroupRsp; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java deleted file mode 100644 index 20ab1b03..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class RegisterRsp extends BaseHuyaMsg { - - private int iResCode; - private long lRequestId; - private String sMessage = ""; - private String sBCConnHost = ""; - - public RegisterRsp(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iResCode, 0); - os.write(this.lRequestId, 1); - os.write(this.sMessage, 2); - os.write(this.sBCConnHost, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iResCode = is.read(this.iResCode, 0, true); - this.lRequestId = is.read(this.lRequestId, 1, true); - this.sMessage = is.read(this.sMessage, 2, true); - this.sBCConnHost = is.read(this.sBCConnHost, 3, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmd_RegisterRsp; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java deleted file mode 100644 index 0fd03757..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java +++ /dev/null @@ -1,283 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; -import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; - -import java.util.List; -import java.util.Optional; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SendItemSubBroadcastPacketMsg extends BaseHuyaMsg implements IGiftMsg { - - private int iItemType; - private String strPayId = ""; - private int iItemCount; - private long lPresenterUid; - private long lSenderUid; - private String sPresenterNick = ""; - private String sSenderNick = ""; - private String sSendContent = ""; - private int iItemCountByGroup; - private int iItemGroup; - private int iSuperPupleLevel; - private int iComboScore; - private int iDisplayInfo; - private int iEffectType; - private String iSenderIcon = ""; - private String iPresenterIcon = ""; - private int iTemplateType; - private String sExpand = ""; - private boolean bBusi; - private int iColorEffectType; - private String sPropsName = ""; - private short iAccpet = 0; - private short iEventType = 0; - private UserIdentityInfo userInfo = new UserIdentityInfo(); - private long lRoomId = 0; - private long lHomeOwnerUid = 0; - // private int streamerInfo = new D.StreamerNode; - private int iPayType = -1; - private int iNobleLevel = 0; - private NobleLevelInfo tNobleLevel = new NobleLevelInfo(); - private ItemEffectInfo tEffectInfo = new ItemEffectInfo(); - private List vExUid = CollUtil.newArrayList(-1L); - private int iComboStatus = 0; - private int iPidColorType = 0; - private int iMultiSend = 0; - private int iVFanLevel = 0; - private int iUpgradeLevel = 0; - private String sCustomText = ""; - private DIYBigGiftEffect tDIYEffect = new DIYBigGiftEffect(); - private long lComboSeqId = 0; - private long lPayTotal = 0; -// private int vBizData = new V.Vector(new D.ItemEffectBizData); - - // region 额外属性 - private BadgeInfo badgeInfo; - private PropsItem propsItem = PropsItem.DEFAULT; - // endregion - - public SendItemSubBroadcastPacketMsg(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iItemType, 0); - os.write(this.strPayId, 1); - os.write(this.iItemCount, 2); - os.write(this.lPresenterUid, 3); - os.write(this.lSenderUid, 4); - os.write(this.sPresenterNick, 5); - os.write(this.sSenderNick, 6); - os.write(this.sSendContent, 7); - os.write(this.iItemCountByGroup, 8); - os.write(this.iItemGroup, 9); - os.write(this.iSuperPupleLevel, 10); - os.write(this.iComboScore, 11); - os.write(this.iDisplayInfo, 12); - os.write(this.iEffectType, 13); - os.write(this.iSenderIcon, 14); - os.write(this.iPresenterIcon, 15); - os.write(this.iTemplateType, 16); - os.write(this.sExpand, 17); - os.write(this.bBusi, 18); - os.write(this.iColorEffectType, 19); - os.write(this.sPropsName, 20); - os.write(this.iAccpet, 21); - os.write(this.iEventType, 22); - os.write(this.userInfo, 23); - os.write(this.lRoomId, 24); - os.write(this.lHomeOwnerUid, 25); -// os.write(this.streamerInfo, 26); - os.write(this.iPayType, 27); - os.write(this.iNobleLevel, 28); - os.write(this.tNobleLevel, 29); - os.write(this.tEffectInfo, 30); - os.write(this.vExUid, 31); - os.write(this.iComboStatus, 32); - os.write(this.iPidColorType, 33); - os.write(this.iMultiSend, 34); - os.write(this.iVFanLevel, 35); - os.write(this.iUpgradeLevel, 36); - os.write(this.sCustomText, 37); - os.write(this.tDIYEffect, 38); - os.write(this.lComboSeqId, 39); - os.write(this.lPayTotal, 41); -// os.write(this.vBizData, 42); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iItemType = is.read(this.iItemType, 0, true); - this.strPayId = is.read(this.strPayId, 1, true); - this.iItemCount = is.read(this.iItemCount, 2, true); - this.lPresenterUid = is.read(this.lPresenterUid, 3, true); - this.lSenderUid = is.read(this.lSenderUid, 4, true); - this.sPresenterNick = is.read(this.sPresenterNick, 5, true); - this.sSenderNick = is.read(this.sSenderNick, 6, true); - this.sSendContent = is.read(this.sSendContent, 7, true); - this.iItemCountByGroup = is.read(this.iItemCountByGroup, 8, true); - this.iItemGroup = is.read(this.iItemGroup, 9, true); - this.iSuperPupleLevel = is.read(this.iSuperPupleLevel, 10, true); - this.iComboScore = is.read(this.iComboScore, 11, true); - this.iDisplayInfo = is.read(this.iDisplayInfo, 12, true); - this.iEffectType = is.read(this.iEffectType, 13, true); - this.iSenderIcon = is.read(this.iSenderIcon, 14, true); - this.iPresenterIcon = is.read(this.iPresenterIcon, 15, true); - this.iTemplateType = is.read(this.iTemplateType, 16, true); - this.sExpand = is.read(this.sExpand, 17, true); - this.bBusi = is.read(this.bBusi, 18, true); - this.iColorEffectType = is.read(this.iColorEffectType, 19, true); - this.sPropsName = is.read(this.sPropsName, 20, true); - this.iAccpet = is.read(this.iAccpet, 21, true); - this.iEventType = is.read(this.iEventType, 22, true); - this.userInfo = (UserIdentityInfo) is.directRead(this.userInfo, 23, true); - this.lRoomId = is.read(this.lRoomId, 24, true); - this.lHomeOwnerUid = is.read(this.lHomeOwnerUid, 25, true); -// this.streamerInfo = is.read(this.streamerInfo, 26, true); - this.iPayType = is.read(this.iPayType, 27, true); - this.iNobleLevel = is.read(this.iNobleLevel, 28, true); - this.tNobleLevel = (NobleLevelInfo) is.directRead(this.tNobleLevel, 29, true); - this.tEffectInfo = (ItemEffectInfo) is.directRead(this.tEffectInfo, 30, true); - this.vExUid = is.readArray(this.vExUid, 31, true); - this.iComboStatus = is.read(this.iComboStatus, 32, true); - this.iPidColorType = is.read(this.iPidColorType, 33, true); - this.iMultiSend = is.read(this.iMultiSend, 34, true); - this.iVFanLevel = is.read(this.iVFanLevel, 35, true); - this.iUpgradeLevel = is.read(this.iUpgradeLevel, 36, true); - this.sCustomText = is.read(this.sCustomText, 37, true); - this.tDIYEffect = (DIYBigGiftEffect) is.directRead(this.tDIYEffect, 38, true); - this.lComboSeqId = is.read(this.lComboSeqId, 39, true); - this.lPayTotal = is.read(this.lPayTotal, 41, true); -// this.vBizData = is.read(this.vBizData, 42, true); - - // 解析额外属性 - for (DecorationInfo decorationPrefix : userInfo.getVDecorationPrefix()) { - Optional optional = HuyaCodecUtil.decodeDecorationInfo(decorationPrefix); - if (optional.isPresent()) { - TarsStructBase tarsStructBase = optional.get(); - if (tarsStructBase instanceof BadgeInfo) { - this.badgeInfo = (BadgeInfo) tarsStructBase; - break; - } - } - } - } - - @Override - public String getUid() { - return Long.toString(this.lSenderUid); - } - - @Override - public String getUsername() { - return this.sSenderNick; - } - - @Override - public String getUserAvatar() { - return this.iSenderIcon; - } - - @Override - public String getGiftName() { - return this.sPropsName; - } - - @Override - public String getGiftImg() { - if (this.propsItem == null) { - return ""; - } - - List vPropsIdentity = this.propsItem.getVPropsIdentity(); - if (vPropsIdentity.isEmpty()) { - return ""; - } - - PropsIdentity propsIdentity = vPropsIdentity.get(0); - String sPropsWeb = propsIdentity.getSPropsWeb(); - if (StrUtil.isBlank(sPropsWeb)) { - return ""; - } - - return sPropsWeb.substring(0, sPropsWeb.indexOf("&")); - } - - @Override - public String getGiftId() { - return Long.toString(this.iItemType); - } - - @Override - public int getGiftCount() { - return this.iItemCount; - } - - /** - * 100 对应 1虎牙币 - */ - @Override - public int getGiftPrice() { - return (int) (this.lPayTotal / this.iItemCount); - } - - @Override - public String getReceiveUid() { - return Long.toString(this.lPresenterUid); - } - - @Override - public String getReceiveUsername() { - return this.sPresenterNick; - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java deleted file mode 100644 index b8ef2ab3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UserInfo extends TarsStructBase { - - private long lUid = 0; - private boolean bAnonymous = true; - private String sGuid = ""; - private String sToken = ""; - private long lTid = 0; - private long lSid = 0; - private long lGroupId = 0; - private long lGroupType = 0; - private String sAppId = ""; - private String sUA = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.bAnonymous, 1); - os.write(this.sGuid, 2); - os.write(this.sToken, 3); - os.write(this.lTid, 4); - os.write(this.lSid, 5); - os.write(this.lGroupId, 6); - os.write(this.lGroupType, 7); - os.write(this.sAppId, 8); - os.write(this.sUA, 9); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, true); - this.bAnonymous = is.read(this.bAnonymous, 1, true); - this.sGuid = is.read(this.sGuid, 2, true); - this.sToken = is.read(this.sToken, 3, true); - this.lTid = is.read(this.lTid, 4, true); - this.lSid = is.read(this.lSid, 5, true); - this.lGroupId = is.read(this.lGroupId, 6, true); - this.lGroupType = is.read(this.lGroupType, 7, true); - this.sAppId = is.read(this.sAppId, 8, true); - this.sUA = is.read(this.sUA, 9, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java deleted file mode 100644 index c080d6e6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class VerifyCookieRsp extends BaseHuyaMsg { - - private int iValidate; - - public VerifyCookieRsp(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(0, this.iValidate); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iValidate = is.read(this.iValidate, 0, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_VerifyCookieRsp; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java deleted file mode 100644 index 7fbfe949..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; - -import java.util.List; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class VipEnterBannerMsg extends BaseHuyaMsg implements IEnterRoomMsg { - - private long lUid; - private String sNickName = ""; - private long lPid; - private NobleInfo tNobleInfo = new NobleInfo(); - private GuardInfo tGuardInfo = new GuardInfo(); - private WeekRankInfo tWeekRankInfo = new WeekRankInfo(); - private String sLogoURL = ""; - private boolean bFromNearby; - private String sLocation = ""; - private DecorationInfoRsp tDecorationInfo = new DecorationInfoRsp(); - private WeekRankInfo tWeekHeartStirRankInfo = new WeekRankInfo(); - private WeekRankInfo tWeekHeartBlockRankInfo = new WeekRankInfo(); - private int iMasterRank; - private ACEnterBanner tACInfo = new ACEnterBanner(); - private List vCommEnterBanner = CollUtil.newArrayList(new CommEnterBanner()); - private UserRidePetInfo tRidePetInfo = new UserRidePetInfo(); - - public VipEnterBannerMsg(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sNickName, 1); - os.write(this.lPid, 2); - os.write(this.tNobleInfo, 3); - os.write(this.tGuardInfo, 4); - os.write(this.tWeekRankInfo, 5); - os.write(this.sLogoURL, 6); - os.write(this.bFromNearby, 7); - os.write(this.sLocation, 8); - os.write(this.tDecorationInfo, 9); - os.write(this.tWeekHeartStirRankInfo, 10); - os.write(this.tWeekHeartBlockRankInfo, 11); - os.write(this.iMasterRank, 12); - os.write(this.tACInfo, 13); - os.write(this.vCommEnterBanner, 14); - os.write(this.tRidePetInfo, 15); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.sNickName = is.read(this.sNickName, 1, false); - this.lPid = is.read(this.lPid, 2, false); - this.tNobleInfo = (NobleInfo) is.directRead(this.tNobleInfo, 3, false); - this.tGuardInfo = (GuardInfo) is.directRead(this.tGuardInfo, 4, false); - this.tWeekRankInfo = (WeekRankInfo) is.directRead(this.tWeekRankInfo, 5, false); - this.sLogoURL = is.read(this.sLogoURL, 6, false); - this.bFromNearby = is.read(this.bFromNearby, 7, false); - this.sLocation = is.read(this.sLocation, 8, false); - this.tDecorationInfo = (DecorationInfoRsp) is.directRead(this.tDecorationInfo, 9, false); - this.tWeekHeartStirRankInfo = (WeekRankInfo) is.directRead(this.tWeekHeartStirRankInfo, 10, false); - this.tWeekHeartBlockRankInfo = (WeekRankInfo) is.directRead(this.tWeekHeartBlockRankInfo, 11, false); - this.iMasterRank = is.read(this.iMasterRank, 12, false); - this.tACInfo = (ACEnterBanner) is.directRead(this.tACInfo, 13, false); - this.vCommEnterBanner = is.readArray(this.vCommEnterBanner, 14, false); - this.tRidePetInfo = (UserRidePetInfo) is.directRead(this.tRidePetInfo, 15, false); - } - - @Override - public String getBadgeName() { - // TODO - return null; - } - - @Override - public byte getBadgeLevel() { - // TODO - return 0; - } - - @Override - public String getUid() { - return Long.toString(lUid); - } - - @Override - public String getUsername() { - return sNickName; - } - - @Override - public String getUserAvatar() { - // TODO - return IEnterRoomMsg.super.getUserAvatar(); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java deleted file mode 100644 index 6c71ae5b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class WebSocketCommand extends BaseHuyaMsg { - - private int operation; - private byte[] vData; - private long lRequestId; - private String traceId = ""; - private int iEncryptType; - private long lTime; - private String sMD5 = ""; - - public WebSocketCommand(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.operation, 0); - os.write(this.vData, 1); - os.write(this.lRequestId, 2); - os.write(this.traceId, 3); - os.write(this.iEncryptType, 4); - os.write(this.lTime, 5); - os.write(this.sMD5, 6); - } - - @Override - public void readFrom(TarsInputStream is) { - this.operation = is.read(this.operation, 0, true); - this.vData = is.read(this.vData, 1, true); - this.lRequestId = is.read(this.lRequestId, 2, true); - this.traceId = is.read(this.traceId, 3, true); - this.iEncryptType = is.read(this.iEncryptType, 4, true); - this.lTime = is.read(this.lTime, 5, true); - this.sMD5 = is.read(this.sMD5, 6, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.getByCode(operation); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java deleted file mode 100644 index 443866c5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg; - -import lombok.NoArgsConstructor; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; - -/** - * @author mjz - * @date 2023/10/3 - */ -@NoArgsConstructor -public class WupRsp extends BaseWup { - - public WupRsp(byte[] vData) { - super.decode(vData); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmd_WupRsp; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java deleted file mode 100644 index 2b5c1cff..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.base; - -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.StrUtil; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public abstract class BaseHuyaCmdMsg extends TarsStructBase implements IHuyaCmdMsg { - - private long lUri; - - @Override - public String getCmd() { - return StrUtil.nullToEmpty(StrUtil.toStringOrNull(this.lUri)); - } - - @Override - public void setCmd(String cmd) { - this.lUri = NumberUtil.parseLong(cmd); - } - - @Override - public HuyaCmdEnum getCmdEnum() { - return HuyaCmdEnum.getByCode(this.lUri); - } - - @Override - public TarsStructBase newInit() { - return this; - } - - @Override - public String toString() { - try { - return BaseMsg.OBJECT_MAPPER.writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java deleted file mode 100644 index b0dd169f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.base; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.qq.tars.protocol.tars.TarsStructBase; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; - -/** - * @author mjz - * @date 2023/10/2 - */ -public abstract class BaseHuyaMsg extends TarsStructBase implements IHuyaMsg { - - @Override - public TarsStructBase newInit() { - return this; - } - - @Override - public String toString() { - try { - return BaseMsg.OBJECT_MAPPER.writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java deleted file mode 100644 index 41ab6e20..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; - -/** - * @author mjz - * @date 2023/10/2 - */ -public interface IHuyaCmdMsg extends IHuyaMsg, ICmdMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java deleted file mode 100644 index 0fc8aa0e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.base; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; - -/** - * @author mjz - * @date 2023/8/26 - */ -public interface IHuyaMsg extends IMsg { - @JsonIgnore - HuyaOperationEnum getOperationEnum(); -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java deleted file mode 100644 index e9076757..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ACEnterBanner extends TarsStructBase { - - private int iWeekHeartStirRank; - private int iWeekHeartBlockRank; - private int iMasterRank; - private int iACWeekRank; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iWeekHeartStirRank, 0); - os.write(this.iWeekHeartBlockRank, 1); - os.write(this.iMasterRank, 2); - os.write(this.iACWeekRank, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - is.read(this.iWeekHeartStirRank, 0, false); - is.read(this.iWeekHeartBlockRank, 1, false); - is.read(this.iMasterRank, 2, false); - is.read(this.iACWeekRank, 3, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java deleted file mode 100644 index e9233b0b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class BadgeInfo extends TarsStructBase { - - private long lUid; - private long lBadgeId; - private String sPresenterNickName = ""; - private String sBadgeName = ""; - private int iBadgeLevel; - private int iRank; - private int iScore; - private int iNextScore; - private int iQuotaUsed; - private int iQuota; - private long lQuotaTS; - private long lOpenTS; - private int iVFlag; - private String sVLogo = ""; - private PresenterChannelInfo tChannelInfo = new PresenterChannelInfo(); - private String sPresenterLogo = ""; - private long lVExpiredTS; - private int iBadgeType; - private FaithInfo tFaithInfo = new FaithInfo(); - private SuperFansInfo tSuperFansInfo = new SuperFansInfo(); - private int iBaseQuota; - private long lVConsumRank; - private int iCustomBadgeFlag; - private int iAgingDays; - private int iDayScore; - private CustomBadgeDynamicExternal tExternal = new CustomBadgeDynamicExternal(); - private int iExtinguished; - private int iExtinguishDays; - private int iBadgeCate; - private int iLiveFlag; - - @Override - public void writeTo(TarsOutputStream os) { - - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.lBadgeId = is.read(this.lBadgeId, 1, false); - this.sPresenterNickName = is.read(this.sPresenterNickName, 2, false); - this.sBadgeName = is.read(this.sBadgeName, 3, false); - this.iBadgeLevel = is.read(this.iBadgeLevel, 4, false); - this.iRank = is.read(this.iRank, 5, false); - this.iScore = is.read(this.iScore, 6, false); - this.iNextScore = is.read(this.iNextScore, 7, false); - this.iQuotaUsed = is.read(this.iQuotaUsed, 8, false); - this.iQuota = is.read(this.iQuota, 9, false); - this.lQuotaTS = is.read(this.lQuotaTS, 10, false); - this.lOpenTS = is.read(this.lOpenTS, 11, false); - this.iVFlag = is.read(this.iVFlag, 12, false); - this.sVLogo = is.read(this.sVLogo, 13, false); - this.tChannelInfo = (PresenterChannelInfo) is.directRead(this.tChannelInfo, 14, false); - this.sPresenterLogo = is.read(this.sPresenterLogo, 15, false); - this.lVExpiredTS = is.read(this.lVExpiredTS, 16, false); - this.iBadgeType = is.read(this.iBadgeType, 17, false); - this.tFaithInfo = (FaithInfo) is.directRead(this.tFaithInfo, 18, false); - this.tSuperFansInfo = (SuperFansInfo) is.directRead(this.tSuperFansInfo, 19, false); - this.iBaseQuota = is.read(this.iBaseQuota, 20, false); - this.lVConsumRank = is.read(this.lVConsumRank, 21, false); - this.iCustomBadgeFlag = is.read(this.iCustomBadgeFlag, 22, false); - this.iAgingDays = is.read(this.iAgingDays, 23, false); - this.iDayScore = is.read(this.iDayScore, 24, false); - this.tExternal = (CustomBadgeDynamicExternal) is.directRead(this.tExternal, 25, false); - this.iExtinguished = is.read(this.iExtinguished, 26, false); - this.iExtinguishDays = is.read(this.iExtinguishDays, 27, false); - this.iBadgeCate = is.read(this.iBadgeCate, 28, false); - this.iLiveFlag = is.read(this.iLiveFlag, 29, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java deleted file mode 100644 index 61fabb2f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class BulletBorderGroundFormat extends TarsStructBase { - - private int iEnableUse; - private int iBorderThickness; - private int iBorderColour = -1; - private int iBorderDiaphaneity = 100; - private int iGroundColour = -1; - private int iGroundColourDiaphaneity = 100; - private String sAvatarDecorationUrl = ""; - private int iFontColor = -1; - private int iTerminalFlag = -1; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iEnableUse, 0); - os.write(this.iBorderThickness, 1); - os.write(this.iBorderColour, 2); - os.write(this.iBorderDiaphaneity, 3); - os.write(this.iGroundColour, 4); - os.write(this.iGroundColourDiaphaneity, 5); - os.write(this.sAvatarDecorationUrl, 6); - os.write(this.iFontColor, 7); - os.write(this.iTerminalFlag, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iEnableUse = is.read(this.iEnableUse, 0, false); - this.iBorderThickness = is.read(this.iBorderThickness, 1, false); - this.iBorderColour = is.read(this.iBorderColour, 2, false); - this.iBorderDiaphaneity = is.read(this.iBorderDiaphaneity, 3, false); - this.iGroundColour = is.read(this.iGroundColour, 4, false); - this.iGroundColourDiaphaneity = is.read(this.iGroundColourDiaphaneity, 5, false); - this.sAvatarDecorationUrl = is.read(this.sAvatarDecorationUrl, 6, false); - this.iFontColor = is.read(this.iFontColor, 7, false); - this.iTerminalFlag = is.read(this.iTerminalFlag, 8, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java deleted file mode 100644 index 5f81da9f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class BulletFormat extends TarsStructBase { - - private int iFontColor = -1; - private int iFontSize = 4; - private int iTextSpeed = 0; - private int iTransitionType = 1; - private int iPopupStyle = 0; - private BulletBorderGroundFormat tBorderGroundFormat = new BulletBorderGroundFormat(); - private List vGraduatedColor = CollUtil.newArrayList(0); - private int iAvatarFlag = 0; - private int iAvatarTerminalFlag = -1; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iFontColor, 0); - os.write(this.iFontSize, 1); - os.write(this.iTextSpeed, 2); - os.write(this.iTransitionType, 3); - os.write(this.iPopupStyle, 4); - os.write(this.tBorderGroundFormat, 5); - os.write(this.vGraduatedColor, 6); - os.write(this.iAvatarFlag, 7); - os.write(this.iAvatarTerminalFlag, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iFontColor = is.read(this.iFontColor, 0, false); - this.iFontSize = is.read(this.iFontSize, 1, false); - this.iTextSpeed = is.read(this.iTextSpeed, 2, false); - this.iTransitionType = is.read(this.iTransitionType, 3, false); - this.iPopupStyle = is.read(this.iPopupStyle, 4, false); - this.tBorderGroundFormat = (BulletBorderGroundFormat) is.directRead(this.tBorderGroundFormat, 5, false); - this.vGraduatedColor = is.readArray(this.vGraduatedColor, 6, false); - this.iAvatarFlag = is.read(this.iAvatarFlag, 7, false); - this.iAvatarTerminalFlag = is.read(this.iAvatarTerminalFlag, 8, false); - - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java deleted file mode 100644 index 4bb796a8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ChannelPair extends TarsStructBase { - - private long lTid; - private long lSid; - private long lPid; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lTid, 0); - os.write(this.lSid, 1); - os.write(this.lPid, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lTid = is.read(this.lTid, 0, false); - this.lSid = is.read(this.lSid, 1, false); - this.lPid = is.read(this.lPid, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java deleted file mode 100644 index 900178d4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class CommEnterBanner extends TarsStructBase { - - private int iBannerUri; - private int iViewType; - private byte[] vData; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iBannerUri, 0); - os.write(this.iViewType, 1); - os.write(this.vData, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iBannerUri = is.read(this.iBannerUri, 0, false); - this.iViewType = is.read(this.iViewType, 1, false); - this.vData = is.read(this.vData, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java deleted file mode 100644 index 594baf1c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ContentFormat extends TarsStructBase { - - private int iFontColor = -1; - private int iFontSize = 4; - private int iPopupStyle = 0; - private int iNickNameFontColor = -1; - private int iDarkFontColor = -1; - private int iDarkNickNameFontColor = -1; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iFontColor, 0); - os.write(this.iFontSize, 1); - os.write(this.iPopupStyle, 2); - os.write(this.iNickNameFontColor, 3); - os.write(this.iDarkFontColor, 4); - os.write(this.iDarkNickNameFontColor, 5); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iFontColor = is.read(this.iFontColor, 0, false); - this.iFontSize = is.read(this.iFontSize, 1, false); - this.iPopupStyle = is.read(this.iPopupStyle, 2, false); - this.iNickNameFontColor = is.read(this.iNickNameFontColor, 3, false); - this.iDarkFontColor = is.read(this.iDarkFontColor, 4, false); - this.iDarkNickNameFontColor = is.read(this.iDarkNickNameFontColor, 5, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java deleted file mode 100644 index bb8d5aae..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class CustomBadgeDynamicExternal extends TarsStructBase { - - private String sFloorExter = ""; - private int iFansIdentity; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sFloorExter, 0); - os.write(this.iFansIdentity, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sFloorExter = is.read(this.sFloorExter, 0, false); - this.iFansIdentity = is.read(this.iFansIdentity, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java deleted file mode 100644 index b93da5ab..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DIYBigGiftEffect extends TarsStructBase { - - private String sResourceUrl = ""; - private String sResourceAttr = ""; - private String sWebResourceUrl = ""; - private String sPCResourceUrl = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sResourceUrl, 0); - os.write(this.sResourceAttr, 1); - os.write(this.sWebResourceUrl, 2); - os.write(this.sPCResourceUrl, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sResourceUrl = is.read(this.sResourceUrl, 0, false); - this.sResourceAttr = is.read(this.sResourceAttr, 1, false); - this.sWebResourceUrl = is.read(this.sWebResourceUrl, 2, false); - this.sPCResourceUrl = is.read(this.sPCResourceUrl, 3, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java deleted file mode 100644 index 747518db..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DecorationInfo extends TarsStructBase { - - private int iAppId = 0; - private int iViewType = 0; - private byte[] vData; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iAppId, 0); - os.write(this.iViewType, 1); - os.write(this.vData, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iAppId = is.read(this.iAppId, 0, true); - this.iViewType = is.read(this.iViewType, 1, true); - this.vData = is.read(this.vData, 2, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java deleted file mode 100644 index 9c93cc42..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DecorationInfoRsp extends TarsStructBase { - - private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); - private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); - private ContentFormat tFormat = new ContentFormat(); - private BulletFormat tBulletFormat = new BulletFormat(); - private List vForwardChannels = CollUtil.newArrayList(new ChannelPair()); - private int iModifyMask; - private List vBulletPrefix = CollUtil.newArrayList(new DecorationInfo()); - private SenderInfo tUserInfo = new SenderInfo(); - private List vBulletSuffix = CollUtil.newArrayList(new DecorationInfo()); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.vDecorationPrefix, 0); - os.write(this.vDecorationSuffix, 1); - os.write(this.tFormat, 2); - os.write(this.tBulletFormat, 3); - os.write(this.vForwardChannels, 4); - os.write(this.iModifyMask, 5); - os.write(this.vBulletPrefix, 6); - os.write(this.tUserInfo, 7); - os.write(this.vBulletSuffix, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 0, false); - this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 1, false); - this.tFormat = (ContentFormat) is.directRead(this.tFormat, 2, false); - this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 3, false); - this.vForwardChannels = is.readArray(this.vForwardChannels, 4, false); - this.iModifyMask = is.read(this.iModifyMask, 5, false); - this.vBulletPrefix = is.readArray(this.vBulletPrefix, 6, false); - this.tUserInfo = (SenderInfo) is.directRead(this.tUserInfo, 7, false); - this.vBulletSuffix = is.readArray(this.vBulletSuffix, 8, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java deleted file mode 100644 index 8e8d93b0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DeviceInfo extends TarsStructBase { - - private String sIMEI = ""; - private String sAPN = ""; - private String sNetType = ""; - private String sDeviceId = ""; - private String sMId = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sIMEI, 0); - os.write(this.sAPN, 1); - os.write(this.sNetType, 2); - os.write(this.sDeviceId, 3); - os.write(this.sMId, 4); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sIMEI = is.read(this.sIMEI, 0, false); - this.sAPN = is.read(this.sAPN, 1, false); - this.sNetType = is.read(this.sNetType, 2, false); - this.sDeviceId = is.read(this.sDeviceId, 3, false); - this.sMId = is.read(this.sMId, 4, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java deleted file mode 100644 index 1a23b3f8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class DisplayInfo extends TarsStructBase { - - private int iMarqueeScopeMin = 0; - private int iMarqueeScopeMax = 0; - private int iCurrentVideoNum = 0; - private int iCurrentVideoMin = 0; - private int iCurrentVideoMax = 0; - private int iAllVideoNum = 0; - private int iAllVideoMin = 0; - private int iAllVideoMax = 0; - private int iCurrentScreenNum = 0; - private int iCurrentScreenMin = 0; - private int iCurrentScreenMax = 0; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iMarqueeScopeMin, 1); - os.write(this.iMarqueeScopeMax, 2); - os.write(this.iCurrentVideoNum, 3); - os.write(this.iCurrentVideoMin, 4); - os.write(this.iCurrentVideoMax, 5); - os.write(this.iAllVideoNum, 6); - os.write(this.iAllVideoMin, 7); - os.write(this.iAllVideoMax, 8); - os.write(this.iCurrentScreenNum, 9); - os.write(this.iCurrentScreenMin, 10); - os.write(this.iCurrentScreenMax, 11); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iMarqueeScopeMin = is.read(this.iMarqueeScopeMin, 1, true); - this.iMarqueeScopeMax = is.read(this.iMarqueeScopeMax, 2, true); - this.iCurrentVideoNum = is.read(this.iCurrentVideoNum, 3, true); - this.iCurrentVideoMin = is.read(this.iCurrentVideoMin, 4, true); - this.iCurrentVideoMax = is.read(this.iCurrentVideoMax, 5, true); - this.iAllVideoNum = is.read(this.iAllVideoNum, 6, true); - this.iAllVideoMin = is.read(this.iAllVideoMin, 7, true); - this.iAllVideoMax = is.read(this.iAllVideoMax, 8, true); - this.iCurrentScreenNum = is.read(this.iCurrentScreenNum, 9, true); - this.iCurrentScreenMin = is.read(this.iCurrentScreenMin, 10, true); - this.iCurrentScreenMax = is.read(this.iCurrentScreenMax, 11, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java deleted file mode 100644 index 1faa752e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class FaithInfo extends TarsStructBase { - - private String sFaithName = ""; - private List vPresenter = CollUtil.newArrayList(new FaithPresenter()); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sFaithName, 0); - os.write(this.vPresenter, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sFaithName = is.read(this.sFaithName, 0, false); - this.vPresenter = is.readArray(this.vPresenter, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java deleted file mode 100644 index ad78b3db..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class FaithPresenter extends TarsStructBase { - - private long lPid; - private String sLogo = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lPid, 0); - os.write(this.sLogo, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lPid = is.read(this.lPid, 0, false); - this.sLogo = is.read(this.sLogo, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java deleted file mode 100644 index badff469..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GuardInfo extends TarsStructBase { - - private long lUid; - private long lPid; - private int iGuardLevel; - private long lEndTime; - private String sAttr = ""; - private String sIcon = ""; - private int iGuardType; - private long lStartTime; - private long lCommemorateDay; - private int iAccompanyDay; - private String sNewAttr = ""; - private String sEnterText = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.lPid, 1); - os.write(this.iGuardLevel, 2); - os.write(this.lEndTime, 3); - os.write(this.sAttr, 4); - os.write(this.sIcon, 5); - os.write(this.iGuardType, 6); - os.write(this.lStartTime, 7); - os.write(this.lCommemorateDay, 8); - os.write(this.iAccompanyDay, 9); - os.write(this.sNewAttr, 10); - os.write(this.sEnterText, 11); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.lPid = is.read(this.lPid, 1, false); - this.iGuardLevel = is.read(this.iGuardLevel, 2, false); - this.lEndTime = is.read(this.lEndTime, 3, false); - this.sAttr = is.read(this.sAttr, 4, false); - this.sIcon = is.read(this.sIcon, 5, false); - this.iGuardType = is.read(this.iGuardType, 6, false); - this.lStartTime = is.read(this.lStartTime, 7, false); - this.lCommemorateDay = is.read(this.lCommemorateDay, 8, false); - this.iAccompanyDay = is.read(this.iAccompanyDay, 9, false); - this.sNewAttr = is.read(this.sNewAttr, 10, false); - this.sEnterText = is.read(this.sEnterText, 11, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java deleted file mode 100644 index 4a4478ff..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class ItemEffectInfo extends TarsStructBase { - - private int iPriceLevel; - private int iStreamDuration; - private int iShowType; - private int iStreamId; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iPriceLevel, 0); - os.write(this.iStreamDuration, 1); - os.write(this.iShowType, 2); - os.write(this.iStreamId, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iPriceLevel = is.read(this.iPriceLevel, 0, false); - this.iStreamDuration = is.read(this.iStreamDuration, 1, false); - this.iShowType = is.read(this.iShowType, 2, false); - this.iStreamId = is.read(this.iStreamId, 3, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java deleted file mode 100644 index b7b9b839..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LiveAppUAEx extends TarsStructBase { - - private String sIMEI = ""; - private String sAPN = ""; - private String sNetType = ""; - private String sDeviceId = ""; - private String sMId = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sIMEI, 1); - os.write(this.sAPN, 2); - os.write(this.sNetType, 3); - os.write(this.sDeviceId, 4); - os.write(this.sMId, 5); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sIMEI = is.read(this.sIMEI, 1, false); - this.sAPN = is.read(this.sAPN, 2, false); - this.sNetType = is.read(this.sNetType, 3, false); - this.sDeviceId = is.read(this.sDeviceId, 4, false); - this.sMId = is.read(this.sMId, 5, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java deleted file mode 100644 index 619eb18a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LiveProxyValue extends TarsStructBase { - - private int eProxyType; - private List sProxy = CollUtil.newArrayList(""); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.eProxyType, 0); - os.write(this.sProxy, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.eProxyType = is.read(this.eProxyType, 0, false); - this.sProxy = is.readArray(this.sProxy, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java deleted file mode 100644 index b6595a2d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LiveUserbase extends TarsStructBase { - - private int eSource; - private int eType; - private LiveAppUAEx tUAEx = new LiveAppUAEx(); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.eSource, 0); - os.write(this.eType, 1); - os.write(this.tUAEx, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.eSource = is.read(this.eSource, 0, false); - this.eType = is.read(this.eType, 1, false); - this.tUAEx = (LiveAppUAEx) is.directRead(this.tUAEx, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java deleted file mode 100644 index 4afd6c58..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MessageContentExpand extends TarsStructBase { - - private int iAppId = 0; - private String sToast = ""; - private byte[] vData; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iAppId, 0); - os.write(this.sToast, 1); - os.write(this.vData, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iAppId = is.read(this.iAppId, 0, false); - this.sToast = is.read(this.sToast, 1, false); - this.vData = is.read(this.vData, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java deleted file mode 100644 index bb8c0e72..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MessageTagInfo extends TarsStructBase { - - private int iAppId = 0; - private String sTag = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iAppId, 0); - os.write(this.sTag, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iAppId = is.read(this.iAppId, 0, false); - this.sTag = is.read(this.sTag, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java deleted file mode 100644 index 22f85aa4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaCmdMsg; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MsgItem extends BaseHuyaCmdMsg { - - private byte[] sMsg; - private long lMsgId; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(super.getLUri(), 0); - os.write(this.sMsg, 1); - os.write(this.lMsgId, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - super.setLUri(is.read(super.getLUri(), 0, true)); - this.sMsg = is.read(this.sMsg, 1, true); - this.lMsgId = is.read(this.lMsgId, 2, true); - } - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java deleted file mode 100644 index d4d229ed..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class MsgStatInfo extends TarsStructBase { - - private Map> mSignalPushUriCount = new HashMap<>(); - private Map> mP2pPushUriCount = new HashMap<>(); - private int iSupportAckMsgStat; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.mSignalPushUriCount, 0); - os.write(this.mP2pPushUriCount, 1); - os.write(this.iSupportAckMsgStat, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - this.mSignalPushUriCount = is.readMap(this.mSignalPushUriCount, 0, false); - this.mP2pPushUriCount = is.readMap(this.mP2pPushUriCount, 1, false); - this.iSupportAckMsgStat = is.read(this.iSupportAckMsgStat, 3, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java deleted file mode 100644 index db8adc1f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class NobleInfo extends TarsStructBase { - - private long lUid; - private long lPid; - private long lValidDate; - private String sNobleName = ""; - private int iNobleLevel; - private int iNoblePet; - private int iNobleStatus; - private int iNobleType; - private int iRemainDays; - private NobleLevelAttr tLevelAttr = new NobleLevelAttr(); - private NoblePetAttr tPetAttr = new NoblePetAttr(); - private long lOpenTime; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.lPid, 1); - os.write(this.lValidDate, 2); - os.write(this.sNobleName, 3); - os.write(this.iNobleLevel, 4); - os.write(this.iNoblePet, 5); - os.write(this.iNobleStatus, 6); - os.write(this.iNobleType, 7); - os.write(this.iRemainDays, 8); - os.write(this.tLevelAttr, 9); - os.write(this.tPetAttr, 10); - os.write(this.lOpenTime, 11); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.lPid = is.read(this.lPid, 1, false); - this.lValidDate = is.read(this.lValidDate, 2, false); - this.sNobleName = is.read(this.sNobleName, 3, false); - this.iNobleLevel = is.read(this.iNobleLevel, 4, false); - this.iNoblePet = is.read(this.iNoblePet, 5, false); - this.iNobleStatus = is.read(this.iNobleStatus, 6, false); - this.iNobleType = is.read(this.iNobleType, 7, false); - this.iRemainDays = is.read(this.iRemainDays, 8, false); - this.tLevelAttr = (NobleLevelAttr) is.directRead(this.tLevelAttr, 9, false); - this.tPetAttr = (NoblePetAttr) is.directRead(this.tPetAttr, 10, false); - this.lOpenTime = is.read(this.lOpenTime, 11, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java deleted file mode 100644 index e9199afe..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class NobleLevelAttr extends TarsStructBase { - - private int iAttrType; - private long lValidDate; - private int iAttrStatus; - private int iProgress; - private int iTask; - private int iRemainDays; - private String sReserve = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iAttrType, 0); - os.write(this.lValidDate, 1); - os.write(this.iAttrStatus, 2); - os.write(this.iProgress, 3); - os.write(this.iTask, 4); - os.write(this.iRemainDays, 5); - os.write(this.sReserve, 6); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iAttrType = is.read(this.iAttrType, 0, false); - this.lValidDate = is.read(this.lValidDate, 1, false); - this.iAttrStatus = is.read(this.iAttrStatus, 2, false); - this.iProgress = is.read(this.iProgress, 3, false); - this.iTask = is.read(this.iTask, 4, false); - this.iRemainDays = is.read(this.iRemainDays, 5, false); - this.sReserve = is.read(this.sReserve, 6, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java deleted file mode 100644 index 0555b658..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class NobleLevelInfo extends TarsStructBase { - - private int iNobleLevel; - private int iAttrType; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iNobleLevel, 0); - os.write(this.iAttrType, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iNobleLevel = is.read(this.iNobleLevel, 0, true); - this.iAttrType = is.read(this.iAttrType, 1, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java deleted file mode 100644 index a9d26187..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class NoblePetAttr extends TarsStructBase { - - private int iPetId; - private String sPetName = ""; - private String sPetAction = ""; - private int iFrame; - private int iBeginTime; - private int iEndTime; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iPetId, 0); - os.write(this.sPetName, 1); - os.write(this.sPetAction, 2); - os.write(this.iFrame, 3); - os.write(this.iBeginTime, 4); - os.write(this.iEndTime, 5); - - } - - @Override - public void readFrom(TarsInputStream is) { - this.iPetId = is.read(this.iPetId, 0, false); - this.sPetName = is.read(this.sPetName, 1, false); - this.sPetAction = is.read(this.sPetAction, 2, false); - this.iFrame = is.read(this.iFrame, 3, false); - this.iBeginTime = is.read(this.iBeginTime, 4, false); - this.iEndTime = is.read(this.iEndTime, 5, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java deleted file mode 100644 index 0204bcab..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PresenterChannelInfo extends TarsStructBase { - - private long lYYId; - private long lTid; - private long lSid; - private int iSourceType; - private int iScreenType; - private long lUid; - private int iGameId; - private int iRoomId; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lYYId, 0); - os.write(this.lTid, 1); - os.write(this.lSid, 3); - os.write(this.iSourceType, 4); - os.write(this.iScreenType, 5); - os.write(this.lUid, 6); - os.write(this.iGameId, 7); - os.write(this.iRoomId, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lYYId = is.read(this.lYYId, 0, false); - this.lTid = is.read(this.lTid, 1, false); - this.lSid = is.read(this.lSid, 3, false); - this.iSourceType = is.read(this.iSourceType, 4, false); - this.iScreenType = is.read(this.iScreenType, 5, false); - this.lUid = is.read(this.lUid, 6, false); - this.iGameId = is.read(this.iGameId, 7, false); - this.iRoomId = is.read(this.iRoomId, 8, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java deleted file mode 100644 index d017b796..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PropView extends TarsStructBase { - - private int id = 0; - private String name = ""; - private Map uids = new HashMap() {{ - put(-1L, (short) -1); - }}; - private String tips = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.id, 0); - os.write(this.name, 1); - os.write(this.uids, 2); - os.write(this.tips, 3); - } - - @Override - public void readFrom(TarsInputStream is) { - this.id = is.read(this.id, 0, true); - this.name = is.read(this.name, 1, true); - this.uids = is.readMap(this.uids, 2, true); - this.tips = is.read(this.tips, 3, true); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java deleted file mode 100644 index ee1dba6a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PropsIdentity extends TarsStructBase { - - private int iPropsIdType = 0; - private String sPropsPic18 = ""; - private String sPropsPic24 = ""; - private String sPropsPicGif = ""; - private String sPropsBannerResource = ""; - private String sPropsBannerSize = ""; - private String sPropsBannerMaxTime = ""; - private String sPropsChatBannerResource = ""; - private String sPropsChatBannerSize = ""; - private String sPropsChatBannerMaxTime = ""; - private int iPropsChatBannerPos = 0; - private int iPropsChatBannerIsCombo = 0; - private String sPropsRollContent = ""; - private int iPropsBannerAnimationstyle = 0; - private String sPropFaceu = ""; - private String sPropH5Resource = ""; - private String sPropsWeb = ""; - private int sWitch = 0; - private String sCornerMark = ""; - private int iPropViewId = 0; - private String sPropStreamerResource = ""; - private short iStreamerFrameRate = 0; - private String sPropsPic108 = ""; - private String sPcBannerResource = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iPropsIdType, 1); - os.write(this.sPropsPic18, 2); - os.write(this.sPropsPic24, 3); - os.write(this.sPropsPicGif, 4); - os.write(this.sPropsBannerResource, 5); - os.write(this.sPropsBannerSize, 6); - os.write(this.sPropsBannerMaxTime, 7); - os.write(this.sPropsChatBannerResource, 8); - os.write(this.sPropsChatBannerSize, 9); - os.write(this.sPropsChatBannerMaxTime, 10); - os.write(this.iPropsChatBannerPos, 11); - os.write(this.iPropsChatBannerIsCombo, 12); - os.write(this.sPropsRollContent, 13); - os.write(this.iPropsBannerAnimationstyle, 14); - os.write(this.sPropFaceu, 15); - os.write(this.sPropH5Resource, 16); - os.write(this.sPropsWeb, 17); - os.write(this.sWitch, 18); - os.write(this.sCornerMark, 19); - os.write(this.iPropViewId, 20); - os.write(this.sPropStreamerResource, 21); - os.write(this.iStreamerFrameRate, 22); - os.write(this.sPropsPic108, 23); - os.write(this.sPcBannerResource, 24); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iPropsIdType = is.read(this.iPropsIdType, 1, true); - this.sPropsPic18 = is.read(this.sPropsPic18, 2, true); - this.sPropsPic24 = is.read(this.sPropsPic24, 3, true); - this.sPropsPicGif = is.read(this.sPropsPicGif, 4, true); - this.sPropsBannerResource = is.read(this.sPropsBannerResource, 5, true); - this.sPropsBannerSize = is.read(this.sPropsBannerSize, 6, true); - this.sPropsBannerMaxTime = is.read(this.sPropsBannerMaxTime, 7, true); - this.sPropsChatBannerResource = is.read(this.sPropsChatBannerResource, 8, true); - this.sPropsChatBannerSize = is.read(this.sPropsChatBannerSize, 9, true); - this.sPropsChatBannerMaxTime = is.read(this.sPropsChatBannerMaxTime, 10, true); - this.iPropsChatBannerPos = is.read(this.iPropsChatBannerPos, 11, true); - this.iPropsChatBannerIsCombo = is.read(this.iPropsChatBannerIsCombo, 12, true); - this.sPropsRollContent = is.read(this.sPropsRollContent, 13, true); - this.iPropsBannerAnimationstyle = is.read(this.iPropsBannerAnimationstyle, 14, true); - this.sPropFaceu = is.read(this.sPropFaceu, 15, true); - this.sPropH5Resource = is.read(this.sPropH5Resource, 16, true); - this.sPropsWeb = is.read(this.sPropsWeb, 17, true); - this.sWitch = is.read(this.sWitch, 18, true); - this.sCornerMark = is.read(this.sCornerMark, 19, true); - this.iPropViewId = is.read(this.iPropViewId, 20, true); - this.sPropStreamerResource = is.read(this.sPropStreamerResource, 21, true); - this.iStreamerFrameRate = is.read(this.iStreamerFrameRate, 22, true); - this.sPropsPic108 = is.read(this.sPropsPic108, 23, true); - this.sPcBannerResource = is.read(this.sPcBannerResource, 24, true); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java deleted file mode 100644 index 0c53ad40..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class PropsItem extends TarsStructBase { - - public static final PropsItem DEFAULT = new PropsItem() {{ - setSPropsName("未知礼物"); - setIPropsYb(-1); - }}; - - private int iPropsId = 0; - private String sPropsName = ""; - private int iPropsYb = 0; - private int iPropsGreenBean = 0; - private int iPropsWhiteBean = 0; - private int iPropsGoldenBean = 0; - private int iPropsRed = 0; - private int iPropsPopular = 0; - private int iPropsExpendNum = -1; - private int iPropsFansValue = -1; - private List vPropsNum = new ArrayList() {{ - add(-1); - }}; - private int iPropsMaxNum = 0; - private int iPropsBatterFlag = 0; - private List vPropsChannel = new ArrayList() {{ - add(-1); - }}; - private String sPropsToolTip = ""; - private List vPropsIdentity = new ArrayList() {{ - add(new PropsIdentity()); - }}; - private int iPropsWeights = 0; - private int iPropsLevel = 0; - private DisplayInfo tDisplayInfo = new DisplayInfo(); - private SpecialInfo tSpecialInfo = new SpecialInfo(); - private int iPropsGrade = 0; - private int iPropsGroupNum = 0; - private String sPropsCommBannerResource = ""; - private String sPropsOwnBannerResource = ""; - private int iPropsShowFlag = 0; - private int iTemplateType = 0; - private int iShelfStatus = 0; - private String sAndroidLogo = ""; - private String sIpadLogo = ""; - private String sIphoneLogo = ""; - private String sPropsCommBannerResourceEx = ""; - private String sPropsOwnBannerResourceEx = ""; - private List vPresenterUid = new ArrayList() {{ - add(-1L); - }}; - private List vPropView = new ArrayList() {{ - add(new PropView()); - }}; - private short iFaceUSwitch = 0; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iPropsId, 1); - os.write(this.sPropsName, 2); - os.write(this.iPropsYb, 3); - os.write(this.iPropsGreenBean, 4); - os.write(this.iPropsWhiteBean, 5); - os.write(this.iPropsGoldenBean, 6); - os.write(this.iPropsRed, 7); - os.write(this.iPropsPopular, 8); - os.write(this.iPropsExpendNum, 9); - os.write(this.iPropsFansValue, 10); - os.write(this.vPropsNum, 11); - os.write(this.iPropsMaxNum, 12); - os.write(this.iPropsBatterFlag, 13); - os.write(this.vPropsChannel, 14); - os.write(this.sPropsToolTip, 15); - os.write(this.vPropsIdentity, 16); - os.write(this.iPropsWeights, 17); - os.write(this.iPropsLevel, 18); - os.write(this.tDisplayInfo, 19); - os.write(this.tSpecialInfo, 20); - os.write(this.iPropsGrade, 21); - os.write(this.iPropsGroupNum, 22); - os.write(this.sPropsCommBannerResource, 23); - os.write(this.sPropsOwnBannerResource, 24); - os.write(this.iPropsShowFlag, 25); - os.write(this.iTemplateType, 26); - os.write(this.iShelfStatus, 27); - os.write(this.sAndroidLogo, 28); - os.write(this.sIpadLogo, 29); - os.write(this.sIphoneLogo, 30); - os.write(this.sPropsCommBannerResourceEx, 31); - os.write(this.sPropsOwnBannerResourceEx, 32); - os.write(this.vPresenterUid, 33); - os.write(this.vPropView, 34); - os.write(this.iFaceUSwitch, 35); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iPropsId = is.read(this.iPropsId, 1, true); - this.sPropsName = is.read(this.sPropsName, 2, true); - this.iPropsYb = is.read(this.iPropsYb, 3, true); - this.iPropsGreenBean = is.read(this.iPropsGreenBean, 4, true); - this.iPropsWhiteBean = is.read(this.iPropsWhiteBean, 5, true); - this.iPropsGoldenBean = is.read(this.iPropsGoldenBean, 6, true); - this.iPropsRed = is.read(this.iPropsRed, 7, true); - this.iPropsPopular = is.read(this.iPropsPopular, 8, true); - this.iPropsExpendNum = is.read(this.iPropsExpendNum, 9, true); - this.iPropsFansValue = is.read(this.iPropsFansValue, 10, true); - this.vPropsNum = is.readArray(this.vPropsNum, 11, true); - this.iPropsMaxNum = is.read(this.iPropsMaxNum, 12, true); - this.iPropsBatterFlag = is.read(this.iPropsBatterFlag, 13, true); - this.vPropsChannel = is.readArray(this.vPropsChannel, 14, true); - this.sPropsToolTip = is.read(this.sPropsToolTip, 15, true); - this.vPropsIdentity = is.readArray(this.vPropsIdentity, 16, true); - this.iPropsWeights = is.read(this.iPropsWeights, 17, true); - this.iPropsLevel = is.read(this.iPropsLevel, 18, true); - this.tDisplayInfo = (DisplayInfo) is.directRead(this.tDisplayInfo, 19, true); - this.tSpecialInfo = (SpecialInfo) is.directRead(this.tSpecialInfo, 20, true); - this.iPropsGrade = is.read(this.iPropsGrade, 21, true); - this.iPropsGroupNum = is.read(this.iPropsGroupNum, 22, true); - this.sPropsCommBannerResource = is.read(this.sPropsCommBannerResource, 23, true); - this.sPropsOwnBannerResource = is.read(this.sPropsOwnBannerResource, 24, true); - this.iPropsShowFlag = is.read(this.iPropsShowFlag, 25, true); - this.iTemplateType = is.read(this.iTemplateType, 26, true); - this.iShelfStatus = is.read(this.iShelfStatus, 27, true); - this.sAndroidLogo = is.read(this.sAndroidLogo, 28, true); - this.sIpadLogo = is.read(this.sIpadLogo, 29, true); - this.sIphoneLogo = is.read(this.sIphoneLogo, 30, true); - this.sPropsCommBannerResourceEx = is.read(this.sPropsCommBannerResourceEx, 31, true); - this.sPropsOwnBannerResourceEx = is.read(this.sPropsOwnBannerResourceEx, 32, true); - this.vPresenterUid = is.readArray(this.vPresenterUid, 33, true); - this.vPropView = is.readArray(this.vPropView, 34, true); - this.iFaceUSwitch = is.read(this.iFaceUSwitch, 35, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java deleted file mode 100644 index a35a6863..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SendMessageFormat extends TarsStructBase { - - private int iSenceType; - private long lFormatId; - private long lSizeTemplateId; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iSenceType, 0); - os.write(this.lFormatId, 1); - os.write(this.lSizeTemplateId, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iSenceType = is.read(this.iSenceType, 0, false); - this.lFormatId = is.read(this.lFormatId, 1, false); - this.lSizeTemplateId = is.read(this.lSizeTemplateId, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java deleted file mode 100644 index 79ef4a58..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SenderInfo extends TarsStructBase { - - private long lUid; - private long lImid; - private String sNickName = ""; - private int iGender; - private String sAvatarUrl; - private int iNobleLevel; - private NobleLevelInfo tNobleLevelInfo = new NobleLevelInfo(); - private String sGuid; - private String sHuYaUA; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.lImid, 1); - os.write(this.sNickName, 2); - os.write(this.iGender, 3); - os.write(this.sAvatarUrl, 4); - os.write(this.iNobleLevel, 5); - os.write(this.tNobleLevelInfo, 6); - os.write(this.sGuid, 7); - os.write(this.sHuYaUA, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, true); - this.lImid = is.read(this.lImid, 1, true); - this.sNickName = is.read(this.sNickName, 2, true); - this.iGender = is.read(this.iGender, 3, true); - this.sAvatarUrl = is.read(this.sAvatarUrl, 4, true); - this.iNobleLevel = is.read(this.iNobleLevel, 5, true); - this.tNobleLevelInfo = (NobleLevelInfo) is.directRead(this.tNobleLevelInfo, 6, true); - this.sGuid = is.read(this.sGuid, 7, true); - this.sHuYaUA = is.read(this.sHuYaUA, 8, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java deleted file mode 100644 index 055914c3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SpecialInfo extends TarsStructBase { - - private int iFirstSingle = 0; - private int iFirstGroup = 0; - private String sFirstTips = ""; - private int iSecondSingle = 0; - private int iSecondGroup = 0; - private String sSecondTips = ""; - private int iThirdSingle = 0; - private int iThirdGroup = 0; - private String sThirdTips = ""; - private int iWorldSingle = 0; - private int iWorldGroup = 0; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.iFirstSingle, 1); - os.write(this.iFirstGroup, 2); - os.write(this.sFirstTips, 3); - os.write(this.iSecondSingle, 4); - os.write(this.iSecondGroup, 5); - os.write(this.sSecondTips, 6); - os.write(this.iThirdSingle, 7); - os.write(this.iThirdGroup, 8); - os.write(this.sThirdTips, 9); - os.write(this.iWorldSingle, 10); - os.write(this.iWorldGroup, 11); - } - - @Override - public void readFrom(TarsInputStream is) { - this.iFirstSingle = is.read(this.iFirstSingle, 1, true); - this.iFirstGroup = is.read(this.iFirstGroup, 2, true); - this.sFirstTips = is.read(this.sFirstTips, 3, true); - this.iSecondSingle = is.read(this.iSecondSingle, 4, true); - this.iSecondGroup = is.read(this.iSecondGroup, 5, true); - this.sSecondTips = is.read(this.sSecondTips, 6, true); - this.iThirdSingle = is.read(this.iThirdSingle, 7, true); - this.iThirdGroup = is.read(this.iThirdGroup, 8, true); - this.sThirdTips = is.read(this.sThirdTips, 9, true); - this.iWorldSingle = is.read(this.iWorldSingle, 10, true); - this.iWorldGroup = is.read(this.iWorldGroup, 11, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java deleted file mode 100644 index cd1bd7af..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SuperFansInfo extends TarsStructBase { - - private long lSFExpiredTS; - private int iSFFlag; - private long lSFAnnualTS; - private int iSFVariety; - private long lOpenTS; - private long lMemoryDay; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lSFExpiredTS, 0); - os.write(this.iSFFlag, 1); - os.write(this.lSFAnnualTS, 2); - os.write(this.iSFVariety, 3); - os.write(this.lOpenTS, 4); - os.write(this.lMemoryDay, 5); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lSFExpiredTS = is.read(this.lSFExpiredTS, 0, false); - this.iSFFlag = is.read(this.iSFFlag, 1, false); - this.lSFAnnualTS = is.read(this.lSFAnnualTS, 2, false); - this.iSFVariety = is.read(this.iSFVariety, 3, false); - this.lOpenTS = is.read(this.lOpenTS, 4, false); - this.lMemoryDay = is.read(this.lMemoryDay, 5, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java deleted file mode 100644 index 8f36cc1f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UidNickName extends TarsStructBase { - - private long lUid = 0; - private String sNickName = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sNickName, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, true); - this.sNickName = is.read(this.sNickName, 1, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java deleted file mode 100644 index 56faee89..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UserId extends TarsStructBase { - - private long lUid; - private String sGuid = ""; - private String sToken = ""; - private String sHuYaUA = ""; - private String sCookie = ""; - private int iTokenType; - private String sDeviceInfo = ""; - - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sGuid, 1); - os.write(this.sToken, 2); - os.write(this.sHuYaUA, 3); - os.write(this.sCookie, 4); - os.write(this.iTokenType, 5); - os.write(this.sDeviceInfo, 6); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, true); - this.sGuid = is.read(this.sGuid, 1, true); - this.sToken = is.read(this.sToken, 2, true); - this.sHuYaUA = is.read(this.sHuYaUA, 3, true); - this.sCookie = is.read(this.sCookie, 4, true); - this.iTokenType = is.read(this.iTokenType, 5, true); - this.sDeviceInfo = is.read(this.sDeviceInfo, 6, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java deleted file mode 100644 index 813943d9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/10 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UserIdentityInfo extends TarsStructBase { - - private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); - private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.vDecorationPrefix, 0); - os.write(this.vDecorationSuffix, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 0, false); - this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java deleted file mode 100644 index f74bb5a9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UserRidePetInfo extends TarsStructBase { - - private long lPetId; - private String sPetName = ""; - private String sPetAction = ""; - private int iPetFlag; - private int iWeight; - private int iRideFlag; - private long lBeginTs; - private long lEndTs; - private int iSourceType; - private int iPetType; - private Map mPetDetail = new HashMap<>(); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lPetId, 0); - os.write(this.sPetName, 1); - os.write(this.sPetAction, 2); - os.write(this.iPetFlag, 3); - os.write(this.iWeight, 4); - os.write(this.iRideFlag, 5); - os.write(this.lBeginTs, 6); - os.write(this.lEndTs, 7); - os.write(this.iSourceType, 8); - os.write(this.iPetType, 9); - os.write(this.mPetDetail, 10); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lPetId = is.read(this.lPetId, 0, false); - this.sPetName = is.read(this.sPetName, 1, false); - this.sPetAction = is.read(this.sPetAction, 2, false); - this.iPetFlag = is.read(this.iPetFlag, 3, false); - this.iWeight = is.read(this.iWeight, 4, false); - this.iRideFlag = is.read(this.iRideFlag, 5, false); - this.lBeginTs = is.read(this.lBeginTs, 6, false); - this.lEndTs = is.read(this.lEndTs, 7, false); - this.iSourceType = is.read(this.iSourceType, 8, false); - this.iPetType = is.read(this.iPetType, 9, false); - this.mPetDetail = is.readMap(this.mPetDetail, 10, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java deleted file mode 100644 index 501273d6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.dto; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/12/27 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class WeekRankInfo extends TarsStructBase { - - private long lUid; - private int iRank; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.iRank, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.iRank = is.read(this.iRank, 1, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java deleted file mode 100644 index 81a7b3cb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GetLivingInfoReq extends TarsStructBase { - - private UserId tId = new UserId(); - private long lTopSid; - private long lSubSid; - private long lPresenterUid; - private String sTraceSource = ""; - private String sPassword = ""; - private long iRoomId; - private int iFreeFlowFlag; - private int iIpStack; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tId, 0); - os.write(this.lTopSid, 1); - os.write(this.lSubSid, 2); - os.write(this.lPresenterUid, 3); - os.write(this.sTraceSource, 4); - os.write(this.sPassword, 5); - os.write(this.iRoomId, 6); - os.write(this.iFreeFlowFlag, 7); - os.write(this.iIpStack, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.tId = (UserId) is.directRead(this.tId, 0, false); - this.lTopSid = is.read(this.lTopSid, 1, false); - this.lSubSid = is.read(this.lSubSid, 2, false); - this.lPresenterUid = is.read(this.lPresenterUid, 3, false); - this.sTraceSource = is.read(this.sTraceSource, 4, false); - this.sPassword = is.read(this.sPassword, 5, false); - this.iRoomId = is.read(this.iRoomId, 6, false); - this.iFreeFlowFlag = is.read(this.iFreeFlowFlag, 7, false); - this.iIpStack = is.read(this.iIpStack, 8, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java deleted file mode 100644 index e619dc3d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GetPropsListReq extends TarsStructBase { - - private UserId tUserId = new UserId(); - private String sMd5 = ""; - private int iTemplateType; - private String sVersion = ""; - private int iAppId; - private long lPresenterUid; - private long lSid; - private long lSubSid; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tUserId, 1); - os.write(this.sMd5, 2); - os.write(this.iTemplateType, 3); - os.write(this.sVersion, 4); - os.write(this.iAppId, 5); - os.write(this.lPresenterUid, 6); - os.write(this.lSid, 7); - os.write(this.lSubSid, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - is.read(this.tUserId, 1, true); - is.read(this.sMd5, 2, true); - is.read(this.iTemplateType, 3, true); - is.read(this.sVersion, 4, true); - is.read(this.iAppId, 5, true); - is.read(this.lPresenterUid, 6, true); - is.read(this.lSid, 7, true); - is.read(this.lSubSid, 8, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java deleted file mode 100644 index afc55ed9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author mjz - * @date 2023/10/3 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class GetPropsListRsp extends TarsStructBase { - - private List vPropsItemList = new ArrayList() {{ - add(new PropsItem()); - }}; - private String sMd5 = ""; - private short iNewEffectSwitch = 0; - private short iMirrorRoomShowNum = 0; - private short iGameRoomShowNum = 0; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.vPropsItemList, 1); - os.write(this.sMd5, 2); - os.write(this.iNewEffectSwitch, 3); - os.write(this.iMirrorRoomShowNum, 4); - os.write(this.iGameRoomShowNum, 5); - } - - @Override - public void readFrom(TarsInputStream is) { - this.vPropsItemList = is.readArray(this.vPropsItemList, 1, true); - this.sMd5 = is.read(this.sMd5, 2, true); - this.iNewEffectSwitch = is.read(this.iNewEffectSwitch, 3, true); - this.iMirrorRoomShowNum = is.read(this.iMirrorRoomShowNum, 4, true); - this.iGameRoomShowNum = is.read(this.iGameRoomShowNum, 5, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java deleted file mode 100644 index eaad9830..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.DeviceInfo; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LaunchReq extends TarsStructBase { - - private long lUid; - private String sGuid = ""; - private String sUA = ""; - private String sAppSrc = ""; - private DeviceInfo tDeviceInfo = new DeviceInfo(); - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sGuid, 1); - os.write(this.sUA, 2); - os.write(this.sAppSrc, 3); - os.write(this.tDeviceInfo, 4); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, false); - this.sGuid = is.read(this.sGuid, 1, false); - this.sUA = is.read(this.sUA, 2, false); - this.sAppSrc = is.read(this.sAppSrc, 3, false); - this.tDeviceInfo = (DeviceInfo) is.directRead(this.tDeviceInfo, 4, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java deleted file mode 100644 index 1c4ccd89..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.LiveUserbase; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class LiveLaunchReq extends TarsStructBase { - - private UserId tId = new UserId(); - private LiveUserbase tLiveUB = new LiveUserbase(); - private boolean bSupportDomain; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tId, 0); - os.write(this.tLiveUB, 1); - os.write(this.bSupportDomain, 2); - } - - @Override - public void readFrom(TarsInputStream is) { - this.tId = (UserId) is.directRead(this.tId, 0, false); - this.tLiveUB = (LiveUserbase) is.directRead(this.tLiveUB, 1, false); - this.bSupportDomain = is.read(this.bSupportDomain, 2, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java deleted file mode 100644 index bcb5b24f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class RegisterGroupReq extends TarsStructBase { - - private List vGroupId = CollUtil.newArrayList(""); - private String sToken = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.vGroupId, 0); - os.write(this.sToken, 1); - } - - @Override - public void readFrom(TarsInputStream is) { - this.vGroupId = is.readArray(this.vGroupId, 0, true); - this.sToken = is.read(this.sToken, 1, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java deleted file mode 100644 index d21ebbd3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import cn.hutool.core.collection.CollUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class SendMessageReq extends TarsStructBase { - - private UserId tUserId = new UserId(); - private long lTid; - private long lSid; - private String sContent = ""; - private int iShowMode; - private ContentFormat tFormat = new ContentFormat(); - private BulletFormat tBulletFormat = new BulletFormat(); - private List vAtSomeone; - private long lPid; - private List vTagInfo = CollUtil.newArrayList(new MessageTagInfo()); - private SendMessageFormat tSenceFormat = new SendMessageFormat(); - private int iMessageMode; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tUserId, 0); - os.write(this.lTid, 1); - os.write(this.lSid, 2); - os.write(this.sContent, 3); - os.write(this.iShowMode, 4); - os.write(this.tFormat, 5); - os.write(this.tBulletFormat, 6); - os.write(this.vAtSomeone, 7); - os.write(this.lPid, 8); - os.write(this.vTagInfo, 9); - os.write(this.tSenceFormat, 10); - os.write(this.iMessageMode, 11); - - } - - @Override - public void readFrom(TarsInputStream is) { - this.tUserId = (UserId) is.directRead(this.tUserId, 0, false); - this.lTid = is.read(this.lTid, 1, false); - this.lSid = is.read(this.lSid, 2, false); - this.sContent = is.read(this.sContent, 3, false); - this.iShowMode = is.read(this.iShowMode, 4, false); - this.tFormat = (ContentFormat) is.directRead(this.tFormat, 5, false); - this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 6, false); - this.vAtSomeone = is.readArray(this.vAtSomeone, 7, false); - this.lPid = is.read(this.lPid, 8, false); - this.vTagInfo = is.readArray(this.vTagInfo, 9, false); - this.tSenceFormat = (SendMessageFormat) is.directRead(this.tSenceFormat, 10, false); - this.iMessageMode = is.read(this.iMessageMode, 11, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java deleted file mode 100644 index 0a621f93..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgStatInfo; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UpdateUserInfoReq extends TarsStructBase { - - private String sAppSrc = ""; - private String sGuid = ""; - private int iReportMsgIdRatio; - private int iSupportAck; - private MsgStatInfo tWSMsgStatInfo = new MsgStatInfo(); - private Map mCustomHeader = new HashMap<>(); - private int iMsgDegradeLevel; - - public UpdateUserInfoReq(TarsInputStream is) { - this.readFrom(is); - } - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.sAppSrc, 0); - os.write(this.sGuid, 1); - os.write(this.iReportMsgIdRatio, 2); - os.write(this.iSupportAck, 3); - os.write(this.tWSMsgStatInfo, 6); - os.write(this.mCustomHeader, 7); - os.write(this.iMsgDegradeLevel, 8); - } - - @Override - public void readFrom(TarsInputStream is) { - this.sAppSrc = is.read(this.sAppSrc, 0, true); - this.sGuid = is.read(this.sGuid, 1, true); - this.iReportMsgIdRatio = is.read(this.iReportMsgIdRatio, 2, true); - this.iSupportAck = is.read(this.iSupportAck, 3, true); - this.tWSMsgStatInfo = (MsgStatInfo) is.directRead(this.tWSMsgStatInfo, 6, true); - this.mCustomHeader = is.readStringMap( 7, true); - this.iMsgDegradeLevel = is.read(this.iMsgDegradeLevel, 8, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java deleted file mode 100644 index a0293665..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; - -/** - * @author mjz - * @date 2023/10/2 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class UserHeartBeatReq extends TarsStructBase { - - private UserId tId = new UserId(); - private long lTid; - private long lSid; - private long lPid; - private boolean bWatchVideo; - private int eLineType; - private int iFps; - private int iAttendee; - private int iBandwidth; - private int iLastHeartElapseTime; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.tId, 0); - os.write(this.lTid, 1); - os.write(this.lSid, 2); - os.write(this.lPid, 4); - os.write(this.bWatchVideo, 5); - os.write(this.eLineType, 6); - os.write(this.iFps, 7); - os.write(this.iAttendee, 8); - os.write(this.iBandwidth, 9); - os.write(this.iLastHeartElapseTime, 10); - - } - - @Override - public void readFrom(TarsInputStream is) { - this.tId = (UserId) is.directRead(this.tId, 0, false); - this.lTid = is.read(this.lTid, 1, false); - this.lSid = is.read(this.lSid, 2, false); - this.lPid = is.read(this.lPid, 4, false); - this.bWatchVideo = is.read(this.bWatchVideo, 5, false); - this.eLineType = is.read(this.eLineType, 6, false); - this.iFps = is.read(this.iFps, 7, false); - this.iAttendee = is.read(this.iAttendee, 8, false); - this.iBandwidth = is.read(this.iBandwidth, 9, false); - this.iLastHeartElapseTime = is.read(this.iLastHeartElapseTime, 10, false); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java deleted file mode 100644 index cea49ccd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsOutputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -/** - * @author mjz - * @date 2023/10/5 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class VerifyCookieReq extends TarsStructBase { - - private long lUid; - private String sUA = ""; - private String sCookie = ""; - private String sGuid = ""; - private int bAutoRegisterUid; - private String sAppSrc = ""; - - @Override - public void writeTo(TarsOutputStream os) { - os.write(this.lUid, 0); - os.write(this.sUA, 1); - os.write(this.sCookie, 2); - os.write(this.sGuid, 3); - os.write(this.bAutoRegisterUid, 4); - os.write(this.sAppSrc, 5); - } - - @Override - public void readFrom(TarsInputStream is) { - this.lUid = is.read(this.lUid, 0, true); - this.sUA = is.read(this.sUA, 1, true); - this.sCookie = is.read(this.sCookie, 2, true); - this.sGuid = is.read(this.sGuid, 3, true); - this.bAutoRegisterUid = is.read(this.bAutoRegisterUid, 4, true); - this.sAppSrc = is.read(this.sAppSrc, 5, true); - } - - @Override - public TarsStructBase newInit() { - return this; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java deleted file mode 100644 index 90fe256f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.msg.req; - -import lombok.NoArgsConstructor; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.BaseWup; - -/** - * @author mjz - * @date 2023/10/3 - */ -@NoArgsConstructor -public class WupReq extends BaseWup { - - @Override - public HuyaOperationEnum getOperationEnum() { - return HuyaOperationEnum.EWSCmd_WupReq; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java deleted file mode 100644 index 2c21b346..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.netty.frame.factory; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.StrUtil; -import com.fasterxml.jackson.databind.JsonNode; -import io.netty.buffer.Unpooled; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; -import tech.ordinaryroad.live.chat.client.huya.api.HuyaApis; -import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaClientTemplateTypeEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaLiveSource; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.WebSocketCommand; -import tech.ordinaryroad.live.chat.client.huya.msg.req.*; -import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; - -import java.util.concurrent.ConcurrentHashMap; - -/** - * @author mjz - * @date 2023/1/5 - */ -public class HuyaWebSocketFrameFactory { - - private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); - public static final String KEY_COOKIE_GUID = "guid"; - public static final String KEY_COOKIE_YYUID = "yyuid"; - - /** - * 浏览器地址中的房间id,支持短id - */ - private final Object roomId; - private final JsonNode roomInfo; - private volatile static byte[] heartbeatMsg; - private volatile static byte[] giftListReqMsg; - - public HuyaWebSocketFrameFactory(Object roomId) { - this.roomId = roomId; - this.roomInfo = HuyaApis.roomInit(roomId); - } - - public synchronized static HuyaWebSocketFrameFactory getInstance(Object roomId) { - return CACHE.computeIfAbsent(roomId, aLong -> new HuyaWebSocketFrameFactory(roomId)); - } - - /** - * 创建弹幕包 - * - * @param msg 弹幕内容 - * @param ver {@link HuyaLiveChatClientConfig#getVer()} - * @param cookie {@link HuyaLiveChatClientConfig#getCookie()} ()} - * @return BinaryWebSocketFrame - */ - public BinaryWebSocketFrame createSendMessageReq(String msg, String ver, String cookie) { - String yyuid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_YYUID, () -> { - throw new BaseException("cookie中缺少参数" + KEY_COOKIE_YYUID); - }); - String guid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_GUID, () -> { - throw new BaseException("cookie中缺少参数" + KEY_COOKIE_GUID); - }); - SendMessageReq sendMessageReq = new SendMessageReq(); - sendMessageReq.getTUserId().setLUid(NumberUtil.parseLong(yyuid)); - sendMessageReq.getTUserId().setSGuid(guid); - sendMessageReq.getTUserId().setSHuYaUA("webh5&" + ver + "&websocket"); - sendMessageReq.getTUserId().setSCookie(cookie); - sendMessageReq.getTUserId().setSDeviceInfo("chrome"); - sendMessageReq.setSContent(msg); - sendMessageReq.setLPid(roomInfo.get("lChannelId").asLong()); - - WupReq wupReq = new WupReq(); - wupReq.getTarsServantRequest().setServantName("liveui"); - wupReq.getTarsServantRequest().setFunctionName("sendMessage"); - wupReq.getUniAttribute().put("tReq", sendMessageReq); - - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); - webSocketCommand.setVData(wupReq.encode()); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - /** - * 创建认证包 - * 1. doLaunch - * 2. registerGroup - * 3. updateUserInfo - * - * @return AuthWebSocketFrame - */ - public BinaryWebSocketFrame createAuth(String ver, String cookie) { - // sFuncName - // getLivingInfo, huyaliveui - // getPresenterLiveScheduleInfo, presenterui - // doLaunch, liveui - // chat:1724691, live:1724691 - // getWebdbUserInfo, liveui - // OnUserHeartBeat, onlineuif -// try { -// UserInfo wsUserInfo = new UserInfo(); -// wsUserInfo.setLUid(roomInfo.get("lYyid").asLong()); -// wsUserInfo.setBAnonymous(roomInfo.get("lYyid").asLong() == 0); -// wsUserInfo.setLTid(roomInfo.get("lChannelId").asLong()); -// wsUserInfo.setLSid(roomInfo.get("lSubChannelId").asLong()); -// wsUserInfo.setLGroupId(roomInfo.get("lYyid").asLong()); -// wsUserInfo.setLGroupType(3); -// wsUserInfo.setSAppId(""); -// wsUserInfo.setSUA("webh5&%s&websocket".formatted(HuyaLiveChatClientConfig.VER)); -// -// WebSocketCommand webSocketCommand = new WebSocketCommand(); -// webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_RegisterReq.getCode()); -// webSocketCommand.setVData(wsUserInfo.toByteArray()); -// return new AuthWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); -// } catch (Exception e) { -// throw new BaseException("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s".formatted(roomId, e.getMessage())); -// } - return createLiveLaunchReq(ver, cookie); - } - - public BinaryWebSocketFrame createGetLivingInfoReq(String ver, String cookie) { - GetLivingInfoReq getLivingInfoReq = new GetLivingInfoReq(); -// getLivingInfoReq.getTId().setSGuid("0a7dca72a3ce1b654001dd2ade2ae857"); - getLivingInfoReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); - getLivingInfoReq.getTId().setSDeviceInfo("chrome"); - getLivingInfoReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); -// getLivingInfoReq.getTId().setSCookie("vplayer_sbanner_1724691_1724691=1; SoundValue=0.50; alphaValue=0.80; game_did=R24J2g0mBzvdXJf7a9nheSl3zIci2BOp0-t; isInLiveRoom=true; guid=0a7dca72a3ce1b654001dd2ade2ae857; __yamid_tt1=0.8029935065011269; __yamid_new=CA75D4CD5C100001165B82B52140C900; guid=0a7dca72a3ce1b654001dd2ade2ae857; udb_guiddata=af5dbdbf76254a6e8a0a293ccae9b688; udb_deviceid=w_761623483861815296; udb_passdata=3; __yasmid=0.8029935065011269; _yasids=__rootsid%3DCA767045C1100001EC5A145C1E90FE00; Hm_lvt_51700b6c722f5bb4cf39906a596ea41f=1696473760,1696476745,1696483565,1696484212; Hm_lpvt_51700b6c722f5bb4cf39906a596ea41f=1696484212; huya_ua=webh5&0.0.1&activity; _rep_cnt=2; sdid=0UnHUgv0/qmfD4KAKlwzhqX98QrnPCcck6fN494iawS5Kmymgreu89o7gYta/QvQsBDeSeSRp4/grQ5fEuFAYrL59coAKuxuukiwgTLjfjEDWVkn9LtfFJw/Qo4kgKr8OZHDqNnuwg612sGyflFn1dkUeZYTToCzzl4GCHq7MUDahxGuPR8mUddfImFtjccs1; huya_flash_rep_cnt=74; huya_web_rep_cnt=125; rep_cnt=44"); - getLivingInfoReq.setLPresenterUid(roomInfo.get("lChannelId").asLong()); - - WupReq wupReq = new WupReq(); - wupReq.getTarsServantRequest().setServantName("huyaliveui"); - wupReq.getTarsServantRequest().setFunctionName("getLivingInfo"); - wupReq.getUniAttribute().put("tReq", getLivingInfoReq); - - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); - webSocketCommand.setVData(wupReq.encode()); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - public BinaryWebSocketFrame createLiveLaunchReq(String ver, String cookie) { - LiveLaunchReq liveLaunchReq = new LiveLaunchReq(); - liveLaunchReq.setBSupportDomain(true); -// liveLaunchReq.getTId().setSGuid(UUID.fastUUID().toString(true)); - liveLaunchReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); - liveLaunchReq.getTId().setSDeviceInfo("chrome"); - liveLaunchReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); - liveLaunchReq.getTLiveUB().setESource(HuyaLiveSource.WEB_HUYA.getCode()); - - WupReq wupReq = new WupReq(); - wupReq.getTarsServantRequest().setServantName("liveui"); - wupReq.getTarsServantRequest().setFunctionName("doLaunch"); - wupReq.getUniAttribute().put("tReq", liveLaunchReq); - - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); - webSocketCommand.setVData(wupReq.encode()); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - public BinaryWebSocketFrame createRegisterGroupReq() { - String lYyid = roomInfo.get("lChannelId").asText(); - - RegisterGroupReq registerGroupReq = new RegisterGroupReq(); - registerGroupReq.setVGroupId(CollUtil.newArrayList("live:" + lYyid, "chat:" + lYyid)); - - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_RegisterGroupReq.getCode()); - webSocketCommand.setVData(registerGroupReq.toByteArray()); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - public BinaryWebSocketFrame createUpdateUserInfoReq() { - UpdateUserInfoReq updateUserInfoReq = new UpdateUserInfoReq(); - updateUserInfoReq.setSAppSrc("HUYA&ZH&2052"); - updateUserInfoReq.getTWSMsgStatInfo().setISupportAckMsgStat(1); - - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_UpdateUserInfoReq.getCode()); - webSocketCommand.setVData(updateUserInfoReq.toByteArray()); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - /** - * 创建获取礼物列表请求包 - * - * @return BinaryWebSocketFrame - */ - public BinaryWebSocketFrame createGiftListReq(String ver) { - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); - webSocketCommand.setVData(this.getGiftListReqMsg(ver)); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - public BinaryWebSocketFrame createHeartbeat(String ver, String cookie) { - WebSocketCommand webSocketCommand = new WebSocketCommand(); - webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_HeartBeatReq.getCode()); - webSocketCommand.setVData(this.getHeartbeatMsg(ver, cookie)); - return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); - } - - /** - * 心跳包单例模式 - */ - public byte[] getHeartbeatMsg(String ver, String cookie) { - if (heartbeatMsg == null) { - synchronized (HuyaWebSocketFrameFactory.this) { - if (heartbeatMsg == null) { - UserHeartBeatReq userHeartBeatReq = new UserHeartBeatReq(); -// userHeartBeatReq.getTId().setSGuid(""); - userHeartBeatReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); - userHeartBeatReq.getTId().setSDeviceInfo("chrome"); - userHeartBeatReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); -// userHeartBeatReq.setLSid(roomInfo.get("lSubChannelId").asLong()); - userHeartBeatReq.setLPid(roomInfo.get("lChannelId").asLong()); -// userHeartBeatReq.setELineType(HuyaStreamLineTypeEnum.STREAM_LINE_WS.getCode()); - userHeartBeatReq.setELineType(-1); - - heartbeatMsg = HuyaCodecUtil.encode("onlineui", HuyaWupFunctionEnum.OnUserHeartBeat, userHeartBeatReq); - } - } - } - return heartbeatMsg; - } - - /** - * 礼物列表请求包单例模式 - */ - public byte[] getGiftListReqMsg(String ver) { - if (giftListReqMsg == null) { - synchronized (HuyaWebSocketFrameFactory.this) { - if (giftListReqMsg == null) { - GetPropsListReq getPropsListReq = new GetPropsListReq(); - getPropsListReq.getTUserId().setLUid(roomInfo.get("lYyid").asLong()); - getPropsListReq.getTUserId().setSHuYaUA("webh5&" + ver + "&websocket"); - getPropsListReq.setITemplateType(HuyaClientTemplateTypeEnum.TPL_MIRROR.getCode()); - - giftListReqMsg = HuyaCodecUtil.encode("PropsUIServer", HuyaWupFunctionEnum.getPropsList, getPropsListReq); - } - } - } - return giftListReqMsg; - } - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java deleted file mode 100644 index 81a4f436..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.netty.handler; - -import com.qq.tars.protocol.tars.TarsInputStream; -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.huya.api.HuyaApis; -import tech.ordinaryroad.live.chat.client.huya.client.HuyaLiveChatClient; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; -import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; -import tech.ordinaryroad.live.chat.client.huya.msg.*; -import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgItem; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; -import tech.ordinaryroad.live.chat.client.huya.msg.req.GetPropsListRsp; -import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; - -import java.util.List; - - -/** - * 消息处理器 - * - * @author mjz - * @date 2023/9/5 - */ -@Slf4j -@ChannelHandler.Sharable -public class HuyaBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { - - /** - * 以ClientConfig为主 - */ - private final String ver; - private ChannelHandlerContext channelHandlerContext; - - public HuyaBinaryFrameHandler(List iHuyaMsgListeners, HuyaLiveChatClient client, long roomId) { - super(iHuyaMsgListeners, client, roomId); - this.ver = client.getConfig().getVer(); - } - - public HuyaBinaryFrameHandler(List iHuyaMsgListeners, HuyaLiveChatClient client) { - super(iHuyaMsgListeners, client); - this.ver = client.getConfig().getVer(); - } - - public HuyaBinaryFrameHandler(List iHuyaMsgListeners, long roomId, String ver) { - super(iHuyaMsgListeners, roomId); - this.ver = ver; - } - - @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { - super.handlerAdded(ctx); - channelHandlerContext = ctx; - } - - @Override - public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { - super.handlerRemoved(ctx); - channelHandlerContext = null; - } - - @Override - public void onMsg(IMsg msg) { - IHuyaMsg iHuyaMsg = (IHuyaMsg) msg; - HuyaOperationEnum operationEnum = iHuyaMsg.getOperationEnum(); - if (operationEnum == HuyaOperationEnum.EWSCmdS2C_RegisterGroupRsp) { -// channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createUpdateUserInfoReq()); - // 获取礼物列表 -// if (channelHandlerContext == null) { -// log.error("channelHandlerContext is null, cannot get gift list"); -// return; -// } -// if (log.isDebugEnabled()) { -// log.debug("获取礼物列表"); -// } - channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createGiftListReq(getVer())); - } else if (operationEnum == HuyaOperationEnum.EWSCmd_WupRsp) { - WupRsp wupRsp = (WupRsp) msg; - String functionName = wupRsp.getTarsServantRequest().getFunctionName(); - HuyaWupFunctionEnum wupFunctionEnum = HuyaWupFunctionEnum.getByName(functionName); - if (wupFunctionEnum == null) { - if (log.isWarnEnabled()) { - log.warn("未知 function {}", functionName); - } - return; - } - - switch (wupFunctionEnum) { - case doLaunch: { -// LiveLaunchRsp liveLaunchRsp = new LiveLaunchRsp(); -// liveLaunchRsp = wupRsp.getUniAttribute().getByClass("tRsp", liveLaunchRsp); - channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createRegisterGroupReq()); - break; - } - case getPropsList: { - GetPropsListRsp getPropsListRsp = new GetPropsListRsp(); - getPropsListRsp = wupRsp.getUniAttribute().getByClass("tRsp", getPropsListRsp); - for (PropsItem propsItem : getPropsListRsp.getVPropsItemList()) { - HuyaApis.GIFT_ITEMS.put(propsItem.getIPropsId(), propsItem); - } - break; - } - default: { - if (log.isDebugEnabled()) { - log.debug("暂不支持 function {}", wupFunctionEnum); - } - } - } - } else { - // ignore - } - } - - @Override - public void onCmdMsg(HuyaCmdEnum cmd, ICmdMsg cmdMsg) { - if (super.msgListeners.isEmpty()) { - return; - } - - byte[] dataBytes; - if (cmdMsg instanceof PushMessage) { - PushMessage pushMessage = (PushMessage) cmdMsg; - dataBytes = pushMessage.getDataBytes(); - } else if (cmdMsg instanceof MsgItem) { - MsgItem msgItem = (MsgItem) cmdMsg; - dataBytes = msgItem.getSMsg(); - } else { - if (log.isDebugEnabled()) { - log.debug("非HuyaCmdMsg {}", cmdMsg.getClass()); - } - return; - } - TarsInputStream tarsInputStream = HuyaCodecUtil.newUtf8TarsInputStream(dataBytes); - - switch (cmd) { - case MessageNotice: { - MessageNoticeMsg messageNoticeMsg = new MessageNoticeMsg(tarsInputStream); - iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(HuyaBinaryFrameHandler.this, messageNoticeMsg)); - break; - } - case SendItemSubBroadcastPacket: { - SendItemSubBroadcastPacketMsg sendItemSubBroadcastPacketMsg = new SendItemSubBroadcastPacketMsg(tarsInputStream); - sendItemSubBroadcastPacketMsg.setPropsItem(HuyaApis.GIFT_ITEMS.getOrDefault(sendItemSubBroadcastPacketMsg.getIItemType(), PropsItem.DEFAULT)); - iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(HuyaBinaryFrameHandler.this, sendItemSubBroadcastPacketMsg)); - break; - } - case VipEnterBanner: { - VipEnterBannerMsg vipEnterBannerMsg = new VipEnterBannerMsg(tarsInputStream); - iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(HuyaBinaryFrameHandler.this, vipEnterBannerMsg)); - break; - } - default: { - iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(HuyaBinaryFrameHandler.this, cmd, cmdMsg)); - } - } - } - - public String getVer() { - return client != null ? client.getConfig().getVer() : ver; - } - - @Override - protected List decode(ByteBuf byteBuf) { - return HuyaCodecUtil.decode(byteBuf); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java deleted file mode 100644 index ad052fcd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.netty.handler; - -import io.netty.channel.Channel; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.huya.client.HuyaLiveChatClient; -import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; - - -/** - * 连接处理器 - * - * @author mjz - * @date 2023/8/21 - */ -@Slf4j -@ChannelHandler.Sharable -public class HuyaConnectionHandler extends BaseNettyClientConnectionHandler { - - /** - * 以ClientConfig为主 - */ - private final Object roomId; - /** - * 以ClientConfig为主 - */ - private final String ver; - /** - * 以ClientConfig为主 - */ - private String cookie; - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, HuyaLiveChatClient client, IBaseConnectionListener listener) { - super(handshaker, client, listener); - this.roomId = client.getConfig().getRoomId(); - this.ver = client.getConfig().getVer(); - this.cookie = client.getConfig().getCookie(); - } - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, HuyaLiveChatClient client) { - this(handshaker, client, null); - } - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, IBaseConnectionListener listener, String cookie) { - super(handshaker, listener); - this.roomId = roomId; - this.ver = ver; - this.cookie = cookie; - } - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, IBaseConnectionListener listener) { - this(handshaker, roomId, ver, listener, null); - } - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, String cookie) { - this(handshaker, roomId, ver, null, cookie); - } - - public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver) { - this(handshaker, roomId, ver, null, null); - } - - @Override - protected void sendHeartbeat(ChannelHandlerContext ctx) { - if (log.isDebugEnabled()) { - log.debug("发送心跳包"); - } - ctx.writeAndFlush( - getWebSocketFrameFactory(getRoomId()).createHeartbeat(getVer(), getCookie()) - ).addListener((ChannelFutureListener) future -> { - if (future.isSuccess()) { - if (log.isDebugEnabled()) { - log.debug("心跳包发送完成"); - } - } else { - log.error("心跳包发送失败", future.cause()); - } - }); - } - - private static HuyaWebSocketFrameFactory getWebSocketFrameFactory(Object roomId) { - return HuyaWebSocketFrameFactory.getInstance(roomId); - } - - @Override - public void sendAuthRequest(Channel channel) { - if (log.isDebugEnabled()) { - log.debug("发送认证包"); - } - channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(getVer(), getCookie())); - } - - public Object getRoomId() { - return client != null ? client.getConfig().getRoomId() : roomId; - } - - public String getVer() { - return client != null ? client.getConfig().getVer() : ver; - } - - private String getCookie() { - return client != null ? client.getConfig().getCookie() : cookie; - } - - @Override - protected long getHeartbeatPeriod() { - if (client == null) { - return HuyaLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; - } else { - return client.getConfig().getHeartbeatPeriod(); - } - } - - @Override - protected long getHeartbeatInitialDelay() { - if (client == null) { - return HuyaLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; - } else { - return client.getConfig().getHeartbeatInitialDelay(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java deleted file mode 100644 index e5b479ea..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.util; - -import cn.hutool.core.codec.Base64; -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ByteUtil; -import com.qq.tars.protocol.tars.TarsInputStream; -import com.qq.tars.protocol.tars.TarsStructBase; -import io.netty.buffer.ByteBuf; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaDecorationAppTypeEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaDecorationViewTypeEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; -import tech.ordinaryroad.live.chat.client.huya.msg.*; -import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.BadgeInfo; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.DecorationInfo; -import tech.ordinaryroad.live.chat.client.huya.msg.req.WupReq; - -import java.nio.charset.StandardCharsets; -import java.util.*; - -/** - * @author mjz - * @date 2023/9/5 - */ -@Slf4j -public class HuyaCodecUtil { - - public static List decode(ByteBuf in) { - List msgList = new ArrayList<>(); - Queue pendingByteBuf = new LinkedList<>(); - - do { - msgList.addAll(doDecode(in, pendingByteBuf)); - in = pendingByteBuf.poll(); - } while (in != null); - - return msgList; - } - - /** - * 执行解码操作,有压缩则先解压,解压后可能得到多条消息 - * - * @param in handler收到的一条消息 - * @param pendingByteBuf 用于存放未读取完的ByteBuf - */ - private static List doDecode(ByteBuf in, Queue pendingByteBuf) { - byte[] bytes = new byte[in.readableBytes()]; - in.readBytes(bytes); - - WebSocketCommand webSocketCommand = new WebSocketCommand(newUtf8TarsInputStream(bytes)); - HuyaOperationEnum operationEnum = webSocketCommand.getOperationEnum(); - if (operationEnum == null) { - throw new BaseException(String.format("未知operation: %d", webSocketCommand.getOperation())); - } - - switch (operationEnum) { - case EWSCmd_RegisterRsp: { - return Collections.singletonList(new RegisterRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); - } - case EWSCmdS2C_RegisterGroupRsp: { - return Collections.singletonList(new RegisterGroupRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); - } - case EWSCmd_WupRsp: { - return Collections.singletonList(new WupRsp(webSocketCommand.getVData())); - } - case EWSCmdS2C_MsgPushReq: { - return Collections.singletonList(new PushMessage(newUtf8TarsInputStream(webSocketCommand.getVData()))); - } - case EWSCmdS2C_VerifyCookieRsp: { - return Collections.singletonList(new VerifyCookieRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); - } - case EWSCmdS2C_MsgPushReq_V2: { - PushMessage_V2 pushMessageV2 = new PushMessage_V2(newUtf8TarsInputStream(webSocketCommand.getVData())); - return pushMessageV2.getVMsgItem(); - } - default: { - return Collections.singletonList(webSocketCommand); - } - } - } - - public static byte[] encode(String servantName, HuyaWupFunctionEnum function, TarsStructBase req) { - WupReq wupReq = new WupReq(); - wupReq.getTarsServantRequest().setServantName(servantName); - wupReq.getTarsServantRequest().setFunctionName(function.name()); - wupReq.getUniAttribute().put("tReq", req); - return wupReq.encode(); - } - - public static TarsInputStream newUtf8TarsInputStream(byte[] bytes) { - TarsInputStream tarsInputStream = new TarsInputStream(bytes); - tarsInputStream.setServerEncoding(StandardCharsets.UTF_8.name()); - return tarsInputStream; - } - - public static Optional decodeDecorationInfo(DecorationInfo decorationInfo) { - int iViewType = decorationInfo.getIViewType(); - HuyaDecorationViewTypeEnum huyaDecorationViewTypeEnum = HuyaDecorationViewTypeEnum.getByCode(iViewType); - if (huyaDecorationViewTypeEnum == null) { - return Optional.empty(); - } - - switch (huyaDecorationViewTypeEnum) { - case kDecorationViewTypeCustomized: { - int iAppId = decorationInfo.getIAppId(); - HuyaDecorationAppTypeEnum huyaDecorationAppTypeEnum = HuyaDecorationAppTypeEnum.getByCode(iAppId); - if (huyaDecorationAppTypeEnum == null) { - return Optional.empty(); - } - - switch (huyaDecorationAppTypeEnum) { - case kDecorationAppTypeFans: { - BadgeInfo badgeInfo = new BadgeInfo(); - badgeInfo.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(decorationInfo.getVData())); - return Optional.of(badgeInfo); - } - default: { - return Optional.empty(); - } - } - } - default: { - return Optional.empty(); - } - } - } - - public static String ab2str(byte[] bytes) { - char[] chars = new char[bytes.length]; - for (int i = 0; i < bytes.length; i++) { - int unsignedInt = ByteUtil.byteToUnsignedInt(bytes[i]); - chars[i] = (char) unsignedInt; - } - return ArrayUtil.join(chars, ""); - } - - public static String btoa(String string) { - return Base64.encode(string); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java deleted file mode 100644 index 3de00e25..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package tech.ordinaryroad.live.chat.client.huya.api; - -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; - -/** - * @author mjz - * @date 2023/10/1 - */ -class HuyaApisTest { - - @Test - void roomInit() { - assertEquals(HuyaApis.roomInit(189201).size(), 3); - assertThrows(BaseException.class, () -> HuyaApis.roomInit(-1)); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java deleted file mode 100644 index e8b83892..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.huya.client; - -import cn.hutool.core.thread.ThreadUtil; -import cn.hutool.core.util.RandomUtil; -import cn.hutool.core.util.StrUtil; -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; -import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; -import tech.ordinaryroad.live.chat.client.huya.msg.MessageNoticeMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.SendItemSubBroadcastPacketMsg; -import tech.ordinaryroad.live.chat.client.huya.msg.VipEnterBannerMsg; -import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -/** - * @author mjz - * @date 2023/9/5 - */ -@Slf4j -class HuyaLiveChatClientTest { - - static Object lock = new Object(); - HuyaLiveChatClient client; - - @Test - void example() throws InterruptedException { - HuyaLiveChatClientConfig config = HuyaLiveChatClientConfig.builder() - .roomId(353322) - .roomId(390001) - .roomId(527988) - .roomId(1995) - .roomId(116) - // bagea - .roomId(189201) - .build(); - - client = new HuyaLiveChatClient(config, new IHuyaMsgListener() { - @Override - public void onDanmuMsg(HuyaBinaryFrameHandler binaryFrameHandler, MessageNoticeMsg msg) { - log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(HuyaBinaryFrameHandler binaryFrameHandler, SendItemSubBroadcastPacketMsg msg) { - long lPayTotal = msg.getLPayTotal(); - if (lPayTotal != 0) { - int giftPrice = msg.getGiftPrice(); - } - log.info("{} 收到礼物 {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); - } - - @Override - public void onEnterRoomMsg(HuyaBinaryFrameHandler binaryFrameHandler, VipEnterBannerMsg msg) { - // 虎牙目前只支持监听VIP用户的入房消息 - log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - - @Override - public void onMsg(HuyaBinaryFrameHandler binaryFrameHandler, IMsg msg) { - log.debug("{} 收到{}消息 {}", binaryFrameHandler.getRoomId(), msg.getClass(), msg); - } - - @Override - public void onCmdMsg(HuyaBinaryFrameHandler binaryFrameHandler, HuyaCmdEnum cmd, ICmdMsg cmdMsg) { - log.info("{} 收到CMD消息{} {}", binaryFrameHandler.getRoomId(), cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(HuyaBinaryFrameHandler binaryFrameHandler, HuyaCmdEnum cmd, ICmdMsg cmdMsg) { - log.debug("{} 收到其他CMD消息 {}", binaryFrameHandler.getRoomId(), cmd); - } - - @Override - public void onUnknownCmd(HuyaBinaryFrameHandler binaryFrameHandler, String cmdString, IMsg msg) { - log.debug("{} 收到未知CMD消息 {}", binaryFrameHandler.getRoomId(), cmdString); - } - }); - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void sendDanmuTest() throws InterruptedException { - String cookie = System.getenv("cookie"); - assertTrue(StrUtil.isNotBlank(cookie)); - log.error("cookie: {}", cookie); - - HuyaLiveChatClientConfig config = HuyaLiveChatClientConfig.builder() - .cookie(cookie) - .roomId(189201) - .build(); - - client = new HuyaLiveChatClient(config); - client.connect(() -> { - String danmu = "66666" + RandomUtil.randomNumber(); - log.info("连接成功,5s后发送弹幕{}", danmu); - ThreadUtil.sleep(5000); - client.sendDanmu(danmu); - }); - client.addMsgListener(new IHuyaMsgListener() { - @Override - public void onMsg(IMsg msg) { - log.info("收到消息{}", msg); - } - }); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java deleted file mode 100644 index aabfed7e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package tech.ordinaryroad.live.chat.client.huya.util; - -import cn.hutool.core.codec.Base64; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.huya.msg.ConnectParaInfo; -import tech.ordinaryroad.live.chat.client.huya.msg.LiveLaunchRsp; -import tech.ordinaryroad.live.chat.client.huya.msg.WebSocketCommand; -import tech.ordinaryroad.live.chat.client.huya.msg.WupRsp; -import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; -import tech.ordinaryroad.live.chat.client.huya.msg.req.*; - -import java.util.List; - -/** - * @author mjz - * @date 2023/10/3 - */ -class HuyaCodecUtilTest { - - private String ver = "2309271152"; - private String exp = "15547.23738,16582.25335,32083.50834"; - private String appSrc = "HUYA&ZH&2052"; - - @Test - void ab2str() { - ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc); - byte[] byteArray = wsConnectParaInfo.toByteArray(); - String s = HuyaCodecUtil.ab2str(byteArray); - System.out.println(s); - } - - @Test - void btoa() { - ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc); - byte[] byteArray = wsConnectParaInfo.toByteArray(); - String s = HuyaCodecUtil.ab2str(byteArray); - - String btoa = HuyaCodecUtil.btoa(s); - System.out.println(btoa); - } - - @Test - void decodeHeartbeatTest() { - byte[] decode = Base64.decode("AAMdAAEEKAAABCgQAyw8QAFWCG9ubGluZXVpZg9PblVzZXJIZWFydEJlYXR9AAED+QgAAQYEdFJlcR0AAQPrCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0MDk0MjAsMTY5NjQxMTgwNiwxNjk2NDczNzYwLDE2OTY0NzY3NDU7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjY5MjcwM0IwMDAwMTNGRkJCRkVBNjY4Nzk5RDA7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ3Njg4MDsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mzsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxU1drU1d3a3RzZXhQSWNsTnQzUGJ3TVFha1dOTmZrMlc4KzFkNlFNZzVZYnU1bC9GcDRpaHRUTDdCd0Q2bTQ0MENHUUNkU0htZW1kOUNNLzVKRVZkanJXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NTc7IHJlcF9jbnQ9NDA7IGh1eWFfd2ViX3JlcF9jbnQ9MTY2XGYGY2hyb21lCxwsQgAaURNcYP98jJysC4yYDKgMLDYlYTgzMDdmMWM0YzRmNGVmMDphODMwN2YxYzRjNGY0ZWYwOjA6MExcZiAyYmZlZjAzNmEwMzBkOTgyN2ZjYmQwMmU5ZmM0NzY1OQ=="); - WupReq wupReq = new WupReq(); - wupReq.decode(decode); - UserHeartBeatReq userHeartBeatReq = new UserHeartBeatReq(); - userHeartBeatReq = wupReq.getUniAttribute().getByClass("tReq", userHeartBeatReq); - long lPid = userHeartBeatReq.getLPid(); - } - - @Test - void decodeRegisterGroupReq() { - byte[] decode = Base64.decode("ABAdAAAhCQACBgxsaXZlOjE3MjQ2OTEGDGNoYXQ6MTcyNDY5MRYAIAE2AExcZgA="); - WebSocketCommand webSocketCommand = new WebSocketCommand(HuyaCodecUtil.newUtf8TarsInputStream(decode)); - byte[] vData = webSocketCommand.getVData(); - RegisterGroupReq registerGroupReq = new RegisterGroupReq(); - registerGroupReq.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(vData)); - List vGroupId = registerGroupReq.getVGroupId(); - } - - @Test - void decodeLiveLaunchReq() { - byte[] decode = Base64.decode("AAMdAAEEJAAABCQQAyw8QARWBmxpdmV1aWYIZG9MYXVuY2h9AAED/ggAAQYEdFJlcR0AAQPwCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0MDk0MjAsMTY5NjQxMTgwNiwxNjk2NDczNzYwLDE2OTY0NzY3NDU7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjY5MjcwM0IwMDAwMTNGRkJCRkVBNjY4Nzk5RDA7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ3Njg4MDsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mzsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxU1drU1d3a3RzZXhQSWNsTnQzUGJ3TVFha1dOTmZrMlc4KzFkNlFNZzVZYnU1bC9GcDRpaHRUTDdCd0Q2bTQ0MENHUUNkU0htZW1kOUNNLzVKRVZkanJXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NTc7IHJlcF9jbnQ9NDA7IGh1eWFfd2ViX3JlcF9jbnQ9MTY2XGYGY2hyb21lCxoAAxwqFgAmADYARgBWAAsLIAELjJgMqAwsNiU5N2Q5NzQ4NTYyMzdiMWZiOjk3ZDk3NDg1NjIzN2IxZmI6MDowTFxmIGU2OTYzZjMwMTRmYzZlY2U2M2ExNmU3ZTlhMzMzOWVl"); - WupReq wupReq = new WupReq(); - wupReq.decode(decode); - LiveLaunchReq liveLaunchReq = new LiveLaunchReq(); - liveLaunchReq = wupReq.getUniAttribute().getByClass("tReq", liveLaunchReq); - UserId tId = liveLaunchReq.getTId(); - System.out.println(wupReq.getTarsServantRequest().getVersion()); - } - - @Test - void decodeLiveLaunchRsp() { - byte[] decode = Base64.decode("AAQdAAECXAAAAlwQAyw8QARWBmxpdmV1aWYIZG9MYXVuY2h9AAECNggAAgYAHQAAAQwGBHRSc3AdAAECIQoGIDBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3EmUeNXopAAUKAAEZAAQGETExMS4xOS4yMzkuMTExOjgwBhAxMTEuMTkuMjI1LjIzOjgwBhAxMTEuNjMuMTgwLjk4OjgwBhExMTEuNjMuMTgwLjEwMDo4MAsKAAUZAAQGFzZmMTNlZjZmLXdzLnZhLmh1eWEuY29tBhc2ZjEzZTExNy13cy52YS5odXlhLmNvbQYXNmYzZmI0NjItd3MudmEuaHV5YS5jb20GFzZmM2ZiNDY0LXdzLnZhLmh1eWEuY29tCwoABhkABAYRMTExLjE5LjIzOS4xMTE6ODAGEDExMS4xOS4yMjUuMjM6ODAGEDExMS42My4xODAuOTg6ODAGETExMS42My4xODAuMTAwOjgwCwoABxkABAYRMTExLjE5LjIzOS4xMTE6ODAGEDExMS4xOS4yMjUuMjM6ODAGEDExMS42My4xODAuOTg6ODAGETExMS42My4xODAuMTAwOjgwCwoACRkACAYOMTIwLjE5NS4xNTguNDYGDzExMy4xMDcuMjM2LjE5NQYMMTQuMTcuMTA5LjY2Bg8xMDMuMjI3LjEyMS4xMDAGDzExNS4yMzguMTg5LjIyNQYPMTgzLjIzMi4xMzYuMTMwBg4yMjEuMjI4Ljc5LjIyNQYMNjAuMjE3LjI1MC4xCzxGDTExMi40My45Mi4xMTgLjJgMqAwsNiU5N2Q5NzQ4NTYyMzdiMWZiOjk3ZDk3NDg1NjIzN2IxZmI6MDowTFxmAA=="); - WupRsp wupRsp = new WupRsp(); - wupRsp.decode(decode); - LiveLaunchRsp liveLaunchRsp = new LiveLaunchRsp(); - liveLaunchRsp = wupRsp.getUniAttribute().getByClass("tRsp", liveLaunchRsp); - int eAccess = liveLaunchRsp.getEAccess(); - } - - @Test - void decodeGetLivingInfoReq() { - byte[] decode = Base64.decode("AAMdAAEEKAAABCgQAyw8QAFWCmh1eWFsaXZldWlmDWdldExpdmluZ0luZm99AAED+QgAAQYEdFJlcR0AAQPrCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgX3lhc2lkcz1fX3Jvb3RzaWQlM0RDQTc2NzA0NUMxMTAwMDAxRUM1QTE0NUMxRTkwRkUwMDsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0NzM3NjAsMTY5NjQ3Njc0NSwxNjk2NDgzNTY1LDE2OTY0ODQyMTI7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ4NDIxMjsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mjsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxWDk4UXJuUENjY2s2Zk40OTRpYXdTNUtteW1ncmV1ODlvN2dZdGEvUXZRc0JEZVNlU1JwNC9nclE1ZkV1RkFZckw1OWNvQUt1eHV1a2l3Z1RMamZqRURXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NzQ7IGh1eWFfd2ViX3JlcF9jbnQ9MTI1OyByZXBfY250PTQ0XGYGY2hyb21lCxwsMgAaURNGAFYAbHyMC4yYDKgMLDYlZTcxMDQ2OTExYzk2N2JjNDplNzEwNDY5MTFjOTY3YmM0OjA6MExcZiBjNTRlM2NkYmIyNGJjYzcyYmU1MjU5NTY4ZGVmY2Q1Ng=="); - WupReq wupReq = new WupReq(); - wupReq.decode(decode); - GetLivingInfoReq getLivingInfoReq = new GetLivingInfoReq(); - getLivingInfoReq = wupReq.getUniAttribute().getByClass("tReq", getLivingInfoReq); - - byte[] decode2 = Base64.decode("AAAEJxwsPEABVgpodXlhbGl2ZXVpZg1nZXRMaXZpbmdJbmZvfQABA/kIAAEGBHRSZXEdAAED6woKDBYgMGE3ZGNhNzJhM2NlMWI2NTQwMDFkZDJhZGUyYWU4NTcmADYad2ViaDUmMjMwOTI3MTE1MiZ3ZWJzb2NrZXRHAAADinZwbGF5ZXJfc2Jhbm5lcl8xNzI0NjkxXzE3MjQ2OTE9MTsgU291bmRWYWx1ZT0wLjUwOyBhbHBoYVZhbHVlPTAuODA7IGdhbWVfZGlkPVIyNEoyZzBtQnp2ZFhKZjdhOW5oZVNsM3pJY2kyQk9wMC10OyBpc0luTGl2ZVJvb209dHJ1ZTsgZ3VpZD0wYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NzsgX195YW1pZF90dDE9MC44MDI5OTM1MDY1MDExMjY5OyBfX3lhbWlkX25ldz1DQTc1RDRDRDVDMTAwMDAxMTY1QjgyQjUyMTQwQzkwMDsgZ3VpZD0wYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NzsgdWRiX2d1aWRkYXRhPWFmNWRiZGJmNzYyNTRhNmU4YTBhMjkzY2NhZTliNjg4OyB1ZGJfZGV2aWNlaWQ9d183NjE2MjM0ODM4NjE4MTUyOTY7IHVkYl9wYXNzZGF0YT0zOyBfX3lhc21pZD0wLjgwMjk5MzUwNjUwMTEyNjk7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjcwNDVDMTEwMDAwMUVDNUExNDVDMUU5MEZFMDA7IEhtX2x2dF81MTcwMGI2YzcyMmY1YmI0Y2YzOTkwNmE1OTZlYTQxZj0xNjk2NDczNzYwLDE2OTY0NzY3NDUsMTY5NjQ4MzU2NSwxNjk2NDg0MjEyOyBIbV9scHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0ODQyMTI7IGh1eWFfdWE9d2ViaDUmMC4wLjEmYWN0aXZpdHk7IF9yZXBfY250PTI7IHNkaWQ9MFVuSFVndjAvcW1mRDRLQUtsd3pocVg5OFFyblBDY2NrNmZONDk0aWF3UzVLbXltZ3JldTg5bzdnWXRhL1F2UXNCRGVTZVNScDQvZ3JRNWZFdUZBWXJMNTljb0FLdXh1dWtpd2dUTGpmakVEV1ZrbjlMdGZGSncvUW80a2dLcjhPWkhEcU5udXdnNjEyc0d5ZmxGbjFka1VlWllUVG9DenpsNEdDSHE3TVVEYWh4R3VQUjhtVWRkZkltRnRqY2NzMTsgaHV5YV9mbGFzaF9yZXBfY250PTc0OyBodXlhX3dlYl9yZXBfY250PTEyNTsgcmVwX2NudD00NFxmBmNocm9tZQscLDIAGlETRgBWAGx8jAuMmAyoDA=="); - WupReq wupReq2 = new WupReq(); - wupReq2.decode(decode2); - GetLivingInfoReq getLivingInfoReq2 = new GetLivingInfoReq(); - getLivingInfoReq2 = wupReq2.getUniAttribute().getByClass("tReq", getLivingInfoReq2); - - UserId tId = getLivingInfoReq.getTId(); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml deleted file mode 100644 index 5522cffd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - 4.0.0 - - org.ruoyi - live-chat-clients - ${revision} - ../pom.xml - - jar - - live-chat-client-kuaishou - live-chat-client-kuaishou - - - UTF-8 - - - - - org.ruoyi - live-chat-client-servers-netty-client - - - - com.google.protobuf - protobuf-java-util - - - - ch.qos.logback - logback-classic - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java deleted file mode 100644 index 7809fda8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou; - -import cn.hutool.core.util.RandomUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; -import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; -import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -public class ClientModeExample { - static Logger log = LoggerFactory.getLogger(ClientModeExample.class); - - public static void main(String[] args) { - // 1. 创建配置 - KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() - // TODO 浏览器Cookie - .cookie("did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; kuaishou.live.bfb1s=7206d814e5c089a58c910ed8bf52ace5; clientid=3; did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; client_key=65890b29; kpn=GAME_ZONE; userId=3941614875; kuaishou.live.web_st=ChRrdWFpc2hvdS5saXZlLndlYi5zdBKgAbRhgemDxM_Z_lBn7EZ_-5unvtslsh7ci5VY_eg80qqjxy5yb7oBFrdcWSPlz6jMIBz9h_yoLzATE3ngj2WawpxvbJhmq0EnRYIHv308kTBmg4KN2JQf7w2mfrsp1vusFbZ3NkfsEO4PrGQfX0L6mJRbgXeBqyz4tUM5O0q2Jte_NzWkaOnezvIGRAG8Y6yA1dxGUmiA9syTrPrdnSOzZvAaEoJNhwQ4OUDtgURWN6k9Xgm8PSIgAfV-ZvahtgaYhopZno6OuS2pkaFZjrz4ymoEZ1DSnj0oBTAB; kuaishou.live.web_ph=a287be6ab01dce264c0554eed94c2d6ac991; userId=3941614875") - // TODO 直播间id(支持短id) - .roomId("tianci666") - .build(); - - // 2. 创建Client并传入配置、添加消息回调 - KuaishouLiveChatClient client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { - @Override - public void onMsg(IMsg msg) { - log.debug("收到{}消息 {}", msg.getClass(), msg); - } - - @Override - public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { - log.debug("收到CMD消息{} {}", cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { - log.debug("收到其他CMD消息 {}", cmd); - } - - @Override - public void onUnknownCmd(String cmdString, IMsg msg) { - log.debug("收到未知CMD消息 {}", cmdString); - } - - @Override - public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { - log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { - log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({}) mergeKey:{},comboCount:{}, batchSize:{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice(), msg.getMsg().getMergeKey(), msg.getMsg().getComboCount(), msg.getMsg().getBatchSize()); - } - }); - // 3. 开始监听直播间 - client.connect(); - - // 客户端连接状态回调 - client.addStatusChangeListener(evt -> { - if (evt.getNewValue().equals(ClientStatusEnums.CONNECTED)) { - // TODO 要发送的弹幕内容,请注意控制发送频率;框架内置支持设置发送弹幕的最少时间间隔,小于时将忽略该次发送 - client.sendDanmu("666666" + RandomUtil.randomNumbers(1)); - } - }); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java deleted file mode 100644 index 114f6970..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java +++ /dev/null @@ -1,235 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.api; - -import cn.hutool.cache.impl.TimedCache; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ReUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.core.util.URLUtil; -import cn.hutool.http.*; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import lombok.*; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; - -import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; - -/** - * @author mjz - * @date 2024/1/5 - */ -public class KuaishouApis { - - /** - * 接口返回结果缓存 - * {@link #KEY_RESULT_CACHE_GIFT_ITEMS}:所有礼物信息 - */ - public static final TimedCache> RESULT_CACHE = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); - public static final String KEY_RESULT_CACHE_GIFT_ITEMS = "GIFT_ITEMS"; - - public static final String PATTERN_LIVE_STREAM_ID = "\"liveStream\":\\{\"id\":\"([\\w\\d-_]+)\""; - public static final String USER_AGENT = GlobalHeaders.INSTANCE.header(Header.USER_AGENT).replace("Hutool", ""); - - public static RoomInitResult roomInit(Object roomId, String cookie) { - @Cleanup - HttpResponse response = createGetRequest("https://live.kuaishou.com/u/" + roomId, cookie) - .execute(); - - if (StrUtil.isBlank(cookie)) { - cookie = OrLiveChatCookieUtil.toString(response.getCookies()); - } - - String body = response.body(); - String liveStreamId = ReUtil.getGroup1(PATTERN_LIVE_STREAM_ID, body); - JsonNode websocketinfo = websocketinfo(roomId, liveStreamId, cookie); - if (!websocketinfo.has("token")) { - throwExceptionWithTip("主播未开播,token获取失败 " + websocketinfo); - } - ArrayNode websocketUrls = websocketinfo.withArray("websocketUrls"); - ArrayList websocketUrlList = CollUtil.newArrayList(); - for (JsonNode websocketUrl : websocketUrls) { - websocketUrlList.add(websocketUrl.asText()); - } - return RoomInitResult.builder() - .token(websocketinfo.required("token").asText()) - .websocketUrls(websocketUrlList) - .liveStreamId(liveStreamId) - .build(); - } - - public static RoomInitResult roomInit(Object roomId) { - return roomInit(roomId, null); - } - - public static JsonNode websocketinfo(Object roomId, String liveStreamId, String cookie) { - if (StrUtil.isBlank(liveStreamId)) { - throwExceptionWithTip("主播未开播,liveStreamId为空"); - } - @Cleanup - HttpResponse response = createGetRequest("https://live.kuaishou.com/live_api/liveroom/websocketinfo?liveStreamId=" + liveStreamId, cookie) - .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) - .execute(); - return responseInterceptor(response.body()); - } - - public static Map allgifts() { - Map map = new HashMap<>(); - @Cleanup - HttpResponse response = createGetRequest("https://live.kuaishou.com/live_api/emoji/allgifts", null).execute(); - JsonNode jsonNode = responseInterceptor(response.body()); - jsonNode.fields().forEachRemaining(new Consumer>() { - @Override - public void accept(Map.Entry stringJsonNodeEntry) { - map.put(stringJsonNodeEntry.getKey(), OBJECT_MAPPER.convertValue(stringJsonNodeEntry.getValue(), GiftInfo.class)); - } - }); - return map; - } - - /** - * 根据礼物ID获取礼物信息 - * - * @param id 礼物ID - * @return 礼物信息 - */ - public static GiftInfo getGiftInfoById(String id) { - if (!RESULT_CACHE.containsKey(KEY_RESULT_CACHE_GIFT_ITEMS)) { - RESULT_CACHE.put(KEY_RESULT_CACHE_GIFT_ITEMS, allgifts()); - } - return RESULT_CACHE.get(KEY_RESULT_CACHE_GIFT_ITEMS).get(id); - } - - @SneakyThrows - public static JsonNode sendComment(String cookie, Object roomId, SendCommentRequest request) { - @Cleanup - HttpResponse response = createPostRequest("https://live.kuaishou.com/live_api/liveroom/sendComment", cookie) - .body(OBJECT_MAPPER.writeValueAsString(request), ContentType.JSON.getValue()) - .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) - .execute(); - return responseInterceptor(response.body()); - } - - @SneakyThrows - public static JsonNode clickLike(String cookie, Object roomId, String liveStreamId, int count) { - @Cleanup - HttpResponse response = createPostRequest("https://live.kuaishou.com/live_api/liveroom/like", cookie) - .body(OBJECT_MAPPER.createObjectNode() - .put("liveStreamId", liveStreamId) - .put("count", count) - .toString(), ContentType.JSON.getValue() - ) - .header(Header.ORIGIN, "https://live.kuaishou.com") - .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) - .execute(); - return responseInterceptor(response.body()); - } - - public static HttpRequest createRequest(Method method, String url, String cookie) { - return HttpUtil.createRequest(method, url) - .cookie(cookie) - .header(Header.HOST, URLUtil.url(url).getHost()) - .header(Header.USER_AGENT, USER_AGENT); - } - - public static HttpRequest createGetRequest(String url, String cookie) { - return createRequest(Method.GET, url, cookie); - } - - public static HttpRequest createPostRequest(String url, String cookie) { - return createRequest(Method.POST, url, cookie); - } - - private static JsonNode responseInterceptor(String responseString) { - try { - JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); - JsonNode data = jsonNode.required("data"); - if (data.has("result")) { - int result = data.get("result").asInt(); - if (result != 1) { - String message = ""; - switch (result) { - case 2: { - message = "请求过快,请稍后重试"; - break; - } - case 400002: { - message = "需要进行验证"; - break; - } - default: { - message = ""; - } - } - throwExceptionWithTip("接口访问失败:" + message + ",返回结果:" + jsonNode); - } - } - return data; - } catch (JsonProcessingException e) { - throw new BaseException(e); - } - } - - private static void throwExceptionWithTip(String message) { - throw new BaseException("『可能已触发滑块验证,建议配置Cookie或打开浏览器进行滑块验证后重试』" + message); - } - - @Data - @AllArgsConstructor - @NoArgsConstructor - @Builder - public static class SendCommentRequest { - private String liveStreamId; - private String content; - private String color; - } - - @Data - @AllArgsConstructor - @NoArgsConstructor - @Builder - public static class RoomInitResult { - private String token; - private String liveStreamId; - private List websocketUrls; - } - - @Data - @AllArgsConstructor - @NoArgsConstructor - public static class GiftInfo { - private String giftName; - private String giftUrl; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java deleted file mode 100644 index 7c52bdc4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.client; - - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.RandomUtil; -import com.fasterxml.jackson.databind.JsonNode; -import io.netty.channel.EventLoopGroup; -import io.netty.channel.nio.NioEventLoopGroup; -import io.netty.handler.codec.http.DefaultHttpHeaders; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; -import io.netty.handler.codec.http.websocketx.WebSocketVersion; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; -import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouConnectionListener; -import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouConnectionHandler; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; -import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; - -import java.util.List; -import java.util.function.Consumer; - -/** - * @author mjz - * @date 2024/1/5 - */ -@Slf4j -public class KuaishouLiveChatClient extends BaseNettyClient< - KuaishouLiveChatClientConfig, - PayloadTypeOuterClass.PayloadType, - IKuaishouMsg, - IKuaishouMsgListener, - KuaishouConnectionHandler, - KuaishouBinaryFrameHandler> { - - @Getter - KuaishouApis.RoomInitResult roomInitResult = new KuaishouApis.RoomInitResult(); - - public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, List msgListeners, IKuaishouConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListeners(msgListeners); - - // 初始化 - this.init(); - } - - public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener, IKuaishouConnectionListener connectionListener, EventLoopGroup workerGroup) { - super(config, workerGroup, connectionListener); - addMsgListener(msgListener); - - // 初始化 - this.init(); - } - - public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener, IKuaishouConnectionListener connectionListener) { - this(config, msgListener, connectionListener, new NioEventLoopGroup()); - } - - public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener) { - this(config, msgListener, null, new NioEventLoopGroup()); - } - - public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config) { - this(config, null); - } - - @Override - public void init() { - roomInitResult = KuaishouApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); - super.init(); - } - - @Override - protected String getWebSocketUriString() { - List websocketUrls = roomInitResult.getWebsocketUrls(); - return CollUtil.get(websocketUrls, RandomUtil.randomInt(0, websocketUrls.size())); - } - - @Override - public KuaishouConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { - return new KuaishouConnectionHandler( - WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), - KuaishouLiveChatClient.this, clientConnectionListener - ); - } - - @Override - public KuaishouBinaryFrameHandler initBinaryFrameHandler() { - return new KuaishouBinaryFrameHandler(super.msgListeners, KuaishouLiveChatClient.this); - } - - @Override - public void sendDanmu(Object danmu, Runnable success, Consumer failed) { - if (!checkCanSendDanmu()) { - return; - } - if (danmu instanceof String) { - String msg = (String) danmu; - try { - if (log.isDebugEnabled()) { - log.debug("{} kuaishou发送弹幕 {}", getConfig().getRoomId(), danmu); - } - - boolean sendSuccess = false; - try { - KuaishouApis.sendComment(getConfig().getCookie(), - getConfig().getRoomId(), - KuaishouApis.SendCommentRequest.builder() - .liveStreamId(roomInitResult.getLiveStreamId()) - .content(msg) - .build() - ); - sendSuccess = true; - } catch (Exception e) { - log.error("kuaishou弹幕发送失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (!sendSuccess) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("kuaishou弹幕发送成功 {}", danmu); - } - if (success != null) { - success.run(); - } - finishSendDanmu(); - } catch (Exception e) { - log.error("kuaishou弹幕发送失败", e); - if (failed != null) { - failed.accept(e); - } - } - } else { - super.sendDanmu(danmu, success, failed); - } - } - - @Override - public void clickLike(int count, Runnable success, Consumer failed) { - if (count <= 0) { - throw new BaseException("点赞次数必须大于0"); - } - - boolean successfullyClicked = false; - try { - JsonNode jsonNode = KuaishouApis.clickLike(getConfig().getCookie(), getConfig().getRoomId(), roomInitResult.getLiveStreamId(), count); - if (jsonNode.asBoolean()) { - successfullyClicked = true; - } - } catch (Exception e) { - log.error("kuaishou为直播间点赞失败", e); - if (failed != null) { - failed.accept(e); - } - } - if (!successfullyClicked) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("kuaishou为直播间点赞成功"); - } - if (success != null) { - success.run(); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java deleted file mode 100644 index d46ad215..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.config; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.SuperBuilder; -import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; - -/** - * @author mjz - * @date 2024/1/5 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@SuperBuilder(toBuilder = true) -public class KuaishouLiveChatClientConfig extends BaseNettyClientConfig { - - @Builder.Default - private long heartbeatPeriod = 20; - -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java deleted file mode 100644 index 56a73428..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouConnectionHandler; - -/** - * @author mjz - * @date 2024/1/5 - */ -public interface IKuaishouConnectionListener extends IBaseConnectionListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java deleted file mode 100644 index d280e060..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.listener; - -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; -import tech.ordinaryroad.live.chat.client.commons.base.listener.ILikeMsgListener; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; - -/** - * @author mjz - * @date 2024/1/5 - */ -public interface IKuaishouMsgListener extends IBaseMsgListener, - IDanmuMsgListener, - IGiftMsgListener, - ILikeMsgListener { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java deleted file mode 100644 index fe4dabdb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.msg; - -import com.google.protobuf.ByteString; -import com.google.protobuf.UnknownFieldSet; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass; - -import java.util.List; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class KuaishouDanmuMsg implements IKuaishouMsg, IDanmuMsg { - - private WebCommentFeedOuterClass.WebCommentFeed msg; - - @Override - public String getBadgeName() { - String badgeName = null; - try { - UnknownFieldSet.Field field21 = msg.getSenderState().getUnknownFields().asMap().get(21); - List lengthDelimitedList = field21.getLengthDelimitedList(); - if (!lengthDelimitedList.isEmpty()) { - UnknownFieldSet.Field field21_1 = UnknownFieldSet.parseFrom( - lengthDelimitedList.size() > 1 ? lengthDelimitedList.get(1) : lengthDelimitedList.get(0) - ).getField(1); - List lengthDelimitedList1 = field21_1.getLengthDelimitedList(); - if (!lengthDelimitedList1.isEmpty()) { - UnknownFieldSet.Field field21_1_4 = UnknownFieldSet.parseFrom((lengthDelimitedList1.get(0))).getField(4); - List lengthDelimitedList2 = field21_1_4.getLengthDelimitedList(); - if (!lengthDelimitedList2.isEmpty()) { - badgeName = lengthDelimitedList2.get(0).toStringUtf8(); - } - } - } - } catch (Exception e) { - // ignore - } - return badgeName; - } - - @Override - public byte getBadgeLevel() { - return (byte) msg.getSenderState().getLiveFansGroupState().getIntimacyLevel(); - } - - @Override - public String getUid() { - return msg.getUser().getPrincipalId(); - } - - @Override - public String getUsername() { - return msg.getUser().getUserName(); - } - - @Override - public String getUserAvatar() { - return msg.getUser().getHeadUrl(); - } - - @Override - public String getContent() { - return msg.getContent(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java deleted file mode 100644 index 5ac39d94..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class KuaishouGiftMsg implements IKuaishouMsg, IGiftMsg { - - private WebGiftFeedOuterClass.WebGiftFeed msg; - - @Override - public String getBadgeName() { - return IGiftMsg.super.getBadgeName(); - } - - @Override - public byte getBadgeLevel() { - return IGiftMsg.super.getBadgeLevel(); - } - - @Override - public String getUid() { - return msg.getUser().getPrincipalId(); - } - - @Override - public String getUsername() { - return msg.getUser().getUserName(); - } - - @Override - public String getUserAvatar() { - return msg.getUser().getHeadUrl(); - } - - @Override - public String getGiftName() { - return KuaishouApis.getGiftInfoById(this.getGiftId()).getGiftName(); - } - - @Override - public String getGiftImg() { - return KuaishouApis.getGiftInfoById(this.getGiftId()).getGiftUrl(); - } - - @Override - public String getGiftId() { - return Integer.toString(msg.getIntGiftId()); - } - - @Override - public int getGiftCount() { - // TODO 礼物个数?网页上只显示赠送了什么东西,不显示个数,只会显示连击 - return 0; - } - - @Override - public int getGiftPrice() { - return 0; - } - - @Override - public String getReceiveUid() { - return null; - } - - @Override - public String getReceiveUsername() { - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java deleted file mode 100644 index 01bcefb6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.msg; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass; - -/** - * @author mjz - * @date 2024/1/9 - */ -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class KuaishouLikeMsg implements IKuaishouMsg, ILikeMsg { - - private WebLikeFeedOuterClass.WebLikeFeed msg; - - @Override - public String getUid() { - return msg.getUser().getPrincipalId(); - } - - @Override - public String getUsername() { - return msg.getUser().getUserName(); - } - - @Override - public String getUserAvatar() { - return msg.getUser().getHeadUrl(); - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java deleted file mode 100644 index eaaa8bc6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; - -/** - * @author mjz - * @date 2024/1/5 - */ -public interface IKuaishouCmdMsg extends IKuaishouMsg, ICmdMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java deleted file mode 100644 index 12ae6cdf..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.msg.base; - -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; - -/** - * @author mjz - * @date 2024/1/5 - */ -public interface IKuaishouMsg extends IMsg { -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java deleted file mode 100644 index d6bcb6dc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.netty.handler; - -import cn.hutool.core.util.ZipUtil; -import com.google.protobuf.ByteString; -import com.google.protobuf.InvalidProtocolBufferException; -import io.netty.buffer.ByteBuf; -import io.netty.channel.ChannelHandler; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; -import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.*; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; - -import java.util.Collections; -import java.util.List; - -/** - * @author mjz - * @date 2024/1/5 - */ -@Slf4j -@ChannelHandler.Sharable -public class KuaishouBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { - - public KuaishouBinaryFrameHandler(List iKuaishouMsgListeners, KuaishouLiveChatClient client) { - super(iKuaishouMsgListeners, client); - } - - public KuaishouBinaryFrameHandler(List iKuaishouMsgListeners, long roomId) { - super(iKuaishouMsgListeners, roomId); - } - - @SneakyThrows - @Override - public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { - if (super.msgListeners.isEmpty()) { - return; - } - - SocketMessageOuterClass.SocketMessage socketMessage = (SocketMessageOuterClass.SocketMessage) cmdMsg; - ByteString payloadByteString = socketMessage.getPayload(); - switch (socketMessage.getPayloadType()) { - case SC_FEED_PUSH: { - SCWebFeedPushOuterClass.SCWebFeedPush scWebFeedPush = SCWebFeedPushOuterClass.SCWebFeedPush.parseFrom(payloadByteString); - if (scWebFeedPush.getCommentFeedsCount() > 0) { - for (WebCommentFeedOuterClass.WebCommentFeed webCommentFeed : scWebFeedPush.getCommentFeedsList()) { - iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(KuaishouBinaryFrameHandler.this, new KuaishouDanmuMsg(webCommentFeed))); - } - } - if (scWebFeedPush.getGiftFeedsCount() > 0) { - for (WebGiftFeedOuterClass.WebGiftFeed webGiftFeed : scWebFeedPush.getGiftFeedsList()) { - iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(KuaishouBinaryFrameHandler.this, new KuaishouGiftMsg(webGiftFeed))); - } - } - if (scWebFeedPush.getLikeFeedsCount() > 0) { - for (WebLikeFeedOuterClass.WebLikeFeed webLikeFeed : scWebFeedPush.getLikeFeedsList()) { - iteratorMsgListeners(msgListener -> msgListener.onLikeMsg(KuaishouBinaryFrameHandler.this, new KuaishouLikeMsg(webLikeFeed))); - } - } - break; - } - default: { - iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(KuaishouBinaryFrameHandler.this, cmd, socketMessage)); - } - } - } - - @Override - protected List decode(ByteBuf byteBuf) { - try { - SocketMessageOuterClass.SocketMessage socketMessage = SocketMessageOuterClass.SocketMessage.parseFrom(byteBuf.nioBuffer()); - SocketMessageOuterClass.SocketMessage.CompressionType compressionType = socketMessage.getCompressionType(); - ByteString payloadByteString = socketMessage.getPayload(); - byte[] payload; - switch (compressionType) { - case NONE: { - payload = payloadByteString.toByteArray(); - break; - } - case GZIP: { - payload = ZipUtil.unGzip(payloadByteString.newInput()); - break; - } - default: { - if (log.isWarnEnabled()) { - log.warn("暂不支持的压缩方式 " + compressionType); - } - return Collections.emptyList(); - } - } - return Collections.singletonList(socketMessage.toBuilder().setPayload(ByteString.copyFrom(payload)).build()); - } catch (InvalidProtocolBufferException e) { - throw new BaseException(e); - } - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java deleted file mode 100644 index 977710dc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package tech.ordinaryroad.live.chat.client.kuaishou.netty.handler; - -import cn.hutool.core.util.RandomUtil; -import io.netty.buffer.Unpooled; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; -import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; -import lombok.extern.slf4j.Slf4j; -import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; -import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; -import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; -import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass; -import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; - -/** - * @author mjz - * @date 2024/1/5 - */ -@Slf4j -@ChannelHandler.Sharable -public class KuaishouConnectionHandler extends BaseNettyClientConnectionHandler { - - /** - * 以ClientConfig为主 - */ - private final Object roomId; - /** - * 以ClientConfig为主 - */ - private String cookie; - private final KuaishouApis.RoomInitResult roomInitResult; - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouLiveChatClient client, IBaseConnectionListener listener) { - super(handshaker, client, listener); - this.roomId = client.getConfig().getRoomId(); - this.cookie = client.getConfig().getCookie(); - this.roomInitResult = client.getRoomInitResult(); - } - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouLiveChatClient client) { - this(handshaker, client, null); - } - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, IBaseConnectionListener listener, String cookie) { - super(handshaker, listener); - this.roomId = roomId; - this.cookie = cookie; - this.roomInitResult = roomInitResult; - } - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, IBaseConnectionListener listener) { - this(handshaker, roomId, roomInitResult, listener, null); - } - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, String cookie) { - this(handshaker, roomId, roomInitResult, null, cookie); - } - - public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouApis.RoomInitResult roomInitResult, long roomId) { - this(handshaker, roomId, roomInitResult, null, null); - } - - @Override - protected void sendHeartbeat(ChannelHandlerContext ctx) { - ctx.writeAndFlush( - new BinaryWebSocketFrame( - Unpooled.wrappedBuffer(SocketMessageOuterClass.SocketMessage.newBuilder() - .setPayloadType(PayloadTypeOuterClass.PayloadType.CS_HEARTBEAT) - .setPayload( - CSHeartbeatOuterClass.CSHeartbeat.newBuilder() - .setTimestamp(System.currentTimeMillis()) - .build() - .toByteString() - ) - .build() - .toByteArray() - ) - ) - ); - } - - @Override - public void sendAuthRequest(Channel channel) { - channel.writeAndFlush( - new BinaryWebSocketFrame( - Unpooled.wrappedBuffer(SocketMessageOuterClass.SocketMessage.newBuilder() - .setPayloadType(PayloadTypeOuterClass.PayloadType.CS_ENTER_ROOM) - .setPayload( - CSWebEnterRoomOuterClass.CSWebEnterRoom.newBuilder() - .setToken(roomInitResult.getToken()) - .setLiveStreamId(roomInitResult.getLiveStreamId()) - .setPageId(RandomUtil.randomString(16) + System.currentTimeMillis()) - .build() - .toByteString() - ) - .build() - .toByteArray() - ) - ) - ); - } - - @Override - protected long getHeartbeatPeriod() { - if (client == null) { - return KuaishouLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; - } else { - return client.getConfig().getHeartbeatPeriod(); - } - } - - @Override - protected long getHeartbeatInitialDelay() { - if (client == null) { - return KuaishouLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; - } else { - return client.getConfig().getHeartbeatInitialDelay(); - } - } - - public Object getRoomId() { - return client != null ? client.getConfig().getRoomId() : roomId; - } - - private String getCookie() { - return client != null ? client.getConfig().getCookie() : cookie; - } -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java deleted file mode 100644 index 7030eae1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java +++ /dev/null @@ -1,1155 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: AuditAudienceMask.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class AuditAudienceMaskOuterClass { - private AuditAudienceMaskOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface AuditAudienceMaskOrBuilder extends - // @@protoc_insertion_point(interface_extends:AuditAudienceMask) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - java.util.List - getIconCdnNodeViewList(); - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index); - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - int getIconCdnNodeViewCount(); - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - java.util.List - getIconCdnNodeViewOrBuilderList(); - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( - int index); - - /** - * string title = 2; - * @return The title. - */ - java.lang.String getTitle(); - /** - * string title = 2; - * @return The bytes for title. - */ - com.google.protobuf.ByteString - getTitleBytes(); - - /** - * string detail = 3; - * @return The detail. - */ - java.lang.String getDetail(); - /** - * string detail = 3; - * @return The bytes for detail. - */ - com.google.protobuf.ByteString - getDetailBytes(); - } - /** - * Protobuf type {@code AuditAudienceMask} - */ - public static final class AuditAudienceMask extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:AuditAudienceMask) - AuditAudienceMaskOrBuilder { - private static final long serialVersionUID = 0L; - // Use AuditAudienceMask.newBuilder() to construct. - private AuditAudienceMask(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AuditAudienceMask() { - iconCdnNodeView_ = java.util.Collections.emptyList(); - title_ = ""; - detail_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AuditAudienceMask(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder.class); - } - - public static final int ICONCDNNODEVIEW_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List iconCdnNodeView_; - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - @java.lang.Override - public java.util.List getIconCdnNodeViewList() { - return iconCdnNodeView_; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - @java.lang.Override - public java.util.List - getIconCdnNodeViewOrBuilderList() { - return iconCdnNodeView_; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - @java.lang.Override - public int getIconCdnNodeViewCount() { - return iconCdnNodeView_.size(); - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index) { - return iconCdnNodeView_.get(index); - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( - int index) { - return iconCdnNodeView_.get(index); - } - - public static final int TITLE_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object title_ = ""; - /** - * string title = 2; - * @return The title. - */ - @java.lang.Override - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } - } - /** - * string title = 2; - * @return The bytes for title. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DETAIL_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object detail_ = ""; - /** - * string detail = 3; - * @return The detail. - */ - @java.lang.Override - public java.lang.String getDetail() { - java.lang.Object ref = detail_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - detail_ = s; - return s; - } - } - /** - * string detail = 3; - * @return The bytes for detail. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDetailBytes() { - java.lang.Object ref = detail_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - detail_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < iconCdnNodeView_.size(); i++) { - output.writeMessage(1, iconCdnNodeView_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(detail_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, detail_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < iconCdnNodeView_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, iconCdnNodeView_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(detail_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, detail_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask) obj; - - if (!getIconCdnNodeViewList() - .equals(other.getIconCdnNodeViewList())) return false; - if (!getTitle() - .equals(other.getTitle())) return false; - if (!getDetail() - .equals(other.getDetail())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getIconCdnNodeViewCount() > 0) { - hash = (37 * hash) + ICONCDNNODEVIEW_FIELD_NUMBER; - hash = (53 * hash) + getIconCdnNodeViewList().hashCode(); - } - hash = (37 * hash) + TITLE_FIELD_NUMBER; - hash = (53 * hash) + getTitle().hashCode(); - hash = (37 * hash) + DETAIL_FIELD_NUMBER; - hash = (53 * hash) + getDetail().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code AuditAudienceMask} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:AuditAudienceMask) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (iconCdnNodeViewBuilder_ == null) { - iconCdnNodeView_ = java.util.Collections.emptyList(); - } else { - iconCdnNodeView_ = null; - iconCdnNodeViewBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - title_ = ""; - detail_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result) { - if (iconCdnNodeViewBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - iconCdnNodeView_ = java.util.Collections.unmodifiableList(iconCdnNodeView_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.iconCdnNodeView_ = iconCdnNodeView_; - } else { - result.iconCdnNodeView_ = iconCdnNodeViewBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.title_ = title_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.detail_ = detail_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance()) return this; - if (iconCdnNodeViewBuilder_ == null) { - if (!other.iconCdnNodeView_.isEmpty()) { - if (iconCdnNodeView_.isEmpty()) { - iconCdnNodeView_ = other.iconCdnNodeView_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.addAll(other.iconCdnNodeView_); - } - onChanged(); - } - } else { - if (!other.iconCdnNodeView_.isEmpty()) { - if (iconCdnNodeViewBuilder_.isEmpty()) { - iconCdnNodeViewBuilder_.dispose(); - iconCdnNodeViewBuilder_ = null; - iconCdnNodeView_ = other.iconCdnNodeView_; - bitField0_ = (bitField0_ & ~0x00000001); - iconCdnNodeViewBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getIconCdnNodeViewFieldBuilder() : null; - } else { - iconCdnNodeViewBuilder_.addAllMessages(other.iconCdnNodeView_); - } - } - } - if (!other.getTitle().isEmpty()) { - title_ = other.title_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (!other.getDetail().isEmpty()) { - detail_ = other.detail_; - bitField0_ |= 0x00000004; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.parser(), - extensionRegistry); - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.add(m); - } else { - iconCdnNodeViewBuilder_.addMessage(m); - } - break; - } // case 10 - case 18: { - title_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - detail_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List iconCdnNodeView_ = - java.util.Collections.emptyList(); - private void ensureIconCdnNodeViewIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - iconCdnNodeView_ = new java.util.ArrayList(iconCdnNodeView_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder> iconCdnNodeViewBuilder_; - - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public java.util.List getIconCdnNodeViewList() { - if (iconCdnNodeViewBuilder_ == null) { - return java.util.Collections.unmodifiableList(iconCdnNodeView_); - } else { - return iconCdnNodeViewBuilder_.getMessageList(); - } - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public int getIconCdnNodeViewCount() { - if (iconCdnNodeViewBuilder_ == null) { - return iconCdnNodeView_.size(); - } else { - return iconCdnNodeViewBuilder_.getCount(); - } - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index) { - if (iconCdnNodeViewBuilder_ == null) { - return iconCdnNodeView_.get(index); - } else { - return iconCdnNodeViewBuilder_.getMessage(index); - } - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder setIconCdnNodeView( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { - if (iconCdnNodeViewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.set(index, value); - onChanged(); - } else { - iconCdnNodeViewBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder setIconCdnNodeView( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.set(index, builderForValue.build()); - onChanged(); - } else { - iconCdnNodeViewBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder addIconCdnNodeView(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { - if (iconCdnNodeViewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.add(value); - onChanged(); - } else { - iconCdnNodeViewBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder addIconCdnNodeView( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { - if (iconCdnNodeViewBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.add(index, value); - onChanged(); - } else { - iconCdnNodeViewBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder addIconCdnNodeView( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.add(builderForValue.build()); - onChanged(); - } else { - iconCdnNodeViewBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder addIconCdnNodeView( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.add(index, builderForValue.build()); - onChanged(); - } else { - iconCdnNodeViewBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder addAllIconCdnNodeView( - java.lang.Iterable values) { - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, iconCdnNodeView_); - onChanged(); - } else { - iconCdnNodeViewBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder clearIconCdnNodeView() { - if (iconCdnNodeViewBuilder_ == null) { - iconCdnNodeView_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - iconCdnNodeViewBuilder_.clear(); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public Builder removeIconCdnNodeView(int index) { - if (iconCdnNodeViewBuilder_ == null) { - ensureIconCdnNodeViewIsMutable(); - iconCdnNodeView_.remove(index); - onChanged(); - } else { - iconCdnNodeViewBuilder_.remove(index); - } - return this; - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder getIconCdnNodeViewBuilder( - int index) { - return getIconCdnNodeViewFieldBuilder().getBuilder(index); - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( - int index) { - if (iconCdnNodeViewBuilder_ == null) { - return iconCdnNodeView_.get(index); } else { - return iconCdnNodeViewBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public java.util.List - getIconCdnNodeViewOrBuilderList() { - if (iconCdnNodeViewBuilder_ != null) { - return iconCdnNodeViewBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(iconCdnNodeView_); - } - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder addIconCdnNodeViewBuilder() { - return getIconCdnNodeViewFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()); - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder addIconCdnNodeViewBuilder( - int index) { - return getIconCdnNodeViewFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()); - } - /** - * repeated .LiveCdnNodeView iconCdnNodeView = 1; - */ - public java.util.List - getIconCdnNodeViewBuilderList() { - return getIconCdnNodeViewFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder> - getIconCdnNodeViewFieldBuilder() { - if (iconCdnNodeViewBuilder_ == null) { - iconCdnNodeViewBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder>( - iconCdnNodeView_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - iconCdnNodeView_ = null; - } - return iconCdnNodeViewBuilder_; - } - - private java.lang.Object title_ = ""; - /** - * string title = 2; - * @return The title. - */ - public java.lang.String getTitle() { - java.lang.Object ref = title_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - title_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string title = 2; - * @return The bytes for title. - */ - public com.google.protobuf.ByteString - getTitleBytes() { - java.lang.Object ref = title_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - title_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string title = 2; - * @param value The title to set. - * @return This builder for chaining. - */ - public Builder setTitle( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - title_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string title = 2; - * @return This builder for chaining. - */ - public Builder clearTitle() { - title_ = getDefaultInstance().getTitle(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string title = 2; - * @param value The bytes for title to set. - * @return This builder for chaining. - */ - public Builder setTitleBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - title_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private java.lang.Object detail_ = ""; - /** - * string detail = 3; - * @return The detail. - */ - public java.lang.String getDetail() { - java.lang.Object ref = detail_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - detail_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string detail = 3; - * @return The bytes for detail. - */ - public com.google.protobuf.ByteString - getDetailBytes() { - java.lang.Object ref = detail_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - detail_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string detail = 3; - * @param value The detail to set. - * @return This builder for chaining. - */ - public Builder setDetail( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - detail_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string detail = 3; - * @return This builder for chaining. - */ - public Builder clearDetail() { - detail_ = getDefaultInstance().getDetail(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string detail = 3; - * @param value The bytes for detail to set. - * @return This builder for chaining. - */ - public Builder setDetailBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - detail_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:AuditAudienceMask) - } - - // @@protoc_insertion_point(class_scope:AuditAudienceMask) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AuditAudienceMask parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_AuditAudienceMask_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_AuditAudienceMask_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\027AuditAudienceMask.proto\032\025LiveCdnNodeVi" + - "ew.proto\"]\n\021AuditAudienceMask\022)\n\017iconCdn" + - "NodeView\030\001 \003(\0132\020.LiveCdnNodeView\022\r\n\005titl" + - "e\030\002 \001(\t\022\016\n\006detail\030\003 \001(\tB6\n4tech.ordinary" + - "road.live.chat.client.kuaishou.protobufb" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.getDescriptor(), - }); - internal_static_AuditAudienceMask_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_AuditAudienceMask_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_AuditAudienceMask_descriptor, - new java.lang.String[] { "IconCdnNodeView", "Title", "Detail", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java deleted file mode 100644 index d1727084..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java +++ /dev/null @@ -1,548 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSError.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSErrorOuterClass { - private CSErrorOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSErrorOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSError) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 code = 1; - * @return The code. - */ - int getCode(); - } - /** - * Protobuf type {@code CSError} - */ - public static final class CSError extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSError) - CSErrorOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSError.newBuilder() to construct. - private CSError(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSError() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSError(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.Builder.class); - } - - public static final int CODE_FIELD_NUMBER = 1; - private int code_ = 0; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (code_ != 0) { - output.writeUInt32(1, code_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, code_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError) obj; - - if (getCode() - != other.getCode()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSError} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSError) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSErrorOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - code_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.code_ = code_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.getDefaultInstance()) return this; - if (other.getCode() != 0) { - setCode(other.getCode()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - code_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int code_ ; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * uint32 code = 1; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 code = 1; - * @return This builder for chaining. - */ - public Builder clearCode() { - bitField0_ = (bitField0_ & ~0x00000001); - code_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSError) - } - - // @@protoc_insertion_point(class_scope:CSError) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSError parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSError_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSError_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\rCSError.proto\"\027\n\007CSError\022\014\n\004code\030\001 \001(\r" + - "B6\n4tech.ordinaryroad.live.chat.client.k" + - "uaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSError_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSError_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSError_descriptor, - new java.lang.String[] { "Code", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java deleted file mode 100644 index 635a5777..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSHeartbeat.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSHeartbeatOuterClass { - private CSHeartbeatOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSHeartbeatOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSHeartbeat) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - long getTimestamp(); - } - /** - * Protobuf type {@code CSHeartbeat} - */ - public static final class CSHeartbeat extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSHeartbeat) - CSHeartbeatOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSHeartbeat.newBuilder() to construct. - private CSHeartbeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSHeartbeat() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSHeartbeat(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.Builder.class); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private long timestamp_ = 0L; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != 0L) { - output.writeUInt64(1, timestamp_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, timestamp_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat) obj; - - if (getTimestamp() - != other.getTimestamp()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestamp()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSHeartbeat} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSHeartbeat) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeatOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - timestamp_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.timestamp_ = timestamp_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.getDefaultInstance()) return this; - if (other.getTimestamp() != 0L) { - setTimestamp(other.getTimestamp()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - timestamp_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long timestamp_ ; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - /** - * uint64 timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(long value) { - - timestamp_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 timestamp = 1; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSHeartbeat) - } - - // @@protoc_insertion_point(class_scope:CSHeartbeat) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSHeartbeat parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSHeartbeat_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSHeartbeat_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\021CSHeartbeat.proto\" \n\013CSHeartbeat\022\021\n\tti" + - "mestamp\030\001 \001(\004B6\n4tech.ordinaryroad.live." + - "chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSHeartbeat_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSHeartbeat_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSHeartbeat_descriptor, - new java.lang.String[] { "Timestamp", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java deleted file mode 100644 index 1062bdc4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java +++ /dev/null @@ -1,1029 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSPing.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSPingOuterClass { - private CSPingOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSPingOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSPing) - com.google.protobuf.MessageOrBuilder { - - /** - * string echoData = 1; - * @return The echoData. - */ - java.lang.String getEchoData(); - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - com.google.protobuf.ByteString - getEchoDataBytes(); - - /** - * .ClientId clientId = 2; - * @return The enum numeric value on the wire for clientId. - */ - int getClientIdValue(); - /** - * .ClientId clientId = 2; - * @return The clientId. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId(); - - /** - * string deviceId = 3; - * @return The deviceId. - */ - java.lang.String getDeviceId(); - /** - * string deviceId = 3; - * @return The bytes for deviceId. - */ - com.google.protobuf.ByteString - getDeviceIdBytes(); - - /** - * string appVer = 4; - * @return The appVer. - */ - java.lang.String getAppVer(); - /** - * string appVer = 4; - * @return The bytes for appVer. - */ - com.google.protobuf.ByteString - getAppVerBytes(); - } - /** - * Protobuf type {@code CSPing} - */ - public static final class CSPing extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSPing) - CSPingOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSPing.newBuilder() to construct. - private CSPing(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSPing() { - echoData_ = ""; - clientId_ = 0; - deviceId_ = ""; - appVer_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSPing(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.Builder.class); - } - - public static final int ECHODATA_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object echoData_ = ""; - /** - * string echoData = 1; - * @return The echoData. - */ - @java.lang.Override - public java.lang.String getEchoData() { - java.lang.Object ref = echoData_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - echoData_ = s; - return s; - } - } - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getEchoDataBytes() { - java.lang.Object ref = echoData_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - echoData_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CLIENTID_FIELD_NUMBER = 2; - private int clientId_ = 0; - /** - * .ClientId clientId = 2; - * @return The enum numeric value on the wire for clientId. - */ - @java.lang.Override public int getClientIdValue() { - return clientId_; - } - /** - * .ClientId clientId = 2; - * @return The clientId. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.forNumber(clientId_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.UNRECOGNIZED : result; - } - - public static final int DEVICEID_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object deviceId_ = ""; - /** - * string deviceId = 3; - * @return The deviceId. - */ - @java.lang.Override - public java.lang.String getDeviceId() { - java.lang.Object ref = deviceId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceId_ = s; - return s; - } - } - /** - * string deviceId = 3; - * @return The bytes for deviceId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceIdBytes() { - java.lang.Object ref = deviceId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int APPVER_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object appVer_ = ""; - /** - * string appVer = 4; - * @return The appVer. - */ - @java.lang.Override - public java.lang.String getAppVer() { - java.lang.Object ref = appVer_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - appVer_ = s; - return s; - } - } - /** - * string appVer = 4; - * @return The bytes for appVer. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAppVerBytes() { - java.lang.Object ref = appVer_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - appVer_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, echoData_); - } - if (clientId_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.NONE.getNumber()) { - output.writeEnum(2, clientId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appVer_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, appVer_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, echoData_); - } - if (clientId_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.NONE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, clientId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appVer_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, appVer_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing) obj; - - if (!getEchoData() - .equals(other.getEchoData())) return false; - if (clientId_ != other.clientId_) return false; - if (!getDeviceId() - .equals(other.getDeviceId())) return false; - if (!getAppVer() - .equals(other.getAppVer())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ECHODATA_FIELD_NUMBER; - hash = (53 * hash) + getEchoData().hashCode(); - hash = (37 * hash) + CLIENTID_FIELD_NUMBER; - hash = (53 * hash) + clientId_; - hash = (37 * hash) + DEVICEID_FIELD_NUMBER; - hash = (53 * hash) + getDeviceId().hashCode(); - hash = (37 * hash) + APPVER_FIELD_NUMBER; - hash = (53 * hash) + getAppVer().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSPing} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSPing) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPingOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - echoData_ = ""; - clientId_ = 0; - deviceId_ = ""; - appVer_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.echoData_ = echoData_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.clientId_ = clientId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.deviceId_ = deviceId_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.appVer_ = appVer_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.getDefaultInstance()) return this; - if (!other.getEchoData().isEmpty()) { - echoData_ = other.echoData_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.clientId_ != 0) { - setClientIdValue(other.getClientIdValue()); - } - if (!other.getDeviceId().isEmpty()) { - deviceId_ = other.deviceId_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (!other.getAppVer().isEmpty()) { - appVer_ = other.appVer_; - bitField0_ |= 0x00000008; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - echoData_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - clientId_ = input.readEnum(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 26: { - deviceId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - appVer_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object echoData_ = ""; - /** - * string echoData = 1; - * @return The echoData. - */ - public java.lang.String getEchoData() { - java.lang.Object ref = echoData_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - echoData_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - public com.google.protobuf.ByteString - getEchoDataBytes() { - java.lang.Object ref = echoData_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - echoData_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string echoData = 1; - * @param value The echoData to set. - * @return This builder for chaining. - */ - public Builder setEchoData( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - echoData_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string echoData = 1; - * @return This builder for chaining. - */ - public Builder clearEchoData() { - echoData_ = getDefaultInstance().getEchoData(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string echoData = 1; - * @param value The bytes for echoData to set. - * @return This builder for chaining. - */ - public Builder setEchoDataBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - echoData_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private int clientId_ = 0; - /** - * .ClientId clientId = 2; - * @return The enum numeric value on the wire for clientId. - */ - @java.lang.Override public int getClientIdValue() { - return clientId_; - } - /** - * .ClientId clientId = 2; - * @param value The enum numeric value on the wire for clientId to set. - * @return This builder for chaining. - */ - public Builder setClientIdValue(int value) { - clientId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .ClientId clientId = 2; - * @return The clientId. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.forNumber(clientId_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.UNRECOGNIZED : result; - } - /** - * .ClientId clientId = 2; - * @param value The clientId to set. - * @return This builder for chaining. - */ - public Builder setClientId(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - clientId_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .ClientId clientId = 2; - * @return This builder for chaining. - */ - public Builder clearClientId() { - bitField0_ = (bitField0_ & ~0x00000002); - clientId_ = 0; - onChanged(); - return this; - } - - private java.lang.Object deviceId_ = ""; - /** - * string deviceId = 3; - * @return The deviceId. - */ - public java.lang.String getDeviceId() { - java.lang.Object ref = deviceId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string deviceId = 3; - * @return The bytes for deviceId. - */ - public com.google.protobuf.ByteString - getDeviceIdBytes() { - java.lang.Object ref = deviceId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string deviceId = 3; - * @param value The deviceId to set. - * @return This builder for chaining. - */ - public Builder setDeviceId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - deviceId_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string deviceId = 3; - * @return This builder for chaining. - */ - public Builder clearDeviceId() { - deviceId_ = getDefaultInstance().getDeviceId(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string deviceId = 3; - * @param value The bytes for deviceId to set. - * @return This builder for chaining. - */ - public Builder setDeviceIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - deviceId_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private java.lang.Object appVer_ = ""; - /** - * string appVer = 4; - * @return The appVer. - */ - public java.lang.String getAppVer() { - java.lang.Object ref = appVer_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - appVer_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string appVer = 4; - * @return The bytes for appVer. - */ - public com.google.protobuf.ByteString - getAppVerBytes() { - java.lang.Object ref = appVer_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - appVer_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string appVer = 4; - * @param value The appVer to set. - * @return This builder for chaining. - */ - public Builder setAppVer( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - appVer_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string appVer = 4; - * @return This builder for chaining. - */ - public Builder clearAppVer() { - appVer_ = getDefaultInstance().getAppVer(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string appVer = 4; - * @param value The bytes for appVer to set. - * @return This builder for chaining. - */ - public Builder setAppVerBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - appVer_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSPing) - } - - // @@protoc_insertion_point(class_scope:CSPing) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSPing parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSPing_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSPing_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\014CSPing.proto\032\016ClientId.proto\"Y\n\006CSPing" + - "\022\020\n\010echoData\030\001 \001(\t\022\033\n\010clientId\030\002 \001(\0162\t.C" + - "lientId\022\020\n\010deviceId\030\003 \001(\t\022\016\n\006appVer\030\004 \001(" + - "\tB6\n4tech.ordinaryroad.live.chat.client." + - "kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor(), - }); - internal_static_CSPing_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSPing_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSPing_descriptor, - new java.lang.String[] { "EchoData", "ClientId", "DeviceId", "AppVer", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java deleted file mode 100644 index 8a6b1558..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java +++ /dev/null @@ -1,1363 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSWebEnterRoom.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSWebEnterRoomOuterClass { - private CSWebEnterRoomOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSWebEnterRoomOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSWebEnterRoom) - com.google.protobuf.MessageOrBuilder { - - /** - * string token = 1; - * @return The token. - */ - java.lang.String getToken(); - /** - * string token = 1; - * @return The bytes for token. - */ - com.google.protobuf.ByteString - getTokenBytes(); - - /** - * string liveStreamId = 2; - * @return The liveStreamId. - */ - java.lang.String getLiveStreamId(); - /** - * string liveStreamId = 2; - * @return The bytes for liveStreamId. - */ - com.google.protobuf.ByteString - getLiveStreamIdBytes(); - - /** - * uint32 reconnectCount = 3; - * @return The reconnectCount. - */ - int getReconnectCount(); - - /** - * uint32 lastErrorCode = 4; - * @return The lastErrorCode. - */ - int getLastErrorCode(); - - /** - * string expTag = 5; - * @return The expTag. - */ - java.lang.String getExpTag(); - /** - * string expTag = 5; - * @return The bytes for expTag. - */ - com.google.protobuf.ByteString - getExpTagBytes(); - - /** - * string attach = 6; - * @return The attach. - */ - java.lang.String getAttach(); - /** - * string attach = 6; - * @return The bytes for attach. - */ - com.google.protobuf.ByteString - getAttachBytes(); - - /** - * string pageId = 7; - * @return The pageId. - */ - java.lang.String getPageId(); - /** - * string pageId = 7; - * @return The bytes for pageId. - */ - com.google.protobuf.ByteString - getPageIdBytes(); - } - /** - * Protobuf type {@code CSWebEnterRoom} - */ - public static final class CSWebEnterRoom extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSWebEnterRoom) - CSWebEnterRoomOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSWebEnterRoom.newBuilder() to construct. - private CSWebEnterRoom(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSWebEnterRoom() { - token_ = ""; - liveStreamId_ = ""; - expTag_ = ""; - attach_ = ""; - pageId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSWebEnterRoom(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.Builder.class); - } - - public static final int TOKEN_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object token_ = ""; - /** - * string token = 1; - * @return The token. - */ - @java.lang.Override - public java.lang.String getToken() { - java.lang.Object ref = token_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - token_ = s; - return s; - } - } - /** - * string token = 1; - * @return The bytes for token. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getTokenBytes() { - java.lang.Object ref = token_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - token_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int LIVESTREAMID_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object liveStreamId_ = ""; - /** - * string liveStreamId = 2; - * @return The liveStreamId. - */ - @java.lang.Override - public java.lang.String getLiveStreamId() { - java.lang.Object ref = liveStreamId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - liveStreamId_ = s; - return s; - } - } - /** - * string liveStreamId = 2; - * @return The bytes for liveStreamId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getLiveStreamIdBytes() { - java.lang.Object ref = liveStreamId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - liveStreamId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int RECONNECTCOUNT_FIELD_NUMBER = 3; - private int reconnectCount_ = 0; - /** - * uint32 reconnectCount = 3; - * @return The reconnectCount. - */ - @java.lang.Override - public int getReconnectCount() { - return reconnectCount_; - } - - public static final int LASTERRORCODE_FIELD_NUMBER = 4; - private int lastErrorCode_ = 0; - /** - * uint32 lastErrorCode = 4; - * @return The lastErrorCode. - */ - @java.lang.Override - public int getLastErrorCode() { - return lastErrorCode_; - } - - public static final int EXPTAG_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object expTag_ = ""; - /** - * string expTag = 5; - * @return The expTag. - */ - @java.lang.Override - public java.lang.String getExpTag() { - java.lang.Object ref = expTag_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - expTag_ = s; - return s; - } - } - /** - * string expTag = 5; - * @return The bytes for expTag. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getExpTagBytes() { - java.lang.Object ref = expTag_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - expTag_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ATTACH_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object attach_ = ""; - /** - * string attach = 6; - * @return The attach. - */ - @java.lang.Override - public java.lang.String getAttach() { - java.lang.Object ref = attach_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - attach_ = s; - return s; - } - } - /** - * string attach = 6; - * @return The bytes for attach. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getAttachBytes() { - java.lang.Object ref = attach_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - attach_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PAGEID_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object pageId_ = ""; - /** - * string pageId = 7; - * @return The pageId. - */ - @java.lang.Override - public java.lang.String getPageId() { - java.lang.Object ref = pageId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - pageId_ = s; - return s; - } - } - /** - * string pageId = 7; - * @return The bytes for pageId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPageIdBytes() { - java.lang.Object ref = pageId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pageId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveStreamId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, liveStreamId_); - } - if (reconnectCount_ != 0) { - output.writeUInt32(3, reconnectCount_); - } - if (lastErrorCode_ != 0) { - output.writeUInt32(4, lastErrorCode_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expTag_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, expTag_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attach_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, attach_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, pageId_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveStreamId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, liveStreamId_); - } - if (reconnectCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, reconnectCount_); - } - if (lastErrorCode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, lastErrorCode_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expTag_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, expTag_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attach_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, attach_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, pageId_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom) obj; - - if (!getToken() - .equals(other.getToken())) return false; - if (!getLiveStreamId() - .equals(other.getLiveStreamId())) return false; - if (getReconnectCount() - != other.getReconnectCount()) return false; - if (getLastErrorCode() - != other.getLastErrorCode()) return false; - if (!getExpTag() - .equals(other.getExpTag())) return false; - if (!getAttach() - .equals(other.getAttach())) return false; - if (!getPageId() - .equals(other.getPageId())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TOKEN_FIELD_NUMBER; - hash = (53 * hash) + getToken().hashCode(); - hash = (37 * hash) + LIVESTREAMID_FIELD_NUMBER; - hash = (53 * hash) + getLiveStreamId().hashCode(); - hash = (37 * hash) + RECONNECTCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getReconnectCount(); - hash = (37 * hash) + LASTERRORCODE_FIELD_NUMBER; - hash = (53 * hash) + getLastErrorCode(); - hash = (37 * hash) + EXPTAG_FIELD_NUMBER; - hash = (53 * hash) + getExpTag().hashCode(); - hash = (37 * hash) + ATTACH_FIELD_NUMBER; - hash = (53 * hash) + getAttach().hashCode(); - hash = (37 * hash) + PAGEID_FIELD_NUMBER; - hash = (53 * hash) + getPageId().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSWebEnterRoom} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSWebEnterRoom) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoomOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - token_ = ""; - liveStreamId_ = ""; - reconnectCount_ = 0; - lastErrorCode_ = 0; - expTag_ = ""; - attach_ = ""; - pageId_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.token_ = token_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.liveStreamId_ = liveStreamId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.reconnectCount_ = reconnectCount_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.lastErrorCode_ = lastErrorCode_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.expTag_ = expTag_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.attach_ = attach_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.pageId_ = pageId_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.getDefaultInstance()) return this; - if (!other.getToken().isEmpty()) { - token_ = other.token_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getLiveStreamId().isEmpty()) { - liveStreamId_ = other.liveStreamId_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getReconnectCount() != 0) { - setReconnectCount(other.getReconnectCount()); - } - if (other.getLastErrorCode() != 0) { - setLastErrorCode(other.getLastErrorCode()); - } - if (!other.getExpTag().isEmpty()) { - expTag_ = other.expTag_; - bitField0_ |= 0x00000010; - onChanged(); - } - if (!other.getAttach().isEmpty()) { - attach_ = other.attach_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (!other.getPageId().isEmpty()) { - pageId_ = other.pageId_; - bitField0_ |= 0x00000040; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - token_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - liveStreamId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - reconnectCount_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - lastErrorCode_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - expTag_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - attach_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - pageId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object token_ = ""; - /** - * string token = 1; - * @return The token. - */ - public java.lang.String getToken() { - java.lang.Object ref = token_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - token_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string token = 1; - * @return The bytes for token. - */ - public com.google.protobuf.ByteString - getTokenBytes() { - java.lang.Object ref = token_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - token_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string token = 1; - * @param value The token to set. - * @return This builder for chaining. - */ - public Builder setToken( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - token_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string token = 1; - * @return This builder for chaining. - */ - public Builder clearToken() { - token_ = getDefaultInstance().getToken(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string token = 1; - * @param value The bytes for token to set. - * @return This builder for chaining. - */ - public Builder setTokenBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - token_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object liveStreamId_ = ""; - /** - * string liveStreamId = 2; - * @return The liveStreamId. - */ - public java.lang.String getLiveStreamId() { - java.lang.Object ref = liveStreamId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - liveStreamId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string liveStreamId = 2; - * @return The bytes for liveStreamId. - */ - public com.google.protobuf.ByteString - getLiveStreamIdBytes() { - java.lang.Object ref = liveStreamId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - liveStreamId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string liveStreamId = 2; - * @param value The liveStreamId to set. - * @return This builder for chaining. - */ - public Builder setLiveStreamId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - liveStreamId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string liveStreamId = 2; - * @return This builder for chaining. - */ - public Builder clearLiveStreamId() { - liveStreamId_ = getDefaultInstance().getLiveStreamId(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string liveStreamId = 2; - * @param value The bytes for liveStreamId to set. - * @return This builder for chaining. - */ - public Builder setLiveStreamIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - liveStreamId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private int reconnectCount_ ; - /** - * uint32 reconnectCount = 3; - * @return The reconnectCount. - */ - @java.lang.Override - public int getReconnectCount() { - return reconnectCount_; - } - /** - * uint32 reconnectCount = 3; - * @param value The reconnectCount to set. - * @return This builder for chaining. - */ - public Builder setReconnectCount(int value) { - - reconnectCount_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint32 reconnectCount = 3; - * @return This builder for chaining. - */ - public Builder clearReconnectCount() { - bitField0_ = (bitField0_ & ~0x00000004); - reconnectCount_ = 0; - onChanged(); - return this; - } - - private int lastErrorCode_ ; - /** - * uint32 lastErrorCode = 4; - * @return The lastErrorCode. - */ - @java.lang.Override - public int getLastErrorCode() { - return lastErrorCode_; - } - /** - * uint32 lastErrorCode = 4; - * @param value The lastErrorCode to set. - * @return This builder for chaining. - */ - public Builder setLastErrorCode(int value) { - - lastErrorCode_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 lastErrorCode = 4; - * @return This builder for chaining. - */ - public Builder clearLastErrorCode() { - bitField0_ = (bitField0_ & ~0x00000008); - lastErrorCode_ = 0; - onChanged(); - return this; - } - - private java.lang.Object expTag_ = ""; - /** - * string expTag = 5; - * @return The expTag. - */ - public java.lang.String getExpTag() { - java.lang.Object ref = expTag_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - expTag_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string expTag = 5; - * @return The bytes for expTag. - */ - public com.google.protobuf.ByteString - getExpTagBytes() { - java.lang.Object ref = expTag_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - expTag_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string expTag = 5; - * @param value The expTag to set. - * @return This builder for chaining. - */ - public Builder setExpTag( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - expTag_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string expTag = 5; - * @return This builder for chaining. - */ - public Builder clearExpTag() { - expTag_ = getDefaultInstance().getExpTag(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string expTag = 5; - * @param value The bytes for expTag to set. - * @return This builder for chaining. - */ - public Builder setExpTagBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - expTag_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - private java.lang.Object attach_ = ""; - /** - * string attach = 6; - * @return The attach. - */ - public java.lang.String getAttach() { - java.lang.Object ref = attach_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - attach_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string attach = 6; - * @return The bytes for attach. - */ - public com.google.protobuf.ByteString - getAttachBytes() { - java.lang.Object ref = attach_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - attach_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string attach = 6; - * @param value The attach to set. - * @return This builder for chaining. - */ - public Builder setAttach( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - attach_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string attach = 6; - * @return This builder for chaining. - */ - public Builder clearAttach() { - attach_ = getDefaultInstance().getAttach(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string attach = 6; - * @param value The bytes for attach to set. - * @return This builder for chaining. - */ - public Builder setAttachBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - attach_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private java.lang.Object pageId_ = ""; - /** - * string pageId = 7; - * @return The pageId. - */ - public java.lang.String getPageId() { - java.lang.Object ref = pageId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - pageId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string pageId = 7; - * @return The bytes for pageId. - */ - public com.google.protobuf.ByteString - getPageIdBytes() { - java.lang.Object ref = pageId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - pageId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string pageId = 7; - * @param value The pageId to set. - * @return This builder for chaining. - */ - public Builder setPageId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - pageId_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string pageId = 7; - * @return This builder for chaining. - */ - public Builder clearPageId() { - pageId_ = getDefaultInstance().getPageId(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string pageId = 7; - * @param value The bytes for pageId to set. - * @return This builder for chaining. - */ - public Builder setPageIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - pageId_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSWebEnterRoom) - } - - // @@protoc_insertion_point(class_scope:CSWebEnterRoom) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSWebEnterRoom parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSWebEnterRoom_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSWebEnterRoom_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024CSWebEnterRoom.proto\"\224\001\n\016CSWebEnterRoo" + - "m\022\r\n\005token\030\001 \001(\t\022\024\n\014liveStreamId\030\002 \001(\t\022\026" + - "\n\016reconnectCount\030\003 \001(\r\022\025\n\rlastErrorCode\030" + - "\004 \001(\r\022\016\n\006expTag\030\005 \001(\t\022\016\n\006attach\030\006 \001(\t\022\016\n" + - "\006pageId\030\007 \001(\tB6\n4tech.ordinaryroad.live." + - "chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSWebEnterRoom_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSWebEnterRoom_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSWebEnterRoom_descriptor, - new java.lang.String[] { "Token", "LiveStreamId", "ReconnectCount", "LastErrorCode", "ExpTag", "Attach", "PageId", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java deleted file mode 100644 index 7eacbd52..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java +++ /dev/null @@ -1,697 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSWebError.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSWebErrorOuterClass { - private CSWebErrorOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSWebErrorOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSWebError) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 code = 1; - * @return The code. - */ - int getCode(); - - /** - * string msg = 2; - * @return The msg. - */ - java.lang.String getMsg(); - /** - * string msg = 2; - * @return The bytes for msg. - */ - com.google.protobuf.ByteString - getMsgBytes(); - } - /** - * Protobuf type {@code CSWebError} - */ - public static final class CSWebError extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSWebError) - CSWebErrorOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSWebError.newBuilder() to construct. - private CSWebError(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSWebError() { - msg_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSWebError(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.Builder.class); - } - - public static final int CODE_FIELD_NUMBER = 1; - private int code_ = 0; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - public static final int MSG_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - @java.lang.Override - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (code_ != 0) { - output.writeUInt32(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError) obj; - - if (getCode() - != other.getCode()) return false; - if (!getMsg() - .equals(other.getMsg())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (37 * hash) + MSG_FIELD_NUMBER; - hash = (53 * hash) + getMsg().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSWebError} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSWebError) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebErrorOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - code_ = 0; - msg_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.code_ = code_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.msg_ = msg_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.getDefaultInstance()) return this; - if (other.getCode() != 0) { - setCode(other.getCode()); - } - if (!other.getMsg().isEmpty()) { - msg_ = other.msg_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - code_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - msg_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int code_ ; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * uint32 code = 1; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 code = 1; - * @return This builder for chaining. - */ - public Builder clearCode() { - bitField0_ = (bitField0_ & ~0x00000001); - code_ = 0; - onChanged(); - return this; - } - - private java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msg = 2; - * @param value The msg to set. - * @return This builder for chaining. - */ - public Builder setMsg( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string msg = 2; - * @return This builder for chaining. - */ - public Builder clearMsg() { - msg_ = getDefaultInstance().getMsg(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string msg = 2; - * @param value The bytes for msg to set. - * @return This builder for chaining. - */ - public Builder setMsgBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSWebError) - } - - // @@protoc_insertion_point(class_scope:CSWebError) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSWebError parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSWebError_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSWebError_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020CSWebError.proto\"\'\n\nCSWebError\022\014\n\004code" + - "\030\001 \001(\r\022\013\n\003msg\030\002 \001(\tB6\n4tech.ordinaryroad" + - ".live.chat.client.kuaishou.protobufb\006pro" + - "to3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSWebError_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSWebError_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSWebError_descriptor, - new java.lang.String[] { "Code", "Msg", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java deleted file mode 100644 index f2c5d4e9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSWebHeartbeat.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSWebHeartbeatOuterClass { - private CSWebHeartbeatOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSWebHeartbeatOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSWebHeartbeat) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - long getTimestamp(); - } - /** - * Protobuf type {@code CSWebHeartbeat} - */ - public static final class CSWebHeartbeat extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSWebHeartbeat) - CSWebHeartbeatOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSWebHeartbeat.newBuilder() to construct. - private CSWebHeartbeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSWebHeartbeat() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSWebHeartbeat(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.Builder.class); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private long timestamp_ = 0L; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != 0L) { - output.writeUInt64(1, timestamp_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, timestamp_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat) obj; - - if (getTimestamp() - != other.getTimestamp()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestamp()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSWebHeartbeat} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSWebHeartbeat) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeatOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - timestamp_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.timestamp_ = timestamp_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.getDefaultInstance()) return this; - if (other.getTimestamp() != 0L) { - setTimestamp(other.getTimestamp()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - timestamp_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long timestamp_ ; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - /** - * uint64 timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(long value) { - - timestamp_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 timestamp = 1; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSWebHeartbeat) - } - - // @@protoc_insertion_point(class_scope:CSWebHeartbeat) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSWebHeartbeat parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSWebHeartbeat_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSWebHeartbeat_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024CSWebHeartbeat.proto\"#\n\016CSWebHeartbeat" + - "\022\021\n\ttimestamp\030\001 \001(\004B6\n4tech.ordinaryroad" + - ".live.chat.client.kuaishou.protobufb\006pro" + - "to3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSWebHeartbeat_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSWebHeartbeat_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSWebHeartbeat_descriptor, - new java.lang.String[] { "Timestamp", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java deleted file mode 100644 index ebd72e51..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSWebUserExit.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSWebUserExitOuterClass { - private CSWebUserExitOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSWebUserExitOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSWebUserExit) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - } - /** - * Protobuf type {@code CSWebUserExit} - */ - public static final class CSWebUserExit extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSWebUserExit) - CSWebUserExitOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSWebUserExit.newBuilder() to construct. - private CSWebUserExit(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSWebUserExit() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSWebUserExit(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit) obj; - - if (getTime() - != other.getTime()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSWebUserExit} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSWebUserExit) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExitOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSWebUserExit) - } - - // @@protoc_insertion_point(class_scope:CSWebUserExit) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSWebUserExit parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSWebUserExit_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSWebUserExit_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023CSWebUserExit.proto\"\035\n\rCSWebUserExit\022\014" + - "\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.live.c" + - "hat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_CSWebUserExit_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSWebUserExit_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSWebUserExit_descriptor, - new java.lang.String[] { "Time", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java deleted file mode 100644 index a5527f18..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java +++ /dev/null @@ -1,658 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: CSWebUserPause.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class CSWebUserPauseOuterClass { - private CSWebUserPauseOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface CSWebUserPauseOrBuilder extends - // @@protoc_insertion_point(interface_extends:CSWebUserPause) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - * .WebUserPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - int getPauseTypeValue(); - /** - * .WebUserPauseType pauseType = 2; - * @return The pauseType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType(); - } - /** - * Protobuf type {@code CSWebUserPause} - */ - public static final class CSWebUserPause extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:CSWebUserPause) - CSWebUserPauseOrBuilder { - private static final long serialVersionUID = 0L; - // Use CSWebUserPause.newBuilder() to construct. - private CSWebUserPause(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private CSWebUserPause() { - pauseType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new CSWebUserPause(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int PAUSETYPE_FIELD_NUMBER = 2; - private int pauseType_ = 0; - /** - * .WebUserPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - @java.lang.Override public int getPauseTypeValue() { - return pauseType_; - } - /** - * .WebUserPauseType pauseType = 2; - * @return The pauseType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.forNumber(pauseType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNRECOGNIZED : result; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNKNOWN_USER_PAUSE_TYPE.getNumber()) { - output.writeEnum(2, pauseType_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNKNOWN_USER_PAUSE_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, pauseType_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause) obj; - - if (getTime() - != other.getTime()) return false; - if (pauseType_ != other.pauseType_) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + PAUSETYPE_FIELD_NUMBER; - hash = (53 * hash) + pauseType_; - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code CSWebUserPause} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:CSWebUserPause) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPauseOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - pauseType_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.pauseType_ = pauseType_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (other.pauseType_ != 0) { - setPauseTypeValue(other.getPauseTypeValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - pauseType_ = input.readEnum(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - - private int pauseType_ = 0; - /** - * .WebUserPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - @java.lang.Override public int getPauseTypeValue() { - return pauseType_; - } - /** - * .WebUserPauseType pauseType = 2; - * @param value The enum numeric value on the wire for pauseType to set. - * @return This builder for chaining. - */ - public Builder setPauseTypeValue(int value) { - pauseType_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .WebUserPauseType pauseType = 2; - * @return The pauseType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.forNumber(pauseType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNRECOGNIZED : result; - } - /** - * .WebUserPauseType pauseType = 2; - * @param value The pauseType to set. - * @return This builder for chaining. - */ - public Builder setPauseType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - pauseType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebUserPauseType pauseType = 2; - * @return This builder for chaining. - */ - public Builder clearPauseType() { - bitField0_ = (bitField0_ & ~0x00000002); - pauseType_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:CSWebUserPause) - } - - // @@protoc_insertion_point(class_scope:CSWebUserPause) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public CSWebUserPause parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_CSWebUserPause_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_CSWebUserPause_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024CSWebUserPause.proto\032\026WebUserPauseType" + - ".proto\"D\n\016CSWebUserPause\022\014\n\004time\030\001 \001(\004\022$" + - "\n\tpauseType\030\002 \001(\0162\021.WebUserPauseTypeB6\n4" + - "tech.ordinaryroad.live.chat.client.kuais" + - "hou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor(), - }); - internal_static_CSWebUserPause_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_CSWebUserPause_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_CSWebUserPause_descriptor, - new java.lang.String[] { "Time", "PauseType", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java deleted file mode 100644 index 41434dea..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ClientId.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class ClientIdOuterClass { - private ClientIdOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code ClientId} - */ - public enum ClientId - implements com.google.protobuf.ProtocolMessageEnum { - /** - * NONE = 0; - */ - NONE(0), - /** - * IPHONE = 1; - */ - IPHONE(1), - /** - * ANDROID = 2; - */ - ANDROID(2), - /** - * WEB = 3; - */ - WEB(3), - /** - * PC = 6; - */ - PC(6), - /** - * IPHONE_LIVE_MATE = 8; - */ - IPHONE_LIVE_MATE(8), - /** - * ANDROID_LIVE_MATE = 9; - */ - ANDROID_LIVE_MATE(9), - UNRECOGNIZED(-1), - ; - - /** - * NONE = 0; - */ - public static final int NONE_VALUE = 0; - /** - * IPHONE = 1; - */ - public static final int IPHONE_VALUE = 1; - /** - * ANDROID = 2; - */ - public static final int ANDROID_VALUE = 2; - /** - * WEB = 3; - */ - public static final int WEB_VALUE = 3; - /** - * PC = 6; - */ - public static final int PC_VALUE = 6; - /** - * IPHONE_LIVE_MATE = 8; - */ - public static final int IPHONE_LIVE_MATE_VALUE = 8; - /** - * ANDROID_LIVE_MATE = 9; - */ - public static final int ANDROID_LIVE_MATE_VALUE = 9; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ClientId valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ClientId forNumber(int value) { - switch (value) { - case 0: return NONE; - case 1: return IPHONE; - case 2: return ANDROID; - case 3: return WEB; - case 6: return PC; - case 8: return IPHONE_LIVE_MATE; - case 9: return ANDROID_LIVE_MATE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ClientId> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public ClientId findValueByNumber(int number) { - return ClientId.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final ClientId[] VALUES = values(); - - public static ClientId valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private ClientId(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:ClientId) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\016ClientId.proto*k\n\010ClientId\022\010\n\004NONE\020\000\022\n" + - "\n\006IPHONE\020\001\022\013\n\007ANDROID\020\002\022\007\n\003WEB\020\003\022\006\n\002PC\020\006" + - "\022\024\n\020IPHONE_LIVE_MATE\020\010\022\025\n\021ANDROID_LIVE_M" + - "ATE\020\tB6\n4tech.ordinaryroad.live.chat.cli" + - "ent.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java deleted file mode 100644 index f73716d1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java +++ /dev/null @@ -1,658 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ConfigSwitchItem.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class ConfigSwitchItemOuterClass { - private ConfigSwitchItemOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface ConfigSwitchItemOrBuilder extends - // @@protoc_insertion_point(interface_extends:ConfigSwitchItem) - com.google.protobuf.MessageOrBuilder { - - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The enum numeric value on the wire for configSwitchType. - */ - int getConfigSwitchTypeValue(); - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The configSwitchType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType(); - - /** - * bool value = 2; - * @return The value. - */ - boolean getValue(); - } - /** - * Protobuf type {@code ConfigSwitchItem} - */ - public static final class ConfigSwitchItem extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:ConfigSwitchItem) - ConfigSwitchItemOrBuilder { - private static final long serialVersionUID = 0L; - // Use ConfigSwitchItem.newBuilder() to construct. - private ConfigSwitchItem(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private ConfigSwitchItem() { - configSwitchType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new ConfigSwitchItem(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder.class); - } - - public static final int CONFIGSWITCHTYPE_FIELD_NUMBER = 1; - private int configSwitchType_ = 0; - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The enum numeric value on the wire for configSwitchType. - */ - @java.lang.Override public int getConfigSwitchTypeValue() { - return configSwitchType_; - } - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The configSwitchType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.forNumber(configSwitchType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNRECOGNIZED : result; - } - - public static final int VALUE_FIELD_NUMBER = 2; - private boolean value_ = false; - /** - * bool value = 2; - * @return The value. - */ - @java.lang.Override - public boolean getValue() { - return value_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (configSwitchType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNKNOWN.getNumber()) { - output.writeEnum(1, configSwitchType_); - } - if (value_ != false) { - output.writeBool(2, value_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (configSwitchType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNKNOWN.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(1, configSwitchType_); - } - if (value_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, value_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem) obj; - - if (configSwitchType_ != other.configSwitchType_) return false; - if (getValue() - != other.getValue()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CONFIGSWITCHTYPE_FIELD_NUMBER; - hash = (53 * hash) + configSwitchType_; - hash = (37 * hash) + VALUE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getValue()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code ConfigSwitchItem} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:ConfigSwitchItem) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - configSwitchType_ = 0; - value_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.configSwitchType_ = configSwitchType_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.value_ = value_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()) return this; - if (other.configSwitchType_ != 0) { - setConfigSwitchTypeValue(other.getConfigSwitchTypeValue()); - } - if (other.getValue() != false) { - setValue(other.getValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - configSwitchType_ = input.readEnum(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - value_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int configSwitchType_ = 0; - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The enum numeric value on the wire for configSwitchType. - */ - @java.lang.Override public int getConfigSwitchTypeValue() { - return configSwitchType_; - } - /** - * .ConfigSwitchType configSwitchType = 1; - * @param value The enum numeric value on the wire for configSwitchType to set. - * @return This builder for chaining. - */ - public Builder setConfigSwitchTypeValue(int value) { - configSwitchType_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .ConfigSwitchType configSwitchType = 1; - * @return The configSwitchType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.forNumber(configSwitchType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNRECOGNIZED : result; - } - /** - * .ConfigSwitchType configSwitchType = 1; - * @param value The configSwitchType to set. - * @return This builder for chaining. - */ - public Builder setConfigSwitchType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - configSwitchType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .ConfigSwitchType configSwitchType = 1; - * @return This builder for chaining. - */ - public Builder clearConfigSwitchType() { - bitField0_ = (bitField0_ & ~0x00000001); - configSwitchType_ = 0; - onChanged(); - return this; - } - - private boolean value_ ; - /** - * bool value = 2; - * @return The value. - */ - @java.lang.Override - public boolean getValue() { - return value_; - } - /** - * bool value = 2; - * @param value The value to set. - * @return This builder for chaining. - */ - public Builder setValue(boolean value) { - - value_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool value = 2; - * @return This builder for chaining. - */ - public Builder clearValue() { - bitField0_ = (bitField0_ & ~0x00000002); - value_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:ConfigSwitchItem) - } - - // @@protoc_insertion_point(class_scope:ConfigSwitchItem) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public ConfigSwitchItem parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_ConfigSwitchItem_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_ConfigSwitchItem_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026ConfigSwitchItem.proto\032\026ConfigSwitchTy" + - "pe.proto\"N\n\020ConfigSwitchItem\022+\n\020configSw" + - "itchType\030\001 \001(\0162\021.ConfigSwitchType\022\r\n\005val" + - "ue\030\002 \001(\010B6\n4tech.ordinaryroad.live.chat." + - "client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor(), - }); - internal_static_ConfigSwitchItem_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_ConfigSwitchItem_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_ConfigSwitchItem_descriptor, - new java.lang.String[] { "ConfigSwitchType", "Value", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java deleted file mode 100644 index 0a53ef22..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: ConfigSwitchType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class ConfigSwitchTypeOuterClass { - private ConfigSwitchTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code ConfigSwitchType} - */ - public enum ConfigSwitchType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0), - /** - * HIDE_BARRAGE = 1; - */ - HIDE_BARRAGE(1), - /** - * HIDE_SPECIAL_EFFECT = 2; - */ - HIDE_SPECIAL_EFFECT(2), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * HIDE_BARRAGE = 1; - */ - public static final int HIDE_BARRAGE_VALUE = 1; - /** - * HIDE_SPECIAL_EFFECT = 2; - */ - public static final int HIDE_SPECIAL_EFFECT_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ConfigSwitchType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static ConfigSwitchType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return HIDE_BARRAGE; - case 2: return HIDE_SPECIAL_EFFECT; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - ConfigSwitchType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public ConfigSwitchType findValueByNumber(int number) { - return ConfigSwitchType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final ConfigSwitchType[] VALUES = values(); - - public static ConfigSwitchType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private ConfigSwitchType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:ConfigSwitchType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026ConfigSwitchType.proto*J\n\020ConfigSwitch" + - "Type\022\013\n\007UNKNOWN\020\000\022\020\n\014HIDE_BARRAGE\020\001\022\027\n\023H" + - "IDE_SPECIAL_EFFECT\020\002B6\n4tech.ordinaryroa" + - "d.live.chat.client.kuaishou.protobufb\006pr" + - "oto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java deleted file mode 100644 index 318cd1d5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java +++ /dev/null @@ -1,1079 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: GzoneNameplate.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class GzoneNameplateOuterClass { - private GzoneNameplateOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface GzoneNameplateOrBuilder extends - // @@protoc_insertion_point(interface_extends:GzoneNameplate) - com.google.protobuf.MessageOrBuilder { - - /** - * int64 id = 1; - * @return The id. - */ - long getId(); - - /** - * string name = 2; - * @return The name. - */ - java.lang.String getName(); - /** - * string name = 2; - * @return The bytes for name. - */ - com.google.protobuf.ByteString - getNameBytes(); - - /** - * repeated .PicUrl urls = 3; - */ - java.util.List - getUrlsList(); - /** - * repeated .PicUrl urls = 3; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index); - /** - * repeated .PicUrl urls = 3; - */ - int getUrlsCount(); - /** - * repeated .PicUrl urls = 3; - */ - java.util.List - getUrlsOrBuilderList(); - /** - * repeated .PicUrl urls = 3; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( - int index); - } - /** - * Protobuf type {@code GzoneNameplate} - */ - public static final class GzoneNameplate extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GzoneNameplate) - GzoneNameplateOrBuilder { - private static final long serialVersionUID = 0L; - // Use GzoneNameplate.newBuilder() to construct. - private GzoneNameplate(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private GzoneNameplate() { - name_ = ""; - urls_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new GzoneNameplate(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - private long id_ = 0L; - /** - * int64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - - public static final int NAME_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int URLS_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private java.util.List urls_; - /** - * repeated .PicUrl urls = 3; - */ - @java.lang.Override - public java.util.List getUrlsList() { - return urls_; - } - /** - * repeated .PicUrl urls = 3; - */ - @java.lang.Override - public java.util.List - getUrlsOrBuilderList() { - return urls_; - } - /** - * repeated .PicUrl urls = 3; - */ - @java.lang.Override - public int getUrlsCount() { - return urls_.size(); - } - /** - * repeated .PicUrl urls = 3; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index) { - return urls_.get(index); - } - /** - * repeated .PicUrl urls = 3; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( - int index) { - return urls_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (id_ != 0L) { - output.writeInt64(1, id_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); - } - for (int i = 0; i < urls_.size(); i++) { - output.writeMessage(3, urls_.get(i)); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (id_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, id_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); - } - for (int i = 0; i < urls_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, urls_.get(i)); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate) obj; - - if (getId() - != other.getId()) return false; - if (!getName() - .equals(other.getName())) return false; - if (!getUrlsList() - .equals(other.getUrlsList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getId()); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (getUrlsCount() > 0) { - hash = (37 * hash) + URLS_FIELD_NUMBER; - hash = (53 * hash) + getUrlsList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code GzoneNameplate} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:GzoneNameplate) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = 0L; - name_ = ""; - if (urlsBuilder_ == null) { - urls_ = java.util.Collections.emptyList(); - } else { - urls_ = null; - urlsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000004); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result) { - if (urlsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { - urls_ = java.util.Collections.unmodifiableList(urls_); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.urls_ = urls_; - } else { - result.urls_ = urlsBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.name_ = name_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance()) return this; - if (other.getId() != 0L) { - setId(other.getId()); - } - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (urlsBuilder_ == null) { - if (!other.urls_.isEmpty()) { - if (urls_.isEmpty()) { - urls_ = other.urls_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureUrlsIsMutable(); - urls_.addAll(other.urls_); - } - onChanged(); - } - } else { - if (!other.urls_.isEmpty()) { - if (urlsBuilder_.isEmpty()) { - urlsBuilder_.dispose(); - urlsBuilder_ = null; - urls_ = other.urls_; - bitField0_ = (bitField0_ & ~0x00000004); - urlsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getUrlsFieldBuilder() : null; - } else { - urlsBuilder_.addAllMessages(other.urls_); - } - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - id_ = input.readInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - name_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), - extensionRegistry); - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - urls_.add(m); - } else { - urlsBuilder_.addMessage(m); - } - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long id_ ; - /** - * int64 id = 1; - * @return The id. - */ - @java.lang.Override - public long getId() { - return id_; - } - /** - * int64 id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId(long value) { - - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * int64 id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object name_ = ""; - /** - * string name = 2; - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string name = 2; - * @return The bytes for name. - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string name = 2; - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - name_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string name = 2; - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string name = 2; - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private java.util.List urls_ = - java.util.Collections.emptyList(); - private void ensureUrlsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { - urls_ = new java.util.ArrayList(urls_); - bitField0_ |= 0x00000004; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> urlsBuilder_; - - /** - * repeated .PicUrl urls = 3; - */ - public java.util.List getUrlsList() { - if (urlsBuilder_ == null) { - return java.util.Collections.unmodifiableList(urls_); - } else { - return urlsBuilder_.getMessageList(); - } - } - /** - * repeated .PicUrl urls = 3; - */ - public int getUrlsCount() { - if (urlsBuilder_ == null) { - return urls_.size(); - } else { - return urlsBuilder_.getCount(); - } - } - /** - * repeated .PicUrl urls = 3; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index) { - if (urlsBuilder_ == null) { - return urls_.get(index); - } else { - return urlsBuilder_.getMessage(index); - } - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder setUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (urlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUrlsIsMutable(); - urls_.set(index, value); - onChanged(); - } else { - urlsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder setUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - urls_.set(index, builderForValue.build()); - onChanged(); - } else { - urlsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder addUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (urlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUrlsIsMutable(); - urls_.add(value); - onChanged(); - } else { - urlsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder addUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (urlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureUrlsIsMutable(); - urls_.add(index, value); - onChanged(); - } else { - urlsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder addUrls( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - urls_.add(builderForValue.build()); - onChanged(); - } else { - urlsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder addUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - urls_.add(index, builderForValue.build()); - onChanged(); - } else { - urlsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder addAllUrls( - java.lang.Iterable values) { - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, urls_); - onChanged(); - } else { - urlsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder clearUrls() { - if (urlsBuilder_ == null) { - urls_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - } else { - urlsBuilder_.clear(); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public Builder removeUrls(int index) { - if (urlsBuilder_ == null) { - ensureUrlsIsMutable(); - urls_.remove(index); - onChanged(); - } else { - urlsBuilder_.remove(index); - } - return this; - } - /** - * repeated .PicUrl urls = 3; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getUrlsBuilder( - int index) { - return getUrlsFieldBuilder().getBuilder(index); - } - /** - * repeated .PicUrl urls = 3; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( - int index) { - if (urlsBuilder_ == null) { - return urls_.get(index); } else { - return urlsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .PicUrl urls = 3; - */ - public java.util.List - getUrlsOrBuilderList() { - if (urlsBuilder_ != null) { - return urlsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(urls_); - } - } - /** - * repeated .PicUrl urls = 3; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addUrlsBuilder() { - return getUrlsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl urls = 3; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addUrlsBuilder( - int index) { - return getUrlsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl urls = 3; - */ - public java.util.List - getUrlsBuilderList() { - return getUrlsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> - getUrlsFieldBuilder() { - if (urlsBuilder_ == null) { - urlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( - urls_, - ((bitField0_ & 0x00000004) != 0), - getParentForChildren(), - isClean()); - urls_ = null; - } - return urlsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:GzoneNameplate) - } - - // @@protoc_insertion_point(class_scope:GzoneNameplate) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public GzoneNameplate parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GzoneNameplate_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GzoneNameplate_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024GzoneNameplate.proto\032\014PicUrl.proto\"A\n\016" + - "GzoneNameplate\022\n\n\002id\030\001 \001(\003\022\014\n\004name\030\002 \001(\t" + - "\022\025\n\004urls\030\003 \003(\0132\007.PicUrlB6\n4tech.ordinary" + - "road.live.chat.client.kuaishou.protobufb" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(), - }); - internal_static_GzoneNameplate_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_GzoneNameplate_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GzoneNameplate_descriptor, - new java.lang.String[] { "Id", "Name", "Urls", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java deleted file mode 100644 index b5f94ecb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java +++ /dev/null @@ -1,1541 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: LiveAudienceState.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class LiveAudienceStateOuterClass { - private LiveAudienceStateOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface LiveAudienceStateOrBuilder extends - // @@protoc_insertion_point(interface_extends:LiveAudienceState) - com.google.protobuf.MessageOrBuilder { - - /** - * bool isFromFansTop = 1; - * @return The isFromFansTop. - */ - boolean getIsFromFansTop(); - - /** - * bool isKoi = 2; - * @return The isKoi. - */ - boolean getIsKoi(); - - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The enum numeric value on the wire for assistantType. - */ - int getAssistantTypeValue(); - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The assistantType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType(); - - /** - * uint32 fansGroupIntimacyLevel = 4; - * @return The fansGroupIntimacyLevel. - */ - int getFansGroupIntimacyLevel(); - - /** - * .GzoneNameplate nameplate = 5; - * @return Whether the nameplate field is set. - */ - boolean hasNameplate(); - /** - * .GzoneNameplate nameplate = 5; - * @return The nameplate. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate(); - /** - * .GzoneNameplate nameplate = 5; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder(); - - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return Whether the liveFansGroupState field is set. - */ - boolean hasLiveFansGroupState(); - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return The liveFansGroupState. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState(); - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder(); - - /** - * uint32 wealthGrade = 7; - * @return The wealthGrade. - */ - int getWealthGrade(); - - /** - * string badgeKey = 8; - * @return The badgeKey. - */ - java.lang.String getBadgeKey(); - /** - * string badgeKey = 8; - * @return The bytes for badgeKey. - */ - com.google.protobuf.ByteString - getBadgeKeyBytes(); - } - /** - * Protobuf type {@code LiveAudienceState} - */ - public static final class LiveAudienceState extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:LiveAudienceState) - LiveAudienceStateOrBuilder { - private static final long serialVersionUID = 0L; - // Use LiveAudienceState.newBuilder() to construct. - private LiveAudienceState(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private LiveAudienceState() { - assistantType_ = 0; - badgeKey_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new LiveAudienceState(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder.class); - } - - /** - * Protobuf enum {@code LiveAudienceState.AssistantType} - */ - public enum AssistantType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_ASSISTANT_TYPE = 0; - */ - UNKNOWN_ASSISTANT_TYPE(0), - /** - * SUPER = 1; - */ - SUPER(1), - /** - * JUNIOR = 2; - */ - JUNIOR(2), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_ASSISTANT_TYPE = 0; - */ - public static final int UNKNOWN_ASSISTANT_TYPE_VALUE = 0; - /** - * SUPER = 1; - */ - public static final int SUPER_VALUE = 1; - /** - * JUNIOR = 2; - */ - public static final int JUNIOR_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AssistantType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static AssistantType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_ASSISTANT_TYPE; - case 1: return SUPER; - case 2: return JUNIOR; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AssistantType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public AssistantType findValueByNumber(int number) { - return AssistantType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDescriptor().getEnumTypes().get(0); - } - - private static final AssistantType[] VALUES = values(); - - public static AssistantType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private AssistantType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:LiveAudienceState.AssistantType) - } - - public static final int ISFROMFANSTOP_FIELD_NUMBER = 1; - private boolean isFromFansTop_ = false; - /** - * bool isFromFansTop = 1; - * @return The isFromFansTop. - */ - @java.lang.Override - public boolean getIsFromFansTop() { - return isFromFansTop_; - } - - public static final int ISKOI_FIELD_NUMBER = 2; - private boolean isKoi_ = false; - /** - * bool isKoi = 2; - * @return The isKoi. - */ - @java.lang.Override - public boolean getIsKoi() { - return isKoi_; - } - - public static final int ASSISTANTTYPE_FIELD_NUMBER = 3; - private int assistantType_ = 0; - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The enum numeric value on the wire for assistantType. - */ - @java.lang.Override public int getAssistantTypeValue() { - return assistantType_; - } - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The assistantType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.forNumber(assistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNRECOGNIZED : result; - } - - public static final int FANSGROUPINTIMACYLEVEL_FIELD_NUMBER = 4; - private int fansGroupIntimacyLevel_ = 0; - /** - * uint32 fansGroupIntimacyLevel = 4; - * @return The fansGroupIntimacyLevel. - */ - @java.lang.Override - public int getFansGroupIntimacyLevel() { - return fansGroupIntimacyLevel_; - } - - public static final int NAMEPLATE_FIELD_NUMBER = 5; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate nameplate_; - /** - * .GzoneNameplate nameplate = 5; - * @return Whether the nameplate field is set. - */ - @java.lang.Override - public boolean hasNameplate() { - return nameplate_ != null; - } - /** - * .GzoneNameplate nameplate = 5; - * @return The nameplate. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate() { - return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; - } - /** - * .GzoneNameplate nameplate = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder() { - return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; - } - - public static final int LIVEFANSGROUPSTATE_FIELD_NUMBER = 6; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState liveFansGroupState_; - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return Whether the liveFansGroupState field is set. - */ - @java.lang.Override - public boolean hasLiveFansGroupState() { - return liveFansGroupState_ != null; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return The liveFansGroupState. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState() { - return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder() { - return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; - } - - public static final int WEALTHGRADE_FIELD_NUMBER = 7; - private int wealthGrade_ = 0; - /** - * uint32 wealthGrade = 7; - * @return The wealthGrade. - */ - @java.lang.Override - public int getWealthGrade() { - return wealthGrade_; - } - - public static final int BADGEKEY_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private volatile java.lang.Object badgeKey_ = ""; - /** - * string badgeKey = 8; - * @return The badgeKey. - */ - @java.lang.Override - public java.lang.String getBadgeKey() { - java.lang.Object ref = badgeKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - badgeKey_ = s; - return s; - } - } - /** - * string badgeKey = 8; - * @return The bytes for badgeKey. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getBadgeKeyBytes() { - java.lang.Object ref = badgeKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - badgeKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (isFromFansTop_ != false) { - output.writeBool(1, isFromFansTop_); - } - if (isKoi_ != false) { - output.writeBool(2, isKoi_); - } - if (assistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - output.writeEnum(3, assistantType_); - } - if (fansGroupIntimacyLevel_ != 0) { - output.writeUInt32(4, fansGroupIntimacyLevel_); - } - if (nameplate_ != null) { - output.writeMessage(5, getNameplate()); - } - if (liveFansGroupState_ != null) { - output.writeMessage(6, getLiveFansGroupState()); - } - if (wealthGrade_ != 0) { - output.writeUInt32(7, wealthGrade_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(badgeKey_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 8, badgeKey_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (isFromFansTop_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, isFromFansTop_); - } - if (isKoi_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, isKoi_); - } - if (assistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(3, assistantType_); - } - if (fansGroupIntimacyLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, fansGroupIntimacyLevel_); - } - if (nameplate_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getNameplate()); - } - if (liveFansGroupState_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, getLiveFansGroupState()); - } - if (wealthGrade_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(7, wealthGrade_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(badgeKey_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, badgeKey_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState) obj; - - if (getIsFromFansTop() - != other.getIsFromFansTop()) return false; - if (getIsKoi() - != other.getIsKoi()) return false; - if (assistantType_ != other.assistantType_) return false; - if (getFansGroupIntimacyLevel() - != other.getFansGroupIntimacyLevel()) return false; - if (hasNameplate() != other.hasNameplate()) return false; - if (hasNameplate()) { - if (!getNameplate() - .equals(other.getNameplate())) return false; - } - if (hasLiveFansGroupState() != other.hasLiveFansGroupState()) return false; - if (hasLiveFansGroupState()) { - if (!getLiveFansGroupState() - .equals(other.getLiveFansGroupState())) return false; - } - if (getWealthGrade() - != other.getWealthGrade()) return false; - if (!getBadgeKey() - .equals(other.getBadgeKey())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ISFROMFANSTOP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsFromFansTop()); - hash = (37 * hash) + ISKOI_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getIsKoi()); - hash = (37 * hash) + ASSISTANTTYPE_FIELD_NUMBER; - hash = (53 * hash) + assistantType_; - hash = (37 * hash) + FANSGROUPINTIMACYLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getFansGroupIntimacyLevel(); - if (hasNameplate()) { - hash = (37 * hash) + NAMEPLATE_FIELD_NUMBER; - hash = (53 * hash) + getNameplate().hashCode(); - } - if (hasLiveFansGroupState()) { - hash = (37 * hash) + LIVEFANSGROUPSTATE_FIELD_NUMBER; - hash = (53 * hash) + getLiveFansGroupState().hashCode(); - } - hash = (37 * hash) + WEALTHGRADE_FIELD_NUMBER; - hash = (53 * hash) + getWealthGrade(); - hash = (37 * hash) + BADGEKEY_FIELD_NUMBER; - hash = (53 * hash) + getBadgeKey().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code LiveAudienceState} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:LiveAudienceState) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - isFromFansTop_ = false; - isKoi_ = false; - assistantType_ = 0; - fansGroupIntimacyLevel_ = 0; - nameplate_ = null; - if (nameplateBuilder_ != null) { - nameplateBuilder_.dispose(); - nameplateBuilder_ = null; - } - liveFansGroupState_ = null; - if (liveFansGroupStateBuilder_ != null) { - liveFansGroupStateBuilder_.dispose(); - liveFansGroupStateBuilder_ = null; - } - wealthGrade_ = 0; - badgeKey_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.isFromFansTop_ = isFromFansTop_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.isKoi_ = isKoi_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.assistantType_ = assistantType_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.fansGroupIntimacyLevel_ = fansGroupIntimacyLevel_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.nameplate_ = nameplateBuilder_ == null - ? nameplate_ - : nameplateBuilder_.build(); - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.liveFansGroupState_ = liveFansGroupStateBuilder_ == null - ? liveFansGroupState_ - : liveFansGroupStateBuilder_.build(); - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.wealthGrade_ = wealthGrade_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.badgeKey_ = badgeKey_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance()) return this; - if (other.getIsFromFansTop() != false) { - setIsFromFansTop(other.getIsFromFansTop()); - } - if (other.getIsKoi() != false) { - setIsKoi(other.getIsKoi()); - } - if (other.assistantType_ != 0) { - setAssistantTypeValue(other.getAssistantTypeValue()); - } - if (other.getFansGroupIntimacyLevel() != 0) { - setFansGroupIntimacyLevel(other.getFansGroupIntimacyLevel()); - } - if (other.hasNameplate()) { - mergeNameplate(other.getNameplate()); - } - if (other.hasLiveFansGroupState()) { - mergeLiveFansGroupState(other.getLiveFansGroupState()); - } - if (other.getWealthGrade() != 0) { - setWealthGrade(other.getWealthGrade()); - } - if (!other.getBadgeKey().isEmpty()) { - badgeKey_ = other.badgeKey_; - bitField0_ |= 0x00000080; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - isFromFansTop_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - isKoi_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - assistantType_ = input.readEnum(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - fansGroupIntimacyLevel_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - input.readMessage( - getNameplateFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000010; - break; - } // case 42 - case 50: { - input.readMessage( - getLiveFansGroupStateFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 56: { - wealthGrade_ = input.readUInt32(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 66: { - badgeKey_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000080; - break; - } // case 66 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private boolean isFromFansTop_ ; - /** - * bool isFromFansTop = 1; - * @return The isFromFansTop. - */ - @java.lang.Override - public boolean getIsFromFansTop() { - return isFromFansTop_; - } - /** - * bool isFromFansTop = 1; - * @param value The isFromFansTop to set. - * @return This builder for chaining. - */ - public Builder setIsFromFansTop(boolean value) { - - isFromFansTop_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool isFromFansTop = 1; - * @return This builder for chaining. - */ - public Builder clearIsFromFansTop() { - bitField0_ = (bitField0_ & ~0x00000001); - isFromFansTop_ = false; - onChanged(); - return this; - } - - private boolean isKoi_ ; - /** - * bool isKoi = 2; - * @return The isKoi. - */ - @java.lang.Override - public boolean getIsKoi() { - return isKoi_; - } - /** - * bool isKoi = 2; - * @param value The isKoi to set. - * @return This builder for chaining. - */ - public Builder setIsKoi(boolean value) { - - isKoi_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool isKoi = 2; - * @return This builder for chaining. - */ - public Builder clearIsKoi() { - bitField0_ = (bitField0_ & ~0x00000002); - isKoi_ = false; - onChanged(); - return this; - } - - private int assistantType_ = 0; - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The enum numeric value on the wire for assistantType. - */ - @java.lang.Override public int getAssistantTypeValue() { - return assistantType_; - } - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @param value The enum numeric value on the wire for assistantType to set. - * @return This builder for chaining. - */ - public Builder setAssistantTypeValue(int value) { - assistantType_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return The assistantType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.forNumber(assistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNRECOGNIZED : result; - } - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @param value The assistantType to set. - * @return This builder for chaining. - */ - public Builder setAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - assistantType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .LiveAudienceState.AssistantType assistantType = 3; - * @return This builder for chaining. - */ - public Builder clearAssistantType() { - bitField0_ = (bitField0_ & ~0x00000004); - assistantType_ = 0; - onChanged(); - return this; - } - - private int fansGroupIntimacyLevel_ ; - /** - * uint32 fansGroupIntimacyLevel = 4; - * @return The fansGroupIntimacyLevel. - */ - @java.lang.Override - public int getFansGroupIntimacyLevel() { - return fansGroupIntimacyLevel_; - } - /** - * uint32 fansGroupIntimacyLevel = 4; - * @param value The fansGroupIntimacyLevel to set. - * @return This builder for chaining. - */ - public Builder setFansGroupIntimacyLevel(int value) { - - fansGroupIntimacyLevel_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 fansGroupIntimacyLevel = 4; - * @return This builder for chaining. - */ - public Builder clearFansGroupIntimacyLevel() { - bitField0_ = (bitField0_ & ~0x00000008); - fansGroupIntimacyLevel_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate nameplate_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder> nameplateBuilder_; - /** - * .GzoneNameplate nameplate = 5; - * @return Whether the nameplate field is set. - */ - public boolean hasNameplate() { - return ((bitField0_ & 0x00000010) != 0); - } - /** - * .GzoneNameplate nameplate = 5; - * @return The nameplate. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate() { - if (nameplateBuilder_ == null) { - return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; - } else { - return nameplateBuilder_.getMessage(); - } - } - /** - * .GzoneNameplate nameplate = 5; - */ - public Builder setNameplate(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate value) { - if (nameplateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - nameplate_ = value; - } else { - nameplateBuilder_.setMessage(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .GzoneNameplate nameplate = 5; - */ - public Builder setNameplate( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder builderForValue) { - if (nameplateBuilder_ == null) { - nameplate_ = builderForValue.build(); - } else { - nameplateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .GzoneNameplate nameplate = 5; - */ - public Builder mergeNameplate(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate value) { - if (nameplateBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0) && - nameplate_ != null && - nameplate_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance()) { - getNameplateBuilder().mergeFrom(value); - } else { - nameplate_ = value; - } - } else { - nameplateBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * .GzoneNameplate nameplate = 5; - */ - public Builder clearNameplate() { - bitField0_ = (bitField0_ & ~0x00000010); - nameplate_ = null; - if (nameplateBuilder_ != null) { - nameplateBuilder_.dispose(); - nameplateBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .GzoneNameplate nameplate = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder getNameplateBuilder() { - bitField0_ |= 0x00000010; - onChanged(); - return getNameplateFieldBuilder().getBuilder(); - } - /** - * .GzoneNameplate nameplate = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder() { - if (nameplateBuilder_ != null) { - return nameplateBuilder_.getMessageOrBuilder(); - } else { - return nameplate_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; - } - } - /** - * .GzoneNameplate nameplate = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder> - getNameplateFieldBuilder() { - if (nameplateBuilder_ == null) { - nameplateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder>( - getNameplate(), - getParentForChildren(), - isClean()); - nameplate_ = null; - } - return nameplateBuilder_; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState liveFansGroupState_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder> liveFansGroupStateBuilder_; - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return Whether the liveFansGroupState field is set. - */ - public boolean hasLiveFansGroupState() { - return ((bitField0_ & 0x00000020) != 0); - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - * @return The liveFansGroupState. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState() { - if (liveFansGroupStateBuilder_ == null) { - return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; - } else { - return liveFansGroupStateBuilder_.getMessage(); - } - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public Builder setLiveFansGroupState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState value) { - if (liveFansGroupStateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - liveFansGroupState_ = value; - } else { - liveFansGroupStateBuilder_.setMessage(value); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public Builder setLiveFansGroupState( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder builderForValue) { - if (liveFansGroupStateBuilder_ == null) { - liveFansGroupState_ = builderForValue.build(); - } else { - liveFansGroupStateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public Builder mergeLiveFansGroupState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState value) { - if (liveFansGroupStateBuilder_ == null) { - if (((bitField0_ & 0x00000020) != 0) && - liveFansGroupState_ != null && - liveFansGroupState_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance()) { - getLiveFansGroupStateBuilder().mergeFrom(value); - } else { - liveFansGroupState_ = value; - } - } else { - liveFansGroupStateBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public Builder clearLiveFansGroupState() { - bitField0_ = (bitField0_ & ~0x00000020); - liveFansGroupState_ = null; - if (liveFansGroupStateBuilder_ != null) { - liveFansGroupStateBuilder_.dispose(); - liveFansGroupStateBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder getLiveFansGroupStateBuilder() { - bitField0_ |= 0x00000020; - onChanged(); - return getLiveFansGroupStateFieldBuilder().getBuilder(); - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder() { - if (liveFansGroupStateBuilder_ != null) { - return liveFansGroupStateBuilder_.getMessageOrBuilder(); - } else { - return liveFansGroupState_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; - } - } - /** - * .LiveFansGroupState liveFansGroupState = 6; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder> - getLiveFansGroupStateFieldBuilder() { - if (liveFansGroupStateBuilder_ == null) { - liveFansGroupStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder>( - getLiveFansGroupState(), - getParentForChildren(), - isClean()); - liveFansGroupState_ = null; - } - return liveFansGroupStateBuilder_; - } - - private int wealthGrade_ ; - /** - * uint32 wealthGrade = 7; - * @return The wealthGrade. - */ - @java.lang.Override - public int getWealthGrade() { - return wealthGrade_; - } - /** - * uint32 wealthGrade = 7; - * @param value The wealthGrade to set. - * @return This builder for chaining. - */ - public Builder setWealthGrade(int value) { - - wealthGrade_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * uint32 wealthGrade = 7; - * @return This builder for chaining. - */ - public Builder clearWealthGrade() { - bitField0_ = (bitField0_ & ~0x00000040); - wealthGrade_ = 0; - onChanged(); - return this; - } - - private java.lang.Object badgeKey_ = ""; - /** - * string badgeKey = 8; - * @return The badgeKey. - */ - public java.lang.String getBadgeKey() { - java.lang.Object ref = badgeKey_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - badgeKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string badgeKey = 8; - * @return The bytes for badgeKey. - */ - public com.google.protobuf.ByteString - getBadgeKeyBytes() { - java.lang.Object ref = badgeKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - badgeKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string badgeKey = 8; - * @param value The badgeKey to set. - * @return This builder for chaining. - */ - public Builder setBadgeKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - badgeKey_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * string badgeKey = 8; - * @return This builder for chaining. - */ - public Builder clearBadgeKey() { - badgeKey_ = getDefaultInstance().getBadgeKey(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - return this; - } - /** - * string badgeKey = 8; - * @param value The bytes for badgeKey to set. - * @return This builder for chaining. - */ - public Builder setBadgeKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - badgeKey_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:LiveAudienceState) - } - - // @@protoc_insertion_point(class_scope:LiveAudienceState) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public LiveAudienceState parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_LiveAudienceState_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_LiveAudienceState_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\027LiveAudienceState.proto\032\024GzoneNameplat" + - "e.proto\032\030LiveFansGroupState.proto\"\322\002\n\021Li" + - "veAudienceState\022\025\n\risFromFansTop\030\001 \001(\010\022\r" + - "\n\005isKoi\030\002 \001(\010\0227\n\rassistantType\030\003 \001(\0162 .L" + - "iveAudienceState.AssistantType\022\036\n\026fansGr" + - "oupIntimacyLevel\030\004 \001(\r\022\"\n\tnameplate\030\005 \001(" + - "\0132\017.GzoneNameplate\022/\n\022liveFansGroupState" + - "\030\006 \001(\0132\023.LiveFansGroupState\022\023\n\013wealthGra" + - "de\030\007 \001(\r\022\020\n\010badgeKey\030\010 \001(\t\"B\n\rAssistantT" + - "ype\022\032\n\026UNKNOWN_ASSISTANT_TYPE\020\000\022\t\n\005SUPER" + - "\020\001\022\n\n\006JUNIOR\020\002B6\n4tech.ordinaryroad.live" + - ".chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.getDescriptor(), - }); - internal_static_LiveAudienceState_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_LiveAudienceState_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_LiveAudienceState_descriptor, - new java.lang.String[] { "IsFromFansTop", "IsKoi", "AssistantType", "FansGroupIntimacyLevel", "Nameplate", "LiveFansGroupState", "WealthGrade", "BadgeKey", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java deleted file mode 100644 index 683bf82e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java +++ /dev/null @@ -1,846 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: LiveCdnNodeView.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class LiveCdnNodeViewOuterClass { - private LiveCdnNodeViewOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface LiveCdnNodeViewOrBuilder extends - // @@protoc_insertion_point(interface_extends:LiveCdnNodeView) - com.google.protobuf.MessageOrBuilder { - - /** - * string cdn = 1; - * @return The cdn. - */ - java.lang.String getCdn(); - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - com.google.protobuf.ByteString - getCdnBytes(); - - /** - * string url = 2; - * @return The url. - */ - java.lang.String getUrl(); - /** - * string url = 2; - * @return The bytes for url. - */ - com.google.protobuf.ByteString - getUrlBytes(); - - /** - * bool freeTraffic = 3; - * @return The freeTraffic. - */ - boolean getFreeTraffic(); - } - /** - * Protobuf type {@code LiveCdnNodeView} - */ - public static final class LiveCdnNodeView extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:LiveCdnNodeView) - LiveCdnNodeViewOrBuilder { - private static final long serialVersionUID = 0L; - // Use LiveCdnNodeView.newBuilder() to construct. - private LiveCdnNodeView(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private LiveCdnNodeView() { - cdn_ = ""; - url_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new LiveCdnNodeView(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder.class); - } - - public static final int CDN_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object cdn_ = ""; - /** - * string cdn = 1; - * @return The cdn. - */ - @java.lang.Override - public java.lang.String getCdn() { - java.lang.Object ref = cdn_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cdn_ = s; - return s; - } - } - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCdnBytes() { - java.lang.Object ref = cdn_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cdn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int URL_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object url_ = ""; - /** - * string url = 2; - * @return The url. - */ - @java.lang.Override - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - url_ = s; - return s; - } - } - /** - * string url = 2; - * @return The bytes for url. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FREETRAFFIC_FIELD_NUMBER = 3; - private boolean freeTraffic_ = false; - /** - * bool freeTraffic = 3; - * @return The freeTraffic. - */ - @java.lang.Override - public boolean getFreeTraffic() { - return freeTraffic_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cdn_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_); - } - if (freeTraffic_ != false) { - output.writeBool(3, freeTraffic_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cdn_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_); - } - if (freeTraffic_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, freeTraffic_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView) obj; - - if (!getCdn() - .equals(other.getCdn())) return false; - if (!getUrl() - .equals(other.getUrl())) return false; - if (getFreeTraffic() - != other.getFreeTraffic()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CDN_FIELD_NUMBER; - hash = (53 * hash) + getCdn().hashCode(); - hash = (37 * hash) + URL_FIELD_NUMBER; - hash = (53 * hash) + getUrl().hashCode(); - hash = (37 * hash) + FREETRAFFIC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getFreeTraffic()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code LiveCdnNodeView} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:LiveCdnNodeView) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - cdn_ = ""; - url_ = ""; - freeTraffic_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.cdn_ = cdn_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.url_ = url_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.freeTraffic_ = freeTraffic_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()) return this; - if (!other.getCdn().isEmpty()) { - cdn_ = other.cdn_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getUrl().isEmpty()) { - url_ = other.url_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getFreeTraffic() != false) { - setFreeTraffic(other.getFreeTraffic()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - cdn_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - url_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - freeTraffic_ = input.readBool(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object cdn_ = ""; - /** - * string cdn = 1; - * @return The cdn. - */ - public java.lang.String getCdn() { - java.lang.Object ref = cdn_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cdn_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - public com.google.protobuf.ByteString - getCdnBytes() { - java.lang.Object ref = cdn_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cdn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string cdn = 1; - * @param value The cdn to set. - * @return This builder for chaining. - */ - public Builder setCdn( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - cdn_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string cdn = 1; - * @return This builder for chaining. - */ - public Builder clearCdn() { - cdn_ = getDefaultInstance().getCdn(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string cdn = 1; - * @param value The bytes for cdn to set. - * @return This builder for chaining. - */ - public Builder setCdnBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - cdn_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object url_ = ""; - /** - * string url = 2; - * @return The url. - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - url_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string url = 2; - * @return The bytes for url. - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string url = 2; - * @param value The url to set. - * @return This builder for chaining. - */ - public Builder setUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - url_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string url = 2; - * @return This builder for chaining. - */ - public Builder clearUrl() { - url_ = getDefaultInstance().getUrl(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string url = 2; - * @param value The bytes for url to set. - * @return This builder for chaining. - */ - public Builder setUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - url_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private boolean freeTraffic_ ; - /** - * bool freeTraffic = 3; - * @return The freeTraffic. - */ - @java.lang.Override - public boolean getFreeTraffic() { - return freeTraffic_; - } - /** - * bool freeTraffic = 3; - * @param value The freeTraffic to set. - * @return This builder for chaining. - */ - public Builder setFreeTraffic(boolean value) { - - freeTraffic_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bool freeTraffic = 3; - * @return This builder for chaining. - */ - public Builder clearFreeTraffic() { - bitField0_ = (bitField0_ & ~0x00000004); - freeTraffic_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:LiveCdnNodeView) - } - - // @@protoc_insertion_point(class_scope:LiveCdnNodeView) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public LiveCdnNodeView parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_LiveCdnNodeView_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_LiveCdnNodeView_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\025LiveCdnNodeView.proto\"@\n\017LiveCdnNodeVi" + - "ew\022\013\n\003cdn\030\001 \001(\t\022\013\n\003url\030\002 \001(\t\022\023\n\013freeTraf" + - "fic\030\003 \001(\010B6\n4tech.ordinaryroad.live.chat" + - ".client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_LiveCdnNodeView_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_LiveCdnNodeView_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_LiveCdnNodeView_descriptor, - new java.lang.String[] { "Cdn", "Url", "FreeTraffic", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java deleted file mode 100644 index 6ba076fa..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java +++ /dev/null @@ -1,622 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: LiveFansGroupState.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class LiveFansGroupStateOuterClass { - private LiveFansGroupStateOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface LiveFansGroupStateOrBuilder extends - // @@protoc_insertion_point(interface_extends:LiveFansGroupState) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 intimacyLevel = 1; - * @return The intimacyLevel. - */ - int getIntimacyLevel(); - - /** - * uint32 enterRoomSpecialEffect = 2; - * @return The enterRoomSpecialEffect. - */ - int getEnterRoomSpecialEffect(); - } - /** - * Protobuf type {@code LiveFansGroupState} - */ - public static final class LiveFansGroupState extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:LiveFansGroupState) - LiveFansGroupStateOrBuilder { - private static final long serialVersionUID = 0L; - // Use LiveFansGroupState.newBuilder() to construct. - private LiveFansGroupState(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private LiveFansGroupState() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new LiveFansGroupState(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder.class); - } - - public static final int INTIMACYLEVEL_FIELD_NUMBER = 1; - private int intimacyLevel_ = 0; - /** - * uint32 intimacyLevel = 1; - * @return The intimacyLevel. - */ - @java.lang.Override - public int getIntimacyLevel() { - return intimacyLevel_; - } - - public static final int ENTERROOMSPECIALEFFECT_FIELD_NUMBER = 2; - private int enterRoomSpecialEffect_ = 0; - /** - * uint32 enterRoomSpecialEffect = 2; - * @return The enterRoomSpecialEffect. - */ - @java.lang.Override - public int getEnterRoomSpecialEffect() { - return enterRoomSpecialEffect_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (intimacyLevel_ != 0) { - output.writeUInt32(1, intimacyLevel_); - } - if (enterRoomSpecialEffect_ != 0) { - output.writeUInt32(2, enterRoomSpecialEffect_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (intimacyLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, intimacyLevel_); - } - if (enterRoomSpecialEffect_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, enterRoomSpecialEffect_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState) obj; - - if (getIntimacyLevel() - != other.getIntimacyLevel()) return false; - if (getEnterRoomSpecialEffect() - != other.getEnterRoomSpecialEffect()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + INTIMACYLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getIntimacyLevel(); - hash = (37 * hash) + ENTERROOMSPECIALEFFECT_FIELD_NUMBER; - hash = (53 * hash) + getEnterRoomSpecialEffect(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code LiveFansGroupState} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:LiveFansGroupState) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - intimacyLevel_ = 0; - enterRoomSpecialEffect_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.intimacyLevel_ = intimacyLevel_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.enterRoomSpecialEffect_ = enterRoomSpecialEffect_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance()) return this; - if (other.getIntimacyLevel() != 0) { - setIntimacyLevel(other.getIntimacyLevel()); - } - if (other.getEnterRoomSpecialEffect() != 0) { - setEnterRoomSpecialEffect(other.getEnterRoomSpecialEffect()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - intimacyLevel_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - enterRoomSpecialEffect_ = input.readUInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int intimacyLevel_ ; - /** - * uint32 intimacyLevel = 1; - * @return The intimacyLevel. - */ - @java.lang.Override - public int getIntimacyLevel() { - return intimacyLevel_; - } - /** - * uint32 intimacyLevel = 1; - * @param value The intimacyLevel to set. - * @return This builder for chaining. - */ - public Builder setIntimacyLevel(int value) { - - intimacyLevel_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 intimacyLevel = 1; - * @return This builder for chaining. - */ - public Builder clearIntimacyLevel() { - bitField0_ = (bitField0_ & ~0x00000001); - intimacyLevel_ = 0; - onChanged(); - return this; - } - - private int enterRoomSpecialEffect_ ; - /** - * uint32 enterRoomSpecialEffect = 2; - * @return The enterRoomSpecialEffect. - */ - @java.lang.Override - public int getEnterRoomSpecialEffect() { - return enterRoomSpecialEffect_; - } - /** - * uint32 enterRoomSpecialEffect = 2; - * @param value The enterRoomSpecialEffect to set. - * @return This builder for chaining. - */ - public Builder setEnterRoomSpecialEffect(int value) { - - enterRoomSpecialEffect_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint32 enterRoomSpecialEffect = 2; - * @return This builder for chaining. - */ - public Builder clearEnterRoomSpecialEffect() { - bitField0_ = (bitField0_ & ~0x00000002); - enterRoomSpecialEffect_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:LiveFansGroupState) - } - - // @@protoc_insertion_point(class_scope:LiveFansGroupState) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public LiveFansGroupState parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_LiveFansGroupState_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_LiveFansGroupState_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\030LiveFansGroupState.proto\"K\n\022LiveFansGr" + - "oupState\022\025\n\rintimacyLevel\030\001 \001(\r\022\036\n\026enter" + - "RoomSpecialEffect\030\002 \001(\rB6\n4tech.ordinary" + - "road.live.chat.client.kuaishou.protobufb" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_LiveFansGroupState_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_LiveFansGroupState_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_LiveFansGroupState_descriptor, - new java.lang.String[] { "IntimacyLevel", "EnterRoomSpecialEffect", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java deleted file mode 100644 index 73bc328a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java +++ /dev/null @@ -1,697 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: PSHostInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class PSHostInfoOuterClass { - private PSHostInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface PSHostInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:PSHostInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * string ip = 1; - * @return The ip. - */ - java.lang.String getIp(); - /** - * string ip = 1; - * @return The bytes for ip. - */ - com.google.protobuf.ByteString - getIpBytes(); - - /** - * int32 port = 2; - * @return The port. - */ - int getPort(); - } - /** - * Protobuf type {@code PSHostInfo} - */ - public static final class PSHostInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:PSHostInfo) - PSHostInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use PSHostInfo.newBuilder() to construct. - private PSHostInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PSHostInfo() { - ip_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PSHostInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.Builder.class); - } - - public static final int IP_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object ip_ = ""; - /** - * string ip = 1; - * @return The ip. - */ - @java.lang.Override - public java.lang.String getIp() { - java.lang.Object ref = ip_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ip_ = s; - return s; - } - } - /** - * string ip = 1; - * @return The bytes for ip. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIpBytes() { - java.lang.Object ref = ip_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - ip_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PORT_FIELD_NUMBER = 2; - private int port_ = 0; - /** - * int32 port = 2; - * @return The port. - */ - @java.lang.Override - public int getPort() { - return port_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_); - } - if (port_ != 0) { - output.writeInt32(2, port_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_); - } - if (port_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, port_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo) obj; - - if (!getIp() - .equals(other.getIp())) return false; - if (getPort() - != other.getPort()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + IP_FIELD_NUMBER; - hash = (53 * hash) + getIp().hashCode(); - hash = (37 * hash) + PORT_FIELD_NUMBER; - hash = (53 * hash) + getPort(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code PSHostInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:PSHostInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - ip_ = ""; - port_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.ip_ = ip_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.port_ = port_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.getDefaultInstance()) return this; - if (!other.getIp().isEmpty()) { - ip_ = other.ip_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getPort() != 0) { - setPort(other.getPort()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - ip_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - port_ = input.readInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object ip_ = ""; - /** - * string ip = 1; - * @return The ip. - */ - public java.lang.String getIp() { - java.lang.Object ref = ip_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ip_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string ip = 1; - * @return The bytes for ip. - */ - public com.google.protobuf.ByteString - getIpBytes() { - java.lang.Object ref = ip_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - ip_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string ip = 1; - * @param value The ip to set. - * @return This builder for chaining. - */ - public Builder setIp( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ip_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string ip = 1; - * @return This builder for chaining. - */ - public Builder clearIp() { - ip_ = getDefaultInstance().getIp(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string ip = 1; - * @param value The bytes for ip to set. - * @return This builder for chaining. - */ - public Builder setIpBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ip_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private int port_ ; - /** - * int32 port = 2; - * @return The port. - */ - @java.lang.Override - public int getPort() { - return port_; - } - /** - * int32 port = 2; - * @param value The port to set. - * @return This builder for chaining. - */ - public Builder setPort(int value) { - - port_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * int32 port = 2; - * @return This builder for chaining. - */ - public Builder clearPort() { - bitField0_ = (bitField0_ & ~0x00000002); - port_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:PSHostInfo) - } - - // @@protoc_insertion_point(class_scope:PSHostInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PSHostInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_PSHostInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_PSHostInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020PSHostInfo.proto\"&\n\nPSHostInfo\022\n\n\002ip\030\001" + - " \001(\t\022\014\n\004port\030\002 \001(\005B6\n4tech.ordinaryroad." + - "live.chat.client.kuaishou.protobufb\006prot" + - "o3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_PSHostInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_PSHostInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_PSHostInfo_descriptor, - new java.lang.String[] { "Ip", "Port", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java deleted file mode 100644 index 5711bf4c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java +++ /dev/null @@ -1,708 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: PayloadType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class PayloadTypeOuterClass { - private PayloadTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code PayloadType} - */ - public enum PayloadType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0), - /** - * CS_HEARTBEAT = 1; - */ - CS_HEARTBEAT(1), - /** - * CS_ERROR = 3; - */ - CS_ERROR(3), - /** - * CS_PING = 4; - */ - CS_PING(4), - /** - * PS_HOST_INFO = 51; - */ - PS_HOST_INFO(51), - /** - * SC_HEARTBEAT_ACK = 101; - */ - SC_HEARTBEAT_ACK(101), - /** - * SC_ECHO = 102; - */ - SC_ECHO(102), - /** - * SC_ERROR = 103; - */ - SC_ERROR(103), - /** - * SC_PING_ACK = 104; - */ - SC_PING_ACK(104), - /** - * SC_INFO = 105; - */ - SC_INFO(105), - /** - * CS_ENTER_ROOM = 200; - */ - CS_ENTER_ROOM(200), - /** - * CS_USER_PAUSE = 201; - */ - CS_USER_PAUSE(201), - /** - * CS_USER_EXIT = 202; - */ - CS_USER_EXIT(202), - /** - * CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; - */ - CS_AUTHOR_PUSH_TRAFFIC_ZERO(203), - /** - * CS_HORSE_RACING = 204; - */ - CS_HORSE_RACING(204), - /** - * CS_RACE_LOSE = 205; - */ - CS_RACE_LOSE(205), - /** - * CS_VOIP_SIGNAL = 206; - */ - CS_VOIP_SIGNAL(206), - /** - * SC_ENTER_ROOM_ACK = 300; - */ - SC_ENTER_ROOM_ACK(300), - /** - * SC_AUTHOR_PAUSE = 301; - */ - SC_AUTHOR_PAUSE(301), - /** - * SC_AUTHOR_RESUME = 302; - */ - SC_AUTHOR_RESUME(302), - /** - * SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; - */ - SC_AUTHOR_PUSH_TRAFFIC_ZERO(303), - /** - * SC_AUTHOR_HEARTBEAT_MISS = 304; - */ - SC_AUTHOR_HEARTBEAT_MISS(304), - /** - * SC_PIP_STARTED = 305; - */ - SC_PIP_STARTED(305), - /** - * SC_PIP_ENDED = 306; - */ - SC_PIP_ENDED(306), - /** - * SC_HORSE_RACING_ACK = 307; - */ - SC_HORSE_RACING_ACK(307), - /** - * SC_VOIP_SIGNAL = 308; - */ - SC_VOIP_SIGNAL(308), - /** - * SC_FEED_PUSH = 310; - */ - SC_FEED_PUSH(310), - /** - * SC_ASSISTANT_STATUS = 311; - */ - SC_ASSISTANT_STATUS(311), - /** - * SC_REFRESH_WALLET = 312; - */ - SC_REFRESH_WALLET(312), - /** - * SC_LIVE_CHAT_CALL = 320; - */ - SC_LIVE_CHAT_CALL(320), - /** - * SC_LIVE_CHAT_CALL_ACCEPTED = 321; - */ - SC_LIVE_CHAT_CALL_ACCEPTED(321), - /** - * SC_LIVE_CHAT_CALL_REJECTED = 322; - */ - SC_LIVE_CHAT_CALL_REJECTED(322), - /** - * SC_LIVE_CHAT_READY = 323; - */ - SC_LIVE_CHAT_READY(323), - /** - * SC_LIVE_CHAT_GUEST_END = 324; - */ - SC_LIVE_CHAT_GUEST_END(324), - /** - * SC_LIVE_CHAT_ENDED = 325; - */ - SC_LIVE_CHAT_ENDED(325), - /** - * SC_RENDERING_MAGIC_FACE_DISABLE = 326; - */ - SC_RENDERING_MAGIC_FACE_DISABLE(326), - /** - * SC_RENDERING_MAGIC_FACE_ENABLE = 327; - */ - SC_RENDERING_MAGIC_FACE_ENABLE(327), - /** - * SC_RED_PACK_FEED = 330; - */ - SC_RED_PACK_FEED(330), - /** - * SC_LIVE_WATCHING_LIST = 340; - */ - SC_LIVE_WATCHING_LIST(340), - /** - * SC_LIVE_QUIZ_QUESTION_ASKED = 350; - */ - SC_LIVE_QUIZ_QUESTION_ASKED(350), - /** - * SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; - */ - SC_LIVE_QUIZ_QUESTION_REVIEWED(351), - /** - * SC_LIVE_QUIZ_SYNC = 352; - */ - SC_LIVE_QUIZ_SYNC(352), - /** - * SC_LIVE_QUIZ_ENDED = 353; - */ - SC_LIVE_QUIZ_ENDED(353), - /** - * SC_LIVE_QUIZ_WINNERS = 354; - */ - SC_LIVE_QUIZ_WINNERS(354), - /** - * SC_SUSPECTED_VIOLATION = 355; - */ - SC_SUSPECTED_VIOLATION(355), - /** - * SC_SHOP_OPENED = 360; - */ - SC_SHOP_OPENED(360), - /** - * SC_SHOP_CLOSED = 361; - */ - SC_SHOP_CLOSED(361), - /** - * SC_GUESS_OPENED = 370; - */ - SC_GUESS_OPENED(370), - /** - * SC_GUESS_CLOSED = 371; - */ - SC_GUESS_CLOSED(371), - /** - * SC_PK_INVITATION = 380; - */ - SC_PK_INVITATION(380), - /** - * SC_PK_STATISTIC = 381; - */ - SC_PK_STATISTIC(381), - /** - * SC_RIDDLE_OPENED = 390; - */ - SC_RIDDLE_OPENED(390), - /** - * SC_RIDDLE_CLOESED = 391; - */ - SC_RIDDLE_CLOESED(391), - /** - * SC_RIDE_CHANGED = 412; - */ - SC_RIDE_CHANGED(412), - /** - * SC_BET_CHANGED = 441; - */ - SC_BET_CHANGED(441), - /** - * SC_BET_CLOSED = 442; - */ - SC_BET_CLOSED(442), - /** - * SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; - */ - SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE(645), - /** - * SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; - */ - SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE(758), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * CS_HEARTBEAT = 1; - */ - public static final int CS_HEARTBEAT_VALUE = 1; - /** - * CS_ERROR = 3; - */ - public static final int CS_ERROR_VALUE = 3; - /** - * CS_PING = 4; - */ - public static final int CS_PING_VALUE = 4; - /** - * PS_HOST_INFO = 51; - */ - public static final int PS_HOST_INFO_VALUE = 51; - /** - * SC_HEARTBEAT_ACK = 101; - */ - public static final int SC_HEARTBEAT_ACK_VALUE = 101; - /** - * SC_ECHO = 102; - */ - public static final int SC_ECHO_VALUE = 102; - /** - * SC_ERROR = 103; - */ - public static final int SC_ERROR_VALUE = 103; - /** - * SC_PING_ACK = 104; - */ - public static final int SC_PING_ACK_VALUE = 104; - /** - * SC_INFO = 105; - */ - public static final int SC_INFO_VALUE = 105; - /** - * CS_ENTER_ROOM = 200; - */ - public static final int CS_ENTER_ROOM_VALUE = 200; - /** - * CS_USER_PAUSE = 201; - */ - public static final int CS_USER_PAUSE_VALUE = 201; - /** - * CS_USER_EXIT = 202; - */ - public static final int CS_USER_EXIT_VALUE = 202; - /** - * CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; - */ - public static final int CS_AUTHOR_PUSH_TRAFFIC_ZERO_VALUE = 203; - /** - * CS_HORSE_RACING = 204; - */ - public static final int CS_HORSE_RACING_VALUE = 204; - /** - * CS_RACE_LOSE = 205; - */ - public static final int CS_RACE_LOSE_VALUE = 205; - /** - * CS_VOIP_SIGNAL = 206; - */ - public static final int CS_VOIP_SIGNAL_VALUE = 206; - /** - * SC_ENTER_ROOM_ACK = 300; - */ - public static final int SC_ENTER_ROOM_ACK_VALUE = 300; - /** - * SC_AUTHOR_PAUSE = 301; - */ - public static final int SC_AUTHOR_PAUSE_VALUE = 301; - /** - * SC_AUTHOR_RESUME = 302; - */ - public static final int SC_AUTHOR_RESUME_VALUE = 302; - /** - * SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; - */ - public static final int SC_AUTHOR_PUSH_TRAFFIC_ZERO_VALUE = 303; - /** - * SC_AUTHOR_HEARTBEAT_MISS = 304; - */ - public static final int SC_AUTHOR_HEARTBEAT_MISS_VALUE = 304; - /** - * SC_PIP_STARTED = 305; - */ - public static final int SC_PIP_STARTED_VALUE = 305; - /** - * SC_PIP_ENDED = 306; - */ - public static final int SC_PIP_ENDED_VALUE = 306; - /** - * SC_HORSE_RACING_ACK = 307; - */ - public static final int SC_HORSE_RACING_ACK_VALUE = 307; - /** - * SC_VOIP_SIGNAL = 308; - */ - public static final int SC_VOIP_SIGNAL_VALUE = 308; - /** - * SC_FEED_PUSH = 310; - */ - public static final int SC_FEED_PUSH_VALUE = 310; - /** - * SC_ASSISTANT_STATUS = 311; - */ - public static final int SC_ASSISTANT_STATUS_VALUE = 311; - /** - * SC_REFRESH_WALLET = 312; - */ - public static final int SC_REFRESH_WALLET_VALUE = 312; - /** - * SC_LIVE_CHAT_CALL = 320; - */ - public static final int SC_LIVE_CHAT_CALL_VALUE = 320; - /** - * SC_LIVE_CHAT_CALL_ACCEPTED = 321; - */ - public static final int SC_LIVE_CHAT_CALL_ACCEPTED_VALUE = 321; - /** - * SC_LIVE_CHAT_CALL_REJECTED = 322; - */ - public static final int SC_LIVE_CHAT_CALL_REJECTED_VALUE = 322; - /** - * SC_LIVE_CHAT_READY = 323; - */ - public static final int SC_LIVE_CHAT_READY_VALUE = 323; - /** - * SC_LIVE_CHAT_GUEST_END = 324; - */ - public static final int SC_LIVE_CHAT_GUEST_END_VALUE = 324; - /** - * SC_LIVE_CHAT_ENDED = 325; - */ - public static final int SC_LIVE_CHAT_ENDED_VALUE = 325; - /** - * SC_RENDERING_MAGIC_FACE_DISABLE = 326; - */ - public static final int SC_RENDERING_MAGIC_FACE_DISABLE_VALUE = 326; - /** - * SC_RENDERING_MAGIC_FACE_ENABLE = 327; - */ - public static final int SC_RENDERING_MAGIC_FACE_ENABLE_VALUE = 327; - /** - * SC_RED_PACK_FEED = 330; - */ - public static final int SC_RED_PACK_FEED_VALUE = 330; - /** - * SC_LIVE_WATCHING_LIST = 340; - */ - public static final int SC_LIVE_WATCHING_LIST_VALUE = 340; - /** - * SC_LIVE_QUIZ_QUESTION_ASKED = 350; - */ - public static final int SC_LIVE_QUIZ_QUESTION_ASKED_VALUE = 350; - /** - * SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; - */ - public static final int SC_LIVE_QUIZ_QUESTION_REVIEWED_VALUE = 351; - /** - * SC_LIVE_QUIZ_SYNC = 352; - */ - public static final int SC_LIVE_QUIZ_SYNC_VALUE = 352; - /** - * SC_LIVE_QUIZ_ENDED = 353; - */ - public static final int SC_LIVE_QUIZ_ENDED_VALUE = 353; - /** - * SC_LIVE_QUIZ_WINNERS = 354; - */ - public static final int SC_LIVE_QUIZ_WINNERS_VALUE = 354; - /** - * SC_SUSPECTED_VIOLATION = 355; - */ - public static final int SC_SUSPECTED_VIOLATION_VALUE = 355; - /** - * SC_SHOP_OPENED = 360; - */ - public static final int SC_SHOP_OPENED_VALUE = 360; - /** - * SC_SHOP_CLOSED = 361; - */ - public static final int SC_SHOP_CLOSED_VALUE = 361; - /** - * SC_GUESS_OPENED = 370; - */ - public static final int SC_GUESS_OPENED_VALUE = 370; - /** - * SC_GUESS_CLOSED = 371; - */ - public static final int SC_GUESS_CLOSED_VALUE = 371; - /** - * SC_PK_INVITATION = 380; - */ - public static final int SC_PK_INVITATION_VALUE = 380; - /** - * SC_PK_STATISTIC = 381; - */ - public static final int SC_PK_STATISTIC_VALUE = 381; - /** - * SC_RIDDLE_OPENED = 390; - */ - public static final int SC_RIDDLE_OPENED_VALUE = 390; - /** - * SC_RIDDLE_CLOESED = 391; - */ - public static final int SC_RIDDLE_CLOESED_VALUE = 391; - /** - * SC_RIDE_CHANGED = 412; - */ - public static final int SC_RIDE_CHANGED_VALUE = 412; - /** - * SC_BET_CHANGED = 441; - */ - public static final int SC_BET_CHANGED_VALUE = 441; - /** - * SC_BET_CLOSED = 442; - */ - public static final int SC_BET_CLOSED_VALUE = 442; - /** - * SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; - */ - public static final int SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE_VALUE = 645; - /** - * SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; - */ - public static final int SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE_VALUE = 758; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static PayloadType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static PayloadType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return CS_HEARTBEAT; - case 3: return CS_ERROR; - case 4: return CS_PING; - case 51: return PS_HOST_INFO; - case 101: return SC_HEARTBEAT_ACK; - case 102: return SC_ECHO; - case 103: return SC_ERROR; - case 104: return SC_PING_ACK; - case 105: return SC_INFO; - case 200: return CS_ENTER_ROOM; - case 201: return CS_USER_PAUSE; - case 202: return CS_USER_EXIT; - case 203: return CS_AUTHOR_PUSH_TRAFFIC_ZERO; - case 204: return CS_HORSE_RACING; - case 205: return CS_RACE_LOSE; - case 206: return CS_VOIP_SIGNAL; - case 300: return SC_ENTER_ROOM_ACK; - case 301: return SC_AUTHOR_PAUSE; - case 302: return SC_AUTHOR_RESUME; - case 303: return SC_AUTHOR_PUSH_TRAFFIC_ZERO; - case 304: return SC_AUTHOR_HEARTBEAT_MISS; - case 305: return SC_PIP_STARTED; - case 306: return SC_PIP_ENDED; - case 307: return SC_HORSE_RACING_ACK; - case 308: return SC_VOIP_SIGNAL; - case 310: return SC_FEED_PUSH; - case 311: return SC_ASSISTANT_STATUS; - case 312: return SC_REFRESH_WALLET; - case 320: return SC_LIVE_CHAT_CALL; - case 321: return SC_LIVE_CHAT_CALL_ACCEPTED; - case 322: return SC_LIVE_CHAT_CALL_REJECTED; - case 323: return SC_LIVE_CHAT_READY; - case 324: return SC_LIVE_CHAT_GUEST_END; - case 325: return SC_LIVE_CHAT_ENDED; - case 326: return SC_RENDERING_MAGIC_FACE_DISABLE; - case 327: return SC_RENDERING_MAGIC_FACE_ENABLE; - case 330: return SC_RED_PACK_FEED; - case 340: return SC_LIVE_WATCHING_LIST; - case 350: return SC_LIVE_QUIZ_QUESTION_ASKED; - case 351: return SC_LIVE_QUIZ_QUESTION_REVIEWED; - case 352: return SC_LIVE_QUIZ_SYNC; - case 353: return SC_LIVE_QUIZ_ENDED; - case 354: return SC_LIVE_QUIZ_WINNERS; - case 355: return SC_SUSPECTED_VIOLATION; - case 360: return SC_SHOP_OPENED; - case 361: return SC_SHOP_CLOSED; - case 370: return SC_GUESS_OPENED; - case 371: return SC_GUESS_CLOSED; - case 380: return SC_PK_INVITATION; - case 381: return SC_PK_STATISTIC; - case 390: return SC_RIDDLE_OPENED; - case 391: return SC_RIDDLE_CLOESED; - case 412: return SC_RIDE_CHANGED; - case 441: return SC_BET_CHANGED; - case 442: return SC_BET_CLOSED; - case 645: return SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE; - case 758: return SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - PayloadType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public PayloadType findValueByNumber(int number) { - return PayloadType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final PayloadType[] VALUES = values(); - - public static PayloadType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private PayloadType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:PayloadType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\021PayloadType.proto*\213\013\n\013PayloadType\022\013\n\007U" + - "NKNOWN\020\000\022\020\n\014CS_HEARTBEAT\020\001\022\014\n\010CS_ERROR\020\003" + - "\022\013\n\007CS_PING\020\004\022\020\n\014PS_HOST_INFO\0203\022\024\n\020SC_HE" + - "ARTBEAT_ACK\020e\022\013\n\007SC_ECHO\020f\022\014\n\010SC_ERROR\020g" + - "\022\017\n\013SC_PING_ACK\020h\022\013\n\007SC_INFO\020i\022\022\n\rCS_ENT" + - "ER_ROOM\020\310\001\022\022\n\rCS_USER_PAUSE\020\311\001\022\021\n\014CS_USE" + - "R_EXIT\020\312\001\022 \n\033CS_AUTHOR_PUSH_TRAFFIC_ZERO" + - "\020\313\001\022\024\n\017CS_HORSE_RACING\020\314\001\022\021\n\014CS_RACE_LOS" + - "E\020\315\001\022\023\n\016CS_VOIP_SIGNAL\020\316\001\022\026\n\021SC_ENTER_RO" + - "OM_ACK\020\254\002\022\024\n\017SC_AUTHOR_PAUSE\020\255\002\022\025\n\020SC_AU" + - "THOR_RESUME\020\256\002\022 \n\033SC_AUTHOR_PUSH_TRAFFIC" + - "_ZERO\020\257\002\022\035\n\030SC_AUTHOR_HEARTBEAT_MISS\020\260\002\022" + - "\023\n\016SC_PIP_STARTED\020\261\002\022\021\n\014SC_PIP_ENDED\020\262\002\022" + - "\030\n\023SC_HORSE_RACING_ACK\020\263\002\022\023\n\016SC_VOIP_SIG" + - "NAL\020\264\002\022\021\n\014SC_FEED_PUSH\020\266\002\022\030\n\023SC_ASSISTAN" + - "T_STATUS\020\267\002\022\026\n\021SC_REFRESH_WALLET\020\270\002\022\026\n\021S" + - "C_LIVE_CHAT_CALL\020\300\002\022\037\n\032SC_LIVE_CHAT_CALL" + - "_ACCEPTED\020\301\002\022\037\n\032SC_LIVE_CHAT_CALL_REJECT" + - "ED\020\302\002\022\027\n\022SC_LIVE_CHAT_READY\020\303\002\022\033\n\026SC_LIV" + - "E_CHAT_GUEST_END\020\304\002\022\027\n\022SC_LIVE_CHAT_ENDE" + - "D\020\305\002\022$\n\037SC_RENDERING_MAGIC_FACE_DISABLE\020" + - "\306\002\022#\n\036SC_RENDERING_MAGIC_FACE_ENABLE\020\307\002\022" + - "\025\n\020SC_RED_PACK_FEED\020\312\002\022\032\n\025SC_LIVE_WATCHI" + - "NG_LIST\020\324\002\022 \n\033SC_LIVE_QUIZ_QUESTION_ASKE" + - "D\020\336\002\022#\n\036SC_LIVE_QUIZ_QUESTION_REVIEWED\020\337" + - "\002\022\026\n\021SC_LIVE_QUIZ_SYNC\020\340\002\022\027\n\022SC_LIVE_QUI" + - "Z_ENDED\020\341\002\022\031\n\024SC_LIVE_QUIZ_WINNERS\020\342\002\022\033\n" + - "\026SC_SUSPECTED_VIOLATION\020\343\002\022\023\n\016SC_SHOP_OP" + - "ENED\020\350\002\022\023\n\016SC_SHOP_CLOSED\020\351\002\022\024\n\017SC_GUESS" + - "_OPENED\020\362\002\022\024\n\017SC_GUESS_CLOSED\020\363\002\022\025\n\020SC_P" + - "K_INVITATION\020\374\002\022\024\n\017SC_PK_STATISTIC\020\375\002\022\025\n" + - "\020SC_RIDDLE_OPENED\020\206\003\022\026\n\021SC_RIDDLE_CLOESE" + - "D\020\207\003\022\024\n\017SC_RIDE_CHANGED\020\234\003\022\023\n\016SC_BET_CHA" + - "NGED\020\271\003\022\022\n\rSC_BET_CLOSED\020\272\003\022)\n$SC_LIVE_S" + - "PECIAL_ACCOUNT_CONFIG_STATE\020\205\005\0221\n,SC_LIV" + - "E_WARNING_MASK_STATUS_CHANGED_AUDIENCE\020\366" + - "\005B6\n4tech.ordinaryroad.live.chat.client." + - "kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java deleted file mode 100644 index 935c3bbe..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java +++ /dev/null @@ -1,1069 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: PicUrl.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class PicUrlOuterClass { - private PicUrlOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface PicUrlOrBuilder extends - // @@protoc_insertion_point(interface_extends:PicUrl) - com.google.protobuf.MessageOrBuilder { - - /** - * string cdn = 1; - * @return The cdn. - */ - java.lang.String getCdn(); - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - com.google.protobuf.ByteString - getCdnBytes(); - - /** - * string url = 2; - * @return The url. - */ - java.lang.String getUrl(); - /** - * string url = 2; - * @return The bytes for url. - */ - com.google.protobuf.ByteString - getUrlBytes(); - - /** - * string urlPattern = 3; - * @return The urlPattern. - */ - java.lang.String getUrlPattern(); - /** - * string urlPattern = 3; - * @return The bytes for urlPattern. - */ - com.google.protobuf.ByteString - getUrlPatternBytes(); - - /** - * string ip = 4; - * @return The ip. - */ - java.lang.String getIp(); - /** - * string ip = 4; - * @return The bytes for ip. - */ - com.google.protobuf.ByteString - getIpBytes(); - } - /** - * Protobuf type {@code PicUrl} - */ - public static final class PicUrl extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:PicUrl) - PicUrlOrBuilder { - private static final long serialVersionUID = 0L; - // Use PicUrl.newBuilder() to construct. - private PicUrl(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private PicUrl() { - cdn_ = ""; - url_ = ""; - urlPattern_ = ""; - ip_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new PicUrl(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder.class); - } - - public static final int CDN_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object cdn_ = ""; - /** - * string cdn = 1; - * @return The cdn. - */ - @java.lang.Override - public java.lang.String getCdn() { - java.lang.Object ref = cdn_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cdn_ = s; - return s; - } - } - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCdnBytes() { - java.lang.Object ref = cdn_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cdn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int URL_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object url_ = ""; - /** - * string url = 2; - * @return The url. - */ - @java.lang.Override - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - url_ = s; - return s; - } - } - /** - * string url = 2; - * @return The bytes for url. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int URLPATTERN_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object urlPattern_ = ""; - /** - * string urlPattern = 3; - * @return The urlPattern. - */ - @java.lang.Override - public java.lang.String getUrlPattern() { - java.lang.Object ref = urlPattern_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - urlPattern_ = s; - return s; - } - } - /** - * string urlPattern = 3; - * @return The bytes for urlPattern. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUrlPatternBytes() { - java.lang.Object ref = urlPattern_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - urlPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int IP_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object ip_ = ""; - /** - * string ip = 4; - * @return The ip. - */ - @java.lang.Override - public java.lang.String getIp() { - java.lang.Object ref = ip_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ip_ = s; - return s; - } - } - /** - * string ip = 4; - * @return The bytes for ip. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIpBytes() { - java.lang.Object ref = ip_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - ip_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cdn_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(urlPattern_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, urlPattern_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, ip_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cdn_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(urlPattern_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, urlPattern_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, ip_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl) obj; - - if (!getCdn() - .equals(other.getCdn())) return false; - if (!getUrl() - .equals(other.getUrl())) return false; - if (!getUrlPattern() - .equals(other.getUrlPattern())) return false; - if (!getIp() - .equals(other.getIp())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CDN_FIELD_NUMBER; - hash = (53 * hash) + getCdn().hashCode(); - hash = (37 * hash) + URL_FIELD_NUMBER; - hash = (53 * hash) + getUrl().hashCode(); - hash = (37 * hash) + URLPATTERN_FIELD_NUMBER; - hash = (53 * hash) + getUrlPattern().hashCode(); - hash = (37 * hash) + IP_FIELD_NUMBER; - hash = (53 * hash) + getIp().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code PicUrl} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:PicUrl) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - cdn_ = ""; - url_ = ""; - urlPattern_ = ""; - ip_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.cdn_ = cdn_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.url_ = url_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.urlPattern_ = urlPattern_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.ip_ = ip_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()) return this; - if (!other.getCdn().isEmpty()) { - cdn_ = other.cdn_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getUrl().isEmpty()) { - url_ = other.url_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (!other.getUrlPattern().isEmpty()) { - urlPattern_ = other.urlPattern_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (!other.getIp().isEmpty()) { - ip_ = other.ip_; - bitField0_ |= 0x00000008; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - cdn_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - url_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - urlPattern_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - ip_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object cdn_ = ""; - /** - * string cdn = 1; - * @return The cdn. - */ - public java.lang.String getCdn() { - java.lang.Object ref = cdn_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - cdn_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string cdn = 1; - * @return The bytes for cdn. - */ - public com.google.protobuf.ByteString - getCdnBytes() { - java.lang.Object ref = cdn_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - cdn_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string cdn = 1; - * @param value The cdn to set. - * @return This builder for chaining. - */ - public Builder setCdn( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - cdn_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string cdn = 1; - * @return This builder for chaining. - */ - public Builder clearCdn() { - cdn_ = getDefaultInstance().getCdn(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string cdn = 1; - * @param value The bytes for cdn to set. - * @return This builder for chaining. - */ - public Builder setCdnBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - cdn_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object url_ = ""; - /** - * string url = 2; - * @return The url. - */ - public java.lang.String getUrl() { - java.lang.Object ref = url_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - url_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string url = 2; - * @return The bytes for url. - */ - public com.google.protobuf.ByteString - getUrlBytes() { - java.lang.Object ref = url_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - url_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string url = 2; - * @param value The url to set. - * @return This builder for chaining. - */ - public Builder setUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - url_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string url = 2; - * @return This builder for chaining. - */ - public Builder clearUrl() { - url_ = getDefaultInstance().getUrl(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string url = 2; - * @param value The bytes for url to set. - * @return This builder for chaining. - */ - public Builder setUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - url_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private java.lang.Object urlPattern_ = ""; - /** - * string urlPattern = 3; - * @return The urlPattern. - */ - public java.lang.String getUrlPattern() { - java.lang.Object ref = urlPattern_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - urlPattern_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string urlPattern = 3; - * @return The bytes for urlPattern. - */ - public com.google.protobuf.ByteString - getUrlPatternBytes() { - java.lang.Object ref = urlPattern_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - urlPattern_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string urlPattern = 3; - * @param value The urlPattern to set. - * @return This builder for chaining. - */ - public Builder setUrlPattern( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - urlPattern_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string urlPattern = 3; - * @return This builder for chaining. - */ - public Builder clearUrlPattern() { - urlPattern_ = getDefaultInstance().getUrlPattern(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string urlPattern = 3; - * @param value The bytes for urlPattern to set. - * @return This builder for chaining. - */ - public Builder setUrlPatternBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - urlPattern_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private java.lang.Object ip_ = ""; - /** - * string ip = 4; - * @return The ip. - */ - public java.lang.String getIp() { - java.lang.Object ref = ip_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ip_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string ip = 4; - * @return The bytes for ip. - */ - public com.google.protobuf.ByteString - getIpBytes() { - java.lang.Object ref = ip_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - ip_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string ip = 4; - * @param value The ip to set. - * @return This builder for chaining. - */ - public Builder setIp( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - ip_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string ip = 4; - * @return This builder for chaining. - */ - public Builder clearIp() { - ip_ = getDefaultInstance().getIp(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string ip = 4; - * @param value The bytes for ip to set. - * @return This builder for chaining. - */ - public Builder setIpBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - ip_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:PicUrl) - } - - // @@protoc_insertion_point(class_scope:PicUrl) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public PicUrl parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_PicUrl_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_PicUrl_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\014PicUrl.proto\"B\n\006PicUrl\022\013\n\003cdn\030\001 \001(\t\022\013\n" + - "\003url\030\002 \001(\t\022\022\n\nurlPattern\030\003 \001(\t\022\n\n\002ip\030\004 \001" + - "(\tB6\n4tech.ordinaryroad.live.chat.client" + - ".kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_PicUrl_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_PicUrl_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_PicUrl_descriptor, - new java.lang.String[] { "Cdn", "Url", "UrlPattern", "Ip", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java deleted file mode 100644 index c39aa9cb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java +++ /dev/null @@ -1,624 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCEcho.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCEchoOuterClass { - private SCEchoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCEchoOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCEcho) - com.google.protobuf.MessageOrBuilder { - - /** - * string content = 1; - * @return The content. - */ - java.lang.String getContent(); - /** - * string content = 1; - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - } - /** - * Protobuf type {@code SCEcho} - */ - public static final class SCEcho extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCEcho) - SCEchoOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCEcho.newBuilder() to construct. - private SCEcho(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCEcho() { - content_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCEcho(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.Builder.class); - } - - public static final int CONTENT_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object content_ = ""; - /** - * string content = 1; - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * string content = 1; - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, content_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, content_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho) obj; - - if (!getContent() - .equals(other.getContent())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCEcho} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCEcho) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEchoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - content_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.content_ = content_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.getDefaultInstance()) return this; - if (!other.getContent().isEmpty()) { - content_ = other.content_; - bitField0_ |= 0x00000001; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - content_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object content_ = ""; - /** - * string content = 1; - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string content = 1; - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string content = 1; - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - content_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string content = 1; - * @return This builder for chaining. - */ - public Builder clearContent() { - content_ = getDefaultInstance().getContent(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string content = 1; - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - content_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCEcho) - } - - // @@protoc_insertion_point(class_scope:SCEcho) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCEcho parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCEcho_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCEcho_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\014SCEcho.proto\"\031\n\006SCEcho\022\017\n\007content\030\001 \001(" + - "\tB6\n4tech.ordinaryroad.live.chat.client." + - "kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCEcho_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCEcho_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCEcho_descriptor, - new java.lang.String[] { "Content", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java deleted file mode 100644 index 4bb004ee..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java +++ /dev/null @@ -1,769 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCError.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCErrorOuterClass { - private SCErrorOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCErrorOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCError) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 code = 1; - * @return The code. - */ - int getCode(); - - /** - * string msg = 2; - * @return The msg. - */ - java.lang.String getMsg(); - /** - * string msg = 2; - * @return The bytes for msg. - */ - com.google.protobuf.ByteString - getMsgBytes(); - - /** - * uint32 subCode = 3; - * @return The subCode. - */ - int getSubCode(); - } - /** - * Protobuf type {@code SCError} - */ - public static final class SCError extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCError) - SCErrorOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCError.newBuilder() to construct. - private SCError(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCError() { - msg_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCError(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.Builder.class); - } - - public static final int CODE_FIELD_NUMBER = 1; - private int code_ = 0; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - public static final int MSG_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - @java.lang.Override - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SUBCODE_FIELD_NUMBER = 3; - private int subCode_ = 0; - /** - * uint32 subCode = 3; - * @return The subCode. - */ - @java.lang.Override - public int getSubCode() { - return subCode_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (code_ != 0) { - output.writeUInt32(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); - } - if (subCode_ != 0) { - output.writeUInt32(3, subCode_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); - } - if (subCode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, subCode_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError) obj; - - if (getCode() - != other.getCode()) return false; - if (!getMsg() - .equals(other.getMsg())) return false; - if (getSubCode() - != other.getSubCode()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (37 * hash) + MSG_FIELD_NUMBER; - hash = (53 * hash) + getMsg().hashCode(); - hash = (37 * hash) + SUBCODE_FIELD_NUMBER; - hash = (53 * hash) + getSubCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCError} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCError) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCErrorOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - code_ = 0; - msg_ = ""; - subCode_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.code_ = code_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.msg_ = msg_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.subCode_ = subCode_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.getDefaultInstance()) return this; - if (other.getCode() != 0) { - setCode(other.getCode()); - } - if (!other.getMsg().isEmpty()) { - msg_ = other.msg_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getSubCode() != 0) { - setSubCode(other.getSubCode()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - code_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - msg_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - subCode_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int code_ ; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * uint32 code = 1; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 code = 1; - * @return This builder for chaining. - */ - public Builder clearCode() { - bitField0_ = (bitField0_ & ~0x00000001); - code_ = 0; - onChanged(); - return this; - } - - private java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msg = 2; - * @param value The msg to set. - * @return This builder for chaining. - */ - public Builder setMsg( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string msg = 2; - * @return This builder for chaining. - */ - public Builder clearMsg() { - msg_ = getDefaultInstance().getMsg(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string msg = 2; - * @param value The bytes for msg to set. - * @return This builder for chaining. - */ - public Builder setMsgBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private int subCode_ ; - /** - * uint32 subCode = 3; - * @return The subCode. - */ - @java.lang.Override - public int getSubCode() { - return subCode_; - } - /** - * uint32 subCode = 3; - * @param value The subCode to set. - * @return This builder for chaining. - */ - public Builder setSubCode(int value) { - - subCode_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint32 subCode = 3; - * @return This builder for chaining. - */ - public Builder clearSubCode() { - bitField0_ = (bitField0_ & ~0x00000004); - subCode_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCError) - } - - // @@protoc_insertion_point(class_scope:SCError) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCError parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCError_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCError_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\rSCError.proto\"5\n\007SCError\022\014\n\004code\030\001 \001(\r" + - "\022\013\n\003msg\030\002 \001(\t\022\017\n\007subCode\030\003 \001(\rB6\n4tech.o" + - "rdinaryroad.live.chat.client.kuaishou.pr" + - "otobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCError_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCError_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCError_descriptor, - new java.lang.String[] { "Code", "Msg", "SubCode", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java deleted file mode 100644 index c2f9a231..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java +++ /dev/null @@ -1,623 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCHeartbeatAck.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCHeartbeatAckOuterClass { - private SCHeartbeatAckOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCHeartbeatAckOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCHeartbeatAck) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - long getTimestamp(); - - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - long getClientTimestamp(); - } - /** - * Protobuf type {@code SCHeartbeatAck} - */ - public static final class SCHeartbeatAck extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCHeartbeatAck) - SCHeartbeatAckOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCHeartbeatAck.newBuilder() to construct. - private SCHeartbeatAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCHeartbeatAck() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCHeartbeatAck(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.Builder.class); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private long timestamp_ = 0L; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - - public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 2; - private long clientTimestamp_ = 0L; - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != 0L) { - output.writeUInt64(1, timestamp_); - } - if (clientTimestamp_ != 0L) { - output.writeUInt64(2, clientTimestamp_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, timestamp_); - } - if (clientTimestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, clientTimestamp_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck) obj; - - if (getTimestamp() - != other.getTimestamp()) return false; - if (getClientTimestamp() - != other.getClientTimestamp()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestamp()); - hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getClientTimestamp()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCHeartbeatAck} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCHeartbeatAck) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAckOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - timestamp_ = 0L; - clientTimestamp_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.timestamp_ = timestamp_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.clientTimestamp_ = clientTimestamp_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.getDefaultInstance()) return this; - if (other.getTimestamp() != 0L) { - setTimestamp(other.getTimestamp()); - } - if (other.getClientTimestamp() != 0L) { - setClientTimestamp(other.getClientTimestamp()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - timestamp_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - clientTimestamp_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long timestamp_ ; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - /** - * uint64 timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(long value) { - - timestamp_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 timestamp = 1; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - onChanged(); - return this; - } - - private long clientTimestamp_ ; - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - /** - * uint64 clientTimestamp = 2; - * @param value The clientTimestamp to set. - * @return This builder for chaining. - */ - public Builder setClientTimestamp(long value) { - - clientTimestamp_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 clientTimestamp = 2; - * @return This builder for chaining. - */ - public Builder clearClientTimestamp() { - bitField0_ = (bitField0_ & ~0x00000002); - clientTimestamp_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCHeartbeatAck) - } - - // @@protoc_insertion_point(class_scope:SCHeartbeatAck) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCHeartbeatAck parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCHeartbeatAck_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCHeartbeatAck_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024SCHeartbeatAck.proto\"<\n\016SCHeartbeatAck" + - "\022\021\n\ttimestamp\030\001 \001(\004\022\027\n\017clientTimestamp\030\002" + - " \001(\004B6\n4tech.ordinaryroad.live.chat.clie" + - "nt.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCHeartbeatAck_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCHeartbeatAck_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCHeartbeatAck_descriptor, - new java.lang.String[] { "Timestamp", "ClientTimestamp", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java deleted file mode 100644 index 8191432a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java +++ /dev/null @@ -1,696 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCInfoOuterClass { - private SCInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 code = 1; - * @return The code. - */ - int getCode(); - - /** - * string msg = 2; - * @return The msg. - */ - java.lang.String getMsg(); - /** - * string msg = 2; - * @return The bytes for msg. - */ - com.google.protobuf.ByteString - getMsgBytes(); - } - /** - * Protobuf type {@code SCInfo} - */ - public static final class SCInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCInfo) - SCInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCInfo.newBuilder() to construct. - private SCInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCInfo() { - msg_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.Builder.class); - } - - public static final int CODE_FIELD_NUMBER = 1; - private int code_ = 0; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - public static final int MSG_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - @java.lang.Override - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (code_ != 0) { - output.writeUInt32(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo) obj; - - if (getCode() - != other.getCode()) return false; - if (!getMsg() - .equals(other.getMsg())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (37 * hash) + MSG_FIELD_NUMBER; - hash = (53 * hash) + getMsg().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - code_ = 0; - msg_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.code_ = code_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.msg_ = msg_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.getDefaultInstance()) return this; - if (other.getCode() != 0) { - setCode(other.getCode()); - } - if (!other.getMsg().isEmpty()) { - msg_ = other.msg_; - bitField0_ |= 0x00000002; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - code_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - msg_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int code_ ; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * uint32 code = 1; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 code = 1; - * @return This builder for chaining. - */ - public Builder clearCode() { - bitField0_ = (bitField0_ & ~0x00000001); - code_ = 0; - onChanged(); - return this; - } - - private java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msg = 2; - * @param value The msg to set. - * @return This builder for chaining. - */ - public Builder setMsg( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string msg = 2; - * @return This builder for chaining. - */ - public Builder clearMsg() { - msg_ = getDefaultInstance().getMsg(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string msg = 2; - * @param value The bytes for msg to set. - * @return This builder for chaining. - */ - public Builder setMsgBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCInfo) - } - - // @@protoc_insertion_point(class_scope:SCInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\014SCInfo.proto\"#\n\006SCInfo\022\014\n\004code\030\001 \001(\r\022\013" + - "\n\003msg\030\002 \001(\tB6\n4tech.ordinaryroad.live.ch" + - "at.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCInfo_descriptor, - new java.lang.String[] { "Code", "Msg", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java deleted file mode 100644 index 507aad29..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java +++ /dev/null @@ -1,750 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCLiveWarningMaskStatusChangedAudience.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCLiveWarningMaskStatusChangedAudienceOuterClass { - private SCLiveWarningMaskStatusChangedAudienceOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCLiveWarningMaskStatusChangedAudienceOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCLiveWarningMaskStatusChangedAudience) - com.google.protobuf.MessageOrBuilder { - - /** - * bool displayMask = 1; - * @return The displayMask. - */ - boolean getDisplayMask(); - - /** - * .AuditAudienceMask warningMask = 2; - * @return Whether the warningMask field is set. - */ - boolean hasWarningMask(); - /** - * .AuditAudienceMask warningMask = 2; - * @return The warningMask. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask(); - /** - * .AuditAudienceMask warningMask = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder(); - } - /** - * Protobuf type {@code SCLiveWarningMaskStatusChangedAudience} - */ - public static final class SCLiveWarningMaskStatusChangedAudience extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCLiveWarningMaskStatusChangedAudience) - SCLiveWarningMaskStatusChangedAudienceOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCLiveWarningMaskStatusChangedAudience.newBuilder() to construct. - private SCLiveWarningMaskStatusChangedAudience(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCLiveWarningMaskStatusChangedAudience() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCLiveWarningMaskStatusChangedAudience(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.Builder.class); - } - - public static final int DISPLAYMASK_FIELD_NUMBER = 1; - private boolean displayMask_ = false; - /** - * bool displayMask = 1; - * @return The displayMask. - */ - @java.lang.Override - public boolean getDisplayMask() { - return displayMask_; - } - - public static final int WARNINGMASK_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask warningMask_; - /** - * .AuditAudienceMask warningMask = 2; - * @return Whether the warningMask field is set. - */ - @java.lang.Override - public boolean hasWarningMask() { - return warningMask_ != null; - } - /** - * .AuditAudienceMask warningMask = 2; - * @return The warningMask. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask() { - return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; - } - /** - * .AuditAudienceMask warningMask = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder() { - return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (displayMask_ != false) { - output.writeBool(1, displayMask_); - } - if (warningMask_ != null) { - output.writeMessage(2, getWarningMask()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (displayMask_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, displayMask_); - } - if (warningMask_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getWarningMask()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience) obj; - - if (getDisplayMask() - != other.getDisplayMask()) return false; - if (hasWarningMask() != other.hasWarningMask()) return false; - if (hasWarningMask()) { - if (!getWarningMask() - .equals(other.getWarningMask())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + DISPLAYMASK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getDisplayMask()); - if (hasWarningMask()) { - hash = (37 * hash) + WARNINGMASK_FIELD_NUMBER; - hash = (53 * hash) + getWarningMask().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCLiveWarningMaskStatusChangedAudience} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCLiveWarningMaskStatusChangedAudience) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudienceOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - displayMask_ = false; - warningMask_ = null; - if (warningMaskBuilder_ != null) { - warningMaskBuilder_.dispose(); - warningMaskBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.displayMask_ = displayMask_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.warningMask_ = warningMaskBuilder_ == null - ? warningMask_ - : warningMaskBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.getDefaultInstance()) return this; - if (other.getDisplayMask() != false) { - setDisplayMask(other.getDisplayMask()); - } - if (other.hasWarningMask()) { - mergeWarningMask(other.getWarningMask()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - displayMask_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - input.readMessage( - getWarningMaskFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private boolean displayMask_ ; - /** - * bool displayMask = 1; - * @return The displayMask. - */ - @java.lang.Override - public boolean getDisplayMask() { - return displayMask_; - } - /** - * bool displayMask = 1; - * @param value The displayMask to set. - * @return This builder for chaining. - */ - public Builder setDisplayMask(boolean value) { - - displayMask_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool displayMask = 1; - * @return This builder for chaining. - */ - public Builder clearDisplayMask() { - bitField0_ = (bitField0_ & ~0x00000001); - displayMask_ = false; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask warningMask_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder> warningMaskBuilder_; - /** - * .AuditAudienceMask warningMask = 2; - * @return Whether the warningMask field is set. - */ - public boolean hasWarningMask() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .AuditAudienceMask warningMask = 2; - * @return The warningMask. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask() { - if (warningMaskBuilder_ == null) { - return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; - } else { - return warningMaskBuilder_.getMessage(); - } - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public Builder setWarningMask(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask value) { - if (warningMaskBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - warningMask_ = value; - } else { - warningMaskBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public Builder setWarningMask( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder builderForValue) { - if (warningMaskBuilder_ == null) { - warningMask_ = builderForValue.build(); - } else { - warningMaskBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public Builder mergeWarningMask(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask value) { - if (warningMaskBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - warningMask_ != null && - warningMask_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance()) { - getWarningMaskBuilder().mergeFrom(value); - } else { - warningMask_ = value; - } - } else { - warningMaskBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public Builder clearWarningMask() { - bitField0_ = (bitField0_ & ~0x00000002); - warningMask_ = null; - if (warningMaskBuilder_ != null) { - warningMaskBuilder_.dispose(); - warningMaskBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder getWarningMaskBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getWarningMaskFieldBuilder().getBuilder(); - } - /** - * .AuditAudienceMask warningMask = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder() { - if (warningMaskBuilder_ != null) { - return warningMaskBuilder_.getMessageOrBuilder(); - } else { - return warningMask_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; - } - } - /** - * .AuditAudienceMask warningMask = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder> - getWarningMaskFieldBuilder() { - if (warningMaskBuilder_ == null) { - warningMaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder>( - getWarningMask(), - getParentForChildren(), - isClean()); - warningMask_ = null; - } - return warningMaskBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCLiveWarningMaskStatusChangedAudience) - } - - // @@protoc_insertion_point(class_scope:SCLiveWarningMaskStatusChangedAudience) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCLiveWarningMaskStatusChangedAudience parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n,SCLiveWarningMaskStatusChangedAudience" + - ".proto\032\027AuditAudienceMask.proto\"f\n&SCLiv" + - "eWarningMaskStatusChangedAudience\022\023\n\013dis" + - "playMask\030\001 \001(\010\022\'\n\013warningMask\030\002 \001(\0132\022.Au" + - "ditAudienceMaskB6\n4tech.ordinaryroad.liv" + - "e.chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.getDescriptor(), - }); - internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor, - new java.lang.String[] { "DisplayMask", "WarningMask", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java deleted file mode 100644 index 68e4df33..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java +++ /dev/null @@ -1,624 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCPingAck.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCPingAckOuterClass { - private SCPingAckOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCPingAckOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCPingAck) - com.google.protobuf.MessageOrBuilder { - - /** - * string echoData = 1; - * @return The echoData. - */ - java.lang.String getEchoData(); - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - com.google.protobuf.ByteString - getEchoDataBytes(); - } - /** - * Protobuf type {@code SCPingAck} - */ - public static final class SCPingAck extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCPingAck) - SCPingAckOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCPingAck.newBuilder() to construct. - private SCPingAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCPingAck() { - echoData_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCPingAck(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.Builder.class); - } - - public static final int ECHODATA_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object echoData_ = ""; - /** - * string echoData = 1; - * @return The echoData. - */ - @java.lang.Override - public java.lang.String getEchoData() { - java.lang.Object ref = echoData_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - echoData_ = s; - return s; - } - } - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getEchoDataBytes() { - java.lang.Object ref = echoData_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - echoData_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, echoData_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, echoData_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck) obj; - - if (!getEchoData() - .equals(other.getEchoData())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ECHODATA_FIELD_NUMBER; - hash = (53 * hash) + getEchoData().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCPingAck} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCPingAck) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAckOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - echoData_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.echoData_ = echoData_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.getDefaultInstance()) return this; - if (!other.getEchoData().isEmpty()) { - echoData_ = other.echoData_; - bitField0_ |= 0x00000001; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - echoData_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object echoData_ = ""; - /** - * string echoData = 1; - * @return The echoData. - */ - public java.lang.String getEchoData() { - java.lang.Object ref = echoData_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - echoData_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string echoData = 1; - * @return The bytes for echoData. - */ - public com.google.protobuf.ByteString - getEchoDataBytes() { - java.lang.Object ref = echoData_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - echoData_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string echoData = 1; - * @param value The echoData to set. - * @return This builder for chaining. - */ - public Builder setEchoData( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - echoData_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string echoData = 1; - * @return This builder for chaining. - */ - public Builder clearEchoData() { - echoData_ = getDefaultInstance().getEchoData(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string echoData = 1; - * @param value The bytes for echoData to set. - * @return This builder for chaining. - */ - public Builder setEchoDataBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - echoData_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCPingAck) - } - - // @@protoc_insertion_point(class_scope:SCPingAck) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCPingAck parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCPingAck_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCPingAck_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\017SCPingAck.proto\"\035\n\tSCPingAck\022\020\n\010echoDa" + - "ta\030\001 \001(\tB6\n4tech.ordinaryroad.live.chat." + - "client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCPingAck_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCPingAck_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCPingAck_descriptor, - new java.lang.String[] { "EchoData", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java deleted file mode 100644 index c2e6f94f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java +++ /dev/null @@ -1,658 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebAuthorPause.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebAuthorPauseOuterClass { - private SCWebAuthorPauseOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebAuthorPauseOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebAuthorPause) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - * .WebPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - int getPauseTypeValue(); - /** - * .WebPauseType pauseType = 2; - * @return The pauseType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType(); - } - /** - * Protobuf type {@code SCWebAuthorPause} - */ - public static final class SCWebAuthorPause extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebAuthorPause) - SCWebAuthorPauseOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebAuthorPause.newBuilder() to construct. - private SCWebAuthorPause(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebAuthorPause() { - pauseType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebAuthorPause(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int PAUSETYPE_FIELD_NUMBER = 2; - private int pauseType_ = 0; - /** - * .WebPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - @java.lang.Override public int getPauseTypeValue() { - return pauseType_; - } - /** - * .WebPauseType pauseType = 2; - * @return The pauseType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.forNumber(pauseType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNRECOGNIZED : result; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNKNOWN_PAUSE_TYPE.getNumber()) { - output.writeEnum(2, pauseType_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNKNOWN_PAUSE_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, pauseType_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause) obj; - - if (getTime() - != other.getTime()) return false; - if (pauseType_ != other.pauseType_) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + PAUSETYPE_FIELD_NUMBER; - hash = (53 * hash) + pauseType_; - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebAuthorPause} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebAuthorPause) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPauseOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - pauseType_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.pauseType_ = pauseType_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (other.pauseType_ != 0) { - setPauseTypeValue(other.getPauseTypeValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - pauseType_ = input.readEnum(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - - private int pauseType_ = 0; - /** - * .WebPauseType pauseType = 2; - * @return The enum numeric value on the wire for pauseType. - */ - @java.lang.Override public int getPauseTypeValue() { - return pauseType_; - } - /** - * .WebPauseType pauseType = 2; - * @param value The enum numeric value on the wire for pauseType to set. - * @return This builder for chaining. - */ - public Builder setPauseTypeValue(int value) { - pauseType_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .WebPauseType pauseType = 2; - * @return The pauseType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.forNumber(pauseType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNRECOGNIZED : result; - } - /** - * .WebPauseType pauseType = 2; - * @param value The pauseType to set. - * @return This builder for chaining. - */ - public Builder setPauseType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - pauseType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebPauseType pauseType = 2; - * @return This builder for chaining. - */ - public Builder clearPauseType() { - bitField0_ = (bitField0_ & ~0x00000002); - pauseType_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebAuthorPause) - } - - // @@protoc_insertion_point(class_scope:SCWebAuthorPause) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebAuthorPause parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebAuthorPause_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebAuthorPause_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026SCWebAuthorPause.proto\032\022WebPauseType.p" + - "roto\"B\n\020SCWebAuthorPause\022\014\n\004time\030\001 \001(\004\022 " + - "\n\tpauseType\030\002 \001(\0162\r.WebPauseTypeB6\n4tech" + - ".ordinaryroad.live.chat.client.kuaishou." + - "protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor(), - }); - internal_static_SCWebAuthorPause_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebAuthorPause_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebAuthorPause_descriptor, - new java.lang.String[] { "Time", "PauseType", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java deleted file mode 100644 index 77e3c124..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebAuthorResume.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebAuthorResumeOuterClass { - private SCWebAuthorResumeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebAuthorResumeOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebAuthorResume) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - } - /** - * Protobuf type {@code SCWebAuthorResume} - */ - public static final class SCWebAuthorResume extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebAuthorResume) - SCWebAuthorResumeOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebAuthorResume.newBuilder() to construct. - private SCWebAuthorResume(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebAuthorResume() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebAuthorResume(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume) obj; - - if (getTime() - != other.getTime()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebAuthorResume} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebAuthorResume) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResumeOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebAuthorResume) - } - - // @@protoc_insertion_point(class_scope:SCWebAuthorResume) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebAuthorResume parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebAuthorResume_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebAuthorResume_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\027SCWebAuthorResume.proto\"!\n\021SCWebAuthor" + - "Resume\022\014\n\004time\030\001 \001(\004B6\n4tech.ordinaryroa" + - "d.live.chat.client.kuaishou.protobufb\006pr" + - "oto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebAuthorResume_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebAuthorResume_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebAuthorResume_descriptor, - new java.lang.String[] { "Time", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java deleted file mode 100644 index 2aa5e587..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebBetChanged.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebBetChangedOuterClass { - private SCWebBetChangedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebBetChangedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebBetChanged) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - long getMaxDelayMillis(); - } - /** - * Protobuf type {@code SCWebBetChanged} - */ - public static final class SCWebBetChanged extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebBetChanged) - SCWebBetChangedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebBetChanged.newBuilder() to construct. - private SCWebBetChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebBetChanged() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebBetChanged(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.Builder.class); - } - - public static final int MAXDELAYMILLIS_FIELD_NUMBER = 1; - private long maxDelayMillis_ = 0L; - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - @java.lang.Override - public long getMaxDelayMillis() { - return maxDelayMillis_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (maxDelayMillis_ != 0L) { - output.writeUInt64(1, maxDelayMillis_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (maxDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, maxDelayMillis_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged) obj; - - if (getMaxDelayMillis() - != other.getMaxDelayMillis()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + MAXDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMaxDelayMillis()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebBetChanged} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebBetChanged) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChangedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - maxDelayMillis_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.maxDelayMillis_ = maxDelayMillis_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.getDefaultInstance()) return this; - if (other.getMaxDelayMillis() != 0L) { - setMaxDelayMillis(other.getMaxDelayMillis()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - maxDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long maxDelayMillis_ ; - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - @java.lang.Override - public long getMaxDelayMillis() { - return maxDelayMillis_; - } - /** - * uint64 maxDelayMillis = 1; - * @param value The maxDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setMaxDelayMillis(long value) { - - maxDelayMillis_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 maxDelayMillis = 1; - * @return This builder for chaining. - */ - public Builder clearMaxDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000001); - maxDelayMillis_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebBetChanged) - } - - // @@protoc_insertion_point(class_scope:SCWebBetChanged) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebBetChanged parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebBetChanged_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebBetChanged_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\025SCWebBetChanged.proto\")\n\017SCWebBetChang" + - "ed\022\026\n\016maxDelayMillis\030\001 \001(\004B6\n4tech.ordin" + - "aryroad.live.chat.client.kuaishou.protob" + - "ufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebBetChanged_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebBetChanged_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebBetChanged_descriptor, - new java.lang.String[] { "MaxDelayMillis", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java deleted file mode 100644 index 5fa5356c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebBetClosed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebBetClosedOuterClass { - private SCWebBetClosedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebBetClosedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebBetClosed) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - long getMaxDelayMillis(); - } - /** - * Protobuf type {@code SCWebBetClosed} - */ - public static final class SCWebBetClosed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebBetClosed) - SCWebBetClosedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebBetClosed.newBuilder() to construct. - private SCWebBetClosed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebBetClosed() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebBetClosed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.Builder.class); - } - - public static final int MAXDELAYMILLIS_FIELD_NUMBER = 1; - private long maxDelayMillis_ = 0L; - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - @java.lang.Override - public long getMaxDelayMillis() { - return maxDelayMillis_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (maxDelayMillis_ != 0L) { - output.writeUInt64(1, maxDelayMillis_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (maxDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, maxDelayMillis_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed) obj; - - if (getMaxDelayMillis() - != other.getMaxDelayMillis()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + MAXDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMaxDelayMillis()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebBetClosed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebBetClosed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - maxDelayMillis_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.maxDelayMillis_ = maxDelayMillis_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.getDefaultInstance()) return this; - if (other.getMaxDelayMillis() != 0L) { - setMaxDelayMillis(other.getMaxDelayMillis()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - maxDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long maxDelayMillis_ ; - /** - * uint64 maxDelayMillis = 1; - * @return The maxDelayMillis. - */ - @java.lang.Override - public long getMaxDelayMillis() { - return maxDelayMillis_; - } - /** - * uint64 maxDelayMillis = 1; - * @param value The maxDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setMaxDelayMillis(long value) { - - maxDelayMillis_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 maxDelayMillis = 1; - * @return This builder for chaining. - */ - public Builder clearMaxDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000001); - maxDelayMillis_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebBetClosed) - } - - // @@protoc_insertion_point(class_scope:SCWebBetClosed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebBetClosed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebBetClosed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebBetClosed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024SCWebBetClosed.proto\"(\n\016SCWebBetClosed" + - "\022\026\n\016maxDelayMillis\030\001 \001(\004B6\n4tech.ordinar" + - "yroad.live.chat.client.kuaishou.protobuf" + - "b\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebBetClosed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebBetClosed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebBetClosed_descriptor, - new java.lang.String[] { "MaxDelayMillis", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java deleted file mode 100644 index fc3d24a5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java +++ /dev/null @@ -1,858 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebCurrentRedPackFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebCurrentRedPackFeedOuterClass { - private SCWebCurrentRedPackFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebCurrentRedPackFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebCurrentRedPackFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .WebRedPackInfo redPack = 1; - */ - java.util.List - getRedPackList(); - /** - * repeated .WebRedPackInfo redPack = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index); - /** - * repeated .WebRedPackInfo redPack = 1; - */ - int getRedPackCount(); - /** - * repeated .WebRedPackInfo redPack = 1; - */ - java.util.List - getRedPackOrBuilderList(); - /** - * repeated .WebRedPackInfo redPack = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( - int index); - } - /** - * Protobuf type {@code SCWebCurrentRedPackFeed} - */ - public static final class SCWebCurrentRedPackFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebCurrentRedPackFeed) - SCWebCurrentRedPackFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebCurrentRedPackFeed.newBuilder() to construct. - private SCWebCurrentRedPackFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebCurrentRedPackFeed() { - redPack_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebCurrentRedPackFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.Builder.class); - } - - public static final int REDPACK_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List redPack_; - /** - * repeated .WebRedPackInfo redPack = 1; - */ - @java.lang.Override - public java.util.List getRedPackList() { - return redPack_; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - @java.lang.Override - public java.util.List - getRedPackOrBuilderList() { - return redPack_; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - @java.lang.Override - public int getRedPackCount() { - return redPack_.size(); - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index) { - return redPack_.get(index); - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( - int index) { - return redPack_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < redPack_.size(); i++) { - output.writeMessage(1, redPack_.get(i)); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < redPack_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, redPack_.get(i)); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed) obj; - - if (!getRedPackList() - .equals(other.getRedPackList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getRedPackCount() > 0) { - hash = (37 * hash) + REDPACK_FIELD_NUMBER; - hash = (53 * hash) + getRedPackList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebCurrentRedPackFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebCurrentRedPackFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (redPackBuilder_ == null) { - redPack_ = java.util.Collections.emptyList(); - } else { - redPack_ = null; - redPackBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result) { - if (redPackBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - redPack_ = java.util.Collections.unmodifiableList(redPack_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.redPack_ = redPack_; - } else { - result.redPack_ = redPackBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result) { - int from_bitField0_ = bitField0_; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.getDefaultInstance()) return this; - if (redPackBuilder_ == null) { - if (!other.redPack_.isEmpty()) { - if (redPack_.isEmpty()) { - redPack_ = other.redPack_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureRedPackIsMutable(); - redPack_.addAll(other.redPack_); - } - onChanged(); - } - } else { - if (!other.redPack_.isEmpty()) { - if (redPackBuilder_.isEmpty()) { - redPackBuilder_.dispose(); - redPackBuilder_ = null; - redPack_ = other.redPack_; - bitField0_ = (bitField0_ & ~0x00000001); - redPackBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getRedPackFieldBuilder() : null; - } else { - redPackBuilder_.addAllMessages(other.redPack_); - } - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.parser(), - extensionRegistry); - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - redPack_.add(m); - } else { - redPackBuilder_.addMessage(m); - } - break; - } // case 10 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List redPack_ = - java.util.Collections.emptyList(); - private void ensureRedPackIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - redPack_ = new java.util.ArrayList(redPack_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder> redPackBuilder_; - - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public java.util.List getRedPackList() { - if (redPackBuilder_ == null) { - return java.util.Collections.unmodifiableList(redPack_); - } else { - return redPackBuilder_.getMessageList(); - } - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public int getRedPackCount() { - if (redPackBuilder_ == null) { - return redPack_.size(); - } else { - return redPackBuilder_.getCount(); - } - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index) { - if (redPackBuilder_ == null) { - return redPack_.get(index); - } else { - return redPackBuilder_.getMessage(index); - } - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder setRedPack( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { - if (redPackBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRedPackIsMutable(); - redPack_.set(index, value); - onChanged(); - } else { - redPackBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder setRedPack( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - redPack_.set(index, builderForValue.build()); - onChanged(); - } else { - redPackBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder addRedPack(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { - if (redPackBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRedPackIsMutable(); - redPack_.add(value); - onChanged(); - } else { - redPackBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder addRedPack( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { - if (redPackBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureRedPackIsMutable(); - redPack_.add(index, value); - onChanged(); - } else { - redPackBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder addRedPack( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - redPack_.add(builderForValue.build()); - onChanged(); - } else { - redPackBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder addRedPack( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - redPack_.add(index, builderForValue.build()); - onChanged(); - } else { - redPackBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder addAllRedPack( - java.lang.Iterable values) { - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, redPack_); - onChanged(); - } else { - redPackBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder clearRedPack() { - if (redPackBuilder_ == null) { - redPack_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - redPackBuilder_.clear(); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public Builder removeRedPack(int index) { - if (redPackBuilder_ == null) { - ensureRedPackIsMutable(); - redPack_.remove(index); - onChanged(); - } else { - redPackBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder getRedPackBuilder( - int index) { - return getRedPackFieldBuilder().getBuilder(index); - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( - int index) { - if (redPackBuilder_ == null) { - return redPack_.get(index); } else { - return redPackBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public java.util.List - getRedPackOrBuilderList() { - if (redPackBuilder_ != null) { - return redPackBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(redPack_); - } - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder addRedPackBuilder() { - return getRedPackFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()); - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder addRedPackBuilder( - int index) { - return getRedPackFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()); - } - /** - * repeated .WebRedPackInfo redPack = 1; - */ - public java.util.List - getRedPackBuilderList() { - return getRedPackFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder> - getRedPackFieldBuilder() { - if (redPackBuilder_ == null) { - redPackBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder>( - redPack_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - redPack_ = null; - } - return redPackBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebCurrentRedPackFeed) - } - - // @@protoc_insertion_point(class_scope:SCWebCurrentRedPackFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebCurrentRedPackFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebCurrentRedPackFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\035SCWebCurrentRedPackFeed.proto\032\024WebRedP" + - "ackInfo.proto\";\n\027SCWebCurrentRedPackFeed" + - "\022 \n\007redPack\030\001 \003(\0132\017.WebRedPackInfoB6\n4te" + - "ch.ordinaryroad.live.chat.client.kuaisho" + - "u.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.getDescriptor(), - }); - internal_static_SCWebCurrentRedPackFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebCurrentRedPackFeed_descriptor, - new java.lang.String[] { "RedPack", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java deleted file mode 100644 index bc9092d2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java +++ /dev/null @@ -1,697 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebEnterRoomAck.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebEnterRoomAckOuterClass { - private SCWebEnterRoomAckOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebEnterRoomAckOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebEnterRoomAck) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 minReconnectMs = 1; - * @return The minReconnectMs. - */ - long getMinReconnectMs(); - - /** - * uint64 maxReconnectMs = 2; - * @return The maxReconnectMs. - */ - long getMaxReconnectMs(); - - /** - * uint64 heartbeatIntervalMs = 3; - * @return The heartbeatIntervalMs. - */ - long getHeartbeatIntervalMs(); - } - /** - * Protobuf type {@code SCWebEnterRoomAck} - */ - public static final class SCWebEnterRoomAck extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebEnterRoomAck) - SCWebEnterRoomAckOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebEnterRoomAck.newBuilder() to construct. - private SCWebEnterRoomAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebEnterRoomAck() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebEnterRoomAck(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.Builder.class); - } - - public static final int MINRECONNECTMS_FIELD_NUMBER = 1; - private long minReconnectMs_ = 0L; - /** - * uint64 minReconnectMs = 1; - * @return The minReconnectMs. - */ - @java.lang.Override - public long getMinReconnectMs() { - return minReconnectMs_; - } - - public static final int MAXRECONNECTMS_FIELD_NUMBER = 2; - private long maxReconnectMs_ = 0L; - /** - * uint64 maxReconnectMs = 2; - * @return The maxReconnectMs. - */ - @java.lang.Override - public long getMaxReconnectMs() { - return maxReconnectMs_; - } - - public static final int HEARTBEATINTERVALMS_FIELD_NUMBER = 3; - private long heartbeatIntervalMs_ = 0L; - /** - * uint64 heartbeatIntervalMs = 3; - * @return The heartbeatIntervalMs. - */ - @java.lang.Override - public long getHeartbeatIntervalMs() { - return heartbeatIntervalMs_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (minReconnectMs_ != 0L) { - output.writeUInt64(1, minReconnectMs_); - } - if (maxReconnectMs_ != 0L) { - output.writeUInt64(2, maxReconnectMs_); - } - if (heartbeatIntervalMs_ != 0L) { - output.writeUInt64(3, heartbeatIntervalMs_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (minReconnectMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, minReconnectMs_); - } - if (maxReconnectMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, maxReconnectMs_); - } - if (heartbeatIntervalMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, heartbeatIntervalMs_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck) obj; - - if (getMinReconnectMs() - != other.getMinReconnectMs()) return false; - if (getMaxReconnectMs() - != other.getMaxReconnectMs()) return false; - if (getHeartbeatIntervalMs() - != other.getHeartbeatIntervalMs()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + MINRECONNECTMS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMinReconnectMs()); - hash = (37 * hash) + MAXRECONNECTMS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMaxReconnectMs()); - hash = (37 * hash) + HEARTBEATINTERVALMS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getHeartbeatIntervalMs()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebEnterRoomAck} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebEnterRoomAck) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAckOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - minReconnectMs_ = 0L; - maxReconnectMs_ = 0L; - heartbeatIntervalMs_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.minReconnectMs_ = minReconnectMs_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.maxReconnectMs_ = maxReconnectMs_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.heartbeatIntervalMs_ = heartbeatIntervalMs_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.getDefaultInstance()) return this; - if (other.getMinReconnectMs() != 0L) { - setMinReconnectMs(other.getMinReconnectMs()); - } - if (other.getMaxReconnectMs() != 0L) { - setMaxReconnectMs(other.getMaxReconnectMs()); - } - if (other.getHeartbeatIntervalMs() != 0L) { - setHeartbeatIntervalMs(other.getHeartbeatIntervalMs()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - minReconnectMs_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - maxReconnectMs_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - heartbeatIntervalMs_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long minReconnectMs_ ; - /** - * uint64 minReconnectMs = 1; - * @return The minReconnectMs. - */ - @java.lang.Override - public long getMinReconnectMs() { - return minReconnectMs_; - } - /** - * uint64 minReconnectMs = 1; - * @param value The minReconnectMs to set. - * @return This builder for chaining. - */ - public Builder setMinReconnectMs(long value) { - - minReconnectMs_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 minReconnectMs = 1; - * @return This builder for chaining. - */ - public Builder clearMinReconnectMs() { - bitField0_ = (bitField0_ & ~0x00000001); - minReconnectMs_ = 0L; - onChanged(); - return this; - } - - private long maxReconnectMs_ ; - /** - * uint64 maxReconnectMs = 2; - * @return The maxReconnectMs. - */ - @java.lang.Override - public long getMaxReconnectMs() { - return maxReconnectMs_; - } - /** - * uint64 maxReconnectMs = 2; - * @param value The maxReconnectMs to set. - * @return This builder for chaining. - */ - public Builder setMaxReconnectMs(long value) { - - maxReconnectMs_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 maxReconnectMs = 2; - * @return This builder for chaining. - */ - public Builder clearMaxReconnectMs() { - bitField0_ = (bitField0_ & ~0x00000002); - maxReconnectMs_ = 0L; - onChanged(); - return this; - } - - private long heartbeatIntervalMs_ ; - /** - * uint64 heartbeatIntervalMs = 3; - * @return The heartbeatIntervalMs. - */ - @java.lang.Override - public long getHeartbeatIntervalMs() { - return heartbeatIntervalMs_; - } - /** - * uint64 heartbeatIntervalMs = 3; - * @param value The heartbeatIntervalMs to set. - * @return This builder for chaining. - */ - public Builder setHeartbeatIntervalMs(long value) { - - heartbeatIntervalMs_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 heartbeatIntervalMs = 3; - * @return This builder for chaining. - */ - public Builder clearHeartbeatIntervalMs() { - bitField0_ = (bitField0_ & ~0x00000004); - heartbeatIntervalMs_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebEnterRoomAck) - } - - // @@protoc_insertion_point(class_scope:SCWebEnterRoomAck) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebEnterRoomAck parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebEnterRoomAck_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebEnterRoomAck_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\027SCWebEnterRoomAck.proto\"`\n\021SCWebEnterR" + - "oomAck\022\026\n\016minReconnectMs\030\001 \001(\004\022\026\n\016maxRec" + - "onnectMs\030\002 \001(\004\022\033\n\023heartbeatIntervalMs\030\003 " + - "\001(\004B6\n4tech.ordinaryroad.live.chat.clien" + - "t.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebEnterRoomAck_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebEnterRoomAck_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebEnterRoomAck_descriptor, - new java.lang.String[] { "MinReconnectMs", "MaxReconnectMs", "HeartbeatIntervalMs", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java deleted file mode 100644 index e033d815..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java +++ /dev/null @@ -1,769 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebError.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebErrorOuterClass { - private SCWebErrorOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebErrorOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebError) - com.google.protobuf.MessageOrBuilder { - - /** - * uint32 code = 1; - * @return The code. - */ - int getCode(); - - /** - * string msg = 2; - * @return The msg. - */ - java.lang.String getMsg(); - /** - * string msg = 2; - * @return The bytes for msg. - */ - com.google.protobuf.ByteString - getMsgBytes(); - - /** - * uint32 subCode = 3; - * @return The subCode. - */ - int getSubCode(); - } - /** - * Protobuf type {@code SCWebError} - */ - public static final class SCWebError extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebError) - SCWebErrorOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebError.newBuilder() to construct. - private SCWebError(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebError() { - msg_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebError(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.Builder.class); - } - - public static final int CODE_FIELD_NUMBER = 1; - private int code_ = 0; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - public static final int MSG_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - @java.lang.Override - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SUBCODE_FIELD_NUMBER = 3; - private int subCode_ = 0; - /** - * uint32 subCode = 3; - * @return The subCode. - */ - @java.lang.Override - public int getSubCode() { - return subCode_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (code_ != 0) { - output.writeUInt32(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); - } - if (subCode_ != 0) { - output.writeUInt32(3, subCode_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(1, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); - } - if (subCode_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, subCode_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError) obj; - - if (getCode() - != other.getCode()) return false; - if (!getMsg() - .equals(other.getMsg())) return false; - if (getSubCode() - != other.getSubCode()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (37 * hash) + MSG_FIELD_NUMBER; - hash = (53 * hash) + getMsg().hashCode(); - hash = (37 * hash) + SUBCODE_FIELD_NUMBER; - hash = (53 * hash) + getSubCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebError} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebError) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebErrorOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - code_ = 0; - msg_ = ""; - subCode_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.code_ = code_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.msg_ = msg_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.subCode_ = subCode_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.getDefaultInstance()) return this; - if (other.getCode() != 0) { - setCode(other.getCode()); - } - if (!other.getMsg().isEmpty()) { - msg_ = other.msg_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getSubCode() != 0) { - setSubCode(other.getSubCode()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - code_ = input.readUInt32(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - msg_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - subCode_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int code_ ; - /** - * uint32 code = 1; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * uint32 code = 1; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint32 code = 1; - * @return This builder for chaining. - */ - public Builder clearCode() { - bitField0_ = (bitField0_ & ~0x00000001); - code_ = 0; - onChanged(); - return this; - } - - private java.lang.Object msg_ = ""; - /** - * string msg = 2; - * @return The msg. - */ - public java.lang.String getMsg() { - java.lang.Object ref = msg_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - msg_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string msg = 2; - * @return The bytes for msg. - */ - public com.google.protobuf.ByteString - getMsgBytes() { - java.lang.Object ref = msg_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - msg_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string msg = 2; - * @param value The msg to set. - * @return This builder for chaining. - */ - public Builder setMsg( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string msg = 2; - * @return This builder for chaining. - */ - public Builder clearMsg() { - msg_ = getDefaultInstance().getMsg(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string msg = 2; - * @param value The bytes for msg to set. - * @return This builder for chaining. - */ - public Builder setMsgBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - msg_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private int subCode_ ; - /** - * uint32 subCode = 3; - * @return The subCode. - */ - @java.lang.Override - public int getSubCode() { - return subCode_; - } - /** - * uint32 subCode = 3; - * @param value The subCode to set. - * @return This builder for chaining. - */ - public Builder setSubCode(int value) { - - subCode_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint32 subCode = 3; - * @return This builder for chaining. - */ - public Builder clearSubCode() { - bitField0_ = (bitField0_ & ~0x00000004); - subCode_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebError) - } - - // @@protoc_insertion_point(class_scope:SCWebError) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebError parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebError_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebError_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\020SCWebError.proto\"8\n\nSCWebError\022\014\n\004code" + - "\030\001 \001(\r\022\013\n\003msg\030\002 \001(\t\022\017\n\007subCode\030\003 \001(\rB6\n4" + - "tech.ordinaryroad.live.chat.client.kuais" + - "hou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebError_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebError_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebError_descriptor, - new java.lang.String[] { "Code", "Msg", "SubCode", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java deleted file mode 100644 index ab940c61..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java +++ /dev/null @@ -1,3487 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebFeedPush.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebFeedPushOuterClass { - private SCWebFeedPushOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebFeedPushOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebFeedPush) - com.google.protobuf.MessageOrBuilder { - - /** - * string displayWatchingCount = 1; - * @return The displayWatchingCount. - */ - java.lang.String getDisplayWatchingCount(); - /** - * string displayWatchingCount = 1; - * @return The bytes for displayWatchingCount. - */ - com.google.protobuf.ByteString - getDisplayWatchingCountBytes(); - - /** - * string displayLikeCount = 2; - * @return The displayLikeCount. - */ - java.lang.String getDisplayLikeCount(); - /** - * string displayLikeCount = 2; - * @return The bytes for displayLikeCount. - */ - com.google.protobuf.ByteString - getDisplayLikeCountBytes(); - - /** - * uint64 pendingLikeCount = 3; - * @return The pendingLikeCount. - */ - long getPendingLikeCount(); - - /** - * uint64 pushInterval = 4; - * @return The pushInterval. - */ - long getPushInterval(); - - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - java.util.List - getCommentFeedsList(); - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index); - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - int getCommentFeedsCount(); - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - java.util.List - getCommentFeedsOrBuilderList(); - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( - int index); - - /** - * string commentCursor = 6; - * @return The commentCursor. - */ - java.lang.String getCommentCursor(); - /** - * string commentCursor = 6; - * @return The bytes for commentCursor. - */ - com.google.protobuf.ByteString - getCommentCursorBytes(); - - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - java.util.List - getComboCommentFeedList(); - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index); - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - int getComboCommentFeedCount(); - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - java.util.List - getComboCommentFeedOrBuilderList(); - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( - int index); - - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - java.util.List - getLikeFeedsList(); - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index); - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - int getLikeFeedsCount(); - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - java.util.List - getLikeFeedsOrBuilderList(); - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( - int index); - - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - java.util.List - getGiftFeedsList(); - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index); - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - int getGiftFeedsCount(); - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - java.util.List - getGiftFeedsOrBuilderList(); - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( - int index); - - /** - * string giftCursor = 10; - * @return The giftCursor. - */ - java.lang.String getGiftCursor(); - /** - * string giftCursor = 10; - * @return The bytes for giftCursor. - */ - com.google.protobuf.ByteString - getGiftCursorBytes(); - - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - java.util.List - getSystemNoticeFeedsList(); - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index); - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - int getSystemNoticeFeedsCount(); - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - java.util.List - getSystemNoticeFeedsOrBuilderList(); - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( - int index); - - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - java.util.List - getShareFeedsList(); - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index); - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - int getShareFeedsCount(); - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - java.util.List - getShareFeedsOrBuilderList(); - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( - int index); - } - /** - * Protobuf type {@code SCWebFeedPush} - */ - public static final class SCWebFeedPush extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebFeedPush) - SCWebFeedPushOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebFeedPush.newBuilder() to construct. - private SCWebFeedPush(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebFeedPush() { - displayWatchingCount_ = ""; - displayLikeCount_ = ""; - commentFeeds_ = java.util.Collections.emptyList(); - commentCursor_ = ""; - comboCommentFeed_ = java.util.Collections.emptyList(); - likeFeeds_ = java.util.Collections.emptyList(); - giftFeeds_ = java.util.Collections.emptyList(); - giftCursor_ = ""; - systemNoticeFeeds_ = java.util.Collections.emptyList(); - shareFeeds_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebFeedPush(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.Builder.class); - } - - public static final int DISPLAYWATCHINGCOUNT_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object displayWatchingCount_ = ""; - /** - * string displayWatchingCount = 1; - * @return The displayWatchingCount. - */ - @java.lang.Override - public java.lang.String getDisplayWatchingCount() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayWatchingCount_ = s; - return s; - } - } - /** - * string displayWatchingCount = 1; - * @return The bytes for displayWatchingCount. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayWatchingCountBytes() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayWatchingCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DISPLAYLIKECOUNT_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object displayLikeCount_ = ""; - /** - * string displayLikeCount = 2; - * @return The displayLikeCount. - */ - @java.lang.Override - public java.lang.String getDisplayLikeCount() { - java.lang.Object ref = displayLikeCount_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayLikeCount_ = s; - return s; - } - } - /** - * string displayLikeCount = 2; - * @return The bytes for displayLikeCount. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayLikeCountBytes() { - java.lang.Object ref = displayLikeCount_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayLikeCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PENDINGLIKECOUNT_FIELD_NUMBER = 3; - private long pendingLikeCount_ = 0L; - /** - * uint64 pendingLikeCount = 3; - * @return The pendingLikeCount. - */ - @java.lang.Override - public long getPendingLikeCount() { - return pendingLikeCount_; - } - - public static final int PUSHINTERVAL_FIELD_NUMBER = 4; - private long pushInterval_ = 0L; - /** - * uint64 pushInterval = 4; - * @return The pushInterval. - */ - @java.lang.Override - public long getPushInterval() { - return pushInterval_; - } - - public static final int COMMENTFEEDS_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private java.util.List commentFeeds_; - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - @java.lang.Override - public java.util.List getCommentFeedsList() { - return commentFeeds_; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - @java.lang.Override - public java.util.List - getCommentFeedsOrBuilderList() { - return commentFeeds_; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - @java.lang.Override - public int getCommentFeedsCount() { - return commentFeeds_.size(); - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index) { - return commentFeeds_.get(index); - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( - int index) { - return commentFeeds_.get(index); - } - - public static final int COMMENTCURSOR_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object commentCursor_ = ""; - /** - * string commentCursor = 6; - * @return The commentCursor. - */ - @java.lang.Override - public java.lang.String getCommentCursor() { - java.lang.Object ref = commentCursor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - commentCursor_ = s; - return s; - } - } - /** - * string commentCursor = 6; - * @return The bytes for commentCursor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCommentCursorBytes() { - java.lang.Object ref = commentCursor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - commentCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int COMBOCOMMENTFEED_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private java.util.List comboCommentFeed_; - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - @java.lang.Override - public java.util.List getComboCommentFeedList() { - return comboCommentFeed_; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - @java.lang.Override - public java.util.List - getComboCommentFeedOrBuilderList() { - return comboCommentFeed_; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - @java.lang.Override - public int getComboCommentFeedCount() { - return comboCommentFeed_.size(); - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index) { - return comboCommentFeed_.get(index); - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( - int index) { - return comboCommentFeed_.get(index); - } - - public static final int LIKEFEEDS_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private java.util.List likeFeeds_; - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - @java.lang.Override - public java.util.List getLikeFeedsList() { - return likeFeeds_; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - @java.lang.Override - public java.util.List - getLikeFeedsOrBuilderList() { - return likeFeeds_; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - @java.lang.Override - public int getLikeFeedsCount() { - return likeFeeds_.size(); - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index) { - return likeFeeds_.get(index); - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( - int index) { - return likeFeeds_.get(index); - } - - public static final int GIFTFEEDS_FIELD_NUMBER = 9; - @SuppressWarnings("serial") - private java.util.List giftFeeds_; - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - @java.lang.Override - public java.util.List getGiftFeedsList() { - return giftFeeds_; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - @java.lang.Override - public java.util.List - getGiftFeedsOrBuilderList() { - return giftFeeds_; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - @java.lang.Override - public int getGiftFeedsCount() { - return giftFeeds_.size(); - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index) { - return giftFeeds_.get(index); - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( - int index) { - return giftFeeds_.get(index); - } - - public static final int GIFTCURSOR_FIELD_NUMBER = 10; - @SuppressWarnings("serial") - private volatile java.lang.Object giftCursor_ = ""; - /** - * string giftCursor = 10; - * @return The giftCursor. - */ - @java.lang.Override - public java.lang.String getGiftCursor() { - java.lang.Object ref = giftCursor_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - giftCursor_ = s; - return s; - } - } - /** - * string giftCursor = 10; - * @return The bytes for giftCursor. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGiftCursorBytes() { - java.lang.Object ref = giftCursor_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - giftCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SYSTEMNOTICEFEEDS_FIELD_NUMBER = 11; - @SuppressWarnings("serial") - private java.util.List systemNoticeFeeds_; - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - @java.lang.Override - public java.util.List getSystemNoticeFeedsList() { - return systemNoticeFeeds_; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - @java.lang.Override - public java.util.List - getSystemNoticeFeedsOrBuilderList() { - return systemNoticeFeeds_; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - @java.lang.Override - public int getSystemNoticeFeedsCount() { - return systemNoticeFeeds_.size(); - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index) { - return systemNoticeFeeds_.get(index); - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( - int index) { - return systemNoticeFeeds_.get(index); - } - - public static final int SHAREFEEDS_FIELD_NUMBER = 12; - @SuppressWarnings("serial") - private java.util.List shareFeeds_; - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - @java.lang.Override - public java.util.List getShareFeedsList() { - return shareFeeds_; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - @java.lang.Override - public java.util.List - getShareFeedsOrBuilderList() { - return shareFeeds_; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - @java.lang.Override - public int getShareFeedsCount() { - return shareFeeds_.size(); - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index) { - return shareFeeds_.get(index); - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( - int index) { - return shareFeeds_.get(index); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, displayWatchingCount_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayLikeCount_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, displayLikeCount_); - } - if (pendingLikeCount_ != 0L) { - output.writeUInt64(3, pendingLikeCount_); - } - if (pushInterval_ != 0L) { - output.writeUInt64(4, pushInterval_); - } - for (int i = 0; i < commentFeeds_.size(); i++) { - output.writeMessage(5, commentFeeds_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(commentCursor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, commentCursor_); - } - for (int i = 0; i < comboCommentFeed_.size(); i++) { - output.writeMessage(7, comboCommentFeed_.get(i)); - } - for (int i = 0; i < likeFeeds_.size(); i++) { - output.writeMessage(8, likeFeeds_.get(i)); - } - for (int i = 0; i < giftFeeds_.size(); i++) { - output.writeMessage(9, giftFeeds_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(giftCursor_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 10, giftCursor_); - } - for (int i = 0; i < systemNoticeFeeds_.size(); i++) { - output.writeMessage(11, systemNoticeFeeds_.get(i)); - } - for (int i = 0; i < shareFeeds_.size(); i++) { - output.writeMessage(12, shareFeeds_.get(i)); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, displayWatchingCount_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayLikeCount_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, displayLikeCount_); - } - if (pendingLikeCount_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, pendingLikeCount_); - } - if (pushInterval_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, pushInterval_); - } - for (int i = 0; i < commentFeeds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, commentFeeds_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(commentCursor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, commentCursor_); - } - for (int i = 0; i < comboCommentFeed_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, comboCommentFeed_.get(i)); - } - for (int i = 0; i < likeFeeds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, likeFeeds_.get(i)); - } - for (int i = 0; i < giftFeeds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, giftFeeds_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(giftCursor_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, giftCursor_); - } - for (int i = 0; i < systemNoticeFeeds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(11, systemNoticeFeeds_.get(i)); - } - for (int i = 0; i < shareFeeds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(12, shareFeeds_.get(i)); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush) obj; - - if (!getDisplayWatchingCount() - .equals(other.getDisplayWatchingCount())) return false; - if (!getDisplayLikeCount() - .equals(other.getDisplayLikeCount())) return false; - if (getPendingLikeCount() - != other.getPendingLikeCount()) return false; - if (getPushInterval() - != other.getPushInterval()) return false; - if (!getCommentFeedsList() - .equals(other.getCommentFeedsList())) return false; - if (!getCommentCursor() - .equals(other.getCommentCursor())) return false; - if (!getComboCommentFeedList() - .equals(other.getComboCommentFeedList())) return false; - if (!getLikeFeedsList() - .equals(other.getLikeFeedsList())) return false; - if (!getGiftFeedsList() - .equals(other.getGiftFeedsList())) return false; - if (!getGiftCursor() - .equals(other.getGiftCursor())) return false; - if (!getSystemNoticeFeedsList() - .equals(other.getSystemNoticeFeedsList())) return false; - if (!getShareFeedsList() - .equals(other.getShareFeedsList())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + DISPLAYWATCHINGCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getDisplayWatchingCount().hashCode(); - hash = (37 * hash) + DISPLAYLIKECOUNT_FIELD_NUMBER; - hash = (53 * hash) + getDisplayLikeCount().hashCode(); - hash = (37 * hash) + PENDINGLIKECOUNT_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPendingLikeCount()); - hash = (37 * hash) + PUSHINTERVAL_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPushInterval()); - if (getCommentFeedsCount() > 0) { - hash = (37 * hash) + COMMENTFEEDS_FIELD_NUMBER; - hash = (53 * hash) + getCommentFeedsList().hashCode(); - } - hash = (37 * hash) + COMMENTCURSOR_FIELD_NUMBER; - hash = (53 * hash) + getCommentCursor().hashCode(); - if (getComboCommentFeedCount() > 0) { - hash = (37 * hash) + COMBOCOMMENTFEED_FIELD_NUMBER; - hash = (53 * hash) + getComboCommentFeedList().hashCode(); - } - if (getLikeFeedsCount() > 0) { - hash = (37 * hash) + LIKEFEEDS_FIELD_NUMBER; - hash = (53 * hash) + getLikeFeedsList().hashCode(); - } - if (getGiftFeedsCount() > 0) { - hash = (37 * hash) + GIFTFEEDS_FIELD_NUMBER; - hash = (53 * hash) + getGiftFeedsList().hashCode(); - } - hash = (37 * hash) + GIFTCURSOR_FIELD_NUMBER; - hash = (53 * hash) + getGiftCursor().hashCode(); - if (getSystemNoticeFeedsCount() > 0) { - hash = (37 * hash) + SYSTEMNOTICEFEEDS_FIELD_NUMBER; - hash = (53 * hash) + getSystemNoticeFeedsList().hashCode(); - } - if (getShareFeedsCount() > 0) { - hash = (37 * hash) + SHAREFEEDS_FIELD_NUMBER; - hash = (53 * hash) + getShareFeedsList().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebFeedPush} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebFeedPush) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPushOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - displayWatchingCount_ = ""; - displayLikeCount_ = ""; - pendingLikeCount_ = 0L; - pushInterval_ = 0L; - if (commentFeedsBuilder_ == null) { - commentFeeds_ = java.util.Collections.emptyList(); - } else { - commentFeeds_ = null; - commentFeedsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - commentCursor_ = ""; - if (comboCommentFeedBuilder_ == null) { - comboCommentFeed_ = java.util.Collections.emptyList(); - } else { - comboCommentFeed_ = null; - comboCommentFeedBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000040); - if (likeFeedsBuilder_ == null) { - likeFeeds_ = java.util.Collections.emptyList(); - } else { - likeFeeds_ = null; - likeFeedsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - if (giftFeedsBuilder_ == null) { - giftFeeds_ = java.util.Collections.emptyList(); - } else { - giftFeeds_ = null; - giftFeedsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000100); - giftCursor_ = ""; - if (systemNoticeFeedsBuilder_ == null) { - systemNoticeFeeds_ = java.util.Collections.emptyList(); - } else { - systemNoticeFeeds_ = null; - systemNoticeFeedsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000400); - if (shareFeedsBuilder_ == null) { - shareFeeds_ = java.util.Collections.emptyList(); - } else { - shareFeeds_ = null; - shareFeedsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000800); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result) { - if (commentFeedsBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0)) { - commentFeeds_ = java.util.Collections.unmodifiableList(commentFeeds_); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.commentFeeds_ = commentFeeds_; - } else { - result.commentFeeds_ = commentFeedsBuilder_.build(); - } - if (comboCommentFeedBuilder_ == null) { - if (((bitField0_ & 0x00000040) != 0)) { - comboCommentFeed_ = java.util.Collections.unmodifiableList(comboCommentFeed_); - bitField0_ = (bitField0_ & ~0x00000040); - } - result.comboCommentFeed_ = comboCommentFeed_; - } else { - result.comboCommentFeed_ = comboCommentFeedBuilder_.build(); - } - if (likeFeedsBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0)) { - likeFeeds_ = java.util.Collections.unmodifiableList(likeFeeds_); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.likeFeeds_ = likeFeeds_; - } else { - result.likeFeeds_ = likeFeedsBuilder_.build(); - } - if (giftFeedsBuilder_ == null) { - if (((bitField0_ & 0x00000100) != 0)) { - giftFeeds_ = java.util.Collections.unmodifiableList(giftFeeds_); - bitField0_ = (bitField0_ & ~0x00000100); - } - result.giftFeeds_ = giftFeeds_; - } else { - result.giftFeeds_ = giftFeedsBuilder_.build(); - } - if (systemNoticeFeedsBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0)) { - systemNoticeFeeds_ = java.util.Collections.unmodifiableList(systemNoticeFeeds_); - bitField0_ = (bitField0_ & ~0x00000400); - } - result.systemNoticeFeeds_ = systemNoticeFeeds_; - } else { - result.systemNoticeFeeds_ = systemNoticeFeedsBuilder_.build(); - } - if (shareFeedsBuilder_ == null) { - if (((bitField0_ & 0x00000800) != 0)) { - shareFeeds_ = java.util.Collections.unmodifiableList(shareFeeds_); - bitField0_ = (bitField0_ & ~0x00000800); - } - result.shareFeeds_ = shareFeeds_; - } else { - result.shareFeeds_ = shareFeedsBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.displayWatchingCount_ = displayWatchingCount_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.displayLikeCount_ = displayLikeCount_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.pendingLikeCount_ = pendingLikeCount_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.pushInterval_ = pushInterval_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.commentCursor_ = commentCursor_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.giftCursor_ = giftCursor_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.getDefaultInstance()) return this; - if (!other.getDisplayWatchingCount().isEmpty()) { - displayWatchingCount_ = other.displayWatchingCount_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getDisplayLikeCount().isEmpty()) { - displayLikeCount_ = other.displayLikeCount_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getPendingLikeCount() != 0L) { - setPendingLikeCount(other.getPendingLikeCount()); - } - if (other.getPushInterval() != 0L) { - setPushInterval(other.getPushInterval()); - } - if (commentFeedsBuilder_ == null) { - if (!other.commentFeeds_.isEmpty()) { - if (commentFeeds_.isEmpty()) { - commentFeeds_ = other.commentFeeds_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureCommentFeedsIsMutable(); - commentFeeds_.addAll(other.commentFeeds_); - } - onChanged(); - } - } else { - if (!other.commentFeeds_.isEmpty()) { - if (commentFeedsBuilder_.isEmpty()) { - commentFeedsBuilder_.dispose(); - commentFeedsBuilder_ = null; - commentFeeds_ = other.commentFeeds_; - bitField0_ = (bitField0_ & ~0x00000010); - commentFeedsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getCommentFeedsFieldBuilder() : null; - } else { - commentFeedsBuilder_.addAllMessages(other.commentFeeds_); - } - } - } - if (!other.getCommentCursor().isEmpty()) { - commentCursor_ = other.commentCursor_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (comboCommentFeedBuilder_ == null) { - if (!other.comboCommentFeed_.isEmpty()) { - if (comboCommentFeed_.isEmpty()) { - comboCommentFeed_ = other.comboCommentFeed_; - bitField0_ = (bitField0_ & ~0x00000040); - } else { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.addAll(other.comboCommentFeed_); - } - onChanged(); - } - } else { - if (!other.comboCommentFeed_.isEmpty()) { - if (comboCommentFeedBuilder_.isEmpty()) { - comboCommentFeedBuilder_.dispose(); - comboCommentFeedBuilder_ = null; - comboCommentFeed_ = other.comboCommentFeed_; - bitField0_ = (bitField0_ & ~0x00000040); - comboCommentFeedBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getComboCommentFeedFieldBuilder() : null; - } else { - comboCommentFeedBuilder_.addAllMessages(other.comboCommentFeed_); - } - } - } - if (likeFeedsBuilder_ == null) { - if (!other.likeFeeds_.isEmpty()) { - if (likeFeeds_.isEmpty()) { - likeFeeds_ = other.likeFeeds_; - bitField0_ = (bitField0_ & ~0x00000080); - } else { - ensureLikeFeedsIsMutable(); - likeFeeds_.addAll(other.likeFeeds_); - } - onChanged(); - } - } else { - if (!other.likeFeeds_.isEmpty()) { - if (likeFeedsBuilder_.isEmpty()) { - likeFeedsBuilder_.dispose(); - likeFeedsBuilder_ = null; - likeFeeds_ = other.likeFeeds_; - bitField0_ = (bitField0_ & ~0x00000080); - likeFeedsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getLikeFeedsFieldBuilder() : null; - } else { - likeFeedsBuilder_.addAllMessages(other.likeFeeds_); - } - } - } - if (giftFeedsBuilder_ == null) { - if (!other.giftFeeds_.isEmpty()) { - if (giftFeeds_.isEmpty()) { - giftFeeds_ = other.giftFeeds_; - bitField0_ = (bitField0_ & ~0x00000100); - } else { - ensureGiftFeedsIsMutable(); - giftFeeds_.addAll(other.giftFeeds_); - } - onChanged(); - } - } else { - if (!other.giftFeeds_.isEmpty()) { - if (giftFeedsBuilder_.isEmpty()) { - giftFeedsBuilder_.dispose(); - giftFeedsBuilder_ = null; - giftFeeds_ = other.giftFeeds_; - bitField0_ = (bitField0_ & ~0x00000100); - giftFeedsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getGiftFeedsFieldBuilder() : null; - } else { - giftFeedsBuilder_.addAllMessages(other.giftFeeds_); - } - } - } - if (!other.getGiftCursor().isEmpty()) { - giftCursor_ = other.giftCursor_; - bitField0_ |= 0x00000200; - onChanged(); - } - if (systemNoticeFeedsBuilder_ == null) { - if (!other.systemNoticeFeeds_.isEmpty()) { - if (systemNoticeFeeds_.isEmpty()) { - systemNoticeFeeds_ = other.systemNoticeFeeds_; - bitField0_ = (bitField0_ & ~0x00000400); - } else { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.addAll(other.systemNoticeFeeds_); - } - onChanged(); - } - } else { - if (!other.systemNoticeFeeds_.isEmpty()) { - if (systemNoticeFeedsBuilder_.isEmpty()) { - systemNoticeFeedsBuilder_.dispose(); - systemNoticeFeedsBuilder_ = null; - systemNoticeFeeds_ = other.systemNoticeFeeds_; - bitField0_ = (bitField0_ & ~0x00000400); - systemNoticeFeedsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getSystemNoticeFeedsFieldBuilder() : null; - } else { - systemNoticeFeedsBuilder_.addAllMessages(other.systemNoticeFeeds_); - } - } - } - if (shareFeedsBuilder_ == null) { - if (!other.shareFeeds_.isEmpty()) { - if (shareFeeds_.isEmpty()) { - shareFeeds_ = other.shareFeeds_; - bitField0_ = (bitField0_ & ~0x00000800); - } else { - ensureShareFeedsIsMutable(); - shareFeeds_.addAll(other.shareFeeds_); - } - onChanged(); - } - } else { - if (!other.shareFeeds_.isEmpty()) { - if (shareFeedsBuilder_.isEmpty()) { - shareFeedsBuilder_.dispose(); - shareFeedsBuilder_ = null; - shareFeeds_ = other.shareFeeds_; - bitField0_ = (bitField0_ & ~0x00000800); - shareFeedsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getShareFeedsFieldBuilder() : null; - } else { - shareFeedsBuilder_.addAllMessages(other.shareFeeds_); - } - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - displayWatchingCount_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - displayLikeCount_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - pendingLikeCount_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - pushInterval_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.parser(), - extensionRegistry); - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - commentFeeds_.add(m); - } else { - commentFeedsBuilder_.addMessage(m); - } - break; - } // case 42 - case 50: { - commentCursor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 58: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.parser(), - extensionRegistry); - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.add(m); - } else { - comboCommentFeedBuilder_.addMessage(m); - } - break; - } // case 58 - case 66: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.parser(), - extensionRegistry); - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - likeFeeds_.add(m); - } else { - likeFeedsBuilder_.addMessage(m); - } - break; - } // case 66 - case 74: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.parser(), - extensionRegistry); - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - giftFeeds_.add(m); - } else { - giftFeedsBuilder_.addMessage(m); - } - break; - } // case 74 - case 82: { - giftCursor_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000200; - break; - } // case 82 - case 90: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.parser(), - extensionRegistry); - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.add(m); - } else { - systemNoticeFeedsBuilder_.addMessage(m); - } - break; - } // case 90 - case 98: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.parser(), - extensionRegistry); - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - shareFeeds_.add(m); - } else { - shareFeedsBuilder_.addMessage(m); - } - break; - } // case 98 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object displayWatchingCount_ = ""; - /** - * string displayWatchingCount = 1; - * @return The displayWatchingCount. - */ - public java.lang.String getDisplayWatchingCount() { - java.lang.Object ref = displayWatchingCount_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayWatchingCount_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string displayWatchingCount = 1; - * @return The bytes for displayWatchingCount. - */ - public com.google.protobuf.ByteString - getDisplayWatchingCountBytes() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayWatchingCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string displayWatchingCount = 1; - * @param value The displayWatchingCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayWatchingCount( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - displayWatchingCount_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string displayWatchingCount = 1; - * @return This builder for chaining. - */ - public Builder clearDisplayWatchingCount() { - displayWatchingCount_ = getDefaultInstance().getDisplayWatchingCount(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string displayWatchingCount = 1; - * @param value The bytes for displayWatchingCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayWatchingCountBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - displayWatchingCount_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object displayLikeCount_ = ""; - /** - * string displayLikeCount = 2; - * @return The displayLikeCount. - */ - public java.lang.String getDisplayLikeCount() { - java.lang.Object ref = displayLikeCount_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayLikeCount_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string displayLikeCount = 2; - * @return The bytes for displayLikeCount. - */ - public com.google.protobuf.ByteString - getDisplayLikeCountBytes() { - java.lang.Object ref = displayLikeCount_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayLikeCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string displayLikeCount = 2; - * @param value The displayLikeCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayLikeCount( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - displayLikeCount_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string displayLikeCount = 2; - * @return This builder for chaining. - */ - public Builder clearDisplayLikeCount() { - displayLikeCount_ = getDefaultInstance().getDisplayLikeCount(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string displayLikeCount = 2; - * @param value The bytes for displayLikeCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayLikeCountBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - displayLikeCount_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long pendingLikeCount_ ; - /** - * uint64 pendingLikeCount = 3; - * @return The pendingLikeCount. - */ - @java.lang.Override - public long getPendingLikeCount() { - return pendingLikeCount_; - } - /** - * uint64 pendingLikeCount = 3; - * @param value The pendingLikeCount to set. - * @return This builder for chaining. - */ - public Builder setPendingLikeCount(long value) { - - pendingLikeCount_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 pendingLikeCount = 3; - * @return This builder for chaining. - */ - public Builder clearPendingLikeCount() { - bitField0_ = (bitField0_ & ~0x00000004); - pendingLikeCount_ = 0L; - onChanged(); - return this; - } - - private long pushInterval_ ; - /** - * uint64 pushInterval = 4; - * @return The pushInterval. - */ - @java.lang.Override - public long getPushInterval() { - return pushInterval_; - } - /** - * uint64 pushInterval = 4; - * @param value The pushInterval to set. - * @return This builder for chaining. - */ - public Builder setPushInterval(long value) { - - pushInterval_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 pushInterval = 4; - * @return This builder for chaining. - */ - public Builder clearPushInterval() { - bitField0_ = (bitField0_ & ~0x00000008); - pushInterval_ = 0L; - onChanged(); - return this; - } - - private java.util.List commentFeeds_ = - java.util.Collections.emptyList(); - private void ensureCommentFeedsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { - commentFeeds_ = new java.util.ArrayList(commentFeeds_); - bitField0_ |= 0x00000010; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder> commentFeedsBuilder_; - - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public java.util.List getCommentFeedsList() { - if (commentFeedsBuilder_ == null) { - return java.util.Collections.unmodifiableList(commentFeeds_); - } else { - return commentFeedsBuilder_.getMessageList(); - } - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public int getCommentFeedsCount() { - if (commentFeedsBuilder_ == null) { - return commentFeeds_.size(); - } else { - return commentFeedsBuilder_.getCount(); - } - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index) { - if (commentFeedsBuilder_ == null) { - return commentFeeds_.get(index); - } else { - return commentFeedsBuilder_.getMessage(index); - } - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder setCommentFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { - if (commentFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCommentFeedsIsMutable(); - commentFeeds_.set(index, value); - onChanged(); - } else { - commentFeedsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder setCommentFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - commentFeeds_.set(index, builderForValue.build()); - onChanged(); - } else { - commentFeedsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder addCommentFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { - if (commentFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCommentFeedsIsMutable(); - commentFeeds_.add(value); - onChanged(); - } else { - commentFeedsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder addCommentFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { - if (commentFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureCommentFeedsIsMutable(); - commentFeeds_.add(index, value); - onChanged(); - } else { - commentFeedsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder addCommentFeeds( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - commentFeeds_.add(builderForValue.build()); - onChanged(); - } else { - commentFeedsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder addCommentFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - commentFeeds_.add(index, builderForValue.build()); - onChanged(); - } else { - commentFeedsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder addAllCommentFeeds( - java.lang.Iterable values) { - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, commentFeeds_); - onChanged(); - } else { - commentFeedsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder clearCommentFeeds() { - if (commentFeedsBuilder_ == null) { - commentFeeds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - } else { - commentFeedsBuilder_.clear(); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public Builder removeCommentFeeds(int index) { - if (commentFeedsBuilder_ == null) { - ensureCommentFeedsIsMutable(); - commentFeeds_.remove(index); - onChanged(); - } else { - commentFeedsBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder getCommentFeedsBuilder( - int index) { - return getCommentFeedsFieldBuilder().getBuilder(index); - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( - int index) { - if (commentFeedsBuilder_ == null) { - return commentFeeds_.get(index); } else { - return commentFeedsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public java.util.List - getCommentFeedsOrBuilderList() { - if (commentFeedsBuilder_ != null) { - return commentFeedsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(commentFeeds_); - } - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder addCommentFeedsBuilder() { - return getCommentFeedsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()); - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder addCommentFeedsBuilder( - int index) { - return getCommentFeedsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()); - } - /** - * repeated .WebCommentFeed commentFeeds = 5; - */ - public java.util.List - getCommentFeedsBuilderList() { - return getCommentFeedsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder> - getCommentFeedsFieldBuilder() { - if (commentFeedsBuilder_ == null) { - commentFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder>( - commentFeeds_, - ((bitField0_ & 0x00000010) != 0), - getParentForChildren(), - isClean()); - commentFeeds_ = null; - } - return commentFeedsBuilder_; - } - - private java.lang.Object commentCursor_ = ""; - /** - * string commentCursor = 6; - * @return The commentCursor. - */ - public java.lang.String getCommentCursor() { - java.lang.Object ref = commentCursor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - commentCursor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string commentCursor = 6; - * @return The bytes for commentCursor. - */ - public com.google.protobuf.ByteString - getCommentCursorBytes() { - java.lang.Object ref = commentCursor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - commentCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string commentCursor = 6; - * @param value The commentCursor to set. - * @return This builder for chaining. - */ - public Builder setCommentCursor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - commentCursor_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string commentCursor = 6; - * @return This builder for chaining. - */ - public Builder clearCommentCursor() { - commentCursor_ = getDefaultInstance().getCommentCursor(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string commentCursor = 6; - * @param value The bytes for commentCursor to set. - * @return This builder for chaining. - */ - public Builder setCommentCursorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - commentCursor_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private java.util.List comboCommentFeed_ = - java.util.Collections.emptyList(); - private void ensureComboCommentFeedIsMutable() { - if (!((bitField0_ & 0x00000040) != 0)) { - comboCommentFeed_ = new java.util.ArrayList(comboCommentFeed_); - bitField0_ |= 0x00000040; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder> comboCommentFeedBuilder_; - - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public java.util.List getComboCommentFeedList() { - if (comboCommentFeedBuilder_ == null) { - return java.util.Collections.unmodifiableList(comboCommentFeed_); - } else { - return comboCommentFeedBuilder_.getMessageList(); - } - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public int getComboCommentFeedCount() { - if (comboCommentFeedBuilder_ == null) { - return comboCommentFeed_.size(); - } else { - return comboCommentFeedBuilder_.getCount(); - } - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index) { - if (comboCommentFeedBuilder_ == null) { - return comboCommentFeed_.get(index); - } else { - return comboCommentFeedBuilder_.getMessage(index); - } - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder setComboCommentFeed( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { - if (comboCommentFeedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.set(index, value); - onChanged(); - } else { - comboCommentFeedBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder setComboCommentFeed( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.set(index, builderForValue.build()); - onChanged(); - } else { - comboCommentFeedBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder addComboCommentFeed(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { - if (comboCommentFeedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.add(value); - onChanged(); - } else { - comboCommentFeedBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder addComboCommentFeed( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { - if (comboCommentFeedBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.add(index, value); - onChanged(); - } else { - comboCommentFeedBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder addComboCommentFeed( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.add(builderForValue.build()); - onChanged(); - } else { - comboCommentFeedBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder addComboCommentFeed( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.add(index, builderForValue.build()); - onChanged(); - } else { - comboCommentFeedBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder addAllComboCommentFeed( - java.lang.Iterable values) { - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, comboCommentFeed_); - onChanged(); - } else { - comboCommentFeedBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder clearComboCommentFeed() { - if (comboCommentFeedBuilder_ == null) { - comboCommentFeed_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - } else { - comboCommentFeedBuilder_.clear(); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public Builder removeComboCommentFeed(int index) { - if (comboCommentFeedBuilder_ == null) { - ensureComboCommentFeedIsMutable(); - comboCommentFeed_.remove(index); - onChanged(); - } else { - comboCommentFeedBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder getComboCommentFeedBuilder( - int index) { - return getComboCommentFeedFieldBuilder().getBuilder(index); - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( - int index) { - if (comboCommentFeedBuilder_ == null) { - return comboCommentFeed_.get(index); } else { - return comboCommentFeedBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public java.util.List - getComboCommentFeedOrBuilderList() { - if (comboCommentFeedBuilder_ != null) { - return comboCommentFeedBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(comboCommentFeed_); - } - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder addComboCommentFeedBuilder() { - return getComboCommentFeedFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()); - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder addComboCommentFeedBuilder( - int index) { - return getComboCommentFeedFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()); - } - /** - * repeated .WebComboCommentFeed comboCommentFeed = 7; - */ - public java.util.List - getComboCommentFeedBuilderList() { - return getComboCommentFeedFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder> - getComboCommentFeedFieldBuilder() { - if (comboCommentFeedBuilder_ == null) { - comboCommentFeedBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder>( - comboCommentFeed_, - ((bitField0_ & 0x00000040) != 0), - getParentForChildren(), - isClean()); - comboCommentFeed_ = null; - } - return comboCommentFeedBuilder_; - } - - private java.util.List likeFeeds_ = - java.util.Collections.emptyList(); - private void ensureLikeFeedsIsMutable() { - if (!((bitField0_ & 0x00000080) != 0)) { - likeFeeds_ = new java.util.ArrayList(likeFeeds_); - bitField0_ |= 0x00000080; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder> likeFeedsBuilder_; - - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public java.util.List getLikeFeedsList() { - if (likeFeedsBuilder_ == null) { - return java.util.Collections.unmodifiableList(likeFeeds_); - } else { - return likeFeedsBuilder_.getMessageList(); - } - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public int getLikeFeedsCount() { - if (likeFeedsBuilder_ == null) { - return likeFeeds_.size(); - } else { - return likeFeedsBuilder_.getCount(); - } - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index) { - if (likeFeedsBuilder_ == null) { - return likeFeeds_.get(index); - } else { - return likeFeedsBuilder_.getMessage(index); - } - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder setLikeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { - if (likeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLikeFeedsIsMutable(); - likeFeeds_.set(index, value); - onChanged(); - } else { - likeFeedsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder setLikeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - likeFeeds_.set(index, builderForValue.build()); - onChanged(); - } else { - likeFeedsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder addLikeFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { - if (likeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLikeFeedsIsMutable(); - likeFeeds_.add(value); - onChanged(); - } else { - likeFeedsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder addLikeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { - if (likeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureLikeFeedsIsMutable(); - likeFeeds_.add(index, value); - onChanged(); - } else { - likeFeedsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder addLikeFeeds( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - likeFeeds_.add(builderForValue.build()); - onChanged(); - } else { - likeFeedsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder addLikeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - likeFeeds_.add(index, builderForValue.build()); - onChanged(); - } else { - likeFeedsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder addAllLikeFeeds( - java.lang.Iterable values) { - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, likeFeeds_); - onChanged(); - } else { - likeFeedsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder clearLikeFeeds() { - if (likeFeedsBuilder_ == null) { - likeFeeds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - } else { - likeFeedsBuilder_.clear(); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public Builder removeLikeFeeds(int index) { - if (likeFeedsBuilder_ == null) { - ensureLikeFeedsIsMutable(); - likeFeeds_.remove(index); - onChanged(); - } else { - likeFeedsBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder getLikeFeedsBuilder( - int index) { - return getLikeFeedsFieldBuilder().getBuilder(index); - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( - int index) { - if (likeFeedsBuilder_ == null) { - return likeFeeds_.get(index); } else { - return likeFeedsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public java.util.List - getLikeFeedsOrBuilderList() { - if (likeFeedsBuilder_ != null) { - return likeFeedsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(likeFeeds_); - } - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder addLikeFeedsBuilder() { - return getLikeFeedsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()); - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder addLikeFeedsBuilder( - int index) { - return getLikeFeedsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()); - } - /** - * repeated .WebLikeFeed likeFeeds = 8; - */ - public java.util.List - getLikeFeedsBuilderList() { - return getLikeFeedsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder> - getLikeFeedsFieldBuilder() { - if (likeFeedsBuilder_ == null) { - likeFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder>( - likeFeeds_, - ((bitField0_ & 0x00000080) != 0), - getParentForChildren(), - isClean()); - likeFeeds_ = null; - } - return likeFeedsBuilder_; - } - - private java.util.List giftFeeds_ = - java.util.Collections.emptyList(); - private void ensureGiftFeedsIsMutable() { - if (!((bitField0_ & 0x00000100) != 0)) { - giftFeeds_ = new java.util.ArrayList(giftFeeds_); - bitField0_ |= 0x00000100; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder> giftFeedsBuilder_; - - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public java.util.List getGiftFeedsList() { - if (giftFeedsBuilder_ == null) { - return java.util.Collections.unmodifiableList(giftFeeds_); - } else { - return giftFeedsBuilder_.getMessageList(); - } - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public int getGiftFeedsCount() { - if (giftFeedsBuilder_ == null) { - return giftFeeds_.size(); - } else { - return giftFeedsBuilder_.getCount(); - } - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index) { - if (giftFeedsBuilder_ == null) { - return giftFeeds_.get(index); - } else { - return giftFeedsBuilder_.getMessage(index); - } - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder setGiftFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { - if (giftFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGiftFeedsIsMutable(); - giftFeeds_.set(index, value); - onChanged(); - } else { - giftFeedsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder setGiftFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - giftFeeds_.set(index, builderForValue.build()); - onChanged(); - } else { - giftFeedsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder addGiftFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { - if (giftFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGiftFeedsIsMutable(); - giftFeeds_.add(value); - onChanged(); - } else { - giftFeedsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder addGiftFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { - if (giftFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureGiftFeedsIsMutable(); - giftFeeds_.add(index, value); - onChanged(); - } else { - giftFeedsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder addGiftFeeds( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - giftFeeds_.add(builderForValue.build()); - onChanged(); - } else { - giftFeedsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder addGiftFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - giftFeeds_.add(index, builderForValue.build()); - onChanged(); - } else { - giftFeedsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder addAllGiftFeeds( - java.lang.Iterable values) { - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, giftFeeds_); - onChanged(); - } else { - giftFeedsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder clearGiftFeeds() { - if (giftFeedsBuilder_ == null) { - giftFeeds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000100); - onChanged(); - } else { - giftFeedsBuilder_.clear(); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public Builder removeGiftFeeds(int index) { - if (giftFeedsBuilder_ == null) { - ensureGiftFeedsIsMutable(); - giftFeeds_.remove(index); - onChanged(); - } else { - giftFeedsBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder getGiftFeedsBuilder( - int index) { - return getGiftFeedsFieldBuilder().getBuilder(index); - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( - int index) { - if (giftFeedsBuilder_ == null) { - return giftFeeds_.get(index); } else { - return giftFeedsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public java.util.List - getGiftFeedsOrBuilderList() { - if (giftFeedsBuilder_ != null) { - return giftFeedsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(giftFeeds_); - } - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder addGiftFeedsBuilder() { - return getGiftFeedsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()); - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder addGiftFeedsBuilder( - int index) { - return getGiftFeedsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()); - } - /** - * repeated .WebGiftFeed giftFeeds = 9; - */ - public java.util.List - getGiftFeedsBuilderList() { - return getGiftFeedsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder> - getGiftFeedsFieldBuilder() { - if (giftFeedsBuilder_ == null) { - giftFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder>( - giftFeeds_, - ((bitField0_ & 0x00000100) != 0), - getParentForChildren(), - isClean()); - giftFeeds_ = null; - } - return giftFeedsBuilder_; - } - - private java.lang.Object giftCursor_ = ""; - /** - * string giftCursor = 10; - * @return The giftCursor. - */ - public java.lang.String getGiftCursor() { - java.lang.Object ref = giftCursor_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - giftCursor_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string giftCursor = 10; - * @return The bytes for giftCursor. - */ - public com.google.protobuf.ByteString - getGiftCursorBytes() { - java.lang.Object ref = giftCursor_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - giftCursor_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string giftCursor = 10; - * @param value The giftCursor to set. - * @return This builder for chaining. - */ - public Builder setGiftCursor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - giftCursor_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * string giftCursor = 10; - * @return This builder for chaining. - */ - public Builder clearGiftCursor() { - giftCursor_ = getDefaultInstance().getGiftCursor(); - bitField0_ = (bitField0_ & ~0x00000200); - onChanged(); - return this; - } - /** - * string giftCursor = 10; - * @param value The bytes for giftCursor to set. - * @return This builder for chaining. - */ - public Builder setGiftCursorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - giftCursor_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - - private java.util.List systemNoticeFeeds_ = - java.util.Collections.emptyList(); - private void ensureSystemNoticeFeedsIsMutable() { - if (!((bitField0_ & 0x00000400) != 0)) { - systemNoticeFeeds_ = new java.util.ArrayList(systemNoticeFeeds_); - bitField0_ |= 0x00000400; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder> systemNoticeFeedsBuilder_; - - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public java.util.List getSystemNoticeFeedsList() { - if (systemNoticeFeedsBuilder_ == null) { - return java.util.Collections.unmodifiableList(systemNoticeFeeds_); - } else { - return systemNoticeFeedsBuilder_.getMessageList(); - } - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public int getSystemNoticeFeedsCount() { - if (systemNoticeFeedsBuilder_ == null) { - return systemNoticeFeeds_.size(); - } else { - return systemNoticeFeedsBuilder_.getCount(); - } - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index) { - if (systemNoticeFeedsBuilder_ == null) { - return systemNoticeFeeds_.get(index); - } else { - return systemNoticeFeedsBuilder_.getMessage(index); - } - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder setSystemNoticeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { - if (systemNoticeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.set(index, value); - onChanged(); - } else { - systemNoticeFeedsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder setSystemNoticeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.set(index, builderForValue.build()); - onChanged(); - } else { - systemNoticeFeedsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder addSystemNoticeFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { - if (systemNoticeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.add(value); - onChanged(); - } else { - systemNoticeFeedsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder addSystemNoticeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { - if (systemNoticeFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.add(index, value); - onChanged(); - } else { - systemNoticeFeedsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder addSystemNoticeFeeds( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.add(builderForValue.build()); - onChanged(); - } else { - systemNoticeFeedsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder addSystemNoticeFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.add(index, builderForValue.build()); - onChanged(); - } else { - systemNoticeFeedsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder addAllSystemNoticeFeeds( - java.lang.Iterable values) { - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, systemNoticeFeeds_); - onChanged(); - } else { - systemNoticeFeedsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder clearSystemNoticeFeeds() { - if (systemNoticeFeedsBuilder_ == null) { - systemNoticeFeeds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000400); - onChanged(); - } else { - systemNoticeFeedsBuilder_.clear(); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public Builder removeSystemNoticeFeeds(int index) { - if (systemNoticeFeedsBuilder_ == null) { - ensureSystemNoticeFeedsIsMutable(); - systemNoticeFeeds_.remove(index); - onChanged(); - } else { - systemNoticeFeedsBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder getSystemNoticeFeedsBuilder( - int index) { - return getSystemNoticeFeedsFieldBuilder().getBuilder(index); - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( - int index) { - if (systemNoticeFeedsBuilder_ == null) { - return systemNoticeFeeds_.get(index); } else { - return systemNoticeFeedsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public java.util.List - getSystemNoticeFeedsOrBuilderList() { - if (systemNoticeFeedsBuilder_ != null) { - return systemNoticeFeedsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(systemNoticeFeeds_); - } - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder addSystemNoticeFeedsBuilder() { - return getSystemNoticeFeedsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()); - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder addSystemNoticeFeedsBuilder( - int index) { - return getSystemNoticeFeedsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()); - } - /** - * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; - */ - public java.util.List - getSystemNoticeFeedsBuilderList() { - return getSystemNoticeFeedsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder> - getSystemNoticeFeedsFieldBuilder() { - if (systemNoticeFeedsBuilder_ == null) { - systemNoticeFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder>( - systemNoticeFeeds_, - ((bitField0_ & 0x00000400) != 0), - getParentForChildren(), - isClean()); - systemNoticeFeeds_ = null; - } - return systemNoticeFeedsBuilder_; - } - - private java.util.List shareFeeds_ = - java.util.Collections.emptyList(); - private void ensureShareFeedsIsMutable() { - if (!((bitField0_ & 0x00000800) != 0)) { - shareFeeds_ = new java.util.ArrayList(shareFeeds_); - bitField0_ |= 0x00000800; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder> shareFeedsBuilder_; - - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public java.util.List getShareFeedsList() { - if (shareFeedsBuilder_ == null) { - return java.util.Collections.unmodifiableList(shareFeeds_); - } else { - return shareFeedsBuilder_.getMessageList(); - } - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public int getShareFeedsCount() { - if (shareFeedsBuilder_ == null) { - return shareFeeds_.size(); - } else { - return shareFeedsBuilder_.getCount(); - } - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index) { - if (shareFeedsBuilder_ == null) { - return shareFeeds_.get(index); - } else { - return shareFeedsBuilder_.getMessage(index); - } - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder setShareFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { - if (shareFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShareFeedsIsMutable(); - shareFeeds_.set(index, value); - onChanged(); - } else { - shareFeedsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder setShareFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - shareFeeds_.set(index, builderForValue.build()); - onChanged(); - } else { - shareFeedsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder addShareFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { - if (shareFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShareFeedsIsMutable(); - shareFeeds_.add(value); - onChanged(); - } else { - shareFeedsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder addShareFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { - if (shareFeedsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureShareFeedsIsMutable(); - shareFeeds_.add(index, value); - onChanged(); - } else { - shareFeedsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder addShareFeeds( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - shareFeeds_.add(builderForValue.build()); - onChanged(); - } else { - shareFeedsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder addShareFeeds( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - shareFeeds_.add(index, builderForValue.build()); - onChanged(); - } else { - shareFeedsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder addAllShareFeeds( - java.lang.Iterable values) { - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, shareFeeds_); - onChanged(); - } else { - shareFeedsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder clearShareFeeds() { - if (shareFeedsBuilder_ == null) { - shareFeeds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000800); - onChanged(); - } else { - shareFeedsBuilder_.clear(); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public Builder removeShareFeeds(int index) { - if (shareFeedsBuilder_ == null) { - ensureShareFeedsIsMutable(); - shareFeeds_.remove(index); - onChanged(); - } else { - shareFeedsBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder getShareFeedsBuilder( - int index) { - return getShareFeedsFieldBuilder().getBuilder(index); - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( - int index) { - if (shareFeedsBuilder_ == null) { - return shareFeeds_.get(index); } else { - return shareFeedsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public java.util.List - getShareFeedsOrBuilderList() { - if (shareFeedsBuilder_ != null) { - return shareFeedsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(shareFeeds_); - } - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder addShareFeedsBuilder() { - return getShareFeedsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()); - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder addShareFeedsBuilder( - int index) { - return getShareFeedsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()); - } - /** - * repeated .WebShareFeed shareFeeds = 12; - */ - public java.util.List - getShareFeedsBuilderList() { - return getShareFeedsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder> - getShareFeedsFieldBuilder() { - if (shareFeedsBuilder_ == null) { - shareFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder>( - shareFeeds_, - ((bitField0_ & 0x00000800) != 0), - getParentForChildren(), - isClean()); - shareFeeds_ = null; - } - return shareFeedsBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebFeedPush) - } - - // @@protoc_insertion_point(class_scope:SCWebFeedPush) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebFeedPush parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebFeedPush_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebFeedPush_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023SCWebFeedPush.proto\032\024WebCommentFeed.pr" + - "oto\032\031WebComboCommentFeed.proto\032\021WebLikeF" + - "eed.proto\032\021WebGiftFeed.proto\032\031WebSystemN" + - "oticeFeed.proto\032\022WebShareFeed.proto\"\217\003\n\r" + - "SCWebFeedPush\022\034\n\024displayWatchingCount\030\001 " + - "\001(\t\022\030\n\020displayLikeCount\030\002 \001(\t\022\030\n\020pending" + - "LikeCount\030\003 \001(\004\022\024\n\014pushInterval\030\004 \001(\004\022%\n" + - "\014commentFeeds\030\005 \003(\0132\017.WebCommentFeed\022\025\n\r" + - "commentCursor\030\006 \001(\t\022.\n\020comboCommentFeed\030" + - "\007 \003(\0132\024.WebComboCommentFeed\022\037\n\tlikeFeeds" + - "\030\010 \003(\0132\014.WebLikeFeed\022\037\n\tgiftFeeds\030\t \003(\0132" + - "\014.WebGiftFeed\022\022\n\ngiftCursor\030\n \001(\t\022/\n\021sys" + - "temNoticeFeeds\030\013 \003(\0132\024.WebSystemNoticeFe" + - "ed\022!\n\nshareFeeds\030\014 \003(\0132\r.WebShareFeedB6\n" + - "4tech.ordinaryroad.live.chat.client.kuai" + - "shou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.getDescriptor(), - }); - internal_static_SCWebFeedPush_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebFeedPush_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebFeedPush_descriptor, - new java.lang.String[] { "DisplayWatchingCount", "DisplayLikeCount", "PendingLikeCount", "PushInterval", "CommentFeeds", "CommentCursor", "ComboCommentFeed", "LikeFeeds", "GiftFeeds", "GiftCursor", "SystemNoticeFeeds", "ShareFeeds", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java deleted file mode 100644 index 7ee548d8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java +++ /dev/null @@ -1,772 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebGuessClosed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebGuessClosedOuterClass { - private SCWebGuessClosedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebGuessClosedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebGuessClosed) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - * string guessId = 2; - * @return The guessId. - */ - java.lang.String getGuessId(); - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - com.google.protobuf.ByteString - getGuessIdBytes(); - - /** - * uint64 displayMaxDelayMillis = 3; - * @return The displayMaxDelayMillis. - */ - long getDisplayMaxDelayMillis(); - } - /** - * Protobuf type {@code SCWebGuessClosed} - */ - public static final class SCWebGuessClosed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebGuessClosed) - SCWebGuessClosedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebGuessClosed.newBuilder() to construct. - private SCWebGuessClosed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebGuessClosed() { - guessId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebGuessClosed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int GUESSID_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object guessId_ = ""; - /** - * string guessId = 2; - * @return The guessId. - */ - @java.lang.Override - public java.lang.String getGuessId() { - java.lang.Object ref = guessId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guessId_ = s; - return s; - } - } - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGuessIdBytes() { - java.lang.Object ref = guessId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guessId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DISPLAYMAXDELAYMILLIS_FIELD_NUMBER = 3; - private long displayMaxDelayMillis_ = 0L; - /** - * uint64 displayMaxDelayMillis = 3; - * @return The displayMaxDelayMillis. - */ - @java.lang.Override - public long getDisplayMaxDelayMillis() { - return displayMaxDelayMillis_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, guessId_); - } - if (displayMaxDelayMillis_ != 0L) { - output.writeUInt64(3, displayMaxDelayMillis_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, guessId_); - } - if (displayMaxDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, displayMaxDelayMillis_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed) obj; - - if (getTime() - != other.getTime()) return false; - if (!getGuessId() - .equals(other.getGuessId())) return false; - if (getDisplayMaxDelayMillis() - != other.getDisplayMaxDelayMillis()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + GUESSID_FIELD_NUMBER; - hash = (53 * hash) + getGuessId().hashCode(); - hash = (37 * hash) + DISPLAYMAXDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getDisplayMaxDelayMillis()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebGuessClosed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebGuessClosed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - guessId_ = ""; - displayMaxDelayMillis_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.guessId_ = guessId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.displayMaxDelayMillis_ = displayMaxDelayMillis_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (!other.getGuessId().isEmpty()) { - guessId_ = other.guessId_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getDisplayMaxDelayMillis() != 0L) { - setDisplayMaxDelayMillis(other.getDisplayMaxDelayMillis()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - guessId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - displayMaxDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object guessId_ = ""; - /** - * string guessId = 2; - * @return The guessId. - */ - public java.lang.String getGuessId() { - java.lang.Object ref = guessId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guessId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - public com.google.protobuf.ByteString - getGuessIdBytes() { - java.lang.Object ref = guessId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guessId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string guessId = 2; - * @param value The guessId to set. - * @return This builder for chaining. - */ - public Builder setGuessId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - guessId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string guessId = 2; - * @return This builder for chaining. - */ - public Builder clearGuessId() { - guessId_ = getDefaultInstance().getGuessId(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string guessId = 2; - * @param value The bytes for guessId to set. - * @return This builder for chaining. - */ - public Builder setGuessIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - guessId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long displayMaxDelayMillis_ ; - /** - * uint64 displayMaxDelayMillis = 3; - * @return The displayMaxDelayMillis. - */ - @java.lang.Override - public long getDisplayMaxDelayMillis() { - return displayMaxDelayMillis_; - } - /** - * uint64 displayMaxDelayMillis = 3; - * @param value The displayMaxDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setDisplayMaxDelayMillis(long value) { - - displayMaxDelayMillis_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 displayMaxDelayMillis = 3; - * @return This builder for chaining. - */ - public Builder clearDisplayMaxDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000004); - displayMaxDelayMillis_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebGuessClosed) - } - - // @@protoc_insertion_point(class_scope:SCWebGuessClosed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebGuessClosed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebGuessClosed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebGuessClosed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026SCWebGuessClosed.proto\"P\n\020SCWebGuessCl" + - "osed\022\014\n\004time\030\001 \001(\004\022\017\n\007guessId\030\002 \001(\t\022\035\n\025d" + - "isplayMaxDelayMillis\030\003 \001(\004B6\n4tech.ordin" + - "aryroad.live.chat.client.kuaishou.protob" + - "ufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebGuessClosed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebGuessClosed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebGuessClosed_descriptor, - new java.lang.String[] { "Time", "GuessId", "DisplayMaxDelayMillis", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java deleted file mode 100644 index 952322d7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java +++ /dev/null @@ -1,845 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebGuessOpened.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebGuessOpenedOuterClass { - private SCWebGuessOpenedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebGuessOpenedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebGuessOpened) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - - /** - * string guessId = 2; - * @return The guessId. - */ - java.lang.String getGuessId(); - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - com.google.protobuf.ByteString - getGuessIdBytes(); - - /** - * uint64 submitDeadline = 3; - * @return The submitDeadline. - */ - long getSubmitDeadline(); - - /** - * uint64 displayMaxDelayMillis = 4; - * @return The displayMaxDelayMillis. - */ - long getDisplayMaxDelayMillis(); - } - /** - * Protobuf type {@code SCWebGuessOpened} - */ - public static final class SCWebGuessOpened extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebGuessOpened) - SCWebGuessOpenedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebGuessOpened.newBuilder() to construct. - private SCWebGuessOpened(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebGuessOpened() { - guessId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebGuessOpened(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int GUESSID_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object guessId_ = ""; - /** - * string guessId = 2; - * @return The guessId. - */ - @java.lang.Override - public java.lang.String getGuessId() { - java.lang.Object ref = guessId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guessId_ = s; - return s; - } - } - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGuessIdBytes() { - java.lang.Object ref = guessId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guessId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SUBMITDEADLINE_FIELD_NUMBER = 3; - private long submitDeadline_ = 0L; - /** - * uint64 submitDeadline = 3; - * @return The submitDeadline. - */ - @java.lang.Override - public long getSubmitDeadline() { - return submitDeadline_; - } - - public static final int DISPLAYMAXDELAYMILLIS_FIELD_NUMBER = 4; - private long displayMaxDelayMillis_ = 0L; - /** - * uint64 displayMaxDelayMillis = 4; - * @return The displayMaxDelayMillis. - */ - @java.lang.Override - public long getDisplayMaxDelayMillis() { - return displayMaxDelayMillis_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, guessId_); - } - if (submitDeadline_ != 0L) { - output.writeUInt64(3, submitDeadline_); - } - if (displayMaxDelayMillis_ != 0L) { - output.writeUInt64(4, displayMaxDelayMillis_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, guessId_); - } - if (submitDeadline_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, submitDeadline_); - } - if (displayMaxDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, displayMaxDelayMillis_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened) obj; - - if (getTime() - != other.getTime()) return false; - if (!getGuessId() - .equals(other.getGuessId())) return false; - if (getSubmitDeadline() - != other.getSubmitDeadline()) return false; - if (getDisplayMaxDelayMillis() - != other.getDisplayMaxDelayMillis()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + GUESSID_FIELD_NUMBER; - hash = (53 * hash) + getGuessId().hashCode(); - hash = (37 * hash) + SUBMITDEADLINE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSubmitDeadline()); - hash = (37 * hash) + DISPLAYMAXDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getDisplayMaxDelayMillis()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebGuessOpened} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebGuessOpened) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpenedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - guessId_ = ""; - submitDeadline_ = 0L; - displayMaxDelayMillis_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.guessId_ = guessId_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.submitDeadline_ = submitDeadline_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.displayMaxDelayMillis_ = displayMaxDelayMillis_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (!other.getGuessId().isEmpty()) { - guessId_ = other.guessId_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getSubmitDeadline() != 0L) { - setSubmitDeadline(other.getSubmitDeadline()); - } - if (other.getDisplayMaxDelayMillis() != 0L) { - setDisplayMaxDelayMillis(other.getDisplayMaxDelayMillis()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - guessId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - submitDeadline_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - displayMaxDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object guessId_ = ""; - /** - * string guessId = 2; - * @return The guessId. - */ - public java.lang.String getGuessId() { - java.lang.Object ref = guessId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - guessId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string guessId = 2; - * @return The bytes for guessId. - */ - public com.google.protobuf.ByteString - getGuessIdBytes() { - java.lang.Object ref = guessId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - guessId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string guessId = 2; - * @param value The guessId to set. - * @return This builder for chaining. - */ - public Builder setGuessId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - guessId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string guessId = 2; - * @return This builder for chaining. - */ - public Builder clearGuessId() { - guessId_ = getDefaultInstance().getGuessId(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string guessId = 2; - * @param value The bytes for guessId to set. - * @return This builder for chaining. - */ - public Builder setGuessIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - guessId_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long submitDeadline_ ; - /** - * uint64 submitDeadline = 3; - * @return The submitDeadline. - */ - @java.lang.Override - public long getSubmitDeadline() { - return submitDeadline_; - } - /** - * uint64 submitDeadline = 3; - * @param value The submitDeadline to set. - * @return This builder for chaining. - */ - public Builder setSubmitDeadline(long value) { - - submitDeadline_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 submitDeadline = 3; - * @return This builder for chaining. - */ - public Builder clearSubmitDeadline() { - bitField0_ = (bitField0_ & ~0x00000004); - submitDeadline_ = 0L; - onChanged(); - return this; - } - - private long displayMaxDelayMillis_ ; - /** - * uint64 displayMaxDelayMillis = 4; - * @return The displayMaxDelayMillis. - */ - @java.lang.Override - public long getDisplayMaxDelayMillis() { - return displayMaxDelayMillis_; - } - /** - * uint64 displayMaxDelayMillis = 4; - * @param value The displayMaxDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setDisplayMaxDelayMillis(long value) { - - displayMaxDelayMillis_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 displayMaxDelayMillis = 4; - * @return This builder for chaining. - */ - public Builder clearDisplayMaxDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000008); - displayMaxDelayMillis_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebGuessOpened) - } - - // @@protoc_insertion_point(class_scope:SCWebGuessOpened) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebGuessOpened parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebGuessOpened_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebGuessOpened_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026SCWebGuessOpened.proto\"h\n\020SCWebGuessOp" + - "ened\022\014\n\004time\030\001 \001(\004\022\017\n\007guessId\030\002 \001(\t\022\026\n\016s" + - "ubmitDeadline\030\003 \001(\004\022\035\n\025displayMaxDelayMi" + - "llis\030\004 \001(\004B6\n4tech.ordinaryroad.live.cha" + - "t.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebGuessOpened_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebGuessOpened_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebGuessOpened_descriptor, - new java.lang.String[] { "Time", "GuessId", "SubmitDeadline", "DisplayMaxDelayMillis", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java deleted file mode 100644 index 24932928..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java +++ /dev/null @@ -1,623 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebHeartbeatAck.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebHeartbeatAckOuterClass { - private SCWebHeartbeatAckOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebHeartbeatAckOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebHeartbeatAck) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - long getTimestamp(); - - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - long getClientTimestamp(); - } - /** - * Protobuf type {@code SCWebHeartbeatAck} - */ - public static final class SCWebHeartbeatAck extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebHeartbeatAck) - SCWebHeartbeatAckOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebHeartbeatAck.newBuilder() to construct. - private SCWebHeartbeatAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebHeartbeatAck() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebHeartbeatAck(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.Builder.class); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 1; - private long timestamp_ = 0L; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - - public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 2; - private long clientTimestamp_ = 0L; - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (timestamp_ != 0L) { - output.writeUInt64(1, timestamp_); - } - if (clientTimestamp_ != 0L) { - output.writeUInt64(2, clientTimestamp_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (timestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, timestamp_); - } - if (clientTimestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, clientTimestamp_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck) obj; - - if (getTimestamp() - != other.getTimestamp()) return false; - if (getClientTimestamp() - != other.getClientTimestamp()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestamp()); - hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getClientTimestamp()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebHeartbeatAck} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebHeartbeatAck) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAckOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - timestamp_ = 0L; - clientTimestamp_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.timestamp_ = timestamp_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.clientTimestamp_ = clientTimestamp_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.getDefaultInstance()) return this; - if (other.getTimestamp() != 0L) { - setTimestamp(other.getTimestamp()); - } - if (other.getClientTimestamp() != 0L) { - setClientTimestamp(other.getClientTimestamp()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - timestamp_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - clientTimestamp_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long timestamp_ ; - /** - * uint64 timestamp = 1; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - /** - * uint64 timestamp = 1; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(long value) { - - timestamp_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 timestamp = 1; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - onChanged(); - return this; - } - - private long clientTimestamp_ ; - /** - * uint64 clientTimestamp = 2; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - /** - * uint64 clientTimestamp = 2; - * @param value The clientTimestamp to set. - * @return This builder for chaining. - */ - public Builder setClientTimestamp(long value) { - - clientTimestamp_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 clientTimestamp = 2; - * @return This builder for chaining. - */ - public Builder clearClientTimestamp() { - bitField0_ = (bitField0_ & ~0x00000002); - clientTimestamp_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebHeartbeatAck) - } - - // @@protoc_insertion_point(class_scope:SCWebHeartbeatAck) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebHeartbeatAck parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebHeartbeatAck_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebHeartbeatAck_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\027SCWebHeartbeatAck.proto\"?\n\021SCWebHeartb" + - "eatAck\022\021\n\ttimestamp\030\001 \001(\004\022\027\n\017clientTimes" + - "tamp\030\002 \001(\004B6\n4tech.ordinaryroad.live.cha" + - "t.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebHeartbeatAck_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebHeartbeatAck_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebHeartbeatAck_descriptor, - new java.lang.String[] { "Timestamp", "ClientTimestamp", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java deleted file mode 100644 index 3aa0095b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java +++ /dev/null @@ -1,932 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebLiveSpecialAccountConfigState.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebLiveSpecialAccountConfigStateOuterClass { - private SCWebLiveSpecialAccountConfigStateOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebLiveSpecialAccountConfigStateOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebLiveSpecialAccountConfigState) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - java.util.List - getConfigSwitchItemList(); - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index); - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - int getConfigSwitchItemCount(); - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - java.util.List - getConfigSwitchItemOrBuilderList(); - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( - int index); - - /** - * uint64 timestamp = 2; - * @return The timestamp. - */ - long getTimestamp(); - } - /** - * Protobuf type {@code SCWebLiveSpecialAccountConfigState} - */ - public static final class SCWebLiveSpecialAccountConfigState extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebLiveSpecialAccountConfigState) - SCWebLiveSpecialAccountConfigStateOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebLiveSpecialAccountConfigState.newBuilder() to construct. - private SCWebLiveSpecialAccountConfigState(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebLiveSpecialAccountConfigState() { - configSwitchItem_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebLiveSpecialAccountConfigState(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.Builder.class); - } - - public static final int CONFIGSWITCHITEM_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List configSwitchItem_; - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - @java.lang.Override - public java.util.List getConfigSwitchItemList() { - return configSwitchItem_; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - @java.lang.Override - public java.util.List - getConfigSwitchItemOrBuilderList() { - return configSwitchItem_; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - @java.lang.Override - public int getConfigSwitchItemCount() { - return configSwitchItem_.size(); - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index) { - return configSwitchItem_.get(index); - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( - int index) { - return configSwitchItem_.get(index); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 2; - private long timestamp_ = 0L; - /** - * uint64 timestamp = 2; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < configSwitchItem_.size(); i++) { - output.writeMessage(1, configSwitchItem_.get(i)); - } - if (timestamp_ != 0L) { - output.writeUInt64(2, timestamp_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < configSwitchItem_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, configSwitchItem_.get(i)); - } - if (timestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(2, timestamp_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState) obj; - - if (!getConfigSwitchItemList() - .equals(other.getConfigSwitchItemList())) return false; - if (getTimestamp() - != other.getTimestamp()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getConfigSwitchItemCount() > 0) { - hash = (37 * hash) + CONFIGSWITCHITEM_FIELD_NUMBER; - hash = (53 * hash) + getConfigSwitchItemList().hashCode(); - } - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestamp()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebLiveSpecialAccountConfigState} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebLiveSpecialAccountConfigState) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigStateOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (configSwitchItemBuilder_ == null) { - configSwitchItem_ = java.util.Collections.emptyList(); - } else { - configSwitchItem_ = null; - configSwitchItemBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - timestamp_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result) { - if (configSwitchItemBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - configSwitchItem_ = java.util.Collections.unmodifiableList(configSwitchItem_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.configSwitchItem_ = configSwitchItem_; - } else { - result.configSwitchItem_ = configSwitchItemBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.timestamp_ = timestamp_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.getDefaultInstance()) return this; - if (configSwitchItemBuilder_ == null) { - if (!other.configSwitchItem_.isEmpty()) { - if (configSwitchItem_.isEmpty()) { - configSwitchItem_ = other.configSwitchItem_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.addAll(other.configSwitchItem_); - } - onChanged(); - } - } else { - if (!other.configSwitchItem_.isEmpty()) { - if (configSwitchItemBuilder_.isEmpty()) { - configSwitchItemBuilder_.dispose(); - configSwitchItemBuilder_ = null; - configSwitchItem_ = other.configSwitchItem_; - bitField0_ = (bitField0_ & ~0x00000001); - configSwitchItemBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getConfigSwitchItemFieldBuilder() : null; - } else { - configSwitchItemBuilder_.addAllMessages(other.configSwitchItem_); - } - } - } - if (other.getTimestamp() != 0L) { - setTimestamp(other.getTimestamp()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.parser(), - extensionRegistry); - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.add(m); - } else { - configSwitchItemBuilder_.addMessage(m); - } - break; - } // case 10 - case 16: { - timestamp_ = input.readUInt64(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List configSwitchItem_ = - java.util.Collections.emptyList(); - private void ensureConfigSwitchItemIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - configSwitchItem_ = new java.util.ArrayList(configSwitchItem_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder> configSwitchItemBuilder_; - - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public java.util.List getConfigSwitchItemList() { - if (configSwitchItemBuilder_ == null) { - return java.util.Collections.unmodifiableList(configSwitchItem_); - } else { - return configSwitchItemBuilder_.getMessageList(); - } - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public int getConfigSwitchItemCount() { - if (configSwitchItemBuilder_ == null) { - return configSwitchItem_.size(); - } else { - return configSwitchItemBuilder_.getCount(); - } - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index) { - if (configSwitchItemBuilder_ == null) { - return configSwitchItem_.get(index); - } else { - return configSwitchItemBuilder_.getMessage(index); - } - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder setConfigSwitchItem( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { - if (configSwitchItemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.set(index, value); - onChanged(); - } else { - configSwitchItemBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder setConfigSwitchItem( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.set(index, builderForValue.build()); - onChanged(); - } else { - configSwitchItemBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder addConfigSwitchItem(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { - if (configSwitchItemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.add(value); - onChanged(); - } else { - configSwitchItemBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder addConfigSwitchItem( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { - if (configSwitchItemBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.add(index, value); - onChanged(); - } else { - configSwitchItemBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder addConfigSwitchItem( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.add(builderForValue.build()); - onChanged(); - } else { - configSwitchItemBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder addConfigSwitchItem( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.add(index, builderForValue.build()); - onChanged(); - } else { - configSwitchItemBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder addAllConfigSwitchItem( - java.lang.Iterable values) { - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, configSwitchItem_); - onChanged(); - } else { - configSwitchItemBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder clearConfigSwitchItem() { - if (configSwitchItemBuilder_ == null) { - configSwitchItem_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - configSwitchItemBuilder_.clear(); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public Builder removeConfigSwitchItem(int index) { - if (configSwitchItemBuilder_ == null) { - ensureConfigSwitchItemIsMutable(); - configSwitchItem_.remove(index); - onChanged(); - } else { - configSwitchItemBuilder_.remove(index); - } - return this; - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder getConfigSwitchItemBuilder( - int index) { - return getConfigSwitchItemFieldBuilder().getBuilder(index); - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( - int index) { - if (configSwitchItemBuilder_ == null) { - return configSwitchItem_.get(index); } else { - return configSwitchItemBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public java.util.List - getConfigSwitchItemOrBuilderList() { - if (configSwitchItemBuilder_ != null) { - return configSwitchItemBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(configSwitchItem_); - } - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder addConfigSwitchItemBuilder() { - return getConfigSwitchItemFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()); - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder addConfigSwitchItemBuilder( - int index) { - return getConfigSwitchItemFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()); - } - /** - * repeated .ConfigSwitchItem configSwitchItem = 1; - */ - public java.util.List - getConfigSwitchItemBuilderList() { - return getConfigSwitchItemFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder> - getConfigSwitchItemFieldBuilder() { - if (configSwitchItemBuilder_ == null) { - configSwitchItemBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder>( - configSwitchItem_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - configSwitchItem_ = null; - } - return configSwitchItemBuilder_; - } - - private long timestamp_ ; - /** - * uint64 timestamp = 2; - * @return The timestamp. - */ - @java.lang.Override - public long getTimestamp() { - return timestamp_; - } - /** - * uint64 timestamp = 2; - * @param value The timestamp to set. - * @return This builder for chaining. - */ - public Builder setTimestamp(long value) { - - timestamp_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint64 timestamp = 2; - * @return This builder for chaining. - */ - public Builder clearTimestamp() { - bitField0_ = (bitField0_ & ~0x00000002); - timestamp_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebLiveSpecialAccountConfigState) - } - - // @@protoc_insertion_point(class_scope:SCWebLiveSpecialAccountConfigState) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebLiveSpecialAccountConfigState parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebLiveSpecialAccountConfigState_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n(SCWebLiveSpecialAccountConfigState.pro" + - "to\032\026ConfigSwitchItem.proto\"d\n\"SCWebLiveS" + - "pecialAccountConfigState\022+\n\020configSwitch" + - "Item\030\001 \003(\0132\021.ConfigSwitchItem\022\021\n\ttimesta" + - "mp\030\002 \001(\004B6\n4tech.ordinaryroad.live.chat." + - "client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.getDescriptor(), - }); - internal_static_SCWebLiveSpecialAccountConfigState_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebLiveSpecialAccountConfigState_descriptor, - new java.lang.String[] { "ConfigSwitchItem", "Timestamp", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java deleted file mode 100644 index 5a39e0ba..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java +++ /dev/null @@ -1,1081 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebLiveWatchingUsers.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebLiveWatchingUsersOuterClass { - private SCWebLiveWatchingUsersOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebLiveWatchingUsersOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebLiveWatchingUsers) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - java.util.List - getWatchingUserList(); - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index); - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - int getWatchingUserCount(); - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - java.util.List - getWatchingUserOrBuilderList(); - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( - int index); - - /** - * string displayWatchingCount = 2; - * @return The displayWatchingCount. - */ - java.lang.String getDisplayWatchingCount(); - /** - * string displayWatchingCount = 2; - * @return The bytes for displayWatchingCount. - */ - com.google.protobuf.ByteString - getDisplayWatchingCountBytes(); - - /** - * uint64 pendingDuration = 3; - * @return The pendingDuration. - */ - long getPendingDuration(); - } - /** - * Protobuf type {@code SCWebLiveWatchingUsers} - */ - public static final class SCWebLiveWatchingUsers extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebLiveWatchingUsers) - SCWebLiveWatchingUsersOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebLiveWatchingUsers.newBuilder() to construct. - private SCWebLiveWatchingUsers(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebLiveWatchingUsers() { - watchingUser_ = java.util.Collections.emptyList(); - displayWatchingCount_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebLiveWatchingUsers(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.Builder.class); - } - - public static final int WATCHINGUSER_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List watchingUser_; - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - @java.lang.Override - public java.util.List getWatchingUserList() { - return watchingUser_; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - @java.lang.Override - public java.util.List - getWatchingUserOrBuilderList() { - return watchingUser_; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - @java.lang.Override - public int getWatchingUserCount() { - return watchingUser_.size(); - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index) { - return watchingUser_.get(index); - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( - int index) { - return watchingUser_.get(index); - } - - public static final int DISPLAYWATCHINGCOUNT_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object displayWatchingCount_ = ""; - /** - * string displayWatchingCount = 2; - * @return The displayWatchingCount. - */ - @java.lang.Override - public java.lang.String getDisplayWatchingCount() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayWatchingCount_ = s; - return s; - } - } - /** - * string displayWatchingCount = 2; - * @return The bytes for displayWatchingCount. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayWatchingCountBytes() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayWatchingCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PENDINGDURATION_FIELD_NUMBER = 3; - private long pendingDuration_ = 0L; - /** - * uint64 pendingDuration = 3; - * @return The pendingDuration. - */ - @java.lang.Override - public long getPendingDuration() { - return pendingDuration_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < watchingUser_.size(); i++) { - output.writeMessage(1, watchingUser_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, displayWatchingCount_); - } - if (pendingDuration_ != 0L) { - output.writeUInt64(3, pendingDuration_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < watchingUser_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, watchingUser_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, displayWatchingCount_); - } - if (pendingDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, pendingDuration_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers) obj; - - if (!getWatchingUserList() - .equals(other.getWatchingUserList())) return false; - if (!getDisplayWatchingCount() - .equals(other.getDisplayWatchingCount())) return false; - if (getPendingDuration() - != other.getPendingDuration()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (getWatchingUserCount() > 0) { - hash = (37 * hash) + WATCHINGUSER_FIELD_NUMBER; - hash = (53 * hash) + getWatchingUserList().hashCode(); - } - hash = (37 * hash) + DISPLAYWATCHINGCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getDisplayWatchingCount().hashCode(); - hash = (37 * hash) + PENDINGDURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getPendingDuration()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebLiveWatchingUsers} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebLiveWatchingUsers) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsersOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - if (watchingUserBuilder_ == null) { - watchingUser_ = java.util.Collections.emptyList(); - } else { - watchingUser_ = null; - watchingUserBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000001); - displayWatchingCount_ = ""; - pendingDuration_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result) { - if (watchingUserBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - watchingUser_ = java.util.Collections.unmodifiableList(watchingUser_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.watchingUser_ = watchingUser_; - } else { - result.watchingUser_ = watchingUserBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000002) != 0)) { - result.displayWatchingCount_ = displayWatchingCount_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.pendingDuration_ = pendingDuration_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.getDefaultInstance()) return this; - if (watchingUserBuilder_ == null) { - if (!other.watchingUser_.isEmpty()) { - if (watchingUser_.isEmpty()) { - watchingUser_ = other.watchingUser_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureWatchingUserIsMutable(); - watchingUser_.addAll(other.watchingUser_); - } - onChanged(); - } - } else { - if (!other.watchingUser_.isEmpty()) { - if (watchingUserBuilder_.isEmpty()) { - watchingUserBuilder_.dispose(); - watchingUserBuilder_ = null; - watchingUser_ = other.watchingUser_; - bitField0_ = (bitField0_ & ~0x00000001); - watchingUserBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getWatchingUserFieldBuilder() : null; - } else { - watchingUserBuilder_.addAllMessages(other.watchingUser_); - } - } - } - if (!other.getDisplayWatchingCount().isEmpty()) { - displayWatchingCount_ = other.displayWatchingCount_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getPendingDuration() != 0L) { - setPendingDuration(other.getPendingDuration()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.parser(), - extensionRegistry); - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - watchingUser_.add(m); - } else { - watchingUserBuilder_.addMessage(m); - } - break; - } // case 10 - case 18: { - displayWatchingCount_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - pendingDuration_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.util.List watchingUser_ = - java.util.Collections.emptyList(); - private void ensureWatchingUserIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - watchingUser_ = new java.util.ArrayList(watchingUser_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder> watchingUserBuilder_; - - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public java.util.List getWatchingUserList() { - if (watchingUserBuilder_ == null) { - return java.util.Collections.unmodifiableList(watchingUser_); - } else { - return watchingUserBuilder_.getMessageList(); - } - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public int getWatchingUserCount() { - if (watchingUserBuilder_ == null) { - return watchingUser_.size(); - } else { - return watchingUserBuilder_.getCount(); - } - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index) { - if (watchingUserBuilder_ == null) { - return watchingUser_.get(index); - } else { - return watchingUserBuilder_.getMessage(index); - } - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder setWatchingUser( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { - if (watchingUserBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureWatchingUserIsMutable(); - watchingUser_.set(index, value); - onChanged(); - } else { - watchingUserBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder setWatchingUser( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - watchingUser_.set(index, builderForValue.build()); - onChanged(); - } else { - watchingUserBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder addWatchingUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { - if (watchingUserBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureWatchingUserIsMutable(); - watchingUser_.add(value); - onChanged(); - } else { - watchingUserBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder addWatchingUser( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { - if (watchingUserBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureWatchingUserIsMutable(); - watchingUser_.add(index, value); - onChanged(); - } else { - watchingUserBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder addWatchingUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - watchingUser_.add(builderForValue.build()); - onChanged(); - } else { - watchingUserBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder addWatchingUser( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - watchingUser_.add(index, builderForValue.build()); - onChanged(); - } else { - watchingUserBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder addAllWatchingUser( - java.lang.Iterable values) { - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, watchingUser_); - onChanged(); - } else { - watchingUserBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder clearWatchingUser() { - if (watchingUserBuilder_ == null) { - watchingUser_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - watchingUserBuilder_.clear(); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public Builder removeWatchingUser(int index) { - if (watchingUserBuilder_ == null) { - ensureWatchingUserIsMutable(); - watchingUser_.remove(index); - onChanged(); - } else { - watchingUserBuilder_.remove(index); - } - return this; - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder getWatchingUserBuilder( - int index) { - return getWatchingUserFieldBuilder().getBuilder(index); - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( - int index) { - if (watchingUserBuilder_ == null) { - return watchingUser_.get(index); } else { - return watchingUserBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public java.util.List - getWatchingUserOrBuilderList() { - if (watchingUserBuilder_ != null) { - return watchingUserBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(watchingUser_); - } - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder addWatchingUserBuilder() { - return getWatchingUserFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()); - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder addWatchingUserBuilder( - int index) { - return getWatchingUserFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()); - } - /** - * repeated .WebWatchingUserInfo watchingUser = 1; - */ - public java.util.List - getWatchingUserBuilderList() { - return getWatchingUserFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder> - getWatchingUserFieldBuilder() { - if (watchingUserBuilder_ == null) { - watchingUserBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder>( - watchingUser_, - ((bitField0_ & 0x00000001) != 0), - getParentForChildren(), - isClean()); - watchingUser_ = null; - } - return watchingUserBuilder_; - } - - private java.lang.Object displayWatchingCount_ = ""; - /** - * string displayWatchingCount = 2; - * @return The displayWatchingCount. - */ - public java.lang.String getDisplayWatchingCount() { - java.lang.Object ref = displayWatchingCount_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayWatchingCount_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string displayWatchingCount = 2; - * @return The bytes for displayWatchingCount. - */ - public com.google.protobuf.ByteString - getDisplayWatchingCountBytes() { - java.lang.Object ref = displayWatchingCount_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayWatchingCount_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string displayWatchingCount = 2; - * @param value The displayWatchingCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayWatchingCount( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - displayWatchingCount_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string displayWatchingCount = 2; - * @return This builder for chaining. - */ - public Builder clearDisplayWatchingCount() { - displayWatchingCount_ = getDefaultInstance().getDisplayWatchingCount(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string displayWatchingCount = 2; - * @param value The bytes for displayWatchingCount to set. - * @return This builder for chaining. - */ - public Builder setDisplayWatchingCountBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - displayWatchingCount_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private long pendingDuration_ ; - /** - * uint64 pendingDuration = 3; - * @return The pendingDuration. - */ - @java.lang.Override - public long getPendingDuration() { - return pendingDuration_; - } - /** - * uint64 pendingDuration = 3; - * @param value The pendingDuration to set. - * @return This builder for chaining. - */ - public Builder setPendingDuration(long value) { - - pendingDuration_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 pendingDuration = 3; - * @return This builder for chaining. - */ - public Builder clearPendingDuration() { - bitField0_ = (bitField0_ & ~0x00000004); - pendingDuration_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebLiveWatchingUsers) - } - - // @@protoc_insertion_point(class_scope:SCWebLiveWatchingUsers) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebLiveWatchingUsers parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebLiveWatchingUsers_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebLiveWatchingUsers_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\034SCWebLiveWatchingUsers.proto\032\031WebWatch" + - "ingUserInfo.proto\"{\n\026SCWebLiveWatchingUs" + - "ers\022*\n\014watchingUser\030\001 \003(\0132\024.WebWatchingU" + - "serInfo\022\034\n\024displayWatchingCount\030\002 \001(\t\022\027\n" + - "\017pendingDuration\030\003 \001(\004B6\n4tech.ordinaryr" + - "oad.live.chat.client.kuaishou.protobufb\006" + - "proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.getDescriptor(), - }); - internal_static_SCWebLiveWatchingUsers_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebLiveWatchingUsers_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebLiveWatchingUsers_descriptor, - new java.lang.String[] { "WatchingUser", "DisplayWatchingCount", "PendingDuration", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java deleted file mode 100644 index 150867cc..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebPipEnded.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebPipEndedOuterClass { - private SCWebPipEndedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebPipEndedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebPipEnded) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - } - /** - * Protobuf type {@code SCWebPipEnded} - */ - public static final class SCWebPipEnded extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebPipEnded) - SCWebPipEndedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebPipEnded.newBuilder() to construct. - private SCWebPipEnded(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebPipEnded() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebPipEnded(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded) obj; - - if (getTime() - != other.getTime()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebPipEnded} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebPipEnded) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEndedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebPipEnded) - } - - // @@protoc_insertion_point(class_scope:SCWebPipEnded) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebPipEnded parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebPipEnded_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebPipEnded_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023SCWebPipEnded.proto\"\035\n\rSCWebPipEnded\022\014" + - "\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.live.c" + - "hat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebPipEnded_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebPipEnded_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebPipEnded_descriptor, - new java.lang.String[] { "Time", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java deleted file mode 100644 index 4b4e9ffa..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebPipStarted.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebPipStartedOuterClass { - private SCWebPipStartedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebPipStartedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebPipStarted) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 time = 1; - * @return The time. - */ - long getTime(); - } - /** - * Protobuf type {@code SCWebPipStarted} - */ - public static final class SCWebPipStarted extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebPipStarted) - SCWebPipStartedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebPipStarted.newBuilder() to construct. - private SCWebPipStarted(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebPipStarted() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebPipStarted(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.Builder.class); - } - - public static final int TIME_FIELD_NUMBER = 1; - private long time_ = 0L; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (time_ != 0L) { - output.writeUInt64(1, time_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, time_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted) obj; - - if (getTime() - != other.getTime()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebPipStarted} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebPipStarted) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStartedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - time_ = 0L; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.time_ = time_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.getDefaultInstance()) return this; - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long time_ ; - /** - * uint64 time = 1; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 1; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 time = 1; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000001); - time_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebPipStarted) - } - - // @@protoc_insertion_point(class_scope:SCWebPipStarted) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebPipStarted parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebPipStarted_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebPipStarted_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\025SCWebPipStarted.proto\"\037\n\017SCWebPipStart" + - "ed\022\014\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.li" + - "ve.chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebPipStarted_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebPipStarted_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebPipStarted_descriptor, - new java.lang.String[] { "Time", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java deleted file mode 100644 index 44f11b18..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java +++ /dev/null @@ -1,469 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebRefreshWallet.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebRefreshWalletOuterClass { - private SCWebRefreshWalletOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebRefreshWalletOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebRefreshWallet) - com.google.protobuf.MessageOrBuilder { - } - /** - * Protobuf type {@code SCWebRefreshWallet} - */ - public static final class SCWebRefreshWallet extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebRefreshWallet) - SCWebRefreshWalletOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebRefreshWallet.newBuilder() to construct. - private SCWebRefreshWallet(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebRefreshWallet() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebRefreshWallet(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.Builder.class); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet) obj; - - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebRefreshWallet} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebRefreshWallet) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWalletOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet(this); - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.getDefaultInstance()) return this; - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebRefreshWallet) - } - - // @@protoc_insertion_point(class_scope:SCWebRefreshWallet) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebRefreshWallet parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebRefreshWallet_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebRefreshWallet_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\030SCWebRefreshWallet.proto\"\024\n\022SCWebRefre" + - "shWalletB6\n4tech.ordinaryroad.live.chat." + - "client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebRefreshWallet_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebRefreshWallet_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebRefreshWallet_descriptor, - new java.lang.String[] { }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java deleted file mode 100644 index 4e6cd79a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java +++ /dev/null @@ -1,697 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebRideChanged.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebRideChangedOuterClass { - private SCWebRideChangedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebRideChangedOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebRideChanged) - com.google.protobuf.MessageOrBuilder { - - /** - * string rideId = 1; - * @return The rideId. - */ - java.lang.String getRideId(); - /** - * string rideId = 1; - * @return The bytes for rideId. - */ - com.google.protobuf.ByteString - getRideIdBytes(); - - /** - * uint32 requestMaxDelayMillis = 2; - * @return The requestMaxDelayMillis. - */ - int getRequestMaxDelayMillis(); - } - /** - * Protobuf type {@code SCWebRideChanged} - */ - public static final class SCWebRideChanged extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebRideChanged) - SCWebRideChangedOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebRideChanged.newBuilder() to construct. - private SCWebRideChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebRideChanged() { - rideId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebRideChanged(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.Builder.class); - } - - public static final int RIDEID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object rideId_ = ""; - /** - * string rideId = 1; - * @return The rideId. - */ - @java.lang.Override - public java.lang.String getRideId() { - java.lang.Object ref = rideId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - rideId_ = s; - return s; - } - } - /** - * string rideId = 1; - * @return The bytes for rideId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getRideIdBytes() { - java.lang.Object ref = rideId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - rideId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int REQUESTMAXDELAYMILLIS_FIELD_NUMBER = 2; - private int requestMaxDelayMillis_ = 0; - /** - * uint32 requestMaxDelayMillis = 2; - * @return The requestMaxDelayMillis. - */ - @java.lang.Override - public int getRequestMaxDelayMillis() { - return requestMaxDelayMillis_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rideId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, rideId_); - } - if (requestMaxDelayMillis_ != 0) { - output.writeUInt32(2, requestMaxDelayMillis_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rideId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, rideId_); - } - if (requestMaxDelayMillis_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(2, requestMaxDelayMillis_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged) obj; - - if (!getRideId() - .equals(other.getRideId())) return false; - if (getRequestMaxDelayMillis() - != other.getRequestMaxDelayMillis()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + RIDEID_FIELD_NUMBER; - hash = (53 * hash) + getRideId().hashCode(); - hash = (37 * hash) + REQUESTMAXDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + getRequestMaxDelayMillis(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebRideChanged} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebRideChanged) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChangedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - rideId_ = ""; - requestMaxDelayMillis_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.rideId_ = rideId_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.requestMaxDelayMillis_ = requestMaxDelayMillis_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.getDefaultInstance()) return this; - if (!other.getRideId().isEmpty()) { - rideId_ = other.rideId_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.getRequestMaxDelayMillis() != 0) { - setRequestMaxDelayMillis(other.getRequestMaxDelayMillis()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - rideId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - requestMaxDelayMillis_ = input.readUInt32(); - bitField0_ |= 0x00000002; - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object rideId_ = ""; - /** - * string rideId = 1; - * @return The rideId. - */ - public java.lang.String getRideId() { - java.lang.Object ref = rideId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - rideId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string rideId = 1; - * @return The bytes for rideId. - */ - public com.google.protobuf.ByteString - getRideIdBytes() { - java.lang.Object ref = rideId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - rideId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string rideId = 1; - * @param value The rideId to set. - * @return This builder for chaining. - */ - public Builder setRideId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - rideId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string rideId = 1; - * @return This builder for chaining. - */ - public Builder clearRideId() { - rideId_ = getDefaultInstance().getRideId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string rideId = 1; - * @param value The bytes for rideId to set. - * @return This builder for chaining. - */ - public Builder setRideIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - rideId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private int requestMaxDelayMillis_ ; - /** - * uint32 requestMaxDelayMillis = 2; - * @return The requestMaxDelayMillis. - */ - @java.lang.Override - public int getRequestMaxDelayMillis() { - return requestMaxDelayMillis_; - } - /** - * uint32 requestMaxDelayMillis = 2; - * @param value The requestMaxDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setRequestMaxDelayMillis(int value) { - - requestMaxDelayMillis_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * uint32 requestMaxDelayMillis = 2; - * @return This builder for chaining. - */ - public Builder clearRequestMaxDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000002); - requestMaxDelayMillis_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebRideChanged) - } - - // @@protoc_insertion_point(class_scope:SCWebRideChanged) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebRideChanged parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebRideChanged_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebRideChanged_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026SCWebRideChanged.proto\"A\n\020SCWebRideCha" + - "nged\022\016\n\006rideId\030\001 \001(\t\022\035\n\025requestMaxDelayM" + - "illis\030\002 \001(\rB6\n4tech.ordinaryroad.live.ch" + - "at.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebRideChanged_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebRideChanged_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebRideChanged_descriptor, - new java.lang.String[] { "RideId", "RequestMaxDelayMillis", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java deleted file mode 100644 index dabcda89..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java +++ /dev/null @@ -1,550 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SCWebSuspectedViolation.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SCWebSuspectedViolationOuterClass { - private SCWebSuspectedViolationOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SCWebSuspectedViolationOrBuilder extends - // @@protoc_insertion_point(interface_extends:SCWebSuspectedViolation) - com.google.protobuf.MessageOrBuilder { - - /** - * bool suspectedViolation = 1; - * @return The suspectedViolation. - */ - boolean getSuspectedViolation(); - } - /** - * Protobuf type {@code SCWebSuspectedViolation} - */ - public static final class SCWebSuspectedViolation extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SCWebSuspectedViolation) - SCWebSuspectedViolationOrBuilder { - private static final long serialVersionUID = 0L; - // Use SCWebSuspectedViolation.newBuilder() to construct. - private SCWebSuspectedViolation(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SCWebSuspectedViolation() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SCWebSuspectedViolation(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.Builder.class); - } - - public static final int SUSPECTEDVIOLATION_FIELD_NUMBER = 1; - private boolean suspectedViolation_ = false; - /** - * bool suspectedViolation = 1; - * @return The suspectedViolation. - */ - @java.lang.Override - public boolean getSuspectedViolation() { - return suspectedViolation_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (suspectedViolation_ != false) { - output.writeBool(1, suspectedViolation_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (suspectedViolation_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(1, suspectedViolation_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation) obj; - - if (getSuspectedViolation() - != other.getSuspectedViolation()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SUSPECTEDVIOLATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getSuspectedViolation()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SCWebSuspectedViolation} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SCWebSuspectedViolation) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolationOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - suspectedViolation_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.suspectedViolation_ = suspectedViolation_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.getDefaultInstance()) return this; - if (other.getSuspectedViolation() != false) { - setSuspectedViolation(other.getSuspectedViolation()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - suspectedViolation_ = input.readBool(); - bitField0_ |= 0x00000001; - break; - } // case 8 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private boolean suspectedViolation_ ; - /** - * bool suspectedViolation = 1; - * @return The suspectedViolation. - */ - @java.lang.Override - public boolean getSuspectedViolation() { - return suspectedViolation_; - } - /** - * bool suspectedViolation = 1; - * @param value The suspectedViolation to set. - * @return This builder for chaining. - */ - public Builder setSuspectedViolation(boolean value) { - - suspectedViolation_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * bool suspectedViolation = 1; - * @return This builder for chaining. - */ - public Builder clearSuspectedViolation() { - bitField0_ = (bitField0_ & ~0x00000001); - suspectedViolation_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SCWebSuspectedViolation) - } - - // @@protoc_insertion_point(class_scope:SCWebSuspectedViolation) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SCWebSuspectedViolation parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SCWebSuspectedViolation_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SCWebSuspectedViolation_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\035SCWebSuspectedViolation.proto\"5\n\027SCWeb" + - "SuspectedViolation\022\032\n\022suspectedViolation" + - "\030\001 \001(\010B6\n4tech.ordinaryroad.live.chat.cl" + - "ient.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SCWebSuspectedViolation_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SCWebSuspectedViolation_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SCWebSuspectedViolation_descriptor, - new java.lang.String[] { "SuspectedViolation", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java deleted file mode 100644 index e1b66661..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java +++ /dev/null @@ -1,921 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SimpleUserInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class SimpleUserInfoOuterClass { - private SimpleUserInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SimpleUserInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:SimpleUserInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * string principalId = 1; - * @return The principalId. - */ - java.lang.String getPrincipalId(); - /** - * string principalId = 1; - * @return The bytes for principalId. - */ - com.google.protobuf.ByteString - getPrincipalIdBytes(); - - /** - * string userName = 2; - * @return The userName. - */ - java.lang.String getUserName(); - /** - * string userName = 2; - * @return The bytes for userName. - */ - com.google.protobuf.ByteString - getUserNameBytes(); - - /** - * string headUrl = 3; - * @return The headUrl. - */ - java.lang.String getHeadUrl(); - /** - * string headUrl = 3; - * @return The bytes for headUrl. - */ - com.google.protobuf.ByteString - getHeadUrlBytes(); - } - /** - * Protobuf type {@code SimpleUserInfo} - */ - public static final class SimpleUserInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SimpleUserInfo) - SimpleUserInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use SimpleUserInfo.newBuilder() to construct. - private SimpleUserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SimpleUserInfo() { - principalId_ = ""; - userName_ = ""; - headUrl_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SimpleUserInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder.class); - } - - public static final int PRINCIPALID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object principalId_ = ""; - /** - * string principalId = 1; - * @return The principalId. - */ - @java.lang.Override - public java.lang.String getPrincipalId() { - java.lang.Object ref = principalId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - principalId_ = s; - return s; - } - } - /** - * string principalId = 1; - * @return The bytes for principalId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getPrincipalIdBytes() { - java.lang.Object ref = principalId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - principalId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USERNAME_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object userName_ = ""; - /** - * string userName = 2; - * @return The userName. - */ - @java.lang.Override - public java.lang.String getUserName() { - java.lang.Object ref = userName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userName_ = s; - return s; - } - } - /** - * string userName = 2; - * @return The bytes for userName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUserNameBytes() { - java.lang.Object ref = userName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int HEADURL_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object headUrl_ = ""; - /** - * string headUrl = 3; - * @return The headUrl. - */ - @java.lang.Override - public java.lang.String getHeadUrl() { - java.lang.Object ref = headUrl_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - headUrl_ = s; - return s; - } - } - /** - * string headUrl = 3; - * @return The bytes for headUrl. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getHeadUrlBytes() { - java.lang.Object ref = headUrl_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - headUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(principalId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, principalId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(headUrl_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, headUrl_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(principalId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, principalId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(headUrl_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, headUrl_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo) obj; - - if (!getPrincipalId() - .equals(other.getPrincipalId())) return false; - if (!getUserName() - .equals(other.getUserName())) return false; - if (!getHeadUrl() - .equals(other.getHeadUrl())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + PRINCIPALID_FIELD_NUMBER; - hash = (53 * hash) + getPrincipalId().hashCode(); - hash = (37 * hash) + USERNAME_FIELD_NUMBER; - hash = (53 * hash) + getUserName().hashCode(); - hash = (37 * hash) + HEADURL_FIELD_NUMBER; - hash = (53 * hash) + getHeadUrl().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SimpleUserInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SimpleUserInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - principalId_ = ""; - userName_ = ""; - headUrl_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.principalId_ = principalId_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.userName_ = userName_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.headUrl_ = headUrl_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) return this; - if (!other.getPrincipalId().isEmpty()) { - principalId_ = other.principalId_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getUserName().isEmpty()) { - userName_ = other.userName_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (!other.getHeadUrl().isEmpty()) { - headUrl_ = other.headUrl_; - bitField0_ |= 0x00000004; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - principalId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - userName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - headUrl_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object principalId_ = ""; - /** - * string principalId = 1; - * @return The principalId. - */ - public java.lang.String getPrincipalId() { - java.lang.Object ref = principalId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - principalId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string principalId = 1; - * @return The bytes for principalId. - */ - public com.google.protobuf.ByteString - getPrincipalIdBytes() { - java.lang.Object ref = principalId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - principalId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string principalId = 1; - * @param value The principalId to set. - * @return This builder for chaining. - */ - public Builder setPrincipalId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - principalId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string principalId = 1; - * @return This builder for chaining. - */ - public Builder clearPrincipalId() { - principalId_ = getDefaultInstance().getPrincipalId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string principalId = 1; - * @param value The bytes for principalId to set. - * @return This builder for chaining. - */ - public Builder setPrincipalIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - principalId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object userName_ = ""; - /** - * string userName = 2; - * @return The userName. - */ - public java.lang.String getUserName() { - java.lang.Object ref = userName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string userName = 2; - * @return The bytes for userName. - */ - public com.google.protobuf.ByteString - getUserNameBytes() { - java.lang.Object ref = userName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string userName = 2; - * @param value The userName to set. - * @return This builder for chaining. - */ - public Builder setUserName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - userName_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string userName = 2; - * @return This builder for chaining. - */ - public Builder clearUserName() { - userName_ = getDefaultInstance().getUserName(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string userName = 2; - * @param value The bytes for userName to set. - * @return This builder for chaining. - */ - public Builder setUserNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - userName_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private java.lang.Object headUrl_ = ""; - /** - * string headUrl = 3; - * @return The headUrl. - */ - public java.lang.String getHeadUrl() { - java.lang.Object ref = headUrl_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - headUrl_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string headUrl = 3; - * @return The bytes for headUrl. - */ - public com.google.protobuf.ByteString - getHeadUrlBytes() { - java.lang.Object ref = headUrl_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - headUrl_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string headUrl = 3; - * @param value The headUrl to set. - * @return This builder for chaining. - */ - public Builder setHeadUrl( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - headUrl_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string headUrl = 3; - * @return This builder for chaining. - */ - public Builder clearHeadUrl() { - headUrl_ = getDefaultInstance().getHeadUrl(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string headUrl = 3; - * @param value The bytes for headUrl to set. - * @return This builder for chaining. - */ - public Builder setHeadUrlBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - headUrl_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SimpleUserInfo) - } - - // @@protoc_insertion_point(class_scope:SimpleUserInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SimpleUserInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SimpleUserInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SimpleUserInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024SimpleUserInfo.proto\"H\n\016SimpleUserInfo" + - "\022\023\n\013principalId\030\001 \001(\t\022\020\n\010userName\030\002 \001(\t\022" + - "\017\n\007headUrl\030\003 \001(\tB6\n4tech.ordinaryroad.li" + - "ve.chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_SimpleUserInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SimpleUserInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SimpleUserInfo_descriptor, - new java.lang.String[] { "PrincipalId", "UserName", "HeadUrl", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java deleted file mode 100644 index ded05b95..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java +++ /dev/null @@ -1,910 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: SocketMessage.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouCmdMsg; - -public final class SocketMessageOuterClass { - private SocketMessageOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface SocketMessageOrBuilder extends - // @@protoc_insertion_point(interface_extends:SocketMessage) - com.google.protobuf.MessageOrBuilder { - - /** - * .PayloadType payloadType = 1; - * @return The enum numeric value on the wire for payloadType. - */ - int getPayloadTypeValue(); - /** - * .PayloadType payloadType = 1; - * @return The payloadType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType(); - - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The enum numeric value on the wire for compressionType. - */ - int getCompressionTypeValue(); - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The compressionType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType(); - - /** - * bytes payload = 3; - * @return The payload. - */ - com.google.protobuf.ByteString getPayload(); - } - /** - * Protobuf type {@code SocketMessage} - */ - public static final class SocketMessage extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:SocketMessage) - SocketMessageOrBuilder, IKuaishouCmdMsg { - - @Override - public String getCmd() { - return getPayloadType().name(); - } - - @Override - public void setCmd(String cmd) { - // ignore - } - - @Override - public PayloadTypeOuterClass.PayloadType getCmdEnum() { - return getPayloadType(); - } - - private static final long serialVersionUID = 0L; - // Use SocketMessage.newBuilder() to construct. - private SocketMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private SocketMessage() { - payloadType_ = 0; - compressionType_ = 0; - payload_ = com.google.protobuf.ByteString.EMPTY; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new SocketMessage(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.Builder.class); - } - - /** - * Protobuf enum {@code SocketMessage.CompressionType} - */ - public enum CompressionType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN = 0; - */ - UNKNOWN(0), - /** - * NONE = 1; - */ - NONE(1), - /** - * GZIP = 2; - */ - GZIP(2), - /** - * AES = 3; - */ - AES(3), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN = 0; - */ - public static final int UNKNOWN_VALUE = 0; - /** - * NONE = 1; - */ - public static final int NONE_VALUE = 1; - /** - * GZIP = 2; - */ - public static final int GZIP_VALUE = 2; - /** - * AES = 3; - */ - public static final int AES_VALUE = 3; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static CompressionType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static CompressionType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN; - case 1: return NONE; - case 2: return GZIP; - case 3: return AES; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - CompressionType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public CompressionType findValueByNumber(int number) { - return CompressionType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDescriptor().getEnumTypes().get(0); - } - - private static final CompressionType[] VALUES = values(); - - public static CompressionType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private CompressionType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:SocketMessage.CompressionType) - } - - public static final int PAYLOADTYPE_FIELD_NUMBER = 1; - private int payloadType_ = 0; - /** - * .PayloadType payloadType = 1; - * @return The enum numeric value on the wire for payloadType. - */ - @java.lang.Override public int getPayloadTypeValue() { - return payloadType_; - } - /** - * .PayloadType payloadType = 1; - * @return The payloadType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.forNumber(payloadType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNRECOGNIZED : result; - } - - public static final int COMPRESSIONTYPE_FIELD_NUMBER = 2; - private int compressionType_ = 0; - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The enum numeric value on the wire for compressionType. - */ - @java.lang.Override public int getCompressionTypeValue() { - return compressionType_; - } - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The compressionType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.forNumber(compressionType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNRECOGNIZED : result; - } - - public static final int PAYLOAD_FIELD_NUMBER = 3; - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 3; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (payloadType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNKNOWN.getNumber()) { - output.writeEnum(1, payloadType_); - } - if (compressionType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNKNOWN.getNumber()) { - output.writeEnum(2, compressionType_); - } - if (!payload_.isEmpty()) { - output.writeBytes(3, payload_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (payloadType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNKNOWN.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(1, payloadType_); - } - if (compressionType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNKNOWN.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(2, compressionType_); - } - if (!payload_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(3, payload_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage) obj; - - if (payloadType_ != other.payloadType_) return false; - if (compressionType_ != other.compressionType_) return false; - if (!getPayload() - .equals(other.getPayload())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + PAYLOADTYPE_FIELD_NUMBER; - hash = (53 * hash) + payloadType_; - hash = (37 * hash) + COMPRESSIONTYPE_FIELD_NUMBER; - hash = (53 * hash) + compressionType_; - hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; - hash = (53 * hash) + getPayload().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code SocketMessage} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:SocketMessage) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessageOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - payloadType_ = 0; - compressionType_ = 0; - payload_ = com.google.protobuf.ByteString.EMPTY; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.payloadType_ = payloadType_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.compressionType_ = compressionType_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.payload_ = payload_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDefaultInstance()) return this; - if (other.payloadType_ != 0) { - setPayloadTypeValue(other.getPayloadTypeValue()); - } - if (other.compressionType_ != 0) { - setCompressionTypeValue(other.getCompressionTypeValue()); - } - if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { - setPayload(other.getPayload()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - payloadType_ = input.readEnum(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 16: { - compressionType_ = input.readEnum(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 26: { - payload_ = input.readBytes(); - bitField0_ |= 0x00000004; - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private int payloadType_ = 0; - /** - * .PayloadType payloadType = 1; - * @return The enum numeric value on the wire for payloadType. - */ - @java.lang.Override public int getPayloadTypeValue() { - return payloadType_; - } - /** - * .PayloadType payloadType = 1; - * @param value The enum numeric value on the wire for payloadType to set. - * @return This builder for chaining. - */ - public Builder setPayloadTypeValue(int value) { - payloadType_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .PayloadType payloadType = 1; - * @return The payloadType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.forNumber(payloadType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNRECOGNIZED : result; - } - /** - * .PayloadType payloadType = 1; - * @param value The payloadType to set. - * @return This builder for chaining. - */ - public Builder setPayloadType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - payloadType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .PayloadType payloadType = 1; - * @return This builder for chaining. - */ - public Builder clearPayloadType() { - bitField0_ = (bitField0_ & ~0x00000001); - payloadType_ = 0; - onChanged(); - return this; - } - - private int compressionType_ = 0; - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The enum numeric value on the wire for compressionType. - */ - @java.lang.Override public int getCompressionTypeValue() { - return compressionType_; - } - /** - * .SocketMessage.CompressionType compressionType = 2; - * @param value The enum numeric value on the wire for compressionType to set. - * @return This builder for chaining. - */ - public Builder setCompressionTypeValue(int value) { - compressionType_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return The compressionType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.forNumber(compressionType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNRECOGNIZED : result; - } - /** - * .SocketMessage.CompressionType compressionType = 2; - * @param value The compressionType to set. - * @return This builder for chaining. - */ - public Builder setCompressionType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000002; - compressionType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .SocketMessage.CompressionType compressionType = 2; - * @return This builder for chaining. - */ - public Builder clearCompressionType() { - bitField0_ = (bitField0_ & ~0x00000002); - compressionType_ = 0; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; - /** - * bytes payload = 3; - * @return The payload. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPayload() { - return payload_; - } - /** - * bytes payload = 3; - * @param value The payload to set. - * @return This builder for chaining. - */ - public Builder setPayload(com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - payload_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bytes payload = 3; - * @return This builder for chaining. - */ - public Builder clearPayload() { - bitField0_ = (bitField0_ & ~0x00000004); - payload_ = getDefaultInstance().getPayload(); - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:SocketMessage) - } - - // @@protoc_insertion_point(class_scope:SocketMessage) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public SocketMessage parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_SocketMessage_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_SocketMessage_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\023SocketMessage.proto\032\021PayloadType.proto" + - "\"\271\001\n\rSocketMessage\022!\n\013payloadType\030\001 \001(\0162" + - "\014.PayloadType\0227\n\017compressionType\030\002 \001(\0162\036" + - ".SocketMessage.CompressionType\022\017\n\007payloa" + - "d\030\003 \001(\014\";\n\017CompressionType\022\013\n\007UNKNOWN\020\000\022" + - "\010\n\004NONE\020\001\022\010\n\004GZIP\020\002\022\007\n\003AES\020\003B6\n4tech.ord" + - "inaryroad.live.chat.client.kuaishou.prot" + - "obufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor(), - }); - internal_static_SocketMessage_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_SocketMessage_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_SocketMessage_descriptor, - new java.lang.String[] { "PayloadType", "CompressionType", "Payload", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java deleted file mode 100644 index f09acea2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java +++ /dev/null @@ -1,2121 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: UserInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class UserInfoOuterClass { - private UserInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface UserInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:UserInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * uint64 userId = 1; - * @return The userId. - */ - long getUserId(); - - /** - * string userName = 2; - * @return The userName. - */ - java.lang.String getUserName(); - /** - * string userName = 2; - * @return The bytes for userName. - */ - com.google.protobuf.ByteString - getUserNameBytes(); - - /** - * string userGender = 3; - * @return The userGender. - */ - java.lang.String getUserGender(); - /** - * string userGender = 3; - * @return The bytes for userGender. - */ - com.google.protobuf.ByteString - getUserGenderBytes(); - - /** - * string userText = 4; - * @return The userText. - */ - java.lang.String getUserText(); - /** - * string userText = 4; - * @return The bytes for userText. - */ - com.google.protobuf.ByteString - getUserTextBytes(); - - /** - * repeated .PicUrl headUrls = 5; - */ - java.util.List - getHeadUrlsList(); - /** - * repeated .PicUrl headUrls = 5; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index); - /** - * repeated .PicUrl headUrls = 5; - */ - int getHeadUrlsCount(); - /** - * repeated .PicUrl headUrls = 5; - */ - java.util.List - getHeadUrlsOrBuilderList(); - /** - * repeated .PicUrl headUrls = 5; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( - int index); - - /** - * bool verified = 6; - * @return The verified. - */ - boolean getVerified(); - - /** - * string sUserId = 7; - * @return The sUserId. - */ - java.lang.String getSUserId(); - /** - * string sUserId = 7; - * @return The bytes for sUserId. - */ - com.google.protobuf.ByteString - getSUserIdBytes(); - - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - java.util.List - getHttpsHeadUrlsList(); - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index); - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - int getHttpsHeadUrlsCount(); - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - java.util.List - getHttpsHeadUrlsOrBuilderList(); - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( - int index); - - /** - * string kwaiId = 9; - * @return The kwaiId. - */ - java.lang.String getKwaiId(); - /** - * string kwaiId = 9; - * @return The bytes for kwaiId. - */ - com.google.protobuf.ByteString - getKwaiIdBytes(); - } - /** - * Protobuf type {@code UserInfo} - */ - public static final class UserInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:UserInfo) - UserInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use UserInfo.newBuilder() to construct. - private UserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private UserInfo() { - userName_ = ""; - userGender_ = ""; - userText_ = ""; - headUrls_ = java.util.Collections.emptyList(); - sUserId_ = ""; - httpsHeadUrls_ = java.util.Collections.emptyList(); - kwaiId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new UserInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.Builder.class); - } - - public static final int USERID_FIELD_NUMBER = 1; - private long userId_ = 0L; - /** - * uint64 userId = 1; - * @return The userId. - */ - @java.lang.Override - public long getUserId() { - return userId_; - } - - public static final int USERNAME_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object userName_ = ""; - /** - * string userName = 2; - * @return The userName. - */ - @java.lang.Override - public java.lang.String getUserName() { - java.lang.Object ref = userName_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userName_ = s; - return s; - } - } - /** - * string userName = 2; - * @return The bytes for userName. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUserNameBytes() { - java.lang.Object ref = userName_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USERGENDER_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object userGender_ = ""; - /** - * string userGender = 3; - * @return The userGender. - */ - @java.lang.Override - public java.lang.String getUserGender() { - java.lang.Object ref = userGender_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userGender_ = s; - return s; - } - } - /** - * string userGender = 3; - * @return The bytes for userGender. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUserGenderBytes() { - java.lang.Object ref = userGender_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userGender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USERTEXT_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object userText_ = ""; - /** - * string userText = 4; - * @return The userText. - */ - @java.lang.Override - public java.lang.String getUserText() { - java.lang.Object ref = userText_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userText_ = s; - return s; - } - } - /** - * string userText = 4; - * @return The bytes for userText. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getUserTextBytes() { - java.lang.Object ref = userText_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int HEADURLS_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private java.util.List headUrls_; - /** - * repeated .PicUrl headUrls = 5; - */ - @java.lang.Override - public java.util.List getHeadUrlsList() { - return headUrls_; - } - /** - * repeated .PicUrl headUrls = 5; - */ - @java.lang.Override - public java.util.List - getHeadUrlsOrBuilderList() { - return headUrls_; - } - /** - * repeated .PicUrl headUrls = 5; - */ - @java.lang.Override - public int getHeadUrlsCount() { - return headUrls_.size(); - } - /** - * repeated .PicUrl headUrls = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index) { - return headUrls_.get(index); - } - /** - * repeated .PicUrl headUrls = 5; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( - int index) { - return headUrls_.get(index); - } - - public static final int VERIFIED_FIELD_NUMBER = 6; - private boolean verified_ = false; - /** - * bool verified = 6; - * @return The verified. - */ - @java.lang.Override - public boolean getVerified() { - return verified_; - } - - public static final int SUSERID_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object sUserId_ = ""; - /** - * string sUserId = 7; - * @return The sUserId. - */ - @java.lang.Override - public java.lang.String getSUserId() { - java.lang.Object ref = sUserId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sUserId_ = s; - return s; - } - } - /** - * string sUserId = 7; - * @return The bytes for sUserId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSUserIdBytes() { - java.lang.Object ref = sUserId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sUserId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int HTTPSHEADURLS_FIELD_NUMBER = 8; - @SuppressWarnings("serial") - private java.util.List httpsHeadUrls_; - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - @java.lang.Override - public java.util.List getHttpsHeadUrlsList() { - return httpsHeadUrls_; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - @java.lang.Override - public java.util.List - getHttpsHeadUrlsOrBuilderList() { - return httpsHeadUrls_; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - @java.lang.Override - public int getHttpsHeadUrlsCount() { - return httpsHeadUrls_.size(); - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index) { - return httpsHeadUrls_.get(index); - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( - int index) { - return httpsHeadUrls_.get(index); - } - - public static final int KWAIID_FIELD_NUMBER = 9; - @SuppressWarnings("serial") - private volatile java.lang.Object kwaiId_ = ""; - /** - * string kwaiId = 9; - * @return The kwaiId. - */ - @java.lang.Override - public java.lang.String getKwaiId() { - java.lang.Object ref = kwaiId_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - kwaiId_ = s; - return s; - } - } - /** - * string kwaiId = 9; - * @return The bytes for kwaiId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getKwaiIdBytes() { - java.lang.Object ref = kwaiId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - kwaiId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (userId_ != 0L) { - output.writeUInt64(1, userId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userGender_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, userGender_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userText_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, userText_); - } - for (int i = 0; i < headUrls_.size(); i++) { - output.writeMessage(5, headUrls_.get(i)); - } - if (verified_ != false) { - output.writeBool(6, verified_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sUserId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, sUserId_); - } - for (int i = 0; i < httpsHeadUrls_.size(); i++) { - output.writeMessage(8, httpsHeadUrls_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kwaiId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 9, kwaiId_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (userId_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(1, userId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userGender_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, userGender_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userText_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, userText_); - } - for (int i = 0; i < headUrls_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, headUrls_.get(i)); - } - if (verified_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(6, verified_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sUserId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, sUserId_); - } - for (int i = 0; i < httpsHeadUrls_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, httpsHeadUrls_.get(i)); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kwaiId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, kwaiId_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo) obj; - - if (getUserId() - != other.getUserId()) return false; - if (!getUserName() - .equals(other.getUserName())) return false; - if (!getUserGender() - .equals(other.getUserGender())) return false; - if (!getUserText() - .equals(other.getUserText())) return false; - if (!getHeadUrlsList() - .equals(other.getHeadUrlsList())) return false; - if (getVerified() - != other.getVerified()) return false; - if (!getSUserId() - .equals(other.getSUserId())) return false; - if (!getHttpsHeadUrlsList() - .equals(other.getHttpsHeadUrlsList())) return false; - if (!getKwaiId() - .equals(other.getKwaiId())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + USERID_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getUserId()); - hash = (37 * hash) + USERNAME_FIELD_NUMBER; - hash = (53 * hash) + getUserName().hashCode(); - hash = (37 * hash) + USERGENDER_FIELD_NUMBER; - hash = (53 * hash) + getUserGender().hashCode(); - hash = (37 * hash) + USERTEXT_FIELD_NUMBER; - hash = (53 * hash) + getUserText().hashCode(); - if (getHeadUrlsCount() > 0) { - hash = (37 * hash) + HEADURLS_FIELD_NUMBER; - hash = (53 * hash) + getHeadUrlsList().hashCode(); - } - hash = (37 * hash) + VERIFIED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getVerified()); - hash = (37 * hash) + SUSERID_FIELD_NUMBER; - hash = (53 * hash) + getSUserId().hashCode(); - if (getHttpsHeadUrlsCount() > 0) { - hash = (37 * hash) + HTTPSHEADURLS_FIELD_NUMBER; - hash = (53 * hash) + getHttpsHeadUrlsList().hashCode(); - } - hash = (37 * hash) + KWAIID_FIELD_NUMBER; - hash = (53 * hash) + getKwaiId().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code UserInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:UserInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - userId_ = 0L; - userName_ = ""; - userGender_ = ""; - userText_ = ""; - if (headUrlsBuilder_ == null) { - headUrls_ = java.util.Collections.emptyList(); - } else { - headUrls_ = null; - headUrlsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000010); - verified_ = false; - sUserId_ = ""; - if (httpsHeadUrlsBuilder_ == null) { - httpsHeadUrls_ = java.util.Collections.emptyList(); - } else { - httpsHeadUrls_ = null; - httpsHeadUrlsBuilder_.clear(); - } - bitField0_ = (bitField0_ & ~0x00000080); - kwaiId_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo(this); - buildPartialRepeatedFields(result); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result) { - if (headUrlsBuilder_ == null) { - if (((bitField0_ & 0x00000010) != 0)) { - headUrls_ = java.util.Collections.unmodifiableList(headUrls_); - bitField0_ = (bitField0_ & ~0x00000010); - } - result.headUrls_ = headUrls_; - } else { - result.headUrls_ = headUrlsBuilder_.build(); - } - if (httpsHeadUrlsBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0)) { - httpsHeadUrls_ = java.util.Collections.unmodifiableList(httpsHeadUrls_); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.httpsHeadUrls_ = httpsHeadUrls_; - } else { - result.httpsHeadUrls_ = httpsHeadUrlsBuilder_.build(); - } - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.userId_ = userId_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.userName_ = userName_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.userGender_ = userGender_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.userText_ = userText_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.verified_ = verified_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.sUserId_ = sUserId_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.kwaiId_ = kwaiId_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.getDefaultInstance()) return this; - if (other.getUserId() != 0L) { - setUserId(other.getUserId()); - } - if (!other.getUserName().isEmpty()) { - userName_ = other.userName_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (!other.getUserGender().isEmpty()) { - userGender_ = other.userGender_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (!other.getUserText().isEmpty()) { - userText_ = other.userText_; - bitField0_ |= 0x00000008; - onChanged(); - } - if (headUrlsBuilder_ == null) { - if (!other.headUrls_.isEmpty()) { - if (headUrls_.isEmpty()) { - headUrls_ = other.headUrls_; - bitField0_ = (bitField0_ & ~0x00000010); - } else { - ensureHeadUrlsIsMutable(); - headUrls_.addAll(other.headUrls_); - } - onChanged(); - } - } else { - if (!other.headUrls_.isEmpty()) { - if (headUrlsBuilder_.isEmpty()) { - headUrlsBuilder_.dispose(); - headUrlsBuilder_ = null; - headUrls_ = other.headUrls_; - bitField0_ = (bitField0_ & ~0x00000010); - headUrlsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getHeadUrlsFieldBuilder() : null; - } else { - headUrlsBuilder_.addAllMessages(other.headUrls_); - } - } - } - if (other.getVerified() != false) { - setVerified(other.getVerified()); - } - if (!other.getSUserId().isEmpty()) { - sUserId_ = other.sUserId_; - bitField0_ |= 0x00000040; - onChanged(); - } - if (httpsHeadUrlsBuilder_ == null) { - if (!other.httpsHeadUrls_.isEmpty()) { - if (httpsHeadUrls_.isEmpty()) { - httpsHeadUrls_ = other.httpsHeadUrls_; - bitField0_ = (bitField0_ & ~0x00000080); - } else { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.addAll(other.httpsHeadUrls_); - } - onChanged(); - } - } else { - if (!other.httpsHeadUrls_.isEmpty()) { - if (httpsHeadUrlsBuilder_.isEmpty()) { - httpsHeadUrlsBuilder_.dispose(); - httpsHeadUrlsBuilder_ = null; - httpsHeadUrls_ = other.httpsHeadUrls_; - bitField0_ = (bitField0_ & ~0x00000080); - httpsHeadUrlsBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getHttpsHeadUrlsFieldBuilder() : null; - } else { - httpsHeadUrlsBuilder_.addAllMessages(other.httpsHeadUrls_); - } - } - } - if (!other.getKwaiId().isEmpty()) { - kwaiId_ = other.kwaiId_; - bitField0_ |= 0x00000100; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - userId_ = input.readUInt64(); - bitField0_ |= 0x00000001; - break; - } // case 8 - case 18: { - userName_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - userGender_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - userText_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 42: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), - extensionRegistry); - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - headUrls_.add(m); - } else { - headUrlsBuilder_.addMessage(m); - } - break; - } // case 42 - case 48: { - verified_ = input.readBool(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - sUserId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - case 66: { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = - input.readMessage( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), - extensionRegistry); - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.add(m); - } else { - httpsHeadUrlsBuilder_.addMessage(m); - } - break; - } // case 66 - case 74: { - kwaiId_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000100; - break; - } // case 74 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private long userId_ ; - /** - * uint64 userId = 1; - * @return The userId. - */ - @java.lang.Override - public long getUserId() { - return userId_; - } - /** - * uint64 userId = 1; - * @param value The userId to set. - * @return This builder for chaining. - */ - public Builder setUserId(long value) { - - userId_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * uint64 userId = 1; - * @return This builder for chaining. - */ - public Builder clearUserId() { - bitField0_ = (bitField0_ & ~0x00000001); - userId_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object userName_ = ""; - /** - * string userName = 2; - * @return The userName. - */ - public java.lang.String getUserName() { - java.lang.Object ref = userName_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userName_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string userName = 2; - * @return The bytes for userName. - */ - public com.google.protobuf.ByteString - getUserNameBytes() { - java.lang.Object ref = userName_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userName_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string userName = 2; - * @param value The userName to set. - * @return This builder for chaining. - */ - public Builder setUserName( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - userName_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string userName = 2; - * @return This builder for chaining. - */ - public Builder clearUserName() { - userName_ = getDefaultInstance().getUserName(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string userName = 2; - * @param value The bytes for userName to set. - * @return This builder for chaining. - */ - public Builder setUserNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - userName_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private java.lang.Object userGender_ = ""; - /** - * string userGender = 3; - * @return The userGender. - */ - public java.lang.String getUserGender() { - java.lang.Object ref = userGender_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userGender_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string userGender = 3; - * @return The bytes for userGender. - */ - public com.google.protobuf.ByteString - getUserGenderBytes() { - java.lang.Object ref = userGender_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userGender_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string userGender = 3; - * @param value The userGender to set. - * @return This builder for chaining. - */ - public Builder setUserGender( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - userGender_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string userGender = 3; - * @return This builder for chaining. - */ - public Builder clearUserGender() { - userGender_ = getDefaultInstance().getUserGender(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string userGender = 3; - * @param value The bytes for userGender to set. - * @return This builder for chaining. - */ - public Builder setUserGenderBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - userGender_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private java.lang.Object userText_ = ""; - /** - * string userText = 4; - * @return The userText. - */ - public java.lang.String getUserText() { - java.lang.Object ref = userText_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - userText_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string userText = 4; - * @return The bytes for userText. - */ - public com.google.protobuf.ByteString - getUserTextBytes() { - java.lang.Object ref = userText_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - userText_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string userText = 4; - * @param value The userText to set. - * @return This builder for chaining. - */ - public Builder setUserText( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - userText_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string userText = 4; - * @return This builder for chaining. - */ - public Builder clearUserText() { - userText_ = getDefaultInstance().getUserText(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string userText = 4; - * @param value The bytes for userText to set. - * @return This builder for chaining. - */ - public Builder setUserTextBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - userText_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - - private java.util.List headUrls_ = - java.util.Collections.emptyList(); - private void ensureHeadUrlsIsMutable() { - if (!((bitField0_ & 0x00000010) != 0)) { - headUrls_ = new java.util.ArrayList(headUrls_); - bitField0_ |= 0x00000010; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> headUrlsBuilder_; - - /** - * repeated .PicUrl headUrls = 5; - */ - public java.util.List getHeadUrlsList() { - if (headUrlsBuilder_ == null) { - return java.util.Collections.unmodifiableList(headUrls_); - } else { - return headUrlsBuilder_.getMessageList(); - } - } - /** - * repeated .PicUrl headUrls = 5; - */ - public int getHeadUrlsCount() { - if (headUrlsBuilder_ == null) { - return headUrls_.size(); - } else { - return headUrlsBuilder_.getCount(); - } - } - /** - * repeated .PicUrl headUrls = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index) { - if (headUrlsBuilder_ == null) { - return headUrls_.get(index); - } else { - return headUrlsBuilder_.getMessage(index); - } - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder setHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (headUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadUrlsIsMutable(); - headUrls_.set(index, value); - onChanged(); - } else { - headUrlsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder setHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - headUrls_.set(index, builderForValue.build()); - onChanged(); - } else { - headUrlsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder addHeadUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (headUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadUrlsIsMutable(); - headUrls_.add(value); - onChanged(); - } else { - headUrlsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder addHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (headUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHeadUrlsIsMutable(); - headUrls_.add(index, value); - onChanged(); - } else { - headUrlsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder addHeadUrls( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - headUrls_.add(builderForValue.build()); - onChanged(); - } else { - headUrlsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder addHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - headUrls_.add(index, builderForValue.build()); - onChanged(); - } else { - headUrlsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder addAllHeadUrls( - java.lang.Iterable values) { - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, headUrls_); - onChanged(); - } else { - headUrlsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder clearHeadUrls() { - if (headUrlsBuilder_ == null) { - headUrls_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - } else { - headUrlsBuilder_.clear(); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public Builder removeHeadUrls(int index) { - if (headUrlsBuilder_ == null) { - ensureHeadUrlsIsMutable(); - headUrls_.remove(index); - onChanged(); - } else { - headUrlsBuilder_.remove(index); - } - return this; - } - /** - * repeated .PicUrl headUrls = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getHeadUrlsBuilder( - int index) { - return getHeadUrlsFieldBuilder().getBuilder(index); - } - /** - * repeated .PicUrl headUrls = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( - int index) { - if (headUrlsBuilder_ == null) { - return headUrls_.get(index); } else { - return headUrlsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .PicUrl headUrls = 5; - */ - public java.util.List - getHeadUrlsOrBuilderList() { - if (headUrlsBuilder_ != null) { - return headUrlsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(headUrls_); - } - } - /** - * repeated .PicUrl headUrls = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHeadUrlsBuilder() { - return getHeadUrlsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl headUrls = 5; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHeadUrlsBuilder( - int index) { - return getHeadUrlsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl headUrls = 5; - */ - public java.util.List - getHeadUrlsBuilderList() { - return getHeadUrlsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> - getHeadUrlsFieldBuilder() { - if (headUrlsBuilder_ == null) { - headUrlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( - headUrls_, - ((bitField0_ & 0x00000010) != 0), - getParentForChildren(), - isClean()); - headUrls_ = null; - } - return headUrlsBuilder_; - } - - private boolean verified_ ; - /** - * bool verified = 6; - * @return The verified. - */ - @java.lang.Override - public boolean getVerified() { - return verified_; - } - /** - * bool verified = 6; - * @param value The verified to set. - * @return This builder for chaining. - */ - public Builder setVerified(boolean value) { - - verified_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * bool verified = 6; - * @return This builder for chaining. - */ - public Builder clearVerified() { - bitField0_ = (bitField0_ & ~0x00000020); - verified_ = false; - onChanged(); - return this; - } - - private java.lang.Object sUserId_ = ""; - /** - * string sUserId = 7; - * @return The sUserId. - */ - public java.lang.String getSUserId() { - java.lang.Object ref = sUserId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sUserId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string sUserId = 7; - * @return The bytes for sUserId. - */ - public com.google.protobuf.ByteString - getSUserIdBytes() { - java.lang.Object ref = sUserId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sUserId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string sUserId = 7; - * @param value The sUserId to set. - * @return This builder for chaining. - */ - public Builder setSUserId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - sUserId_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string sUserId = 7; - * @return This builder for chaining. - */ - public Builder clearSUserId() { - sUserId_ = getDefaultInstance().getSUserId(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string sUserId = 7; - * @param value The bytes for sUserId to set. - * @return This builder for chaining. - */ - public Builder setSUserIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - sUserId_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - - private java.util.List httpsHeadUrls_ = - java.util.Collections.emptyList(); - private void ensureHttpsHeadUrlsIsMutable() { - if (!((bitField0_ & 0x00000080) != 0)) { - httpsHeadUrls_ = new java.util.ArrayList(httpsHeadUrls_); - bitField0_ |= 0x00000080; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> httpsHeadUrlsBuilder_; - - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public java.util.List getHttpsHeadUrlsList() { - if (httpsHeadUrlsBuilder_ == null) { - return java.util.Collections.unmodifiableList(httpsHeadUrls_); - } else { - return httpsHeadUrlsBuilder_.getMessageList(); - } - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public int getHttpsHeadUrlsCount() { - if (httpsHeadUrlsBuilder_ == null) { - return httpsHeadUrls_.size(); - } else { - return httpsHeadUrlsBuilder_.getCount(); - } - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index) { - if (httpsHeadUrlsBuilder_ == null) { - return httpsHeadUrls_.get(index); - } else { - return httpsHeadUrlsBuilder_.getMessage(index); - } - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder setHttpsHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (httpsHeadUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.set(index, value); - onChanged(); - } else { - httpsHeadUrlsBuilder_.setMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder setHttpsHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.set(index, builderForValue.build()); - onChanged(); - } else { - httpsHeadUrlsBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder addHttpsHeadUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (httpsHeadUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.add(value); - onChanged(); - } else { - httpsHeadUrlsBuilder_.addMessage(value); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder addHttpsHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { - if (httpsHeadUrlsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.add(index, value); - onChanged(); - } else { - httpsHeadUrlsBuilder_.addMessage(index, value); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder addHttpsHeadUrls( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.add(builderForValue.build()); - onChanged(); - } else { - httpsHeadUrlsBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder addHttpsHeadUrls( - int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.add(index, builderForValue.build()); - onChanged(); - } else { - httpsHeadUrlsBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder addAllHttpsHeadUrls( - java.lang.Iterable values) { - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, httpsHeadUrls_); - onChanged(); - } else { - httpsHeadUrlsBuilder_.addAllMessages(values); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder clearHttpsHeadUrls() { - if (httpsHeadUrlsBuilder_ == null) { - httpsHeadUrls_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); - } else { - httpsHeadUrlsBuilder_.clear(); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public Builder removeHttpsHeadUrls(int index) { - if (httpsHeadUrlsBuilder_ == null) { - ensureHttpsHeadUrlsIsMutable(); - httpsHeadUrls_.remove(index); - onChanged(); - } else { - httpsHeadUrlsBuilder_.remove(index); - } - return this; - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getHttpsHeadUrlsBuilder( - int index) { - return getHttpsHeadUrlsFieldBuilder().getBuilder(index); - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( - int index) { - if (httpsHeadUrlsBuilder_ == null) { - return httpsHeadUrls_.get(index); } else { - return httpsHeadUrlsBuilder_.getMessageOrBuilder(index); - } - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public java.util.List - getHttpsHeadUrlsOrBuilderList() { - if (httpsHeadUrlsBuilder_ != null) { - return httpsHeadUrlsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(httpsHeadUrls_); - } - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHttpsHeadUrlsBuilder() { - return getHttpsHeadUrlsFieldBuilder().addBuilder( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHttpsHeadUrlsBuilder( - int index) { - return getHttpsHeadUrlsFieldBuilder().addBuilder( - index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); - } - /** - * repeated .PicUrl httpsHeadUrls = 8; - */ - public java.util.List - getHttpsHeadUrlsBuilderList() { - return getHttpsHeadUrlsFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> - getHttpsHeadUrlsFieldBuilder() { - if (httpsHeadUrlsBuilder_ == null) { - httpsHeadUrlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( - httpsHeadUrls_, - ((bitField0_ & 0x00000080) != 0), - getParentForChildren(), - isClean()); - httpsHeadUrls_ = null; - } - return httpsHeadUrlsBuilder_; - } - - private java.lang.Object kwaiId_ = ""; - /** - * string kwaiId = 9; - * @return The kwaiId. - */ - public java.lang.String getKwaiId() { - java.lang.Object ref = kwaiId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - kwaiId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string kwaiId = 9; - * @return The bytes for kwaiId. - */ - public com.google.protobuf.ByteString - getKwaiIdBytes() { - java.lang.Object ref = kwaiId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - kwaiId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string kwaiId = 9; - * @param value The kwaiId to set. - * @return This builder for chaining. - */ - public Builder setKwaiId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - kwaiId_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * string kwaiId = 9; - * @return This builder for chaining. - */ - public Builder clearKwaiId() { - kwaiId_ = getDefaultInstance().getKwaiId(); - bitField0_ = (bitField0_ & ~0x00000100); - onChanged(); - return this; - } - /** - * string kwaiId = 9; - * @param value The bytes for kwaiId to set. - * @return This builder for chaining. - */ - public Builder setKwaiIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - kwaiId_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:UserInfo) - } - - // @@protoc_insertion_point(class_scope:UserInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public UserInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_UserInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_UserInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\016UserInfo.proto\032\014PicUrl.proto\"\300\001\n\010UserI" + - "nfo\022\016\n\006userId\030\001 \001(\004\022\020\n\010userName\030\002 \001(\t\022\022\n" + - "\nuserGender\030\003 \001(\t\022\020\n\010userText\030\004 \001(\t\022\031\n\010h" + - "eadUrls\030\005 \003(\0132\007.PicUrl\022\020\n\010verified\030\006 \001(\010" + - "\022\017\n\007sUserId\030\007 \001(\t\022\036\n\rhttpsHeadUrls\030\010 \003(\013" + - "2\007.PicUrl\022\016\n\006kwaiId\030\t \001(\tB6\n4tech.ordina" + - "ryroad.live.chat.client.kuaishou.protobu" + - "fb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(), - }); - internal_static_UserInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_UserInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_UserInfo_descriptor, - new java.lang.String[] { "UserId", "UserName", "UserGender", "UserText", "HeadUrls", "Verified", "SUserId", "HttpsHeadUrls", "KwaiId", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java deleted file mode 100644 index 49a905a6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java +++ /dev/null @@ -1,846 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebComboCommentFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebComboCommentFeedOuterClass { - private WebComboCommentFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebComboCommentFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebComboCommentFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * string content = 2; - * @return The content. - */ - java.lang.String getContent(); - /** - * string content = 2; - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - - /** - * uint32 comboCount = 3; - * @return The comboCount. - */ - int getComboCount(); - } - /** - * Protobuf type {@code WebComboCommentFeed} - */ - public static final class WebComboCommentFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebComboCommentFeed) - WebComboCommentFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebComboCommentFeed.newBuilder() to construct. - private WebComboCommentFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebComboCommentFeed() { - id_ = ""; - content_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebComboCommentFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CONTENT_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object content_ = ""; - /** - * string content = 2; - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * string content = 2; - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int COMBOCOUNT_FIELD_NUMBER = 3; - private int comboCount_ = 0; - /** - * uint32 comboCount = 3; - * @return The comboCount. - */ - @java.lang.Override - public int getComboCount() { - return comboCount_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_); - } - if (comboCount_ != 0) { - output.writeUInt32(3, comboCount_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_); - } - if (comboCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(3, comboCount_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (!getContent() - .equals(other.getContent())) return false; - if (getComboCount() - != other.getComboCount()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (37 * hash) + COMBOCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getComboCount(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebComboCommentFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebComboCommentFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - content_ = ""; - comboCount_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.content_ = content_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.comboCount_ = comboCount_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (!other.getContent().isEmpty()) { - content_ = other.content_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getComboCount() != 0) { - setComboCount(other.getComboCount()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - content_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - comboCount_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } // case 24 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private java.lang.Object content_ = ""; - /** - * string content = 2; - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string content = 2; - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string content = 2; - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - content_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * string content = 2; - * @return This builder for chaining. - */ - public Builder clearContent() { - content_ = getDefaultInstance().getContent(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - /** - * string content = 2; - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - content_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private int comboCount_ ; - /** - * uint32 comboCount = 3; - * @return The comboCount. - */ - @java.lang.Override - public int getComboCount() { - return comboCount_; - } - /** - * uint32 comboCount = 3; - * @param value The comboCount to set. - * @return This builder for chaining. - */ - public Builder setComboCount(int value) { - - comboCount_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint32 comboCount = 3; - * @return This builder for chaining. - */ - public Builder clearComboCount() { - bitField0_ = (bitField0_ & ~0x00000004); - comboCount_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebComboCommentFeed) - } - - // @@protoc_insertion_point(class_scope:WebComboCommentFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebComboCommentFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebComboCommentFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebComboCommentFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\031WebComboCommentFeed.proto\"F\n\023WebComboC" + - "ommentFeed\022\n\n\002id\030\001 \001(\t\022\017\n\007content\030\002 \001(\t\022" + - "\022\n\ncomboCount\030\003 \001(\rB6\n4tech.ordinaryroad" + - ".live.chat.client.kuaishou.protobufb\006pro" + - "to3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - internal_static_WebComboCommentFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebComboCommentFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebComboCommentFeed_descriptor, - new java.lang.String[] { "Id", "Content", "ComboCount", }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java deleted file mode 100644 index efa98705..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java +++ /dev/null @@ -1,1651 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebCommentFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebCommentFeedOuterClass { - private WebCommentFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebCommentFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebCommentFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * string content = 3; - * @return The content. - */ - java.lang.String getContent(); - /** - * string content = 3; - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - java.lang.String getDeviceHash(); - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - com.google.protobuf.ByteString - getDeviceHashBytes(); - - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - long getSortRank(); - - /** - * string color = 6; - * @return The color. - */ - java.lang.String getColor(); - /** - * string color = 6; - * @return The bytes for color. - */ - com.google.protobuf.ByteString - getColorBytes(); - - /** - * .WebCommentFeedShowType showType = 7; - * @return The enum numeric value on the wire for showType. - */ - int getShowTypeValue(); - /** - * .WebCommentFeedShowType showType = 7; - * @return The showType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType(); - - /** - * .LiveAudienceState senderState = 8; - * @return Whether the senderState field is set. - */ - boolean hasSenderState(); - /** - * .LiveAudienceState senderState = 8; - * @return The senderState. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState(); - /** - * .LiveAudienceState senderState = 8; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder(); - } - /** - * Protobuf type {@code WebCommentFeed} - */ - public static final class WebCommentFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebCommentFeed) - WebCommentFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebCommentFeed.newBuilder() to construct. - private WebCommentFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebCommentFeed() { - id_ = ""; - content_ = ""; - deviceHash_ = ""; - color_ = ""; - showType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebCommentFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int CONTENT_FIELD_NUMBER = 3; - @SuppressWarnings("serial") - private volatile java.lang.Object content_ = ""; - /** - * string content = 3; - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * string content = 3; - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DEVICEHASH_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - @java.lang.Override - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } - } - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SORTRANK_FIELD_NUMBER = 5; - private long sortRank_ = 0L; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - - public static final int COLOR_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object color_ = ""; - /** - * string color = 6; - * @return The color. - */ - @java.lang.Override - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } - } - /** - * string color = 6; - * @return The bytes for color. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SHOWTYPE_FIELD_NUMBER = 7; - private int showType_ = 0; - /** - * .WebCommentFeedShowType showType = 7; - * @return The enum numeric value on the wire for showType. - */ - @java.lang.Override public int getShowTypeValue() { - return showType_; - } - /** - * .WebCommentFeedShowType showType = 7; - * @return The showType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.forNumber(showType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.UNRECOGNIZED : result; - } - - public static final int SENDERSTATE_FIELD_NUMBER = 8; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState senderState_; - /** - * .LiveAudienceState senderState = 8; - * @return Whether the senderState field is set. - */ - @java.lang.Override - public boolean hasSenderState() { - return senderState_ != null; - } - /** - * .LiveAudienceState senderState = 8; - * @return The senderState. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState() { - return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; - } - /** - * .LiveAudienceState senderState = 8; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder() { - return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, deviceHash_); - } - if (sortRank_ != 0L) { - output.writeUInt64(5, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, color_); - } - if (showType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.FEED_SHOW_UNKNOWN.getNumber()) { - output.writeEnum(7, showType_); - } - if (senderState_ != null) { - output.writeMessage(8, getSenderState()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, deviceHash_); - } - if (sortRank_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, color_); - } - if (showType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.FEED_SHOW_UNKNOWN.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(7, showType_); - } - if (senderState_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, getSenderState()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (!getContent() - .equals(other.getContent())) return false; - if (!getDeviceHash() - .equals(other.getDeviceHash())) return false; - if (getSortRank() - != other.getSortRank()) return false; - if (!getColor() - .equals(other.getColor())) return false; - if (showType_ != other.showType_) return false; - if (hasSenderState() != other.hasSenderState()) return false; - if (hasSenderState()) { - if (!getSenderState() - .equals(other.getSenderState())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; - hash = (53 * hash) + getDeviceHash().hashCode(); - hash = (37 * hash) + SORTRANK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSortRank()); - hash = (37 * hash) + COLOR_FIELD_NUMBER; - hash = (53 * hash) + getColor().hashCode(); - hash = (37 * hash) + SHOWTYPE_FIELD_NUMBER; - hash = (53 * hash) + showType_; - if (hasSenderState()) { - hash = (37 * hash) + SENDERSTATE_FIELD_NUMBER; - hash = (53 * hash) + getSenderState().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebCommentFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebCommentFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - content_ = ""; - deviceHash_ = ""; - sortRank_ = 0L; - color_ = ""; - showType_ = 0; - senderState_ = null; - if (senderStateBuilder_ != null) { - senderStateBuilder_.dispose(); - senderStateBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.content_ = content_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.deviceHash_ = deviceHash_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.sortRank_ = sortRank_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.color_ = color_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.showType_ = showType_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.senderState_ = senderStateBuilder_ == null - ? senderState_ - : senderStateBuilder_.build(); - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (!other.getContent().isEmpty()) { - content_ = other.content_; - bitField0_ |= 0x00000004; - onChanged(); - } - if (!other.getDeviceHash().isEmpty()) { - deviceHash_ = other.deviceHash_; - bitField0_ |= 0x00000008; - onChanged(); - } - if (other.getSortRank() != 0L) { - setSortRank(other.getSortRank()); - } - if (!other.getColor().isEmpty()) { - color_ = other.color_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.showType_ != 0) { - setShowTypeValue(other.getShowTypeValue()); - } - if (other.hasSenderState()) { - mergeSenderState(other.getSenderState()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 26: { - content_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; - break; - } // case 26 - case 34: { - deviceHash_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 40: { - sortRank_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 50: { - color_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 56: { - showType_ = input.readEnum(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 66: { - input.readMessage( - getSenderStateFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000080; - break; - } // case 66 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private java.lang.Object content_ = ""; - /** - * string content = 3; - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string content = 3; - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string content = 3; - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - content_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * string content = 3; - * @return This builder for chaining. - */ - public Builder clearContent() { - content_ = getDefaultInstance().getContent(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; - } - /** - * string content = 3; - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - content_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - private java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string deviceHash = 4; - * @param value The deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHash( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - deviceHash_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string deviceHash = 4; - * @return This builder for chaining. - */ - public Builder clearDeviceHash() { - deviceHash_ = getDefaultInstance().getDeviceHash(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string deviceHash = 4; - * @param value The bytes for deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHashBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - deviceHash_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - - private long sortRank_ ; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - /** - * uint64 sortRank = 5; - * @param value The sortRank to set. - * @return This builder for chaining. - */ - public Builder setSortRank(long value) { - - sortRank_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 sortRank = 5; - * @return This builder for chaining. - */ - public Builder clearSortRank() { - bitField0_ = (bitField0_ & ~0x00000010); - sortRank_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object color_ = ""; - /** - * string color = 6; - * @return The color. - */ - public java.lang.String getColor() { - java.lang.Object ref = color_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - color_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string color = 6; - * @return The bytes for color. - */ - public com.google.protobuf.ByteString - getColorBytes() { - java.lang.Object ref = color_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - color_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string color = 6; - * @param value The color to set. - * @return This builder for chaining. - */ - public Builder setColor( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - color_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string color = 6; - * @return This builder for chaining. - */ - public Builder clearColor() { - color_ = getDefaultInstance().getColor(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string color = 6; - * @param value The bytes for color to set. - * @return This builder for chaining. - */ - public Builder setColorBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - color_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private int showType_ = 0; - /** - * .WebCommentFeedShowType showType = 7; - * @return The enum numeric value on the wire for showType. - */ - @java.lang.Override public int getShowTypeValue() { - return showType_; - } - /** - * .WebCommentFeedShowType showType = 7; - * @param value The enum numeric value on the wire for showType to set. - * @return This builder for chaining. - */ - public Builder setShowTypeValue(int value) { - showType_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .WebCommentFeedShowType showType = 7; - * @return The showType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.forNumber(showType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.UNRECOGNIZED : result; - } - /** - * .WebCommentFeedShowType showType = 7; - * @param value The showType to set. - * @return This builder for chaining. - */ - public Builder setShowType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - showType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebCommentFeedShowType showType = 7; - * @return This builder for chaining. - */ - public Builder clearShowType() { - bitField0_ = (bitField0_ & ~0x00000040); - showType_ = 0; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState senderState_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder> senderStateBuilder_; - /** - * .LiveAudienceState senderState = 8; - * @return Whether the senderState field is set. - */ - public boolean hasSenderState() { - return ((bitField0_ & 0x00000080) != 0); - } - /** - * .LiveAudienceState senderState = 8; - * @return The senderState. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState() { - if (senderStateBuilder_ == null) { - return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; - } else { - return senderStateBuilder_.getMessage(); - } - } - /** - * .LiveAudienceState senderState = 8; - */ - public Builder setSenderState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState value) { - if (senderStateBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - senderState_ = value; - } else { - senderStateBuilder_.setMessage(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .LiveAudienceState senderState = 8; - */ - public Builder setSenderState( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder builderForValue) { - if (senderStateBuilder_ == null) { - senderState_ = builderForValue.build(); - } else { - senderStateBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .LiveAudienceState senderState = 8; - */ - public Builder mergeSenderState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState value) { - if (senderStateBuilder_ == null) { - if (((bitField0_ & 0x00000080) != 0) && - senderState_ != null && - senderState_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance()) { - getSenderStateBuilder().mergeFrom(value); - } else { - senderState_ = value; - } - } else { - senderStateBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * .LiveAudienceState senderState = 8; - */ - public Builder clearSenderState() { - bitField0_ = (bitField0_ & ~0x00000080); - senderState_ = null; - if (senderStateBuilder_ != null) { - senderStateBuilder_.dispose(); - senderStateBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .LiveAudienceState senderState = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder getSenderStateBuilder() { - bitField0_ |= 0x00000080; - onChanged(); - return getSenderStateFieldBuilder().getBuilder(); - } - /** - * .LiveAudienceState senderState = 8; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder() { - if (senderStateBuilder_ != null) { - return senderStateBuilder_.getMessageOrBuilder(); - } else { - return senderState_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; - } - } - /** - * .LiveAudienceState senderState = 8; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder> - getSenderStateFieldBuilder() { - if (senderStateBuilder_ == null) { - senderStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder>( - getSenderState(), - getParentForChildren(), - isClean()); - senderState_ = null; - } - return senderStateBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebCommentFeed) - } - - // @@protoc_insertion_point(class_scope:WebCommentFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebCommentFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebCommentFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebCommentFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024WebCommentFeed.proto\032\024SimpleUserInfo.p" + - "roto\032\034WebCommentFeedShowType.proto\032\027Live" + - "AudienceState.proto\"\325\001\n\016WebCommentFeed\022\n" + - "\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.SimpleUserInf" + - "o\022\017\n\007content\030\003 \001(\t\022\022\n\ndeviceHash\030\004 \001(\t\022\020" + - "\n\010sortRank\030\005 \001(\004\022\r\n\005color\030\006 \001(\t\022)\n\010showT" + - "ype\030\007 \001(\0162\027.WebCommentFeedShowType\022\'\n\013se" + - "nderState\030\010 \001(\0132\022.LiveAudienceStateB6\n4t" + - "ech.ordinaryroad.live.chat.client.kuaish" + - "ou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.getDescriptor(), - }); - internal_static_WebCommentFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebCommentFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebCommentFeed_descriptor, - new java.lang.String[] { "Id", "User", "Content", "DeviceHash", "SortRank", "Color", "ShowType", "SenderState", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java deleted file mode 100644 index 74cc9385..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebCommentFeedShowType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebCommentFeedShowTypeOuterClass { - private WebCommentFeedShowTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code WebCommentFeedShowType} - */ - public enum WebCommentFeedShowType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * FEED_SHOW_UNKNOWN = 0; - */ - FEED_SHOW_UNKNOWN(0), - /** - * FEED_SHOW_NORMAL = 1; - */ - FEED_SHOW_NORMAL(1), - /** - * FEED_HIDDEN = 2; - */ - FEED_HIDDEN(2), - UNRECOGNIZED(-1), - ; - - /** - * FEED_SHOW_UNKNOWN = 0; - */ - public static final int FEED_SHOW_UNKNOWN_VALUE = 0; - /** - * FEED_SHOW_NORMAL = 1; - */ - public static final int FEED_SHOW_NORMAL_VALUE = 1; - /** - * FEED_HIDDEN = 2; - */ - public static final int FEED_HIDDEN_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static WebCommentFeedShowType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static WebCommentFeedShowType forNumber(int value) { - switch (value) { - case 0: return FEED_SHOW_UNKNOWN; - case 1: return FEED_SHOW_NORMAL; - case 2: return FEED_HIDDEN; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - WebCommentFeedShowType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public WebCommentFeedShowType findValueByNumber(int number) { - return WebCommentFeedShowType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final WebCommentFeedShowType[] VALUES = values(); - - public static WebCommentFeedShowType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private WebCommentFeedShowType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebCommentFeedShowType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\034WebCommentFeedShowType.proto*V\n\026WebCom" + - "mentFeedShowType\022\025\n\021FEED_SHOW_UNKNOWN\020\000\022" + - "\024\n\020FEED_SHOW_NORMAL\020\001\022\017\n\013FEED_HIDDEN\020\002B6" + - "\n4tech.ordinaryroad.live.chat.client.kua" + - "ishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java deleted file mode 100644 index 4e94afd5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java +++ /dev/null @@ -1,2305 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebGiftFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebGiftFeedOuterClass { - private WebGiftFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebGiftFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebGiftFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * uint64 time = 3; - * @return The time. - */ - long getTime(); - - /** - * uint32 intGiftId = 4; - * @return The intGiftId. - */ - int getIntGiftId(); - - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - long getSortRank(); - - /** - * string mergeKey = 6; - * @return The mergeKey. - */ - java.lang.String getMergeKey(); - /** - * string mergeKey = 6; - * @return The bytes for mergeKey. - */ - com.google.protobuf.ByteString - getMergeKeyBytes(); - - /** - * uint32 batchSize = 7; - * @return The batchSize. - */ - int getBatchSize(); - - /** - * uint32 comboCount = 8; - * @return The comboCount. - */ - int getComboCount(); - - /** - * uint32 rank = 9; - * @return The rank. - */ - int getRank(); - - /** - * uint64 expireDuration = 10; - * @return The expireDuration. - */ - long getExpireDuration(); - - /** - * uint64 clientTimestamp = 11; - * @return The clientTimestamp. - */ - long getClientTimestamp(); - - /** - * uint64 slotDisplayDuration = 12; - * @return The slotDisplayDuration. - */ - long getSlotDisplayDuration(); - - /** - * uint32 starLevel = 13; - * @return The starLevel. - */ - int getStarLevel(); - - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The enum numeric value on the wire for styleType. - */ - int getStyleTypeValue(); - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The styleType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType(); - - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The enum numeric value on the wire for liveAssistantType. - */ - int getLiveAssistantTypeValue(); - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The liveAssistantType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); - - /** - * string deviceHash = 16; - * @return The deviceHash. - */ - java.lang.String getDeviceHash(); - /** - * string deviceHash = 16; - * @return The bytes for deviceHash. - */ - com.google.protobuf.ByteString - getDeviceHashBytes(); - - /** - * bool danmakuDisplay = 17; - * @return The danmakuDisplay. - */ - boolean getDanmakuDisplay(); - } - /** - * Protobuf type {@code WebGiftFeed} - */ - public static final class WebGiftFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebGiftFeed) - WebGiftFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebGiftFeed.newBuilder() to construct. - private WebGiftFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebGiftFeed() { - id_ = ""; - mergeKey_ = ""; - styleType_ = 0; - liveAssistantType_ = 0; - deviceHash_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebGiftFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder.class); - } - - /** - * Protobuf enum {@code WebGiftFeed.StyleType} - */ - public enum StyleType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_STYLE = 0; - */ - UNKNOWN_STYLE(0), - /** - * BATCH_STAR_0 = 1; - */ - BATCH_STAR_0(1), - /** - * BATCH_STAR_1 = 2; - */ - BATCH_STAR_1(2), - /** - * BATCH_STAR_2 = 3; - */ - BATCH_STAR_2(3), - /** - * BATCH_STAR_3 = 4; - */ - BATCH_STAR_3(4), - /** - * BATCH_STAR_4 = 5; - */ - BATCH_STAR_4(5), - /** - * BATCH_STAR_5 = 6; - */ - BATCH_STAR_5(6), - /** - * BATCH_STAR_6 = 7; - */ - BATCH_STAR_6(7), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_STYLE = 0; - */ - public static final int UNKNOWN_STYLE_VALUE = 0; - /** - * BATCH_STAR_0 = 1; - */ - public static final int BATCH_STAR_0_VALUE = 1; - /** - * BATCH_STAR_1 = 2; - */ - public static final int BATCH_STAR_1_VALUE = 2; - /** - * BATCH_STAR_2 = 3; - */ - public static final int BATCH_STAR_2_VALUE = 3; - /** - * BATCH_STAR_3 = 4; - */ - public static final int BATCH_STAR_3_VALUE = 4; - /** - * BATCH_STAR_4 = 5; - */ - public static final int BATCH_STAR_4_VALUE = 5; - /** - * BATCH_STAR_5 = 6; - */ - public static final int BATCH_STAR_5_VALUE = 6; - /** - * BATCH_STAR_6 = 7; - */ - public static final int BATCH_STAR_6_VALUE = 7; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static StyleType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static StyleType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_STYLE; - case 1: return BATCH_STAR_0; - case 2: return BATCH_STAR_1; - case 3: return BATCH_STAR_2; - case 4: return BATCH_STAR_3; - case 5: return BATCH_STAR_4; - case 6: return BATCH_STAR_5; - case 7: return BATCH_STAR_6; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - StyleType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public StyleType findValueByNumber(int number) { - return StyleType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDescriptor().getEnumTypes().get(0); - } - - private static final StyleType[] VALUES = values(); - - public static StyleType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private StyleType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebGiftFeed.StyleType) - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int TIME_FIELD_NUMBER = 3; - private long time_ = 0L; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int INTGIFTID_FIELD_NUMBER = 4; - private int intGiftId_ = 0; - /** - * uint32 intGiftId = 4; - * @return The intGiftId. - */ - @java.lang.Override - public int getIntGiftId() { - return intGiftId_; - } - - public static final int SORTRANK_FIELD_NUMBER = 5; - private long sortRank_ = 0L; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - - public static final int MERGEKEY_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object mergeKey_ = ""; - /** - * string mergeKey = 6; - * @return The mergeKey. - */ - @java.lang.Override - public java.lang.String getMergeKey() { - java.lang.Object ref = mergeKey_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - mergeKey_ = s; - return s; - } - } - /** - * string mergeKey = 6; - * @return The bytes for mergeKey. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMergeKeyBytes() { - java.lang.Object ref = mergeKey_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - mergeKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int BATCHSIZE_FIELD_NUMBER = 7; - private int batchSize_ = 0; - /** - * uint32 batchSize = 7; - * @return The batchSize. - */ - @java.lang.Override - public int getBatchSize() { - return batchSize_; - } - - public static final int COMBOCOUNT_FIELD_NUMBER = 8; - private int comboCount_ = 0; - /** - * uint32 comboCount = 8; - * @return The comboCount. - */ - @java.lang.Override - public int getComboCount() { - return comboCount_; - } - - public static final int RANK_FIELD_NUMBER = 9; - private int rank_ = 0; - /** - * uint32 rank = 9; - * @return The rank. - */ - @java.lang.Override - public int getRank() { - return rank_; - } - - public static final int EXPIREDURATION_FIELD_NUMBER = 10; - private long expireDuration_ = 0L; - /** - * uint64 expireDuration = 10; - * @return The expireDuration. - */ - @java.lang.Override - public long getExpireDuration() { - return expireDuration_; - } - - public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 11; - private long clientTimestamp_ = 0L; - /** - * uint64 clientTimestamp = 11; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - - public static final int SLOTDISPLAYDURATION_FIELD_NUMBER = 12; - private long slotDisplayDuration_ = 0L; - /** - * uint64 slotDisplayDuration = 12; - * @return The slotDisplayDuration. - */ - @java.lang.Override - public long getSlotDisplayDuration() { - return slotDisplayDuration_; - } - - public static final int STARLEVEL_FIELD_NUMBER = 13; - private int starLevel_ = 0; - /** - * uint32 starLevel = 13; - * @return The starLevel. - */ - @java.lang.Override - public int getStarLevel() { - return starLevel_; - } - - public static final int STYLETYPE_FIELD_NUMBER = 14; - private int styleType_ = 0; - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The enum numeric value on the wire for styleType. - */ - @java.lang.Override public int getStyleTypeValue() { - return styleType_; - } - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The styleType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.forNumber(styleType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNRECOGNIZED : result; - } - - public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 15; - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The liveAssistantType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - - public static final int DEVICEHASH_FIELD_NUMBER = 16; - @SuppressWarnings("serial") - private volatile java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 16; - * @return The deviceHash. - */ - @java.lang.Override - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } - } - /** - * string deviceHash = 16; - * @return The bytes for deviceHash. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DANMAKUDISPLAY_FIELD_NUMBER = 17; - private boolean danmakuDisplay_ = false; - /** - * bool danmakuDisplay = 17; - * @return The danmakuDisplay. - */ - @java.lang.Override - public boolean getDanmakuDisplay() { - return danmakuDisplay_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (time_ != 0L) { - output.writeUInt64(3, time_); - } - if (intGiftId_ != 0) { - output.writeUInt32(4, intGiftId_); - } - if (sortRank_ != 0L) { - output.writeUInt64(5, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mergeKey_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mergeKey_); - } - if (batchSize_ != 0) { - output.writeUInt32(7, batchSize_); - } - if (comboCount_ != 0) { - output.writeUInt32(8, comboCount_); - } - if (rank_ != 0) { - output.writeUInt32(9, rank_); - } - if (expireDuration_ != 0L) { - output.writeUInt64(10, expireDuration_); - } - if (clientTimestamp_ != 0L) { - output.writeUInt64(11, clientTimestamp_); - } - if (slotDisplayDuration_ != 0L) { - output.writeUInt64(12, slotDisplayDuration_); - } - if (starLevel_ != 0) { - output.writeUInt32(13, starLevel_); - } - if (styleType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNKNOWN_STYLE.getNumber()) { - output.writeEnum(14, styleType_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - output.writeEnum(15, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 16, deviceHash_); - } - if (danmakuDisplay_ != false) { - output.writeBool(17, danmakuDisplay_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, time_); - } - if (intGiftId_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, intGiftId_); - } - if (sortRank_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mergeKey_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mergeKey_); - } - if (batchSize_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(7, batchSize_); - } - if (comboCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(8, comboCount_); - } - if (rank_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(9, rank_); - } - if (expireDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(10, expireDuration_); - } - if (clientTimestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(11, clientTimestamp_); - } - if (slotDisplayDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(12, slotDisplayDuration_); - } - if (starLevel_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(13, starLevel_); - } - if (styleType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNKNOWN_STYLE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(14, styleType_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(15, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, deviceHash_); - } - if (danmakuDisplay_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(17, danmakuDisplay_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getTime() - != other.getTime()) return false; - if (getIntGiftId() - != other.getIntGiftId()) return false; - if (getSortRank() - != other.getSortRank()) return false; - if (!getMergeKey() - .equals(other.getMergeKey())) return false; - if (getBatchSize() - != other.getBatchSize()) return false; - if (getComboCount() - != other.getComboCount()) return false; - if (getRank() - != other.getRank()) return false; - if (getExpireDuration() - != other.getExpireDuration()) return false; - if (getClientTimestamp() - != other.getClientTimestamp()) return false; - if (getSlotDisplayDuration() - != other.getSlotDisplayDuration()) return false; - if (getStarLevel() - != other.getStarLevel()) return false; - if (styleType_ != other.styleType_) return false; - if (liveAssistantType_ != other.liveAssistantType_) return false; - if (!getDeviceHash() - .equals(other.getDeviceHash())) return false; - if (getDanmakuDisplay() - != other.getDanmakuDisplay()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + INTGIFTID_FIELD_NUMBER; - hash = (53 * hash) + getIntGiftId(); - hash = (37 * hash) + SORTRANK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSortRank()); - hash = (37 * hash) + MERGEKEY_FIELD_NUMBER; - hash = (53 * hash) + getMergeKey().hashCode(); - hash = (37 * hash) + BATCHSIZE_FIELD_NUMBER; - hash = (53 * hash) + getBatchSize(); - hash = (37 * hash) + COMBOCOUNT_FIELD_NUMBER; - hash = (53 * hash) + getComboCount(); - hash = (37 * hash) + RANK_FIELD_NUMBER; - hash = (53 * hash) + getRank(); - hash = (37 * hash) + EXPIREDURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getExpireDuration()); - hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getClientTimestamp()); - hash = (37 * hash) + SLOTDISPLAYDURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSlotDisplayDuration()); - hash = (37 * hash) + STARLEVEL_FIELD_NUMBER; - hash = (53 * hash) + getStarLevel(); - hash = (37 * hash) + STYLETYPE_FIELD_NUMBER; - hash = (53 * hash) + styleType_; - hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; - hash = (53 * hash) + liveAssistantType_; - hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; - hash = (53 * hash) + getDeviceHash().hashCode(); - hash = (37 * hash) + DANMAKUDISPLAY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getDanmakuDisplay()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebGiftFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebGiftFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - time_ = 0L; - intGiftId_ = 0; - sortRank_ = 0L; - mergeKey_ = ""; - batchSize_ = 0; - comboCount_ = 0; - rank_ = 0; - expireDuration_ = 0L; - clientTimestamp_ = 0L; - slotDisplayDuration_ = 0L; - starLevel_ = 0; - styleType_ = 0; - liveAssistantType_ = 0; - deviceHash_ = ""; - danmakuDisplay_ = false; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.intGiftId_ = intGiftId_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.sortRank_ = sortRank_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.mergeKey_ = mergeKey_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.batchSize_ = batchSize_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.comboCount_ = comboCount_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.rank_ = rank_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.expireDuration_ = expireDuration_; - } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.clientTimestamp_ = clientTimestamp_; - } - if (((from_bitField0_ & 0x00000800) != 0)) { - result.slotDisplayDuration_ = slotDisplayDuration_; - } - if (((from_bitField0_ & 0x00001000) != 0)) { - result.starLevel_ = starLevel_; - } - if (((from_bitField0_ & 0x00002000) != 0)) { - result.styleType_ = styleType_; - } - if (((from_bitField0_ & 0x00004000) != 0)) { - result.liveAssistantType_ = liveAssistantType_; - } - if (((from_bitField0_ & 0x00008000) != 0)) { - result.deviceHash_ = deviceHash_; - } - if (((from_bitField0_ & 0x00010000) != 0)) { - result.danmakuDisplay_ = danmakuDisplay_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (other.getIntGiftId() != 0) { - setIntGiftId(other.getIntGiftId()); - } - if (other.getSortRank() != 0L) { - setSortRank(other.getSortRank()); - } - if (!other.getMergeKey().isEmpty()) { - mergeKey_ = other.mergeKey_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.getBatchSize() != 0) { - setBatchSize(other.getBatchSize()); - } - if (other.getComboCount() != 0) { - setComboCount(other.getComboCount()); - } - if (other.getRank() != 0) { - setRank(other.getRank()); - } - if (other.getExpireDuration() != 0L) { - setExpireDuration(other.getExpireDuration()); - } - if (other.getClientTimestamp() != 0L) { - setClientTimestamp(other.getClientTimestamp()); - } - if (other.getSlotDisplayDuration() != 0L) { - setSlotDisplayDuration(other.getSlotDisplayDuration()); - } - if (other.getStarLevel() != 0) { - setStarLevel(other.getStarLevel()); - } - if (other.styleType_ != 0) { - setStyleTypeValue(other.getStyleTypeValue()); - } - if (other.liveAssistantType_ != 0) { - setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); - } - if (!other.getDeviceHash().isEmpty()) { - deviceHash_ = other.deviceHash_; - bitField0_ |= 0x00008000; - onChanged(); - } - if (other.getDanmakuDisplay() != false) { - setDanmakuDisplay(other.getDanmakuDisplay()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - intGiftId_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - sortRank_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 50: { - mergeKey_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 56: { - batchSize_ = input.readUInt32(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 64: { - comboCount_ = input.readUInt32(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - rank_ = input.readUInt32(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: { - expireDuration_ = input.readUInt64(); - bitField0_ |= 0x00000200; - break; - } // case 80 - case 88: { - clientTimestamp_ = input.readUInt64(); - bitField0_ |= 0x00000400; - break; - } // case 88 - case 96: { - slotDisplayDuration_ = input.readUInt64(); - bitField0_ |= 0x00000800; - break; - } // case 96 - case 104: { - starLevel_ = input.readUInt32(); - bitField0_ |= 0x00001000; - break; - } // case 104 - case 112: { - styleType_ = input.readEnum(); - bitField0_ |= 0x00002000; - break; - } // case 112 - case 120: { - liveAssistantType_ = input.readEnum(); - bitField0_ |= 0x00004000; - break; - } // case 120 - case 130: { - deviceHash_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00008000; - break; - } // case 130 - case 136: { - danmakuDisplay_ = input.readBool(); - bitField0_ |= 0x00010000; - break; - } // case 136 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long time_ ; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 3; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 time = 3; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000004); - time_ = 0L; - onChanged(); - return this; - } - - private int intGiftId_ ; - /** - * uint32 intGiftId = 4; - * @return The intGiftId. - */ - @java.lang.Override - public int getIntGiftId() { - return intGiftId_; - } - /** - * uint32 intGiftId = 4; - * @param value The intGiftId to set. - * @return This builder for chaining. - */ - public Builder setIntGiftId(int value) { - - intGiftId_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 intGiftId = 4; - * @return This builder for chaining. - */ - public Builder clearIntGiftId() { - bitField0_ = (bitField0_ & ~0x00000008); - intGiftId_ = 0; - onChanged(); - return this; - } - - private long sortRank_ ; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - /** - * uint64 sortRank = 5; - * @param value The sortRank to set. - * @return This builder for chaining. - */ - public Builder setSortRank(long value) { - - sortRank_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 sortRank = 5; - * @return This builder for chaining. - */ - public Builder clearSortRank() { - bitField0_ = (bitField0_ & ~0x00000010); - sortRank_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object mergeKey_ = ""; - /** - * string mergeKey = 6; - * @return The mergeKey. - */ - public java.lang.String getMergeKey() { - java.lang.Object ref = mergeKey_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - mergeKey_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string mergeKey = 6; - * @return The bytes for mergeKey. - */ - public com.google.protobuf.ByteString - getMergeKeyBytes() { - java.lang.Object ref = mergeKey_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - mergeKey_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string mergeKey = 6; - * @param value The mergeKey to set. - * @return This builder for chaining. - */ - public Builder setMergeKey( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - mergeKey_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string mergeKey = 6; - * @return This builder for chaining. - */ - public Builder clearMergeKey() { - mergeKey_ = getDefaultInstance().getMergeKey(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string mergeKey = 6; - * @param value The bytes for mergeKey to set. - * @return This builder for chaining. - */ - public Builder setMergeKeyBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - mergeKey_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private int batchSize_ ; - /** - * uint32 batchSize = 7; - * @return The batchSize. - */ - @java.lang.Override - public int getBatchSize() { - return batchSize_; - } - /** - * uint32 batchSize = 7; - * @param value The batchSize to set. - * @return This builder for chaining. - */ - public Builder setBatchSize(int value) { - - batchSize_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * uint32 batchSize = 7; - * @return This builder for chaining. - */ - public Builder clearBatchSize() { - bitField0_ = (bitField0_ & ~0x00000040); - batchSize_ = 0; - onChanged(); - return this; - } - - private int comboCount_ ; - /** - * uint32 comboCount = 8; - * @return The comboCount. - */ - @java.lang.Override - public int getComboCount() { - return comboCount_; - } - /** - * uint32 comboCount = 8; - * @param value The comboCount to set. - * @return This builder for chaining. - */ - public Builder setComboCount(int value) { - - comboCount_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * uint32 comboCount = 8; - * @return This builder for chaining. - */ - public Builder clearComboCount() { - bitField0_ = (bitField0_ & ~0x00000080); - comboCount_ = 0; - onChanged(); - return this; - } - - private int rank_ ; - /** - * uint32 rank = 9; - * @return The rank. - */ - @java.lang.Override - public int getRank() { - return rank_; - } - /** - * uint32 rank = 9; - * @param value The rank to set. - * @return This builder for chaining. - */ - public Builder setRank(int value) { - - rank_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint32 rank = 9; - * @return This builder for chaining. - */ - public Builder clearRank() { - bitField0_ = (bitField0_ & ~0x00000100); - rank_ = 0; - onChanged(); - return this; - } - - private long expireDuration_ ; - /** - * uint64 expireDuration = 10; - * @return The expireDuration. - */ - @java.lang.Override - public long getExpireDuration() { - return expireDuration_; - } - /** - * uint64 expireDuration = 10; - * @param value The expireDuration to set. - * @return This builder for chaining. - */ - public Builder setExpireDuration(long value) { - - expireDuration_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * uint64 expireDuration = 10; - * @return This builder for chaining. - */ - public Builder clearExpireDuration() { - bitField0_ = (bitField0_ & ~0x00000200); - expireDuration_ = 0L; - onChanged(); - return this; - } - - private long clientTimestamp_ ; - /** - * uint64 clientTimestamp = 11; - * @return The clientTimestamp. - */ - @java.lang.Override - public long getClientTimestamp() { - return clientTimestamp_; - } - /** - * uint64 clientTimestamp = 11; - * @param value The clientTimestamp to set. - * @return This builder for chaining. - */ - public Builder setClientTimestamp(long value) { - - clientTimestamp_ = value; - bitField0_ |= 0x00000400; - onChanged(); - return this; - } - /** - * uint64 clientTimestamp = 11; - * @return This builder for chaining. - */ - public Builder clearClientTimestamp() { - bitField0_ = (bitField0_ & ~0x00000400); - clientTimestamp_ = 0L; - onChanged(); - return this; - } - - private long slotDisplayDuration_ ; - /** - * uint64 slotDisplayDuration = 12; - * @return The slotDisplayDuration. - */ - @java.lang.Override - public long getSlotDisplayDuration() { - return slotDisplayDuration_; - } - /** - * uint64 slotDisplayDuration = 12; - * @param value The slotDisplayDuration to set. - * @return This builder for chaining. - */ - public Builder setSlotDisplayDuration(long value) { - - slotDisplayDuration_ = value; - bitField0_ |= 0x00000800; - onChanged(); - return this; - } - /** - * uint64 slotDisplayDuration = 12; - * @return This builder for chaining. - */ - public Builder clearSlotDisplayDuration() { - bitField0_ = (bitField0_ & ~0x00000800); - slotDisplayDuration_ = 0L; - onChanged(); - return this; - } - - private int starLevel_ ; - /** - * uint32 starLevel = 13; - * @return The starLevel. - */ - @java.lang.Override - public int getStarLevel() { - return starLevel_; - } - /** - * uint32 starLevel = 13; - * @param value The starLevel to set. - * @return This builder for chaining. - */ - public Builder setStarLevel(int value) { - - starLevel_ = value; - bitField0_ |= 0x00001000; - onChanged(); - return this; - } - /** - * uint32 starLevel = 13; - * @return This builder for chaining. - */ - public Builder clearStarLevel() { - bitField0_ = (bitField0_ & ~0x00001000); - starLevel_ = 0; - onChanged(); - return this; - } - - private int styleType_ = 0; - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The enum numeric value on the wire for styleType. - */ - @java.lang.Override public int getStyleTypeValue() { - return styleType_; - } - /** - * .WebGiftFeed.StyleType styleType = 14; - * @param value The enum numeric value on the wire for styleType to set. - * @return This builder for chaining. - */ - public Builder setStyleTypeValue(int value) { - styleType_ = value; - bitField0_ |= 0x00002000; - onChanged(); - return this; - } - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return The styleType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.forNumber(styleType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNRECOGNIZED : result; - } - /** - * .WebGiftFeed.StyleType styleType = 14; - * @param value The styleType to set. - * @return This builder for chaining. - */ - public Builder setStyleType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00002000; - styleType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebGiftFeed.StyleType styleType = 14; - * @return This builder for chaining. - */ - public Builder clearStyleType() { - bitField0_ = (bitField0_ & ~0x00002000); - styleType_ = 0; - onChanged(); - return this; - } - - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @param value The enum numeric value on the wire for liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantTypeValue(int value) { - liveAssistantType_ = value; - bitField0_ |= 0x00004000; - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return The liveAssistantType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @param value The liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00004000; - liveAssistantType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 15; - * @return This builder for chaining. - */ - public Builder clearLiveAssistantType() { - bitField0_ = (bitField0_ & ~0x00004000); - liveAssistantType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 16; - * @return The deviceHash. - */ - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string deviceHash = 16; - * @return The bytes for deviceHash. - */ - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string deviceHash = 16; - * @param value The deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHash( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - deviceHash_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - /** - * string deviceHash = 16; - * @return This builder for chaining. - */ - public Builder clearDeviceHash() { - deviceHash_ = getDefaultInstance().getDeviceHash(); - bitField0_ = (bitField0_ & ~0x00008000); - onChanged(); - return this; - } - /** - * string deviceHash = 16; - * @param value The bytes for deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHashBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - deviceHash_ = value; - bitField0_ |= 0x00008000; - onChanged(); - return this; - } - - private boolean danmakuDisplay_ ; - /** - * bool danmakuDisplay = 17; - * @return The danmakuDisplay. - */ - @java.lang.Override - public boolean getDanmakuDisplay() { - return danmakuDisplay_; - } - /** - * bool danmakuDisplay = 17; - * @param value The danmakuDisplay to set. - * @return This builder for chaining. - */ - public Builder setDanmakuDisplay(boolean value) { - - danmakuDisplay_ = value; - bitField0_ |= 0x00010000; - onChanged(); - return this; - } - /** - * bool danmakuDisplay = 17; - * @return This builder for chaining. - */ - public Builder clearDanmakuDisplay() { - bitField0_ = (bitField0_ & ~0x00010000); - danmakuDisplay_ = false; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebGiftFeed) - } - - // @@protoc_insertion_point(class_scope:WebGiftFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebGiftFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebGiftFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebGiftFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\021WebGiftFeed.proto\032\024SimpleUserInfo.prot" + - "o\032\032WebLiveAssistantType.proto\"\273\004\n\013WebGif" + - "tFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.Simple" + - "UserInfo\022\014\n\004time\030\003 \001(\004\022\021\n\tintGiftId\030\004 \001(" + - "\r\022\020\n\010sortRank\030\005 \001(\004\022\020\n\010mergeKey\030\006 \001(\t\022\021\n" + - "\tbatchSize\030\007 \001(\r\022\022\n\ncomboCount\030\010 \001(\r\022\014\n\004" + - "rank\030\t \001(\r\022\026\n\016expireDuration\030\n \001(\004\022\027\n\017cl" + - "ientTimestamp\030\013 \001(\004\022\033\n\023slotDisplayDurati" + - "on\030\014 \001(\004\022\021\n\tstarLevel\030\r \001(\r\022)\n\tstyleType" + - "\030\016 \001(\0162\026.WebGiftFeed.StyleType\0220\n\021liveAs" + - "sistantType\030\017 \001(\0162\025.WebLiveAssistantType" + - "\022\022\n\ndeviceHash\030\020 \001(\t\022\026\n\016danmakuDisplay\030\021" + - " \001(\010\"\234\001\n\tStyleType\022\021\n\rUNKNOWN_STYLE\020\000\022\020\n" + - "\014BATCH_STAR_0\020\001\022\020\n\014BATCH_STAR_1\020\002\022\020\n\014BAT" + - "CH_STAR_2\020\003\022\020\n\014BATCH_STAR_3\020\004\022\020\n\014BATCH_S" + - "TAR_4\020\005\022\020\n\014BATCH_STAR_5\020\006\022\020\n\014BATCH_STAR_" + - "6\020\007B6\n4tech.ordinaryroad.live.chat.clien" + - "t.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), - }); - internal_static_WebGiftFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebGiftFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebGiftFeed_descriptor, - new java.lang.String[] { "Id", "User", "Time", "IntGiftId", "SortRank", "MergeKey", "BatchSize", "ComboCount", "Rank", "ExpireDuration", "ClientTimestamp", "SlotDisplayDuration", "StarLevel", "StyleType", "LiveAssistantType", "DeviceHash", "DanmakuDisplay", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java deleted file mode 100644 index 67eff240..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java +++ /dev/null @@ -1,1046 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebLikeFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebLikeFeedOuterClass { - private WebLikeFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebLikeFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebLikeFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * uint64 sortRank = 3; - * @return The sortRank. - */ - long getSortRank(); - - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - java.lang.String getDeviceHash(); - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - com.google.protobuf.ByteString - getDeviceHashBytes(); - } - /** - * Protobuf type {@code WebLikeFeed} - */ - public static final class WebLikeFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebLikeFeed) - WebLikeFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebLikeFeed.newBuilder() to construct. - private WebLikeFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebLikeFeed() { - id_ = ""; - deviceHash_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebLikeFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int SORTRANK_FIELD_NUMBER = 3; - private long sortRank_ = 0L; - /** - * uint64 sortRank = 3; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - - public static final int DEVICEHASH_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - @java.lang.Override - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } - } - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (sortRank_ != 0L) { - output.writeUInt64(3, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, deviceHash_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (sortRank_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, sortRank_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, deviceHash_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getSortRank() - != other.getSortRank()) return false; - if (!getDeviceHash() - .equals(other.getDeviceHash())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + SORTRANK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSortRank()); - hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; - hash = (53 * hash) + getDeviceHash().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebLikeFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebLikeFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - sortRank_ = 0L; - deviceHash_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.sortRank_ = sortRank_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.deviceHash_ = deviceHash_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getSortRank() != 0L) { - setSortRank(other.getSortRank()); - } - if (!other.getDeviceHash().isEmpty()) { - deviceHash_ = other.deviceHash_; - bitField0_ |= 0x00000008; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - sortRank_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - deviceHash_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long sortRank_ ; - /** - * uint64 sortRank = 3; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - /** - * uint64 sortRank = 3; - * @param value The sortRank to set. - * @return This builder for chaining. - */ - public Builder setSortRank(long value) { - - sortRank_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 sortRank = 3; - * @return This builder for chaining. - */ - public Builder clearSortRank() { - bitField0_ = (bitField0_ & ~0x00000004); - sortRank_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 4; - * @return The deviceHash. - */ - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string deviceHash = 4; - * @return The bytes for deviceHash. - */ - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string deviceHash = 4; - * @param value The deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHash( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - deviceHash_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string deviceHash = 4; - * @return This builder for chaining. - */ - public Builder clearDeviceHash() { - deviceHash_ = getDefaultInstance().getDeviceHash(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string deviceHash = 4; - * @param value The bytes for deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHashBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - deviceHash_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebLikeFeed) - } - - // @@protoc_insertion_point(class_scope:WebLikeFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebLikeFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebLikeFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebLikeFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\021WebLikeFeed.proto\032\024SimpleUserInfo.prot" + - "o\"^\n\013WebLikeFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001" + - "(\0132\017.SimpleUserInfo\022\020\n\010sortRank\030\003 \001(\004\022\022\n" + - "\ndeviceHash\030\004 \001(\tB6\n4tech.ordinaryroad.l" + - "ive.chat.client.kuaishou.protobufb\006proto" + - "3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - }); - internal_static_WebLikeFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebLikeFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebLikeFeed_descriptor, - new java.lang.String[] { "Id", "User", "SortRank", "DeviceHash", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java deleted file mode 100644 index 066422c6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebLiveAssistantType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebLiveAssistantTypeOuterClass { - private WebLiveAssistantTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code WebLiveAssistantType} - */ - public enum WebLiveAssistantType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_ASSISTANT_TYPE = 0; - */ - UNKNOWN_ASSISTANT_TYPE(0), - /** - * SUPER = 1; - */ - SUPER(1), - /** - * JUNIOR = 2; - */ - JUNIOR(2), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_ASSISTANT_TYPE = 0; - */ - public static final int UNKNOWN_ASSISTANT_TYPE_VALUE = 0; - /** - * SUPER = 1; - */ - public static final int SUPER_VALUE = 1; - /** - * JUNIOR = 2; - */ - public static final int JUNIOR_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static WebLiveAssistantType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static WebLiveAssistantType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_ASSISTANT_TYPE; - case 1: return SUPER; - case 2: return JUNIOR; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - WebLiveAssistantType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public WebLiveAssistantType findValueByNumber(int number) { - return WebLiveAssistantType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final WebLiveAssistantType[] VALUES = values(); - - public static WebLiveAssistantType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private WebLiveAssistantType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebLiveAssistantType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\032WebLiveAssistantType.proto*I\n\024WebLiveA" + - "ssistantType\022\032\n\026UNKNOWN_ASSISTANT_TYPE\020\000" + - "\022\t\n\005SUPER\020\001\022\n\n\006JUNIOR\020\002B6\n4tech.ordinary" + - "road.live.chat.client.kuaishou.protobufb" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java deleted file mode 100644 index 28c8879d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebPauseType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebPauseTypeOuterClass { - private WebPauseTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code WebPauseType} - */ - public enum WebPauseType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_PAUSE_TYPE = 0; - */ - UNKNOWN_PAUSE_TYPE(0), - /** - * TELEPHONE = 1; - */ - TELEPHONE(1), - /** - * SHARE = 2; - */ - SHARE(2), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_PAUSE_TYPE = 0; - */ - public static final int UNKNOWN_PAUSE_TYPE_VALUE = 0; - /** - * TELEPHONE = 1; - */ - public static final int TELEPHONE_VALUE = 1; - /** - * SHARE = 2; - */ - public static final int SHARE_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static WebPauseType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static WebPauseType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_PAUSE_TYPE; - case 1: return TELEPHONE; - case 2: return SHARE; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - WebPauseType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public WebPauseType findValueByNumber(int number) { - return WebPauseType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final WebPauseType[] VALUES = values(); - - public static WebPauseType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private WebPauseType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebPauseType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\022WebPauseType.proto*@\n\014WebPauseType\022\026\n\022" + - "UNKNOWN_PAUSE_TYPE\020\000\022\r\n\tTELEPHONE\020\001\022\t\n\005S" + - "HARE\020\002B6\n4tech.ordinaryroad.live.chat.cl" + - "ient.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java deleted file mode 100644 index 6b03df29..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebRedPackCoverType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebRedPackCoverTypeOuterClass { - private WebRedPackCoverTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code WebRedPackCoverType} - */ - public enum WebRedPackCoverType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_COVER_TYPE = 0; - */ - UNKNOWN_COVER_TYPE(0), - /** - * NORMAL_COVER = 1; - */ - NORMAL_COVER(1), - /** - * PRETTY_COVER = 2; - */ - PRETTY_COVER(2), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_COVER_TYPE = 0; - */ - public static final int UNKNOWN_COVER_TYPE_VALUE = 0; - /** - * NORMAL_COVER = 1; - */ - public static final int NORMAL_COVER_VALUE = 1; - /** - * PRETTY_COVER = 2; - */ - public static final int PRETTY_COVER_VALUE = 2; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static WebRedPackCoverType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static WebRedPackCoverType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_COVER_TYPE; - case 1: return NORMAL_COVER; - case 2: return PRETTY_COVER; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - WebRedPackCoverType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public WebRedPackCoverType findValueByNumber(int number) { - return WebRedPackCoverType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final WebRedPackCoverType[] VALUES = values(); - - public static WebRedPackCoverType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private WebRedPackCoverType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebRedPackCoverType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\031WebRedPackCoverType.proto*Q\n\023WebRedPac" + - "kCoverType\022\026\n\022UNKNOWN_COVER_TYPE\020\000\022\020\n\014NO" + - "RMAL_COVER\020\001\022\020\n\014PRETTY_COVER\020\002B6\n4tech.o" + - "rdinaryroad.live.chat.client.kuaishou.pr" + - "otobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java deleted file mode 100644 index 72ffc45a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java +++ /dev/null @@ -1,1522 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebRedPackInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebRedPackInfoOuterClass { - private WebRedPackInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebRedPackInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebRedPackInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo author = 2; - * @return Whether the author field is set. - */ - boolean hasAuthor(); - /** - * .SimpleUserInfo author = 2; - * @return The author. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor(); - /** - * .SimpleUserInfo author = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder(); - - /** - * uint64 balance = 3; - * @return The balance. - */ - long getBalance(); - - /** - * uint64 openTime = 4; - * @return The openTime. - */ - long getOpenTime(); - - /** - * uint64 currentTime = 5; - * @return The currentTime. - */ - long getCurrentTime(); - - /** - * string grabToken = 6; - * @return The grabToken. - */ - java.lang.String getGrabToken(); - /** - * string grabToken = 6; - * @return The bytes for grabToken. - */ - com.google.protobuf.ByteString - getGrabTokenBytes(); - - /** - * bool needSendRequest = 7; - * @return The needSendRequest. - */ - boolean getNeedSendRequest(); - - /** - * uint64 requestDelayMillis = 8; - * @return The requestDelayMillis. - */ - long getRequestDelayMillis(); - - /** - * uint64 luckiestDelayMillis = 9; - * @return The luckiestDelayMillis. - */ - long getLuckiestDelayMillis(); - - /** - * .WebRedPackCoverType coverType = 10; - * @return The enum numeric value on the wire for coverType. - */ - int getCoverTypeValue(); - /** - * .WebRedPackCoverType coverType = 10; - * @return The coverType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType(); - } - /** - * Protobuf type {@code WebRedPackInfo} - */ - public static final class WebRedPackInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebRedPackInfo) - WebRedPackInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebRedPackInfo.newBuilder() to construct. - private WebRedPackInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebRedPackInfo() { - id_ = ""; - grabToken_ = ""; - coverType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebRedPackInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int AUTHOR_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo author_; - /** - * .SimpleUserInfo author = 2; - * @return Whether the author field is set. - */ - @java.lang.Override - public boolean hasAuthor() { - return author_ != null; - } - /** - * .SimpleUserInfo author = 2; - * @return The author. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor() { - return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; - } - /** - * .SimpleUserInfo author = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder() { - return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; - } - - public static final int BALANCE_FIELD_NUMBER = 3; - private long balance_ = 0L; - /** - * uint64 balance = 3; - * @return The balance. - */ - @java.lang.Override - public long getBalance() { - return balance_; - } - - public static final int OPENTIME_FIELD_NUMBER = 4; - private long openTime_ = 0L; - /** - * uint64 openTime = 4; - * @return The openTime. - */ - @java.lang.Override - public long getOpenTime() { - return openTime_; - } - - public static final int CURRENTTIME_FIELD_NUMBER = 5; - private long currentTime_ = 0L; - /** - * uint64 currentTime = 5; - * @return The currentTime. - */ - @java.lang.Override - public long getCurrentTime() { - return currentTime_; - } - - public static final int GRABTOKEN_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private volatile java.lang.Object grabToken_ = ""; - /** - * string grabToken = 6; - * @return The grabToken. - */ - @java.lang.Override - public java.lang.String getGrabToken() { - java.lang.Object ref = grabToken_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - grabToken_ = s; - return s; - } - } - /** - * string grabToken = 6; - * @return The bytes for grabToken. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getGrabTokenBytes() { - java.lang.Object ref = grabToken_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - grabToken_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int NEEDSENDREQUEST_FIELD_NUMBER = 7; - private boolean needSendRequest_ = false; - /** - * bool needSendRequest = 7; - * @return The needSendRequest. - */ - @java.lang.Override - public boolean getNeedSendRequest() { - return needSendRequest_; - } - - public static final int REQUESTDELAYMILLIS_FIELD_NUMBER = 8; - private long requestDelayMillis_ = 0L; - /** - * uint64 requestDelayMillis = 8; - * @return The requestDelayMillis. - */ - @java.lang.Override - public long getRequestDelayMillis() { - return requestDelayMillis_; - } - - public static final int LUCKIESTDELAYMILLIS_FIELD_NUMBER = 9; - private long luckiestDelayMillis_ = 0L; - /** - * uint64 luckiestDelayMillis = 9; - * @return The luckiestDelayMillis. - */ - @java.lang.Override - public long getLuckiestDelayMillis() { - return luckiestDelayMillis_; - } - - public static final int COVERTYPE_FIELD_NUMBER = 10; - private int coverType_ = 0; - /** - * .WebRedPackCoverType coverType = 10; - * @return The enum numeric value on the wire for coverType. - */ - @java.lang.Override public int getCoverTypeValue() { - return coverType_; - } - /** - * .WebRedPackCoverType coverType = 10; - * @return The coverType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.forNumber(coverType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNRECOGNIZED : result; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (author_ != null) { - output.writeMessage(2, getAuthor()); - } - if (balance_ != 0L) { - output.writeUInt64(3, balance_); - } - if (openTime_ != 0L) { - output.writeUInt64(4, openTime_); - } - if (currentTime_ != 0L) { - output.writeUInt64(5, currentTime_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(grabToken_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 6, grabToken_); - } - if (needSendRequest_ != false) { - output.writeBool(7, needSendRequest_); - } - if (requestDelayMillis_ != 0L) { - output.writeUInt64(8, requestDelayMillis_); - } - if (luckiestDelayMillis_ != 0L) { - output.writeUInt64(9, luckiestDelayMillis_); - } - if (coverType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNKNOWN_COVER_TYPE.getNumber()) { - output.writeEnum(10, coverType_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (author_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getAuthor()); - } - if (balance_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, balance_); - } - if (openTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(4, openTime_); - } - if (currentTime_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, currentTime_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(grabToken_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, grabToken_); - } - if (needSendRequest_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(7, needSendRequest_); - } - if (requestDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(8, requestDelayMillis_); - } - if (luckiestDelayMillis_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(9, luckiestDelayMillis_); - } - if (coverType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNKNOWN_COVER_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(10, coverType_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasAuthor() != other.hasAuthor()) return false; - if (hasAuthor()) { - if (!getAuthor() - .equals(other.getAuthor())) return false; - } - if (getBalance() - != other.getBalance()) return false; - if (getOpenTime() - != other.getOpenTime()) return false; - if (getCurrentTime() - != other.getCurrentTime()) return false; - if (!getGrabToken() - .equals(other.getGrabToken())) return false; - if (getNeedSendRequest() - != other.getNeedSendRequest()) return false; - if (getRequestDelayMillis() - != other.getRequestDelayMillis()) return false; - if (getLuckiestDelayMillis() - != other.getLuckiestDelayMillis()) return false; - if (coverType_ != other.coverType_) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasAuthor()) { - hash = (37 * hash) + AUTHOR_FIELD_NUMBER; - hash = (53 * hash) + getAuthor().hashCode(); - } - hash = (37 * hash) + BALANCE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getBalance()); - hash = (37 * hash) + OPENTIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getOpenTime()); - hash = (37 * hash) + CURRENTTIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getCurrentTime()); - hash = (37 * hash) + GRABTOKEN_FIELD_NUMBER; - hash = (53 * hash) + getGrabToken().hashCode(); - hash = (37 * hash) + NEEDSENDREQUEST_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getNeedSendRequest()); - hash = (37 * hash) + REQUESTDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRequestDelayMillis()); - hash = (37 * hash) + LUCKIESTDELAYMILLIS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getLuckiestDelayMillis()); - hash = (37 * hash) + COVERTYPE_FIELD_NUMBER; - hash = (53 * hash) + coverType_; - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebRedPackInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebRedPackInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - author_ = null; - if (authorBuilder_ != null) { - authorBuilder_.dispose(); - authorBuilder_ = null; - } - balance_ = 0L; - openTime_ = 0L; - currentTime_ = 0L; - grabToken_ = ""; - needSendRequest_ = false; - requestDelayMillis_ = 0L; - luckiestDelayMillis_ = 0L; - coverType_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.author_ = authorBuilder_ == null - ? author_ - : authorBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.balance_ = balance_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.openTime_ = openTime_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.currentTime_ = currentTime_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.grabToken_ = grabToken_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.needSendRequest_ = needSendRequest_; - } - if (((from_bitField0_ & 0x00000080) != 0)) { - result.requestDelayMillis_ = requestDelayMillis_; - } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.luckiestDelayMillis_ = luckiestDelayMillis_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { - result.coverType_ = coverType_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasAuthor()) { - mergeAuthor(other.getAuthor()); - } - if (other.getBalance() != 0L) { - setBalance(other.getBalance()); - } - if (other.getOpenTime() != 0L) { - setOpenTime(other.getOpenTime()); - } - if (other.getCurrentTime() != 0L) { - setCurrentTime(other.getCurrentTime()); - } - if (!other.getGrabToken().isEmpty()) { - grabToken_ = other.grabToken_; - bitField0_ |= 0x00000020; - onChanged(); - } - if (other.getNeedSendRequest() != false) { - setNeedSendRequest(other.getNeedSendRequest()); - } - if (other.getRequestDelayMillis() != 0L) { - setRequestDelayMillis(other.getRequestDelayMillis()); - } - if (other.getLuckiestDelayMillis() != 0L) { - setLuckiestDelayMillis(other.getLuckiestDelayMillis()); - } - if (other.coverType_ != 0) { - setCoverTypeValue(other.getCoverTypeValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getAuthorFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - balance_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - openTime_ = input.readUInt64(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - currentTime_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 50: { - grabToken_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000020; - break; - } // case 50 - case 56: { - needSendRequest_ = input.readBool(); - bitField0_ |= 0x00000040; - break; - } // case 56 - case 64: { - requestDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000080; - break; - } // case 64 - case 72: { - luckiestDelayMillis_ = input.readUInt64(); - bitField0_ |= 0x00000100; - break; - } // case 72 - case 80: { - coverType_ = input.readEnum(); - bitField0_ |= 0x00000200; - break; - } // case 80 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo author_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> authorBuilder_; - /** - * .SimpleUserInfo author = 2; - * @return Whether the author field is set. - */ - public boolean hasAuthor() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo author = 2; - * @return The author. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor() { - if (authorBuilder_ == null) { - return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; - } else { - return authorBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo author = 2; - */ - public Builder setAuthor(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (authorBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - author_ = value; - } else { - authorBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo author = 2; - */ - public Builder setAuthor( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (authorBuilder_ == null) { - author_ = builderForValue.build(); - } else { - authorBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo author = 2; - */ - public Builder mergeAuthor(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (authorBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - author_ != null && - author_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getAuthorBuilder().mergeFrom(value); - } else { - author_ = value; - } - } else { - authorBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo author = 2; - */ - public Builder clearAuthor() { - bitField0_ = (bitField0_ & ~0x00000002); - author_ = null; - if (authorBuilder_ != null) { - authorBuilder_.dispose(); - authorBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo author = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getAuthorBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getAuthorFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo author = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder() { - if (authorBuilder_ != null) { - return authorBuilder_.getMessageOrBuilder(); - } else { - return author_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; - } - } - /** - * .SimpleUserInfo author = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getAuthorFieldBuilder() { - if (authorBuilder_ == null) { - authorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getAuthor(), - getParentForChildren(), - isClean()); - author_ = null; - } - return authorBuilder_; - } - - private long balance_ ; - /** - * uint64 balance = 3; - * @return The balance. - */ - @java.lang.Override - public long getBalance() { - return balance_; - } - /** - * uint64 balance = 3; - * @param value The balance to set. - * @return This builder for chaining. - */ - public Builder setBalance(long value) { - - balance_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 balance = 3; - * @return This builder for chaining. - */ - public Builder clearBalance() { - bitField0_ = (bitField0_ & ~0x00000004); - balance_ = 0L; - onChanged(); - return this; - } - - private long openTime_ ; - /** - * uint64 openTime = 4; - * @return The openTime. - */ - @java.lang.Override - public long getOpenTime() { - return openTime_; - } - /** - * uint64 openTime = 4; - * @param value The openTime to set. - * @return This builder for chaining. - */ - public Builder setOpenTime(long value) { - - openTime_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint64 openTime = 4; - * @return This builder for chaining. - */ - public Builder clearOpenTime() { - bitField0_ = (bitField0_ & ~0x00000008); - openTime_ = 0L; - onChanged(); - return this; - } - - private long currentTime_ ; - /** - * uint64 currentTime = 5; - * @return The currentTime. - */ - @java.lang.Override - public long getCurrentTime() { - return currentTime_; - } - /** - * uint64 currentTime = 5; - * @param value The currentTime to set. - * @return This builder for chaining. - */ - public Builder setCurrentTime(long value) { - - currentTime_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 currentTime = 5; - * @return This builder for chaining. - */ - public Builder clearCurrentTime() { - bitField0_ = (bitField0_ & ~0x00000010); - currentTime_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object grabToken_ = ""; - /** - * string grabToken = 6; - * @return The grabToken. - */ - public java.lang.String getGrabToken() { - java.lang.Object ref = grabToken_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - grabToken_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string grabToken = 6; - * @return The bytes for grabToken. - */ - public com.google.protobuf.ByteString - getGrabTokenBytes() { - java.lang.Object ref = grabToken_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - grabToken_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string grabToken = 6; - * @param value The grabToken to set. - * @return This builder for chaining. - */ - public Builder setGrabToken( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - grabToken_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * string grabToken = 6; - * @return This builder for chaining. - */ - public Builder clearGrabToken() { - grabToken_ = getDefaultInstance().getGrabToken(); - bitField0_ = (bitField0_ & ~0x00000020); - onChanged(); - return this; - } - /** - * string grabToken = 6; - * @param value The bytes for grabToken to set. - * @return This builder for chaining. - */ - public Builder setGrabTokenBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - grabToken_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - - private boolean needSendRequest_ ; - /** - * bool needSendRequest = 7; - * @return The needSendRequest. - */ - @java.lang.Override - public boolean getNeedSendRequest() { - return needSendRequest_; - } - /** - * bool needSendRequest = 7; - * @param value The needSendRequest to set. - * @return This builder for chaining. - */ - public Builder setNeedSendRequest(boolean value) { - - needSendRequest_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * bool needSendRequest = 7; - * @return This builder for chaining. - */ - public Builder clearNeedSendRequest() { - bitField0_ = (bitField0_ & ~0x00000040); - needSendRequest_ = false; - onChanged(); - return this; - } - - private long requestDelayMillis_ ; - /** - * uint64 requestDelayMillis = 8; - * @return The requestDelayMillis. - */ - @java.lang.Override - public long getRequestDelayMillis() { - return requestDelayMillis_; - } - /** - * uint64 requestDelayMillis = 8; - * @param value The requestDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setRequestDelayMillis(long value) { - - requestDelayMillis_ = value; - bitField0_ |= 0x00000080; - onChanged(); - return this; - } - /** - * uint64 requestDelayMillis = 8; - * @return This builder for chaining. - */ - public Builder clearRequestDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000080); - requestDelayMillis_ = 0L; - onChanged(); - return this; - } - - private long luckiestDelayMillis_ ; - /** - * uint64 luckiestDelayMillis = 9; - * @return The luckiestDelayMillis. - */ - @java.lang.Override - public long getLuckiestDelayMillis() { - return luckiestDelayMillis_; - } - /** - * uint64 luckiestDelayMillis = 9; - * @param value The luckiestDelayMillis to set. - * @return This builder for chaining. - */ - public Builder setLuckiestDelayMillis(long value) { - - luckiestDelayMillis_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; - } - /** - * uint64 luckiestDelayMillis = 9; - * @return This builder for chaining. - */ - public Builder clearLuckiestDelayMillis() { - bitField0_ = (bitField0_ & ~0x00000100); - luckiestDelayMillis_ = 0L; - onChanged(); - return this; - } - - private int coverType_ = 0; - /** - * .WebRedPackCoverType coverType = 10; - * @return The enum numeric value on the wire for coverType. - */ - @java.lang.Override public int getCoverTypeValue() { - return coverType_; - } - /** - * .WebRedPackCoverType coverType = 10; - * @param value The enum numeric value on the wire for coverType to set. - * @return This builder for chaining. - */ - public Builder setCoverTypeValue(int value) { - coverType_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; - } - /** - * .WebRedPackCoverType coverType = 10; - * @return The coverType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.forNumber(coverType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNRECOGNIZED : result; - } - /** - * .WebRedPackCoverType coverType = 10; - * @param value The coverType to set. - * @return This builder for chaining. - */ - public Builder setCoverType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000200; - coverType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebRedPackCoverType coverType = 10; - * @return This builder for chaining. - */ - public Builder clearCoverType() { - bitField0_ = (bitField0_ & ~0x00000200); - coverType_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebRedPackInfo) - } - - // @@protoc_insertion_point(class_scope:WebRedPackInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebRedPackInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebRedPackInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebRedPackInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\024WebRedPackInfo.proto\032\024SimpleUserInfo.p" + - "roto\032\031WebRedPackCoverType.proto\"\203\002\n\016WebR" + - "edPackInfo\022\n\n\002id\030\001 \001(\t\022\037\n\006author\030\002 \001(\0132\017" + - ".SimpleUserInfo\022\017\n\007balance\030\003 \001(\004\022\020\n\010open" + - "Time\030\004 \001(\004\022\023\n\013currentTime\030\005 \001(\004\022\021\n\tgrabT" + - "oken\030\006 \001(\t\022\027\n\017needSendRequest\030\007 \001(\010\022\032\n\022r" + - "equestDelayMillis\030\010 \001(\004\022\033\n\023luckiestDelay" + - "Millis\030\t \001(\004\022\'\n\tcoverType\030\n \001(\0162\024.WebRed" + - "PackCoverTypeB6\n4tech.ordinaryroad.live." + - "chat.client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor(), - }); - internal_static_WebRedPackInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebRedPackInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebRedPackInfo_descriptor, - new java.lang.String[] { "Id", "Author", "Balance", "OpenTime", "CurrentTime", "GrabToken", "NeedSendRequest", "RequestDelayMillis", "LuckiestDelayMillis", "CoverType", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java deleted file mode 100644 index 97d78171..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java +++ /dev/null @@ -1,1301 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebShareFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebShareFeedOuterClass { - private WebShareFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebShareFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebShareFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * uint64 time = 3; - * @return The time. - */ - long getTime(); - - /** - * uint32 thirdPartyPlatform = 4; - * @return The thirdPartyPlatform. - */ - int getThirdPartyPlatform(); - - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - long getSortRank(); - - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The enum numeric value on the wire for liveAssistantType. - */ - int getLiveAssistantTypeValue(); - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The liveAssistantType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); - - /** - * string deviceHash = 7; - * @return The deviceHash. - */ - java.lang.String getDeviceHash(); - /** - * string deviceHash = 7; - * @return The bytes for deviceHash. - */ - com.google.protobuf.ByteString - getDeviceHashBytes(); - } - /** - * Protobuf type {@code WebShareFeed} - */ - public static final class WebShareFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebShareFeed) - WebShareFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebShareFeed.newBuilder() to construct. - private WebShareFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebShareFeed() { - id_ = ""; - liveAssistantType_ = 0; - deviceHash_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebShareFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder.class); - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int TIME_FIELD_NUMBER = 3; - private long time_ = 0L; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int THIRDPARTYPLATFORM_FIELD_NUMBER = 4; - private int thirdPartyPlatform_ = 0; - /** - * uint32 thirdPartyPlatform = 4; - * @return The thirdPartyPlatform. - */ - @java.lang.Override - public int getThirdPartyPlatform() { - return thirdPartyPlatform_; - } - - public static final int SORTRANK_FIELD_NUMBER = 5; - private long sortRank_ = 0L; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - - public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 6; - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The liveAssistantType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - - public static final int DEVICEHASH_FIELD_NUMBER = 7; - @SuppressWarnings("serial") - private volatile java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 7; - * @return The deviceHash. - */ - @java.lang.Override - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } - } - /** - * string deviceHash = 7; - * @return The bytes for deviceHash. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (time_ != 0L) { - output.writeUInt64(3, time_); - } - if (thirdPartyPlatform_ != 0) { - output.writeUInt32(4, thirdPartyPlatform_); - } - if (sortRank_ != 0L) { - output.writeUInt64(5, sortRank_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - output.writeEnum(6, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, deviceHash_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, time_); - } - if (thirdPartyPlatform_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, thirdPartyPlatform_); - } - if (sortRank_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, sortRank_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(6, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, deviceHash_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getTime() - != other.getTime()) return false; - if (getThirdPartyPlatform() - != other.getThirdPartyPlatform()) return false; - if (getSortRank() - != other.getSortRank()) return false; - if (liveAssistantType_ != other.liveAssistantType_) return false; - if (!getDeviceHash() - .equals(other.getDeviceHash())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + THIRDPARTYPLATFORM_FIELD_NUMBER; - hash = (53 * hash) + getThirdPartyPlatform(); - hash = (37 * hash) + SORTRANK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSortRank()); - hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; - hash = (53 * hash) + liveAssistantType_; - hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; - hash = (53 * hash) + getDeviceHash().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebShareFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebShareFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - time_ = 0L; - thirdPartyPlatform_ = 0; - sortRank_ = 0L; - liveAssistantType_ = 0; - deviceHash_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.thirdPartyPlatform_ = thirdPartyPlatform_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.sortRank_ = sortRank_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.liveAssistantType_ = liveAssistantType_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.deviceHash_ = deviceHash_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (other.getThirdPartyPlatform() != 0) { - setThirdPartyPlatform(other.getThirdPartyPlatform()); - } - if (other.getSortRank() != 0L) { - setSortRank(other.getSortRank()); - } - if (other.liveAssistantType_ != 0) { - setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); - } - if (!other.getDeviceHash().isEmpty()) { - deviceHash_ = other.deviceHash_; - bitField0_ |= 0x00000040; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - thirdPartyPlatform_ = input.readUInt32(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 40: { - sortRank_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - liveAssistantType_ = input.readEnum(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 58: { - deviceHash_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000040; - break; - } // case 58 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long time_ ; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 3; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 time = 3; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000004); - time_ = 0L; - onChanged(); - return this; - } - - private int thirdPartyPlatform_ ; - /** - * uint32 thirdPartyPlatform = 4; - * @return The thirdPartyPlatform. - */ - @java.lang.Override - public int getThirdPartyPlatform() { - return thirdPartyPlatform_; - } - /** - * uint32 thirdPartyPlatform = 4; - * @param value The thirdPartyPlatform to set. - * @return This builder for chaining. - */ - public Builder setThirdPartyPlatform(int value) { - - thirdPartyPlatform_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * uint32 thirdPartyPlatform = 4; - * @return This builder for chaining. - */ - public Builder clearThirdPartyPlatform() { - bitField0_ = (bitField0_ & ~0x00000008); - thirdPartyPlatform_ = 0; - onChanged(); - return this; - } - - private long sortRank_ ; - /** - * uint64 sortRank = 5; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - /** - * uint64 sortRank = 5; - * @param value The sortRank to set. - * @return This builder for chaining. - */ - public Builder setSortRank(long value) { - - sortRank_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 sortRank = 5; - * @return This builder for chaining. - */ - public Builder clearSortRank() { - bitField0_ = (bitField0_ & ~0x00000010); - sortRank_ = 0L; - onChanged(); - return this; - } - - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @param value The enum numeric value on the wire for liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantTypeValue(int value) { - liveAssistantType_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return The liveAssistantType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @param value The liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000020; - liveAssistantType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 6; - * @return This builder for chaining. - */ - public Builder clearLiveAssistantType() { - bitField0_ = (bitField0_ & ~0x00000020); - liveAssistantType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object deviceHash_ = ""; - /** - * string deviceHash = 7; - * @return The deviceHash. - */ - public java.lang.String getDeviceHash() { - java.lang.Object ref = deviceHash_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - deviceHash_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string deviceHash = 7; - * @return The bytes for deviceHash. - */ - public com.google.protobuf.ByteString - getDeviceHashBytes() { - java.lang.Object ref = deviceHash_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - deviceHash_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string deviceHash = 7; - * @param value The deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHash( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - deviceHash_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * string deviceHash = 7; - * @return This builder for chaining. - */ - public Builder clearDeviceHash() { - deviceHash_ = getDefaultInstance().getDeviceHash(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); - return this; - } - /** - * string deviceHash = 7; - * @param value The bytes for deviceHash to set. - * @return This builder for chaining. - */ - public Builder setDeviceHashBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - deviceHash_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebShareFeed) - } - - // @@protoc_insertion_point(class_scope:WebShareFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebShareFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebShareFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebShareFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\022WebShareFeed.proto\032\024SimpleUserInfo.pro" + - "to\032\032WebLiveAssistantType.proto\"\273\001\n\014WebSh" + - "areFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.Simp" + - "leUserInfo\022\014\n\004time\030\003 \001(\004\022\032\n\022thirdPartyPl" + - "atform\030\004 \001(\r\022\020\n\010sortRank\030\005 \001(\004\0220\n\021liveAs" + - "sistantType\030\006 \001(\0162\025.WebLiveAssistantType" + - "\022\022\n\ndeviceHash\030\007 \001(\tB6\n4tech.ordinaryroa" + - "d.live.chat.client.kuaishou.protobufb\006pr" + - "oto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), - }); - internal_static_WebShareFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebShareFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebShareFeed_descriptor, - new java.lang.String[] { "Id", "User", "Time", "ThirdPartyPlatform", "SortRank", "LiveAssistantType", "DeviceHash", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java deleted file mode 100644 index b633443c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java +++ /dev/null @@ -1,1427 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebSystemNoticeFeed.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebSystemNoticeFeedOuterClass { - private WebSystemNoticeFeedOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebSystemNoticeFeedOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebSystemNoticeFeed) - com.google.protobuf.MessageOrBuilder { - - /** - * string id = 1; - * @return The id. - */ - java.lang.String getId(); - /** - * string id = 1; - * @return The bytes for id. - */ - com.google.protobuf.ByteString - getIdBytes(); - - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 2; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * uint64 time = 3; - * @return The time. - */ - long getTime(); - - /** - * string content = 4; - * @return The content. - */ - java.lang.String getContent(); - /** - * string content = 4; - * @return The bytes for content. - */ - com.google.protobuf.ByteString - getContentBytes(); - - /** - * uint64 displayDuration = 5; - * @return The displayDuration. - */ - long getDisplayDuration(); - - /** - * uint64 sortRank = 6; - * @return The sortRank. - */ - long getSortRank(); - - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The enum numeric value on the wire for displayType. - */ - int getDisplayTypeValue(); - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The displayType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType(); - } - /** - * Protobuf type {@code WebSystemNoticeFeed} - */ - public static final class WebSystemNoticeFeed extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebSystemNoticeFeed) - WebSystemNoticeFeedOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebSystemNoticeFeed.newBuilder() to construct. - private WebSystemNoticeFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebSystemNoticeFeed() { - id_ = ""; - content_ = ""; - displayType_ = 0; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebSystemNoticeFeed(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder.class); - } - - /** - * Protobuf enum {@code WebSystemNoticeFeed.DisplayType} - */ - public enum DisplayType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_DISPLAY_TYPE = 0; - */ - UNKNOWN_DISPLAY_TYPE(0), - /** - * COMMENT = 1; - */ - COMMENT(1), - /** - * ALERT = 2; - */ - ALERT(2), - /** - * TOAST = 3; - */ - TOAST(3), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_DISPLAY_TYPE = 0; - */ - public static final int UNKNOWN_DISPLAY_TYPE_VALUE = 0; - /** - * COMMENT = 1; - */ - public static final int COMMENT_VALUE = 1; - /** - * ALERT = 2; - */ - public static final int ALERT_VALUE = 2; - /** - * TOAST = 3; - */ - public static final int TOAST_VALUE = 3; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static DisplayType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static DisplayType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_DISPLAY_TYPE; - case 1: return COMMENT; - case 2: return ALERT; - case 3: return TOAST; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - DisplayType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public DisplayType findValueByNumber(int number) { - return DisplayType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDescriptor().getEnumTypes().get(0); - } - - private static final DisplayType[] VALUES = values(); - - public static DisplayType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private DisplayType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebSystemNoticeFeed.DisplayType) - } - - public static final int ID_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private volatile java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - @java.lang.Override - public java.lang.String getId() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int USER_FIELD_NUMBER = 2; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 2; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int TIME_FIELD_NUMBER = 3; - private long time_ = 0L; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - - public static final int CONTENT_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private volatile java.lang.Object content_ = ""; - /** - * string content = 4; - * @return The content. - */ - @java.lang.Override - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } - } - /** - * string content = 4; - * @return The bytes for content. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int DISPLAYDURATION_FIELD_NUMBER = 5; - private long displayDuration_ = 0L; - /** - * uint64 displayDuration = 5; - * @return The displayDuration. - */ - @java.lang.Override - public long getDisplayDuration() { - return displayDuration_; - } - - public static final int SORTRANK_FIELD_NUMBER = 6; - private long sortRank_ = 0L; - /** - * uint64 sortRank = 6; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - - public static final int DISPLAYTYPE_FIELD_NUMBER = 7; - private int displayType_ = 0; - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The enum numeric value on the wire for displayType. - */ - @java.lang.Override public int getDisplayTypeValue() { - return displayType_; - } - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The displayType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.forNumber(displayType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNRECOGNIZED : result; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); - } - if (user_ != null) { - output.writeMessage(2, getUser()); - } - if (time_ != 0L) { - output.writeUInt64(3, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, content_); - } - if (displayDuration_ != 0L) { - output.writeUInt64(5, displayDuration_); - } - if (sortRank_ != 0L) { - output.writeUInt64(6, sortRank_); - } - if (displayType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNKNOWN_DISPLAY_TYPE.getNumber()) { - output.writeEnum(7, displayType_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); - } - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, getUser()); - } - if (time_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(3, time_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, content_); - } - if (displayDuration_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(5, displayDuration_); - } - if (sortRank_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeUInt64Size(6, sortRank_); - } - if (displayType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNKNOWN_DISPLAY_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(7, displayType_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed) obj; - - if (!getId() - .equals(other.getId())) return false; - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getTime() - != other.getTime()) return false; - if (!getContent() - .equals(other.getContent())) return false; - if (getDisplayDuration() - != other.getDisplayDuration()) return false; - if (getSortRank() - != other.getSortRank()) return false; - if (displayType_ != other.displayType_) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + TIME_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTime()); - hash = (37 * hash) + CONTENT_FIELD_NUMBER; - hash = (53 * hash) + getContent().hashCode(); - hash = (37 * hash) + DISPLAYDURATION_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getDisplayDuration()); - hash = (37 * hash) + SORTRANK_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSortRank()); - hash = (37 * hash) + DISPLAYTYPE_FIELD_NUMBER; - hash = (53 * hash) + displayType_; - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebSystemNoticeFeed} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebSystemNoticeFeed) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - id_ = ""; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - time_ = 0L; - content_ = ""; - displayDuration_ = 0L; - sortRank_ = 0L; - displayType_ = 0; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.id_ = id_; - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.time_ = time_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.content_ = content_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.displayDuration_ = displayDuration_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.sortRank_ = sortRank_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { - result.displayType_ = displayType_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()) return this; - if (!other.getId().isEmpty()) { - id_ = other.id_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getTime() != 0L) { - setTime(other.getTime()); - } - if (!other.getContent().isEmpty()) { - content_ = other.content_; - bitField0_ |= 0x00000008; - onChanged(); - } - if (other.getDisplayDuration() != 0L) { - setDisplayDuration(other.getDisplayDuration()); - } - if (other.getSortRank() != 0L) { - setSortRank(other.getSortRank()); - } - if (other.displayType_ != 0) { - setDisplayTypeValue(other.getDisplayTypeValue()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - id_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 18: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000002; - break; - } // case 18 - case 24: { - time_ = input.readUInt64(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 34: { - content_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; - break; - } // case 34 - case 40: { - displayDuration_ = input.readUInt64(); - bitField0_ |= 0x00000010; - break; - } // case 40 - case 48: { - sortRank_ = input.readUInt64(); - bitField0_ |= 0x00000020; - break; - } // case 48 - case 56: { - displayType_ = input.readEnum(); - bitField0_ |= 0x00000040; - break; - } // case 56 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private java.lang.Object id_ = ""; - /** - * string id = 1; - * @return The id. - */ - public java.lang.String getId() { - java.lang.Object ref = id_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - id_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string id = 1; - * @return The bytes for id. - */ - public com.google.protobuf.ByteString - getIdBytes() { - java.lang.Object ref = id_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - id_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string id = 1; - * @param value The id to set. - * @return This builder for chaining. - */ - public Builder setId( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * string id = 1; - * @return This builder for chaining. - */ - public Builder clearId() { - id_ = getDefaultInstance().getId(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - /** - * string id = 1; - * @param value The bytes for id to set. - * @return This builder for chaining. - */ - public Builder setIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - id_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 2; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000002) != 0); - } - /** - * .SimpleUserInfo user = 2; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000002); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000002; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 2; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private long time_ ; - /** - * uint64 time = 3; - * @return The time. - */ - @java.lang.Override - public long getTime() { - return time_; - } - /** - * uint64 time = 3; - * @param value The time to set. - * @return This builder for chaining. - */ - public Builder setTime(long value) { - - time_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * uint64 time = 3; - * @return This builder for chaining. - */ - public Builder clearTime() { - bitField0_ = (bitField0_ & ~0x00000004); - time_ = 0L; - onChanged(); - return this; - } - - private java.lang.Object content_ = ""; - /** - * string content = 4; - * @return The content. - */ - public java.lang.String getContent() { - java.lang.Object ref = content_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - content_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string content = 4; - * @return The bytes for content. - */ - public com.google.protobuf.ByteString - getContentBytes() { - java.lang.Object ref = content_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - content_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string content = 4; - * @param value The content to set. - * @return This builder for chaining. - */ - public Builder setContent( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - content_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * string content = 4; - * @return This builder for chaining. - */ - public Builder clearContent() { - content_ = getDefaultInstance().getContent(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - /** - * string content = 4; - * @param value The bytes for content to set. - * @return This builder for chaining. - */ - public Builder setContentBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - content_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - - private long displayDuration_ ; - /** - * uint64 displayDuration = 5; - * @return The displayDuration. - */ - @java.lang.Override - public long getDisplayDuration() { - return displayDuration_; - } - /** - * uint64 displayDuration = 5; - * @param value The displayDuration to set. - * @return This builder for chaining. - */ - public Builder setDisplayDuration(long value) { - - displayDuration_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * uint64 displayDuration = 5; - * @return This builder for chaining. - */ - public Builder clearDisplayDuration() { - bitField0_ = (bitField0_ & ~0x00000010); - displayDuration_ = 0L; - onChanged(); - return this; - } - - private long sortRank_ ; - /** - * uint64 sortRank = 6; - * @return The sortRank. - */ - @java.lang.Override - public long getSortRank() { - return sortRank_; - } - /** - * uint64 sortRank = 6; - * @param value The sortRank to set. - * @return This builder for chaining. - */ - public Builder setSortRank(long value) { - - sortRank_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * uint64 sortRank = 6; - * @return This builder for chaining. - */ - public Builder clearSortRank() { - bitField0_ = (bitField0_ & ~0x00000020); - sortRank_ = 0L; - onChanged(); - return this; - } - - private int displayType_ = 0; - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The enum numeric value on the wire for displayType. - */ - @java.lang.Override public int getDisplayTypeValue() { - return displayType_; - } - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @param value The enum numeric value on the wire for displayType to set. - * @return This builder for chaining. - */ - public Builder setDisplayTypeValue(int value) { - displayType_ = value; - bitField0_ |= 0x00000040; - onChanged(); - return this; - } - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return The displayType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.forNumber(displayType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNRECOGNIZED : result; - } - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @param value The displayType to set. - * @return This builder for chaining. - */ - public Builder setDisplayType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000040; - displayType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebSystemNoticeFeed.DisplayType displayType = 7; - * @return This builder for chaining. - */ - public Builder clearDisplayType() { - bitField0_ = (bitField0_ & ~0x00000040); - displayType_ = 0; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebSystemNoticeFeed) - } - - // @@protoc_insertion_point(class_scope:WebSystemNoticeFeed) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebSystemNoticeFeed parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebSystemNoticeFeed_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebSystemNoticeFeed_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\031WebSystemNoticeFeed.proto\032\024SimpleUserI" + - "nfo.proto\"\215\002\n\023WebSystemNoticeFeed\022\n\n\002id\030" + - "\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.SimpleUserInfo\022\014\n\004" + - "time\030\003 \001(\004\022\017\n\007content\030\004 \001(\t\022\027\n\017displayDu" + - "ration\030\005 \001(\004\022\020\n\010sortRank\030\006 \001(\004\0225\n\013displa" + - "yType\030\007 \001(\0162 .WebSystemNoticeFeed.Displa" + - "yType\"J\n\013DisplayType\022\030\n\024UNKNOWN_DISPLAY_" + - "TYPE\020\000\022\013\n\007COMMENT\020\001\022\t\n\005ALERT\020\002\022\t\n\005TOAST\020" + - "\003B6\n4tech.ordinaryroad.live.chat.client." + - "kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - }); - internal_static_WebSystemNoticeFeed_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebSystemNoticeFeed_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebSystemNoticeFeed_descriptor, - new java.lang.String[] { "Id", "User", "Time", "Content", "DisplayDuration", "SortRank", "DisplayType", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java deleted file mode 100644 index e86bfabf..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebUserPauseType.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebUserPauseTypeOuterClass { - private WebUserPauseTypeOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - /** - * Protobuf enum {@code WebUserPauseType} - */ - public enum WebUserPauseType - implements com.google.protobuf.ProtocolMessageEnum { - /** - * UNKNOWN_USER_PAUSE_TYPE = 0; - */ - UNKNOWN_USER_PAUSE_TYPE(0), - /** - * BACKGROUND = 1; - */ - BACKGROUND(1), - UNRECOGNIZED(-1), - ; - - /** - * UNKNOWN_USER_PAUSE_TYPE = 0; - */ - public static final int UNKNOWN_USER_PAUSE_TYPE_VALUE = 0; - /** - * BACKGROUND = 1; - */ - public static final int BACKGROUND_VALUE = 1; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static WebUserPauseType valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static WebUserPauseType forNumber(int value) { - switch (value) { - case 0: return UNKNOWN_USER_PAUSE_TYPE; - case 1: return BACKGROUND; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - WebUserPauseType> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public WebUserPauseType findValueByNumber(int number) { - return WebUserPauseType.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor().getEnumTypes().get(0); - } - - private static final WebUserPauseType[] VALUES = values(); - - public static WebUserPauseType valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private WebUserPauseType(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:WebUserPauseType) - } - - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\026WebUserPauseType.proto*?\n\020WebUserPause" + - "Type\022\033\n\027UNKNOWN_USER_PAUSE_TYPE\020\000\022\016\n\nBAC" + - "KGROUND\020\001B6\n4tech.ordinaryroad.live.chat" + - ".client.kuaishou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - }); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java deleted file mode 100644 index 15e9bb2e..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2023 OrdinaryRoad - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: WebWatchingUserInfo.proto - -package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; - -public final class WebWatchingUserInfoOuterClass { - private WebWatchingUserInfoOuterClass() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface WebWatchingUserInfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:WebWatchingUserInfo) - com.google.protobuf.MessageOrBuilder { - - /** - * .SimpleUserInfo user = 1; - * @return Whether the user field is set. - */ - boolean hasUser(); - /** - * .SimpleUserInfo user = 1; - * @return The user. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); - /** - * .SimpleUserInfo user = 1; - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); - - /** - * bool offline = 2; - * @return The offline. - */ - boolean getOffline(); - - /** - * bool tuhao = 3; - * @return The tuhao. - */ - boolean getTuhao(); - - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The enum numeric value on the wire for liveAssistantType. - */ - int getLiveAssistantTypeValue(); - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The liveAssistantType. - */ - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); - - /** - * string displayKsCoin = 5; - * @return The displayKsCoin. - */ - java.lang.String getDisplayKsCoin(); - /** - * string displayKsCoin = 5; - * @return The bytes for displayKsCoin. - */ - com.google.protobuf.ByteString - getDisplayKsCoinBytes(); - } - /** - * Protobuf type {@code WebWatchingUserInfo} - */ - public static final class WebWatchingUserInfo extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WebWatchingUserInfo) - WebWatchingUserInfoOrBuilder { - private static final long serialVersionUID = 0L; - // Use WebWatchingUserInfo.newBuilder() to construct. - private WebWatchingUserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private WebWatchingUserInfo() { - liveAssistantType_ = 0; - displayKsCoin_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new WebWatchingUserInfo(); - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder.class); - } - - public static final int USER_FIELD_NUMBER = 1; - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - /** - * .SimpleUserInfo user = 1; - * @return Whether the user field is set. - */ - @java.lang.Override - public boolean hasUser() { - return user_ != null; - } - /** - * .SimpleUserInfo user = 1; - * @return The user. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - /** - * .SimpleUserInfo user = 1; - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - - public static final int OFFLINE_FIELD_NUMBER = 2; - private boolean offline_ = false; - /** - * bool offline = 2; - * @return The offline. - */ - @java.lang.Override - public boolean getOffline() { - return offline_; - } - - public static final int TUHAO_FIELD_NUMBER = 3; - private boolean tuhao_ = false; - /** - * bool tuhao = 3; - * @return The tuhao. - */ - @java.lang.Override - public boolean getTuhao() { - return tuhao_; - } - - public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 4; - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The liveAssistantType. - */ - @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - - public static final int DISPLAYKSCOIN_FIELD_NUMBER = 5; - @SuppressWarnings("serial") - private volatile java.lang.Object displayKsCoin_ = ""; - /** - * string displayKsCoin = 5; - * @return The displayKsCoin. - */ - @java.lang.Override - public java.lang.String getDisplayKsCoin() { - java.lang.Object ref = displayKsCoin_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayKsCoin_ = s; - return s; - } - } - /** - * string displayKsCoin = 5; - * @return The bytes for displayKsCoin. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getDisplayKsCoinBytes() { - java.lang.Object ref = displayKsCoin_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayKsCoin_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (user_ != null) { - output.writeMessage(1, getUser()); - } - if (offline_ != false) { - output.writeBool(2, offline_); - } - if (tuhao_ != false) { - output.writeBool(3, tuhao_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - output.writeEnum(4, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayKsCoin_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, displayKsCoin_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (user_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getUser()); - } - if (offline_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, offline_); - } - if (tuhao_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(3, tuhao_); - } - if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(4, liveAssistantType_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayKsCoin_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, displayKsCoin_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo)) { - return super.equals(obj); - } - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo) obj; - - if (hasUser() != other.hasUser()) return false; - if (hasUser()) { - if (!getUser() - .equals(other.getUser())) return false; - } - if (getOffline() - != other.getOffline()) return false; - if (getTuhao() - != other.getTuhao()) return false; - if (liveAssistantType_ != other.liveAssistantType_) return false; - if (!getDisplayKsCoin() - .equals(other.getDisplayKsCoin())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasUser()) { - hash = (37 * hash) + USER_FIELD_NUMBER; - hash = (53 * hash) + getUser().hashCode(); - } - hash = (37 * hash) + OFFLINE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getOffline()); - hash = (37 * hash) + TUHAO_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getTuhao()); - hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; - hash = (53 * hash) + liveAssistantType_; - hash = (37 * hash) + DISPLAYKSCOIN_FIELD_NUMBER; - hash = (53 * hash) + getDisplayKsCoin().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseDelimitedFrom( - java.io.InputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input, extensionRegistry); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - /** - * Protobuf type {@code WebWatchingUserInfo} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WebWatchingUserInfo) - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_fieldAccessorTable - .ensureFieldAccessorsInitialized( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder.class); - } - - // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - bitField0_ = 0; - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - offline_ = false; - tuhao_ = false; - liveAssistantType_ = 0; - displayKsCoin_ = ""; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstanceForType() { - return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance(); - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo build() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo buildPartial() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo(this); - if (bitField0_ != 0) { buildPartial0(result); } - onBuilt(); - return result; - } - - private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.user_ = userBuilder_ == null - ? user_ - : userBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.offline_ = offline_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.tuhao_ = tuhao_; - } - if (((from_bitField0_ & 0x00000008) != 0)) { - result.liveAssistantType_ = liveAssistantType_; - } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.displayKsCoin_ = displayKsCoin_; - } - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo) { - return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo other) { - if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()) return this; - if (other.hasUser()) { - mergeUser(other.getUser()); - } - if (other.getOffline() != false) { - setOffline(other.getOffline()); - } - if (other.getTuhao() != false) { - setTuhao(other.getTuhao()); - } - if (other.liveAssistantType_ != 0) { - setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); - } - if (!other.getDisplayKsCoin().isEmpty()) { - displayKsCoin_ = other.displayKsCoin_; - bitField0_ |= 0x00000010; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getUserFieldBuilder().getBuilder(), - extensionRegistry); - bitField0_ |= 0x00000001; - break; - } // case 10 - case 16: { - offline_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } // case 16 - case 24: { - tuhao_ = input.readBool(); - bitField0_ |= 0x00000004; - break; - } // case 24 - case 32: { - liveAssistantType_ = input.readEnum(); - bitField0_ |= 0x00000008; - break; - } // case 32 - case 42: { - displayKsCoin_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; - break; - } // case 42 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int bitField0_; - - private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; - /** - * .SimpleUserInfo user = 1; - * @return Whether the user field is set. - */ - public boolean hasUser() { - return ((bitField0_ & 0x00000001) != 0); - } - /** - * .SimpleUserInfo user = 1; - * @return The user. - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { - if (userBuilder_ == null) { - return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } else { - return userBuilder_.getMessage(); - } - } - /** - * .SimpleUserInfo user = 1; - */ - public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - user_ = value; - } else { - userBuilder_.setMessage(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 1; - */ - public Builder setUser( - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { - if (userBuilder_ == null) { - user_ = builderForValue.build(); - } else { - userBuilder_.setMessage(builderForValue.build()); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 1; - */ - public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { - if (userBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - user_ != null && - user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { - getUserBuilder().mergeFrom(value); - } else { - user_ = value; - } - } else { - userBuilder_.mergeFrom(value); - } - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 1; - */ - public Builder clearUser() { - bitField0_ = (bitField0_ & ~0x00000001); - user_ = null; - if (userBuilder_ != null) { - userBuilder_.dispose(); - userBuilder_ = null; - } - onChanged(); - return this; - } - /** - * .SimpleUserInfo user = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getUserFieldBuilder().getBuilder(); - } - /** - * .SimpleUserInfo user = 1; - */ - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { - if (userBuilder_ != null) { - return userBuilder_.getMessageOrBuilder(); - } else { - return user_ == null ? - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; - } - } - /** - * .SimpleUserInfo user = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> - getUserFieldBuilder() { - if (userBuilder_ == null) { - userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( - getUser(), - getParentForChildren(), - isClean()); - user_ = null; - } - return userBuilder_; - } - - private boolean offline_ ; - /** - * bool offline = 2; - * @return The offline. - */ - @java.lang.Override - public boolean getOffline() { - return offline_; - } - /** - * bool offline = 2; - * @param value The offline to set. - * @return This builder for chaining. - */ - public Builder setOffline(boolean value) { - - offline_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - /** - * bool offline = 2; - * @return This builder for chaining. - */ - public Builder clearOffline() { - bitField0_ = (bitField0_ & ~0x00000002); - offline_ = false; - onChanged(); - return this; - } - - private boolean tuhao_ ; - /** - * bool tuhao = 3; - * @return The tuhao. - */ - @java.lang.Override - public boolean getTuhao() { - return tuhao_; - } - /** - * bool tuhao = 3; - * @param value The tuhao to set. - * @return This builder for chaining. - */ - public Builder setTuhao(boolean value) { - - tuhao_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - /** - * bool tuhao = 3; - * @return This builder for chaining. - */ - public Builder clearTuhao() { - bitField0_ = (bitField0_ & ~0x00000004); - tuhao_ = false; - onChanged(); - return this; - } - - private int liveAssistantType_ = 0; - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The enum numeric value on the wire for liveAssistantType. - */ - @java.lang.Override public int getLiveAssistantTypeValue() { - return liveAssistantType_; - } - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @param value The enum numeric value on the wire for liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantTypeValue(int value) { - liveAssistantType_ = value; - bitField0_ |= 0x00000008; - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return The liveAssistantType. - */ - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); - return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; - } - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @param value The liveAssistantType to set. - * @return This builder for chaining. - */ - public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000008; - liveAssistantType_ = value.getNumber(); - onChanged(); - return this; - } - /** - * .WebLiveAssistantType liveAssistantType = 4; - * @return This builder for chaining. - */ - public Builder clearLiveAssistantType() { - bitField0_ = (bitField0_ & ~0x00000008); - liveAssistantType_ = 0; - onChanged(); - return this; - } - - private java.lang.Object displayKsCoin_ = ""; - /** - * string displayKsCoin = 5; - * @return The displayKsCoin. - */ - public java.lang.String getDisplayKsCoin() { - java.lang.Object ref = displayKsCoin_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - displayKsCoin_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string displayKsCoin = 5; - * @return The bytes for displayKsCoin. - */ - public com.google.protobuf.ByteString - getDisplayKsCoinBytes() { - java.lang.Object ref = displayKsCoin_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - displayKsCoin_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string displayKsCoin = 5; - * @param value The displayKsCoin to set. - * @return This builder for chaining. - */ - public Builder setDisplayKsCoin( - java.lang.String value) { - if (value == null) { throw new NullPointerException(); } - displayKsCoin_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * string displayKsCoin = 5; - * @return This builder for chaining. - */ - public Builder clearDisplayKsCoin() { - displayKsCoin_ = getDefaultInstance().getDisplayKsCoin(); - bitField0_ = (bitField0_ & ~0x00000010); - onChanged(); - return this; - } - /** - * string displayKsCoin = 5; - * @param value The bytes for displayKsCoin to set. - * @return This builder for chaining. - */ - public Builder setDisplayKsCoinBytes( - com.google.protobuf.ByteString value) { - if (value == null) { throw new NullPointerException(); } - checkByteStringIsUtf8(value); - displayKsCoin_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:WebWatchingUserInfo) - } - - // @@protoc_insertion_point(class_scope:WebWatchingUserInfo) - private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo(); - } - - public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public WebWatchingUserInfo parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WebWatchingUserInfo_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WebWatchingUserInfo_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; - } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - static { - java.lang.String[] descriptorData = { - "\n\031WebWatchingUserInfo.proto\032\024SimpleUserI" + - "nfo.proto\032\032WebLiveAssistantType.proto\"\235\001" + - "\n\023WebWatchingUserInfo\022\035\n\004user\030\001 \001(\0132\017.Si" + - "mpleUserInfo\022\017\n\007offline\030\002 \001(\010\022\r\n\005tuhao\030\003" + - " \001(\010\0220\n\021liveAssistantType\030\004 \001(\0162\025.WebLiv" + - "eAssistantType\022\025\n\rdisplayKsCoin\030\005 \001(\tB6\n" + - "4tech.ordinaryroad.live.chat.client.kuai" + - "shou.protobufb\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), - }); - internal_static_WebWatchingUserInfo_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_WebWatchingUserInfo_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WebWatchingUserInfo_descriptor, - new java.lang.String[] { "User", "Offline", "Tuhao", "LiveAssistantType", "DisplayKsCoin", }); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); - tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto deleted file mode 100644 index 8ffa40ce..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; -import "LiveCdnNodeView.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message AuditAudienceMask { - repeated LiveCdnNodeView iconCdnNodeView = 1; - string title = 2; - string detail = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto deleted file mode 100644 index 0e179c2b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSError { - uint32 code = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto deleted file mode 100644 index 0b379093..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSHeartbeat { - uint64 timestamp = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto deleted file mode 100644 index a7b66fbd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -import "ClientId.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSPing { - string echoData = 1; - ClientId clientId = 2; - string deviceId = 3; - string appVer = 4; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto deleted file mode 100644 index 3b88423c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSWebEnterRoom { - string token = 1; - string liveStreamId = 2; - uint32 reconnectCount = 3; - uint32 lastErrorCode = 4; - string expTag = 5; - string attach = 6; - string pageId = 7; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto deleted file mode 100644 index e49d4d4a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSWebError { - uint32 code = 1; - string msg = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto deleted file mode 100644 index bde62487..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSWebHeartbeat { - uint64 timestamp = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto deleted file mode 100644 index 348f3aa0..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSWebUserExit { - uint64 time = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto deleted file mode 100644 index 5987e019..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "WebUserPauseType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message CSWebUserPause { - uint64 time = 1; - WebUserPauseType pauseType = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto deleted file mode 100644 index 5ec34ad7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum ClientId { - NONE = 0; - IPHONE = 1; - ANDROID = 2; - WEB = 3; - PC = 6; - IPHONE_LIVE_MATE = 8; - ANDROID_LIVE_MATE = 9; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto deleted file mode 100644 index efb3507a..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "ConfigSwitchType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message ConfigSwitchItem { - ConfigSwitchType configSwitchType = 1; - bool value = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto deleted file mode 100644 index 3fa75b87..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum ConfigSwitchType { - UNKNOWN = 0; - HIDE_BARRAGE = 1; - HIDE_SPECIAL_EFFECT = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto deleted file mode 100644 index b8212e74..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; -import "PicUrl.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message GzoneNameplate { - int64 id = 1; - string name = 2; - repeated PicUrl urls = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto deleted file mode 100644 index 79c06361..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -import "GzoneNameplate.proto"; -import "LiveFansGroupState.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message LiveAudienceState { - bool isFromFansTop = 1; - bool isKoi = 2; - AssistantType assistantType = 3; - uint32 fansGroupIntimacyLevel = 4; - GzoneNameplate nameplate = 5; - LiveFansGroupState liveFansGroupState = 6; - uint32 wealthGrade = 7; - string badgeKey = 8; - -enum AssistantType { - UNKNOWN_ASSISTANT_TYPE = 0; - SUPER = 1; - JUNIOR = 2; -} -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto deleted file mode 100644 index 495eb9e7..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message LiveCdnNodeView { - string cdn = 1; - string url = 2; - bool freeTraffic = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto deleted file mode 100644 index 107d4fd4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message LiveFansGroupState { - uint32 intimacyLevel = 1; - uint32 enterRoomSpecialEffect = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto deleted file mode 100644 index 1eb30422..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message PSHostInfo { - string ip = 1; - int32 port = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto deleted file mode 100644 index 05eafc26..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto +++ /dev/null @@ -1,65 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum PayloadType { - UNKNOWN = 0; - CS_HEARTBEAT = 1; - CS_ERROR = 3; - CS_PING = 4; - PS_HOST_INFO = 51; - SC_HEARTBEAT_ACK = 101; - SC_ECHO = 102; - SC_ERROR = 103; - SC_PING_ACK = 104; - SC_INFO = 105; - CS_ENTER_ROOM = 200; - CS_USER_PAUSE = 201; - CS_USER_EXIT = 202; - CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; - CS_HORSE_RACING = 204; - CS_RACE_LOSE = 205; - CS_VOIP_SIGNAL = 206; - SC_ENTER_ROOM_ACK = 300; - SC_AUTHOR_PAUSE = 301; - SC_AUTHOR_RESUME = 302; - SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; - SC_AUTHOR_HEARTBEAT_MISS = 304; - SC_PIP_STARTED = 305; - SC_PIP_ENDED = 306; - SC_HORSE_RACING_ACK = 307; - SC_VOIP_SIGNAL = 308; - SC_FEED_PUSH = 310; - SC_ASSISTANT_STATUS = 311; - SC_REFRESH_WALLET = 312; - SC_LIVE_CHAT_CALL = 320; - SC_LIVE_CHAT_CALL_ACCEPTED = 321; - SC_LIVE_CHAT_CALL_REJECTED = 322; - SC_LIVE_CHAT_READY = 323; - SC_LIVE_CHAT_GUEST_END = 324; - SC_LIVE_CHAT_ENDED = 325; - SC_RENDERING_MAGIC_FACE_DISABLE = 326; - SC_RENDERING_MAGIC_FACE_ENABLE = 327; - SC_RED_PACK_FEED = 330; - SC_LIVE_WATCHING_LIST = 340; - SC_LIVE_QUIZ_QUESTION_ASKED = 350; - SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; - SC_LIVE_QUIZ_SYNC = 352; - SC_LIVE_QUIZ_ENDED = 353; - SC_LIVE_QUIZ_WINNERS = 354; - SC_SUSPECTED_VIOLATION = 355; - SC_SHOP_OPENED = 360; - SC_SHOP_CLOSED = 361; - SC_GUESS_OPENED = 370; - SC_GUESS_CLOSED = 371; - SC_PK_INVITATION = 380; - SC_PK_STATISTIC = 381; - SC_RIDDLE_OPENED = 390; - SC_RIDDLE_CLOESED = 391; - SC_RIDE_CHANGED = 412; - SC_BET_CHANGED = 441; - SC_BET_CLOSED = 442; - SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; - SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto deleted file mode 100644 index 891fea72..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message PicUrl { - string cdn = 1; - string url = 2; - string urlPattern = 3; - string ip = 4; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto deleted file mode 100644 index 6682ba66..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCEcho { - string content = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto deleted file mode 100644 index c9010285..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCError { - uint32 code = 1; - string msg = 2; - uint32 subCode = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto deleted file mode 100644 index 9242e934..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCHeartbeatAck { - uint64 timestamp = 1; - uint64 clientTimestamp = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto deleted file mode 100644 index 3099f775..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCInfo { - uint32 code = 1; - string msg = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto deleted file mode 100644 index ebceb655..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "AuditAudienceMask.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCLiveWarningMaskStatusChangedAudience { - bool displayMask = 1; - AuditAudienceMask warningMask = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto deleted file mode 100644 index 202a86a6..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCPingAck { - string echoData = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto deleted file mode 100644 index 7beb4e68..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "WebPauseType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebAuthorPause { - uint64 time = 1; - WebPauseType pauseType = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto deleted file mode 100644 index fdeae3a9..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebAuthorResume { - uint64 time = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto deleted file mode 100644 index a8b58cba..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebBetChanged { - uint64 maxDelayMillis = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto deleted file mode 100644 index dec4c1de..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebBetClosed { - uint64 maxDelayMillis = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto deleted file mode 100644 index 64b9a41b..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -import "WebRedPackInfo.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebCurrentRedPackFeed { - repeated WebRedPackInfo redPack = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto deleted file mode 100644 index 8885071c..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebEnterRoomAck { - uint64 minReconnectMs = 1; - uint64 maxReconnectMs = 2; - uint64 heartbeatIntervalMs = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto deleted file mode 100644 index 7bc86441..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebError { - uint32 code = 1; - string msg = 2; - uint32 subCode = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto deleted file mode 100644 index c7c41d1d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -import "WebCommentFeed.proto"; -import "WebComboCommentFeed.proto"; -import "WebLikeFeed.proto"; -import "WebGiftFeed.proto"; -import "WebSystemNoticeFeed.proto"; -import "WebShareFeed.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebFeedPush { - string displayWatchingCount = 1; - string displayLikeCount = 2; - uint64 pendingLikeCount = 3; - uint64 pushInterval = 4; - repeated WebCommentFeed commentFeeds = 5; - string commentCursor = 6; - repeated WebComboCommentFeed comboCommentFeed = 7; - repeated WebLikeFeed likeFeeds = 8; - repeated WebGiftFeed giftFeeds = 9; - string giftCursor = 10; - repeated WebSystemNoticeFeed systemNoticeFeeds = 11; - repeated WebShareFeed shareFeeds = 12; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto deleted file mode 100644 index 53e3f635..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebGuessClosed { - uint64 time = 1; - string guessId = 2; - uint64 displayMaxDelayMillis = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto deleted file mode 100644 index d46f065d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebGuessOpened { - uint64 time = 1; - string guessId = 2; - uint64 submitDeadline = 3; - uint64 displayMaxDelayMillis = 4; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto deleted file mode 100644 index 6a6e32be..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebHeartbeatAck { - uint64 timestamp = 1; - uint64 clientTimestamp = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto deleted file mode 100644 index bd2b5fe2..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; -import "ConfigSwitchItem.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebLiveSpecialAccountConfigState { - repeated ConfigSwitchItem configSwitchItem = 1; - uint64 timestamp = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto deleted file mode 100644 index c8381735..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; -import "WebWatchingUserInfo.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebLiveWatchingUsers { - repeated WebWatchingUserInfo watchingUser = 1; - string displayWatchingCount = 2; - uint64 pendingDuration = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto deleted file mode 100644 index 1fb073d8..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebPipEnded { - uint64 time = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto deleted file mode 100644 index 5693a3d1..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebPipStarted { - uint64 time = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto deleted file mode 100644 index f51c5390..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto +++ /dev/null @@ -1,8 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebRefreshWallet { - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto deleted file mode 100644 index 2c31e7be..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebRideChanged { - string rideId = 1; - uint32 requestMaxDelayMillis = 2; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto deleted file mode 100644 index a2541043..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SCWebSuspectedViolation { - bool suspectedViolation = 1; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto deleted file mode 100644 index cff3feaa..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SimpleUserInfo { - string principalId = 1; - string userName = 2; - string headUrl = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto deleted file mode 100644 index f75cfed3..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -import "PayloadType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message SocketMessage { - PayloadType payloadType = 1; - CompressionType compressionType = 2; - bytes payload = 3; - -enum CompressionType { - UNKNOWN = 0; - NONE = 1; - GZIP = 2; - AES = 3; -} -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto deleted file mode 100644 index 5609492f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -import "PicUrl.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message UserInfo { - uint64 userId = 1; - string userName = 2; - string userGender = 3; - string userText = 4; - repeated PicUrl headUrls = 5; - bool verified = 6; - string sUserId = 7; - repeated PicUrl httpsHeadUrls = 8; - string kwaiId = 9; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto deleted file mode 100644 index 1ee68ca5..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebComboCommentFeed { - string id = 1; - string content = 2; - uint32 comboCount = 3; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto deleted file mode 100644 index 19c776ba..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; -import "WebCommentFeedShowType.proto"; -import "LiveAudienceState.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebCommentFeed { - string id = 1; - SimpleUserInfo user = 2; - string content = 3; - string deviceHash = 4; - uint64 sortRank = 5; - string color = 6; - WebCommentFeedShowType showType = 7; - LiveAudienceState senderState = 8; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto deleted file mode 100644 index 7f11ee4d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum WebCommentFeedShowType { - FEED_SHOW_UNKNOWN = 0; - FEED_SHOW_NORMAL = 1; - FEED_HIDDEN = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto deleted file mode 100644 index 0ff3c6cd..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto +++ /dev/null @@ -1,36 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; -import "WebLiveAssistantType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebGiftFeed { - string id = 1; - SimpleUserInfo user = 2; - uint64 time = 3; - uint32 intGiftId = 4; - uint64 sortRank = 5; - string mergeKey = 6; - uint32 batchSize = 7; - uint32 comboCount = 8; - uint32 rank = 9; - uint64 expireDuration = 10; - uint64 clientTimestamp = 11; - uint64 slotDisplayDuration = 12; - uint32 starLevel = 13; - StyleType styleType = 14; - WebLiveAssistantType liveAssistantType = 15; - string deviceHash = 16; - bool danmakuDisplay = 17; - -enum StyleType { - UNKNOWN_STYLE = 0; - BATCH_STAR_0 = 1; - BATCH_STAR_1 = 2; - BATCH_STAR_2 = 3; - BATCH_STAR_3 = 4; - BATCH_STAR_4 = 5; - BATCH_STAR_5 = 6; - BATCH_STAR_6 = 7; -} -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto deleted file mode 100644 index ebcd99ea..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebLikeFeed { - string id = 1; - SimpleUserInfo user = 2; - uint64 sortRank = 3; - string deviceHash = 4; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto deleted file mode 100644 index dc7c85f4..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum WebLiveAssistantType { - UNKNOWN_ASSISTANT_TYPE = 0; - SUPER = 1; - JUNIOR = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto deleted file mode 100644 index c190e09f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum WebPauseType { - UNKNOWN_PAUSE_TYPE = 0; - TELEPHONE = 1; - SHARE = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto deleted file mode 100644 index 25bc6a59..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum WebRedPackCoverType { - UNKNOWN_COVER_TYPE = 0; - NORMAL_COVER = 1; - PRETTY_COVER = 2; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto deleted file mode 100644 index c99aac40..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; -import "WebRedPackCoverType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebRedPackInfo { - string id = 1; - SimpleUserInfo author = 2; - uint64 balance = 3; - uint64 openTime = 4; - uint64 currentTime = 5; - string grabToken = 6; - bool needSendRequest = 7; - uint64 requestDelayMillis = 8; - uint64 luckiestDelayMillis = 9; - WebRedPackCoverType coverType = 10; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto deleted file mode 100644 index 9e829a3f..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; -import "WebLiveAssistantType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebShareFeed { - string id = 1; - SimpleUserInfo user = 2; - uint64 time = 3; - uint32 thirdPartyPlatform = 4; - uint64 sortRank = 5; - WebLiveAssistantType liveAssistantType = 6; - string deviceHash = 7; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto deleted file mode 100644 index a6a5ae20..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebSystemNoticeFeed { - string id = 1; - SimpleUserInfo user = 2; - uint64 time = 3; - string content = 4; - uint64 displayDuration = 5; - uint64 sortRank = 6; - DisplayType displayType = 7; - -enum DisplayType { - UNKNOWN_DISPLAY_TYPE = 0; - COMMENT = 1; - ALERT = 2; - TOAST = 3; -} -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto deleted file mode 100644 index 9f3d2843..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; - - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -enum WebUserPauseType { - UNKNOWN_USER_PAUSE_TYPE = 0; - BACKGROUND = 1; -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto deleted file mode 100644 index ad6a10ae..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; -import "SimpleUserInfo.proto"; -import "WebLiveAssistantType.proto"; - -option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; - -message WebWatchingUserInfo { - SimpleUserInfo user = 1; - bool offline = 2; - bool tuhao = 3; - WebLiveAssistantType liveAssistantType = 4; - string displayKsCoin = 5; - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java deleted file mode 100644 index db2fa9eb..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package tech.ordinaryroad.live.chat.client.kuaishou.api; - -import org.junit.jupiter.api.Test; - -import java.util.Map; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; - -/** - * @author mjz - * @date 2024/1/6 - */ -class KuaishouApisTest { - - @Test - void allgifts() { - Map allgifts = KuaishouApis.allgifts(); - assertNotEquals(0, allgifts.size()); - } - - @Test - void getGiftInfoById() { - KuaishouApis.GiftInfo giftInfoById = KuaishouApis.getGiftInfoById("1"); - assertEquals("荧光棒", giftInfoById.getGiftName()); - - } - - @Test - void sendComment() { - System.out.println(KuaishouApis.sendComment(System.getenv("cookie"), - "3x6pb6bcmjrarvs", - KuaishouApis.SendCommentRequest - .builder() - .liveStreamId("XKLoBv2mAEo") - .content("666666a") - .build() - )); - } -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java deleted file mode 100644 index ad94357d..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java +++ /dev/null @@ -1,206 +0,0 @@ -package tech.ordinaryroad.live.chat.client.kuaishou.client; - -import cn.hutool.core.thread.ThreadUtil; -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.Test; -import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; -import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; -import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; -import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; -import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; -import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; -import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author mjz - * @date 2024/1/5 - */ -@Slf4j -class KuaishouLiveChatClientTest { - - Map> map = new HashMap<>(); - - static Object lock = new Object(); - KuaishouLiveChatClient client; - - @Test - void example() throws InterruptedException { - String cookie = System.getenv("cookie"); -// String cookie =""; - log.error("cookie: {}", cookie); - KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() - // TODO 浏览器Cookie - .cookie(cookie) - .roomId("3xpbyu443usqwau") - .roomId("DX204317461") - .roomId("xzx11234") - .roomId("N-ik-T8-20") - .roomId("3x9f7e3t3fsr74k") - .roomId("3xiqpb2riusznvq") - .roomId("QQ2027379716") - .roomId("xiannvwan1008") - // 祁天道 - .roomId("t8888888") - .roomId("by529529") - // 大师2 - .roomId("3x6pb6bcmjrarvs") - .roomId("3xbyfeffjhky7b2") - // 月神 - .roomId("YUE99999") - .roomId("mengyu980726") - // 大师1 - .roomId("3xkz5pb2kx3q4u6") - .build(); - - client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { - @Override - public void onMsg(IMsg msg) { - // log.debug("收到{}消息 {}", msg.getClass(), msg); - } - - @Override - public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { - // log.debug("收到CMD消息{} {}", cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { - log.debug("收到其他CMD消息 {}", cmd); - } - - @Override - public void onUnknownCmd(String cmdString, IMsg msg) { - log.debug("收到未知CMD消息 {}", cmdString); - } - - @Override - public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { - log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { - String mergeKey = msg.getMsg().getMergeKey(); - map.computeIfAbsent(mergeKey, s -> new ArrayList<>()).add(msg.getMsg()); - - log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({}) mergeKey:{},comboCount:{}, batchSize:{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice(), msg.getMsg().getMergeKey(), msg.getMsg().getComboCount(), msg.getMsg().getBatchSize()); - } - }); - - client.addStatusChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); - if (newValue == ClientStatusEnums.CONNECTED) { - // 连接成功5秒后发送弹幕 - ThreadUtil.execAsync(() -> { - ThreadUtil.sleep(10000); - client.sendDanmu("666666", new Runnable() { - @Override - public void run() { - log.warn("弹幕发送成功"); - } - }); - }); - } - } - }); - - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - - @Test - void clickLike() throws Exception { - String cookie = System.getenv("cookie"); -// String cookie =""; - log.error("cookie: {}", cookie); - KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() - .cookie(cookie) - .roomId("K6866676") - .roomId("xinsang_") - .roomId("lollaopu") - .roomId("YTC2844073618") - .build(); - - client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { - @Override - public void onMsg(IMsg msg) { -// log.debug("收到{}消息 {}", msg.getClass(), msg); - } - - @Override - public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { -// log.debug("收到CMD消息{} {}", cmd, cmdMsg); - } - - @Override - public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { -// log.debug("收到其他CMD消息 {}", cmd); - } - - @Override - public void onUnknownCmd(String cmdString, IMsg msg) { -// log.debug("收到未知CMD消息 {}", cmdString); - } - - @Override - public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { - log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); - } - - @Override - public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { - log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); - } - - @Override - public void onLikeMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouLikeMsg msg) { - log.info("{} 收到点赞 [{}] {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); - } - }); - - client.addStatusChangeListener(evt -> { - ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); - if (newValue == ClientStatusEnums.CONNECTED) { - // 连接成功10秒后发送弹幕 - ThreadUtil.execAsync(() -> { - ThreadUtil.sleep(10000); - client.sendDanmu("6666a", () -> { - log.warn("弹幕发送成功"); - client.clickLike(13, () -> { - log.warn("为直播间点赞成功"); - }); - }); - }); - } - }); - - client.connect(); - - // 防止测试时直接退出 - while (true) { - synchronized (lock) { - lock.wait(); - } - } - } - -} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml deleted file mode 100644 index e06e8a08..00000000 --- a/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - 4.0.0 - - org.ruoyi - ruoyi-common-live - ${revision} - ../pom.xml - - - pom - - live-chat-clients - live-chat-client - - - live-chat-client-bilibili - live-chat-client-douyu - live-chat-client-huya - live-chat-client-douyin - live-chat-client-kuaishou - - diff --git a/ruoyi-common/ruoyi-common-live/pom.xml b/ruoyi-common/ruoyi-common-live/pom.xml deleted file mode 100644 index 9e6fe9b8..00000000 --- a/ruoyi-common/ruoyi-common-live/pom.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - org.ruoyi - ruoyi-common - ${revision} - ../pom.xml - - pom - 4.0.0 - ruoyi-common-live - - - 弹幕监听 - - - - live-chat-client-commons - live-chat-client-servers - live-chat-clients - - - - 8 - 8 - UTF-8 - 3.2.1 - 3.5.0 - 3.1.0 - 1.6.13 - - 1.13.0 - 2.16.0 - 5.8.24 - 4.1.104.Final - 1.4.12 - 1.18.30 - 5.10.1 - 3.25.1 - 1.7.3 - - - - - - org.ruoyi - live-chat-client-commons-base - 1.0.0 - - - - org.ruoyi - live-chat-client-commons-util - 1.0.0 - - - - org.ruoyi - live-chat-client-commons-client - 1.0.0 - - - - org.ruoyi - live-chat-client-servers-netty - 1.0.0 - - - - org.ruoyi - live-chat-client-servers-netty-client - 1.0.0 - - - - org.ruoyi - live-chat-client-bilibili - 1.0.0 - - - - org.ruoyi - live-chat-client-douyu - 1.0.0 - - - - org.ruoyi - live-chat-client-huya - 1.0.0 - - - - org.ruoyi - live-chat-client-douyin - 1.0.0 - - - - org.ruoyi - live-chat-client-kuaishou - 1.0.0 - - - - com.aayushatharva.brotli4j - brotli4j - ${brotli4j.version} - - - - com.google.protobuf - protobuf-java-util - ${protobuf-java-util.version} - - - - com.fasterxml.jackson.core - jackson-databind - ${jackson-databind.version} - - - - cn.hutool - hutool-all - ${hutool-all.version} - - - - io.netty - netty-all - ${netty-all.version} - - - - com.tencent.tars - tars-core - ${tars-core.version} - - - - ch.qos.logback - logback-classic - ${logback-classic.version} - - - - org.projectlombok - lombok - ${lombok.version} - compile - - - - org.junit.jupiter - junit-jupiter - ${junit-jupiter.version} - test - - - - - - - org.projectlombok - lombok - provided - - - - com.squareup.okhttp3 - okhttp - 4.10.0 - - - - diff --git a/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/MailConfig.java b/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/MailConfig.java index acd82278..28001d16 100644 --- a/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/MailConfig.java +++ b/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/MailConfig.java @@ -7,8 +7,7 @@ import org.ruoyi.common.core.service.ConfigService; import org.ruoyi.common.mail.utils.MailAccount; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; -import org.springframework.scheduling.annotation.Scheduled; + /** * JavaMail 配置 @@ -22,10 +21,9 @@ import org.springframework.scheduling.annotation.Scheduled; public class MailConfig { private final ConfigService configService; - private MailAccount account; // 缓存MailAccount实例 + private MailAccount account; @Bean - @Scope("singleton") public MailAccount mailAccount() { if (account == null) { account = new MailAccount(); @@ -34,7 +32,6 @@ public class MailConfig { return account; } - @Scheduled(fixedDelay = 10000) // 每10秒检查一次 public void updateMailAccount() { account.setHost(getKey("host")); account.setPort(NumberUtils.toInt(getKey("port"), 465)); diff --git a/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/properties/MailProperties.java b/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/properties/MailProperties.java similarity index 95% rename from ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/properties/MailProperties.java rename to ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/properties/MailProperties.java index 246172bb..e2a9e1db 100644 --- a/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/config/properties/MailProperties.java +++ b/ruoyi-common/ruoyi-common-mail/src/main/java/org/ruoyi/common/mail/properties/MailProperties.java @@ -1,4 +1,4 @@ -package org.ruoyi.common.mail.config.properties; +package org.ruoyi.common.mail.properties; import lombok.Data; diff --git a/ruoyi-common/ruoyi-common-pay/pom.xml b/ruoyi-common/ruoyi-common-pay/pom.xml deleted file mode 100644 index 036991ac..00000000 --- a/ruoyi-common/ruoyi-common-pay/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-common - ${revision} - ../pom.xml - - - ruoyi-common-pay - - - org.ruoyi - ruoyi-common-web - - - com.google.zxing - core - 3.3.3 - - - org.springframework.boot - spring-boot-starter-test - test - - - - com.stripe - stripe-java - 22.5.1 - - - - cn.hutool - hutool-all - 5.8.12 - - - - 17 - 17 - UTF-8 - - - diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java deleted file mode 100644 index a5c92c3b..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.ruoyi.common.config; - -import lombok.Data; - -/** - * 支付配置信息 - * - * @author Admin - */ -@Data -public class PayConfig { - - /** - * 商户ID - */ - private String pid; - - /** - * 接口地址 - */ - private String payUrl; - - /** - * 私钥 - */ - private String key ; - - /** - * 服务器异步通知地址 - */ - private String notify_url; - - /** - * 页面跳转通知地址 - */ - private String return_url; - - /** - * 支付方式 - */ - private String type; - - /** - * 设备类型 - */ - private String device; - - /** - * 加密方式默认MD5 - */ - private String sign_type; - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java deleted file mode 100644 index 47126cef..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.ruoyi.common.config; - -import org.ruoyi.common.core.service.ConfigService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; -import org.springframework.scheduling.annotation.Scheduled; - -/** - * 支付配置信息 - * - * @author Admin - */ -@RequiredArgsConstructor -@Configuration -@Slf4j -public class PayInit { - - private final ConfigService configService; - - private PayConfig payConfig; - - @Bean - @Scope("singleton") - public PayConfig payConfig() { - if (payConfig == null) { - payConfig = new PayConfig(); - updatePayConfig(); - } - return payConfig; - } - - @Scheduled(fixedDelay = 10000) // 每10秒检查一次 - public void updatePayConfig() { - payConfig.setType("wxpay"); - payConfig.setDevice("pc"); - payConfig.setSign_type("MD5"); - payConfig.setPid(getKey("pid")); - payConfig.setKey(getKey("key")); - payConfig.setPayUrl(getKey("payUrl")); - payConfig.setNotify_url(getKey("notify_url")); - payConfig.setReturn_url(getKey("return_url")); - } - - public String getKey(String key){ - return configService.getConfigValue("pay", key); - } - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java deleted file mode 100644 index cbe33cd0..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.ruoyi.common.config; - -import com.github.binarywang.wxpay.config.WxPayConfig; -import com.github.binarywang.wxpay.service.WxPayService; -import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; - -import org.ruoyi.common.core.service.ConfigService; -import jakarta.annotation.PostConstruct; -import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * @author Binary Wang - */ -@Configuration -@RequiredArgsConstructor -public class WxPayConfiguration { - - private final ConfigService configService; - - private WxPayService wxPayService; - - @PostConstruct - public void init() { - WxPayConfig payConfig = new WxPayConfig(); - payConfig.setAppId(StringUtils.trimToNull(getKey("appId"))); - payConfig.setMchId(StringUtils.trimToNull(getKey("mchId"))); - payConfig.setMchKey(StringUtils.trimToNull(getKey("appSecret"))); - payConfig.setUseSandboxEnv(false); - wxPayService = new WxPayServiceImpl(); - wxPayService.setConfig(payConfig); - } - - @Bean - @ConditionalOnMissingBean - public WxPayService wxService() { - return wxPayService; - } - - public String getKey(String key) { - return configService.getConfigValue("weixin", key); - } - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java deleted file mode 100644 index b6b4fec8..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.ruoyi.common.listener; - -import com.github.binarywang.wxpay.config.WxPayConfig; -import com.github.binarywang.wxpay.service.WxPayService; -import org.ruoyi.common.core.event.ConfigChangeEvent; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.common.core.utils.StringUtils; -import org.jetbrains.annotations.NotNull; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -/** - * 描述:创建一个监听器,用于处理配置变化事件 - * - * @author ageerle@163.com - * date 2024/5/19 - */ -@Component -public class ConfigChangeListener implements ApplicationListener { - private final WxPayService wxPayService; - private final ConfigService configService; - - public ConfigChangeListener(WxPayService wxPayService, ConfigService configService) { - this.wxPayService = wxPayService; - this.configService = configService; - } - - @Override - public void onApplicationEvent(@NotNull ConfigChangeEvent event) { - WxPayConfig newConfig = new WxPayConfig(); - newConfig.setAppId(StringUtils.trimToNull(configService.getConfigValue("weixin", "appId"))); - newConfig.setMchId(StringUtils.trimToNull(configService.getConfigValue("weixin", "mchId"))); - newConfig.setMchKey(StringUtils.trimToNull(configService.getConfigValue("weixin", "mchKey"))); - newConfig.setUseSandboxEnv(false); - wxPayService.setConfig(newConfig); - } -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java deleted file mode 100644 index 21690be0..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.ruoyi.common.response; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -/** - * 支付结果响应 - * - * @author: wangle - * @date: 2023/7/3 - */ -@Data -public class PayResponse { - - /** - * 商户ID - */ - private String pid; - - /** - * 易支付订单号 - */ - - @JsonProperty("trade_no") - private String trade_no; - - /** - * 商户订单号 - */ - @JsonProperty("out_trade_no") - private String out_trade_no; - - /** - * 支付方式 - */ - private String type; - - /** - * 商品名称 - */ - private String name; - - /** - * 商品金额 - */ - private String money; - - /** - * 支付状态 - */ - @JsonProperty("trade_status") - private String trade_status; - - /** - * 业务扩展参数 - */ - private String param; - - /** - * 签名字符串 - */ - private String sign; - - /** - * 签名类型 - */ - @JsonProperty("sign_type") - private String signType; - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java deleted file mode 100644 index f11ed6e4..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ruoyi.common.service; - -/** - * 支付服务 - * - * @author: wangle - * @date: 2023/7/3 - */ -public interface PayService { - - /** - * 获取支付地址 - * - * @Date 2023/7/3 - * @param orderNo - * @param name - * @param money - * @param clientIp - * @return String - **/ - String getPayUrl(String orderNo, String name, double money, String clientIp); - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java deleted file mode 100644 index 8e994529..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.ruoyi.common.service.impl; - -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONObject; - -import org.ruoyi.common.config.PayConfig; -import org.ruoyi.common.service.PayService; -import org.ruoyi.common.utils.MD5Util; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.Map; - -/** - * 支付服务 - * @author Admin - */ -@Service -@RequiredArgsConstructor -@Slf4j -public class PayServiceImpl implements PayService { - - private final PayConfig payConfig; - - @Override - public String getPayUrl(String orderNo, String name, double money, String clientIp) { - String out_trade_no = orderNo, sign = ""; - //封装请求参数 - String mdString = "clientip=" + clientIp + "&device=" + payConfig.getDevice() + "&money=" + money + "&name=" + name + "&" + - "notify_url=" + payConfig.getNotify_url() + "&out_trade_no=" + out_trade_no + "&pid=" + payConfig.getPid() + "&return_url=" + payConfig.getReturn_url() + - "&type=" + payConfig.getType() + payConfig.getKey(); - sign = MD5Util.GetMD5Code(mdString); - Map map = new HashMap<>(10); - map.put("clientip", clientIp); - map.put("device", payConfig.getDevice()); - map.put("money", money); - map.put("name", name); - map.put("notify_url", payConfig.getNotify_url()); - map.put("out_trade_no", out_trade_no); - map.put("pid", payConfig.getPid()); - map.put("return_url", payConfig.getReturn_url()); - map.put("sign_type", payConfig.getSign_type()); - map.put("type", payConfig.getType()); - map.put("sign", sign); - String body = HttpUtil.post(payConfig.getPayUrl(), map); - log.info("支付返回信息:{},配置信息: {}",body,payConfig); - JSONObject jsonObject = new JSONObject(body); - return (String) jsonObject.get("qrcode"); - } - -} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java deleted file mode 100644 index 3aec5f28..00000000 --- a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.common.utils; - -import cn.hutool.core.util.StrUtil; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Map; -import java.util.TreeMap; - -/** - * MD5 算法 - * - * @author Admin - */ -public class MD5Util { - - /** - * 全局数组 - */ - public final static String[] strDigits = { "0", "1", "2", "3", "4", "5", - "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; - - public MD5Util() { - } - - /** - * 返回形式为数字跟字符串 - * - * @Date 2023/7/3 - * @param bByte - * @return String - **/ - public static String byteToArrayString(byte bByte) { - int iRet = bByte; - if (iRet < 0) { - iRet += 256; - } - int iD1 = iRet / 16; - int iD2 = iRet % 16; - return strDigits[iD1] + strDigits[iD2]; - } - - /** - * 转换字节数组为16进制字串 - * - * @Date 2023/7/3 - * @param bByte - * @return String - **/ - public static String byteToString(byte[] bByte) { - StringBuffer sBuffer = new StringBuffer(); - for (int i = 0; i < bByte.length; i++) { - sBuffer.append(byteToArrayString(bByte[i])); - } - return sBuffer.toString(); - } - - /** - * 生成md5代码 - * - * @Date 2023/7/3 - * @param strObj - * @return String - **/ - public static String GetMD5Code(String strObj) { - String resultString = null; - try { - resultString = new String(strObj); - MessageDigest md = MessageDigest.getInstance("MD5"); - resultString = byteToString(md.digest(strObj.getBytes())); - } catch (NoSuchAlgorithmException ex) { - ex.printStackTrace(); - } - return resultString; - } - - /** - * 组装签名的字段 - * - * @param params 参数 - * @param urlEncoder 是否urlEncoder - * @return {String} - */ - public static String packageSign(Map params, boolean urlEncoder) { - // 先将参数以其参数名的字典序升序进行排序 - TreeMap sortedParams = new TreeMap(params); - // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起 - StringBuilder sb = new StringBuilder(); - boolean first = true; - for (Map.Entry param : sortedParams.entrySet()) { - String value = String.valueOf(param.getValue()); - if (StrUtil.isBlank(value)) { - continue; - } - if (first) { - first = false; - } else { - sb.append("&"); - } - sb.append(param.getKey()).append("="); - sb.append(value); - } - return sb.toString(); - } - -} diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java index f728df30..34b0ed0b 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/ruoyi/common/web/interceptor/PlusWebInvokeTimeInterceptor.java @@ -36,20 +36,6 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { String url = request.getMethod() + " " + request.getRequestURI(); String domainName = request.getServerName(); log.info("域名信息:{}",domainName); - - String requestURI = request.getRequestURI(); - List urls = whitelistUrls(); - boolean isWhitelisted = urls.stream().anyMatch(requestURI::startsWith); - - if (!isWhitelisted){ - // 根据授权编号查询激活状态 -// ConfigService configService = SpringUtils.context().getBean(ConfigService.class); -// String authNo = configService.getConfigValue("sys", "authcode"); -// if(!configService.checkAuth(authNo,domainName)){ -// throw new BaseException("系统未激活,请联系管理员授权"); -// } - } - // 打印请求参数 if (isJsonRequest(request)) { String jsonParam = ""; @@ -67,7 +53,6 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { log.debug("[PLUS]开始请求 => URL[{}],无参数", url); } } - StopWatch stopWatch = new StopWatch(); invokeTimeTL.set(stopWatch); stopWatch.start(); @@ -99,15 +84,4 @@ public class PlusWebInvokeTimeInterceptor implements HandlerInterceptor { } return false; } - - // 授权白名单 - public List whitelistUrls() { - return Arrays.asList( - "/chat/config", - "/pay", - "/weixin", - "/user/qrcode", - "/user/login/qrcode" - ); - } } diff --git a/ruoyi-common/ruoyi-common-wechat/pom.xml b/ruoyi-common/ruoyi-common-wechat/pom.xml deleted file mode 100644 index 26ac86cb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-common - ${revision} - ../pom.xml - - ruoyi-common-wechat - 1.0.0 - ruoyi-common-wechat 微信服务 - - UTF-8 - - - - - com.jfinal - jfinal - 3.5 - - - com.jfinal - cos - 2017.5 - - - - com.jfinal - jfinal-undertow - 1.4 - - - - com.alibaba - druid - 1.0.29 - - - - com.vdurmont - emoji-java - 3.2.0 - - - javax.activation - activation - 1.1.1 - - - net.mamoe - mirai-core-jvm - 2.16.0 - - - org.ruoyi - ruoyi-common-json - - - - com.alibaba - fastjson - 1.2.31 - - - diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java deleted file mode 100644 index 9ed005a7..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java +++ /dev/null @@ -1,546 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.api; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.mime.HttpMultipartMode; -import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.apache.http.util.EntityUtils; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.beans.RecommendInfo; -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.utils.Config; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.itchat4j.utils.enums.StorageLoginInfoEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.VerifyFriendEnum; -import org.ruoyi.common.wechat.web.constant.UploadConstant; - -import javax.activation.MimetypesFileTypeMap; -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.*; - -/** - * 消息处理类 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月23日 下午2:30:37 - * @version 1.0 - * - * @author WesleyOne 修改 - */ -public class MessageTools implements LogInterface { - - - /** - * 通过UserName发送消息 - * @param toUserName - * @param uniqueKey - * @param data - * @param type - * @return - */ - public static boolean send(String toUserName, String uniqueKey, String data, String type){ - String nickName = WechatTools.getNickNameByUserName(toUserName, uniqueKey); - if (SendMsgType.TEXT.toValue().equals(type)){ - LOG.info("发送文本 {}:{}", nickName, data); - return MessageTools.sendMsgById(data,toUserName,uniqueKey); - }else if (SendMsgType.IMG.toValue().equals(type)){ - LOG.info("发送图片 {}:{}", nickName, UploadConstant.IMG_PATH_SEP+data); - return MessageTools.sendPicMsgByUserId(toUserName,UploadConstant.IMG_PATH_SEP+data,uniqueKey); - }else if (SendMsgType.FILE.toValue().equals(type)){ - LOG.info("发送文件 {}:{}",nickName,UploadConstant.FILE_PATH_SEP+data); - return MessageTools.sendFileMsgByUserId(toUserName,UploadConstant.FILE_PATH_SEP+data,uniqueKey); - } - return false; - } - - /** - * 通过NickName发送消息 - * @param nickName - * @param uniqueKey - * @param data - * @param type - * @param isGroup - * @return - */ - public static boolean sendByNickName(String nickName, String uniqueKey, String data, String type,boolean isGroup){ - - if (SendMsgType.TEXT.toValue().equals(type)){ - LOG.info("发送文本 {}:{}", nickName, data); - return MessageTools.sendMsgByNickNameApi(data, nickName, uniqueKey, isGroup); - }else if (SendMsgType.IMG.toValue().equals(type)){ - LOG.info("发送图片 {}:{}", nickName, UploadConstant.IMG_PATH_SEP+data); - return MessageTools.sendPicMsgByNickNameApi(nickName, UploadConstant.IMG_PATH_SEP + data, uniqueKey, isGroup); - }else if (SendMsgType.FILE.toValue().equals(type)){ - LOG.info("发送文件 {}:{}",nickName,UploadConstant.FILE_PATH_SEP+data); - return MessageTools.sendFileMsgByNickNameApi(nickName,UploadConstant.FILE_PATH_SEP+data,uniqueKey,isGroup); - } - return false; - } - - - /** - * 根据UserName发送文本消息 - * - * @author https://github.com/yaphone - * @date 2017年5月6日 上午11:45:51 - * @param text - * @param toUserName - * @param uniqueKey - */ - public static boolean sendMsgById(String text, String toUserName, String uniqueKey) { - if (text == null) { - return false; - } - return webWxSendMsg(1, text, toUserName, uniqueKey); - } - - /** - * 根据NickName发送文本消息 - * - * @author https://github.com/yaphone - * @date 2017年5月4日 下午11:17:38 - * @param text - * @param nickName - */ - public static boolean sendMsgByNickName(String text, String nickName, String uniqueKey) { - if (nickName != null) { - String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - return sendMsgById(text, toUserName, uniqueKey); - } - } - return false; - - } - - public static boolean sendMsgByNickNameApi(String text, String nickName, String uniqueKey, boolean isGroup){ - if (isGroup){ - return sendGroupMsgByNickName(text,nickName,uniqueKey); - }else{ - return sendMsgByNickName(text,nickName,uniqueKey); - } - } - - - /** - * 根据NickName发送群文本消息 - * @param text - * @param nickName - * @param uniqueKey - * @return - */ - private static boolean sendGroupMsgByNickName(String text, String nickName, String uniqueKey) { - if (nickName != null) { - String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - return sendMsgById(text, toUserName, uniqueKey); - } - } - return false; - - } - - /** - * 消息发送 - * - * @author https://github.com/yaphone - * @date 2017年4月23日 下午2:32:02 - * @param msgType - * @param content - * @param toUserName - */ - public static boolean webWxSendMsg(int msgType, String content, String toUserName, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - if (!core.isAlive()){ - return false; - } - String url = String.format(URLEnum.WEB_WX_SEND_MSG.getUrl(), core.getLoginInfo().get("url")); - Map msgMap = new HashMap(12); - msgMap.put("Type", msgType); - msgMap.put("Content", content); - msgMap.put("FromUserName", core.getUserName()); - msgMap.put("ToUserName", toUserName == null ? core.getUserName() : toUserName); - msgMap.put("LocalID", System.currentTimeMillis() * 10); - msgMap.put("ClientMsgId", System.currentTimeMillis() * 10); - Map paramMap = core.getParamMap(); - paramMap.put("Msg", msgMap); - paramMap.put("Scene", 0); - try { - String paramStr = JSON.toJSONString(paramMap); - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); - EntityUtils.toString(entity, Consts.UTF_8); - return true; - } catch (Exception e) { - LOG.error("webWxSendMsg", e); - return false; - } - } - - /** - * 上传多媒体文件到 微信服务器,目前应该支持3种类型: 1. pic 直接显示,包含图片,表情 2.video 3.doc 显示为文件,包含PDF等 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 上午12:41:13 - * @param filePath - * @return - */ - private static JSONObject webWxUploadMedia(String filePath, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - File f = new File(filePath); - if (!f.exists() || !f.isFile()) { - LOG.info("file is not exist"); - return null; - } - String url = String.format(URLEnum.WEB_WX_UPLOAD_MEDIA.getUrl(), core.getLoginInfo().get("fileUrl")); - String mimeType = new MimetypesFileTypeMap().getContentType(f); - String mediaType = ""; - if (mimeType == null) { - mimeType = "text/plain"; - } else { - mediaType = mimeType.split("/")[0].equals("image") ? "pic" : "doc"; - } - String lastModifieDate = new SimpleDateFormat("yyyy MM dd HH:mm:ss").format(new Date()); - long fileSize = f.length(); - String passTicket = (String) core.getLoginInfo().get("pass_ticket"); - String clientMediaId = String.valueOf(System.currentTimeMillis()) - + String.valueOf(new Random().nextLong()).substring(0, 4); - String webwxDataTicket = core.getMyHttpClient().getCookie("webwx_data_ticket"); - if (webwxDataTicket == null) { - LOG.error("get cookie webwx_data_ticket error"); - return null; - } - - Map paramMap = core.getParamMap(); - - paramMap.put("ClientMediaId", clientMediaId); - paramMap.put("TotalLen", fileSize); - paramMap.put("StartPos", 0); - paramMap.put("DataLen", fileSize); - paramMap.put("MediaType", 4); - - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); - - builder.addTextBody("id", "WU_FILE_0", ContentType.TEXT_PLAIN); - builder.addTextBody("name", filePath, ContentType.TEXT_PLAIN); - builder.addTextBody("type", mimeType, ContentType.TEXT_PLAIN); - builder.addTextBody("lastModifieDate", lastModifieDate, ContentType.TEXT_PLAIN); - builder.addTextBody("size", String.valueOf(fileSize), ContentType.TEXT_PLAIN); - builder.addTextBody("mediatype", mediaType, ContentType.TEXT_PLAIN); - builder.addTextBody("uploadmediarequest", JSON.toJSONString(paramMap), ContentType.TEXT_PLAIN); - builder.addTextBody("webwx_data_ticket", webwxDataTicket, ContentType.TEXT_PLAIN); - builder.addTextBody("pass_ticket", passTicket, ContentType.TEXT_PLAIN); - builder.addBinaryBody("filename", f, ContentType.create(mimeType), filePath); - HttpEntity reqEntity = builder.build(); - HttpEntity entity = core.getMyHttpClient().doPostFile(url, reqEntity); - if (entity != null) { - try { - String result = EntityUtils.toString(entity, Consts.UTF_8); - return JSON.parseObject(result); - } catch (Exception e) { - LOG.error("webWxUploadMedia 错误: ", e); - } - - } - return null; - } - - - public static boolean sendPicMsgByNickNameApi(String nickName, String filePath, String uniqueKey,boolean isGroup){ - if (isGroup){ - return sendGroupPicMsgByNickName(nickName, filePath, uniqueKey); - }else { - return sendPicMsgByNickName(nickName, filePath, uniqueKey); - } - } - - /** - * 根据NickName发送图片消息 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 下午10:32:45 - * @param nickName - * @param filePath - * @return - */ - public static boolean sendPicMsgByNickName(String nickName, String filePath, String uniqueKey) { - String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - LOG.info("发送图片 {}:{}",nickName,filePath); - return sendPicMsgByUserId(toUserName, filePath, uniqueKey); - } - return false; - } - - /** - * 根据群的NickName发送图片消息到群 - * @param nickName - * @param filePath - * @param uniqueKey - * @return - */ - public static boolean sendGroupPicMsgByNickName(String nickName, String filePath, String uniqueKey) { - String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - LOG.info("发送群图片 {}:{}",nickName,filePath); - return sendPicMsgByUserId(toUserName, filePath, uniqueKey); - } - return false; - } - - /** - * 根据用户id发送图片消息 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 下午10:34:24 - * @param userId - * @param filePath - * @param uniqueKey - * @return - */ - public static boolean sendPicMsgByUserId(String userId, String filePath, String uniqueKey) { - JSONObject responseObj = webWxUploadMedia(filePath, uniqueKey); - if (responseObj != null) { - String mediaId = responseObj.getString("MediaId"); - if (mediaId != null) { - return webWxSendMsgImg(userId, mediaId, uniqueKey); - } - } - return false; - } - - /** - * 发送图片消息,内部调用 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 下午10:38:55 - * @return - */ - private static boolean webWxSendMsgImg(String userId, String mediaId, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - if (!core.isAlive()){ - return false; - } - String url = String.format("%s/webwxsendmsgimg?fun=async&f=json&pass_ticket=%s", core.getLoginInfo().get("url"), - core.getLoginInfo().get("pass_ticket")); - Map msgMap = new HashMap(8); - msgMap.put("Type", 3); - msgMap.put("MediaId", mediaId); - msgMap.put("FromUserName", core.getUserSelf().getString("UserName")); - msgMap.put("ToUserName", userId); - String clientMsgId = String.valueOf(System.currentTimeMillis()) - + String.valueOf(new Random().nextLong()).substring(1, 5); - msgMap.put("LocalID", clientMsgId); - msgMap.put("ClientMsgId", clientMsgId); - Map paramMap = core.getParamMap(); - paramMap.put("BaseRequest", core.getParamMap().get("BaseRequest")); - paramMap.put("Msg", msgMap); - String paramStr = JSON.toJSONString(paramMap); - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); - if (entity != null) { - try { - String result = EntityUtils.toString(entity, Consts.UTF_8); - return JSON.parseObject(result).getJSONObject("BaseResponse").getInteger("Ret") == 0; - } catch (Exception e) { - LOG.error("webWxSendMsgImg 错误: ", e); - } - } - return false; - - } - - /** - * 根据用户id发送文件 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 下午11:57:36 - * @param userId - * @param filePath - * @return - */ - private static boolean sendFileMsgByUserId(String userId, String filePath, String uniqueKey) { - String title = new File(filePath).getName(); - Map data = new HashMap(12); - data.put("appid", Config.API_WXAPPID); - data.put("title", title); - data.put("totallen", ""); - data.put("attachid", ""); - data.put("type", "6"); // APPMSGTYPE_ATTACH - data.put("fileext", title.split("\\.")[1]); // 文件后缀 - JSONObject responseObj = webWxUploadMedia(filePath, uniqueKey); - if (responseObj != null) { - data.put("totallen", responseObj.getString("StartPos")); - data.put("attachid", responseObj.getString("MediaId")); - } else { - LOG.error("sednFileMsgByUserId 错误: ", data); - } - return webWxSendAppMsg(userId, data, uniqueKey); - } - - public static boolean sendFileMsgByNickNameApi(String nickName, String filePath, String uniqueKey, boolean isGroup){ - if (isGroup){ - return sendGroupFileMsgByNickName(nickName,filePath,uniqueKey); - }else { - return sendFileMsgByNickName(nickName,filePath,uniqueKey); - } - } - - - /** - * 根据用户昵称发送文件消息 - * - * @author https://github.com/yaphone - * @date 2017年5月10日 下午10:59:27 - * @param nickName - * @param filePath - * @return - */ - private static boolean sendFileMsgByNickName(String nickName, String filePath, String uniqueKey) { - String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - LOG.info("发送文件 {}:{}",nickName,filePath); - return sendFileMsgByUserId(toUserName, filePath, uniqueKey); - } - return false; - } - - /** - * 根据群昵称发送文件消息 - * @param nickName - * @param filePath - * @param uniqueKey - * @return - */ - private static boolean sendGroupFileMsgByNickName(String nickName, String filePath, String uniqueKey) { - String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); - if (toUserName != null) { - LOG.info("发送文件 {}:{}",nickName,filePath); - return sendFileMsgByUserId(toUserName, filePath, uniqueKey); - } - return false; - } - - /** - * 内部调用 - * - * @author https://github.com/yaphone - * @date 2017年5月10日 上午12:21:28 - * @param userId - * @param data - * @param uniqueKey - * @return - */ - private static boolean webWxSendAppMsg(String userId, Map data, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - if (!core.isAlive()){ - return false; - } - String url = String.format("%s/webwxsendappmsg?fun=async&f=json&pass_ticket=%s", core.getLoginInfo().get("url"), - core.getLoginInfo().get("pass_ticket")); - String clientMsgId = String.valueOf(System.currentTimeMillis()) - + String.valueOf(new Random().nextLong()).substring(1, 5); - String content = "" + data.get("title") - + "6" - + "" + data.get("totallen") + "" + data.get("attachid") - + "" + data.get("fileext") + ""; - Map msgMap = new HashMap(12); - msgMap.put("Type", data.get("type")); - msgMap.put("Content", content); - msgMap.put("FromUserName", core.getUserSelf().getString("UserName")); - msgMap.put("ToUserName", userId); - msgMap.put("LocalID", clientMsgId); - msgMap.put("ClientMsgId", clientMsgId); - /* - * Map paramMap = new HashMap(); - * - * @SuppressWarnings("unchecked") Map> - * baseRequestMap = (Map>) - * core.getLoginInfo() .get("baseRequest"); paramMap.put("BaseRequest", - * baseRequestMap.get("BaseRequest")); - */ - - Map paramMap = core.getParamMap(); - paramMap.put("Msg", msgMap); - paramMap.put("Scene", 0); - String paramStr = JSON.toJSONString(paramMap); - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); - if (entity != null) { - try { - String result = EntityUtils.toString(entity, Consts.UTF_8); - return JSON.parseObject(result).getJSONObject("BaseResponse").getInteger("Ret") == 0; - } catch (Exception e) { - LOG.error("错误: ", e); - } - } - return false; - } - - /** - * 被动添加好友 - * - * @date 2017年6月29日 下午10:08:43 - * @param msg - * @param accept - * true 接受 false 拒绝 - */ - private static void addFriend(BaseMsg msg, boolean accept, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - if (!accept) { // 不添加 - return; - } - int status = VerifyFriendEnum.ACCEPT.getCode(); // 接受好友请求 - RecommendInfo recommendInfo = msg.getRecommendInfo(); - String userName = recommendInfo.getUserName(); - String ticket = recommendInfo.getTicket(); - // 更新好友列表 - // TODO 此处需要更新好友列表 - // core.getContactList().add(msg.getJSONObject("RecommendInfo")); - - String url = String.format(URLEnum.WEB_WX_VERIFYUSER.getUrl(), core.getLoginInfo().get("url"), - String.valueOf(System.currentTimeMillis() / 3158L), core.getLoginInfo().get("pass_ticket")); - - List> verifyUserList = new ArrayList>(); - Map verifyUser = new HashMap(); - verifyUser.put("Value", userName); - verifyUser.put("VerifyUserTicket", ticket); - verifyUserList.add(verifyUser); - - List sceneList = new ArrayList(); - sceneList.add(33); - - JSONObject body = new JSONObject(); - body.put("BaseRequest", core.getParamMap().get("BaseRequest")); - body.put("Opcode", status); - body.put("VerifyUserListSize", 1); - body.put("VerifyUserList", verifyUserList); - body.put("VerifyContent", ""); - body.put("SceneListCount", 1); - body.put("SceneList", sceneList); - body.put("skey", core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey())); - - String result = null; - try { - String paramStr = JSON.toJSONString(body); - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); - result = EntityUtils.toString(entity, Consts.UTF_8); - } catch (Exception e) { - LOG.error("webWxSendMsg", e); - } - - if (StringUtils.isBlank(result)) { - LOG.error("被动添加好友失败"); - } - - LOG.debug(result); - - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java deleted file mode 100644 index 5700a65f..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java +++ /dev/null @@ -1,352 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.api; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.StorageLoginInfoEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 微信小工具,如获好友列表,根据昵称查找好友或群等 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年5月4日 下午10:49:16 - * @version 1.0 - * - * @author WesleyOne 修改 - */ -public class WechatTools implements LogInterface { - - /** - * 返回好友昵称列表 - * @param uniqueKey - * @return - */ - public static List getContactNickNameList(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - List contactNickNameList = new ArrayList(); - for (JSONObject o : core.getContactList()) { - contactNickNameList.add(o.getString("NickName")); - // 顺便刷下缓存 - core.getUserInfoMap().put(o.getString("NickName"),o); - core.getUserInfoMap().put(o.getString("UserName"),o); - } - return contactNickNameList; - } - - /** - * 返回好友完整信息列表 - * @param uniqueKey - * @return - */ - public static List getContactList(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - return core.getContactList(); - } - - /** - * 返回群列表 - * @param uniqueKey - * @return - */ - public static List getGroupList(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - return core.getGroupList(); - } - - /** - * 获取群NickName列表 - * @param uniqueKey - * @return - */ - public static List getGroupNickNameList(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - List groupNickNameList = new ArrayList(); - for (JSONObject o : core.getGroupList()) { - groupNickNameList.add(o.getString("NickName")); - } - return groupNickNameList; - } - - /** - * 获取群所有成员信息 - * @param groupId - * @param uniqueKey - * @return - */ - public static JSONArray getGroupMemberByGroupId(String groupId, String uniqueKey){ - Core core = CoreManage.getInstance(uniqueKey); - JSONObject jsonObject = core.getGroupInfoMap().get(groupId); - if (jsonObject == null){ - return new JSONArray(); - } - return jsonObject.getJSONArray("MemberList"); - } - - /** - * 通过群成员ID获取昵称 - * @param groupId - * @param uniqueKey - * @param memberId - * @return - */ - public static String getMemberNickName(String groupId, String uniqueKey, String memberId){ - JSONArray members = getGroupMemberByGroupId(groupId, uniqueKey); - int size = members.size(); - if (size > 0){ - for (int i=0;i params = new ArrayList(); - params.add(new BasicNameValuePair("redirect", "1")); - params.add(new BasicNameValuePair("type", "1")); - params.add( - new BasicNameValuePair("skey", (String) core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey()))); - try { - HttpEntity entity = core.getMyHttpClient().doGet(url, params, false, null); - String text = EntityUtils.toString(entity, Consts.UTF_8); - return true; - } catch (Exception e) { - LOG.debug(e.getMessage()); - } finally { - // 强制退出,提示相关线程退出 - core.setAlive(false); - } - return false; - } - - public static void setUserInfo(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - for (JSONObject o : core.getContactList()) { - core.getUserInfoMap().put(o.getString("NickName"), o); - core.getUserInfoMap().put(o.getString("UserName"), o); - } - } - - /** - * - * 根据用户昵称设置备注名称 - * - * @date 2017年5月27日 上午12:21:40 - * @param nickName - * @param remName - */ - public static void remarkNameByNickName(String nickName, String remName, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - String url = String.format(URLEnum.WEB_WX_REMARKNAME.getUrl(), core.getLoginInfo().get("url"), - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - Map msgMap = new HashMap(8); - Map msgMap_BaseRequest = new HashMap(8); - msgMap.put("CmdId", 2); - msgMap.put("RemarkName", remName); - msgMap.put("UserName", core.getUserInfoMap().get(nickName).get("UserName")); - msgMap_BaseRequest.put("Uin", core.getLoginInfo().get(StorageLoginInfoEnum.wxuin.getKey())); - msgMap_BaseRequest.put("Sid", core.getLoginInfo().get(StorageLoginInfoEnum.wxsid.getKey())); - msgMap_BaseRequest.put("Skey", core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey())); - msgMap_BaseRequest.put("DeviceID", core.getLoginInfo().get(StorageLoginInfoEnum.deviceid.getKey())); - msgMap.put("BaseRequest", msgMap_BaseRequest); - try { - String paramStr = JSON.toJSONString(msgMap); - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); - // String result = EntityUtils.toString(entity, Consts.UTF_8); - LOG.info("修改备注" + remName); - } catch (Exception e) { - LOG.error("remarkNameByUserName", e); - } - } - - /** - * 获取微信在线状态 - * - * @date 2017年6月16日 上午12:47:46 - * @return - */ - public static boolean getWechatStatus(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - return core.isAlive(); - } - - - /** - * - * @param userName - * @param nickName - * @return - */ - private static JSONObject getContactByNickNameAndUserName(String userName, String nickName, String uniqueKey){ - Core core = CoreManage.getInstance(uniqueKey); - // 通过userName查询 - if (StringUtils.isNotEmpty(userName) && StringUtils.isEmpty(nickName)){ - for (JSONObject contact:core.getContactList()){ - if (userName.equals(contact.getString("UserName"))){ - return contact; - } - } - } - - // 通过群昵称查询 - if (StringUtils.isNotEmpty(nickName) && StringUtils.isEmpty(userName)){ - for (JSONObject contact:core.getContactList()){ - if (nickName.equals(contact.getString("NickName"))){ - return contact; - } - } - } - - // 通过userName和昵称联合查 - if (StringUtils.isNotEmpty(userName) && StringUtils.isNotEmpty(nickName)){ - for (JSONObject contact:core.getContactList()){ - if (nickName.equals(contact.getString("NickName")) && userName.equals(contact.getString("UserName"))){ - return contact; - } - } - } - - return null; - } - - /** - * 通过群id查找群昵称 - * @param userName - * @return - */ - public static String getContactNickNameByUserName(String userName, String uniqueKey){ - JSONObject contact = getContactByNickNameAndUserName(userName,null, uniqueKey); - if (contact!=null && StringUtils.isNotEmpty(contact.getString("NickName"))){ - return contact.getString("NickName"); - }else{ - return ""; - } - } - - /** - * 通过群昵称查找群id - * @param nickName - * @return - */ - public static String getContactUserNameByNickName(String nickName, String uniqueKey){ - JSONObject contact = getContactByNickNameAndUserName(null,nickName,uniqueKey); - if (contact!=null && StringUtils.isNotEmpty(contact.getString("UserName"))){ - return contact.getString("UserName"); - }else{ - return null; - } - } - - /** - * 通过userName或昵称查找群信息 - * @param userName - * @return - */ - private static JSONObject getGroupByNickNameAndUserName(String userName, String nickName, String uniqueKey){ - Core core = CoreManage.getInstance(uniqueKey); - // 通过userName查询 - if (StringUtils.isNotEmpty(userName) && StringUtils.isEmpty(nickName)){ - for (JSONObject group:core.getGroupList()){ - if (userName.equals(group.getString("UserName"))){ - return group; - } - } - } - - // 通过群昵称查询 - if (StringUtils.isNotEmpty(nickName) && StringUtils.isEmpty(userName)){ - for (JSONObject group:core.getGroupList()){ - if (nickName.equals(group.getString("NickName"))){ - return group; - } - } - } - - // 通过userName和昵称联合查 - if (StringUtils.isNotEmpty(userName) && StringUtils.isNotEmpty(nickName)){ - for (JSONObject group:core.getGroupList()){ - if (nickName.equals(group.getString("NickName")) && userName.equals(group.getString("UserName"))){ - return group; - } - } - } - - return null; - } - - /** - * 通过群id查找群昵称 - * @param userName - * @return - */ - public static String getGroupNickNameByUserName(String userName, String uniqueKey){ - JSONObject group = getGroupByNickNameAndUserName(userName,null,uniqueKey); - if (group!=null && StringUtils.isNotEmpty(group.getString("NickName"))){ - return group.getString("NickName"); - }else{ - return ""; - } - } - - /** - * 通过群昵称查找群id - * @param nickName - * @return - */ - public static String getGroupUserNameByNickName(String nickName, String uniqueKey){ - JSONObject group = getGroupByNickNameAndUserName(null,nickName, uniqueKey); - if (group!=null && StringUtils.isNotEmpty(group.getString("UserName"))){ - return group.getString("UserName"); - }else{ - return null; - } - } - - /** - * 通过UserName查找NickName - * 只查群名和好友名 - * @param userName - * @param uniqueKey - * @return - */ - public static String getNickNameByUserName(String userName, String uniqueKey){ - if (userName.startsWith("@@")){ - return getGroupNickNameByUserName(userName,uniqueKey); - }else if (userName.startsWith("@")){ - return getContactNickNameByUserName(userName,uniqueKey); - }else { - return ""; - } - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java deleted file mode 100644 index 4f80a301..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.io.Serializable; - -/** - * AppInfo - * - * @author https://github.com/yaphone - * @date 创建时间:2017年7月3日 下午10:38:14 - * @version 1.0 - * - */ -public class AppInfo implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - private int type; - private String appId; - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java deleted file mode 100644 index 43146a82..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java +++ /dev/null @@ -1,330 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.io.Serializable; - -/** - * 收到的微信消息 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年7月3日 下午10:28:06 - * @version 1.0 - * - */ -public class BaseMsg implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - private int subMsgType; - private int voiceLength; - private String fileName; - private int imgHeight; - private String toUserName; - private int hasProductId; - private int imgStatus; - private String url; - private int imgWidth; - private int forwardFlag; - private int status; - private String Ticket; - /** 推荐消息报文 **/ - private RecommendInfo recommendInfo; - private long createTime; - private String newMsgId; - /** 文本消息内容 **/ - private String text; - /** 消息类型 **/ - private int msgType; - /** 是否为群消息 **/ - private boolean groupMsg; - private String msgId; - private int statusNotifyCode; - private AppInfo appInfo; - private int appMsgType; - private String Type; - private int playLength; - private String mediaId; - private String content; - private String statusNotifyUserName; - private boolean atMe; - // 群发送者ID昵称 - private String sendMemberId; - private String memberNickname; - /** 消息发送者ID **/ - private String fromUserName; - private String oriContent; - private String fileSize; - private String fromNickName; - - public int getSubMsgType() { - return subMsgType; - } - - public void setSubMsgType(int subMsgType) { - this.subMsgType = subMsgType; - } - - public int getVoiceLength() { - return voiceLength; - } - - public void setVoiceLength(int voiceLength) { - this.voiceLength = voiceLength; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public int getImgHeight() { - return imgHeight; - } - - public void setImgHeight(int imgHeight) { - this.imgHeight = imgHeight; - } - - public String getToUserName() { - return toUserName; - } - - public void setToUserName(String toUserName) { - this.toUserName = toUserName; - } - - public int getHasProductId() { - return hasProductId; - } - - public void setHasProductId(int hasProductId) { - this.hasProductId = hasProductId; - } - - public int getImgStatus() { - return imgStatus; - } - - public void setImgStatus(int imgStatus) { - this.imgStatus = imgStatus; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public int getImgWidth() { - return imgWidth; - } - - public void setImgWidth(int imgWidth) { - this.imgWidth = imgWidth; - } - - public int getForwardFlag() { - return forwardFlag; - } - - public void setForwardFlag(int forwardFlag) { - this.forwardFlag = forwardFlag; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getTicket() { - return Ticket; - } - - public void setTicket(String ticket) { - Ticket = ticket; - } - - public RecommendInfo getRecommendInfo() { - return recommendInfo; - } - - public void setRecommendInfo(RecommendInfo recommendInfo) { - this.recommendInfo = recommendInfo; - } - - public long getCreateTime() { - return createTime; - } - - public void setCreateTime(long createTime) { - this.createTime = createTime; - } - - public String getNewMsgId() { - return newMsgId; - } - - public void setNewMsgId(String newMsgId) { - this.newMsgId = newMsgId; - } - - public String getText() { - return text; - } - - public void setText(String text) { - this.text = text; - } - - public int getMsgType() { - return msgType; - } - - public void setMsgType(int msgType) { - this.msgType = msgType; - } - - public boolean isGroupMsg() { - return groupMsg; - } - - public void setGroupMsg(boolean groupMsg) { - this.groupMsg = groupMsg; - } - - public String getMsgId() { - return msgId; - } - - public void setMsgId(String msgId) { - this.msgId = msgId; - } - - public int getStatusNotifyCode() { - return statusNotifyCode; - } - - public void setStatusNotifyCode(int statusNotifyCode) { - this.statusNotifyCode = statusNotifyCode; - } - - public AppInfo getAppInfo() { - return appInfo; - } - - public void setAppInfo(AppInfo appInfo) { - this.appInfo = appInfo; - } - - public int getAppMsgType() { - return appMsgType; - } - - public void setAppMsgType(int appMsgType) { - this.appMsgType = appMsgType; - } - - public String getType() { - return Type; - } - - public void setType(String type) { - Type = type; - } - - public int getPlayLength() { - return playLength; - } - - public void setPlayLength(int playLength) { - this.playLength = playLength; - } - - public String getMediaId() { - return mediaId; - } - - public void setMediaId(String mediaId) { - this.mediaId = mediaId; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getStatusNotifyUserName() { - return statusNotifyUserName; - } - - public void setStatusNotifyUserName(String statusNotifyUserName) { - this.statusNotifyUserName = statusNotifyUserName; - } - - public String getFromUserName() { - return fromUserName; - } - - public void setFromUserName(String fromUserName) { - this.fromUserName = fromUserName; - } - - public String getOriContent() { - return oriContent; - } - - public void setOriContent(String oriContent) { - this.oriContent = oriContent; - } - - public String getFileSize() { - return fileSize; - } - - public void setFileSize(String fileSize) { - this.fileSize = fileSize; - } - - public String getMemberNickname() { - return memberNickname; - } - - public void setMemberNickname(String memberNickname) { - this.memberNickname = memberNickname; - } - - public String getFromNickName() { - return fromNickName; - } - - public void setFromNickName(String fromNickName) { - this.fromNickName = fromNickName; - } - - public String getSendMemberId() { - return sendMemberId; - } - - public void setSendMemberId(String sendMemberId) { - this.sendMemberId = sendMemberId; - } - - public boolean isAtMe() { - return atMe; - } - - public void setAtMe(boolean atMe) { - this.atMe = atMe; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java deleted file mode 100644 index 063495fb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -/** - * @author WesleyOne - * @create 2018/12/21 - */ -@Deprecated -public class BaseResponse { - - private Integer Ret; - private String ErrMsg; - - public Integer getRet() { - return Ret; - } - - public void setRet(Integer ret) { - Ret = ret; - } - - public String getErrMsg() { - return ErrMsg; - } - - public void setErrMsg(String errMsg) { - ErrMsg = errMsg; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java deleted file mode 100644 index 2a84d254..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java +++ /dev/null @@ -1,306 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.util.List; - -/** - * 成员信息对象 - * - * 来自获取好友列表 - * /cgi-bin/mmwebwx-bin/webwxgetcontact - * MemberList中单体 - * @author WesleyOne - * @create 2018/12/21 - */ -@Deprecated -public class Member { - - private String Alias; - private Integer AppAccountFlag; - private Integer AttrStatus; - private Integer ChatRoomId; - private String City; - private Integer ContactFlag; - /** - * 群昵称 - */ - private String DisplayName; - private String EncryChatRoomId; - private String HeadImgUrl; - private Integer HideInputBarFlag; - private Integer IsOwner; - private String KeyWord; - private Integer MemberCount; - private List MemberList; - private String NickName; - private Integer OwnerUin; - private String PYInitial; - private String PYQuanPin; - private String Province; - /** - * 备注名、首拼、全拼 - */ - private String RemarkName; - private String RemarkPYInitial; - private String RemarkPYQuanPin; - - private Integer Sex; - private String Signature; - private Integer SnsFlag; - private Integer StarFriend; - private Integer Statues; - private Integer Uin; - private Integer UniFriend; - private String UserName; - /** - * 用来判断是否是公众号或服务号的字段 - */ - private String VerifyFlag; - - public String getAlias() { - return Alias; - } - - public void setAlias(String alias) { - Alias = alias; - } - - public Integer getAppAccountFlag() { - return AppAccountFlag; - } - - public void setAppAccountFlag(Integer appAccountFlag) { - AppAccountFlag = appAccountFlag; - } - - public Integer getAttrStatus() { - return AttrStatus; - } - - public void setAttrStatus(Integer attrStatus) { - AttrStatus = attrStatus; - } - - public Integer getChatRoomId() { - return ChatRoomId; - } - - public void setChatRoomId(Integer chatRoomId) { - ChatRoomId = chatRoomId; - } - - public String getCity() { - return City; - } - - public void setCity(String city) { - City = city; - } - - public Integer getContactFlag() { - return ContactFlag; - } - - public void setContactFlag(Integer contactFlag) { - ContactFlag = contactFlag; - } - - public String getDisplayName() { - return DisplayName; - } - - public void setDisplayName(String displayName) { - DisplayName = displayName; - } - - public String getEncryChatRoomId() { - return EncryChatRoomId; - } - - public void setEncryChatRoomId(String encryChatRoomId) { - EncryChatRoomId = encryChatRoomId; - } - - public String getHeadImgUrl() { - return HeadImgUrl; - } - - public void setHeadImgUrl(String headImgUrl) { - HeadImgUrl = headImgUrl; - } - - public Integer getHideInputBarFlag() { - return HideInputBarFlag; - } - - public void setHideInputBarFlag(Integer hideInputBarFlag) { - HideInputBarFlag = hideInputBarFlag; - } - - public Integer getIsOwner() { - return IsOwner; - } - - public void setIsOwner(Integer isOwner) { - IsOwner = isOwner; - } - - public String getKeyWord() { - return KeyWord; - } - - public void setKeyWord(String keyWord) { - KeyWord = keyWord; - } - - public Integer getMemberCount() { - return MemberCount; - } - - public void setMemberCount(Integer memberCount) { - MemberCount = memberCount; - } - - public List getMemberList() { - return MemberList; - } - - public void setMemberList(List memberList) { - MemberList = memberList; - } - - public String getNickName() { - return NickName; - } - - public void setNickName(String nickName) { - NickName = nickName; - } - - public Integer getOwnerUin() { - return OwnerUin; - } - - public void setOwnerUin(Integer ownerUin) { - OwnerUin = ownerUin; - } - - public String getPYInitial() { - return PYInitial; - } - - public void setPYInitial(String PYInitial) { - this.PYInitial = PYInitial; - } - - public String getPYQuanPin() { - return PYQuanPin; - } - - public void setPYQuanPin(String PYQuanPin) { - this.PYQuanPin = PYQuanPin; - } - - public String getProvince() { - return Province; - } - - public void setProvince(String province) { - Province = province; - } - - public String getRemarkName() { - return RemarkName; - } - - public void setRemarkName(String remarkName) { - RemarkName = remarkName; - } - - public String getRemarkPYInitial() { - return RemarkPYInitial; - } - - public void setRemarkPYInitial(String remarkPYInitial) { - RemarkPYInitial = remarkPYInitial; - } - - public String getRemarkPYQuanPin() { - return RemarkPYQuanPin; - } - - public void setRemarkPYQuanPin(String remarkPYQuanPin) { - RemarkPYQuanPin = remarkPYQuanPin; - } - - public Integer getSex() { - return Sex; - } - - public void setSex(Integer sex) { - Sex = sex; - } - - public String getSignature() { - return Signature; - } - - public void setSignature(String signature) { - Signature = signature; - } - - public Integer getSnsFlag() { - return SnsFlag; - } - - public void setSnsFlag(Integer snsFlag) { - SnsFlag = snsFlag; - } - - public Integer getStarFriend() { - return StarFriend; - } - - public void setStarFriend(Integer starFriend) { - StarFriend = starFriend; - } - - public Integer getStatues() { - return Statues; - } - - public void setStatues(Integer statues) { - Statues = statues; - } - - public Integer getUin() { - return Uin; - } - - public void setUin(Integer uin) { - Uin = uin; - } - - public Integer getUniFriend() { - return UniFriend; - } - - public void setUniFriend(Integer uniFriend) { - UniFriend = uniFriend; - } - - public String getUserName() { - return UserName; - } - - public void setUserName(String userName) { - UserName = userName; - } - - public String getVerifyFlag() { - return VerifyFlag; - } - - public void setVerifyFlag(String verifyFlag) { - VerifyFlag = verifyFlag; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java deleted file mode 100644 index 51c82217..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java +++ /dev/null @@ -1,146 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.io.Serializable; - -/** - * RecommendInfo - * - * @author https://github.com/yaphone - * @date 创建时间:2017年7月3日 下午10:35:14 - * @version 1.0 - * - */ -public class RecommendInfo implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - - private String ticket; - private String userName; - private int sex; - private int attrStatus; - private String city; - private String nickName; - private int scene; - private String province; - private String content; - private String alias; - private String signature; - private int opCode; - private int qQNum; - private int verifyFlag; - - public String getTicket() { - return ticket; - } - - public void setTicket(String ticket) { - this.ticket = ticket; - } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public int getSex() { - return sex; - } - - public void setSex(int sex) { - this.sex = sex; - } - - public int getAttrStatus() { - return attrStatus; - } - - public void setAttrStatus(int attrStatus) { - this.attrStatus = attrStatus; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public int getScene() { - return scene; - } - - public void setScene(int scene) { - this.scene = scene; - } - - public String getProvince() { - return province; - } - - public void setProvince(String province) { - this.province = province; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - - public String getSignature() { - return signature; - } - - public void setSignature(String signature) { - this.signature = signature; - } - - public int getOpCode() { - return opCode; - } - - public void setOpCode(int opCode) { - this.opCode = opCode; - } - - public int getqQNum() { - return qQNum; - } - - public void setqQNum(int qQNum) { - this.qQNum = qQNum; - } - - public int getVerifyFlag() { - return verifyFlag; - } - - public void setVerifyFlag(int verifyFlag) { - this.verifyFlag = verifyFlag; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java deleted file mode 100644 index 33661f94..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; - -import java.io.Serializable; - -/** - * 发送消息体 - * @author WesleyOne - * @create 2019/1/7 - */ -public class SendMsg implements Serializable { - - private String userName; - private String nickName; - private String message; - private SendMsgType msgType; - private boolean isGroup; - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public SendMsgType getMsgType() { - return msgType; - } - - public void setMsgType(SendMsgType msgType) { - this.msgType = msgType; - } - - public boolean isGroup() { - return isGroup; - } - - public void setGroup(boolean group) { - isGroup = group; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java deleted file mode 100644 index de8078cd..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.util.List; - -/** - * @author WesleyOne - * @create 2018/12/21 - */ -@Deprecated -public class SyncKey { - - private Integer Count; - - private List List; - - public Integer getCount() { - return Count; - } - - public void setCount(Integer count) { - Count = count; - } - - public java.util.List getList() { - return List; - } - - public void setList(java.util.List list) { - List = list; - } - - class KV{ - private Integer Key; - private Long Val; - - public Integer getKey() { - return Key; - } - - public void setKey(Integer key) { - Key = key; - } - - public Long getVal() { - return Val; - } - - public void setVal(Long val) { - Val = val; - } - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java deleted file mode 100644 index 750bb5f4..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -/* -AppAccountFlag: 0 -ContactFlag: 0 -HeadImgFlag: 1 -HeadImgUrl: "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=778915892&username=@7e6934104b3cf1f92dd11344c63a06833ae54bd43b34229b5cc472c4d05eba4a&skey=@crypt_a24169c_f4c07f70afe861da5e8a6e1947044b6e" -HideInputBarFlag: 0 -NickName: "[è¡°]晓炜" -PYInitial: "" -PYQuanPin: "" -RemarkName: "" -RemarkPYInitial: "" -RemarkPYQuanPin: "" -Sex: 1 -Signature: "人工智障" -SnsFlag: 49 -StarFriend: 0 -Uin: 902478981 -UserName: "@7e6934104b3cf1f92dd11344c63a06833ae54bd43b34229b5cc472c4d05eba4a" -VerifyFlag: 0 -WebWxPluginSwitch: 0 -*/ - -/** - * @author WesleyOne - * @create 2018/12/21 - */ -@Deprecated -public class User { - - private String AppAccountFlag; - private String ContactFlag; - private String HeadImgFlag; - private String HeadImgUrl; - private String HideInputBarFlag; - private String NickName; - private String PYInitial; - private String PYQuanPin; - private String RemarkName; - private String RemarkPYInitial; - private String RemarkPYQuanPin; - private String Sex; - /** - * 签名 - */ - private String Signature; - private String SnsFlag; - private String StarFriend; - private String Uin; - private String UserName; - private String VerifyFlag; - private String WebWxPluginSwitch; -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java deleted file mode 100644 index fba7077a..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.beans; - -import java.util.List; - -/** - * @author WesleyOne - * @create 2018/12/21 - */ -@Deprecated -public class WebWxInit { - - private BaseResponse BaseResponse; - - private String ChatSet; - - private Long ClickReportInterval; - - private Long ClientVersion; - - private List ContactList; - - private Integer Count; - - private Integer GrayScale; - - private Integer InviteStartCount; - - /** - * 订阅号字段省略 - * MPSubscribeMsgCount - * MPSubscribeMsgList - */ - - private String SKey; - - private SyncKey SyncKey; - - private Long SystemTime; - - private User User; - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java deleted file mode 100644 index 7e157865..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.client; - -import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.CookieStore; - -import java.util.HashMap; - -/** - * 多开请求类管理 - * @author WesleyOne - * @create 2018/12/15 - */ -public class HttpClientManage { - - private static HashMap clientMap = new HashMap<>(32); - - public static SingleHttpClient getInstance(String uniqueKey){ - return getInstance(uniqueKey,null); - } - - public static SingleHttpClient getInstance(String uniqueKey,CookieStore outCookieStore) { - if (StringUtils.isEmpty(uniqueKey)){ - return null; - } - SingleHttpClient client; - - // outCookieStore不为空时也重新构造,主要用于热登录 - if (!clientMap.containsKey(uniqueKey) || clientMap.get(uniqueKey) == null || outCookieStore != null){ - client = SingleHttpClient.getInstance(outCookieStore); - clientMap.put(uniqueKey, client); - } - return clientMap.get(uniqueKey); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java deleted file mode 100644 index 7fcc9bfb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java +++ /dev/null @@ -1,187 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.client; - -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.CookieStore; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.cookie.Cookie; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; -import org.ruoyi.common.wechat.itchat4j.utils.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * @author WesleyOne - * @create 2018/12/15 - */ -public class SingleHttpClient { - private Logger logger = LoggerFactory.getLogger("UTILLOG"); - - private CloseableHttpClient httpClient ; - - private CookieStore cookieStore; - - private String uniqueKey; - - public String getCookie(String name) { - List cookies = cookieStore.getCookies(); - for (Cookie cookie : cookies) { - if (cookie.getName().equalsIgnoreCase(name)) { - return cookie.getValue(); - } - } - return null; - - } - - private SingleHttpClient(CookieStore outCookieStore){ - if (outCookieStore == null){ - outCookieStore = new BasicCookieStore(); - } - this.cookieStore = outCookieStore; - httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).setRetryHandler(new DefaultHttpRequestRetryHandler(0,false)).build(); - } - - private SingleHttpClient(){ - this(null); - } - - public static SingleHttpClient getInstance(CookieStore outCookieStore){ - return new SingleHttpClient(outCookieStore); - } - - /** - * 处理GET请求 - * - * @author https://github.com/yaphone - * @date 2017年4月9日 下午7:06:19 - * @param url - * @param params - * @return - */ - public HttpEntity doGet(String url, List params, boolean redirect, - Map headerMap) { - HttpEntity entity = null; - HttpGet httpGet = new HttpGet(); - - try { - if (params != null) { - String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8)); - httpGet = new HttpGet(url + "?" + paramStr); -// System.out.println(url + "?" + paramStr); - } else { - httpGet = new HttpGet(url); - } - if (!redirect) { - // 禁止重定向 - httpGet.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build()); - } - httpGet.setHeader("User-Agent", Config.USER_AGENT); - if (headerMap != null) { - Set> entries = headerMap.entrySet(); - for (Map.Entry entry : entries) { - httpGet.setHeader(entry.getKey(), entry.getValue()); - } - } - CloseableHttpResponse response = httpClient.execute(httpGet); - entity = response.getEntity(); - } catch (ClientProtocolException e) { - logger.error(e.getMessage()); - } catch (IOException e) { - logger.error(e.getMessage()); - } catch (Exception e){ - logger.error(e.getMessage()); - } - return entity; - } - - /** - * 处理POST请求 - * - * @author https://github.com/yaphone - * @date 2017年4月9日 下午7:06:35 - * @param url - * @param paramsStr - * @return - */ - public HttpEntity doPost(String url, String paramsStr) { - return doPost(url,paramsStr,null); - } - - public HttpEntity doPost(String url, String paramsStr, Map headerMap) { - HttpEntity entity = null; - HttpPost httpPost = new HttpPost(); - try { - StringEntity params = new StringEntity(paramsStr, Consts.UTF_8); - httpPost = new HttpPost(url); - httpPost.setEntity(params); - httpPost.setHeader("Content-type", "application/json; charset=utf-8"); - httpPost.setHeader("User-Agent", Config.USER_AGENT); - if (headerMap != null) { - Set> entries = headerMap.entrySet(); - for (Map.Entry entry : entries) { - httpPost.setHeader(entry.getKey(), entry.getValue()); - } - } - CloseableHttpResponse response = httpClient.execute(httpPost); - entity = response.getEntity(); - } catch (ClientProtocolException e) { - logger.error(e.getMessage()); - } catch (IOException e) { - logger.error(e.getMessage()); - } catch (Exception e){ - logger.error(e.getMessage()); - } - return entity; - } - - /** - * 上传文件到服务器 - * - * @author https://github.com/yaphone - * @date 2017年5月7日 下午9:19:23 - * @param url - * @param reqEntity - * @return - */ - public HttpEntity doPostFile(String url, HttpEntity reqEntity) { - HttpEntity entity = null; - HttpPost httpPost = new HttpPost(url); - httpPost.setHeader("User-Agent", Config.USER_AGENT); - httpPost.setEntity(reqEntity); - try { - CloseableHttpResponse response = httpClient.execute(httpPost); - entity = response.getEntity(); - - } catch (Exception e) { - logger.error(e.getMessage()); - } - return entity; - } - - - public CookieStore getCookieStore() { - return this.cookieStore; - } - - public void setCookieStore(CookieStore cookieStore) { - this.cookieStore = cookieStore; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java deleted file mode 100644 index 171f73f3..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java +++ /dev/null @@ -1,148 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.controller; - -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; -import org.ruoyi.common.wechat.itchat4j.service.ILoginService; -import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.SleepUtils; -import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; -import org.ruoyi.common.wechat.web.base.BaseException; - -/** - * 登陆控制器 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年5月13日 下午12:56:07 - * @version 1.0 - * - * @author WesleyOne 修改 - */ -public class LoginController implements LogInterface { - - private ILoginService loginService; - private String uniqueKey; - private Core core; - - public LoginController(String uniqueKey){ - this.uniqueKey = uniqueKey; - this.loginService = new LoginServiceImpl(uniqueKey); - this.core = CoreManage.getInstance(uniqueKey); - } - - /** - * 获取二维码地址 - * 风险:已登录账号不可调用该接口,会移除当前core信息 - * @return - */ - public String login_1() throws BaseException { - if (core.isAlive()) { - LOG.warn("微信已登陆"); - throw new BaseException("微信已登陆"); - } - LOG.info("1.获取微信UUID"); - while (loginService.getUuid() == null) { - LOG.warn("1.1. 获取微信UUID失败,一秒后重新获取"); - SleepUtils.sleep(1000); - } - LOG.info("2. 获取登陆二维码图片"); - return URLEnum.QRCODE_URL.getUrl() + core.getUuid(); - } - - /** - * 确认登录 - * @return - */ - public boolean login_2(){ - - boolean result = false; - - LOG.info("3. 请扫描二维码图片,并在手机上确认"); - if (!core.isAlive()) { - if (loginService.login()){ - core.setAlive(true); - LOG.info(("3.1登陆成功")); - result = true; - } - } - return result; - } - - /** - * 加载数据 - * @return - */ - public boolean login_3() { - - boolean result = true; - - LOG.info("4.微信初始化"); - if (!loginService.webWxInit()) { - LOG.info("4.1 微信初始化异常"); - result = false; - } - - if (result){ - - LOG.info("5. 开启微信状态通知"); - loginService.wxStatusNotify(); - - LOG.info(String.format("欢迎回来, %s", core.getNickName())); - LOG.info("6.+++开启消息发送线程["+uniqueKey+"]+++"); - Thread sendThread = new Thread(core.getThreadGroup(), () -> MsgCenter.sendMsg(uniqueKey), "SEND-" + uniqueKey); - sendThread.start(); - - LOG.info("8. +++开始接收消息线程["+uniqueKey+"]+++"); - loginService.startReceiving(); - - LOG.info("9. 获取联系人信息"); - loginService.webWxGetContact(); - - LOG.info("10. 获取群好友及群好友列表及缓存"); - loginService.WebWxBatchGetContact(); - - } - - if (!result){ - core.setAlive(false); - return false; - } - - core.setFinishInit(true); - - return true; - } - - public boolean reboot(){ - - core.setFinishInit(false); - // 重新加载数据 - boolean result = true; - LOG.info("1.刷新初始化信息"); - if (!loginService.webWxInit()) { - LOG.info("1.1 微信初始化异常"); - result = false; - } - - if (result){ - LOG.info("2. 刷新开启微信状态通知"); - loginService.wxStatusNotify(); - - LOG.info("3. 刷新获取联系人信息"); - loginService.webWxGetContact(); - - LOG.info("4. 刷新获取群好友及群好友列表"); - loginService.WebWxBatchGetContact(); - } - - if (!result){ - core.setAlive(false); - return false; - } - - core.setFinishInit(true); - return true; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java deleted file mode 100644 index a1c65aa0..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java +++ /dev/null @@ -1,371 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.core; - -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.annotation.JSONField; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; -import org.ruoyi.common.wechat.itchat4j.beans.User; -import org.ruoyi.common.wechat.itchat4j.client.HttpClientManage; -import org.ruoyi.common.wechat.itchat4j.client.SingleHttpClient; -import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; -import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.BaseParaEnum; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 核心存储类,全局只保存一份,单例模式 - * - * @author https://github.com/yaphone - * @author WesleyOne 修改 - * @version 1.0 - * @date 创建时间:2017年4月23日 下午2:33:56 - */ -public class Core { - - private Core() { - - } - - private Core(String uniqueKey) { - this.uniqueKey = uniqueKey; - this.myHttpClient = HttpClientManage.getInstance(this.uniqueKey); - this.threadGroup = new ThreadGroup(this.uniqueKey); - } - - protected static Core getInstance(String uniqueKey) { - return new Core(uniqueKey); - } - - private String uniqueKey; - - boolean alive = false; - - /** - * 管理当前机器人的所有业务线程 - */ - @JSONField(serialize = false) - private ThreadGroup threadGroup; - - @JSONField(serialize = false) - boolean isFinishInit = false; - - /** - * login,webWxInit - * 登录接口获取 - */ - private String indexUrl; - private String userName; - private String nickName; - String uuid = null; - /** - * webWxInit - * InviteStartCount - * SyncKey - * synckey 随着每次获取最新消息后的返回值更新,其目的在于每次同步消息后记录一个当前同步的状态 - */ - Map loginInfo = new HashMap(); - - /** - * webWxInit - * 登陆账号自身信息 - * - * @see User - */ - private JSONObject userSelf; - - - /** - * 初始化/cgi-bin/mmwebwx-bin/webwxinit - * 最后一次收到正常retcode的时间,秒为单位 - *

- * synccheck刷新 - */ - private long lastNormalRetcodeTime; - - - /** - * synccheck和webWxSync容错次数,超过退出 - */ - int receivingRetryCount = 5; - - - @JSONField(serialize = false) - SingleHttpClient myHttpClient; - - public SingleHttpClient getMyHttpClient() { - return HttpClientManage.getInstance(uniqueKey); - } - - /** - * 初始话时获取联系人时创建 - * @see LoginServiceImpl#webWxGetContact() - */ - /** - * memberList长度 - */ - @JSONField(serialize = false) - private int memberCount = 0; - /** - * 好友+群聊+公众号+特殊账号 - * 注意:不主动插入,获取时通过其他几个账号集合合并 - */ - @JSONField(serialize = false) - private List memberList = new ArrayList(); - /** - * 好友 - */ - @JSONField(serialize = false) - private List contactList = new ArrayList(); - /** - * 群 - */ - @JSONField(serialize = false) - private List groupList = new ArrayList(); - /** - * 公众号/服务号 - */ - @Deprecated - @JSONField(serialize = false) - private List publicUsersList = new ArrayList(); - /** - * 特殊账号 - */ - @JSONField(serialize = false) - private List specialUsersList = new ArrayList(); - - /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */ - - /** - * synccheck和webWxSynct添加 - * 异步接受消息存储 - */ - @JSONField(serialize = false) - private List msgList = new ArrayList<>(); - - /** - * 异步发送消息存储 - */ - @JSONField(serialize = false) - private List sendList = new ArrayList(); - - /******************************** - * 缓存字段,用于快速查找 - ********************************/ - - /** - * 微信昵称不能超过16位,而ID比较长,干脆用一个Map - * 群ID或昵称,群信息 - * 注意:存在相同昵称会后者覆盖前者 - *

- * WebWxBatchGetContact之后可以通过 - * .getJSONArray("MemberList")获取群成员列表 - */ - @JSONField(serialize = false) - private Map groupInfoMap = new HashMap<>(1024); - - /** - * 微信昵称不能超过16位,而ID比较长,干脆用一个Map - * 玩家ID或昵称,玩家信息 - * 注意:存在相同昵称会后者覆盖前者 - */ - @JSONField(serialize = false) - private Map userInfoMap = new HashMap<>(1024); - - /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */ - - /** - * 请求参数 - */ - @JSONField(serialize = false) - public Map getParamMap() { - return new HashMap(1) { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - Map map = new HashMap<>(16); - for (BaseParaEnum baseRequest : BaseParaEnum.values()) { - map.put(baseRequest.para(), getLoginInfo().get(baseRequest.value()).toString()); - } - put("BaseRequest", map); - } - }; - } - - public String getUniqueKey() { - return uniqueKey; - } - - public void setUniqueKey(String uniqueKey) { - this.uniqueKey = uniqueKey; - } - - public boolean isAlive() { - return alive; - } - - public void setAlive(boolean alive) { - this.alive = alive; - if (!alive) { - this.isFinishInit = false; - } - } - - public String getIndexUrl() { - return indexUrl; - } - - public void setIndexUrl(String indexUrl) { - this.indexUrl = indexUrl; - } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - - public Map getLoginInfo() { - return loginInfo; - } - - public void setLoginInfo(Map loginInfo) { - this.loginInfo = loginInfo; - } - - public JSONObject getUserSelf() { - return userSelf; - } - - public void setUserSelf(JSONObject userSelf) { - this.userSelf = userSelf; - } - - public long getLastNormalRetcodeTime() { - return lastNormalRetcodeTime; - } - - public void setLastNormalRetcodeTime(long lastNormalRetcodeTime) { - this.lastNormalRetcodeTime = lastNormalRetcodeTime; - } - - public int getReceivingRetryCount() { - return receivingRetryCount; - } - - public void setReceivingRetryCount(int receivingRetryCount) { - this.receivingRetryCount = receivingRetryCount; - } - - public int getMemberCount() { - return getContactList().size() + getGroupList().size() + getPublicUsersList().size() + getSpecialUsersList().size(); - } - - public List getMemberList() { - List memberList = new ArrayList<>(); - memberList.addAll(this.getContactList()); - memberList.addAll(this.getGroupList()); - memberList.addAll(this.getPublicUsersList()); - memberList.addAll(this.getSpecialUsersList()); - return memberList; - } - - public List getContactList() { - return contactList; - } - - public void setContactList(List contactList) { - this.contactList = contactList; - } - - public List getGroupList() { - return groupList; - } - - public void setGroupList(List groupList) { - this.groupList = groupList; - } - - public List getPublicUsersList() { - return publicUsersList; - } - - public void setPublicUsersList(List publicUsersList) { - this.publicUsersList = publicUsersList; - } - - public List getSpecialUsersList() { - return specialUsersList; - } - - public void setSpecialUsersList(List specialUsersList) { - this.specialUsersList = specialUsersList; - } - - public List getMsgList() { - return msgList; - } - - public void setMsgList(List msgList) { - this.msgList = msgList; - } - - public Map getGroupInfoMap() { - return groupInfoMap; - } - - public void setGroupInfoMap(Map groupInfoMap) { - this.groupInfoMap = groupInfoMap; - } - - public Map getUserInfoMap() { - return userInfoMap; - } - - public void setUserInfoMap(Map userInfoMap) { - this.userInfoMap = userInfoMap; - } - - public boolean isFinishInit() { - return isFinishInit; - } - - public void setFinishInit(boolean finishInit) { - isFinishInit = finishInit; - } - - public ThreadGroup getThreadGroup() { - return threadGroup; - } - - public void setThreadGroup(ThreadGroup threadGroup) { - this.threadGroup = threadGroup; - } - - public List getSendList() { - return sendList; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java deleted file mode 100644 index 140903fa..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java +++ /dev/null @@ -1,323 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.core; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.cookie.BasicClientCookie; -import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; -import org.ruoyi.common.wechat.itchat4j.client.HttpClientManage; -import org.ruoyi.common.wechat.itchat4j.controller.LoginController; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; - -import java.io.*; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; - -/** - * 多开管理 - * - * @author WesleyOne - * @create 2018/12/13 - */ -public class CoreManage implements LogInterface { - - static int MAX_CORE_NUM = 50; - private static HashMap coreMap = new HashMap<>(MAX_CORE_NUM / 3 * 4 + 1); - - // 是否热加载 - public static boolean USE_HOT_RELOAD = false; - public static String HOT_RELOAD_DIR = "/Users/wesley/output/hotreload/wxwobot.hot"; - - public static Core getInstance(String uniqueKey) { - if (StringUtils.isEmpty(uniqueKey)) { - return null; - } - Core core; - if (!coreMap.containsKey(uniqueKey) || coreMap.get(uniqueKey) == null) { - core = Core.getInstance(uniqueKey); - coreMap.put(uniqueKey, core); - } - return coreMap.get(uniqueKey); - } - - /** - * 移除 - * - * @param uniqueKey - */ - public static void remove(String uniqueKey) { - if (coreMap.containsKey(uniqueKey)) { - coreMap.remove(uniqueKey); - } - } - - /** - * 查询是否在线 - * - * @param uniqueKey - * @return - */ - public static boolean isActive(String uniqueKey) { - if (StringUtils.isNotEmpty(uniqueKey) && coreMap.containsKey(uniqueKey) && coreMap.get(uniqueKey).isAlive()) { - return true; - } - return false; - } - - /** - * 持久化 - */ - public static void persistence() { - - // 格式化数据 - Collection valueCollection = coreMap.values(); - int size = valueCollection.size(); - // 没有数据不操作 - if (size <= 0) { - return; - } - LOG.info("登录数据持久化中"); - Iterator iterator = valueCollection.iterator(); - JSONArray jsonArray = new JSONArray(); - while (iterator.hasNext()) { - Core core = iterator.next(); - if (core.isAlive()) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("core", core); - jsonObject.put("cookies", core.getMyHttpClient().getCookieStore().getCookies()); - jsonArray.add(jsonObject); - } - } - - try { - File file = new File(HOT_RELOAD_DIR); - if (!file.exists()) { - file.createNewFile(); - } - // 每次覆盖 - FileWriter fileWritter = new FileWriter(HOT_RELOAD_DIR, false); - fileWritter.write(jsonArray.toJSONString()); - fileWritter.close(); - - LOG.info("登录数据持久化完成"); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * 启动加载持久化文件 - */ - public static void reload() { - if (USE_HOT_RELOAD) { - File file = new File(HOT_RELOAD_DIR); - if (file.exists()) { - LOG.info("登录数据热加载中"); - StringBuilder stringBuilder = new StringBuilder(); - try { - FileReader fr = new FileReader(HOT_RELOAD_DIR); - BufferedReader bf = new BufferedReader(fr); - String str; - // 按行读取字符串 - while ((str = bf.readLine()) != null) { - stringBuilder.append(str); - } - bf.close(); - fr.close(); - } catch (IOException e) { - e.printStackTrace(); - return; - } - String result = stringBuilder.toString(); - if (StringUtils.isEmpty(result)) { - return; - } - - JSONArray jsonArray = JSONArray.parseArray(result); - int size = jsonArray.size(); - if (size > 0) { - // 封装成线程操作 - for (int i = 0; i < size; i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - ReloadThread reloadThread = new ReloadThread(jsonObject); - Thread thread = new Thread(reloadThread); - thread.start(); - } - } - - LOG.info("登录数据热加载完成"); - } - } - } - - private static class ReloadThread implements Runnable { - - private JSONObject reloadObject; - - public ReloadThread(JSONObject object) { - this.reloadObject = object; - } - - @Override - public void run() { - Core core = null; - try { - /** - * 初始化Core, - * 1.获取登入的状态信息并装入CoreManage - * 2.构建ThreadGroup - * 3.获取Cookies并装入HttpClientManage - * 4.获取信息及启动线程 - */ - JSONObject jsonObject = this.reloadObject; - core = jsonObject.getObject("core", Core.class); - String uniqueKey = core.getUniqueKey(); - if (core.isAlive()) { - core.setThreadGroup(new ThreadGroup(uniqueKey)); - coreMap.put(uniqueKey, core); - - JSONArray cookiesJsonArray = jsonObject.getJSONArray("cookies"); - int arraySize = cookiesJsonArray.size(); - if (arraySize <= 0) { - return; - } - - // 装载原cookie信息,json解析cookie异常,干脆手动封装 - BasicCookieStore cookieStore = new BasicCookieStore(); - for (int ci = 0; ci < arraySize; ci++) { - JSONObject cookieJson = cookiesJsonArray.getJSONObject(ci); - String name = cookieJson.getString("name"); - String value = cookieJson.getString("value"); - String domain = cookieJson.getString("domain"); - String path = cookieJson.getString("path"); - Boolean persistent = cookieJson.getBoolean("persistent"); - Boolean secure = cookieJson.getBoolean("secure"); - Long expiryDate = cookieJson.getLong("expiryDate"); - Integer version = cookieJson.getInteger("version"); - - BasicClientCookie cookie = new BasicClientCookie(name, value); - cookie.setDomain(domain); - cookie.setPath(path); - cookie.setSecure(secure); - cookie.setExpiryDate(new Date(expiryDate)); - cookie.setVersion(version); - - cookieStore.addCookie(cookie); - } - // 必须在构建client时就放入cookie - HttpClientManage.getInstance(uniqueKey, cookieStore); - //装载core信息及启动线程 - LoginController login = new LoginController(uniqueKey); - if (!login.login_3()) { - // 加载失败退出 - core.setAlive(false); - return; - } - LOG.info("热登录成功: {}", uniqueKey); - } - } catch (Exception e) { - e.printStackTrace(); - if (core != null) { - core.setAlive(false); - core = null; - } - } - } - } - - - /** - * 存放新的群,昵称emoji处理 - * - * @param core - * @param jsonObject - */ - public static void addNewGroup(Core core, JSONObject jsonObject) { - String userName = jsonObject.getString("UserName"); - - CommonTools.emojiFormatter2(jsonObject, "NickName"); - // 删除重复的 - core.getGroupList().removeIf(group -> userName.equals(group.getString("UserName"))); - - core.getGroupList().add(jsonObject); - core.getGroupInfoMap().put(jsonObject.getString("NickName"), jsonObject); - core.getGroupInfoMap().put(userName, jsonObject); - } - - - /** - * 存放新的联系人,昵称emoji处理 - * - * @param core - * @param jsonObject - */ - public static void addNewContact(Core core, JSONObject jsonObject) { - String userName = jsonObject.getString("UserName"); - - CommonTools.emojiFormatter2(jsonObject, "NickName"); - // 删除重复的 - core.getContactList().removeIf(contact -> userName.equals(contact.getString("UserName"))); - - core.getContactList().add(jsonObject); - core.getUserInfoMap().put(jsonObject.getString("NickName"), jsonObject); - core.getUserInfoMap().put(userName, jsonObject); - } - - /** - * 消息统一加到队列里处理1 - * 用于已知UserName - * - * @param uniqueKey - * @param toUserName - * @param data - * @param type - */ - public static void addSendMsg4UserName(String uniqueKey, String toUserName, String data, SendMsgType type) { - if (StringUtils.isEmpty(uniqueKey) || StringUtils.isEmpty(toUserName) || StringUtils.isEmpty(data) || type == null) { - LOG.error("消息参数不完整 uk:{} un: {} data: {} ", uniqueKey, toUserName, data); - return; - } - - SendMsg sendMsg = new SendMsg(); - sendMsg.setUserName(toUserName); - sendMsg.setMessage(data); - sendMsg.setMsgType(type); - boolean isGroup = true; - if (toUserName != null && !toUserName.startsWith("@@")) { - isGroup = false; - } - sendMsg.setGroup(isGroup); - CoreManage.getInstance(uniqueKey).getSendList().add(sendMsg); - } - - /** - * 消息统一加到队列里处理2 - * 用于已知NickName - * - * @param uniqueKey - * @param toNickName - * @param data - * @param type - * @param isGroup - */ - public static void addSendMsg4NickName(String uniqueKey, String toNickName, String data, SendMsgType type, Boolean isGroup) { - - if (StringUtils.isEmpty(uniqueKey) || StringUtils.isEmpty(toNickName) || StringUtils.isEmpty(data) || type == null) { - LOG.error("消息参数不完整 uk:{} nn: {} data: {} ", uniqueKey, toNickName, data); - return; - } - - SendMsg sendMsg = new SendMsg(); - sendMsg.setNickName(toNickName); - sendMsg.setMessage(data); - sendMsg.setMsgType(type); - sendMsg.setGroup(isGroup); - CoreManage.getInstance(uniqueKey).getSendList().add(sendMsg); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java deleted file mode 100644 index 9a8f607c..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java +++ /dev/null @@ -1,273 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.core; - - -import cn.hutool.core.collection.CollectionUtil; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.wechat.itchat4j.api.MessageTools; -import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; -import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.MoreConfig; -import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgCodeEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgTypeEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; - -import java.util.ArrayList; -import java.util.List; - -/** - * 消息处理中心 - * - * @author https://github.com/yaphone - * @author WesleyOne 修改 - * @version 1.0 - * @date 创建时间:2017年5月14日 下午12:47:50 - */ -public class MsgCenter implements LogInterface { - - /** - * 接收消息,放入队列 - * - * @param msgList - * @return - * @author https://github.com/yaphone - * @date 2017年4月23日 下午2:30:48 - */ - public static JSONArray produceMsg(JSONArray msgList, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - JSONArray result = new JSONArray(); - // 用于暂存未知群ID,最后调用webwxbatchgetcontact获取 - List unknowGroup = new ArrayList<>(); - - for (int i = 0; i < msgList.size(); i++) { - JSONObject m = msgList.getJSONObject(i); - // 是否是群消息 - boolean isGroupMsg = false; - boolean isAtMe = false; - if (m.getString("FromUserName").contains("@@") || m.getString("ToUserName").contains("@@")) { - // 群聊消息 - isGroupMsg = true; - if (m.getString("FromUserName").contains("@@") - && !core.getGroupInfoMap().containsKey(m.getString("FromUserName"))) { - unknowGroup.add(m.getString("FromUserName")); - } else if (m.getString("ToUserName").contains("@@") - && !core.getGroupInfoMap().containsKey(m.getString("ToUserName"))) { - unknowGroup.add(m.getString("ToUserName")); - } - // 群消息与普通消息不同的是在其消息体(Content)中会包含发送者id及":
"消息,这里需要处理一下,去掉多余信息,只保留消息内容 - String splitCode = ":
"; - if (m.getString("Content").contains(splitCode)) { - String source = m.getString("Content"); - String content = source.substring(source.indexOf(splitCode) + splitCode.length()); - String sendMemberId = source.substring(0, source.indexOf(splitCode)); - - m.put("Content", content); - m.put(MoreConfig.SEND_MEMBER_ID, sendMemberId); - - if (content.contains("@" + core.getNickName())) { - isAtMe = true; - } - } - - } - m.put("groupMsg", isGroupMsg); - m.put("atMe", isAtMe); - // 1.文本消息 - if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_TEXT.getCode())) { - if (m.getString("Url").length() != 0) { - // 1.1分享位置 不处理 - continue; -// String[] contents = m.getString("Content").split(":"); -// String data = "Map"; -// if (contents.length>0) { -// data = contents[0]+":"+m.getString("Url"); -// } -// m.put("Type", MsgTypeEnum.MAP.getType()); -// m.put("Text", data); -// LOG.warn("MAP_CONTENT: {},URL: {}",m.getString("Content"),m.getString("Url")); - /** - * MAP_CONTENT: 滨兴小区(东区):/cgi-bin/mmwebwx-bin/webwxgetpubliclinkimg?url=xxx&msgid=7525662842661720095&pictype=location,URL: http://apis.map.qq.com/uri/v1/geocoder?coord=30.191660,120.200508 - */ - - } else { - // 1.2 普通文本 - m.put("Type", MsgTypeEnum.TEXT.getType()); - CommonTools.emojiFormatter2(m, "Content"); - m.put("Text", m.getString("Content")); - - } - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_IMAGE.getCode()) - || m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_EMOTICON.getCode())) { - // 2.图片消息 不处理 - continue; -// m.put("Type", MsgTypeEnum.PIC.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VOICE.getCode())) { - // 3.语音消息 不处理 - continue; -// m.put("Type", MsgTypeEnum.VOICE.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VERIFYMSG.getCode())) { - // 4.好友确认消息 不处理 - continue; - // MessageTools.addFriend(core, userName, 3, ticket); // 确认添加好友 -// m.put("Type", MsgTypeEnum.VERIFYMSG.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_SHARECARD.getCode())) { - // 5.共享名片 不处理 -// m.put("Type", MsgTypeEnum.NAMECARD.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VIDEO.getCode()) - || m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_MICROVIDEO.getCode())) { - // 6.视频 不处理 - continue; -// m.put("Type", MsgTypeEnum.VIEDO.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_MEDIA.getCode())) { - // 7.分享链接 不处理 - continue; -// m.put("Type", MsgTypeEnum.MEDIA.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_STATUSNOTIFY.getCode())) { - // 微信初始化消息 系统 - m.put("Type", MsgTypeEnum.SYS.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_SYS.getCode())) { - // 系统消息 系统 - m.put("Type", MsgTypeEnum.SYS.getType()); - } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_RECALLED.getCode())) { - // 撤回消息 系统 不处理 - continue; -// m.put("Type", MsgTypeEnum.SYS.getType()); - } else { - LOG.error("Useless msg: {} \n {}", m.getInteger("MsgType"), m.getString("Content")); - } - - /** - * 日志 - * 显示收到的消息 - */ - String nickName; - String memberName = ""; - if (m.getBoolean("groupMsg")) { - nickName = WechatTools.getGroupNickNameByUserName(m.getString("FromUserName"), uniqueKey); - - if (m.getString(MoreConfig.SEND_MEMBER_ID) != null) { - // 获取成员昵称 - memberName = WechatTools.getMemberNickName(m.getString("FromUserName"), uniqueKey, m.getString(MoreConfig.SEND_MEMBER_ID)); - m.put(MoreConfig.SEND_MEMBER_NICKNAMW, memberName); - } - } else { - nickName = WechatTools.getContactNickNameByUserName(m.getString("FromUserName"), uniqueKey); - } - m.put("fromNickName", nickName); - LOG.info("收到【{}】=>【{}】消息,来自: {} 内容:\n{} ", - MsgCodeEnum.fromCode(m.getInteger("MsgType")) == null ? "未知类型" + m.getInteger("MsgType") : MsgCodeEnum.fromCode(m.getInteger("MsgType")).getType(), - m.getString("Type"), - nickName + " : " + memberName, - StringUtils.isNotEmpty(m.getString("Content")) ? m.getString("Content") : ""); - result.add(m); - } - return result; - } - - /** - * 微信接收消息处理 - * - * @param uniqueKey - * @author https://github.com/yaphone - * @date 2017年5月14日 上午10:52:34 - */ - public static void handleMsg(String uniqueKey, IMsgHandlerFace msgHandler) { - Core core = CoreManage.getInstance(uniqueKey); - while (true) { - if (!core.isAlive()) { - LOG.info("停止消息处理"); - break; - } - if (core.getMsgList().size() > 0 && core.getMsgList().get(0).getContent() != null) { - if (core.getMsgList().get(0).getContent().length() > 0) { - BaseMsg msg = core.getMsgList().get(0); - if (msg.getType() != null) { - try { - if (msg.getType().equals(MsgTypeEnum.TEXT.getType())) { - msgHandler.textMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.PIC.getType())) { - msgHandler.picMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.VOICE.getType())) { - msgHandler.voiceMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.VIEDO.getType())) { - msgHandler.videoMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.NAMECARD.getType())) { - msgHandler.nameCardMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.SYS.getType())) { - msgHandler.sysMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.VERIFYMSG.getType())) { - msgHandler.verifyAddFriendMsgHandle(msg); - } else if (msg.getType().equals(MsgTypeEnum.MEDIA.getType())) { - msgHandler.mediaMsgHandle(msg); - } else { - LOG.warn("暂未处理信息【{}】", msg.getType()); - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - } - } - core.getMsgList().remove(0); - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - LOG.error("消息处理中断"); - break; - } - } - } - - /** - * 统一发送消息 - * - * @param uniqueKey - */ - public static void sendMsg(String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - while (true) { - if (core == null || !core.isAlive()) { - LOG.info("停止消息发送"); - break; - } - if (CollectionUtil.isNotEmpty(core.getSendList())) { - SendMsg sendMsg = core.getSendList().get(0); - try { - String userName = sendMsg.getUserName(); - String nickName = sendMsg.getNickName(); - String message = sendMsg.getMessage(); - boolean isGroup = sendMsg.isGroup(); - SendMsgType msgType = sendMsg.getMsgType(); - if (StringUtils.isNotEmpty(message) && msgType != null) { - if (StringUtils.isNotEmpty(userName)) { - MessageTools.send(userName, uniqueKey, message, msgType.toValue()); - } else if (StringUtils.isNotEmpty(nickName)) { - MessageTools.sendByNickName(nickName, uniqueKey, message, msgType.toValue(), isGroup); - } else { - LOG.error("无效发送消息: {}", JSONObject.toJSONString(sendMsg)); - } - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - core.getSendList().remove(0); - } - try { - // 控制发送频率 - Thread.sleep(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - LOG.error("消息发送中断"); - break; - } - } - - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java deleted file mode 100644 index 31e2c2a9..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.face; - -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; - -/** - * 消息处理接口 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月20日 上午12:13:49 - * @version 1.0 - * - * @author WesleyOne 修改 - */ -public interface IMsgHandlerFace { - - /** - * - * @author https://github.com/yaphone - * @date 2017年4月20日 上午12:15:00 - * @param msg - * @return - */ - void textMsgHandle(BaseMsg msg); - - /** - * 处理图片消息 - * - * @author https://github.com/yaphone - * @date 2017年4月21日 下午11:07:06 - * @param msg - * @return - */ - void picMsgHandle(BaseMsg msg); - - /** - * 处理声音消息 - * - * @author https://github.com/yaphone - * @date 2017年4月22日 上午12:09:44 - * @param msg - * @return - */ - void voiceMsgHandle(BaseMsg msg); - - /** - * 处理小视频消息 - * - * @author https://github.com/yaphone - * @date 2017年4月23日 下午12:19:50 - * @param msg - * @return - */ - void videoMsgHandle(BaseMsg msg); - - /** - * 处理名片消息 - * - * @author https://github.com/yaphone - * @date 2017年5月1日 上午12:50:50 - * @param msg - * @return - */ - void nameCardMsgHandle(BaseMsg msg); - - /** - * 处理系统消息 - * - * @author Relyn - * @date 2017年6月21日17:43:51 - * @param msg - * @return - */ - void sysMsgHandle(BaseMsg msg); - - /** - * 处理确认添加好友消息 - * - * @date 2017年6月28日 下午10:15:30 - * @param msg - * @return - */ - void verifyAddFriendMsgHandle(BaseMsg msg); - - /** - * 处理收到的文件消息 - * - * @date 2017年7月21日 下午11:59:14 - * @param msg - * @return - */ - void mediaMsgHandle(BaseMsg msg); - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java deleted file mode 100644 index 97a7cb51..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.service; - - - -/** - * 登陆服务接口 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年5月13日 上午12:07:21 - * @version 1.0 - * - * @author WesleyOne 修改 - */ -public interface ILoginService { - - /** - * 登陆 - * - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:14:07 - * @return - */ - boolean login(); - - /** - * 获取UUID - * - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:21:40 - * @return - */ - String getUuid(); - - /** - * 获取二维码图片 - * (直接获取图片链接,不下载文件) - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:13:51 - * @param qrPath - * @return - */ - @Deprecated - boolean getQR(String qrPath); - - /** - * web初始化 - * - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:14:13 - * @return - */ - boolean webWxInit(); - - /** - * 微信状态通知 - * - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:14:24 - */ - void wxStatusNotify(); - - /** - * 接收消息 - * - * @author https://github.com/yaphone - * @date 2017年5月13日 上午12:14:37 - */ - void startReceiving(); - - /** - * 获取微信联系人 - * - * @author https://github.com/yaphone - * @date 2017年5月13日 下午2:26:18 - */ - void webWxGetContact(); - - /** - * 批量获取联系人信息 - * - * @date 2017年6月22日 下午11:24:35 - */ - void WebWxBatchGetContact(); - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java deleted file mode 100644 index 9e1d021a..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java +++ /dev/null @@ -1,894 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.service.impl; - - -import cn.hutool.core.collection.CollectionUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.Consts; -import org.apache.http.HttpEntity; -import org.apache.http.cookie.Cookie; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.beans.Member; -import org.ruoyi.common.wechat.itchat4j.beans.WebWxInit; -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; -import org.ruoyi.common.wechat.itchat4j.service.ILoginService; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.SleepUtils; -import org.ruoyi.common.wechat.itchat4j.utils.enums.*; -import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.BaseParaEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.LoginParaEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.StatusNotifyParaEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.UUIDParaEnum; -import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; -import org.w3c.dom.Document; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.util.*; -import java.util.Map.Entry; -import java.util.regex.Matcher; - -/** - * 登陆服务实现类 - * - * @author https://github.com/yaphone - * @author WesleyOne 修改 - * @version 1.0 - * @date 创建时间:2017年5月13日 上午12:09:35 - */ -public class LoginServiceImpl implements ILoginService, LogInterface { - private Core core; - private String uniqueKey; - - public LoginServiceImpl(String uniqueKey) { - this.uniqueKey = uniqueKey; - this.core = CoreManage.getInstance(uniqueKey); - } - - @Override - public boolean login() { - - boolean isLogin = false; - // 组装参数和URL - List params = new ArrayList(); - params.add(new BasicNameValuePair(LoginParaEnum.LOGIN_ICON.para(), LoginParaEnum.LOGIN_ICON.value())); - params.add(new BasicNameValuePair(LoginParaEnum.UUID.para(), core.getUuid())); - params.add(new BasicNameValuePair(LoginParaEnum.TIP.para(), LoginParaEnum.TIP.value())); - - // long time = 4000; - long startMillis = System.currentTimeMillis(); - boolean overTime = false; - - while (!isLogin && !overTime) { - // 防止请求重复时的问题 - if (core.isAlive()) { - break; - } - - long millis = System.currentTimeMillis(); - params.add(new BasicNameValuePair(LoginParaEnum.R.para(), String.valueOf(millis / 1579L))); - params.add(new BasicNameValuePair(LoginParaEnum._1.para(), String.valueOf(millis))); - HttpEntity entity = core.getMyHttpClient().doGet(URLEnum.LOGIN_URL.getUrl(), params, true, null); - - try { - String result = EntityUtils.toString(entity); - String status = checklogin(result); - if (ResultEnum.SUCCESS.getCode().equals(status)) { - // 处理结果 - if (processLoginInfo(result)) { - isLogin = true; - core.setAlive(isLogin); - break; - } else { - isLogin = false; - core.setAlive(isLogin); - // 登入异常直接退出,防止死循环 - break; - } - } - if (ResultEnum.WAIT_CONFIRM.getCode().equals(status)) { - LOG.info("请点击微信确认按钮,进行登陆"); - } - - } catch (Exception e) { - LOG.error("微信登陆异常!", e); - break; - } - // 3分钟超时不再请求 - SleepUtils.sleep(1000); - overTime = (millis - startMillis) > 1000 * 180; - } - return isLogin; - } - - - @Override - public String getUuid() { - // 组装参数和URL - List params = new ArrayList(); - params.add(new BasicNameValuePair(UUIDParaEnum.APP_ID.para(), UUIDParaEnum.APP_ID.value())); - params.add(new BasicNameValuePair(UUIDParaEnum.FUN.para(), UUIDParaEnum.FUN.value())); - params.add(new BasicNameValuePair(UUIDParaEnum.LANG.para(), UUIDParaEnum.LANG.value())); - params.add(new BasicNameValuePair(UUIDParaEnum._1.para(), String.valueOf(System.currentTimeMillis()))); - - HttpEntity entity = core.getMyHttpClient().doGet(URLEnum.UUID_URL.getUrl(), params, true, null); - - try { - String result = EntityUtils.toString(entity); - String regEx = "window.QRLogin.code = (\\d+); window.QRLogin.uuid = \"(\\S+?)\";"; - Matcher matcher = CommonTools.getMatcher(regEx, result); - LOG.info(result); - if (matcher.find()) { - if ((ResultEnum.SUCCESS.getCode().equals(matcher.group(1)))) { - core.setUuid(matcher.group(2)); - } - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - - return core.getUuid(); - } - - @Deprecated - @Override - public boolean getQR(String qrPath) { - return getQR(qrPath, false); - } - - @Deprecated - public boolean getQR(String qrPath, boolean open) { - qrPath = qrPath + File.separator + "QR.jpg"; - String qrUrl = URLEnum.QRCODE_URL.getUrl() + core.getUuid(); - HttpEntity entity = core.getMyHttpClient().doGet(qrUrl, null, true, null); - try { - // 文件已存在先删除 - File file = new File(qrPath); - if (file.exists() && file.isFile()) { - file.delete(); - } - // 写入二维码 - OutputStream out = new FileOutputStream(qrPath); - byte[] bytes = EntityUtils.toByteArray(entity); - out.write(bytes); - out.flush(); - out.close(); - if (open) { - try { - CommonTools.printQr(qrPath); // 打开登陆二维码图片 - } catch (Exception e) { - LOG.info(e.getMessage()); - } - } - - } catch (Exception e) { - e.printStackTrace(); - LOG.error(e.getMessage(), e); - return false; - } - - return true; - } - - /** - * 获取自身登录信息缓存 - * - * @return - */ - @Override - public boolean webWxInit() { - core.setAlive(true); - core.setLastNormalRetcodeTime(System.currentTimeMillis()); - - try { - // 组装请求URL和参数 - String url = String.format(URLEnum.INIT_URL.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), - System.currentTimeMillis() / 3158L, - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - Map paramMap = core.getParamMap(); - - // 请求初始化接口 - HttpEntity entity = core.getMyHttpClient().doPost(url, JSONObject.toJSONString(paramMap), getPersistentCookieMap()); - String result = EntityUtils.toString(entity, Consts.UTF_8); - - /** - * 相关返回信息,本项目未做封装 - * @see WebWxInit - */ - JSONObject obj = JSON.parseObject(result); - - JSONObject user = obj.getJSONObject(StorageLoginInfoEnum.User.getKey()); - JSONObject syncKey = obj.getJSONObject(StorageLoginInfoEnum.SyncKey.getKey()); - - core.getLoginInfo().put(StorageLoginInfoEnum.InviteStartCount.getKey(), - obj.getInteger(StorageLoginInfoEnum.InviteStartCount.getKey())); - core.getLoginInfo().put(StorageLoginInfoEnum.SyncKey.getKey(), syncKey); - - JSONArray syncArray = syncKey.getJSONArray("List"); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < syncArray.size(); i++) { - sb.append(syncArray.getJSONObject(i).getString("Key") + "_" - + syncArray.getJSONObject(i).getString("Val") + "|"); - } - // 1_661706053|2_661706420|3_661706415|1000_1494151022| - String synckey = sb.toString(); - - // 1_661706053|2_661706420|3_661706415|1000_1494151022 - core.getLoginInfo().put(StorageLoginInfoEnum.synckey.getKey(), synckey.substring(0, synckey.length() - 1)); - core.setUserName(user.getString("UserName")); - core.setNickName(user.getString("NickName")); - core.setUserSelf(obj.getJSONObject("User")); - - /** - * TIP: - * ContactList此处只是部分,不做处理,webwxgetcontact接口统一处理 - * MPSubscribeMsgList 公众号服务号也不处理 - */ - } catch (Exception e) { - LOG.error("热登录出现该异常请忽略" + e.getMessage(), e); - core.setAlive(false); - return false; - } - return true; - } - - @Override - public void wxStatusNotify() { - // 组装请求URL和参数 - String url = String.format(URLEnum.STATUS_NOTIFY_URL.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - - Map paramMap = core.getParamMap(); - paramMap.put(StatusNotifyParaEnum.CODE.para(), StatusNotifyParaEnum.CODE.value()); - paramMap.put(StatusNotifyParaEnum.FROM_USERNAME.para(), core.getUserName()); - paramMap.put(StatusNotifyParaEnum.TO_USERNAME.para(), core.getUserName()); - paramMap.put(StatusNotifyParaEnum.CLIENT_MSG_ID.para(), System.currentTimeMillis()); - String paramStr = JSON.toJSONString(paramMap); - - try { - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); -// String result = EntityUtils.toString(entity, Consts.UTF_8); -// LOG.info(result); - } catch (Exception e) { - LOG.error("微信状态通知接口失败!", e); - } - - } - - @Override - public void startReceiving() { - core.setAlive(true); - Thread thread = new Thread(core.getThreadGroup(), new Runnable() { - int retryCount = 0; - - @Override - public void run() { - while (core.isAlive()) { - try { - long startTime = System.currentTimeMillis(); - Map resultMap = syncCheck(); - LOG.info(JSONObject.toJSONString(resultMap)); - String retcode = resultMap.get("retcode"); - String selector = resultMap.get("selector"); - RetCodeEnum retCodeEnum = RetCodeEnum.fromCode(retcode); - if (retCodeEnum != null) { - LOG.info(retCodeEnum.getType()); - if (retcode.equals(RetCodeEnum.UNKOWN.getCode())) { - // 防止频繁请求 - Thread.sleep(1000); - continue; - } else if (retcode.equals(RetCodeEnum.SUCCESS.getCode())) { - // 修改最后收到正常报文时间 - core.setLastNormalRetcodeTime(System.currentTimeMillis()); - SelectorEnum selectorEnum = SelectorEnum.fromCode(selector); - if (selectorEnum != null) { - if (selector.equals(SelectorEnum.NORMAL.getCode())) { - continue; - } else if (selector.equals(SelectorEnum.NEW_MSG.getCode())) { - // 有新消息 -// processWebwxSync(); - } else if (selector.equals(SelectorEnum.ENTER_OR_LEAVE_CHAT.getCode())) { -// processWebwxSync(); - } else if (selector.equals(SelectorEnum.MOD_CONTACT.getCode())) { -// processWebwxSync(); - } else if (selector.equals(SelectorEnum.SELECTOR_3.getCode())) { -// processWebwxSync(); -// continue; - } else if (selector.equals(SelectorEnum.ADD_OR_DEL_CONTACT.getCode())) { -// processWebwxSync(); - } else { - LOG.error("UNKNOW SELECTOR CODE {}", selector); - } - } else { - // 防止新类型不处理堆积 -// processWebwxSync(); - } - } else if (retcode.equals(RetCodeEnum.NOT_LOGIN_CHECK.getCode()) || - retcode.equals(RetCodeEnum.TICKET_ERROR.getCode()) || - retcode.equals(RetCodeEnum.PARAM_ERROR.getCode()) || - retcode.equals(RetCodeEnum.NOT_LOGIN_WARN.getCode()) || - retcode.equals(RetCodeEnum.COOKIE_INVALID_ERROR.getCode()) || - retcode.equals(RetCodeEnum.LOGIN_ENV_ERROR.getCode())) { - // 状态异常直接退出 - core.setAlive(false); - break; - } else { - // 防止频繁请求 - Thread.sleep(1000); - break; - } - } else { - LOG.error("特殊retcode: {}", retcode); - } - // 统统尝试获取新消息 - processWebwxSync(); - if (System.currentTimeMillis() - startTime < 1000 * 1) { - Thread.sleep(1000); - } - } catch (InterruptedException e0) { - LOG.error("线程中断"); - core.setAlive(false); - break; - } catch (Exception e) { - LOG.error(e.getMessage()); - retryCount += 1; - if (core.getReceivingRetryCount() < retryCount) { - core.setAlive(false); - } else { - try { - Thread.sleep(1000); - } catch (InterruptedException e1) { - LOG.error(e.getMessage()); - break; - } - } - } - - } - } - }, "REC-" + uniqueKey); - thread.start(); - } - - - private void processWebwxSync() { - JSONObject msgObj = webWxSync(); - if (msgObj != null) { - Integer addMsgCount = msgObj.getInteger("AddMsgCount"); - Integer ModMsgCount = msgObj.getInteger("ModContactCount"); - Integer DelContactCount = msgObj.getInteger("DelContactCount"); - Integer ModChatRoomMemberCount = msgObj.getInteger("ModChatRoomMemberCount"); - - - if (addMsgCount > 0 || ModMsgCount > 0 || DelContactCount > 0 || ModChatRoomMemberCount > 0) { - LOG.info("接收原文:{}", msgObj.toJSONString()); - } - - // 用于通知获取详细详细 - List modUserName = new ArrayList<>(); - - // 处理新消息 - try { - - if (addMsgCount > 0) { - JSONArray msgList = msgObj.getJSONArray("AddMsgList"); - msgList = MsgCenter.produceMsg(msgList, uniqueKey); - for (int j = 0; j < msgList.size(); j++) { - BaseMsg baseMsg = JSON.toJavaObject(msgList.getJSONObject(j), - BaseMsg.class); - // TODO 日志 - LOG.info("处理后对象:{}", JSON.toJSONString(baseMsg)); - core.getMsgList().add(baseMsg); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - - // 处理修改联系人或群成员 - try { - if (ModMsgCount > 0) { - JSONArray list = msgObj.getJSONArray("ModContactList"); - int size = list.size(); - for (int j = 0; j < size; j++) { - String userName = list.getJSONObject(j).getString("UserName"); - if (userName.startsWith("@@")) { - CoreManage.addNewGroup(core, list.getJSONObject(j)); - } else if (userName.startsWith("@")) { - CoreManage.addNewContact(core, list.getJSONObject(j)); - } - modUserName.add(userName); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - - /** - * 没有获取过数据,不知道干啥用 - * DelContactCount: 0 - * DelContactList: [] - * ModChatRoomMemberCount: 0 - * ModChatRoomMemberList: [] - */ - - // 获取详细信息 - WebWxBatchGetContact(modUserName); - - } - - - } - - - @Override - public void webWxGetContact() { - String url = String.format(URLEnum.WEB_WX_GET_CONTACT.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey())); - JSONArray member = new JSONArray(); - try { - - // 循环获取seq直到为0,即获取全部好友列表 ==0:好友获取完毕 >0:好友未获取完毕,此时seq为已获取的字节数 - Long seq = 0L; - do { - // 设置seq传参 - List params = new ArrayList<>(); - params.add(new BasicNameValuePair("r", String.valueOf(System.currentTimeMillis()))); - params.add(new BasicNameValuePair("seq", String.valueOf(seq))); - params.add(new BasicNameValuePair("skey", core.getLoginInfo().get(BaseParaEnum.Skey.value()).toString())); - HttpEntity entity = core.getMyHttpClient().doGet(url, params, false, getPersistentCookieMap()); - - String result = EntityUtils.toString(entity, Consts.UTF_8); - JSONObject fullFriendsJsonList = JSON.parseObject(result); - - if (fullFriendsJsonList.get("Seq") != null) { - seq = fullFriendsJsonList.getLong("Seq"); - } - - // 累加好友列表 - member.addAll(fullFriendsJsonList.getJSONArray(StorageLoginInfoEnum.MemberList.getKey())); - } while (seq > 0); - Iterator iterator = member.iterator(); - while (iterator.hasNext()) { - /** - * @see Member - */ - JSONObject o = (JSONObject) iterator.next(); - - String userName = o.getString("UserName"); - - if (StringUtils.isEmpty(userName)) { - LOG.error("{} 好友列表存在UserName空", core.getUniqueKey()); - continue; - } - /** - * 自己信息不添加 - */ - if (userName.equals(core.getUserName())) { - continue; - } - - /** - * 开头@@ => 群聊 - * 开头@ => VerifyFlag -> == 0 好友 - * -> != 0 公众号、服务号 - * 不含@开头(其他) => 特殊账号 - */ - - if (userName.startsWith("@@")) { - // 群聊 - CoreManage.addNewGroup(core, o); - - } else if (userName.startsWith("@")) { - Integer verifyFlag = o.getInteger("VerifyFlag"); - if (verifyFlag != null && verifyFlag == 0) { - // 好友 - CoreManage.addNewContact(core, o); - } else { - // 公众号 - core.getPublicUsersList().add(o); - } - } else { - // 特殊账号 - core.getSpecialUsersList().add(o); - } - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - return; - } - - /** - * 获取群和好友详细信息 - * 首次加载用 - */ - @Override - public void WebWxBatchGetContact() { - - Map paramMap = core.getParamMap(); - // 处理群成员信息 - int size = core.getGroupList().size(); - List> list = new ArrayList<>(); - for (int i = 0; i < size; i++) { - HashMap map = new HashMap<>(4); - map.put("UserName", core.getGroupList().get(i).getString("UserName")); - map.put("EncryChatRoomId", ""); - list.add(map); - } - // 处理玩家 - int sizeUser = core.getContactList().size(); - for (int i = 0; i < sizeUser; i++) { - HashMap map = new HashMap<>(4); - map.put("UserName", core.getContactList().get(i).getString("UserName")); - map.put("EncryChatRoomId", ""); - list.add(map); - } - - WebWxBatchGetContactMain(paramMap, list); - } - - /** - * 获取群和好友详细信息 - * 过程中零散查询 - */ - public void WebWxBatchGetContact(List userNameList) { - - if (CollectionUtil.isEmpty(userNameList)) { - return; - } - - String url = String.format(URLEnum.WEB_WX_BATCH_GET_CONTACT.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), System.currentTimeMillis(), - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - Map paramMap = core.getParamMap(); - // 为了获取群成员信息 - List> list = new ArrayList<>(); - int size = userNameList.size(); - for (int i = 0; i < size; i++) { - HashMap map = new HashMap<>(4); - map.put("UserName", userNameList.get(i)); - map.put("EncryChatRoomId", ""); - list.add(map); - } - WebWxBatchGetContactMain(paramMap, list); - } - - private void WebWxBatchGetContactMain(Map paramMap, List> list) { - - String url = String.format(URLEnum.WEB_WX_BATCH_GET_CONTACT.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), System.currentTimeMillis(), - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - - int totalSize = list.size(); - - int batchSize = 50; - int num = totalSize / batchSize; - if (totalSize % batchSize > 0) { - num += 1; - } - - for (int i = 0; i < num; i++) { - int startNum = i * batchSize; - int endNum = (i + 1) * batchSize; - if (endNum > totalSize) { - endNum = totalSize; - } - paramMap.put("Count", endNum - startNum); - paramMap.put("List", list.subList(startNum, endNum)); - HttpEntity entity = core.getMyHttpClient().doPost(url, JSON.toJSONString(paramMap), getPersistentCookieMap()); - try { - String text = EntityUtils.toString(entity, Consts.UTF_8); - JSONObject obj = JSON.parseObject(text); - JSONArray contactList = obj.getJSONArray("ContactList"); - int contactSize = contactList.size(); - if (contactSize > 0) { - for (int j = 0; j < contactSize; j++) { - String userName = contactList.getJSONObject(j).getString("UserName"); - if (userName.startsWith("@@")) { - CoreManage.addNewGroup(core, contactList.getJSONObject(j)); - } else if (userName.startsWith("@")) { - CoreManage.addNewContact(core, contactList.getJSONObject(j)); - } - } - } - } catch (Exception e) { - LOG.info(e.getMessage()); - } - } - } - - - /** - * 检查登陆状态 - * - * @param result - * @return - */ - public String checklogin(String result) { - String regEx = "window.code=(\\d+)"; - Matcher matcher = CommonTools.getMatcher(regEx, result); - if (matcher.find()) { - return matcher.group(1); - } - return null; - } - - /** - * 处理登陆信息 - * - * @param loginContent - * @author https://github.com/yaphone - * @date 2017年4月9日 下午12:16:26 - */ - private boolean processLoginInfo(String loginContent) { - String regEx = "window.redirect_uri=\"(\\S+)\";"; - Matcher matcher = CommonTools.getMatcher(regEx, loginContent); - if (matcher.find()) { - String originalUrl = matcher.group(1); - String url = originalUrl.substring(0, originalUrl.lastIndexOf('/')); - core.getLoginInfo().put("url", url); - Map> possibleUrlMap = this.getPossibleUrlMap(); - Iterator>> iterator = possibleUrlMap.entrySet().iterator(); - Entry> entry; - String fileUrl; - String syncUrl; - while (iterator.hasNext()) { - entry = iterator.next(); - String indexUrl = entry.getKey(); - fileUrl = "https://" + entry.getValue().get(0) + "/cgi-bin/mmwebwx-bin"; - syncUrl = "https://" + entry.getValue().get(1) + "/cgi-bin/mmwebwx-bin"; - if (core.getLoginInfo().get("url").toString().contains(indexUrl)) { - core.setIndexUrl(indexUrl); - core.getLoginInfo().put("fileUrl", fileUrl); - core.getLoginInfo().put("syncUrl", syncUrl); - break; - } - } - if (core.getLoginInfo().get("fileUrl") == null && core.getLoginInfo().get("syncUrl") == null) { - core.getLoginInfo().put("fileUrl", url); - core.getLoginInfo().put("syncUrl", url); - } - core.getLoginInfo().put("deviceid", "e" + String.valueOf(new Random().nextLong()).substring(1, 16)); // 生成15位随机数 - core.getLoginInfo().put("BaseRequest", new ArrayList()); - String text = ""; - - try { - Map header = new HashMap<>(); - header.put("client-version", "2.0.0"); - header.put("extspam", "Go8FCIkFEokFCggwMDAwMDAwMRAGGvAESySibk50w5Wb3uTl2c2h64jVVrV7gNs06GFlWplHQbY/5FfiO++1yH4ykCyNPWKXmco+wfQzK5R98D3so7rJ5LmGFvBLjGceleySrc3SOf2Pc1gVehzJgODeS0lDL3/I/0S2SSE98YgKleq6Uqx6ndTy9yaL9qFxJL7eiA/R3SEfTaW1SBoSITIu+EEkXff+Pv8NHOk7N57rcGk1w0ZzRrQDkXTOXFN2iHYIzAAZPIOY45Lsh+A4slpgnDiaOvRtlQYCt97nmPLuTipOJ8Qc5pM7ZsOsAPPrCQL7nK0I7aPrFDF0q4ziUUKettzW8MrAaiVfmbD1/VkmLNVqqZVvBCtRblXb5FHmtS8FxnqCzYP4WFvz3T0TcrOqwLX1M/DQvcHaGGw0B0y4bZMs7lVScGBFxMj3vbFi2SRKbKhaitxHfYHAOAa0X7/MSS0RNAjdwoyGHeOepXOKY+h3iHeqCvgOH6LOifdHf/1aaZNwSkGotYnYScW8Yx63LnSwba7+hESrtPa/huRmB9KWvMCKbDThL/nne14hnL277EDCSocPu3rOSYjuB9gKSOdVmWsj9Dxb/iZIe+S6AiG29Esm+/eUacSba0k8wn5HhHg9d4tIcixrxveflc8vi2/wNQGVFNsGO6tB5WF0xf/plngOvQ1/ivGV/C1Qpdhzznh0ExAVJ6dwzNg7qIEBaw+BzTJTUuRcPk92Sn6QDn2Pu3mpONaEumacjW4w6ipPnPw+g2TfywJjeEcpSZaP4Q3YV5HG8D6UjWA4GSkBKculWpdCMadx0usMomsSS/74QgpYqcPkmamB4nVv1JxczYITIqItIKjD35IGKAUwAA=="); - originalUrl = originalUrl + "&fun=new&version=v2&mod=desktop&lang=zh_CN"; - HttpEntity entity = core.getMyHttpClient().doGet(originalUrl, null, false, header); - text = EntityUtils.toString(entity); - } catch (Exception e) { - LOG.info(e.getMessage()); - return false; - } - //add by 默非默 2017-08-01 22:28:09 - //如果登录被禁止时,则登录返回的message内容不为空,下面代码则判断登录内容是否为空,不为空则退出程序 - String msg = getLoginMessage(text); - if (!"".equals(msg)) { - LOG.info(msg); -// System.exit(0); - return false; - } - Document doc = CommonTools.xmlParser(text); - if (doc != null) { - core.getLoginInfo().put(StorageLoginInfoEnum.skey.getKey(), - doc.getElementsByTagName(StorageLoginInfoEnum.skey.getKey()).item(0).getFirstChild() - .getNodeValue()); - core.getLoginInfo().put(StorageLoginInfoEnum.wxsid.getKey(), - doc.getElementsByTagName(StorageLoginInfoEnum.wxsid.getKey()).item(0).getFirstChild() - .getNodeValue()); - core.getLoginInfo().put(StorageLoginInfoEnum.wxuin.getKey(), - doc.getElementsByTagName(StorageLoginInfoEnum.wxuin.getKey()).item(0).getFirstChild() - .getNodeValue()); - core.getLoginInfo().put(StorageLoginInfoEnum.pass_ticket.getKey(), - doc.getElementsByTagName(StorageLoginInfoEnum.pass_ticket.getKey()).item(0).getFirstChild() - .getNodeValue()); - } - - } - return true; - } - - private Map> getPossibleUrlMap() { - Map> possibleUrlMap = new HashMap>(); - possibleUrlMap.put("wx.qq.com", new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add("file.wx.qq.com"); - add("webpush.wx.qq.com"); - } - }); - - possibleUrlMap.put("wx2.qq.com", new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add("file.wx2.qq.com"); - add("webpush.wx2.qq.com"); - } - }); - possibleUrlMap.put("wx8.qq.com", new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add("file.wx8.qq.com"); - add("webpush.wx8.qq.com"); - } - }); - - possibleUrlMap.put("web2.wechat.com", new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add("file.web2.wechat.com"); - add("webpush.web2.wechat.com"); - } - }); - possibleUrlMap.put("wechat.com", new ArrayList() { - /** - * - */ - private static final long serialVersionUID = 1L; - - { - add("file.web.wechat.com"); - add("webpush.web.wechat.com"); - } - }); - return possibleUrlMap; - } - - /** - * 同步消息 sync the messages - * - * @return - * @author https://github.com/yaphone - * @date 2017年5月12日 上午12:24:55 - */ - private JSONObject webWxSync() { - JSONObject result = null; - String url = String.format(URLEnum.WEB_WX_SYNC_URL.getUrl(), - core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), - core.getLoginInfo().get(StorageLoginInfoEnum.wxsid.getKey()), - core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey()), - core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); - Map paramMap = core.getParamMap(); - paramMap.put(StorageLoginInfoEnum.SyncKey.getKey(), - core.getLoginInfo().get(StorageLoginInfoEnum.SyncKey.getKey())); - paramMap.put("rr", -System.currentTimeMillis() / 1000); - String paramStr = JSON.toJSONString(paramMap); - try { - HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr, getPersistentCookieMap()); - String text = EntityUtils.toString(entity, Consts.UTF_8); - JSONObject obj = JSON.parseObject(text); - if (obj.getJSONObject("BaseResponse").getInteger("Ret") != 0) { - result = null; - } else { - result = obj; - core.getLoginInfo().put(StorageLoginInfoEnum.SyncKey.getKey(), obj.getJSONObject("SyncCheckKey")); - JSONArray syncArray = obj.getJSONObject(StorageLoginInfoEnum.SyncKey.getKey()).getJSONArray("List"); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < syncArray.size(); i++) { - sb.append(syncArray.getJSONObject(i).getString("Key") + "_" - + syncArray.getJSONObject(i).getString("Val") + "|"); - } - String synckey = sb.toString(); - /** - * 随着每次获取最新消息(参见9)后的返回值更新,其目的在于每次同步消息后记录一个当前同步的状态 - */ - core.getLoginInfo().put(StorageLoginInfoEnum.synckey.getKey(), - synckey.substring(0, synckey.length() - 1));// 1_656161336|2_656161626|3_656161313|11_656159955|13_656120033|201_1492273724|1000_1492265953|1001_1492250432|1004_1491805192 - } - } catch (Exception e) { - LOG.info(e.getMessage()); - } - return result; - - } - - /** - * 检查是否有新消息 check whether there's a message - * - * @return - * @author https://github.com/yaphone - * @date 2017年4月16日 上午11:11:34 - */ - private Map syncCheck() { - Map resultMap = new HashMap(); - // 组装请求URL和参数 - String url = core.getLoginInfo().get(StorageLoginInfoEnum.syncUrl.getKey()) + URLEnum.SYNC_CHECK_URL.getUrl(); - List params = new ArrayList(); - for (BaseParaEnum baseRequest : BaseParaEnum.values()) { - params.add(new BasicNameValuePair(baseRequest.para().toLowerCase(), - core.getLoginInfo().get(baseRequest.value()).toString())); - } - params.add(new BasicNameValuePair("r", String.valueOf(System.currentTimeMillis()))); - params.add(new BasicNameValuePair("synckey", (String) core.getLoginInfo().get("synckey"))); - params.add(new BasicNameValuePair("_", String.valueOf(System.currentTimeMillis()))); - try { - HttpEntity entity = core.getMyHttpClient().doGet(url, params, true, getPersistentCookieMap()); - if (entity == null) { - resultMap.put("retcode", "9999"); - resultMap.put("selector", "9999"); - return resultMap; - } - String text = EntityUtils.toString(entity); - String regEx = "window.synccheck=\\{retcode:\"(\\d+)\",selector:\"(\\d+)\"\\}"; - Matcher matcher = CommonTools.getMatcher(regEx, text); - if (!matcher.find() || matcher.group(1).equals("2")) { - LOG.info(String.format("Unexpected sync check result: %s", text)); - } else { - resultMap.put("retcode", matcher.group(1)); - resultMap.put("selector", matcher.group(2)); - } - } catch (Exception e) { - e.printStackTrace(); - } - return resultMap; - } - - private Map getPersistentCookieMap() { - /** - * 以下部分确保cookie存在header中,重启时需要强制手动添加, - * TODO 不强制加重启会cookie失效,还不确定问题 - */ - String cookieStr = null; - if (core != null && core.getMyHttpClient() != null && core.getMyHttpClient().getCookieStore() != null) { - List cookies = core.getMyHttpClient().getCookieStore().getCookies(); - StringBuilder sb = new StringBuilder(); - if (CollectionUtil.isNotEmpty(cookies)) { - for (Cookie ck : cookies) { - sb.append(ck.getName()).append('=').append(ck.getValue()).append(';'); - } - cookieStr = sb.toString().substring(0, sb.toString().length() - 1); - } - - } - Map headerMap = null; - if (cookieStr != null) { - headerMap = new HashMap<>(6); - headerMap.put("Cookie", cookieStr); - } - /* ^-----------------------------------------------^ */ - return headerMap; - } - - /** - * 解析登录返回的消息,如果成功登录,则message为空 - * - * @param result - * @return - */ - public String getLoginMessage(String result) { - String[] strArr = result.split(""); - String[] rs = strArr[1].split(""); - if (rs != null && rs.length > 1) { - return rs[0]; - } - return ""; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java deleted file mode 100644 index af88ac30..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils; - -import org.ruoyi.common.wechat.itchat4j.utils.enums.OsNameEnum; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; - -/** - * 配置信息 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月23日 下午2:26:21 - * @version 1.0 - * - */ -public class Config { - - public static final String API_WXAPPID = "API_WXAPPID"; - - public static final String picDir = "D://org.ruoyi.common.wechat"; - public static final String VERSION = "1.2.18"; - public static final String BASE_URL = "https://login.weixin.qq.com"; - public static final String OS = ""; - public static final String DIR = ""; - public static final String DEFAULT_QR = "QR.jpg"; - public static final String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"; - - /** - * 仅仅用于参考 - */ - @Deprecated - public static final ArrayList API_SPECIAL_USER = new ArrayList(Arrays.asList("filehelper", "weibo", - "qqmail", "fmessage", "tmessage", "qmessage", "qqsync", "floatbottle", "lbsapp", "shakeapp", "medianote", - "qqfriend", "readerapp", "blogapp", "facebookapp", "masssendapp", "meishiapp", "feedsapp", "voip", - "blogappweixin", "brandsessionholder", "weixin", "weixinreminder", "officialaccounts", "wxitil", - "notification_messages", "wxid_novlwrv3lqwv11", "gh_22b87fa7cb3c", "userexperience_alarm")); - - /** - * 获取文件目录 - * - * @author https://github.com/yaphone - * @date 2017年4月8日 下午10:27:42 - * @return - */ - public static String getLocalPath() { - String localPath = null; - try { - localPath = new File("").getCanonicalPath(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return localPath; - } - - /** - * 获取系统平台 - * - * @author https://github.com/yaphone - * @date 2017年4月8日 下午10:27:53 - */ - public static OsNameEnum getOsNameEnum() { - String os = System.getProperty("os.name").toUpperCase(); - if (os.indexOf(OsNameEnum.DARWIN.toString()) >= 0) { - return OsNameEnum.DARWIN; - } else if (os.indexOf(OsNameEnum.WINDOWS.toString()) >= 0) { - return OsNameEnum.WINDOWS; - } else if (os.indexOf(OsNameEnum.LINUX.toString()) >= 0) { - return OsNameEnum.LINUX; - } else if (os.indexOf(OsNameEnum.MAC.toString()) >= 0) { - return OsNameEnum.MAC; - } - return OsNameEnum.OTHER; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java deleted file mode 100644 index 95bd1166..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils; - -/** - * 常量 - * - * @author https=//github.com/yaphone - * @date 创建时间:2017年5月5日 下午11=29=04 - * @version 1.0 - * - */ -public class ConstantConfigEnum { - public static final int APPMSGTYPE_TEXT = 1; - public static final int APPMSGTYPE_IMG = 2; - public static final int APPMSGTYPE_AUDIO = 3; - public static final int APPMSGTYPE_VIDEO = 4; - public static final int APPMSGTYPE_URL = 5; - public static final int APPMSGTYPE_ATTACH = 6; - public static final int APPMSGTYPE_OPEN = 7; - public static final int APPMSGTYPE_EMOJI = 8; - public static final int APPMSGTYPE_VOICE_REMIND = 9; - public static final int APPMSGTYPE_SCAN_GOOD = 10; - public static final int APPMSGTYPE_GOOD = 13; - public static final int APPMSGTYPE_EMOTION = 15; - public static final int APPMSGTYPE_CARD_TICKET = 16; - public static final int APPMSGTYPE_REALTIME_SHARE_LOCATION = 17; - // public static final int APPMSGTYPE_TRANSFERS = 2e3; - public static final int APPMSGTYPE_RED_ENVELOPES = 2001; - public static final int APPMSGTYPE_READER_TYPE = 100001; - public static final int UPLOAD_MEDIA_TYPE_IMAGE = 1; - public static final int UPLOAD_MEDIA_TYPE_VIDEO = 2; - public static final int UPLOAD_MEDIA_TYPE_AUDIO = 3; - public static final int UPLOAD_MEDIA_TYPE_ATTACHMENT = 4; - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java deleted file mode 100644 index 176c2793..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 公共日志接口 - * @author WesleyOne - * @create 2018/12/12 - */ -public interface LogInterface { - public final Logger LOG = LoggerFactory.getLogger("WXROBLOG"); -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java deleted file mode 100644 index 88d125cb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils; - -/** - * @author WesleyOne - * @create 2018/12/19 - */ -public class MoreConfig { - - //存储群聊成员ID的键标识 - public static final String SEND_MEMBER_ID = "sendMemberId"; - public static final String SEND_MEMBER_NICKNAMW = "memberNickname"; -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java deleted file mode 100644 index bff19010..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils; - -/** - * Created by xiaoxiaomo on 2017/5/6. - */ -public class SleepUtils { - - /** - * 毫秒为单位 - * @param time - */ - public static void sleep( long time ){ - try { - Thread.sleep( time ); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java deleted file mode 100644 index b8a5f239..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; - -/** - * 消息类型 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月23日 下午12:15:00 - * @version 1.0 - * - */ -public enum MsgCodeEnum { - - MSGTYPE_TEXT(1, "文本消息"), - MSGTYPE_IMAGE(3, "图片消息"), - MSGTYPE_VOICE(34, "语音消息"), - MSGTYPE_VERIFYMSG(37, "好友请求"), - MSGTYPE_POSSIBLEFRIEND_MSG(40, "POSSIBLEFRIEND_MSG"), - MSGTYPE_SHARECARD(42, "分享名片"), - MSGTYPE_VIDEO(43, "视频消息"), - MSGTYPE_EMOTICON(47, "表情消息"), - MSGTYPE_LOCATION(48, "位置消息"), - MSGTYPE_MEDIA(49, "分享链接"), - MSGTYPE_VOIPMSG(50, "VOIPMSG"), - MSGTYPE_STATUSNOTIFY(51, "状态通知"), - MSGTYPE_VOIPNOTIFY(52, "VOIPNOTIFY"), - MSGTYPE_VOIPINVITE(53, "VOIPINVITE"), - MSGTYPE_MICROVIDEO(62, "短视频消息"), - MSGTYPE_SYSNOTICE(9999, "SYSNOTICE"), - MSGTYPE_SYS(10000, "系统消息"), - MSGTYPE_RECALLED(10002, "撤回消息") - - ; - - private static final Map lookup = new HashMap<>(); - static { - for (MsgCodeEnum s : EnumSet.allOf(MsgCodeEnum.class)){ - lookup.put(s.getCode(), s); - } - } - public static MsgCodeEnum fromCode(int code) { - return lookup.get(code); - } - - private int code; - private String type; - - MsgCodeEnum(int code, String type) { - this.code = code; - this.type = type; - } - - public int getCode() { - return code; - } - - public String getType() { - return type; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java deleted file mode 100644 index 66c0907a..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - - -/** - * 消息类型枚举类 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年5月13日 下午11:53:00 - * @version 1.0 - * - */ -public enum MsgTypeEnum { - TEXT("Text", "文本消息"), - MAP("MAP", "地理位置"), - PIC("Pic", "图片消息"), - VOICE("Voice", "语音消息"), - VIEDO("Viedo", "小视频消息"), - NAMECARD("NameCard", "名片消息"), - SYS("Sys", "系统消息"), - VERIFYMSG("VerifyMsg", "添加好友"), - - // 地址分享 - MEDIA("app", "文件消息"); - - private String type; - private String code; - - MsgTypeEnum(String type, String code) { - this.type = type; - this.code = code; - } - - public String getType() { - return type; - } - - public String getCode() { - return code; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java deleted file mode 100644 index 0272d76e..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -/** - * 系统平台 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月8日 下午10:36:28 - * @version 1.0 - * - */ -public enum OsNameEnum { - WINDOWS, LINUX, DARWIN, MAC, OTHER -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java deleted file mode 100644 index 8c4cdaa3..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -import lombok.Getter; - -/** - * 返回结构枚举类 - *

- * Created by xiaoxiaomo on 2017/5/6. - */ -@Getter -public enum ResultEnum { - - SUCCESS("200", "成功"), - WAIT_CONFIRM("201", "请在手机上点击确认"), - WAIT_SCAN("400", "请扫描二维码"); - - - private final String code; - private final String msg; - - ResultEnum(String code, String msg) { - this.code = code; - this.msg = msg; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java deleted file mode 100644 index e4628f2e..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; - - -public enum RetCodeEnum { - - UNKOWN("9999", "未知"), - SUCCESS("0", "成功"), - TICKET_ERROR("-14", "ticket错误"), - PARAM_ERROR("1", "传入参数错误"), - NOT_LOGIN_WARN("1100", "未登录提示"), - NOT_LOGIN_CHECK("1101", "未检测到登录"), - COOKIE_INVALID_ERROR("1102", "cookie值无效"), - LOGIN_ENV_ERROR("1203", "当前登录环境异常,为了安全起见请不要在web端进行登录"), - TOO_OFEN("1205", "操作频繁") - ; - - private static final Map lookup = new HashMap(); - static { - for (RetCodeEnum s : EnumSet.allOf(RetCodeEnum.class)){ - lookup.put(s.getCode(), s); - } - } - public static RetCodeEnum fromCode(String code) { - return lookup.get(code); - } - - private String code; - private String type; - - RetCodeEnum(String code, String type) { - this.code = code; - this.type = type; - } - - public String getCode() { - return code; - } - - public String getType() { - return type; - } - - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java deleted file mode 100644 index 99b3048d..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; - -/** - * @author WesleyOne - * @create 2018/12/21 - */ -public enum SelectorEnum { - - - UNKOWN("9999", "未知"), - NORMAL("0", "正常"), - NEW_MSG("2", "有新消息"), - SELECTOR_3("3", "访问频繁#"), - MOD_CONTACT("4", "有人修改了自己的昵称或你修改了别人的备注"), - ADD_OR_DEL_CONTACT("6", "存在删除或者新增的好友信息"), - ENTER_OR_LEAVE_CHAT("7", "进入或离开聊天界面"); - - private static final Map lookup = new HashMap<>(); - static { - for (SelectorEnum s : EnumSet.allOf(SelectorEnum.class)) { - lookup.put(s.getCode(), s); - } - } - public static SelectorEnum fromCode(String code) { - return lookup.get(code); - } - - private String code; - private String type; - - SelectorEnum(String code, String type) { - this.code = code; - this.type = type; - } - - public String getCode() { - return code; - } - - public String getType() { - return type; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java deleted file mode 100644 index 4a424365..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -import com.jfinal.plugin.activerecord.Record; - -import java.util.*; -/** - * 发送类型 - * @author WesleyOne - * @create 2018/12/14 - */ -public enum SendMsgType { - - IMG("IMG","图片"), - FILE("FILE","文件"), - TEXT("TEXT","纯文本") - ; - - private String value; - private String name; - - SendMsgType(String value, String name) { - this.value = value; - this.name = name; - } - - - private static final Map lookup = new HashMap<>(); - public static List LIST_KV = new ArrayList<>(); - static { - for (SendMsgType s : EnumSet.allOf(SendMsgType.class)){ - lookup.put(s.toValue(), s); - LIST_KV.add(new Record().set("v",s.toValue()).set("n",s.toName())); - } - } - - - /** - * 获取枚举的值(整数值、字符串值等) - * @return - */ - public String toValue() { - return this.value; - } - - public String toName() { - return this.name; - } - - - /** - * 根据值(整数值、字符串值等)获取相应的枚举类型 - * @param value - * @return - */ - public static SendMsgType fromValue(String value) { - return lookup.get(value); - } - - public boolean equal(SendMsgType type){ - if (type != null && this.toValue().equals(type.toValue())){ - return true; - } - return false; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java deleted file mode 100644 index a9722ee0..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; - -/** - * Created by xiaoxiaomo on 2017/5/7. - */ -public enum StorageLoginInfoEnum { - - //URL - url("url",new String()), - fileUrl("fileUrl",new String()), - syncUrl("syncUrl",new String()), - //生成15位随机数 - deviceid("deviceid",new String()), - - //baseRequest - skey("skey",new String()), - wxsid("wxsid",new String()), - wxuin("wxuin",new String()), - pass_ticket("pass_ticket",new String()), - - - InviteStartCount("InviteStartCount",new Integer(0)), - // 登录用户登录时信息 - User("User",new JSONObject()), - SyncKey("SyncKey",new JSONObject()), - synckey("synckey",new String()), - - - - MemberCount("MemberCount",new String()), - MemberList("MemberList",new JSONArray()), - - - - ; - - private String key; - private Object type; - - StorageLoginInfoEnum(String key, Object type) { - this.key = key; - this.type = type; - } - - public String getKey() { - return key; - } - - - public Object getType() { - return type; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java deleted file mode 100644 index 2f713c12..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -/** - * URL - * Created by xiaoxiaomo on 2017/5/6. - */ -public enum URLEnum { - - - - BASE_URL("https://login.weixin.qq.com","基本的URL"), - UUID_URL(BASE_URL.url+"/jslogin","UUIDLURL"), - QRCODE_URL(BASE_URL.url+"/qrcode/","初始化URL"), - STATUS_NOTIFY_URL(BASE_URL.url+"/webwxstatusnotify?lang=zh_CN&pass_ticket=%s","微信状态通知"), - LOGIN_URL(BASE_URL.url+"/cgi-bin/mmwebwx-bin/login","登陆URL"), - INIT_URL("%s/webwxinit?r=%s&pass_ticket=%s","初始化URL"), - SYNC_CHECK_URL("/synccheck","检查心跳URL"), - WEB_WX_SYNC_URL("%s/webwxsync?sid=%s&skey=%s&pass_ticket=%s&lang=zh_CN","web微信消息同步URL"), - WEB_WX_GET_CONTACT("%s/webwxgetcontact","web微信获取联系人信息URL"), - WEB_WX_SEND_MSG("%s/webwxsendmsg","发送消息URL"), - WEB_WX_UPLOAD_MEDIA("%s/webwxuploadmedia?f=json", "上传文件到服务器"), - WEB_WX_GET_MSG_IMG("%s/webwxgetmsgimg", "下载图片消息"), - WEB_WX_GET_VOICE("%s/webwxgetvoice", "下载语音消息"), - WEB_WX_GET_VIEDO("%s/webwxgetvideo", "下载语音消息"), - WEB_WX_PUSH_LOGIN("%s/webwxpushloginurl", "不扫码登陆"), - WEB_WX_LOGOUT("%s/webwxlogout", "退出微信"), - WEB_WX_BATCH_GET_CONTACT("%s/webwxbatchgetcontact?type=ex&r=%s&lang=zh_CN&pass_ticket=%s", "查询群信息"), - WEB_WX_REMARKNAME("%s/webwxoplog?lang=zh_CN&pass_ticket=%s", "修改好友备注"), - WEB_WX_VERIFYUSER("%s/webwxverifyuser?r=%s&lang=zh_CN&pass_ticket=%s", "被动添加好友"), - WEB_WX_GET_MEDIA("%s/webwxgetmedia", "下载文件") - - - - - ; - - private String url; - private String msg; - - URLEnum(String url, String msg) { - this.url = url; - this.msg = msg; - } - - - public String getUrl() { - return url; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java deleted file mode 100644 index 8ff1ea1b..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums; - -/** - * 确认添加好友Enum - * - * @author https://github.com/yaphone - * @date 创建时间:2017年6月29日 下午9:47:14 - * @version 1.0 - * - */ -public enum VerifyFriendEnum { - - ADD(2, "添加"), - ACCEPT(3, "接受"); - - private int code; - private String desc; - - private VerifyFriendEnum(int code, String desc) { - this.code = code; - this.desc = desc; - } - - public int getCode() { - return code; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java deleted file mode 100644 index 7631ff37..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; - -/** - * - * 基本请求参数 - * 1. webWxInit 初始化 - * 2. wxStatusNotify 微信状态通知 - * - *

- * Created by xiaoxiaomo on 2017/5/7. - */ -public enum BaseParaEnum { - - Uin("Uin", "wxuin"), - Sid("Sid", "wxsid"), - Skey("Skey", "skey"), - DeviceID("DeviceID", "pass_ticket"); - - private String para; - private String value; - - BaseParaEnum(String para, String value) { - this.para = para; - this.value = value; - } - - public String para() { - return para; - } - - - public Object value() { - return value; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java deleted file mode 100644 index 507c87ef..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; - -/** - * 登陆 - *

- * Created by xiaoxiaomo on 2017/5/7. - */ -public enum LoginParaEnum { - - LOGIN_ICON("loginicon", "true"), - UUID("uuid", ""), - TIP("tip", "0"), - R("r", ""), - _1("_", ""); - - private String para; - private String value; - - LoginParaEnum(String para, String value) { - this.para = para; - this.value = value; - } - - public String para() { - return para; - } - - public String value() { - return value; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java deleted file mode 100644 index 6e105e63..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; - -/** - * 状态通知 - *

- * Created by xiaoxiaomo on 2017/5/7. - */ -public enum StatusNotifyParaEnum { - - CODE("Code", "3"), - FROM_USERNAME("FromUserName", ""), - TO_USERNAME("ToUserName", ""), - //时间戳 - CLIENT_MSG_ID("ClientMsgId", ""); - - private String para; - private String value; - - StatusNotifyParaEnum(String para, String value) { - this.para = para; - this.value = value; - } - - public String para() { - return para; - } - - public String value() { - return value; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java deleted file mode 100644 index 5d002587..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; - -/** - * UUID - *

- * Created by xiaoxiaomo on 2017/5/7. - */ -public enum UUIDParaEnum { - - APP_ID("appid", "wx782c26e4c19acffb"), - FUN("fun", "new"), - LANG("lang", "zh_CN"), - _1("_", "时间戳"); - - private String para; - private String value; - - UUIDParaEnum(String para, String value) { - this.para = para; - this.value = value; - } - - public String para() { - return para; - } - - public String value() { - return value; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java deleted file mode 100644 index 17b2aff8..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java +++ /dev/null @@ -1,301 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.tools; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.vdurmont.emoji.EmojiParser; -import org.ruoyi.common.wechat.itchat4j.utils.Config; -import org.ruoyi.common.wechat.itchat4j.utils.enums.OsNameEnum; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import java.io.StringReader; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * 常用工具类 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月8日 下午10:59:55 - * @version 1.0 - * - */ -public class CommonTools { - - public static boolean printQr(String qrPath) { - - switch (Config.getOsNameEnum()) { - case WINDOWS: - if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) { - Runtime runtime = Runtime.getRuntime(); - try { - runtime.exec("cmd /c start " + qrPath); - } catch (Exception e) { - e.printStackTrace(); - } - } - break; - case MAC: - if (Config.getOsNameEnum().equals(OsNameEnum.MAC)) { - Runtime runtime = Runtime.getRuntime(); - try { - runtime.exec("open " + qrPath); - } catch (Exception e) { - e.printStackTrace(); - } - } - break; - - default: - break; - } - return true; - } - - public static boolean clearScreen() { - switch (Config.getOsNameEnum()) { - case WINDOWS: - if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) { - Runtime runtime = Runtime.getRuntime(); - try { - runtime.exec("cmd /c " + "cls"); - } catch (Exception e) { - e.printStackTrace(); - } - } - break; - - default: - break; - } - return true; - } - - /** - * 正则表达式处理工具 - * - * @author https://github.com/yaphone - * @date 2017年4月9日 上午12:27:10 - * @return - */ - public static Matcher getMatcher(String regEx, String text) { - Pattern pattern = Pattern.compile(regEx); - Matcher matcher = pattern.matcher(text); - return matcher; - } - - /** - * xml解析器 - * - * @author https://github.com/yaphone - * @date 2017年4月9日 下午6:24:25 - * @param text - * @return - */ - public static Document xmlParser(String text) { - Document doc = null; - StringReader sr = new StringReader(text); - InputSource is = new InputSource(sr); - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - try { - DocumentBuilder builder = factory.newDocumentBuilder(); - doc = builder.parse(is); - } catch (Exception e) { - e.printStackTrace(); - } - return doc; - } - - public static JSONObject structFriendInfo(JSONObject userObj) { - Map friendInfoTemplate = new HashMap(); - friendInfoTemplate.put("UserName", ""); - friendInfoTemplate.put("City", ""); - friendInfoTemplate.put("DisplayName", ""); - friendInfoTemplate.put("PYQuanPin", ""); - friendInfoTemplate.put("RemarkPYInitial", ""); - friendInfoTemplate.put("Province", ""); - friendInfoTemplate.put("KeyWord", ""); - friendInfoTemplate.put("RemarkName", ""); - friendInfoTemplate.put("PYInitial", ""); - friendInfoTemplate.put("EncryChatRoomId", ""); - friendInfoTemplate.put("Alias", ""); - friendInfoTemplate.put("Signature", ""); - friendInfoTemplate.put("NickName", ""); - friendInfoTemplate.put("RemarkPYQuanPin", ""); - friendInfoTemplate.put("HeadImgUrl", ""); - - friendInfoTemplate.put("UniFriend", 0); - friendInfoTemplate.put("Sex", 0); - friendInfoTemplate.put("AppAccountFlag", 0); - friendInfoTemplate.put("VerifyFlag", 0); - friendInfoTemplate.put("ChatRoomId", 0); - friendInfoTemplate.put("HideInputBarFlag", 0); - friendInfoTemplate.put("AttrStatus", 0); - friendInfoTemplate.put("SnsFlag", 0); - friendInfoTemplate.put("MemberCount", 0); - friendInfoTemplate.put("OwnerUin", 0); - friendInfoTemplate.put("ContactFlag", 0); - friendInfoTemplate.put("Uin", 0); - friendInfoTemplate.put("StarFriend", 0); - friendInfoTemplate.put("Statues", 0); - - friendInfoTemplate.put("MemberList", new ArrayList()); - - JSONObject r = new JSONObject(); - Set keySet = friendInfoTemplate.keySet(); - for (String key : keySet) { - if (userObj.containsKey(key)) { - r.put(key, userObj.get(key)); - } else { - r.put(key, friendInfoTemplate.get(key)); - } - } - - return r; - } - - public static String getSynckey(JSONObject obj) { - JSONArray obj2 = obj.getJSONArray("List"); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < obj2.size(); i++) { - JSONObject obj3 = (JSONObject) JSON.toJSON(obj2.get(i)); - sb.append(obj3.get("Val") + "|"); - } - return sb.substring(0, sb.length() - 1); // 656159784|656159911|656159873|1491905341 - - } - - public static JSONObject searchDictList(List list, String key, String value) { - JSONObject r = null; - for (JSONObject i : list) { - if (i.getString(key).equals(value)) { - r = i; - break; - } - } - return r; - } - - /** - * 处理emoji表情 - * - * @author https://github.com/yaphone - * @date 2017年4月23日 下午2:39:04 - * @param d - * @param k - */ - public static void emojiFormatter(JSONObject d, String k) { -// Matcher matcher = getMatcher("", d.getString(k)); - Matcher matcher = getMatcher("", d.getString(k)); - StringBuilder sb = new StringBuilder(); - String content = d.getString(k); - int lastStart = 0; - while (matcher.find()) { - String str = matcher.group(1); - if (str.length() == 6) { - - } else if (str.length() == 10) { - - } else { - str = "&#x" + str + ";"; - String tmp = content.substring(lastStart, matcher.start()); - sb.append(tmp + str); - lastStart = matcher.end(); - } - } - if (lastStart < content.length()) { - sb.append(content.substring(lastStart)); - } - if (sb.length() != 0) { - d.put(k, EmojiParser.parseToUnicode(sb.toString())); - } else { - d.put(k, content); - } - - } - - /** - * 转化成alias - * @param d - * @param k - */ - public static void emojiFormatter2(JSONObject d, String k) { - Matcher matcher = getMatcher("", d.getString(k)); - StringBuilder sb = new StringBuilder(); - String content = d.getString(k); - int lastStart = 0; - while (matcher.find()) { - String str = matcher.group(1); - if (str.length() == 6) { - - } else if (str.length() == 10) { - - } else { - str = "&#x" + str + ";"; - String tmp = content.substring(lastStart, matcher.start()); - sb.append(tmp + str); - lastStart = matcher.end(); - } - } - if (lastStart < content.length()) { - sb.append(content.substring(lastStart)); - } - if (sb.length() != 0) { - d.put(k, EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString()))); - } else { - d.put(k, content); - } - - } - - /** - * 消息格式化 - * - * @author https://github.com/yaphone - * @date 2017年4月23日 下午4:19:08 - * @param d - * @param k - */ - public static void msgFormatter(JSONObject d, String k) { - d.put(k, d.getString(k).replace("
", "\n")); - emojiFormatter(d, k); - // TODO 与emoji表情有部分兼容问题,目前暂未处理解码处理 d.put(k, - // StringEscapeUtils.unescapeHtml4(d.getString(k))); - - } - - public static void main(String[] args) { - String str2 = "三生三世十三水"; - - Matcher matcher = getMatcher("", str2); - StringBuilder sb = new StringBuilder(); - String content = str2; - int lastStart = 0; - while (matcher.find()) { - String str = matcher.group(1); - if (str.length() == 6) { - - } else if (str.length() == 10) { - - } else { - str = "&#x" + str + ";"; - String tmp = content.substring(lastStart, matcher.start()); - sb.append(tmp + str); - lastStart = matcher.end(); - } - } - if (lastStart < content.length()) { - sb.append(content.substring(lastStart)); - } - if (sb.length() != 0) { - System.out.println(EmojiParser.parseToUnicode(sb.toString())); - System.out.println(EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString()))); - System.out.println(EmojiParser.removeAllEmojis(sb.toString())); - } - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java deleted file mode 100644 index 3b1f3600..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.ruoyi.common.wechat.itchat4j.utils.tools; - -import org.apache.http.HttpEntity; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; -import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; -import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgTypeEnum; -import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; - -import java.io.FileOutputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -/** - * 下载工具类 - * - * @author https://github.com/yaphone - * @date 创建时间:2017年4月21日 下午11:18:46 - * @version 1.0 - * - */ -public class DownloadTools implements LogInterface { - private static Logger logger = Logger.getLogger("UTILLOG"); - - /** - * 处理下载任务 - * - * @author https://github.com/yaphone - * @date 2017年4月21日 下午11:00:25 - * @param msg - * @param type - * @param path - * @return - */ - public static Object getDownloadFn(BaseMsg msg, String type, String path, String uniqueKey) { - Core core = CoreManage.getInstance(uniqueKey); - Map headerMap = new HashMap(); - List params = new ArrayList(); - String url = ""; - if (type.equals(MsgTypeEnum.PIC.getType())) { - url = String.format(URLEnum.WEB_WX_GET_MSG_IMG.getUrl(), (String) core.getLoginInfo().get("url")); - } else if (type.equals(MsgTypeEnum.VOICE.getType())) { - url = String.format(URLEnum.WEB_WX_GET_VOICE.getUrl(), (String) core.getLoginInfo().get("url")); - } else if (type.equals(MsgTypeEnum.VIEDO.getType())) { - headerMap.put("Range", "bytes=0-"); - url = String.format(URLEnum.WEB_WX_GET_VIEDO.getUrl(), (String) core.getLoginInfo().get("url")); - } else if (type.equals(MsgTypeEnum.MEDIA.getType())) { - headerMap.put("Range", "bytes=0-"); - url = String.format(URLEnum.WEB_WX_GET_MEDIA.getUrl(), (String) core.getLoginInfo().get("fileUrl")); - params.add(new BasicNameValuePair("sender", msg.getFromUserName())); - params.add(new BasicNameValuePair("mediaid", msg.getMediaId())); - params.add(new BasicNameValuePair("filename", msg.getFileName())); - } - params.add(new BasicNameValuePair("msgid", msg.getNewMsgId())); - params.add(new BasicNameValuePair("skey", (String) core.getLoginInfo().get("skey"))); - HttpEntity entity = core.getMyHttpClient().doGet(url, params, true, headerMap); - try { - OutputStream out = new FileOutputStream(path); - byte[] bytes = EntityUtils.toByteArray(entity); - out.write(bytes); - out.flush(); - out.close(); - } catch (Exception e) { - logger.info(e.getMessage()); - return false; - } - return null; - }; - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java deleted file mode 100644 index 22ec06c4..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ruoyi.common.wechat.web.annotation; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** - * 不检查登录 - */ -@Retention(RetentionPolicy.RUNTIME) -public @interface UnCheckLogin { -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java deleted file mode 100644 index 41c263cb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.ruoyi.common.wechat.web.base; - -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Map; - -/** - * 错误管理 - * @author WesleyOne - * @create 2018/7/28 - */ -public enum BaseError { - - UNPERMISSION("09","没有操作权限"), - UNLOGIN("01","未登录或登录过期"), - OPERATION_ERR("8899","操作失败!"), - NORMAL_ERR("8999","参数异常"), - SYSTEM_ERR("9999","系统异常"); - - - private String code; - private String msg; - BaseError(String code, String msg) { - this.code = code; - this.msg = msg; - } - - - private static final Map lookup = new HashMap(); - static { - for (BaseError s : EnumSet.allOf(BaseError.class)) - lookup.put(s.getMsg(), s); - } - - /** - * 获取枚举的值(整数值、字符串值等) - * @return - */ - public String getCode() { - return this.code; - } - - public String getMsg() { - return this.msg; - } - - - /** - * 根据值(整数值、字符串值等)获取相应的枚举类型 - * @param code - * @return - */ - public static BaseError fromValue(String code) { - return lookup.get(code); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java deleted file mode 100644 index aecd571b..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.ruoyi.common.wechat.web.base; - -import java.io.Serializable; - -/** - * 统一异常对象 - * @author WesleyOne - * @create 2018/7/28 - */ -public class BaseException extends Exception implements Serializable { - - private static final long serialVersionUID = 2007525058641283836L; - - private String code; - - public BaseException(String code, String msg) { - super(msg); - this.code = code; - - } - - public BaseException(BaseError baseError) { - super(baseError.getMsg()); - this.code = baseError.getCode(); - } - - public BaseException(String msg) { - super(msg); - this.code = BaseError.NORMAL_ERR.getCode(); - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java deleted file mode 100644 index c8468a4d..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.ruoyi.common.wechat.web.base; - -/** - * @author WesleyOne - * @create 2018/7/28 - */ -public class BaseResponse { - public static BaseResponse OK = new BaseResponse(); - - private String code = "00"; - private String message = "操作成功"; - - private T data; - public BaseResponse() { - } - - public BaseResponse(T data) { - this.data = data; - } - - public BaseResponse(String code, String message) { - this.code = code; - this.message = message; - } - - public static BaseResponse success(){ - return new BaseResponse(); - } - - public static BaseResponse success(Object o){ - return new BaseResponse(o); - } - - public static BaseResponse error(String code,String msg){ - BaseResponse r = new BaseResponse(); - r.setCode(code); - r.setMessage(msg); - return r; - } - public static BaseResponse error(BaseError baseError){ - BaseResponse r = new BaseResponse(); - r.setCode(baseError.getCode()); - r.setMessage(baseError.getMsg()); - return r; - } - - /** - * 未登录返回 - * @return - */ - public static BaseResponse unLogin(){ - BaseResponse r = new BaseResponse(); - r.setCode(BaseError.UNLOGIN.getCode()); - r.setMessage(BaseError.UNLOGIN.getMsg()); - return r; - } - - /** - * 无权限返回 - * @return - */ - public static BaseResponse unPermission(){ - BaseResponse r = new BaseResponse(); - r.setCode(BaseError.UNPERMISSION.getCode()); - r.setMessage(BaseError.UNPERMISSION.getMsg()); - return r; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java deleted file mode 100644 index a915d7ff..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.common.wechat.web.cache; - -import org.ruoyi.common.wechat.web.utils.LRUCache; - -import java.util.LinkedHashMap; - -/** - * 简单的本地会话存储 - * @author WesleyOne - * @create 2018/9/25 - */ -public class UserSession { - public static LinkedHashMap USERSESSION_CACHE = new LRUCache(64); - - public static void addUserSession(String username,String userSession){ - USERSESSION_CACHE.put(username,userSession); - } - - public static void delUserSession(String username){ - USERSESSION_CACHE.remove(username); - } - - public static boolean checkUserSession(String username,String userSession){ - String s = USERSESSION_CACHE.get(username); - if (userSession!=null&&userSession.equals(s)){ - return true; - } - return false; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java deleted file mode 100644 index 779f1a5b..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java +++ /dev/null @@ -1,153 +0,0 @@ -package org.ruoyi.common.wechat.web.common; - -import com.alibaba.druid.filter.stat.StatFilter; -import com.alibaba.druid.wall.WallFilter; -import com.jfinal.config.*; -import com.jfinal.json.FastJsonFactory; -import com.jfinal.kit.PropKit; -import com.jfinal.plugin.activerecord.ActiveRecordPlugin; -import com.jfinal.plugin.activerecord.dialect.MysqlDialect; -import com.jfinal.plugin.druid.DruidPlugin; -import com.jfinal.server.undertow.UndertowServer; -import com.jfinal.template.Engine; -import com.jfinal.template.source.ClassPathSourceFactory; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.web.constant.UploadConstant; -import org.ruoyi.common.wechat.web.interceptor.ExceptionInterceptor; -import org.ruoyi.common.wechat.web.model._MappingKit; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; - - -/** - * JFinal项目的核心配置 - * 详情查看官方文档 - * https://www.jfinal.com/doc - * - * @author WesleyOne - */ -public class MyConfig extends JFinalConfig { - - public final Logger LOG = LoggerFactory.getLogger(this.getClass()); - - public static void main(String[] args) { - UndertowServer.start(MyConfig.class, 8180, true); - } - - /** - * 配置常量 - */ - @Override - public void configConstant(Constants me) { - PropKit.use("appConfig.properties"); - me.setDevMode(PropKit.getBoolean("devMode", false)); - //上传的文件的最大50M - me.setMaxPostSize(10 * 1024 * 1024); - me.setEncoding("UTF-8"); - me.setJsonFactory(new FastJsonFactory()); - me.setError404View("/WEB-INF/templates/404.html"); - } - - /** - * 配置路由 - */ - @Override - public void configRoute(Routes me) { - me.add(new MyRoute()); - me.add(new OutRoute()); - } - - @Override - public void configEngine(Engine me) { - me.setDevMode(PropKit.use("appConfig.properties").getBoolean("devMode", false)); - me.addSharedFunction("/WEB-INF/templates/bs4temp/layout.html"); - me.addSharedObject("imgDomain" , UploadConstant.IMG_URL); - me.addSharedObject("filedomain" , UploadConstant.FILE_URL); - } - - /** - * 配置插件 - */ - @Override - public void configPlugin(Plugins me) { - // 配置 druid 数据库连接池插件 - DruidPlugin druidPlugin = createDruidPlugin(); - druidPlugin.addFilter(new StatFilter()); - WallFilter wall = new WallFilter(); - wall.setDbType("mysql"); - druidPlugin.addFilter(wall); - druidPlugin.setInitialSize(1); - me.add(druidPlugin); - - // 配置ActiveRecord插件 - ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin); - _MappingKit.mapping(arp); - arp.setDialect(new MysqlDialect()); - arp.setShowSql(PropKit.use("appConfig.properties").getBoolean("devMode", false)); - arp.getEngine().setSourceFactory(new ClassPathSourceFactory()); - me.add(arp); - } - - public static DruidPlugin createDruidPlugin() { - return new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim()); - } - /** - * 配置全局拦截器 - */ - @Override - public void configInterceptor(Interceptors me) { - me.add(new ExceptionInterceptor()); - } - - /** - * 配置处理器 - */ - @Override - public void configHandler(Handlers me) { - } - - @Override - public void afterJFinalStart() { - System.setProperty("jsse.enableSNIExtension", "false"); - // 检查文件夹(/热登录/下载根目录)是否存在 - checkFileExist(); - - // 热登陆操作 - CoreManage.reload(); - } - - @Override - public void beforeJFinalStop() { - CoreManage.persistence(); - } - - /** - * 检查文件夹(/热登录/下载根目录)是否存在 - */ - private void checkFileExist() { - String hotReloadDir = PropKit.get("hotReloadDir"); - String downloadPath = PropKit.get("download_path"); - String logPath = PropKit.get("log_path"); - File hotReloadFile = new File(hotReloadDir); - if (!hotReloadFile.exists()){ - if (!hotReloadFile.mkdirs()) { - LOG.error("热加载文件夹创建失败[{}]",hotReloadDir); - } - } - File downloadFile = new File(downloadPath); - if (!downloadFile.exists()){ - if (!downloadFile.mkdirs()) { - LOG.error("下载文件夹创建失败[{}]",downloadPath); - } - } - File logFile = new File(logPath); - if (!logFile.exists()){ - if (!logFile.mkdirs()) { - LOG.error("日志文件夹创建失败[{}]",logPath); - } - } - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java deleted file mode 100644 index b4b89fb3..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.common.wechat.web.common; - -import com.jfinal.config.Routes; -import org.ruoyi.common.wechat.web.controller.*; -import org.ruoyi.common.wechat.web.interceptor.VisitLogInterceptor; - -/** - * 管理后台路由统一管理 - * @author wesleyOne - */ -public class MyRoute extends Routes { - - - @Override - public void config() { - //设置视图根目录 - setBaseViewPath("/WEB-INF/templates"); - //设置拦截器,前面的先执行 - addInterceptor(new VisitLogInterceptor()); - //添加路由 - add("/", IndexController.class); - add("/rob",RobotController.class); - add("/robwk",RobotWorkController.class); - add("/relate",RelateController.class); - add("/kw",KeyWordController.class); - - add("/upload",UploadController.class); - add("/tool",ToolController.class); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java deleted file mode 100644 index 979389f7..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.common.wechat.web.common; - -import com.jfinal.config.Routes; -import org.ruoyi.common.wechat.web.controller.ExtendController; -import org.ruoyi.common.wechat.web.interceptor.VisitLogInterceptor4down; - -/** - * 对外路由统一管理 - * @author WesleyOne - * @create 2018/9/25 - */ -public class OutRoute extends Routes { - @Override - public void config() { - //设置视图根目录 - setBaseViewPath("/WEB-INF/templates"); - addInterceptor(new VisitLogInterceptor4down()); - //添加路由 - add("/ext", ExtendController.class); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java deleted file mode 100644 index 76577c4d..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.common.wechat.web.constant; - -/** - * @author WesleyOne - * @create 2018/12/13 - */ -public class ConfigKeys { - - /** - * 默认全局关键字回复用昵称,该字段超过16字符防止与用户昵称冲突 - * - * http://kf.qq.com/touch/wxappfaq/150910F322eY150910eIV32Q.html?platform=14 - * 微信昵称设置规则 - * 最多可设置16个汉字,可设置含有中文、英文、数字、符号组合的昵称,但不建议设置特殊字符。 - * 温馨提示:1个符号相当于一个汉字,2个数字/英文相当于1个汉字; - */ - public static final String DEAFAULT_KEYWORD = "默认全局关键字回复用昵称-请勿修改"; - public static final String DEAFAULT_WELCOME = "默认群欢迎新人用-请勿修改"; - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java deleted file mode 100644 index 3155faff..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.common.wechat.web.constant; - -import com.jfinal.kit.PathKit; - -import java.io.File; - -public class UploadConstant { - - public static final String IMG_FOLD = "img"; - public static final String FILE_FOLD = "file"; - - public static final String IMG_URL = "/"+IMG_FOLD+"/"; - public static final String FILE_URL = "/"+FILE_FOLD+"/"; - - public static final String IMG_PATH = PathKit.getWebRootPath()+ File.separator +IMG_FOLD; - public static final String FILE_PATH = PathKit.getWebRootPath()+ File.separator +FILE_FOLD; - public static final String IMG_PATH_SEP = IMG_PATH + File.separator; - public static final String FILE_PATH_SEP = FILE_PATH + File.separator; - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java deleted file mode 100644 index dcd0f4ed..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java +++ /dev/null @@ -1,125 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.web.model.WxRobRelation; -import org.ruoyi.common.wechat.web.utils.IpUtil; - -/** - * 对外接口 - * @author WesleyOne - * @create 2018/12/16 - */ -public class ExtendController extends _BaseController { - - - /** - * 对外通用规则发消息 - * 参数: - * ok 外接唯一码 - * msg 消息列表 - * 类型参考@see org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType - * TEXT 文本消息串 - * IMG 图片名串(需要后台-通用工具-上传获取) - * FILE 文件名串(需要后台-通用工具-上传获取) - * 例子: - * {"ok":"test123", - * "msg":[ - * {"type":"TEXT","body":"我是消息体"}, - * {"type":"IMG","body":"ty6yLk3X_1545142908614.jpg"}, - * {"type":"FILE","body":"ty6yLk3X_1545142537914.txt"}, - * ] - * } - * - * 说明: - * 发送顺序按照列表顺序从前往后发 - * - * 返回: - * 00 成功 - * 01 外接码不存在 - * 02 外接码失效 - * 03 IP未通过审核 - * - */ - public void sendMsg(){ - - JSONObject postParam = getPostParam(); - String outKey = postParam.getString("ok"); - String msgStr = postParam.getString("msg"); - JSONArray msgs = JSONArray.parseArray(msgStr); - - if (StringUtils.isEmpty(outKey)){ - setCode("01"); - setMsg("外接码不存在"); - renderJson(); - return; - } - - WxRobRelation relationRecord = WxRobRelation.dao.findFirst("SELECT * FROM wx_rob_relation WHERE out_key = ? LIMIT 1", outKey); - - /** - * 校验IP - * 1.配置空则拒绝所有 - * 2.存在0.0.0.0不校验 - */ - String whiteList = relationRecord.getWhiteList(); - if (StringUtils.isEmpty(whiteList) || !relationRecord.getEnable()){ - setCode("02"); - setMsg("外接码失效或未配置白名单"); - renderJson(); - return; - } - String allPassIp = "0.0.0.0"; - // 不是完全开放IP并且访问IP不存在 - if (!whiteList.contains(allPassIp)){ - String outRealIp = IpUtil.getRealIp(getRequest()); - if (!whiteList.contains(outRealIp)){ - setCode("03"); - setMsg("IP未通过审核"); - renderJson(); - return; - } - } - - String uniqueKey = relationRecord.getUniqueKey(); - // 查看机器是否加载完成 - if (!CoreManage.getInstance(uniqueKey).isAlive() || !CoreManage.getInstance(uniqueKey).isFinishInit()){ - setCode("05"); - setMsg("机器未准备完成"); - renderJson(); - return; - } - - - /** - * 添加到消息队列 - */ - Boolean toGroup = relationRecord.getToGroup(); - String nickName = relationRecord.getNickName(); - // 单次请求最大消息数 - int maxMessages = 10; - int msgLength = msgs.size(); - if (msgLength page = WxRobKeyword.dao.paginate(pageNum, rows, "select * ", - " from wx_rob_keyword "+where); - - setAttrs(buildPagination(page.getList(), page.getTotalRow())); - render(new JsonRender().forIE()); - } - - public void editIndex(){ - Integer kid = getParaToInt("kid"); - WxRobKeyword kwRecord; - boolean isEdit = true; - List groupNickNames = new ArrayList<>(); - if (kid != null){ - kwRecord = WxRobKeyword.dao.findById(kid); - }else{ - isEdit = false; - kwRecord = new WxRobKeyword(); - String uniqueKey = getPara("uk"); - if (StringUtils.isNotEmpty(uniqueKey)){ - kwRecord.setUniqueKey(uniqueKey); - groupNickNames.addAll(WechatTools.getGroupNickNameList(uniqueKey)); - } - // 默认显示文本 - kwRecord.setTypeData(KeyMsgValueType.TEXT.toValue()); - } - setAttr("isEdit",isEdit); - setAttr("form",kwRecord); - - setAttr("keys",KeyMsgValueType.LIST_KV); - setAttr("groupNickNames",groupNickNames); - renderTemplate("editIndex.html"); - } - - /** - * 新增修改 - */ - public void editKeyWord(){ - JSONObject postParam = getPostParam(); - Long id = postParam.getLong("kid"); - String uniqueKey = postParam.getString("uniqueKey"); - String keyData = postParam.getString("keyData"); - String valueData = postParam.getString("valueData"); - String nickName = postParam.getString("nickName"); - String typeData = postParam.getString("typeData"); - Boolean enable = postParam.getBoolean("enable"); - Boolean toGroup = postParam.getBoolean("toGroup"); - - WxRobKeyword editRecord = new WxRobKeyword(); - - if (StringUtils.isNotEmpty(keyData)){ - editRecord.setKeyData(keyData); - } - if (StringUtils.isNotEmpty(valueData)){ - editRecord.setValueData(valueData); - } - if (StringUtils.isNotEmpty(nickName)){ - editRecord.setNickName(nickName); - } - if (KeyMsgValueType.fromValue(typeData) != null){ - editRecord.setTypeData(typeData); - }else { - editRecord.setTypeData(KeyMsgValueType.TEXT.toValue()); - } - if (enable != null){ - editRecord.setEnable(enable); - } - if (toGroup != null){ - editRecord.setToGroup(toGroup); - } - - if (id != null){ - editRecord.setId(id); - boolean update = editRecord.update(); - if (update){ - setMsg("修改成功"); - }else{ - setOperateErr("修改失败"); - } - }else{ - // 校验 - editRecord.setUniqueKey(uniqueKey); - editRecord.setCreateTime(new Date()); - editRecord.setEnable(true); - if (vldParamNull(editRecord.getUniqueKey(),"唯一码不能为空")){ - return; - } - if (vldParamNull(editRecord.getKeyData(),"关键字不能为空")){ - return; - } - if (vldParamNull(editRecord.getValueData(),"内容不能为空")){ - return; - } - if (vldParamNull(editRecord.getTypeData(),"内容类型不能为空")){ - return; - } - if (vldParamNull(editRecord.getNickName(),"昵称不能为空")){ - return; - } - if (vldParamNull(editRecord.getToGroup(),"群聊好友未选择")){ - return; - } - boolean save = editRecord.save(); - if (save){ - setMsg("新增成功"); - }else{ - setOperateErr("新增失败"); - } - } - renderJson(); - } - - /** - * 删除关键字 - */ - public void delKeyWord(){ - - String kid = getPara("kid"); - boolean delete = WxRobKeyword.dao.deleteById(kid); - if (delete){ - setMsg("删除成功"); - }else{ - setOperateErr("删除失败"); - } - renderJson(); - } - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java deleted file mode 100644 index 139d2720..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import com.alibaba.fastjson.JSONObject; -import com.jfinal.plugin.activerecord.Page; -import com.jfinal.render.JsonRender; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -import org.ruoyi.common.wechat.web.model.WxRobRelation; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * TODO 关联配置 - * @author WesleyOne - * @create 2018/12/16 - */ -public class RelateController extends _BaseController { - - public void index(){ - String outKey = getPara("ok"); - if (StringUtils.isNotEmpty(outKey)){ - setAttr("search_ok",outKey); - } - String searchUk = getPara("uk"); - if (StringUtils.isNotEmpty(searchUk)){ - setAttr("search_uk",searchUk); - } - renderTemplate("index.html"); - } - - public void list(){ - int rows = getParaToInt("limit", 10); - int pageNum = getPageNum(getParaToInt("offset", 1), rows); - String outKey = getPara("outKey"); - String uniqueKey = getPara("uniqueKey"); - String nickName = getPara("nickName"); - Boolean enable = getParaToBoolean("enable"); - Boolean togrp = getParaToBoolean("togrp"); - - String where = " where 1=1 "; - if (StringUtils.isNotEmpty(outKey)) { - where += " and out_key = '" + outKey + "' "; - } - if (StringUtils.isNotEmpty(uniqueKey)){ - where += " and unique_key = '"+uniqueKey + "' "; - } - if (StringUtils.isNotEmpty(nickName)) { - where += " and nick_name LIKE '" + nickName + "%' "; - } - if (enable != null){ - where += " and enable = " + (enable?1:0); - } - if (togrp != null){ - where += " and to_group = " + (togrp?1:0); - } - - Page page = WxRobRelation.dao.paginate(pageNum, rows, "select * ", - " from wx_rob_relation "+where); - - setAttrs(buildPagination(page.getList(), page.getTotalRow())); - render(new JsonRender().forIE()); - } - - public void editIndex(){ - Integer kid = getParaToInt("kid"); - WxRobRelation wxRobRelation; - boolean isEdit = true; - List groupNickNames = new ArrayList<>(); - if (kid != null){ - wxRobRelation = WxRobRelation.dao.findById(kid); - }else{ - isEdit = false; - wxRobRelation = new WxRobRelation(); - String uniqueKey = getPara("uk"); - String nickName = getPara("nk"); - Boolean toGroup = getParaToBoolean("tgb"); - if (StringUtils.isNotEmpty(uniqueKey)){ - wxRobRelation.setUniqueKey(uniqueKey); - groupNickNames.addAll(WechatTools.getGroupNickNameList(uniqueKey)); - } - if (StringUtils.isNotEmpty(nickName)){ - wxRobRelation.setNickName(nickName); - } - if (toGroup != null){ - wxRobRelation.setToGroup(toGroup); - }else{ - wxRobRelation.setToGroup(true); - } - } - setAttr("isEdit",isEdit); - setAttr("form",wxRobRelation); - setAttr("groupNickNames",groupNickNames); - renderTemplate("editIndex.html"); - } - - /** - * 编辑外部id关联 - */ - public void editRelate(){ - JSONObject postParam = getPostParam(); - Long id = postParam.getLong("kid"); - String uniqueKey = postParam.getString("uniqueKey"); - String nickName = postParam.getString("nickName"); - String whiteList = postParam.getString("whiteList"); - Boolean enable = postParam.getBoolean("enable"); - Boolean toGroup = postParam.getBoolean("toGroup"); - - WxRobRelation editRecord = new WxRobRelation(); - - if (StringUtils.isNotEmpty(nickName)){ - editRecord.setNickName(nickName); - } - if (enable != null){ - editRecord.setEnable(enable); - } - if (toGroup != null){ - editRecord.setToGroup(toGroup); - } - if (StringUtils.isNotEmpty(whiteList)){ - editRecord.setWhiteList(whiteList); - } - - if (id != null){ - editRecord.setId(id); - boolean update = editRecord.update(); - if (update){ - setMsg("修改成功"); - }else{ - setOperateErr("修改失败"); - } - }else{ - // 校验 - editRecord.setUniqueKey(uniqueKey); - editRecord.setCreateTime(new Date()); - editRecord.setEnable(true); - if (vldParamNull(editRecord.getUniqueKey(),"唯一码不能为空")){ - return; - } - if (vldParamNull(editRecord.getNickName(),"昵称不能为空")){ - return; - } - if (vldParamNull(editRecord.getToGroup(),"群聊好友未选择")){ - return; - } - - boolean isSuccess = false; - int maxTime = 5; - while (!isSuccess && maxTime >0){ - String outKey = UUIDShortUtil.generateShortUuid(); - editRecord.setOutKey(outKey); - isSuccess = editRecord.save(); - maxTime--; - } - if (isSuccess){ - setMsg("新增成功"); - }else{ - setOperateErr("新增失败"); - } - } - renderJson(); - } - - /** - * 删除外部id关联 - */ - public void delRelate(){ - String kid = getPara("kid"); - boolean delete = WxRobRelation.dao.deleteById(kid); - if (delete){ - setMsg("删除成功"); - }else{ - setOperateErr("删除失败"); - } - renderJson(); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java deleted file mode 100644 index 56e122bc..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java +++ /dev/null @@ -1,223 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import cn.hutool.core.collection.CollectionUtil; -import com.alibaba.fastjson.JSONObject; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Page; -import com.jfinal.plugin.activerecord.Record; -import com.jfinal.render.JsonRender; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.wechat.itchat4j.core.Core; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.web.base.BaseException; -import org.ruoyi.common.wechat.web.model.WxRobConfig; -import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * 机器人相关管理接口 - * @author WesleyOne - * @create 2018/12/16 - */ -public class RobotController extends _BaseController { - - /** - * 机器人页面 - */ - public void index(){ - renderTemplate("index.html"); - } - - /** - * 机器人列表 - * 分页,搜索条件 - */ - public void list(){ - int rows = getParaToInt("limit", 10); - int pageNum = getPageNum(getParaToInt("offset", 1), rows); - String searchUniqueKey = getPara("uniqueKey"); - String remark = getPara("remark"); - Boolean enable = getParaToBoolean("enable"); - String where = " where 1=1 "; - if (StringUtils.isNotEmpty(searchUniqueKey)){ - where += " and unique_key = '"+searchUniqueKey + "' "; - } - if (StringUtils.isNotEmpty(remark)) { - where += " and remark like '" + remark + "%' "; - } - if (enable != null){ - where += " and enable = " + (enable?1:0); - } - - Page page = WxRobConfig.dao.paginate(pageNum, rows, "select * ", - " from wx_rob_config "+where); - //其他处理 - List dataList = page.getList(); - if (CollectionUtil.isNotEmpty(dataList)){ - for (WxRobConfig conf: dataList){ - // 获取机器人状态 - String uniqueKey = conf.getUniqueKey(); - conf.setActive(CoreManage.isActive(uniqueKey)); - } - } - - setAttrs(buildPagination(dataList, page.getTotalRow())); - render(new JsonRender().forIE()); - } - - /** - * 机器人页面 - */ - public void addIndex(){ - renderTemplate("addIndex.html"); - } - - /** - * 添加机器人 - */ - public void addRob(){ - JSONObject postParam = getPostParam(); - String remark = postParam.getString("remark"); - - if (vldParamNull(remark,"微信号不能为空")){ - return; - } - - Record remarkRecord = Db.findFirst("SELECT remark FROM wx_rob_config WHERE remark = ? LIMIT 1", remark); - if (vldParamNull(remarkRecord != null,"备注已存在")){ - return; - } - WxRobConfig bean = new WxRobConfig(); - bean.setRemark(remark) - .setCreateTime(new Date()) - .setUpdateTime(new Date()) - .setToFriend(false) - .setToGroup(true) - .setFromOut(false) - .setDefaultFriend(false) - .setDefaultGroup(false); - - boolean isSuccess = false; - int maxTime = 5; - while (!isSuccess && maxTime >0){ - String uniKey = UUIDShortUtil.generateShortUuid(); - bean.setUniqueKey(uniKey); - isSuccess = bean.save(); - maxTime--; - } - - if (!isSuccess){ - setOperateErr(); - }else{ - setData(bean); - } - renderJson(); - } - - /** - * 机器人启动禁止开关,发送群聊开关,发送好友开关,对外接口消息开关 - */ - public void change(){ - JSONObject postParam = getPostParam(); - Long id = postParam.getLong("rid"); - String type = postParam.getString("type"); - Boolean state = postParam.getBoolean("state"); - - if (id == null || StringUtils.isEmpty(type) || state == null){ - setOperateErr(); - renderJson(); - return; - } - - WxRobConfig config = new WxRobConfig(); - config.setId(id); - if ("enable".equals(type)){ - config.setEnable(state); - }else if ("tofrd".equals(type)){ - config.setToFriend(state); - }else if ("togrp".equals(type)){ - config.setToGroup(state); - }else if ("fromout".equals(type)) { - config.setFromOut(state); - }else if ("default_group".equals(type)){ - config.setDefaultGroup(state); - }else if ("default_friend".equals(type)){ - config.setDefaultFriend(state); - }else { - setOperateErr("非法操作"); - render(new JsonRender().forIE()); - return; - } - - config.setUpdateTime(new Date()); - boolean update = config.update(); - if (!update){ - setOperateErr(); - }else{ - setData(update); - } - renderJson(); - } - - /** - * 修改备注 - */ - public void changeRemark(){ - JSONObject postParam = getPostParam(); - Long id = postParam.getLong("rid"); - String remark = postParam.getString("remark"); - if (vldParamNull(id,"ID不能为空")){ - return; - } - if (vldParamNull(remark,"备注不能为空")){ - return; - } - - Record remarkRecord = Db.findFirst("SELECT remark FROM wx_rob_config WHERE remark = ? LIMIT 1", remark); - if (vldParamNull(remarkRecord != null,"备注已存在")){ - return; - } - WxRobConfig config = new WxRobConfig(); - config.setId(id); - config.setRemark(remark); - boolean update = config.update(); - if (!update){ - setOperateErr(); - }else{ - setData(update); - } - renderJson(); - } - - /** - * 发送页面 - */ - public void sendIndex() throws BaseException { - String uniqueKey = getUniqueKey(); - Core core = CoreManage.getInstance(uniqueKey); - List sourceSendList = new ArrayList<>(); - sourceSendList.addAll( core.getGroupList()); - sourceSendList.addAll( core.getContactList()); - List targetList = new ArrayList<>(); - JSONObject filehelper = new JSONObject(); - filehelper.put("UserName","filehelper"); - filehelper.put("NickName","文件传输助手"); - targetList.add(filehelper); - for (JSONObject jsonObject : sourceSendList) { - JSONObject newObject = new JSONObject(); - if (StringUtils.isEmpty(jsonObject.getString("NickName"))){ - continue; - } - newObject.put("NickName",jsonObject.getString("NickName")); - newObject.put("UserName",jsonObject.getString("UserName")); - targetList.add(newObject); - } - setAttr("uniqueKey",uniqueKey); - setAttr("targetList",targetList); - renderTemplate("sendIndex.html"); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java deleted file mode 100644 index 3fdcd5d5..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java +++ /dev/null @@ -1,179 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import com.alibaba.fastjson.JSONObject; -import org.ruoyi.common.wechat.itchat4j.api.WechatTools; -import org.ruoyi.common.wechat.itchat4j.controller.LoginController; -import org.ruoyi.common.wechat.itchat4j.core.CoreManage; -import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; -import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; -import org.ruoyi.common.wechat.web.base.BaseException; - -import java.io.IOException; -import java.util.List; - -/** - * @author WesleyOne - * @create 2018/12/16 - */ -public class RobotWorkController extends _BaseController { - - /** - * 获取状态 - * @throws BaseException - */ - public void getStatus() throws BaseException { - String uniqueKey = getUniqueKey(); - boolean wechatStatus = WechatTools.getWechatStatus(uniqueKey); - setData(wechatStatus); - renderJson(); - } - - /** - * 登录第一步,获取二维码链接 - * @throws BaseException - */ - public void getQr() throws BaseException, IOException { - String uniqueKey = getUniqueKey(); - LoginController login = new LoginController(uniqueKey); - String qrSrc = login.login_1(); - setData(qrSrc); - renderJson(); - } - - /** - * 登录第二步,确认登录状态 - * @throws BaseException - */ - public void login() throws BaseException { - String uniqueKey = getUniqueKey(); - LoginController login = new LoginController(uniqueKey); - boolean result = login.login_2(); - if (result){ - - }else{ - setOperateErr(); - } - renderJson(); - } - - /** - * 登录第三步,确认登录及初始化信息 - * @throws BaseException - */ - public void init() throws BaseException { - String uniqueKey = getUniqueKey(); - LoginController login = new LoginController(uniqueKey); - boolean loginResult = login.login_3(); - if (loginResult){ - setMsg("登录成功"); - }else{ - setMsg("登录失败,关闭二维码后重新打开"); - } - renderJson(); - } - - /** - * 退出 - * @throws BaseException - */ - public void logout() throws BaseException { - String uniqueKey = getUniqueKey(); - WechatTools.logout(uniqueKey); - renderJson(); - } - - /** - * 获取群昵称 - */ - public void getGroupNickNames() throws BaseException { - String uniqueKey = getUniqueKey(); - List groupNickNameList = WechatTools.getGroupNickNameList(uniqueKey); - setData(groupNickNameList); - renderJson(); - } - - /** - * 获取好友昵称 - */ - public void getContactNickNames() throws BaseException { - String uniqueKey = getUniqueKey(); - List contactNickNameList = WechatTools.getContactNickNameList(uniqueKey); - setData(contactNickNameList); - renderJson(); - } - - public void getGroups() throws BaseException { - String uniqueKey = getUniqueKey(); - List groupList = WechatTools.getGroupList(uniqueKey); - setData(groupList); - renderJson(); - } - - public void getContacts() throws BaseException { - String uniqueKey = getUniqueKey(); - List contactList = WechatTools.getContactList(uniqueKey); - setData(contactList); - renderJson(); - } - - public void getCore() throws BaseException { - String uniqueKey = getUniqueKey(); - setData(CoreManage.getInstance(uniqueKey)); - renderJson(); - } - - /** - * 强制刷新通讯录 - */ - public void gct() throws BaseException { - String uniqueKey = getUniqueKey(); - LoginServiceImpl loginService = new LoginServiceImpl(uniqueKey); - loginService.webWxGetContact(); - renderJson(); - } - - /** - * 刷新通讯录详情 - * @throws BaseException - */ - public void ggp() throws BaseException { - String uniqueKey = getUniqueKey(); - LoginServiceImpl loginService = new LoginServiceImpl(uniqueKey); - loginService.WebWxBatchGetContact(); - renderJson(); - } - - /** - * 重启 - * @throws BaseException - */ - public void reboot() throws BaseException { - String uniqueKey = getUniqueKey(); - LoginController login = new LoginController(uniqueKey); - boolean loginResult = login.reboot(); - setData(loginResult); - renderJson(); - } - - - /** - * 手动备份热登录信息 - */ - public void manualCopy(){ - CoreManage.persistence(); - renderJson(); - } - - public void testSend() throws BaseException { - - JSONObject postParam = getPostParam(); - String uniqueKey = postParam.getString("uniqueKey"); - String data = postParam.getString("valueData"); - String userName = postParam.getString("userName"); - String typeData = postParam.getString("typeData"); - - CoreManage.addSendMsg4UserName(uniqueKey,userName,data, SendMsgType.fromValue(typeData)); - renderJson(); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java deleted file mode 100644 index 904b378d..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -/** - * 通用工具 - * @author WesleyOne - * @create 2018/12/24 - */ -public class ToolController extends _BaseController { - - public void index(){ - renderTemplate("index.html"); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java deleted file mode 100644 index c694b758..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import com.jfinal.upload.UploadFile; -import org.ruoyi.common.wechat.web.constant.UploadConstant; - -import java.io.File; - -/** - * @author WesleyOne - * @create 2018/12/14 - */ -public class UploadController extends _BaseController { - - - public void img2local(){ - UploadFile file = getFile(); - - String fn = getPara("fn", ""); - String originalFileName = file.getOriginalFileName(); - int i = file.getOriginalFileName().lastIndexOf(".")+1; - String fileType = originalFileName.substring(i); - String fileName = fn + "_" + System.currentTimeMillis() + "." + fileType; - String newFilePath = UploadConstant.IMG_PATH+File.separator+fileName; - file.getFile().renameTo(new File(newFilePath)); - - setAttr("name",fileName); - - renderJson(); - } - - public void file2local(){ - UploadFile file = getFile(); - - String fn = getPara("fn", ""); - String originalFileName = file.getOriginalFileName(); - int i = file.getOriginalFileName().lastIndexOf(".")+1; - String fileType = originalFileName.substring(i); - String fileName = fn + "_" + System.currentTimeMillis() + "." + fileType; - String newFilePath = UploadConstant.FILE_PATH+File.separator+fileName; - file.getFile().renameTo(new File(newFilePath)); - - setAttr("name",fileName); - - renderJson(); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java deleted file mode 100644 index f1c5c216..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java +++ /dev/null @@ -1,199 +0,0 @@ -package org.ruoyi.common.wechat.web.controller; - -import com.alibaba.fastjson.JSONObject; -import com.jfinal.core.Controller; -import com.jfinal.core.NotAction; -import com.jfinal.kit.HttpKit; -import com.jfinal.kit.StrKit; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.common.wechat.web.base.BaseError; -import org.ruoyi.common.wechat.web.base.BaseException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.servlet.http.Cookie; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author WesleyOne - * @create 2018/7/27 - */ -public class _BaseController extends Controller { - - public final Logger LOG = LoggerFactory.getLogger(this.getClass()); - - - /** - * 通用验证 - * @param result true说明验证不通过 - * @param code - * @param errorMsg - */ - @NotAction - public boolean vldParam(boolean result, String code, String errorMsg){ - if (result){ - setAttr("code",code); - setAttr("message",errorMsg); - this.renderJson(); - return true; - } - return false; - } - - @NotAction - public boolean vldParam(boolean result, BaseError baseError){ - if (result){ - return vldParam(true,baseError.getCode(),baseError.getMsg()); - } - return false; - } - - @NotAction - public boolean vldParam(boolean result, String errMsg){ - if (result){ - return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); - } - return false; - } - - /** - * 参数非空判断 - * @param paramValue - * @param baseError - * @return - */ - @NotAction - public boolean vldParamNull(String paramValue, BaseError baseError){ - if (StrKit.isBlank(paramValue)) { - return vldParam(true,baseError.getCode(),baseError.getMsg()); - } - return false; - } - - @NotAction - public boolean vldParamNull(String paramValue, String errMsg){ - if (StrKit.isBlank(paramValue)) { - return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); - } - return false; - } - - /** - * 参数非空判断 - * @param paramValue - * @param baseError - * @return - */ - @NotAction - public boolean vldParamNull(Object paramValue, BaseError baseError){ - if (paramValue == null) { - return vldParam(true,baseError.getCode(),baseError.getMsg()); - } - return false; - } - - @NotAction - public boolean vldParamNull(Object paramValue, String errMsg){ - if (paramValue == null) { - return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); - } - return false; - } - - @NotAction - public void setData(Object o){ - this.setAttr("data",o); - } - @NotAction - public void setCount(Object o){ - this.setAttr("_count",o); - } - @NotAction - public void setCode(String code){ - this.setAttr("code",code); - } - @NotAction - public void setMsg(String msg){ - this.setAttr("message",msg); - } - @NotAction - public void setOperateErr(String msg){ - this.setAttr("code",BaseError.OPERATION_ERR.getCode()); - this.setAttr("message",msg); - } - @NotAction - public void setOperateErr(){ - this.setAttr("code",BaseError.OPERATION_ERR.getCode()); - this.setAttr("message",BaseError.OPERATION_ERR.getMsg()); - } - @NotAction - public void setDeleteErr(){ - this.setAttr("code",BaseError.OPERATION_ERR.getCode()); - this.setAttr("message",BaseError.OPERATION_ERR.getMsg()); - } - - @NotAction - public void addCookie(String key,String value,int second) { - Cookie cookie = new Cookie(key,value); - cookie.setMaxAge(second); - cookie.setPath("/"); - setCookie(cookie); - } - - @NotAction - public JSONObject getPostParam(){ - String jsonString= HttpKit.readData(getRequest()); - return JSONObject.parseObject(jsonString); - } - @NotAction - public String getUid(){ - return this.getCookie("uid"); - } - - /** - * 分页处理 - * @param list - * @param count - * @return - */ - @SuppressWarnings("rawtypes") - @NotAction - protected Map buildPagination(List list, Integer count) { - return buildPagination(list, count, null); - } - - @SuppressWarnings("rawtypes") - @NotAction - protected Map buildPagination(List list, Integer count, - List> footer) { - Map map = new HashMap(4); - map.put("total", count); - map.put("rows", list); - if (footer != null){ - map.put("footer", footer); - } - return map; - } - - @NotAction - protected static int getPageNum(int pageNum,int rows){ - int pageNumber = pageNum / rows + 1; - return pageNumber; - } - - /** - * 获取UniqueKey - * @return - */ - @NotAction - public String getUniqueKey() throws BaseException { - String uniqueKey = getPara("_ck", ""); - if (StringUtils.isEmpty(uniqueKey)){ - throw new BaseException("机器唯一码为空"); - } - return uniqueKey; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java deleted file mode 100644 index c28609e0..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.ruoyi.common.wechat.web.enums; - -import com.jfinal.plugin.activerecord.Record; - -import java.util.*; -public enum KeyMsgValueType { - - IMG("IMG", "图片"), - FILE("FILE", "文件"), - TEXT("TEXT", "纯文本"); - - private String value; - private String name; - - KeyMsgValueType(String value, String name) { - this.value = value; - this.name = name; - } - - private static final Map lookup = new HashMap<>(); - public static List LIST_KV = new ArrayList<>(); - - static { - for (KeyMsgValueType s : EnumSet.allOf(KeyMsgValueType.class)) { - lookup.put(s.toValue(), s); - LIST_KV.add(new Record().set("v", s.toValue()).set("n", s.toName())); - } - } - - public String toValue() { - return this.value; - } - - public String toName() { - return this.name; - } - - public static KeyMsgValueType fromValue(String value) { - return lookup.get(value); - } - - public boolean equal(KeyMsgValueType type) { - return type != null && this.toValue().equals(type.toValue()); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java deleted file mode 100644 index bbca0a71..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.ruoyi.common.wechat.web.interceptor; - -import com.jfinal.aop.Interceptor; -import com.jfinal.aop.Invocation; -import org.ruoyi.common.wechat.web.base.BaseError; -import org.ruoyi.common.wechat.web.base.BaseException; -import org.ruoyi.common.wechat.web.base.BaseResponse; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * 全局异常拦截 - * @author WesleyOne - * @create 2018/7/28 - */ -public class ExceptionInterceptor implements Interceptor { - - private static final Logger LOG = LoggerFactory.getLogger(ExceptionInterceptor.class); - - @Override - public void intercept(Invocation me) { - try { - me.getController().setAttr("code","00"); - me.getController().setAttr("message","操作成功"); - me.invoke(); - } - catch (Exception e) { - LOG.error(e.getMessage(),e); - BaseResponse resp = new BaseResponse(); - Throwable cause = e.getCause(); - String ajax = me.getController().getRequest().getHeader("X-Requested-With"); - //判断ajax请求还是页面请求 - if ("XMLHttpRequest".equals(ajax)){ - if (cause instanceof BaseException) { - resp.setCode(((BaseException) cause).getCode()); - resp.setMessage(cause.getMessage()); - } else{ - resp.setCode(BaseError.SYSTEM_ERR.getCode()); - resp.setMessage(BaseError.SYSTEM_ERR.getMsg()); - } - me.getController().renderJson(resp); - return; - }else{ - //默认系统500页面,添加第二个参数可自行添加500页面 - me.getController().renderError(500); - return; - } - - } - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java deleted file mode 100644 index 0b03c8f7..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.ruoyi.common.wechat.web.interceptor; - - -import com.jfinal.aop.Interceptor; -import com.jfinal.aop.Invocation; -import org.ruoyi.common.wechat.web.annotation.UnCheckLogin; -import org.ruoyi.common.wechat.web.cache.UserSession; -import org.ruoyi.common.wechat.web.utils.IpUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Method; - - -/** - * 管理后台操作日志 - * @author admin - */ -public class VisitLogInterceptor implements Interceptor { - public static final Logger LOG = LoggerFactory.getLogger(VisitLogInterceptor.class); - - @Override - public void intercept(Invocation inv) { - String requestUrl = inv.getActionKey(); - String uid = inv.getController().getCookie("uid"); - String sid = inv.getController().getCookie("sid"); - String ip = IpUtil.getRealIp(inv.getController().getRequest()); - LOG.info("{} - {} - {} 操作了 {}",ip,uid,sid,requestUrl); - - inv.getController().setAttr("active",inv.getController().getControllerKey()); - - //找到不需要登录的action - Class controllerClass = inv.getController().getClass(); - UnCheckLogin methodOwn = getControllerMethodUnLoginOwn(controllerClass, inv.getMethodName()); - if (methodOwn != null) { - LOG.info("不需要登录,requestUrl=" + requestUrl); - inv.invoke(); - return; - } - - boolean isLogin = UserSession.checkUserSession(uid,sid); - if (!isLogin){ - //未登入 - inv.getController().redirect("/login",false); - return; - } - - long start = System.currentTimeMillis(); - inv.invoke(); - long l = System.currentTimeMillis() - start; - if (l > 1000*2){ - LOG.warn("请求 {} ,连接时长 {} ms",requestUrl,l); - } - } - - //--------------以下是内部方法----------- - - private UnCheckLogin getControllerMethodUnLoginOwn(Class controllerClass, String methodName) { - for (Method method : controllerClass.getMethods()) { - if (methodName.equals(method.getName())) { - return getUnLogin(method); - } - } - return null; - } - - private UnCheckLogin getUnLogin(Method method) { - Annotation[] annotations = method.getAnnotations(); - for (Annotation annt : annotations) { - if (annt instanceof UnCheckLogin) { - UnCheckLogin own = (UnCheckLogin) annt; - return own; - } - } - return null; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java deleted file mode 100644 index 61d2ee16..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.ruoyi.common.wechat.web.interceptor; - -import com.jfinal.aop.Interceptor; -import com.jfinal.aop.Invocation; -import org.ruoyi.common.wechat.web.utils.IpUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 对外接口访问日志 - * @author WesleyOne - * @create 2018/9/25 - */ -public class VisitLogInterceptor4down implements Interceptor { - - public static final Logger LOG = LoggerFactory.getLogger(VisitLogInterceptor4down.class); - - @Override - public void intercept(Invocation inv) { - String ip = IpUtil.getRealIp(inv.getController().getRequest()); - StringBuffer requestURL = inv.getController().getRequest().getRequestURL(); - String queryString = inv.getController().getRequest().getQueryString(); - LOG.info("{} 操作了 {} {}",ip,requestURL,queryString); - inv.invoke(); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java deleted file mode 100644 index 280776ef..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.common.wechat.web.model; - -import org.ruoyi.common.wechat.web.model.base.BaseWxRobConfig; - -/** - * Generated by JFinal. - */ -@SuppressWarnings("serial") -public class WxRobConfig extends BaseWxRobConfig { - public static final WxRobConfig dao = new WxRobConfig().dao(); - - private boolean isActive; - - public boolean isActive() { - return isActive; - } - - public void setActive(boolean active) { - isActive = active; - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java deleted file mode 100644 index aceeac43..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ruoyi.common.wechat.web.model; - -import org.ruoyi.common.wechat.web.model.base.BaseWxRobKeyword; - -/** - * Generated by JFinal. - */ -@SuppressWarnings("serial") -public class WxRobKeyword extends BaseWxRobKeyword { - public static final WxRobKeyword dao = new WxRobKeyword().dao(); -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java deleted file mode 100644 index 2f2aff6b..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.ruoyi.common.wechat.web.model; - -import org.ruoyi.common.wechat.web.model.base.BaseWxRobRelation; - -/** - * Generated by JFinal. - */ -@SuppressWarnings("serial") -public class WxRobRelation extends BaseWxRobRelation { - public static final WxRobRelation dao = new WxRobRelation().dao(); -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java deleted file mode 100644 index 3502c597..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.ruoyi.common.wechat.web.model; - -import com.jfinal.kit.PathKit; -import com.jfinal.kit.PropKit; -import com.jfinal.plugin.activerecord.dialect.MysqlDialect; -import com.jfinal.plugin.activerecord.generator.Generator; -import com.jfinal.plugin.druid.DruidPlugin; -import org.ruoyi.common.wechat.web.common.MyConfig; - -import javax.sql.DataSource; - -/** - * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 - * 详见 JFinal 俱乐部: http://jfinal.com/club - * - * 在数据库表有任何变动时,运行一下 main 方法,极速响应变化进行代码重构 - */ -public class _JFinalDemoGenerator { - -// public static DataSource getDataSource() { -//// PropKit.use("appConfig.properties"); -//// DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(),PropKit.get("jdbcDriverSqlServe")); -//// DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://127.0.0.1:3306/wxwobot?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull","root", "root"); -// DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://localhost:3306/wxwobot?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull", -// "root", "root"); -// druidPlugin.start(); -// return druidPlugin.getDataSource(); -// } - public static DataSource getDataSource() { - DruidPlugin druidPlugin = MyConfig.createDruidPlugin(); - druidPlugin.start(); - return druidPlugin.getDataSource(); - } - - public static void main(String[] args) { - PropKit.use("appConfig.properties"); - // base model 所使用的包名 - String baseModelPackageName = "org.ruoyi.common.wechat.web.model.base"; - // base model 文件保存路径 - String baseModelOutputDir = PathKit.getWebRootPath() + "/src/main/java/org.ruoyi.common.wechat/web/model/base"; - - // model 所使用的包名 (MappingKit 默认使用的包名) - String modelPackageName = "org.ruoyi.common.wechat.web.model"; - // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径) - String modelOutputDir = baseModelOutputDir + "/.."; - - // 创建生成器 - Generator generator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir); - // 设置是否生成链式 setter 方法 - generator.setGenerateChainSetter(false); - // 添加不需要生成的表名 - generator.addExcludedTable(); - // 设置是否在 Model 中生成 dao 对象 - generator.setGenerateDaoInModel(false); - // 设置是否生成链式 setter 方法 - generator.setGenerateChainSetter(true); - // 设置是否生成字典文件 - generator.setGenerateDataDictionary(false); - // 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser -// generator.setRemovedTableNamePrefixes("t_"); - - generator.setDialect(new MysqlDialect()); - // 生成 - generator.generate(); - - } - -} - - - - diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java deleted file mode 100644 index 9426b066..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.common.wechat.web.model; - -import com.jfinal.plugin.activerecord.ActiveRecordPlugin; - -/** - * Generated by JFinal, do not modify this file. - *
- * Example:
- * public void configPlugin(Plugins me) {
- *     ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
- *     _MappingKit.mapping(arp);
- *     me.add(arp);
- * }
- * 
- */ -public class _MappingKit { - - public static void mapping(ActiveRecordPlugin arp) { - arp.addMapping("wx_rob_config", "id", WxRobConfig.class); - arp.addMapping("wx_rob_keyword", "id", WxRobKeyword.class); - arp.addMapping("wx_rob_relation", "id", WxRobRelation.class); - } -} - diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java deleted file mode 100644 index 352f0511..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java +++ /dev/null @@ -1,111 +0,0 @@ -package org.ruoyi.common.wechat.web.model.base; - -import com.jfinal.plugin.activerecord.IBean; -import com.jfinal.plugin.activerecord.Model; - -/** - * Generated by JFinal, do not modify this file. - */ -@SuppressWarnings({"serial", "unchecked"}) -public abstract class BaseWxRobConfig> extends Model implements IBean { - - public M setId(Long id) { - set("id", id); - return (M)this; - } - - public Long getId() { - return getLong("id"); - } - - public M setUniqueKey(String uniqueKey) { - set("unique_key", uniqueKey); - return (M)this; - } - - public String getUniqueKey() { - return getStr("unique_key"); - } - - public M setRemark(String remark) { - set("remark", remark); - return (M)this; - } - - public String getRemark() { - return getStr("remark"); - } - - public M setCreateTime(java.util.Date createTime) { - set("create_time", createTime); - return (M)this; - } - - public java.util.Date getCreateTime() { - return get("create_time"); - } - - public M setUpdateTime(java.util.Date updateTime) { - set("update_time", updateTime); - return (M)this; - } - - public java.util.Date getUpdateTime() { - return get("update_time"); - } - - public M setToFriend(Boolean toFriend) { - set("to_friend", toFriend); - return (M)this; - } - - public Boolean getToFriend() { - return get("to_friend"); - } - - public M setToGroup(Boolean toGroup) { - set("to_group", toGroup); - return (M)this; - } - - public Boolean getToGroup() { - return get("to_group"); - } - - public M setDefaultFriend(Boolean defaultFriend) { - set("default_friend", defaultFriend); - return (M)this; - } - - public Boolean getDefaultFriend() { - return get("default_friend"); - } - - public M setDefaultGroup(Boolean defaultGroup) { - set("default_group", defaultGroup); - return (M)this; - } - - public Boolean getDefaultGroup() { - return get("default_group"); - } - - public M setFromOut(Boolean fromOut) { - set("from_out", fromOut); - return (M)this; - } - - public Boolean getFromOut() { - return get("from_out"); - } - - public M setEnable(Boolean enable) { - set("enable", enable); - return (M)this; - } - - public Boolean getEnable() { - return get("enable"); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java deleted file mode 100644 index 98e01a13..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.ruoyi.common.wechat.web.model.base; - -import com.jfinal.plugin.activerecord.IBean; -import com.jfinal.plugin.activerecord.Model; - -/** - * Generated by JFinal, do not modify this file. - */ -@SuppressWarnings({"serial", "unchecked"}) -public abstract class BaseWxRobKeyword> extends Model implements IBean { - - public M setId(Long id) { - set("id", id); - return (M)this; - } - - public Long getId() { - return getLong("id"); - } - - public M setUniqueKey(String uniqueKey) { - set("unique_key", uniqueKey); - return (M)this; - } - - public String getUniqueKey() { - return getStr("unique_key"); - } - - public M setKeyData(String keyData) { - set("key_data", keyData); - return (M)this; - } - - public String getKeyData() { - return getStr("key_data"); - } - - public M setValueData(String valueData) { - set("value_data", valueData); - return (M)this; - } - - public String getValueData() { - return getStr("value_data"); - } - - public M setTypeData(String typeData) { - set("type_data", typeData); - return (M)this; - } - - public String getTypeData() { - return getStr("type_data"); - } - - public M setNickName(String nickName) { - set("nick_name", nickName); - return (M)this; - } - - public String getNickName() { - return getStr("nick_name"); - } - - public M setToGroup(Boolean toGroup) { - set("to_group", toGroup); - return (M)this; - } - - public Boolean getToGroup() { - return get("to_group"); - } - - public M setEnable(Boolean enable) { - set("enable", enable); - return (M)this; - } - - public Boolean getEnable() { - return get("enable"); - } - - public M setCreateTime(java.util.Date createTime) { - set("create_time", createTime); - return (M)this; - } - - public java.util.Date getCreateTime() { - return get("create_time"); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java deleted file mode 100644 index 2c0186b2..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.ruoyi.common.wechat.web.model.base; - -import com.jfinal.plugin.activerecord.IBean; -import com.jfinal.plugin.activerecord.Model; - -/** - * Generated by JFinal, do not modify this file. - */ -@SuppressWarnings({"serial", "unchecked"}) -public abstract class BaseWxRobRelation> extends Model implements IBean { - - public M setId(Long id) { - set("id", id); - return (M)this; - } - - public Long getId() { - return getLong("id"); - } - - public M setOutKey(String outKey) { - set("out_key", outKey); - return (M)this; - } - - public String getOutKey() { - return getStr("out_key"); - } - - public M setUniqueKey(String uniqueKey) { - set("unique_key", uniqueKey); - return (M)this; - } - - public String getUniqueKey() { - return getStr("unique_key"); - } - - public M setNickName(String nickName) { - set("nick_name", nickName); - return (M)this; - } - - public String getNickName() { - return getStr("nick_name"); - } - - public M setToGroup(Boolean toGroup) { - set("to_group", toGroup); - return (M)this; - } - - public Boolean getToGroup() { - return get("to_group"); - } - - public M setEnable(Boolean enable) { - set("enable", enable); - return (M)this; - } - - public Boolean getEnable() { - return get("enable"); - } - - public M setWhiteList(String whiteList) { - set("white_list", whiteList); - return (M)this; - } - - public String getWhiteList() { - return getStr("white_list"); - } - - public M setCreateTime(java.util.Date createTime) { - set("create_time", createTime); - return (M)this; - } - - public java.util.Date getCreateTime() { - return get("create_time"); - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java deleted file mode 100644 index 09dcb9cb..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ruoyi.common.wechat.web.utils; - -import org.apache.commons.codec.binary.Base64; - -/** - * @author WesleyOne - * @create 2018/12/19 - */ -public class Base64Util { - - /** - * 编码 - * @param source - * @return - */ - public static String encode(String source){ - byte[] result = Base64.encodeBase64(source.getBytes()); - return result.toString(); - } - - /** - * 解码 - * @param source - * @return - */ - public static String decode(String source){ - byte[] result = Base64.decodeBase64(source); - return result.toString(); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java deleted file mode 100644 index b9b3073f..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ruoyi.common.wechat.web.utils; - - -import org.apache.commons.lang3.StringUtils; - -import javax.servlet.http.HttpServletRequest; - - -/** - * @author WesleyOne - * @create 2018/11/5 - */ -public class IpUtil { - - /** - * 获取用户真实IP(在安防或多层代理场景下) - * @param request - * @return - */ - public static String getRealIp(HttpServletRequest request) { - String ip = request.getHeader("x-forwarded-for"); - if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ - //多次反向代理后会有多个ip值,第一个ip才是真实ip - int index = ip.indexOf(","); - if(index != -1){ - return ip.substring(0,index); - } - } - ip = request.getHeader("X-Real-IP"); - if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ - return ip; - } - return request.getRemoteAddr(); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java deleted file mode 100644 index 80fc03f7..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.ruoyi.common.wechat.web.utils; - -import java.util.LinkedHashMap; - -/** - * @author WesleyOne - * @create 2018/12/12 - */ -public class LRUCache extends LinkedHashMap { - - private static final long serialVersionUID = 1L; - protected int maxElements; - - public LRUCache(int maxSize) - { - super(maxSize * 4 / 3 , 0.75F, true); - maxElements = maxSize; - } - - @Override - protected boolean removeEldestEntry(java.util.Map.Entry eldest) - { - return size() > maxElements; - } - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java deleted file mode 100644 index 1748c30a..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.ruoyi.common.wechat.web.utils; - - - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -public class MD5Util { - - - private static String byteArrayToHexString(byte b[]) { - StringBuffer resultSb = new StringBuffer(); - for (int i = 0; i < b.length; i++){ - resultSb.append(byteToHexString(b[i])); - } - - return resultSb.toString(); - } - - private static String byteToHexString(byte b) { - int n = b; - if (n < 0){ - n += 256; - } - int d1 = n / 16; - int d2 = n % 16; - return hexDigits[d1] + hexDigits[d2]; - } - - public static String MD5Encode(String origin, String charsetname) { - String resultString = null; - try { - resultString = new String(origin); - MessageDigest md = MessageDigest.getInstance("MD5"); - if (charsetname == null || "".equals(charsetname)){ - resultString = byteArrayToHexString(md.digest(resultString.getBytes())); - } else{ - resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname))); - } - } catch (Exception exception) { - } - return resultString; - } - - private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; - - public static String MD5Encrypt(String str) { - String s = str; - if (s == null) { - return null; - } - String value = null; - MessageDigest md5 = null; - try { - md5 = MessageDigest.getInstance("MD5"); - } catch (NoSuchAlgorithmException ex) { - } - //sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder(); - - return value; - } - - public static void main(String[] args) { - System.out.println(MD5Encrypt("wxwobot")); - } - - -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java deleted file mode 100644 index ae4e476c..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.ruoyi.common.wechat.web.utils; - -import java.util.UUID; - -/** - * - * @author internet - * @create 2018/12/17 - */ -public class UUIDShortUtil { - - private static String[] chars = new String[] { "a", "b", "c", "d", "e", "f", - "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", - "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", - "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", - "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", - "W", "X", "Y", "Z" }; - - /** - * 短8位 - * @return - */ - public static String generateShortUuid() { - StringBuffer shortBuffer = new StringBuffer(); - String uuid = UUID.randomUUID().toString().replace("-", ""); - for (int i = 0; i < 8; i++) { - String str = uuid.substring(i * 4, i * 4 + 4); - int x = Integer.parseInt(str, 16); - shortBuffer.append(chars[x % 0x3E]); - } - return shortBuffer.toString(); - } -} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties b/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties deleted file mode 100644 index 5ccffeaa..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties +++ /dev/null @@ -1,7 +0,0 @@ -jdbcUrl = ${pro.jdbc.agent.url} -user = ${pro.jdbc.agent.username} -password = ${pro.jdbc.agent.password} -devMode = ${pro.devMode} -hotReloadDir = ${pro.hotreload.realpath} -download_path = ${pro.download.path} -log_path = ${log.file.path} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties b/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties deleted file mode 100644 index 0e375b7f..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties +++ /dev/null @@ -1 +0,0 @@ -wxwobot = C9ah2BEPliU2EzPV/VAn9Q== \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt b/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt deleted file mode 100644 index cdcd10ba..00000000 --- a/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt +++ /dev/null @@ -1,51 +0,0 @@ -# 配置 undertow - -undertow.devMode=${pro.undertow.devMode} -undertow.host=${pro.domain.host} -undertow.port=${pro.domain.port} -undertow.contextPath=/ - -undertow.resourcePath=webapp, io.wxwobot.admin/src/main/webapp, src/main/webapp - -# 开启 gzip 压缩 -undertow.gzip.enable=true -# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率 -undertow.gzip.level=-1 -# 触发压缩的最小内容长度 -undertow.gzip.minLength=1024 - -# session 过期时间,注意单位是秒 -undertow.session.timeout=1800 -# 支持 session 热加载,避免依赖于 session 的登录型项目反复登录,默认值为 true。仅用于 devMode,生产环境无影响 -undertow.session.hotSwap=true - -# 下面两行命令生成密钥库 -# keytool -genkeypair -validity 3650 -alias club -keyalg RSA -keystore club.jks -# keytool -importkeystore -srckeystore club.jks -destkeystore club.pfx -deststoretype PKCS12 -# 生成过程中提示输入 "名字与姓氏" 时输入 localhost。生产环境从阿里云下载 tomcat 类型的密钥库 -# -# 更详细的 https/ssl 配置见 jfinal 官方文档 :http://www.jfinal.com/doc/1-4 -# -# 是否开启 ssl -undertow.ssl.enable=false -# ssl 监听端口号,部署环境设置为 443 -undertow.ssl.port=443 -# 密钥库类型,建议使用 PKCS12 -undertow.ssl.keyStoreType=PKCS12 -# 密钥库文件 -undertow.ssl.keyStore=demo.pfx -# 密钥库密码 -undertow.ssl.keyStorePassword=111111 - - -# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2 -undertow.http2.enable=true - - -# ssl 开启时,http 请求是否重定向到 https -# undertow.http.toHttps=false -# ssl 开启时,是否关闭 http -# undertow.http.disable=false - - - diff --git a/ruoyi-modules-api/pom.xml b/ruoyi-modules-api/pom.xml index fe4d2c2f..a3f0ef00 100644 --- a/ruoyi-modules-api/pom.xml +++ b/ruoyi-modules-api/pom.xml @@ -4,19 +4,19 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - org.ruoyi ruoyi-ai - 1.0.0 + org.ruoyi + ${revision} + ../pom.xml ruoyi-modules-api pom + ruoyi-chat-api - ruoyi-device-api ruoyi-knowledge-api ruoyi-system-api - ruoyi-weixin-api @@ -74,6 +74,11 @@ ruoyi-common-oss + + mysql + mysql-connector-java + + diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index bca2ede3..633977bc 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -6,7 +6,8 @@ org.ruoyi ruoyi-modules-api - 1.0.0 + ${revision} + ../pom.xml ruoyi-chat-api @@ -17,7 +18,7 @@ UTF-8 - + org.ruoyi @@ -25,5 +26,4 @@ - diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java index 43791eec..1dfa05f3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatMessageBo.java @@ -2,12 +2,13 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatMessage; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.ruoyi.domain.ChatMessage; + import java.math.BigDecimal; /** @@ -47,17 +48,15 @@ public class ChatMessageBo extends BaseEntity { /** * 扣除金额 - - */ @NotNull(message = "扣除金额不能为空", groups = { AddGroup.class, EditGroup.class }) - private BigDecimal deductCost; + private Double deductCost; /** * 累计 Tokens */ @NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long totalTokens; + private Integer totalTokens; /** * 模型名称 diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java deleted file mode 100644 index c9f85835..00000000 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatConfigMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.ruoyi.mapper; - - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.domain.ChatConfig; -import org.ruoyi.domain.vo.ChatConfigVo; - -/** - * 配置信息Mapper接口 - * - * @author ageerle - * @date 2025-04-08 - */ -public interface ChatConfigMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java index e0f6f8a8..cb13e5c8 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java @@ -3,8 +3,6 @@ package org.ruoyi.service; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.domain.bo.ChatConfigBo; -import org.ruoyi.domain.vo.ChatConfigVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java index 3d62159f..1e753aa3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java @@ -8,10 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.ruoyi.domain.ChatConfig; -import org.ruoyi.domain.bo.ChatConfigBo; -import org.ruoyi.domain.vo.ChatConfigVo; -import org.ruoyi.mapper.ChatConfigMapper; import org.ruoyi.service.IChatConfigService; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml b/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml deleted file mode 100644 index 509a739a..00000000 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/resources/mapper/ChatConfigMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-device-api/pom.xml b/ruoyi-modules-api/ruoyi-device-api/pom.xml deleted file mode 100644 index 7a9cb1a6..00000000 --- a/ruoyi-modules-api/ruoyi-device-api/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-device-api - - - 17 - 17 - UTF-8 - - - diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml index cf1e0311..27e20736 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-knowledge-api/pom.xml @@ -6,7 +6,8 @@ org.ruoyi ruoyi-modules-api - 1.0.0 + ${revision} + ../pom.xml ruoyi-knowledge-api diff --git a/ruoyi-modules-api/ruoyi-system-api/pom.xml b/ruoyi-modules-api/ruoyi-system-api/pom.xml index 1b458738..69fe0cc6 100644 --- a/ruoyi-modules-api/ruoyi-system-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-system-api/pom.xml @@ -6,7 +6,8 @@ org.ruoyi ruoyi-modules-api - 1.0.0 + ${revision} + ../pom.xml ruoyi-system-api diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/ChatConfig.java similarity index 81% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/ChatConfig.java index 366d9a89..96e31e04 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/ChatConfig.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/ChatConfig.java @@ -1,7 +1,10 @@ -package org.ruoyi.domain; +package org.ruoyi.system.domain; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.Version; import lombok.Data; import lombok.EqualsAndHashCode; import org.ruoyi.common.mybatis.core.domain.BaseEntity; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java similarity index 92% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java index ca1b0384..0f407b0e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatConfigBo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/bo/ChatConfigBo.java @@ -1,13 +1,14 @@ -package org.ruoyi.domain.bo; +package org.ruoyi.system.domain.bo; -import org.ruoyi.common.core.validate.AddGroup; -import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatConfig; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.mybatis.core.domain.BaseEntity; +import org.ruoyi.system.domain.ChatConfig; /** * 配置信息业务对象 chat_config diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java similarity index 97% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java index 5ba209f7..148d2dc8 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatConfigVo.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/ChatConfigVo.java @@ -1,18 +1,15 @@ -package org.ruoyi.domain.vo; +package org.ruoyi.system.domain.vo; -import org.ruoyi.system.domain.ChatConfig; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; - import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.system.domain.ChatConfig; import java.io.Serial; import java.io.Serializable; - - /** * 配置信息视图对象 chat_config * diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java deleted file mode 100644 index 8b134b6b..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/domain/vo/SysUserModelVo.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.ruoyi.system.domain.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import io.github.linpeilie.annotations.AutoMapper; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - - -/** - * 【请填写功能名称】视图对象 sys_user_model - * - * @author Lion Li - * @date 2024-08-03 - */ -@Data -@ExcelIgnoreUnannotated -@AutoMapper(target = SysUserModel.class) -public class SysUserModelVo implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * id - */ - @ExcelProperty(value = "id") - private Long id; - - /** - * 模型id - */ - @ExcelProperty(value = "模型id") - private Long mid; - - /** - * 用户组id - */ - @ExcelProperty(value = "用户组id") - private Long gid; - - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java deleted file mode 100644 index a47df631..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatAppStoreMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 应用市场Mapper接口 - * - * @author Lion Li - * @date 2024-03-19 - */ -public interface ChatAppStoreMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java index 5f767814..affebf55 100644 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatConfigMapper.java @@ -1,15 +1,16 @@ package org.ruoyi.system.mapper; + import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import org.ruoyi.system.domain.ChatConfig; +import org.ruoyi.system.domain.vo.ChatConfigVo; /** - * 对话配置信息 -Mapper接口 + * 配置信息Mapper接口 * - * @author Lion Li - * @date 2024-04-13 + * @author ageerle + * @date 2025-04-08 */ public interface ChatConfigMapper extends BaseMapperPlus { - } diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java deleted file mode 100644 index f1f2f739..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatGptsMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * gpts管理Mapper接口 - * - * @author Lion Li - * @date 2024-07-09 - */ -public interface ChatGptsMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java deleted file mode 100644 index 7c4e7476..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatMessageMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - - -/** - * 聊天消息Mapper接口 - * - * @author Lion Li - * @date 2023-11-26 - */ -public interface ChatMessageMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java deleted file mode 100644 index 29fb348e..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatPluginMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 插件管理Mapper接口 - * - * @author ageerle - * @date 2025-03-30 - */ -public interface ChatPluginMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java deleted file mode 100644 index aeea71e7..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatTokenMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - - -/** - * 聊天消息Mapper接口 - * - * @author Lion Li - * @date 2023-11-26 - */ -public interface ChatTokenMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java deleted file mode 100644 index 56424e66..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVisitorUsageMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 访客管理Mapper接口 - * - * @author Lion Li - * @date 2024-07-14 - */ -public interface ChatVisitorUsageMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java deleted file mode 100644 index d54e7054..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/ChatVoucherMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 用户兑换记录Mapper接口 - * - * @author Lion Li - * @date 2024-05-03 - */ -public interface ChatVoucherMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java deleted file mode 100644 index 08cb737d..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.vo.cover.CoverVo; - -/** - * 翻唱Mapper接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface CoverMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java deleted file mode 100644 index 6abffd98..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/CoverPromptAudioMapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.vo.cover.CoverPromptAudioVo; - -import java.util.List; - -/** - * 翻唱用户参考音频Mapper接口 - * - * @author NSL - * @since 2024-12-25 - */ -public interface CoverPromptAudioMapper extends BaseMapperPlus { - - /** - * 获取最近一次翻唱记录 - * @param userId 用户id - * @return 翻唱记录 - */ - List selectLatestVoByUserId(Long userId); -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java deleted file mode 100644 index e854cfc3..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/PaymentOrdersMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 支付订单Mapper接口 - * - * @author Lion Li - * @date 2024-04-16 - */ -public interface PaymentOrdersMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java deleted file mode 100644 index 1b436f81..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysModelMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 系统模型Mapper接口 - * - * @author Lion Li - * @date 2024-04-04 - */ -public interface SysModelMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java deleted file mode 100644 index 3a6718aa..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysPackagePlanMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 套餐管理Mapper接口 - * - * @author Lion Li - * @date 2024-05-05 - */ -public interface SysPackagePlanMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java deleted file mode 100644 index 8cf07137..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserGroupMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 【请填写功能名称】Mapper接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface SysUserGroupMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java deleted file mode 100644 index e62693e7..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/SysUserModelMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.ruoyi.system.domain.vo.SysUserModelVo; - -/** - * 【请填写功能名称】Mapper接口 - * - * @author Lion Li - * @date 2024-08-03 - */ -public interface SysUserModelMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java deleted file mode 100644 index 36ad76ea..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobConfigMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 【请填写功能名称】Mapper接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface WxRobConfigMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java deleted file mode 100644 index a062dc27..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobKeywordMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 【请填写功能名称】Mapper接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface WxRobKeywordMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java deleted file mode 100644 index df7d19fa..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/mapper/WxRobRelationMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.system.mapper; - -import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; - -/** - * 【请填写功能名称】Mapper接口 - * - * @author Lion Li - * @date 2024-05-01 - */ -public interface WxRobRelationMapper extends BaseMapperPlus { - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java new file mode 100644 index 00000000..582ce881 --- /dev/null +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java @@ -0,0 +1,51 @@ +package org.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.system.domain.ChatConfig; +import org.ruoyi.system.domain.bo.ChatConfigBo; +import org.ruoyi.system.domain.vo.ChatConfigVo; +import org.ruoyi.system.mapper.ChatConfigMapper; +import org.springframework.stereotype.Service; + + +/** + * 配置信息Service业务层处理 + * + * @author ageerle + * @date 2025-04-08 + */ +@RequiredArgsConstructor +@Service +public class ChatConfigServiceImpl implements ConfigService { + + private final ChatConfigMapper baseMapper; + + /** + * 根据配置类型和配置key获取值 + * + * @param category 分类 + * @param configKey key名称 + * @return + */ + @Override + public String getConfigValue(String category,String configKey) { + ChatConfigBo bo = new ChatConfigBo(); + bo.setCategory(category); + bo.setConfigName(configKey); + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + ChatConfigVo chatConfigVo = baseMapper.selectVoOne(lqw); + return chatConfigVo.getConfigValue(); + } + + private LambdaQueryWrapper buildQueryWrapper(ChatConfigBo bo) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue()); + return lqw; + } +} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java deleted file mode 100644 index c3a90947..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/SysUserGroupServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.ruoyi.system.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.ruoyi.system.mapper.SysUserGroupMapper; - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 【请填写功能名称】Service业务层处理 - * - * @author Lion Li - * @date 2024-08-03 - */ -@RequiredArgsConstructor -@Service -public class SysUserGroupServiceImpl implements ISysUserGroupService { - - private final SysUserGroupMapper baseMapper; - - /** - * 查询【请填写功能名称】 - */ - @Override - public SysUserGroupVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public TableDataInfo queryPageList(SysUserGroupBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询【请填写功能名称】列表 - */ - @Override - public List queryList(SysUserGroupBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(SysUserGroupBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getGroupName()), SysUserGroup::getGroupName, bo.getGroupName()); - lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), SysUserGroup::getUpdateIp, bo.getUpdateIp()); - return lqw; - } - - /** - * 新增【请填写功能名称】 - */ - @Override - public Boolean insertByBo(SysUserGroupBo bo) { - SysUserGroup add = MapstructUtils.convert(bo, SysUserGroup.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改【请填写功能名称】 - */ - @Override - public Boolean updateByBo(SysUserGroupBo bo) { - SysUserGroup update = MapstructUtils.convert(bo, SysUserGroup.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(SysUserGroup entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除【请填写功能名称】 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java deleted file mode 100644 index 09666306..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AesUtils.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.ruoyi.system.util; - -import lombok.SneakyThrows; -import org.springframework.stereotype.Component; - -import javax.crypto.Cipher; -import javax.crypto.spec.SecretKeySpec; -import java.util.Base64; - -/** - * Java 使用 AES 加密算法进行加密解密 - */ -@Component -public class AesUtils { - - /** - * 秘钥(需要使用长度为16、24或32的字节数组作为AES算法的密钥,否则就会遇到java.security.InvalidKeyException异常) - */ - // @Value("${ase.util.secret}") - public String key; - - /** - * AES算法加密 - * - * @Param:text原文 - * @Param:key密钥 - */ - - @SneakyThrows - public String aesEncrypt(String text) { - // 创建AES加密算法实例(根据传入指定的秘钥进行加密) - Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); - SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES"); - // 初始化为加密模式,并将密钥注入到算法中 - cipher.init(Cipher.ENCRYPT_MODE, keySpec); - // 将传入的文本加密 - byte[] encrypted = cipher.doFinal(text.getBytes()); - //生成密文 - // 将密文进行Base64编码,方便传输 - return Base64.getEncoder().encodeToString(encrypted); - } - - /** - * AES算法解密 - * - * @Param:base64Encrypted密文 - * @Param:key密钥 - */ - public String aesDecrypt(String base64Encrypted) throws Exception { - // 创建AES解密算法实例 - Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); - SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES"); - - // 初始化为解密模式,并将密钥注入到算法中 - cipher.init(Cipher.DECRYPT_MODE, keySpec); - // 将Base64编码的密文解码 - byte[] encrypted = Base64.getDecoder().decode(base64Encrypted); - // 解密 - byte[] decrypted = cipher.doFinal(encrypted); - return new String(decrypted); - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java deleted file mode 100644 index d1328c7d..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/AudioOkHttpUtil.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.ruoyi.system.util; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.*; -import org.ruoyi.common.core.service.ConfigService; -import org.springframework.stereotype.Component; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -/** - * @author WangLe - */ -@RequiredArgsConstructor -@Component -@Slf4j -public class AudioOkHttpUtil { - - private final ConfigService configService; - - private static final String AUTHORIZATION = "Authorization"; - - private final OkHttpClient client = new OkHttpClient.Builder() - .connectTimeout(300, TimeUnit.SECONDS) - .writeTimeout(300, TimeUnit.SECONDS) - .readTimeout(300, TimeUnit.SECONDS) - .build(); - - public String executeRequest(Request request) { - try (Response response = client.newCall(request).execute()) { - if (!response.isSuccessful()) { - throw new IOException("Unexpected code " + response); - } - return response.body() != null ? response.body().string() : null; - } catch (IOException e) { - // 这里应根据实际情况使用适当的日志记录方式 - log.error("请求失败: {}",e.getMessage()); - return null; - } - } - - public Request createPostRequest(String url, String json) { - MediaType JSON = MediaType.get("application/json; charset=utf-8"); - RequestBody body = RequestBody.create(json, JSON); - return new Request.Builder() - .url(getKey("apiHost") + url) - .post(body) - .header("Content-Type", "application/json") - .header(AUTHORIZATION, "Bearer "+getKey("apiKey")) - .build(); - } - - - public Request createGetRequest(String url) { - return new Request.Builder() - .url(getKey("apiHost") + url) - .header(AUTHORIZATION, "Bearer "+getKey("apiKey")) - .build(); - } - - - public String getKey(String key) { - return configService.getConfigValue("audio", key); - } -} - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java deleted file mode 100644 index bbcb1aad..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.ruoyi.system.util; - - -public class DesensitizationUtil { - public static String maskData(String data) { - if (data == null || data.length() <= 4) { - return data; - } - int start = 2; - int end = data.length() - 2; - StringBuilder masked = new StringBuilder(); - masked.append(data, 0, start); - for (int i = start; i < end; i++) { - masked.append('*'); - } - masked.append(data.substring(end)); - return masked.toString(); - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java deleted file mode 100644 index 24ddccb6..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/HttpUtils.java +++ /dev/null @@ -1,634 +0,0 @@ -package org.ruoyi.system.util; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.io.IOUtils; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpEntityEnclosingRequest; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.*; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.entity.*; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.X509TrustManager; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.SocketException; -import java.net.URL; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.util.*; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Consumer; -import java.util.function.Function; - -/** - * HttpUtils - * - * @author NSL - * @since 2024-12-30 - */ -public class HttpUtils { - - public static final String CHARSET_DEFAULT = "UTF-8"; - public static final String CONTENT_TYPE = "Content-Type"; - public static final String CONTENT_TYPE_JSON = "application/json"; - public static final String CONTENT_TYPE_FORM_DATA = "application/x-www-form-urlencoded"; - private static final PoolingHttpClientConnectionManager CONNECTION_MANAGER; - private static final int MAX_CONNECT_TIMEOUT = 8000; - private static final int MAX_SOCKET_TIMEOUT = 90000; - - static { - CONNECTION_MANAGER = new PoolingHttpClientConnectionManager(getDefaultRegistry()); - CONNECTION_MANAGER.setMaxTotal(500); - CONNECTION_MANAGER.setDefaultMaxPerRoute(50); - CONNECTION_MANAGER.setValidateAfterInactivity(2000); - } - - public static HttpResponse get(String url) { - return get(url, null); - } - - public static HttpResponse get(String url, Map params) { - String urlLinks = getUrlLinks(params); - if (urlLinks != null) { - if (url.contains("?")) { - url = url + "&" + urlLinks; - } else { - url = url + "?" + urlLinks; - } - } - return request(HttpRequest.build(url, "GET")); - } - - public static void download(String url, File destFile) throws Exception { - HttpRequest request = HttpRequest.build(url, "GET"); - request.setResponseHandler(entity -> { - try { - if (!destFile.getParentFile().exists()) { - destFile.getParentFile().mkdirs(); - } - try (FileOutputStream fs = new FileOutputStream(destFile)) { - entity.writeTo(fs); - } - return destFile; - } catch (Exception e) { - return e; - } - }); - HttpResponse response = request(request); - if (response.getResponse() instanceof Exception) { - throw (Exception) response.getResponse(); - } - } - - public static HttpResponse postJson(String url, String bodyJson) { - HttpRequest request = HttpRequest.build(url, "POST").setBody(bodyJson); - if (request.getHeaders() == null) { - request.setHeaders(Collections.singletonMap(CONTENT_TYPE, CONTENT_TYPE_JSON)); - } else { - request.getHeaders().put(CONTENT_TYPE, CONTENT_TYPE_JSON); - } - return request(request); - } - - public static HttpResponse postForm(String url, Map params) { - String urlLinks = getUrlLinks(params); - HttpRequest request = HttpRequest.build(url, "POST").setBody(urlLinks != null ? urlLinks : ""); - if (request.getHeaders() == null) { - request.setHeaders(Collections.singletonMap(CONTENT_TYPE, CONTENT_TYPE_FORM_DATA)); - } else { - request.getHeaders().put(CONTENT_TYPE, CONTENT_TYPE_FORM_DATA); - } - return request(request); - } - - public static HttpResponse requestWithEventStream(ExecutorService executorService, long firstReadTimeout, HttpRequest request, Consumer dataConsumer) throws ExecutionException, InterruptedException, TimeoutException { - return requestWithEventStream(executorService, firstReadTimeout, request, dataConsumer, null); - } - - public static HttpResponse requestWithEventStream(ExecutorService executorService, long firstReadTimeout, HttpRequest request, Consumer dataConsumer, Consumer> futureConsumer) throws ExecutionException, InterruptedException, TimeoutException { - // status: 0 start 1 run 2 timeout - AtomicInteger status = new AtomicInteger(0); - Future submit = executorService.submit(() -> { - if (request.getMaxSocketTimeout() == null) { - request.setMaxSocketTimeout(30_000); - } - request.setResponseHandler(entity -> { - StringBuilder sb = new StringBuilder(); - try { - try (InputStream is = entity.getContent()) { - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) { - String line; - while ((line = bufferedReader.readLine()) != null) { - if (status.get() == 2) { - throw new TimeoutException(); - } - status.set(1); - sb.append(line).append("\n"); - if (line.startsWith("data:")) { - dataConsumer.accept(line.substring(line.startsWith("data: ") ? 6 : 5)); - } - } - } - } - } catch (Exception e) { - throw new RuntimeException("eventStream 请求异常", e); - } - return sb.toString(); - }); - return request(request); - }); - if (futureConsumer != null) { - futureConsumer.accept(submit); - } - try { - HttpResponse httpResponse = submit.get(firstReadTimeout, TimeUnit.MILLISECONDS); - if (httpResponse != null) { - return httpResponse; - } - } catch (TimeoutException e) { - if (status.get() == 0) { - status.set(2); - submit.cancel(true); - throw e; - } - } - return submit.get(); - } - - public static HttpResponse requestWithEventStream(HttpRequest request, Consumer dataConsumer) { - if (request.getMaxSocketTimeout() == null) { - request.setMaxSocketTimeout(30_000); - } - request.setResponseHandler(entity -> { - StringBuilder sb = new StringBuilder(); - try { - try (InputStream is = entity.getContent()) { - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) { - String line; - while ((line = bufferedReader.readLine()) != null) { - sb.append(line).append("\n"); - if (line.startsWith("data:")) { - dataConsumer.accept(line.substring(line.startsWith("data: ") ? 6 : 5)); - } - } - } - } - } catch (Exception e) { - throw new RuntimeException("eventStream 请求异常", e); - } - return sb.toString(); - }); - return request(request); - } - - public static int getUrlHttpStatus(String _url) { - HttpURLConnection urlConnection = null; - try { - URL url = new URL(_url); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.connect(); - return urlConnection.getResponseCode(); - } catch (Exception ignored) { - return -1; - } finally { - if (urlConnection != null) { - urlConnection.disconnect(); - } - } - } - - public static String getUrlLinks(Map params) { - if (params == null || params.isEmpty()) { - return null; - } - StringBuilder sb = new StringBuilder(); - try { - String[] sortedKeys = params.keySet().toArray(new String[0]); - Arrays.sort(sortedKeys); - for (String key : sortedKeys) { - if (key == null || key.isEmpty()) { - continue; - } - Object value = params.get(key); - sb.append(key).append("="); - if (value != null) { - sb.append(URLEncoder.encode(value.toString(), "UTF-8")); - } - sb.append("&"); - } - } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); - } - if (sb.length() > 0) { - sb.setLength(sb.length() - 1); - } - return sb.toString(); - } - - @SuppressWarnings("unchecked") - public static Map parseUrlLinks(String params) { - Map result = new LinkedHashMap<>(); - if (params == null || params.isEmpty()) { - return result; - } - for (String param : params.split("&")) { - String[] split = param.split("="); - String key = split[0]; - String value = ""; - if (split.length > 1) { - value = split[1]; - } - if (result.containsKey(key)) { - Object o = result.get(key); - if (o instanceof List) { - ((List) o).add(value); - } else { - List list = new ArrayList<>(); - list.add(o); - list.add(value); - result.put(key, list); - } - } else { - result.put(key, value); - } - } - return result; - } - - /** - * 通用接口请求 - */ - public static HttpResponse request(HttpRequest request) { - return request(request, 0); - } - - private static HttpResponse request(HttpRequest request, int retryCount) { - HttpRequestBase requestBase = toRequest(request); - Map headers = request.getHeaders(); - ContentType contentType = null; - if (headers != null && !headers.isEmpty()) { - for (Map.Entry entry : headers.entrySet()) { - String key = entry.getKey(); - if (key == null || key.isEmpty()) { - continue; - } - String value = entry.getValue(); - if (CONTENT_TYPE.equalsIgnoreCase(key) && value != null) { - contentType = ContentType.parse(value); - } - requestBase.setHeader(key, value); - } - } - - // body - setBodyEntity(requestBase, contentType, request.getBody()); - - try { - HttpClient client = getHttpClient(request, requestBase); - org.apache.http.HttpResponse response; - long startTime = System.currentTimeMillis(); - response = client.execute(requestBase); - HttpResponse httpResponse = new HttpResponse(); - httpResponse.setReqTime(System.currentTimeMillis() - startTime); - httpResponse.setStatus(response.getStatusLine().getStatusCode()); - Header[] allHeaders = response.getAllHeaders(); - if (allHeaders != null && allHeaders.length > 0) { - httpResponse.setHeaders(new HashMap<>()); - for (Header header : allHeaders) { - httpResponse.getHeaders().put(header.getName(), header.getValue()); - } - } - HttpEntity entity = response.getEntity(); - if (request.responseHandler != null) { - httpResponse.setResponse(request.responseHandler.apply(entity)); - } else { - String charset = null; - if (entity.getContentType() != null && entity.getContentType().getValue() != null) { - contentType = ContentType.parse(entity.getContentType().getValue()); - if (contentType.getCharset() != null) { - charset = contentType.getCharset().name(); - } - } - if (charset == null) { - charset = CHARSET_DEFAULT; - } - httpResponse.setResponse(IOUtils.toString(entity.getContent(), charset)); - } - return httpResponse; - } catch (Exception e) { - requestBase.abort(); - if (request.getMaxRetryCount() > retryCount) { - return request(request, retryCount + 1); - } else if (e instanceof SocketException && "Connection reset".equals(e.getMessage()) && retryCount == 0 && request.getMaxRetryCount() == 0) { - // 遇到 Connection reset 默认重试一次 - return request(request, retryCount + 1); - } else { - throw new RuntimeException("请求异常", e); - } - } finally { - requestBase.releaseConnection(); - } - } - - private static void setBodyEntity(HttpRequestBase requestBase, ContentType contentType, Object body) { - if (body != null && requestBase instanceof HttpEntityEnclosingRequest) { - HttpEntityEnclosingRequest entityRequest = (HttpEntityEnclosingRequest) requestBase; - if (body instanceof HttpEntity) { - entityRequest.setEntity((HttpEntity) body); - } else if (body instanceof String) { - entityRequest.setEntity(getStringEntity((String) body, contentType)); - } else if (body instanceof byte[]) { - entityRequest.setEntity(new ByteArrayEntity((byte[]) body, contentType)); - } else if (body instanceof File) { - entityRequest.setEntity(new FileEntity((File) body, contentType)); - } else if (body instanceof InputStream) { - entityRequest.setEntity(new InputStreamEntity((InputStream) body, contentType)); - } else if (ContentType.APPLICATION_JSON.equals(contentType)) { - entityRequest.setEntity(getStringEntity(JSON.toJSONString(body), contentType)); - } else { - entityRequest.setEntity(getStringEntity(body.toString(), contentType)); - } - } - } - - private static StringEntity getStringEntity(String body, ContentType contentType) { - if (contentType != null && contentType.getCharset() != null) { - return new StringEntity(body, contentType); - } else { - return new StringEntity(body, CHARSET_DEFAULT); - } - } - - public static HttpRequestBase toRequest(HttpRequest request) { - String url = request.getUrl(); - String method = request.getMethod(); - if (url == null || url.isEmpty()) { - throw new RuntimeException("url不能为空"); - } - if (method == null || method.isEmpty()) { - method = "GET"; - } - switch (method.toUpperCase()) { - case "GET": - return new HttpGet(url); - case "POST": - return new HttpPost(url); - case "PUT": - return new HttpPut(url); - case "PATCH": - return new HttpPatch(url); - case "DELETE": - return new HttpDelete(url); - default: - throw new RuntimeException("不支持的请求方式:" + method); - } - } - - private static HttpClient getHttpClient(HttpRequest req, HttpRequestBase request) { - RequestConfig.Builder customReqConf = RequestConfig.custom(); - if (req.getMaxSocketTimeout() != null) { - customReqConf.setSocketTimeout(req.getMaxSocketTimeout()); - } else { - customReqConf.setSocketTimeout(MAX_SOCKET_TIMEOUT); - } - customReqConf.setConnectTimeout(MAX_CONNECT_TIMEOUT); - customReqConf.setConnectionRequestTimeout(MAX_CONNECT_TIMEOUT); - if (req.getRequestConfigConsumer() != null) { - req.getRequestConfigConsumer().accept(customReqConf); - } - request.setConfig(customReqConf.build()); - return HttpClients.custom().setConnectionManager(CONNECTION_MANAGER).build(); - } - - private static Registry getDefaultRegistry() { - try { - // ssl: TLS / TLSv1.2 / TLSv1.3 - SSLContext context = SSLContext.getInstance("TLS"); - context.init(null, new X509TrustManager[]{new X509TrustManager() { - public void checkClientTrusted(X509Certificate[] x509Certificates, String s) { - } - - public void checkServerTrusted(X509Certificate[] x509Certificates, String s) { - } - - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - }}, new SecureRandom()); - return RegistryBuilder.create().register("http", PlainConnectionSocketFactory.getSocketFactory()).register("https", new SSLConnectionSocketFactory(context)).build(); - } catch (Exception e) { - return RegistryBuilder.create().register("http", PlainConnectionSocketFactory.getSocketFactory()).register("https", SSLConnectionSocketFactory.getSocketFactory()).build(); - } - } - - public static String toParamLinks(Map params, boolean encode) { - List keys = new ArrayList<>(params.keySet()); - Collections.sort(keys); - StringBuilder sb = new StringBuilder(); - try { - for (String key : keys) { - if (key == null || "".equals(key)) { - continue; - } - Object value = params.get(key); - if (value == null || "".equals(value)) { - continue; - } - if (encode) { - sb.append(key).append("=").append(URLEncoder.encode(value.toString(), "UTF-8")).append("&"); - } else { - sb.append(key).append("=").append(value).append("&"); - } - } - } catch (UnsupportedEncodingException e) { - throw new RuntimeException("编码失败", e); - } - if (sb.length() > 0) { - sb.setLength(sb.length() - 1); - } - return sb.toString(); - } - - public static class HttpRequest implements Serializable { - - private String url; - private String method; - private Map headers; - private Object body; - private int maxRetryCount = 0; - private Integer maxSocketTimeout; - private Consumer requestConfigConsumer; - private Function responseHandler; - - public static HttpRequest build(String url, String method) { - HttpRequest request = new HttpRequest(); - request.url = url; - request.method = method; - return request; - } - - public static HttpRequest get(String url) { - return build(url, "GET"); - } - - public static HttpRequest postJson(String url) { - return build(url, "POST").setContentType(CONTENT_TYPE_JSON); - } - - public static HttpRequest postFormData(String url) { - return build(url, "POST").setContentType(CONTENT_TYPE_FORM_DATA); - } - - public String getUrl() { - return url; - } - - public HttpRequest setUrl(String url) { - this.url = url; - return this; - } - - public String getMethod() { - return method; - } - - public HttpRequest setMethod(String method) { - this.method = method; - return this; - } - - public Map getHeaders() { - return headers; - } - - public HttpRequest setHeaders(Map headers) { - this.headers = headers; - return this; - } - - public HttpRequest setContentType(String contentType) { - if (this.headers == null) { - this.headers = new HashMap<>(); - } - this.headers.put(CONTENT_TYPE, contentType); - return this; - } - - public HttpRequest addHeaders(String key, Object value) { - if (headers == null) { - headers = new HashMap<>(); - } - headers.put(key, value != null ? value.toString() : null); - return this; - } - - public Object getBody() { - return body; - } - - public HttpRequest setBody(Object body) { - this.body = body; - return this; - } - - public void setMaxRetryCount(int maxRetryCount) { - this.maxRetryCount = maxRetryCount; - } - - public int getMaxRetryCount() { - return maxRetryCount; - } - - public HttpRequest setMaxSocketTimeout(Integer maxSocketTimeout) { - this.maxSocketTimeout = maxSocketTimeout; - return this; - } - - public Integer getMaxSocketTimeout() { - return maxSocketTimeout; - } - - public Consumer getRequestConfigConsumer() { - return requestConfigConsumer; - } - - public void setRequestConfigConsumer(Consumer requestConfigConsumer) { - this.requestConfigConsumer = requestConfigConsumer; - } - - public Function getResponseHandler() { - return responseHandler; - } - - public HttpRequest setResponseHandler(Function responseHandler) { - this.responseHandler = responseHandler; - return this; - } - } - - public static class HttpResponse implements Serializable { - - private int status; - private long reqTime; - private Object response; - private Map headers; - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public long getReqTime() { - return reqTime; - } - - public void setReqTime(long reqTime) { - this.reqTime = reqTime; - } - - public Object getResponse() { - return response; - } - - public String getResponseToString() { - if (response == null) { - return null; - } - return response instanceof String ? (String) response : String.valueOf(response); - } - - public JSONObject getResponseToJson() { - return JSON.parseObject(getResponseToString()); - } - - public void setResponse(Object response) { - this.response = response; - } - - public Map getHeaders() { - return headers; - } - - public void setHeaders(Map headers) { - this.headers = headers; - } - } - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java deleted file mode 100644 index 973b5ebd..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/KeyUtils.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.util; - -import org.apache.commons.lang3.RandomStringUtils; - -import java.util.UUID; - -/** - * @author https://www.wdbyte.com - */ -public class KeyUtils { - - public synchronized static String key6() { - return RandomStringUtils.randomAlphanumeric(6); - } - - public synchronized static String key16() { - return RandomStringUtils.randomAlphanumeric(16); - } - - public static String uuid32() { - return UUID.randomUUID().toString().replace("-", ""); - } - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java deleted file mode 100644 index fca7914b..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/OrderNumberGenerator.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ruoyi.system.util; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.concurrent.ThreadLocalRandom; -public class OrderNumberGenerator { - // 订单编号前缀 - private static final String PREFIX = "NO"; - - // 时间格式化 - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMddHHmm"); - - // 生成订单编号 - public static String generate() { - // 获取当前日期时间字符串 - String dateTimeStr = DATE_FORMAT.format(new Date()); - - // 生成随机数 (这里举例生成一个5位随机数) - int randomNum = ThreadLocalRandom.current().nextInt(10000, 99999); - - // 拼接订单编号 - return dateTimeStr + randomNum; - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java deleted file mode 100644 index 9693975c..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WddPptApi.java +++ /dev/null @@ -1,438 +0,0 @@ -package org.ruoyi.system.util; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -/** - * 文多多PPT-API - * - * @author NSL - * @since 2024-12-30 - */ -public class WddPptApi { - - public static final String BASE_URL = "https://docmee.cn"; - private static Long DEFAULT_TIME_OUT = 5 * 60 * 1000L; - - public static String createApiToken(String apiKey, String uid, Integer limit) { - String url = BASE_URL + "/api/user/createApiToken"; - JSONObject body = new JSONObject(); - body.put("uid", uid); - body.put("limit", limit); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("Api-Key", apiKey); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("创建apiToken失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("创建apiToken异常," + result.getString("message")); - } - return result.getJSONObject("data").getString("token"); - } - - public static String parseFileData(String apiToken, File file, String content, String fileUrl) { - String url = BASE_URL + "/api/ppt/parseFileData"; - HttpUtils.HttpRequest httpRequest = new HttpUtils.HttpRequest(); - httpRequest.setUrl(url); - httpRequest.setMethod("POST"); - httpRequest.addHeaders("token", apiToken); - MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create(); - multipartEntity.setCharset(StandardCharsets.UTF_8); - if (file != null) { - multipartEntity.addBinaryBody("file", file); - } - if (content != null) { - multipartEntity.addTextBody("content", content, ContentType.create("text/plain", StandardCharsets.UTF_8)); - } - if (fileUrl != null) { - multipartEntity.addTextBody("fileUrl", fileUrl, ContentType.create("text/plain", StandardCharsets.UTF_8)); - } - httpRequest.setBody(multipartEntity.build()); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("解析文件或内容失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("解析文件或内容异常," + result.getString("message")); - } - return result.getJSONObject("data").getString("dataUrl"); - } - - /** - * 生产大纲 - */ - public static String generateOutline(String apiToken, String subject, String dataUrl, String prompt) { - String url = BASE_URL + "/api/ppt/generateOutline"; - JSONObject body = new JSONObject(); - body.put("subject", subject); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - StringBuilder sb = new StringBuilder(); - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - if (Objects.equals(json.getInteger("status"), -1)) { - throw new RuntimeException(json.getString("error")); - } - String text = json.getString("text"); - sb.append(text); - // 打印输出 - System.out.print(text); - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成大纲失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成大纲失败:" + result.getString("message")); - } - return sb.toString(); - } - - /** - * 生产大纲 - */ - public static SseEmitter sseGenerateOutline(String apiToken, String subject, String dataUrl, String prompt) { - String url = BASE_URL + "/api/ppt/generateOutline"; - JSONObject body = new JSONObject(); - body.put("subject", subject); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - SseEmitter sseEmitter = new SseEmitter(DEFAULT_TIME_OUT); - StringBuilder sb = new StringBuilder(); - new Thread(() -> { - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - Integer status = json.getInteger("status"); - if (Objects.equals(status, -1)) { - throw new RuntimeException(json.getString("error")); - } - String text = json.getString("text"); - try { - sseEmitter.send(SseEmitter.event().data(text)); - } catch (IOException e) { - throw new RuntimeException(e); - } - sb.append(text); - // status 4 表示生成完成 - if (status == 4) { - // 打印输出 - System.out.print(sb); - sseEmitter.complete(); - } - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成大纲失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成大纲失败:" + result.getString("message")); - } - }).start(); - return sseEmitter; - } - - /** - * 生成大纲内容 - */ - public static String generateContent(String apiToken, String outlineMarkdown, String dataUrl, String prompt) { - String url = BASE_URL + "/api/ppt/generateContent"; - JSONObject body = new JSONObject(); - body.put("outlineMarkdown", outlineMarkdown); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - StringBuilder sb = new StringBuilder(); - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - if (Objects.equals(json.getInteger("status"), -1)) { - throw new RuntimeException(json.getString("error")); - } - String text = json.getString("text"); - sb.append(text); - // 打印输出 - System.out.print(text); - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成大纲内容失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成大纲内容失败:" + result.getString("message")); - } - return sb.toString(); - } - - /** - * 流式生成大纲内容 - */ - public static SseEmitter sseGenerateContent(String apiToken, String outlineMarkdown, String dataUrl, String prompt) { - String url = BASE_URL + "/api/ppt/generateContent"; - JSONObject body = new JSONObject(); - body.put("outlineMarkdown", outlineMarkdown); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - SseEmitter sseEmitter = new SseEmitter(DEFAULT_TIME_OUT); - StringBuilder sb = new StringBuilder(); - new Thread(() -> { - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - Integer status = json.getInteger("status"); - if (Objects.equals(status, -1)) { - throw new RuntimeException(json.getString("error")); - } - String text = json.getString("text"); - try { - sseEmitter.send(text); - } catch (IOException e) { - throw new RuntimeException(e); - } - sb.append(text); - // status 4 表示生成完成 - if (status == 4) { - // 打印输出 - System.out.print(sb); - sseEmitter.complete(); - } - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成大纲内容失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成大纲内容失败:" + result.getString("message")); - } - }).start(); - return sseEmitter; - } - - public static Map asyncGenerateContent(String apiToken, String outlineMarkdown, String dataUrl, String templateId, String prompt) { - String url = BASE_URL + "/api/ppt/generateContent"; - JSONObject body = new JSONObject(); - body.put("asyncGenPptx", true); - body.put("templateId", templateId); - body.put("outlineMarkdown", outlineMarkdown); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - Map pptInfo = new HashMap<>(); - StringBuilder sb = new StringBuilder(); - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - if (Objects.equals(json.getInteger("status"), -1)) { - throw new RuntimeException(json.getString("error")); - } - if (json.getString("pptId") != null) { - pptInfo.put("id", json.getString("pptId")); - } - String text = json.getString("text"); - sb.append(text); - // 打印输出 - System.out.print(text); - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成大纲内容失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成大纲内容失败:" + result.getString("message")); - } - pptInfo.put("markdown", sb.toString()); - return pptInfo; - } - - public static String randomOneTemplateId(String apiToken) { - String url = BASE_URL + "/api/ppt/randomTemplates"; - JSONObject body = new JSONObject(); - body.put("size", 1); - JSONObject filters = new JSONObject(); - filters.put("type", 1); - body.put("filters", filters); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("获取模板失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("获取模板异常," + result.getString("message")); - } - JSONArray data = result.getJSONArray("data"); - JSONObject template = data.getJSONObject(0); - return template.getString("id"); - } - - /** - * 生成PPT - */ - public static JSONObject generatePptx(String apiToken, String templateId, String markdown, boolean pptxProperty) { - String url = BASE_URL + "/api/ppt/generatePptx"; - JSONObject body = new JSONObject(); - body.put("templateId", templateId); - body.put("outlineContentMarkdown", markdown); - body.put("pptxProperty", pptxProperty); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("生成PPT失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("生成PPT异常," + result.getString("message")); - } - return result.getJSONObject("data").getJSONObject("pptInfo"); - } - - public static JSONObject downloadPptx(String apiToken, String id) { - String url = BASE_URL + "/api/ppt/downloadPptx"; - JSONObject body = new JSONObject(); - body.put("id", id); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("下载PPT失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("下载PPT异常," + result.getString("message")); - } - return result.getJSONObject("data"); - } - - public static JSONObject directGeneratePptx(String apiToken, boolean stream, String templateId, String subject, String dataUrl, String prompt, boolean pptxProperty) { - String url = BASE_URL + "/api/ppt/directGeneratePptx"; - JSONObject body = new JSONObject(); - body.put("stream", stream); - body.put("templateId", templateId); - body.put("subject", subject); - body.put("dataUrl", dataUrl); - body.put("prompt", prompt); - body.put("pptxProperty", pptxProperty); - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body.toJSONString()); - httpRequest.addHeaders("token", apiToken); - if (stream) { - // 流式生成 - JSONObject[] pptInfo = new JSONObject[1]; - HttpUtils.HttpResponse response = HttpUtils.requestWithEventStream(httpRequest, data -> { - if (data == null || data.isEmpty()) { - return; - } - JSONObject json = JSONObject.parseObject(data); - if (Objects.equals(json.getInteger("status"), -1)) { - throw new RuntimeException(json.getString("error")); - } - if (Objects.equals(json.getInteger("status"), 4) && json.containsKey("result")) { - pptInfo[0] = json.getJSONObject("result"); - } - String text = json.getString("text"); - // 打印输出 - System.out.print(text); - }); - if (response.getStatus() != 200) { - throw new RuntimeException("生成PPT失败,httpStatus=" + response.getStatus()); - } - if (response.getHeaders().getOrDefault("Content-Type", response.getHeaders().get("content-type")).contains("application/json")) { - JSONObject result = response.getResponseToJson(); - throw new RuntimeException("生成PPT失败:" + result.getString("message")); - } - return pptInfo[0]; - } else { - // 非流式生成 - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("生成PPT失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("生成PPT异常," + result.getString("message")); - } - return result.getJSONObject("data").getJSONObject("pptInfo"); - } - } - - /** - * 查询所有PPT列表 - */ - public static JSONObject listAllPptx(String apiToken, String body) { - String url = BASE_URL + "/api/ppt/listAllPptx"; - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body); - httpRequest.addHeaders("token", apiToken); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("查询所有PPT列表失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("查询所有PPT列表异常," + result.getString("message")); - } - return result; - } - - /** - * 分页查询 PPT 模板 - */ - public static JSONObject getPptTemplates(String apiToken, String body) { - String url = BASE_URL + "/api/ppt/templates"; - HttpUtils.HttpRequest httpRequest = HttpUtils.HttpRequest.postJson(url); - httpRequest.setBody(body); - httpRequest.addHeaders("token", apiToken); - HttpUtils.HttpResponse response = HttpUtils.request(httpRequest); - if (response.getStatus() != 200) { - throw new RuntimeException("分页查询 PPT 模板失败,httpStatus=" + response.getStatus()); - } - JSONObject result = response.getResponseToJson(); - if (result.getIntValue("code") != 0) { - throw new RuntimeException("分页查询 PPT 模板异常," + result.getString("message")); - } - return result; - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java deleted file mode 100644 index b303d774..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeChatScanHttpUtil.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.ruoyi.system.util; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import okhttp3.*; -import org.ruoyi.common.core.service.ConfigService; -import org.springframework.stereotype.Component; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -/** - * 绘声美音HTTP请求工具类 - * - * @author NSL - * @since 2024-12-25 - */ -@RequiredArgsConstructor -@Component -@Slf4j -public class WeChatScanHttpUtil { - - private final ConfigService configService; - - private static final String TOKEN = "token"; - - private final OkHttpClient client = new OkHttpClient.Builder() - .connectTimeout(300, TimeUnit.SECONDS) - .writeTimeout(300, TimeUnit.SECONDS) - .readTimeout(300, TimeUnit.SECONDS) - .build(); - - public String executeRequest(Request request) { - try (Response response = client.newCall(request).execute()) { - if (!response.isSuccessful()) { - throw new IOException("Unexpected code " + response); - } - return response.body() != null ? response.body().string() : null; - } catch (IOException e) { - // 这里应根据实际情况使用适当的日志记录方式 - log.error("请求失败: {}",e.getMessage()); - return null; - } - } - - public Request createPostRequest(String url, String json) { - RequestBody body = RequestBody.create(json, MediaType.get("application/json; charset=utf-8")); - return new Request.Builder() - .url(url) - .post(body) - .header("Content-Type", "application/json") - .header(TOKEN, getKey(TOKEN)) - .build(); - } - - public String getKey(String key) { - return configService.getConfigValue("cover", key); - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java deleted file mode 100644 index 56fbd197..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinApiUtil.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.ruoyi.system.util; - -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.system.domain.model.WeixinQrCode; -import org.springframework.stereotype.Component; - -import java.net.URI; -import java.time.LocalDateTime; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -@Component -@RequiredArgsConstructor -public class WeixinApiUtil { - - private final ConfigService configService; - - private static String QR_CODE_URL_PREFIX = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="; - - private static String ACCESS_TOKEN = null; - private static LocalDateTime ACCESS_TOKEN_EXPIRE_TIME = null; - /** - * 二维码 Ticket 过期时间 - */ - private static int QR_CODE_TICKET_TIMEOUT = 10 * 60; - - /** - * 获取 access token - * - * @return - */ - public synchronized String getAccessToken() { - if (ACCESS_TOKEN != null && ACCESS_TOKEN_EXPIRE_TIME.isAfter(LocalDateTime.now())) { - return ACCESS_TOKEN; - } - String api = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + getKey("appid") + "&secret=" - + getKey("secret"); - String result = HttpUtil.get(api); - JSONObject jsonObject = JSON.parseObject(result); - ACCESS_TOKEN = jsonObject.getString("access_token"); - ACCESS_TOKEN_EXPIRE_TIME = LocalDateTime.now().plusSeconds(jsonObject.getLong("expires_in") - 10); - return ACCESS_TOKEN; - } - - /** - * 获取二维码 Ticket - * - * https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html - * - * @return - */ - public WeixinQrCode getQrCode() { - String api = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + getAccessToken(); - String jsonBody = String.format("{\n" - + " \"expire_seconds\": %d,\n" - + " \"action_name\": \"QR_STR_SCENE\",\n" - + " \"action_info\": {\n" - + " \"scene\": {\n" - + " \"scene_str\": \"%s\"\n" - + " }\n" - + " }\n" - + "}", QR_CODE_TICKET_TIMEOUT, KeyUtils.uuid32()); - String result = HttpUtil.post(api, jsonBody); - log.info("get qr code params:{}", jsonBody); - log.info("get qr code result:{}", result); - WeixinQrCode weixinQrCode = JSON.parseObject(result, WeixinQrCode.class); - weixinQrCode.setQrCodeUrl(QR_CODE_URL_PREFIX + URI.create(weixinQrCode.getTicket()).toASCIIString()); - return weixinQrCode; - } - - public String getKey(String key) { - return configService.getConfigValue("weixin", key); - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java deleted file mode 100644 index e958d95f..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinMsgUtil.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.ruoyi.system.util; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.lang3.StringUtils; -import org.ruoyi.system.domain.model.ReceiveMessage; - -/** - * @author https://www.wdbyte.com - */ -public class WeixinMsgUtil { - - // 事件-关注 - private static String EVENT_SUBSCRIBE = "subscribe"; - - /** - * 微信消息转对象 - * - * @param xml - * @return - */ - public static ReceiveMessage msgToReceiveMessage(String xml) { - JSONObject jsonObject = JSON.parseObject(XmlUtil.xml2json(xml)); - ReceiveMessage receiveMessage = new ReceiveMessage(); - receiveMessage.setToUserName(jsonObject.getString("ToUserName")); - receiveMessage.setFromUserName(jsonObject.getString("FromUserName")); - receiveMessage.setCreateTime(jsonObject.getString("CreateTime")); - receiveMessage.setMsgType(jsonObject.getString("MsgType")); - receiveMessage.setContent(jsonObject.getString("Content")); - receiveMessage.setMsgId(jsonObject.getString("MsgId")); - receiveMessage.setEvent(jsonObject.getString("Event")); - receiveMessage.setTicket(jsonObject.getString("Ticket")); - return receiveMessage; - } - - /** - * 是否是订阅事件 - * - * @param receiveMessage - * @return - */ - public static boolean isEventAndSubscribe(ReceiveMessage receiveMessage) { - return StringUtils.equals(receiveMessage.getEvent(), EVENT_SUBSCRIBE); - } - - /** - * 是否是二维码扫描事件 - * - * @param receiveMessage - * @return - */ - public static boolean isScanQrCode(ReceiveMessage receiveMessage) { - return StringUtils.isNotEmpty(receiveMessage.getTicket()); - } - - /** - * 获取扫描的二维码 Ticket - * - * @param receiveMessage - * @return - */ - public static String getQrCodeTicket(ReceiveMessage receiveMessage) { - return receiveMessage.getTicket(); - } - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java deleted file mode 100644 index df01aecd..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/WeixinQrCodeCacheUtil.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ruoyi.system.util; - -import java.util.LinkedHashMap; - -/** - * 微信二维码缓存工具类 - * - * @author https://www.wdbyte.com - */ -public class WeixinQrCodeCacheUtil { - private static long MAX_CACHE_SIZE = 10000; - private static LinkedHashMap QR_CODE_TICKET_MAP = new LinkedHashMap<>(); - - /** - * 增加一个 Ticket - * 首次 put:value 为 "" - * 再次 put: value 有 openId,若openId已经存在,则已被扫码 - * - * @param key - * @param value - */ - public synchronized static void put(String key, String value) { - QR_CODE_TICKET_MAP.put(key, value); - if (QR_CODE_TICKET_MAP.size() > MAX_CACHE_SIZE) { - String first = QR_CODE_TICKET_MAP.keySet().stream().findFirst().get(); - QR_CODE_TICKET_MAP.remove(first); - } - } - - public synchronized static String get(String key) { - return QR_CODE_TICKET_MAP.remove(key); - } - -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java deleted file mode 100644 index 00d023bd..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/util/XmlUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.system.util; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -/** - * @author https://www.wdbyte.com - */ -@Slf4j -public class XmlUtil { - - public static String xml2json(String requestBody) { - requestBody = StringUtils.trim(requestBody); - XmlMapper xmlMapper = new XmlMapper(); - JsonNode node = null; - try { - node = xmlMapper.readTree(requestBody.getBytes()); - ObjectMapper jsonMapper = new ObjectMapper(); - return jsonMapper.writeValueAsString(node); - } catch (Exception e) { - log.error("xml 2 json error,msg:" + e.getMessage(), e); - } - return null; - } -} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml deleted file mode 100644 index b5745320..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml deleted file mode 100644 index 0871a29e..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/CoverPromptAudioMapper.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml deleted file mode 100644 index d1ffcf60..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/PaymentOrdersMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml deleted file mode 100644 index 712c9a87..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysLogininforMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml deleted file mode 100644 index a2ace81e..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysModelMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml deleted file mode 100644 index 1b7c4a1f..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/SysPackagePlanMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml deleted file mode 100644 index c7af5bf3..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobConfigMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml deleted file mode 100644 index 32582d17..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobKeywordMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml b/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml deleted file mode 100644 index aab96635..00000000 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/resources/mapper/WxRobRelationMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules-api/ruoyi-weixin-api/pom.xml b/ruoyi-modules-api/ruoyi-weixin-api/pom.xml deleted file mode 100644 index 1d16920e..00000000 --- a/ruoyi-modules-api/ruoyi-weixin-api/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - - ruoyi-weixin-api - - - 17 - 17 - UTF-8 - - - diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index 20c54198..df6b4c7d 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -2,13 +2,14 @@ + 4.0.0 ruoyi-ai org.ruoyi ${revision} ../pom.xml - 4.0.0 + ruoyi-modules pom diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index 9f254284..028b57da 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -15,7 +15,6 @@ - 5.8.18 20220924 5.0.0-beta.9 1.1.2-beta0 @@ -35,26 +34,12 @@ spring-boot-starter-data-redis - - cn.hutool - hutool-core - ${hutool.version} - - - cn.hutool - hutool-cache - ${hutool.version} - - - cn.hutool - hutool-crypto - ${hutool.version} - org.json json ${org-json.version} + net.dv8tion JDA @@ -66,6 +51,7 @@ + com.unfbx chatgpt-java @@ -77,16 +63,19 @@ + eu.maxschuster dataurl ${dataurl.version} + com.github.xiaoymin knife4j-openapi2-spring-boot-starter ${knife4j.verison} + eu.bitwalker UserAgentUtils @@ -98,37 +87,28 @@ spring-boot-configuration-processor true + org.projectlombok lombok true + jakarta.servlet jakarta.servlet-api - - org.ruoyi - ruoyi-system - - org.ruoyi ruoyi-knowledge-api + org.ruoyi ruoyi-chat-api - 1.0.0 - compile - - - cn.hutool - hutool-all - 5.8.26 - compile + diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/ChatConfig.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java similarity index 96% rename from ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/ChatConfig.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java index 624779c4..560f2d86 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/config/ChatConfig.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java @@ -1,4 +1,4 @@ -package org.ruoyi.common.chat.config; +package org.ruoyi.chat.config; import lombok.Getter; import lombok.RequiredArgsConstructor; @@ -28,7 +28,6 @@ public class ChatConfig { private final ConfigService configService; - // 重启才会生效 @Bean public OpenAiStreamClient openAiStreamClient() { String apiHost = configService.getConfigValue("chat", "apiHost"); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/OkHttpConfig.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/OkHttpConfig.java new file mode 100644 index 00000000..907569a1 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/OkHttpConfig.java @@ -0,0 +1,43 @@ +package org.ruoyi.chat.config; + +import jakarta.annotation.PostConstruct; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.ruoyi.common.core.utils.OkHttpUtil; + +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +@RequiredArgsConstructor +public class OkHttpConfig { + + private final IChatModelService chatModelService; + private final Map okHttpUtilMap = new HashMap<>(); + @Getter + private String generate; + + @PostConstruct + public void init() { + initializeOkHttpUtil("suno"); + initializeOkHttpUtil("luma"); + initializeOkHttpUtil("ppt"); + } + + private void initializeOkHttpUtil(String modelName) { + ChatModelVo chatModelVo = chatModelService.selectModelByName(modelName); + OkHttpUtil okHttpUtil = new OkHttpUtil(); + okHttpUtil.setApiHost(chatModelVo.getApiHost()); + okHttpUtil.setApiKey(chatModelVo.getApiKey()); + generate = String.valueOf(chatModelVo.getModelPrice()); + okHttpUtilMap.put(modelName, okHttpUtil); + } + + public OkHttpUtil getOkHttpUtil(String modelName) { + return okHttpUtilMap.get(modelName); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java index 4d5f9fae..c75f6a1a 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java @@ -6,11 +6,9 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.chat.service.chat.ISseService; -import org.ruoyi.common.chat.domain.request.ChatRequest; - +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; - import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.domain.model.LoginUser; @@ -19,7 +17,6 @@ import org.ruoyi.common.mybatis.core.page.PageQuery; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.domain.bo.ChatMessageBo; - import org.ruoyi.domain.vo.ChatMessageVo; import org.ruoyi.service.IChatMessageService; import org.springframework.core.io.Resource; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/CoverController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/CoverController.java deleted file mode 100644 index bf9631d8..00000000 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/CoverController.java +++ /dev/null @@ -1,58 +0,0 @@ -package org.ruoyi.chat.controller; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.vo.cover.CoverParamVo; -import org.ruoyi.system.domain.vo.cover.CoverVo; -import org.ruoyi.system.domain.vo.cover.CoverCallbackVo; -import org.ruoyi.system.domain.vo.cover.MusicVo; -import org.ruoyi.system.service.ICoverService; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 绘声美音-翻唱 - * - * @author NSL - * @since 2024-12-25 - */ -@Api(tags = "歌曲翻唱") -@RequiredArgsConstructor -@RestController -@RequestMapping("/cover") -public class CoverController extends BaseController { - - private final ICoverService coverService; - - @ApiOperation(value = "查找歌曲") - @GetMapping("/searchMusic") - public R> searchMusic(String musicName) { - return R.ok(coverService.searchMusic(musicName)); - } - - @ApiOperation(value = "翻唱歌曲") - @PostMapping("/saveCoverTask") - public R saveCoverTask(@RequestBody CoverParamVo coverParamVo) { - coverService.saveCoverTask(coverParamVo); - return R.ok("翻唱歌曲处理中请等待10分钟-30分钟,翻唱结果请到翻唱记录中查询!"); - } - - @ApiOperation(value = "查询翻唱记录") - @PostMapping("/searchCoverRecord") - public R> searchCoverRecord(@RequestBody PageQuery pageQuery) { - return R.ok(coverService.searchCoverRecord(pageQuery)); - } - - @ApiOperation(value = "翻唱回调接口") - @PostMapping("/callback") - public R callback(@RequestBody CoverCallbackVo coverCallbackVo) { - coverService.callback(coverCallbackVo); - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java index cb2f2591..74dec5c3 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java @@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j; import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.chat.domain.InsightFace; +import org.ruoyi.chat.service.chat.IChatCostService; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java index f3628f42..21a40eee 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java @@ -4,11 +4,13 @@ import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; + import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; +import org.ruoyi.chat.config.OkHttpConfig; +import org.ruoyi.chat.domain.bo.GenerateLuma; +import org.ruoyi.chat.service.chat.IChatCostService; import org.ruoyi.common.core.utils.OkHttpUtil; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.GenerateLuma; import org.springframework.web.bind.annotation.*; /** diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/PptController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/PptController.java deleted file mode 100644 index 2126f01f..00000000 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/PptController.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.ruoyi.chat.controller; - -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.domain.vo.ppt.*; -import org.ruoyi.system.service.IPptService; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -/** - * AI_PPT - * - * @author NSL - * @since 2024-12-30 - */ -@Api(tags = "AI-PPT") -@RequiredArgsConstructor -@RestController -@RequestMapping("/ppt") -public class PptController extends BaseController { - - private final IPptService pptService; - - @ApiOperation(value = "获取API Token") - @GetMapping("/getApiToken") - public R getApiToken() { - return R.ok(pptService.getApiToken()); - } - - @ApiOperation(value = "同步流式生成 PPT") - @PostMapping("/syncStreamGeneratePpt") - public R syncStreamGeneratePpt(String title) { - pptService.syncStreamGeneratePpt(title); - return R.ok(); - } - - @ApiOperation(value = "查询所有PPT列表") - @PostMapping("/selectPptList") - public R selectPptList(@RequestBody PptAllQueryDto pptQueryVo) { - pptService.selectPptList(pptQueryVo); - return R.ok(); - } - - @ApiOperation(value = "生成大纲") - @PostMapping(value = "/generateOutline", produces = {MediaType.TEXT_EVENT_STREAM_VALUE}) - public SseEmitter generateOutline(@RequestBody PptGenerateOutlineDto generateOutlineDto) { - return pptService.generateOutline(generateOutlineDto); - } - - @ApiOperation(value = "生成大纲内容") - @PostMapping(value = "/generateContent", produces = {MediaType.TEXT_EVENT_STREAM_VALUE}) - public SseEmitter generateOutline(@RequestBody PptGenerateContentDto generateContentDto) { - return pptService.generateContent(generateContentDto); - } - - @ApiOperation(value = "分页查询 PPT 模板") - @PostMapping("/getTemplates") - public R getPptTemplates(@RequestBody PptTemplateQueryDto pptQueryVo) { - return R.ok(pptService.getPptTemplates(pptQueryVo)); - } - - @ApiOperation(value = "生成 PPT") - @PostMapping("/generatePptx") - public R generatePptx(@RequestBody PptGeneratePptxDto pptQueryVo) { - return R.ok(pptService.generatePptx(pptQueryVo)); - } - - @ApiOperation(value = "生成PPT成功回调接口") - @PostMapping("/successCallback") - public R successCallback() { - pptService.successCallback(); - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java index 11fd751c..5299bf2b 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java @@ -9,6 +9,7 @@ import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; import org.ruoyi.chat.domain.dto.*; import org.ruoyi.chat.enums.ActionType; +import org.ruoyi.chat.service.chat.IChatCostService; import org.ruoyi.chat.util.MjOkHttpUtil; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java index 07754fe5..8d9dd916 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java @@ -4,12 +4,14 @@ import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; + import okhttp3.Request; import org.apache.commons.lang3.math.NumberUtils; +import org.ruoyi.chat.config.OkHttpConfig; +import org.ruoyi.chat.domain.bo.GenerateLyric; +import org.ruoyi.chat.domain.bo.GenerateSuno; +import org.ruoyi.chat.service.chat.IChatCostService; import org.ruoyi.common.core.utils.OkHttpUtil; -import org.ruoyi.system.cofing.OkHttpConfig; -import org.ruoyi.system.domain.GenerateLyric; -import org.ruoyi.system.domain.GenerateSuno; import org.springframework.web.bind.annotation.*; @RestController diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java deleted file mode 100644 index a551cbff..00000000 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/VoiceController.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.ruoyi.chat.controller; - -import lombok.RequiredArgsConstructor; -import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.web.core.BaseController; -import org.ruoyi.system.request.RoleListDto; -import org.ruoyi.system.request.SimpleGenerateRequest; -import org.ruoyi.system.response.SimpleGenerateDataResponse; -import org.ruoyi.system.response.rolelist.ChatAppStoreVO; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 应用市场 - * - * @author Lion Li - * @date 2024-03-19 - */ -@RequiredArgsConstructor -@RestController -@RequestMapping("/system/voice") -public class VoiceController extends BaseController { - - private final IChatAppStoreService voiceRoleService; - - /** - * 实时语音生成 - */ - @PostMapping("/simpleGenerate") - public R simpleGenerate(@RequestBody SimpleGenerateRequest simpleGenerateRequest) { - return R.ok(voiceRoleService.simpleGenerate(simpleGenerateRequest)); - } - - /** - * 角色市场 - */ - @GetMapping("/roleList") - public R> roleList() { - return R.ok(voiceRoleService.roleList()); - } - - /** - * 收藏角色 - */ - @PostMapping("/copyRole") - public R copyRole(@RequestBody RoleListDto roleListDto) { - voiceRoleService.copyRole(roleListDto); - return R.ok(); - } -} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java new file mode 100644 index 00000000..8cef12cf --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLuma.java @@ -0,0 +1,22 @@ +package org.ruoyi.chat.domain.bo; + +import lombok.Data; + +/** + * 描述:文生视频请求对象 + * + * @author ageerle@163.com + * date 2024/6/27 + */ +@Data +public class GenerateLuma { + + private String aspect_ratio; + + private boolean expand_prompt; + + private String image_url; + + private String user_prompt; + +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java new file mode 100644 index 00000000..699c7801 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateLyric.java @@ -0,0 +1,23 @@ +package org.ruoyi.chat.domain.bo; + +import lombok.Data; + +/** + * 描述:生成歌词 + * + * @author ageerle@163.com + * date 2024/6/27 + */ +@Data +public class GenerateLyric { + + /** + * 歌词提示词 + */ + private String prompt; + + /** + * 回调地址 + */ + private String notify_hook; +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateSuno.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateSuno.java new file mode 100644 index 00000000..444969e8 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/domain/bo/GenerateSuno.java @@ -0,0 +1,64 @@ +package org.ruoyi.chat.domain.bo; + + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author WangLe + */ +@Data +public class GenerateSuno implements Serializable { + + /** + * 歌词 (自定义模式专用) + */ + private String prompt; + + /** + * mv模型,chirp-v3-0、chirp-v3-5。不写默认 chirp-v3-0 + */ + private String mv; + + /** + * 标题(自定义模式专用) + */ + private String title; + + /** + * 风格标签(自定义模式专用) + */ + private String tags; + + /** + * 是否生成纯音乐,true 为生成纯音乐 + */ + private boolean make_instrumental; + + /** + * 任务id,用于对之前的任务再操作 + */ + private String task_id; + + /** + * float,歌曲延长时间,单位秒 + */ + private int continue_at; + + /** + * 歌曲id,需要续写哪首歌 + */ + private String continue_clip_id; + + /** + * 灵感模式提示词(灵感模式专用) + */ + private String gpt_description_prompt; + + /** + * 回调地址 + */ + private String notify_hook; + +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/BillingType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/BillingType.java new file mode 100644 index 00000000..40c3ad28 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/BillingType.java @@ -0,0 +1,34 @@ +package org.ruoyi.chat.enums; + +import lombok.Getter; + +@Getter +public enum BillingType { + TOKEN("1", "token扣费"), // token扣费 + TIMES("2", "次数扣费"); // 次数扣费 + + private final String code; + private final String description; + + BillingType(String code, String description) { + this.code = code; + this.description = description; + } + + public static BillingType fromCode(String code) { + for (BillingType type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java new file mode 100644 index 00000000..3c8d8be1 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java @@ -0,0 +1,34 @@ +package org.ruoyi.chat.enums; + +import lombok.Getter; + +@Getter +public enum UserGradeType { + UNPAID("0", "未付费"), // 未付费用户 + PAID("1", "已付费"); // 已付费用户 + + private final String code; + private final String description; + + UserGradeType(String code, String description) { + this.code = code; + this.description = description; + } + + public static UserGradeType fromCode(String code) { + for (UserGradeType type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java index f64e6158..aa70c9ae 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java @@ -11,7 +11,10 @@ import okhttp3.ResponseBody; import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; import org.jetbrains.annotations.NotNull; +import org.ruoyi.chat.service.chat.IChatCostService; +import org.ruoyi.common.chat.domain.request.ChatRequest; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.core.utils.SpringUtils; import org.ruoyi.common.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -40,6 +43,9 @@ public class SSEEventSourceListener extends EventSourceListener { private StringBuilder stringBuffer; private String modelName; + + private static final IChatCostService chatCostService = SpringUtils.getBean(IChatCostService.class); + /** * {@inheritDoc} */ @@ -55,11 +61,15 @@ public class SSEEventSourceListener extends EventSourceListener { @Override public void onEvent(@NotNull EventSource eventSource, String id, String type, String data) { try { + if ("[DONE]".equals(data)) { //成功响应 emitter.complete(); - - // 扣除费用 (消耗字符 模型名称) + // 扣除费用 + ChatRequest chatRequest = new ChatRequest(); + chatRequest.setModel(modelName); + chatRequest.setPrompt(stringBuffer.toString()); + chatCostService.deductToken(chatRequest); return; } // 解析返回内容 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java index 234360a0..7d3bb3a7 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatCostService.java @@ -1,6 +1,6 @@ package org.ruoyi.chat.service.chat; -import org.ruoyi.domain.bo.ChatMessageBo; +import org.ruoyi.common.chat.request.ChatRequest; /** * 计费管理Service接口 @@ -11,16 +11,16 @@ import org.ruoyi.domain.bo.ChatMessageBo; public interface IChatCostService { /** - * 根据消耗的tokens扣除余额 + * 扣除余额并且保存记录 * - * @param chatMessageBo + * @param chatRequest 对话信息 * @return 结果 */ - void deductToken(ChatMessageBo chatMessageBo); + void deductToken(ChatRequest chatRequest); /** - * 扣除用户的余额 + * 直接扣除用户的余额 * */ void deductUserBalance(Long userId, Double numberCost); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java index 84da5b42..cc3bb4b9 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java @@ -1,7 +1,7 @@ package org.ruoyi.chat.service.chat; import jakarta.servlet.http.HttpServletRequest; -import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.files.UploadFileResponse; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; @@ -62,4 +62,13 @@ public interface ISseService { * @return 回复内容 */ String wxCpChat(String prompt); + + + /** + * 联网查询 + * + * @param prompt 提示词 + * @return 查询内容 + */ + String webSearch (String prompt); } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java new file mode 100644 index 00000000..66be79f8 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java @@ -0,0 +1,166 @@ +package org.ruoyi.chat.service.chat.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.enums.BillingType; +import org.ruoyi.chat.enums.UserGradeType; +import org.ruoyi.chat.service.chat.IChatCostService; +import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.common.chat.utils.TikTokensUtil; +import org.ruoyi.common.core.domain.model.LoginUser; +import org.ruoyi.common.core.exception.ServiceException; +import org.ruoyi.common.core.exception.base.BaseException; +import org.ruoyi.common.satoken.utils.LoginHelper; +import org.ruoyi.domain.ChatToken; +import org.ruoyi.domain.bo.ChatMessageBo; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatMessageService; +import org.ruoyi.service.IChatModelService; +import org.ruoyi.service.IChatTokenService; +import org.ruoyi.system.domain.SysUser; +import org.ruoyi.system.mapper.SysUserMapper; +import org.springframework.stereotype.Service; + + +/** + * 计费管理Service实现 + * + * @author ageerle + * @date 2025-04-08 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ChatCostServiceImpl implements IChatCostService { + + private final SysUserMapper sysUserMapper; + + private final IChatMessageService chatMessageService; + + private final IChatTokenService chatTokenService; + + private final IChatModelService chatModelService; + + /** + * 扣除用户余额 + */ + public void deductToken(ChatRequest chatRequest) { + + int tokens = TikTokensUtil.tokens(chatRequest.getModel(), chatRequest.getPrompt()); + + String modelName = chatRequest.getModel(); + + ChatMessageBo chatMessageBo = new ChatMessageBo(); + + // 计算总token数 + ChatToken chatToken = chatTokenService.queryByUserId(getUserId(), modelName); + if (chatToken == null) { + chatToken = new ChatToken(); + chatToken.setToken(0); + } + int totalTokens = chatToken.getToken() + tokens; + // 如果总token数大于等于1000,进行费用扣除 + if (totalTokens >= 1000) { + // 计算费用 + int token1 = totalTokens / 1000; + int token2 = totalTokens % 1000; + if (token2 > 0) { + // 保存剩余tokens + chatToken.setModelName(modelName); + chatToken.setUserId(getUserId()); + chatToken.setToken(token2); + chatTokenService.editToken(chatToken); + } else { + chatTokenService.resetToken(getUserId(), modelName); + } + ChatModelVo chatModelVo = chatModelService.selectModelByName(modelName); + double cost = chatModelVo.getModelPrice(); + if (BillingType.TIMES.getCode().equals(chatModelVo.getModelType())) { + // 按次数扣费 + deductUserBalance(getUserId(), cost); + chatMessageBo.setDeductCost(cost); + }else { + // 按token扣费 + Double numberCost = token1 * cost; + deductUserBalance(chatMessageBo.getUserId(), numberCost); + chatMessageBo.setDeductCost(numberCost); + } + chatMessageBo.setContent(chatRequest.getPrompt()); + } else { + deductUserBalance(getUserId(), 0.0); + chatMessageBo.setDeductCost(0d); + chatMessageBo.setRemark("不满1kToken,计入下一次!"); + chatToken.setToken(totalTokens); + chatToken.setModelName(chatMessageBo.getModelName()); + chatToken.setUserId(chatMessageBo.getUserId()); + chatTokenService.editToken(chatToken); + } + // 保存消息记录 + chatMessageService.insertByBo(chatMessageBo); + } + + /** + * 从用户余额中扣除费用 + * + * @param userId 用户ID + * @param numberCost 要扣除的费用 + */ + @Override + public void deductUserBalance(Long userId, Double numberCost) { + SysUser sysUser = sysUserMapper.selectById(userId); + if (sysUser == null) { + return; + } + + Double userBalance = sysUser.getUserBalance(); + if (userBalance < numberCost || userBalance == 0) { + throw new ServiceException("余额不足, 请充值"); + } + sysUserMapper.update(null, + new LambdaUpdateWrapper() + .set(SysUser::getUserBalance, Math.max(userBalance - numberCost, 0)) + .eq(SysUser::getUserId, userId)); + } + + /** + * 扣除任务费用 + */ + @Override + public void taskDeduct(String type,String prompt, double cost) { + // 判断用户是否付费 + checkUserGrade(); + // 扣除费用 + deductUserBalance(getUserId(), cost); + // 保存消息记录 + ChatMessageBo chatMessageBo = new ChatMessageBo(); + chatMessageBo.setUserId(getUserId()); + chatMessageBo.setModelName(type); + chatMessageBo.setContent(prompt); + chatMessageBo.setDeductCost(cost); + chatMessageBo.setTotalTokens(0); + chatMessageService.insertByBo(chatMessageBo); + } + + /** + * 判断用户是否付费 + */ + @Override + public void checkUserGrade() { + SysUser sysUser = sysUserMapper.selectById(getUserId()); + if(UserGradeType.UNPAID.getCode().equals(sysUser.getUserGrade())){ + throw new BaseException("该模型仅限付费用户使用。请升级套餐,开启高效体验之旅!"); + } + } + + /** + * 获取用户Id + */ + public Long getUserId() { + LoginUser loginUser = LoginHelper.getLoginUser(); + if (loginUser == null) { + throw new BaseException("用户未登录!"); + } + return loginUser.getUserId(); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 2e3e294d..df499ee3 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -1,8 +1,11 @@ package org.ruoyi.chat.service.chat.impl; import cn.dev33.satoken.stp.StpUtil; -import cn.hutool.extra.servlet.ServletUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.protobuf.ServiceException; +import com.zhipu.oapi.ClientV4; +import com.zhipu.oapi.service.v4.tools.*; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.chat.OllamaChatMessage; import io.github.ollama4j.models.chat.OllamaChatMessageRole; @@ -13,11 +16,13 @@ import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.*; +import org.ruoyi.chat.config.ChatConfig; import org.ruoyi.chat.listener.SSEEventSourceListener; +import org.ruoyi.chat.service.chat.IChatCostService; import org.ruoyi.chat.service.chat.ISseService; -import org.ruoyi.common.chat.config.ChatConfig; -import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.chat.util.IpUtil; +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.chat.ChatCompletion; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; @@ -26,12 +31,17 @@ import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.entity.files.UploadFileResponse; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.core.utils.file.FileUtils; import org.ruoyi.common.core.utils.file.MimeTypeUtils; import org.ruoyi.common.redis.utils.RedisUtils; + import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.EmbeddingService; import org.ruoyi.service.IChatModelService; +import org.ruoyi.service.VectorStoreService; import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.Resource; import org.springframework.http.MediaType; @@ -48,8 +58,12 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; @Service @Slf4j @@ -62,33 +76,80 @@ public class SseServiceImpl implements ISseService { private final IChatModelService chatModelService; + private final EmbeddingService embeddingService; + + private final VectorStoreService vectorStore; + + private final ConfigService configService; + + private final IChatCostService chatCostService; + + private static final String requestIdTemplate = "mycompany-%d"; + + private static final ObjectMapper mapper = new ObjectMapper(); + @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { SseEmitter sseEmitter = new SseEmitter(0L); SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); // 获取对话消息列表 List messages = chatRequest.getMessages(); + // 用户对话内容 + String chatString = null; try { if (StpUtil.isLogin()) { // 通过模型名称查询模型信息 ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); // 构建api请求客户端 openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + // 设置默认提示词 + Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); + messages.add(0,sysMessage); - // 模型设置默认提示词 + // 查询向量库相关信息加入到上下文 + if(chatRequest.getKid()!=null){ + List knMessages = new ArrayList<>(); + String content = messages.get(messages.size() - 1).getContent().toString(); + List nearestList; + List queryVector = embeddingService.getQueryVector(content, chatRequest.getKid()); + nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); + for (String prompt : nearestList) { + Message userMessage = Message.builder().content(prompt).role(Message.Role.USER).build(); + knMessages.add(userMessage); + } + Message userMessage = Message.builder().content(content + (!nearestList.isEmpty() ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")).role(Message.Role.USER).build(); + knMessages.add(userMessage); + messages.addAll(knMessages); + } - // 是否开启联网查询 + // 获取用户对话信息 + Object content = messages.get(messages.size() - 1).getContent(); + if (content instanceof List listContent) { + if (CollectionUtil.isNotEmpty(listContent)) { + chatString = listContent.get(0).toString(); + } + } else if (content instanceof String) { + chatString = (String) content; + } + + // 加载联网信息 + if(chatRequest.getSearch()){ + Message message = Message.builder().role(Message.Role.ASSISTANT).content("联网信息:"+webSearch(chatString)).build(); + messages.add(message); + } }else { - // 未登录用户限制对话次数,默认5次 - String clientIp = ServletUtil.getClientIP((javax.servlet.http.HttpServletRequest) request,"X-Forwarded-For"); + // 未登录用户限制对话次数 + String clientIp = IpUtil.getClientIp(request); + // 访客每天默认只能对话5次 int timeWindowInSeconds = 5; - String redisKey = "visitor:" + clientIp; + String redisKey = "clientIp:" + clientIp; + int count = 0; if (RedisUtils.getCacheObject(redisKey) == null) { - // 当前访问次数 + // 缓存有效时间1天 RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); }else { count = RedisUtils.getCacheObject(redisKey); @@ -104,13 +165,11 @@ public class SseServiceImpl implements ISseService { .builder() .messages(messages) .model(chatRequest.getModel()) - .temperature(chatRequest.getTemperature()) - .topP(chatRequest.getTop_p()) - .stream(true) + .stream(chatRequest.getStream()) .build(); openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); // 保存消息记录 并扣除费用 - + chatCostService.deductToken(chatRequest); } catch (Exception e) { String message = e.getMessage(); sendErrorEvent(sseEmitter, message); @@ -147,7 +206,6 @@ public class SseServiceImpl implements ISseService { if (body != null) { // 将ResponseBody转换为InputStreamResource InputStreamResource resource = new InputStreamResource(body.byteStream()); - // 创建并返回ResponseEntity return ResponseEntity.ok() .contentType(MediaType.parseMediaType("audio/mpeg")) @@ -289,4 +347,58 @@ public class SseServiceImpl implements ISseService { ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(chatCompletion); return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); } + + public String webSearch (String prompt) { + String zhipuValue = configService.getConfigValue("zhipu", "key"); + if(StringUtils.isEmpty(zhipuValue)){ + throw new IllegalStateException("zhipu config value is empty,请在chat_config中配置zhipu key信息"); + }else { + ClientV4 client = new ClientV4.Builder(zhipuValue) + .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) + .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) + .build(); + + SearchChatMessage jsonNodes = new SearchChatMessage(); + jsonNodes.setRole(Message.Role.USER.getName()); + jsonNodes.setContent(prompt); + + String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); + WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() + .model("web-search-pro") + .stream(Boolean.TRUE) + .messages(Collections.singletonList(jsonNodes)) + .requestId(requestId) + .build(); + WebSearchApiResponse webSearchApiResponse = client.webSearchProStreamingInvoke(chatCompletionRequest); + List choices = new ArrayList<>(); + if (webSearchApiResponse.isSuccess()) { + AtomicBoolean isFirst = new AtomicBoolean(true); + + AtomicReference lastAccumulator = new AtomicReference<>(); + + webSearchApiResponse.getFlowable().map(result -> result) + .doOnNext(accumulator -> { + { + if (isFirst.getAndSet(false)) { + log.info("Response: "); + } + ChoiceDelta delta = accumulator.getChoices().get(0).getDelta(); + if (delta != null && delta.getToolCalls() != null) { + log.info("tool_calls: {}", mapper.writeValueAsString(delta.getToolCalls())); + } + choices.add(delta); + } + }) + .doOnComplete(() -> System.out.println("Stream completed.")) + .doOnError(throwable -> System.err.println("Error: " + throwable)) + .blockingSubscribe(); + + WebSearchPro chatMessageAccumulator = lastAccumulator.get(); + webSearchApiResponse.setFlowable(null); + webSearchApiResponse.setData(chatMessageAccumulator); + } + return choices.get(1).getToolCalls().toString(); + } + } + } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java index 6365a77c..f276e512 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java @@ -4,7 +4,6 @@ import jakarta.annotation.Resource; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.chat.config.ChatConfig; import org.ruoyi.common.chat.entity.embeddings.Embedding; import org.ruoyi.common.chat.entity.embeddings.EmbeddingResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/IpUtil.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/IpUtil.java new file mode 100644 index 00000000..0ae5e7b9 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/IpUtil.java @@ -0,0 +1,51 @@ +package org.ruoyi.chat.util; + + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.util.StringUtils; + +/** + * @author WangLe + */ +public class IpUtil { + + public static String getClientIp(HttpServletRequest request) { + String ip = null; + + // 获取 X-Forwarded-For 中的第一个非 unknown 的 IP + String xForwardedFor = request.getHeader("X-Forwarded-For"); + if (StringUtils.hasLength(xForwardedFor) && !"unknown".equalsIgnoreCase(xForwardedFor)) { + String[] ipAddresses = xForwardedFor.split(","); + for (String ipAddress : ipAddresses) { + if (StringUtils.hasLength(ipAddress) && !"unknown".equalsIgnoreCase(ipAddress.trim())) { + ip = ipAddress.trim(); + break; + } + } + } + + // 如果 X-Forwarded-For 中没有找到,则依次尝试其他 header + if (ip == null) { + ip = request.getHeader("X-Real-IP"); + } + if (ip == null || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + + // 如果以上都没有获取到,则使用 RemoteAddr + if (ip == null || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + + return ip; + } +} diff --git a/ruoyi-modules/ruoyi-demo/pom.xml b/ruoyi-modules/ruoyi-demo/pom.xml index 715c8b08..7aeb58c7 100644 --- a/ruoyi-modules/ruoyi-demo/pom.xml +++ b/ruoyi-modules/ruoyi-demo/pom.xml @@ -94,22 +94,6 @@ ruoyi-common-tenant - - org.ruoyi - ruoyi-common-pay - - - - - - - - - - - - - diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index a22691de..1684d807 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -2,13 +2,13 @@ + 4.0.0 org.ruoyi ruoyi-modules ${revision} ../pom.xml - 4.0.0 ruoyi-system @@ -18,6 +18,9 @@ 4.5.14 + 2.15.2 + + @@ -32,26 +35,12 @@ ruoyi-common-doc - - org.ruoyi - ruoyi-common-mybatis - - - - org.ruoyi - ruoyi-common-translation - - org.ruoyi ruoyi-common-oss - - org.ruoyi - ruoyi-common-log - @@ -96,30 +85,6 @@ ruoyi-common-chat - - org.ruoyi - ruoyi-common-wechat - - - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - 2.15.2 - - - - org.apache.httpcomponents - httpmime - ${httpclient.version} - - - - - org.ruoyi - ruoyi-common-pay - - - org.ruoyi ruoyi-common-mail @@ -131,6 +96,18 @@ ruoyi-system-api + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + + + + org.apache.httpcomponents + httpmime + ${httpclient.version} + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/config/WxMaConfiguration.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/config/WxMaConfiguration.java new file mode 100644 index 00000000..19a7effd --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/config/WxMaConfiguration.java @@ -0,0 +1,133 @@ +package org.ruoyi.system.config; + +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; +import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; +import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage; +import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; +import cn.binarywang.wx.miniapp.message.WxMaMessageHandler; +import cn.binarywang.wx.miniapp.message.WxMaMessageRouter; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.common.error.WxRuntimeException; +import org.ruoyi.system.properties.WxMaProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.io.File; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Admin + */ +@Slf4j +@Configuration +@EnableConfigurationProperties(WxMaProperties.class) +public class WxMaConfiguration { + private final WxMaProperties properties; + + @Autowired + public WxMaConfiguration(WxMaProperties properties) { + this.properties = properties; + } + + @Bean + public WxMaService wxMaService() { + List configs = this.properties.getConfigs(); + if (configs == null) { + throw new WxRuntimeException("大哥,拜托先看下项目首页的说明(readme文件),添加下相关配置,注意别配错了!"); + } + WxMaService maService = new WxMaServiceImpl(); + maService.setMultiConfigs( + configs.stream() + .map(a -> { + WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); +// WxMaDefaultConfigImpl config = new WxMaRedisConfigImpl(new JedisPool()); + // 使用上面的配置时,需要同时引入jedis-lock的依赖,否则会报类无法找到的异常 + config.setAppid(a.getAppid()); + config.setSecret(a.getSecret()); + config.setToken(a.getToken()); + config.setAesKey(a.getAesKey()); + config.setMsgDataFormat(a.getMsgDataFormat()); + return config; + }).collect(Collectors.toMap(WxMaDefaultConfigImpl::getAppid, a -> a, (o, n) -> o))); + return maService; + } + + @Bean + public WxMaMessageRouter wxMaMessageRouter(WxMaService wxMaService) { + final WxMaMessageRouter router = new WxMaMessageRouter(wxMaService); + router + .rule().handler(logHandler).next() + .rule().async(false).content("订阅消息").handler(subscribeMsgHandler).end() + .rule().async(false).content("文本").handler(textHandler).end() + .rule().async(false).content("图片").handler(picHandler).end() + .rule().async(false).content("二维码").handler(qrcodeHandler).end(); + return router; + } + + private final WxMaMessageHandler subscribeMsgHandler = (wxMessage, context, service, sessionManager) -> { + service.getMsgService().sendSubscribeMsg(WxMaSubscribeMessage.builder() + .templateId("此处更换为自己的模板id") + .data(Lists.newArrayList( + new WxMaSubscribeMessage.MsgData("keyword1", "339208499"))) + .toUser(wxMessage.getFromUser()) + .build()); + return null; + }; + + private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> { + log.info("收到消息:" + wxMessage.toString()); + service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson()) + .toUser(wxMessage.getFromUser()).build()); + return null; + }; + + private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) -> { + service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息") + .toUser(wxMessage.getFromUser()).build()); + return null; + }; + + private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> { + try { + WxMediaUploadResult uploadResult = service.getMediaService() + .uploadMedia("image", "png", + ClassLoader.getSystemResourceAsStream("tmp.png")); + service.getMsgService().sendKefuMsg( + WxMaKefuMessage + .newImageBuilder() + .mediaId(uploadResult.getMediaId()) + .toUser(wxMessage.getFromUser()) + .build()); + } catch (WxErrorException e) { + e.printStackTrace(); + } + + return null; + }; + + private final WxMaMessageHandler qrcodeHandler = (wxMessage, context, service, sessionManager) -> { + try { + final File file = service.getQrcodeService().createQrcode("123", 430); + WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia("image", file); + service.getMsgService().sendKefuMsg( + WxMaKefuMessage + .newImageBuilder() + .mediaId(uploadResult.getMediaId()) + .toUser(wxMessage.getFromUser()) + .build()); + } catch (WxErrorException e) { + e.printStackTrace(); + } + + return null; + }; + +} + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java index 9be06e69..360abeb7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java @@ -2,10 +2,8 @@ package org.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; -import cn.hutool.json.JSONUtil; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; -import me.chanjar.weixin.common.error.WxErrorException; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.domain.model.*; @@ -45,13 +43,13 @@ public class AuthController { private final ISysTenantService tenantService; - @PostMapping("/xcxLogin") - public R login(@Validated @RequestBody String xcxCode) throws WxErrorException { - - String openidFromCode = loginService.getOpenidFromCode((String) JSONUtil.parseObj(xcxCode).get("xcxCode")); - LoginVo loginVo = loginService.mpLogin(openidFromCode); - return R.ok(loginVo); - } +// @PostMapping("/xcxLogin") +// public R login(@Validated @RequestBody String xcxCode) throws WxErrorException { +// +// String openidFromCode = loginService.getOpenidFromCode((String) JSONUtil.parseObj(xcxCode).get("xcxCode")); +// LoginVo loginVo = loginService.mpLogin(openidFromCode); +// return R.ok(loginVo); +// } /** * 登录方法 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java index dda65dcc..8ebe2236 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java @@ -95,7 +95,6 @@ public class CaptchaController { String suffix = configService.getConfigValue("mail", "suffix"); String prompt = configService.getConfigValue("mail", "prompt"); if(StringUtils.isNotEmpty(suffix)){ - // 动态的域名列表 String[] invalidDomains = suffix.split(","); for (String domain : invalidDomains) { if (emailRequest.getUsername().endsWith(domain)) { @@ -108,7 +107,7 @@ public class CaptchaController { String mailTitle = configService.getConfigValue("mail", "mailTitle"); String replacedModel = model.replace("{code}", code); try { - MailUtils.sendHtml(emailRequest.getUsername(), mailTitle, replacedModel); + MailUtils.sendHtml(emailRequest.getUsername(), mailTitle, replacedModel); } catch (Exception e) { log.error("邮箱验证码发送异常 => {}", e.getMessage()); return R.fail(e.getMessage()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/properties/WxMaProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/properties/WxMaProperties.java new file mode 100644 index 00000000..b0e6d66a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/properties/WxMaProperties.java @@ -0,0 +1,52 @@ +package org.ruoyi.system.properties; + +/** + * 微信小程序属性配置类 + * + * @author: wangle + * @date: 2023/5/18 + */ + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.util.List; + +/** + * @author Binary Wang + */ +@Data +@ConfigurationProperties(prefix = "wx.miniapp") +public class WxMaProperties { + + private List configs; + + @Data + public static class Config { + /** + * 设置微信小程序的appid + */ + private String appid; + + /** + * 设置微信小程序的Secret + */ + private String secret; + + /** + * 设置微信小程序消息服务器配置的token + */ + private String token; + + /** + * 设置微信小程序消息服务器配置的EncodingAESKey + */ + private String aesKey; + + /** + * 消息格式,XML或者JSON + */ + private String msgDataFormat; + } + +} diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java similarity index 100% rename from ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/runner/SystemApplicationRunner.java diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java similarity index 100% rename from ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java index 5ab11951..d2558b62 100644 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysLoginService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysLoginService.java @@ -57,14 +57,14 @@ import java.util.function.Supplier; public class SysLoginService { private final SysUserMapper userMapper; + private final WxMaService wxMaService; private final ISysPermissionService permissionService; private final ISysTenantService tenantService; - private final WxMaService wxMaService; private final ISysUserService userService; private final ConfigService configService; + @Value("${user.password.maxRetryCount}") private Integer maxRetryCount; - @Value("${user.password.lockTime}") private Integer lockTime; diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java similarity index 95% rename from ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java index 84701ba7..a2a24511 100644 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/SysRegisterService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/SysRegisterService.java @@ -37,7 +37,7 @@ public class SysRegisterService { private final SysUserRoleMapper userRoleMapper; - private final ConfigService configService; + // private final ConfigService configService; /** * 注册 */ @@ -61,12 +61,9 @@ public class SysRegisterService { if (!userService.checkUserNameUnique(sysUser)) { throw new UserException("添加用户失败", username); } - String configValue = configService.getConfigValue("mail", "amount"); + // String configValue = configService.getConfigValue("mail", "amount"); - - - // 设置默认余额 - sysUser.setUserBalance(NumberUtils.toDouble(configValue,1)); + sysUser.setUserBalance(NumberUtils.toDouble("configValue",1)); SysUser user = userService.registerUser(sysUser, tenantId); if (user == null) { throw new UserException("用户注册失败!"); diff --git a/script/docker/database.yml b/script/docker/database.yml deleted file mode 100644 index 6d37c803..00000000 --- a/script/docker/database.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: '3' - -services: - # 此镜像仅用于测试 正式环境需自行安装数据库 - # SID: XE user: system password: oracle - oracle: - image: tekintian/oracle12c:latest - container_name: oracle - environment: - # 时区上海 - TZ: Asia/Shanghai - DBCA_TOTAL_MEMORY: 16192 - ports: - - "18080:8080" - - "1521:1521" - volumes: - # 数据挂载 - - "/docker/oracle/data:/u01/app/oracle" - network_mode: "host" - - # 此镜像仅用于测试 正式环境需自行安装数据库 - sqlserver: - image: mcr.microsoft.com/mssql/server:2017-latest - container_name: sqlserver - environment: - # 时区上海 - TZ: Asia/Shanghai - ACCEPT_EULA: "Y" - SA_PASSWORD: "ruoyi@123" - ports: - - "1433:1433" - volumes: - # 数据挂载 - - "/docker/sqlserver/data:/var/opt/mssql" - network_mode: "host" - - postgres: - image: postgres:14.2 - container_name: postgres - environment: - POSTGRES_USER: root - POSTGRES_PASSWORD: root - POSTGRES_DB: postgres - ports: - - "5432:5432" - volumes: - - /docker/postgres/data:/var/lib/postgresql/data - network_mode: "host" - - postgres13: - image: postgres:13.6 - container_name: postgres13 - environment: - POSTGRES_USER: root - POSTGRES_PASSWORD: root - POSTGRES_DB: postgres - ports: - - "5433:5432" - volumes: - - /docker/postgres13/data:/var/lib/postgresql/data - network_mode: "host" diff --git a/script/docker/docker-compose.yml b/script/docker/docker-compose.yml deleted file mode 100644 index 0e1d01df..00000000 --- a/script/docker/docker-compose.yml +++ /dev/null @@ -1,64 +0,0 @@ -version: '3' - -services: - mysql: - image: mysql:8.0.33 - container_name: mysql - environment: - TZ: Asia/Shanghai - MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: ry-vue - ports: - - "3307:3306" - volumes: - - ./ry-vue.sql:/docker-entrypoint-initdb.d/ry-vue.sql - command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true - --lower_case_table_names=1 - - ruoyi-server: - image: registry.cn-shanghai.aliyuncs.com/ruoyi-ai/ai:1.2.1 - ports: - - "6039:6039" - container_name: ruoyi-server - environment: - TZ: Asia/Shanghai - # 运行端口号 - SERVER_PORT: 6039 - # 数据库连接地址 - DB_URL: jdbc:mysql://mysql:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - # 数据库用户名 - DB_USERNAME: root - # 数据库用户密码 - DB_PASSWORD: root - # Redis地址 - REDIS_HOST: redis - # Redis端口 - REDIS_PORT: 6379 - # 数据库索引 - REDIS_DATABASE: 0 - # Redis密码 - REDIS_PASSWORD: - # 连接超时时间 - REDIS_TIMEOUT: 10s - volumes: - - /docker/server2/logs/:/ruoyi/server/logs/ - - ruoyi-web: - image: registry.cn-shanghai.aliyuncs.com/ruoyi-ai/web:1.2.1 - ports: - - "8081:8081" - container_name: ruoyi-web - - - ruoyi-admin: - image: registry.cn-shanghai.aliyuncs.com/ruoyi-ai/admin:1.2.1 - ports: - - "8082:8082" - container_name: ruoyi-admin - - - diff --git a/script/docker/nginx/conf/nginx.conf b/script/docker/nginx/conf/nginx.conf deleted file mode 100644 index e9630aaf..00000000 --- a/script/docker/nginx/conf/nginx.conf +++ /dev/null @@ -1,111 +0,0 @@ -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 1024; -} - -http { - include mime.types; - default_type application/octet-stream; - sendfile on; - keepalive_timeout 65; - # 限制body大小 - client_max_body_size 100m; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - upstream server { - ip_hash; - server 127.0.0.1:8080; - server 127.0.0.1:8081; - } - - upstream monitor-admin { - server 127.0.0.1:9090; - } - - upstream xxljob-admin { - server 127.0.0.1:9100; - } - - server { - listen 80; - server_name localhost; - - # https配置参考 start - #listen 443 ssl; - - # 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径 - #ssl on; - #ssl_certificate /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改 - #ssl_certificate_key /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改 - #ssl_session_timeout 5m; - #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; - #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - #ssl_prefer_server_ciphers on; - # https配置参考 end - - # 演示环境配置 拦截除 GET POST 之外的所有请求 - # if ($request_method !~* GET|POST) { - # rewrite ^/(.*)$ /403; - # } - - # location = /403 { - # default_type application/json; - # return 200 '{"msg":"演示模式,不允许操作","code":500}'; - # } - - # 限制外网访问内网 actuator 相关路径 - location ~ ^(/[^/]*)?/actuator(/.*)?$ { - return 403; - } - - location / { - root /usr/share/nginx/html; - try_files $uri $uri/ /index.html; - index index.html index.htm; - } - - location /prod-api/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://server/; - } - - # https 会拦截内链所有的 http 请求 造成功能无法使用 - # 解决方案1 将 admin 服务 也配置成 https - # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问 - location /admin/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://monitor-admin/admin/; - } - - # https 会拦截内链所有的 http 请求 造成功能无法使用 - # 解决方案1 将 xxljob 服务 也配置成 https - # 解决方案2 将菜单配置为外链访问 走独立页面 http 访问 - location /xxl-job-admin/ { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header REMOTE-HOST $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://xxljob-admin/xxl-job-admin/; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root html; - } - } -} diff --git a/script/docker/redis/conf/redis.conf b/script/docker/redis/conf/redis.conf deleted file mode 100644 index 72255c61..00000000 --- a/script/docker/redis/conf/redis.conf +++ /dev/null @@ -1,28 +0,0 @@ -# redis 密码 -requirepass ruoyi123 - -# key 监听器配置 -# notify-keyspace-events Ex - -# 配置持久化文件存储路径 -dir /redis/data -# 配置rdb -# 15分钟内有至少1个key被更改则进行快照 -save 900 1 -# 5分钟内有至少10个key被更改则进行快照 -save 300 10 -# 1分钟内有至少10000个key被更改则进行快照 -save 60 10000 -# 开启压缩 -rdbcompression yes -# rdb文件名 用默认的即可 -dbfilename dump.rdb - -# 开启aof -appendonly yes -# 文件名 -appendfilename "appendonly.aof" -# 持久化策略,no:不同步,everysec:每秒一次,always:总是同步,速度比较慢 -# appendfsync always -appendfsync everysec -# appendfsync no diff --git a/script/docker/redis/data/README.md b/script/docker/redis/data/README.md deleted file mode 100644 index fbc5474b..00000000 --- a/script/docker/redis/data/README.md +++ /dev/null @@ -1 +0,0 @@ -数据目录 请执行 `chmod 777 /docker/redis/data` 赋予读写权限 否则将无法写入数据 \ No newline at end of file diff --git a/script/sql/update/updatdata20250402.sql b/script/sql/update/updatdata20250402.sql index 1a8f4b3d..940ace59 100644 --- a/script/sql/update/updatdata20250402.sql +++ b/script/sql/update/updatdata20250402.sql @@ -1 +1 @@ -INSERT INTO `ry-vue`.`chat_app_store` (`id`, `name`, `description`, `avatar`, `app_url`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (7, '微信机器人', '微信机器人', 'https://panda-1253683406.cos.ap-guangzhou.myqcloud.com/panda/2025/04/02/0557a7d68fa842bba952ce0d6ef38a2e.png', '/wxbot', NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `chat_app_store` (`id`, `name`, `description`, `avatar`, `app_url`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (7, '微信机器人', '微信机器人', 'https://panda-1253683406.cos.ap-guangzhou.myqcloud.com/panda/2025/04/02/0557a7d68fa842bba952ce0d6ef38a2e.png', '/wxbot', NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/script/sql/update/updatdata20250407-2.sql b/script/sql/update/updatdata20250407-2.sql deleted file mode 100644 index 8ba99113..00000000 --- a/script/sql/update/updatdata20250407-2.sql +++ /dev/null @@ -1,14 +0,0 @@ -SET FOREIGN_KEY_CHECKS=0; - -ALTER TABLE `ruoyi-org`.`chat_gpts` ADD COLUMN `model_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型名称' AFTER `tenant_id`; - -ALTER TABLE `ruoyi-org`.`chat_gpts` ADD COLUMN `system_prompt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统提示词' AFTER `model_name`; - -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1810602934286237698, 'gpt-4-gizmo-g-RQAWjtI6u', '翻译助手', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '中英和英中翻译专家', 'winkey', 'winkey', 0, 0, 'vector', 103, '2024-07-09 17:12:34', '1', '1', '2025-04-07 21:44:11', 'Ms. Smith, the AI-powered Language Teacher, is a revolutionary GPT-based bot that offers personalized language learning experiences in over 20 languages, including Spanish, German, French, English, Chinese, Korean, Japanese, and more\n', NULL, '0', '127.0.0.1', 0, 'deepseek-r1:1.5b', '你是一位精通各国语言的翻译大师\r\n\r\n请将用户输入词语翻译成英文或中文\r\n\r\n==示例输出==\r\n**原文** : <这里显示要翻译的原文信息>\r\n**翻译** : <这里显示翻译成英语的结果>\r\n==示例结束==\r\n\r\n注意:请严格按示例进行输出,返回markdown格式'); -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1811668415990931458, 'gpt-4-gizmo-g-XbReEL4Uq', '清北全科医生', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '富有同情心的全科医生提供健康指导', NULL, NULL, 0, 0, NULL, 103, '2024-07-12 15:46:24', '1', '1', '2024-07-12 15:46:24', NULL, NULL, '0', NULL, 0, 'deepseek-r1:1.5b', '富有同情心的全科医生提供健康指导'); -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1811670922074988545, 'gpt-4-gizmo-g-AphhNRLxt', '提示词优化', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '擅长为Prompt 提升清晰度和创造力的大师', NULL, NULL, 0, 0, NULL, 103, '2024-07-12 15:56:22', '1', '1', '2024-07-12 15:56:22', NULL, NULL, '0', NULL, 0, 'deepseek-r1:1.5b', '擅长为Prompt 提升清晰度和创造力的大师'); -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1811815442062188545, 'gpt-4-gizmo-g-ThuHxKi7e', '小红书文案生成器', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '小红书文案生成器', NULL, NULL, 0, 0, NULL, 103, '2024-07-13 01:30:38', '1', '1', '2024-07-13 01:30:38', NULL, NULL, '0', NULL, 0, 'deepseek-r1:1.5b', '小红书文案生成器'); -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1811817605668741121, 'gpt-4-gizmo-g-AsQCd3k8', '中国法律助手', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '全面掌握中国法律的智能助手,可帮助起草文书,分析案件,进行法律咨询', NULL, NULL, 0, 0, NULL, 103, '2024-07-13 01:39:14', '1', '1', '2024-07-13 01:39:14', NULL, NULL, '2', NULL, 0, 'deepseek-r1:1.5b', '全面掌握中国法律的智能助手,可帮助起草文书,分析案件,进行法律咨询'); -INSERT INTO `ruoyi-ai`.`chat_gpts` (`id`, `gid`, `name`, `logo`, `info`, `author_id`, `author_name`, `use_cnt`, `bad`, `type`, `create_dept`, `create_time`, `create_by`, `update_by`, `update_time`, `remark`, `version`, `del_flag`, `update_ip`, `tenant_id`, `model_name`, `system_prompt`) VALUES (1811817605668741122, 'gpt-4-gizmo-g-IXwub6dJu', '英语老师', 'https://external-content.duckduckgo.com/ip3/chat.openai.com.ico', '英语学习GPT是一个专门设计来帮助用户提高他们的英语技能的人工智能助手', NULL, NULL, 0, 0, NULL, NULL, NULL, '', '', NULL, NULL, NULL, '0', NULL, 0, 'deepseek-r1:1.5b', '英语学习GPT是一个专门设计来帮助用户提高他们的英语技能的人工智能助手'); - -SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file diff --git a/script/sql/update/updatdata20250407.sql b/script/sql/update/updatdata20250407.sql index a40a8396..151fddce 100644 --- a/script/sql/update/updatdata20250407.sql +++ b/script/sql/update/updatdata20250407.sql @@ -1,4 +1,4 @@ -INSERT INTO `ruoyi-ai`.`chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907575746601119746, '000000', 'vector', 'text-embedding-3-small', 'text-embedding-3-small', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'sk-cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:27:54', 1, '2025-04-03 07:27:54', 'text-embedding-3-small'); -INSERT INTO `ruoyi-ai`.`chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576007017066497, '000000', 'vector', 'quentinz/bge-large-zh-v1.5', 'bge-large-zh-v1.5', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:28:56', 1, '2025-04-03 07:28:56', 'bge-large-zh-v1.5'); -INSERT INTO `ruoyi-ai`.`chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576806191362049, '000000', 'vector', 'nomic-embed-text', 'nomic-embed-text', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'nomic-embed-text', 103, 1, '2025-04-03 07:32:06', 1, '2025-04-03 07:32:06', 'nomic-embed-text'); -INSERT INTO `ruoyi-ai`.`chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907577073490161665, '000000', 'vector', 'snowflake-arctic-embed', 'snowflake-arctic-embed', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'snowflake-arctic-embed', 103, 1, '2025-04-03 07:33:10', 1, '2025-04-03 07:33:10', 'snowflake-arctic-embed'); +INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907575746601119746, '000000', 'vector', 'text-embedding-3-small', 'text-embedding-3-small', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'sk-cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:27:54', 1, '2025-04-03 07:27:54', 'text-embedding-3-small'); +INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576007017066497, '000000', 'vector', 'quentinz/bge-large-zh-v1.5', 'bge-large-zh-v1.5', 0, '2', '0', NULL, 'https://api.pandarobot.chat/', 'cdBlIaZcufccm2RaDe547cBd054d49C7B0782eCa72A0052b', 103, 1, '2025-04-03 07:28:56', 1, '2025-04-03 07:28:56', 'bge-large-zh-v1.5'); +INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907576806191362049, '000000', 'vector', 'nomic-embed-text', 'nomic-embed-text', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'nomic-embed-text', 103, 1, '2025-04-03 07:32:06', 1, '2025-04-03 07:32:06', 'nomic-embed-text'); +INSERT INTO `chat_model` (`id`, `tenant_id`, `category`, `model_name`, `model_describe`, `model_price`, `model_type`, `model_show`, `system_prompt`, `api_host`, `api_key`, `create_dept`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (1907577073490161665, '000000', 'vector', 'snowflake-arctic-embed', 'snowflake-arctic-embed', 0, '2', '0', NULL, 'http://127.0.0.1:11434/', 'snowflake-arctic-embed', 103, 1, '2025-04-03 07:33:10', 1, '2025-04-03 07:33:10', 'snowflake-arctic-embed'); From adb4538317c6d4980d65efca54643113d8d13711 Mon Sep 17 00:00:00 2001 From: ageer Date: Thu, 10 Apr 2025 21:39:31 +0800 Subject: [PATCH 07/27] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=9C=AC=E5=9C=B0=E5=90=91=E9=87=8F=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=8F=AA=E8=83=BD=E6=A3=80=E7=B4=A2=E5=88=B0=E4=B8=80=E6=9D=A1?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chat/impl/SseServiceImpl.java | 1 + .../vectorizer/BgeLargeVectorization.java | 48 ++++++++++--------- .../vectorizer/OpenAiVectorization.java | 16 +++---- .../vectorstore/MilvusVectorStore.java | 10 ---- 4 files changed, 33 insertions(+), 42 deletions(-) diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index df499ee3..80c2d8e4 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -348,6 +348,7 @@ public class SseServiceImpl implements ISseService { return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); } + @Override public String webSearch (String prompt) { String zhipuValue = configService.getConfigValue("zhipu", "key"); if(StringUtils.isEmpty(zhipuValue)){ diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java index 66a65772..b7b349b4 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/BgeLargeVectorization.java @@ -1,44 +1,57 @@ package org.ruoyi.chat.service.knowledge.vectorizer; -import com.google.gson.Gson; import io.github.ollama4j.OllamaAPI; import io.github.ollama4j.models.embeddings.OllamaEmbeddingsRequestModel; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.common.core.exception.ServiceException; +import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IChatModelService; import org.ruoyi.service.IKnowledgeInfoService; import org.ruoyi.service.VectorizationService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; - import java.util.ArrayList; -import java.util.Arrays; + import java.util.List; +/** + * @author ageer + */ @Component @Slf4j @RequiredArgsConstructor public class BgeLargeVectorization implements VectorizationService { - String host = "http://localhost:11434/"; - @Lazy @Resource private IKnowledgeInfoService knowledgeInfoService; + @Lazy + @Resource + private final IChatModelService chatModelService; + @Override public List> batchVectorization(List chunkList, String kid) { - OllamaAPI ollamaAPI = new OllamaAPI(host); + KnowledgeInfoVo knowledgeInfoVo = knowledgeInfoService.queryById(Long.valueOf(kid)); + + ChatModelVo chatModelVo = chatModelService.selectModelByName(knowledgeInfoVo.getVectorModel()); + + OllamaAPI api = new OllamaAPI(chatModelVo.getApiHost()); + List doubleVector; - try { - doubleVector = ollamaAPI.generateEmbeddings(new OllamaEmbeddingsRequestModel(knowledgeInfoVo.getVectorModel(), new Gson().toJson(chunkList))); - } catch (Exception e) { - throw new RuntimeException(e); - } List> vectorList = new ArrayList<>(); - vectorList.add(doubleVector); + try { + for (String chunk : chunkList) { + doubleVector = api.generateEmbeddings(new OllamaEmbeddingsRequestModel(knowledgeInfoVo.getVectorModel(), chunk)); + vectorList.add(doubleVector); + } + } catch (Exception e) { + throw new ServiceException("文本向量化异常:"+e.getMessage()); + } return vectorList; } @@ -50,15 +63,4 @@ public class BgeLargeVectorization implements VectorizationService { return vectorList.get(0); } - public static void main(String[] args) { - OllamaAPI ollamaAPI = new OllamaAPI("http://localhost:11434/"); - List chunkList = Arrays.asList("天很蓝", "海很深"); - List doubleVector; - try { - doubleVector = ollamaAPI.generateEmbeddings(new OllamaEmbeddingsRequestModel("quentinz/bge-large-zh-v1.5", new Gson().toJson(chunkList))); - } catch (Exception e) { - throw new RuntimeException(e); - } - System.out.println("=== " + doubleVector + " 1==="); - } } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java index f276e512..766eb48a 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/OpenAiVectorization.java @@ -4,14 +4,15 @@ import jakarta.annotation.Resource; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.config.ChatConfig; import org.ruoyi.common.chat.entity.embeddings.Embedding; import org.ruoyi.common.chat.entity.embeddings.EmbeddingResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.domain.vo.KnowledgeInfoVo; +import org.ruoyi.service.IChatModelService; import org.ruoyi.service.IKnowledgeInfoService; import org.ruoyi.service.VectorizationService; -import org.ruoyi.system.domain.SysModel; -import org.ruoyi.system.service.ISysModelService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -31,7 +32,7 @@ public class OpenAiVectorization implements VectorizationService { @Lazy @Resource - private ISysModelService sysModelService; + private IChatModelService chatModelService; @Getter private OpenAiStreamClient openAiStreamClient; @@ -49,17 +50,14 @@ public class OpenAiVectorization implements VectorizationService { vectorList.add(new ArrayList<>()); return vectorList; } - SysModel sysModel = sysModelService.selectModelByName(knowledgeInfoVo.getVectorModel()); - String apiHost= sysModel.getApiHost(); - String apiKey= sysModel.getApiKey(); + ChatModelVo chatModelVo = chatModelService.selectModelByName(knowledgeInfoVo.getVectorModel()); + String apiHost= chatModelVo.getApiHost(); + String apiKey= chatModelVo.getApiKey(); openAiStreamClient = chatConfig.createOpenAiStreamClient(apiHost,apiKey); - Embedding embedding = buildEmbedding(chunkList, knowledgeInfoVo); EmbeddingResponse embeddings = openAiStreamClient.embeddings(embedding); - // 处理 OpenAI 返回的嵌入数据 vectorList = processOpenAiEmbeddings(embeddings); - return vectorList; } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java index 8a271aa7..8d138dc3 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java @@ -328,16 +328,6 @@ public class MilvusVectorStore implements VectorStoreService { System.err.println("获取索引失败: " + describeIndexResponseR.getMessage()); } -// // 加载集合到内存 -// LoadCollectionParam loadCollectionParam = LoadCollectionParam.newBuilder() -// .withCollectionName(fullCollectionName) -// .build(); -// R loadResponse = milvusServiceClient.loadCollection(loadCollectionParam); -// if (loadResponse.getStatus() != R.Status.Success.getCode()) { -// System.err.println("加载集合 " + fullCollectionName + " 到内存时出错:" + loadResponse.getMessage()); -// return new ArrayList<>(); -// } - List search_output_fields = Arrays.asList("content", "fv"); List fv = new ArrayList<>(); for (int i = 0; i < queryVector.size(); i++) { From 2b8a92c7d69aa144ab7effda5a77b341464682a5 Mon Sep 17 00:00:00 2001 From: ageer Date: Thu, 10 Apr 2025 22:18:44 +0800 Subject: [PATCH 08/27] =?UTF-8?q?fix:=20=E9=87=8D=E6=9E=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/ruoyi/domain/bo/ChatModelBo.java | 2 +- .../org/ruoyi/service/IChatModelService.java | 1 + .../service/impl/ChatConfigServiceImpl.java | 110 ----------------- .../service/impl/ChatModelServiceImpl.java | 7 +- .../system}/service/IChatConfigService.java | 6 +- .../service/impl/ChatConfigServiceImpl.java | 85 ++++++++++++- ruoyi-modules/pom.xml | 12 ++ ruoyi-modules/ruoyi-chat/pom.xml | 5 + .../controller/{ => api}/ChatController.java | 2 +- .../controller/{ => api}/FaceController.java | 2 +- .../controller/{ => api}/LumaController.java | 2 +- .../{ => api}/SubmitController.java | 2 +- .../controller/{ => api}/SunoController.java | 2 +- .../controller/{ => api}/TaskController.java | 2 +- .../chat/ChatAgentManageController.java | 105 ++++++++++++++++ .../chat/ChatAppStoreController.java | 105 ++++++++++++++++ .../controller/chat/ChatConfigController.java | 105 ++++++++++++++++ .../controller/chat/ChatGptsController.java | 105 ++++++++++++++++ .../chat/ChatMessageController.java | 105 ++++++++++++++++ .../controller/chat/ChatModelController.java | 116 ++++++++++++++++++ .../chat/ChatPackagePlanController.java | 105 ++++++++++++++++ .../chat/ChatPayOrderController.java | 105 ++++++++++++++++ .../controller/chat/ChatPluginController.java | 105 ++++++++++++++++ .../chat/ChatVoucherController.java | 104 ++++++++++++++++ .../org/ruoyi/chat/enums/DisplayType.java | 32 +++++ .../org/ruoyi/chat/enums/UserGradeType.java | 14 +-- .../chat/service/chat/UserModelService.java | 61 +++++++++ .../chat/impl/ChatCostServiceImpl.java | 2 +- 28 files changed, 1275 insertions(+), 134 deletions(-) delete mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java rename ruoyi-modules-api/{ruoyi-chat-api/src/main/java/org/ruoyi => ruoyi-system-api/src/main/java/org/ruoyi/system}/service/IChatConfigService.java (87%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/ChatController.java (98%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/FaceController.java (97%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/LumaController.java (97%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/SubmitController.java (99%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/SunoController.java (98%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{ => api}/TaskController.java (97%) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatConfigController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatGptsController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatMessageController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatModelController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPackagePlanController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPayOrderController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPluginController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatVoucherController.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java index a2a19ac7..4061a2e7 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatModelBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatModel; +import org.ruoyi.domain.ChatModel; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java index 82dd6219..c5ce6594 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatModelService.java @@ -52,4 +52,5 @@ public interface IChatModelService { * 通过模型名称获取模型信息 */ ChatModelVo selectModelByName(String modelName); + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java deleted file mode 100644 index 1e753aa3..00000000 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatConfigServiceImpl.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.ruoyi.service.impl; - -import org.ruoyi.common.core.utils.MapstructUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; -import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import lombok.RequiredArgsConstructor; -import org.ruoyi.service.IChatConfigService; -import org.springframework.stereotype.Service; - - -import java.util.List; -import java.util.Map; -import java.util.Collection; - -/** - * 配置信息Service业务层处理 - * - * @author ageerle - * @date 2025-04-08 - */ -@RequiredArgsConstructor -@Service -public class ChatConfigServiceImpl implements IChatConfigService { - - private final ChatConfigMapper baseMapper; - - /** - * 查询配置信息 - */ - @Override - public ChatConfigVo queryById(Long id){ - return baseMapper.selectVoById(id); - } - - /** - * 查询配置信息列表 - */ - @Override - public TableDataInfo queryPageList(ChatConfigBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); - return TableDataInfo.build(result); - } - - /** - * 查询配置信息列表 - */ - @Override - public List queryList(ChatConfigBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); - } - - private LambdaQueryWrapper buildQueryWrapper(ChatConfigBo bo) { - Map params = bo.getParams(); - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory()); - lqw.like(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); - lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue()); - lqw.eq(StringUtils.isNotBlank(bo.getConfigDict()), ChatConfig::getConfigDict, bo.getConfigDict()); - lqw.eq(StringUtils.isNotBlank(bo.getUpdateIp()), ChatConfig::getUpdateIp, bo.getUpdateIp()); - return lqw; - } - - /** - * 新增配置信息 - */ - @Override - public Boolean insertByBo(ChatConfigBo bo) { - ChatConfig add = MapstructUtils.convert(bo, ChatConfig.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; - } - - /** - * 修改配置信息 - */ - @Override - public Boolean updateByBo(ChatConfigBo bo) { - ChatConfig update = MapstructUtils.convert(bo, ChatConfig.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; - } - - /** - * 保存前的数据校验 - */ - private void validEntityBeforeSave(ChatConfig entity){ - //TODO 做一些数据校验,如唯一约束 - } - - /** - * 批量删除配置信息 - */ - @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteBatchIds(ids) > 0; - } -} diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java index c136bb19..c3f8d97a 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatModelServiceImpl.java @@ -16,9 +16,7 @@ import org.ruoyi.service.IChatModelService; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 聊天模型Service业务层处理 @@ -32,6 +30,7 @@ public class ChatModelServiceImpl implements IChatModelService { private final ChatModelMapper baseMapper; + /** * 查询聊天模型 */ @@ -123,4 +122,6 @@ public class ChatModelServiceImpl implements IChatModelService { public ChatModelVo selectModelByName(String modelName) { return baseMapper.selectVoOne(Wrappers.lambdaQuery().eq(ChatModel::getModelName, modelName)); } + + } diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/IChatConfigService.java similarity index 87% rename from ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java rename to ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/IChatConfigService.java index cb13e5c8..6a216a41 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatConfigService.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/IChatConfigService.java @@ -1,8 +1,10 @@ -package org.ruoyi.service; +package org.ruoyi.system.service; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.system.domain.bo.ChatConfigBo; +import org.ruoyi.system.domain.vo.ChatConfigVo; import java.util.Collection; import java.util.List; diff --git a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java index 582ce881..c92e6abc 100644 --- a/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-system-api/src/main/java/org/ruoyi/system/service/impl/ChatConfigServiceImpl.java @@ -2,15 +2,24 @@ package org.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.core.utils.MapstructUtils; import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.system.domain.ChatConfig; import org.ruoyi.system.domain.bo.ChatConfigBo; import org.ruoyi.system.domain.vo.ChatConfigVo; import org.ruoyi.system.mapper.ChatConfigMapper; +import org.ruoyi.system.service.IChatConfigService; import org.springframework.stereotype.Service; +import java.util.Collection; +import java.util.List; +import java.util.Map; + /** * 配置信息Service业务层处理 @@ -20,7 +29,7 @@ import org.springframework.stereotype.Service; */ @RequiredArgsConstructor @Service -public class ChatConfigServiceImpl implements ConfigService { +public class ChatConfigServiceImpl implements ConfigService, IChatConfigService { private final ChatConfigMapper baseMapper; @@ -41,11 +50,83 @@ public class ChatConfigServiceImpl implements ConfigService { return chatConfigVo.getConfigValue(); } + /** + * 查询配置信息 + */ + @Override + public ChatConfigVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 查询配置信息列表 + */ + @Override + public TableDataInfo queryPageList(ChatConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询配置信息列表 + */ + @Override + public List queryList(ChatConfigBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + private LambdaQueryWrapper buildQueryWrapper(ChatConfigBo bo) { + Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(StringUtils.isNotBlank(bo.getCategory()), ChatConfig::getCategory, bo.getCategory()); - lqw.eq(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); + lqw.like(StringUtils.isNotBlank(bo.getConfigName()), ChatConfig::getConfigName, bo.getConfigName()); lqw.eq(StringUtils.isNotBlank(bo.getConfigValue()), ChatConfig::getConfigValue, bo.getConfigValue()); + lqw.eq(StringUtils.isNotBlank(bo.getConfigDict()), ChatConfig::getConfigDict, bo.getConfigDict()); return lqw; } + + /** + * 新增配置信息 + */ + @Override + public Boolean insertByBo(ChatConfigBo bo) { + ChatConfig add = MapstructUtils.convert(bo, ChatConfig.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改配置信息 + */ + @Override + public Boolean updateByBo(ChatConfigBo bo) { + ChatConfig update = MapstructUtils.convert(bo, ChatConfig.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ChatConfig entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除配置信息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + } diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index df6b4c7d..877d990a 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -24,4 +24,16 @@ ruoyi-generator + + + org.ruoyi + ruoyi-common-web + + + + org.ruoyi + ruoyi-common-idempotent + + + diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index 028b57da..2a14fb14 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -109,6 +109,11 @@ ruoyi-chat-api + + org.ruoyi + ruoyi-system-api + + diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java similarity index 98% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java index c75f6a1a..1991b770 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import jakarta.servlet.http.HttpServletRequest; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/FaceController.java similarity index 97% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/FaceController.java index 74dec5c3..b0fa4b66 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/FaceController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/FaceController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import cn.hutool.json.JSONUtil; import io.swagger.annotations.Api; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/LumaController.java similarity index 97% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/LumaController.java index 21a40eee..405bac9e 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/LumaController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/LumaController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SubmitController.java similarity index 99% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SubmitController.java index 5299bf2b..47e18eff 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SubmitController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SubmitController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import cn.hutool.json.JSONUtil; import io.swagger.annotations.Api; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SunoController.java similarity index 98% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SunoController.java index 8d9dd916..ce080f15 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/SunoController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/SunoController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiOperation; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/TaskController.java similarity index 97% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/TaskController.java index ea86a2ac..93e7c9fe 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/TaskController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/TaskController.java @@ -1,4 +1,4 @@ -package org.ruoyi.chat.controller; +package org.ruoyi.chat.controller.api; import cn.hutool.json.JSONUtil; import io.swagger.annotations.Api; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java new file mode 100644 index 00000000..935725d2 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.domain.bo.ChatAgentManageBo; +import org.ruoyi.service.IChatAgentManageService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; +import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; + +/** + * 智能体管理 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/agentManage") +public class ChatAgentManageController extends BaseController { + + private final IChatAgentManageService chatAgentManageService; + + /** + * 查询智能体管理列表 + */ + @SaCheckPermission("system:agentManage:list") + @GetMapping("/list") + public TableDataInfo list(ChatAgentManageBo bo, PageQuery pageQuery) { + return chatAgentManageService.queryPageList(bo, pageQuery); + } + + /** + * 导出智能体管理列表 + */ + @SaCheckPermission("system:agentManage:export") + @Log(title = "智能体管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatAgentManageBo bo, HttpServletResponse response) { + List list = chatAgentManageService.queryList(bo); + ExcelUtil.exportExcel(list, "智能体管理", ChatAgentManageVo.class, response); + } + + /** + * 获取智能体管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:agentManage:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatAgentManageService.queryById(id)); + } + + /** + * 新增智能体管理 + */ + @SaCheckPermission("system:agentManage:add") + @Log(title = "智能体管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatAgentManageBo bo) { + return toAjax(chatAgentManageService.insertByBo(bo)); + } + + /** + * 修改智能体管理 + */ + @SaCheckPermission("system:agentManage:edit") + @Log(title = "智能体管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatAgentManageBo bo) { + return toAjax(chatAgentManageService.updateByBo(bo)); + } + + /** + * 删除智能体管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:agentManage:remove") + @Log(title = "智能体管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatAgentManageService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java new file mode 100644 index 00000000..4d3ae9d2 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.domain.bo.ChatAppStoreBo; +import org.ruoyi.service.IChatAppStoreService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; +import org.ruoyi.system.domain.vo.ChatAppStoreVo; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; + +/** + * 应用商店 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/appStore") +public class ChatAppStoreController extends BaseController { + + private final IChatAppStoreService chatAppStoreService; + + /** + * 查询应用商店列表 + */ + @SaCheckPermission("system:appStore:list") + @GetMapping("/list") + public TableDataInfo list(ChatAppStoreBo bo, PageQuery pageQuery) { + return chatAppStoreService.queryPageList(bo, pageQuery); + } + + /** + * 导出应用商店列表 + */ + @SaCheckPermission("system:appStore:export") + @Log(title = "应用商店", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatAppStoreBo bo, HttpServletResponse response) { + List list = chatAppStoreService.queryList(bo); + ExcelUtil.exportExcel(list, "应用商店", ChatAppStoreVo.class, response); + } + + /** + * 获取应用商店详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:appStore:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatAppStoreService.queryById(id)); + } + + /** + * 新增应用商店 + */ + @SaCheckPermission("system:appStore:add") + @Log(title = "应用商店", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatAppStoreBo bo) { + return toAjax(chatAppStoreService.insertByBo(bo)); + } + + /** + * 修改应用商店 + */ + @SaCheckPermission("system:appStore:edit") + @Log(title = "应用商店", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatAppStoreBo bo) { + return toAjax(chatAppStoreService.updateByBo(bo)); + } + + /** + * 删除应用商店 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:appStore:remove") + @Log(title = "应用商店", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatAppStoreService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatConfigController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatConfigController.java new file mode 100644 index 00000000..f27373ba --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatConfigController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.system.domain.bo.ChatConfigBo; +import org.ruoyi.system.domain.vo.ChatConfigVo; +import org.ruoyi.system.service.IChatConfigService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 配置信息 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/config") +public class ChatConfigController extends BaseController { + + private final IChatConfigService chatConfigService; + + /** + * 查询配置信息列表 + */ + @SaCheckPermission("system:config:list") + @GetMapping("/list") + public TableDataInfo list(ChatConfigBo bo, PageQuery pageQuery) { + return chatConfigService.queryPageList(bo, pageQuery); + } + + /** + * 导出配置信息列表 + */ + @SaCheckPermission("system:config:export") + @Log(title = "配置信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatConfigBo bo, HttpServletResponse response) { + List list = chatConfigService.queryList(bo); + ExcelUtil.exportExcel(list, "配置信息", ChatConfigVo.class, response); + } + + /** + * 获取配置信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:config:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatConfigService.queryById(id)); + } + + /** + * 新增配置信息 + */ + @SaCheckPermission("system:config:add") + @Log(title = "配置信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatConfigBo bo) { + return toAjax(chatConfigService.insertByBo(bo)); + } + + /** + * 修改配置信息 + */ + @SaCheckPermission("system:config:edit") + @Log(title = "配置信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatConfigBo bo) { + return toAjax(chatConfigService.updateByBo(bo)); + } + + /** + * 删除配置信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:config:remove") + @Log(title = "配置信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatConfigService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatGptsController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatGptsController.java new file mode 100644 index 00000000..defa1d30 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatGptsController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatGptsBo; +import org.ruoyi.domain.vo.ChatGptsVo; +import org.ruoyi.service.IChatGptsService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 应用管理 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/gpts") +public class ChatGptsController extends BaseController { + + private final IChatGptsService chatGptsService; + + /** + * 查询应用管理列表 + */ + @SaCheckPermission("system:gpts:list") + @GetMapping("/list") + public TableDataInfo list(ChatGptsBo bo, PageQuery pageQuery) { + return chatGptsService.queryPageList(bo, pageQuery); + } + + /** + * 导出应用管理列表 + */ + @SaCheckPermission("system:gpts:export") + @Log(title = "应用管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatGptsBo bo, HttpServletResponse response) { + List list = chatGptsService.queryList(bo); + ExcelUtil.exportExcel(list, "应用管理", ChatGptsVo.class, response); + } + + /** + * 获取应用管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:gpts:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatGptsService.queryById(id)); + } + + /** + * 新增应用管理 + */ + @SaCheckPermission("system:gpts:add") + @Log(title = "应用管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatGptsBo bo) { + return toAjax(chatGptsService.insertByBo(bo)); + } + + /** + * 修改应用管理 + */ + @SaCheckPermission("system:gpts:edit") + @Log(title = "应用管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatGptsBo bo) { + return toAjax(chatGptsService.updateByBo(bo)); + } + + /** + * 删除应用管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:gpts:remove") + @Log(title = "应用管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatGptsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatMessageController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatMessageController.java new file mode 100644 index 00000000..a67aa6e4 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatMessageController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatMessageBo; +import org.ruoyi.domain.vo.ChatMessageVo; +import org.ruoyi.service.IChatMessageService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 聊天消息 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/message") +public class ChatMessageController extends BaseController { + + private final IChatMessageService chatMessageService; + + /** + * 查询聊天消息列表 + */ + @SaCheckPermission("system:message:list") + @GetMapping("/list") + public TableDataInfo list(ChatMessageBo bo, PageQuery pageQuery) { + return chatMessageService.queryPageList(bo, pageQuery); + } + + /** + * 导出聊天消息列表 + */ + @SaCheckPermission("system:message:export") + @Log(title = "聊天消息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatMessageBo bo, HttpServletResponse response) { + List list = chatMessageService.queryList(bo); + ExcelUtil.exportExcel(list, "聊天消息", ChatMessageVo.class, response); + } + + /** + * 获取聊天消息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:message:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatMessageService.queryById(id)); + } + + /** + * 新增聊天消息 + */ + @SaCheckPermission("system:message:add") + @Log(title = "聊天消息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatMessageBo bo) { + return toAjax(chatMessageService.insertByBo(bo)); + } + + /** + * 修改聊天消息 + */ + @SaCheckPermission("system:message:edit") + @Log(title = "聊天消息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatMessageBo bo) { + return toAjax(chatMessageService.updateByBo(bo)); + } + + /** + * 删除聊天消息 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:message:remove") + @Log(title = "聊天消息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatMessageService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatModelController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatModelController.java new file mode 100644 index 00000000..11be18b6 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatModelController.java @@ -0,0 +1,116 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.chat.service.chat.UserModelService; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatModelBo; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 聊天模型 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/model") +public class ChatModelController extends BaseController { + + private final IChatModelService chatModelService; + + private final UserModelService modelService; + + /** + * 查询聊天模型列表 + */ + @SaCheckPermission("system:model:list") + @GetMapping("/list") + public TableDataInfo list(ChatModelBo bo, PageQuery pageQuery) { + return chatModelService.queryPageList(bo, pageQuery); + } + + /** + * 查询用户模型列表 + */ + @GetMapping("/modelList") + public R> modelList(ChatModelBo bo) { + return R.ok(modelService.modelList(bo)); + } + + /** + * 导出聊天模型列表 + */ + @SaCheckPermission("system:model:export") + @Log(title = "聊天模型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatModelBo bo, HttpServletResponse response) { + List list = chatModelService.queryList(bo); + ExcelUtil.exportExcel(list, "聊天模型", ChatModelVo.class, response); + } + + /** + * 获取聊天模型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:model:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatModelService.queryById(id)); + } + + /** + * 新增聊天模型 + */ + @SaCheckPermission("system:model:add") + @Log(title = "聊天模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatModelBo bo) { + return toAjax(chatModelService.insertByBo(bo)); + } + + /** + * 修改聊天模型 + */ + @SaCheckPermission("system:model:edit") + @Log(title = "聊天模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatModelBo bo) { + return toAjax(chatModelService.updateByBo(bo)); + } + + /** + * 删除聊天模型 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:model:remove") + @Log(title = "聊天模型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatModelService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPackagePlanController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPackagePlanController.java new file mode 100644 index 00000000..b93574e8 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPackagePlanController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatPackagePlanBo; +import org.ruoyi.domain.vo.ChatPackagePlanVo; +import org.ruoyi.service.IChatPackagePlanService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 套餐管理 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/packagePlan") +public class ChatPackagePlanController extends BaseController { + + private final IChatPackagePlanService chatPackagePlanService; + + /** + * 查询套餐管理列表 + */ + @SaCheckPermission("system:packagePlan:list") + @GetMapping("/list") + public TableDataInfo list(ChatPackagePlanBo bo, PageQuery pageQuery) { + return chatPackagePlanService.queryPageList(bo, pageQuery); + } + + /** + * 导出套餐管理列表 + */ + @SaCheckPermission("system:packagePlan:export") + @Log(title = "套餐管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatPackagePlanBo bo, HttpServletResponse response) { + List list = chatPackagePlanService.queryList(bo); + ExcelUtil.exportExcel(list, "套餐管理", ChatPackagePlanVo.class, response); + } + + /** + * 获取套餐管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:packagePlan:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatPackagePlanService.queryById(id)); + } + + /** + * 新增套餐管理 + */ + @SaCheckPermission("system:packagePlan:add") + @Log(title = "套餐管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatPackagePlanBo bo) { + return toAjax(chatPackagePlanService.insertByBo(bo)); + } + + /** + * 修改套餐管理 + */ + @SaCheckPermission("system:packagePlan:edit") + @Log(title = "套餐管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatPackagePlanBo bo) { + return toAjax(chatPackagePlanService.updateByBo(bo)); + } + + /** + * 删除套餐管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:packagePlan:remove") + @Log(title = "套餐管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatPackagePlanService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPayOrderController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPayOrderController.java new file mode 100644 index 00000000..298cc593 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPayOrderController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatPayOrderBo; +import org.ruoyi.domain.vo.ChatPayOrderVo; +import org.ruoyi.service.IChatPayOrderService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 支付订单 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/payOrder") +public class ChatPayOrderController extends BaseController { + + private final IChatPayOrderService chatPayOrderService; + + /** + * 查询支付订单列表 + */ + @SaCheckPermission("system:payOrder:list") + @GetMapping("/list") + public TableDataInfo list(ChatPayOrderBo bo, PageQuery pageQuery) { + return chatPayOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出支付订单列表 + */ + @SaCheckPermission("system:payOrder:export") + @Log(title = "支付订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatPayOrderBo bo, HttpServletResponse response) { + List list = chatPayOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "支付订单", ChatPayOrderVo.class, response); + } + + /** + * 获取支付订单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:payOrder:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatPayOrderService.queryById(id)); + } + + /** + * 新增支付订单 + */ + @SaCheckPermission("system:payOrder:add") + @Log(title = "支付订单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatPayOrderBo bo) { + return toAjax(chatPayOrderService.insertByBo(bo)); + } + + /** + * 修改支付订单 + */ + @SaCheckPermission("system:payOrder:edit") + @Log(title = "支付订单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatPayOrderBo bo) { + return toAjax(chatPayOrderService.updateByBo(bo)); + } + + /** + * 删除支付订单 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:payOrder:remove") + @Log(title = "支付订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatPayOrderService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPluginController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPluginController.java new file mode 100644 index 00000000..353d1aa9 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatPluginController.java @@ -0,0 +1,105 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.excel.utils.ExcelUtil; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatPluginBo; +import org.ruoyi.domain.vo.ChatPluginVo; +import org.ruoyi.service.IChatPluginService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; + +/** + * 插件管理 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/plugin") +public class ChatPluginController extends BaseController { + + private final IChatPluginService chatPluginService; + + /** + * 查询插件管理列表 + */ + @SaCheckPermission("system:plugin:list") + @GetMapping("/list") + public TableDataInfo list(ChatPluginBo bo, PageQuery pageQuery) { + return chatPluginService.queryPageList(bo, pageQuery); + } + + /** + * 导出插件管理列表 + */ + @SaCheckPermission("system:plugin:export") + @Log(title = "插件管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatPluginBo bo, HttpServletResponse response) { + List list = chatPluginService.queryList(bo); + ExcelUtil.exportExcel(list, "插件管理", ChatPluginVo.class, response); + } + + /** + * 获取插件管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:plugin:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatPluginService.queryById(id)); + } + + /** + * 新增插件管理 + */ + @SaCheckPermission("system:plugin:add") + @Log(title = "插件管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatPluginBo bo) { + return toAjax(chatPluginService.insertByBo(bo)); + } + + /** + * 修改插件管理 + */ + @SaCheckPermission("system:plugin:edit") + @Log(title = "插件管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatPluginBo bo) { + return toAjax(chatPluginService.updateByBo(bo)); + } + + /** + * 删除插件管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:plugin:remove") + @Log(title = "插件管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatPluginService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatVoucherController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatVoucherController.java new file mode 100644 index 00000000..bc88c47e --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatVoucherController.java @@ -0,0 +1,104 @@ +package org.ruoyi.chat.controller.chat; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; +import org.ruoyi.domain.bo.ChatVoucherBo; +import org.ruoyi.domain.vo.ChatVoucherVo; +import org.ruoyi.service.IChatVoucherService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.ruoyi.common.log.annotation.Log; +import org.ruoyi.common.web.core.BaseController; +import org.ruoyi.common.mybatis.core.page.PageQuery; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.validate.AddGroup; +import org.ruoyi.common.core.validate.EditGroup; +import org.ruoyi.common.log.enums.BusinessType; +import org.ruoyi.common.excel.utils.ExcelUtil; +/** + * 用户兑换记录 + * + * @author ageerle + * @date 2025-04-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/voucher") +public class ChatVoucherController extends BaseController { + + private final IChatVoucherService chatVoucherService; + + /** + * 查询用户兑换记录列表 + */ + @SaCheckPermission("system:voucher:list") + @GetMapping("/list") + public TableDataInfo list(ChatVoucherBo bo, PageQuery pageQuery) { + return chatVoucherService.queryPageList(bo, pageQuery); + } + + /** + * 导出用户兑换记录列表 + */ + @SaCheckPermission("system:voucher:export") + @Log(title = "用户兑换记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ChatVoucherBo bo, HttpServletResponse response) { + List list = chatVoucherService.queryList(bo); + ExcelUtil.exportExcel(list, "用户兑换记录", ChatVoucherVo.class, response); + } + + /** + * 获取用户兑换记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("system:voucher:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(chatVoucherService.queryById(id)); + } + + /** + * 新增用户兑换记录 + */ + @SaCheckPermission("system:voucher:add") + @Log(title = "用户兑换记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ChatVoucherBo bo) { + return toAjax(chatVoucherService.insertByBo(bo)); + } + + /** + * 修改用户兑换记录 + */ + @SaCheckPermission("system:voucher:edit") + @Log(title = "用户兑换记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ChatVoucherBo bo) { + return toAjax(chatVoucherService.updateByBo(bo)); + } + + /** + * 删除用户兑换记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("system:voucher:remove") + @Log(title = "用户兑换记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(chatVoucherService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java new file mode 100644 index 00000000..1eee4ec3 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/DisplayType.java @@ -0,0 +1,32 @@ +package org.ruoyi.chat.enums; + +import lombok.Getter; + +/** + * 描述: + * + * @author ageerle@163.com + * date 2025/4/10 + */ +@Getter +public enum DisplayType { + HIDDEN("1", "不显示"), + VISIBLE("0", "显示"); + + private final String code; + private final String description; + + DisplayType(String code, String description) { + this.code = code; + this.description = description; + } + + public static DisplayType fromCode(String code) { + for (DisplayType type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java index 3c8d8be1..d6404023 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/UserGradeType.java @@ -2,10 +2,13 @@ package org.ruoyi.chat.enums; import lombok.Getter; +/** + * @author ageer + */ @Getter public enum UserGradeType { - UNPAID("0", "未付费"), // 未付费用户 - PAID("1", "已付费"); // 已付费用户 + UNPAID("0", "未付费"), + PAID("1", "已付费"); private final String code; private final String description; @@ -24,11 +27,4 @@ public enum UserGradeType { return null; } - public String getCode() { - return code; - } - - public String getDescription() { - return description; - } } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java new file mode 100644 index 00000000..ada36d09 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/UserModelService.java @@ -0,0 +1,61 @@ +package org.ruoyi.chat.service.chat; + +import cn.dev33.satoken.stp.StpUtil; +import lombok.RequiredArgsConstructor; +import org.ruoyi.chat.enums.DisplayType; +import org.ruoyi.chat.enums.UserGradeType; +import org.ruoyi.common.satoken.utils.LoginHelper; +import org.ruoyi.domain.bo.ChatModelBo; +import org.ruoyi.domain.bo.ChatPackagePlanBo; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.domain.vo.ChatPackagePlanVo; +import org.ruoyi.service.IChatModelService; +import org.ruoyi.service.IChatPackagePlanService; +import org.ruoyi.system.domain.vo.SysUserVo; +import org.ruoyi.system.service.ISysUserService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 描述:用户模型信息 + * + * @author ageerle@163.com + * date 2025/4/10 + */ + +@Service +@RequiredArgsConstructor +public class UserModelService { + + private final IChatModelService chatModelService; + + private final ISysUserService userService; + + private final IChatPackagePlanService packagePlanService; + + public List modelList(ChatModelBo bo) { + bo.setModelShow(DisplayType.VISIBLE.getCode()); + List chatModelList = chatModelService.queryList(bo); + ChatPackagePlanBo sysPackagePlanBo = new ChatPackagePlanBo(); + if (StpUtil.isLogin()) { + Long userId = LoginHelper.getLoginUser().getUserId(); + SysUserVo sysUserVo = userService.selectUserById(userId); + if (UserGradeType.UNPAID.getCode().equals(sysUserVo.getUserGrade())){ + sysPackagePlanBo.setName("Free"); + ChatPackagePlanVo chatPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0); + List array = new ArrayList<>(Arrays.asList(chatPackagePlanVo.getPlanDetail().split(","))); + chatModelList.removeIf(model -> !array.contains(model.getModelName())); + } + }else { + sysPackagePlanBo.setName("Visitor"); + ChatPackagePlanVo sysPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0); + List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); + chatModelList.removeIf(model -> !array.contains(model.getModelName())); + } + return new ArrayList<>(chatModelList); + } + +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java index 66be79f8..272ebe51 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/ChatCostServiceImpl.java @@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.ruoyi.chat.enums.BillingType; import org.ruoyi.chat.enums.UserGradeType; import org.ruoyi.chat.service.chat.IChatCostService; -import org.ruoyi.common.chat.domain.request.ChatRequest; +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.utils.TikTokensUtil; import org.ruoyi.common.core.domain.model.LoginUser; import org.ruoyi.common.core.exception.ServiceException; From 9734ec53f7488d65ec0ffe68d4d95b2fa63b7438 Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 11 Apr 2025 09:34:37 +0800 Subject: [PATCH 09/27] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules/ruoyi-system/pom.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 1684d807..5290a5f8 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -19,8 +19,6 @@ 4.5.14 2.15.2 - - @@ -41,7 +39,6 @@ ruoyi-common-oss - org.ruoyi @@ -90,7 +87,6 @@ ruoyi-common-mail - org.ruoyi ruoyi-system-api From ac4c037634ab6234758a61adb328e8ec5b0848af Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 11 Apr 2025 09:51:23 +0800 Subject: [PATCH 10/27] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/pom.xml | 3 + .../live-chat-client-commons-base/pom.xml | 49 + .../commons/base/constant/Constants.java | 32 + .../commons/base/exception/BaseException.java | 51 + .../listener/IBaseConnectionListener.java | 60 + .../base/listener/IBaseMsgListener.java | 149 + .../base/listener/IDanmuMsgListener.java | 46 + .../base/listener/IEnterRoomMsgListener.java | 47 + .../base/listener/IGiftMsgListener.java | 47 + .../base/listener/ILikeMsgListener.java | 46 + .../base/listener/ISuperChatMsgListener.java | 47 + .../client/commons/base/msg/BaseCmdMsg.java | 33 + .../chat/client/commons/base/msg/BaseMsg.java | 74 + .../chat/client/commons/base/msg/ICmdMsg.java | 38 + .../client/commons/base/msg/IDanmuMsg.java | 67 + .../commons/base/msg/IEnterRoomMsg.java | 62 + .../client/commons/base/msg/IGiftMsg.java | 100 + .../client/commons/base/msg/ILikeMsg.java | 71 + .../chat/client/commons/base/msg/IMsg.java | 34 + .../commons/base/msg/ISuperChatMsg.java | 49 + .../live-chat-client-commons-client/pom.xml | 55 + .../commons/client/BaseLiveChatClient.java | 200 + .../commons/client/IBaseLiveChatClient.java | 135 + .../config/BaseLiveChatClientConfig.java | 139 + .../client/enums/ClientStatusEnums.java | 83 + .../live-chat-client-commons-util/pom.xml | 25 + .../commons/util/OrLiveChatCookieUtil.java | 80 + .../commons/util/OrLiveChatNumberUtil.java | 40 + .../commons/util/OrLiveChatReflectUtil.java | 50 + .../commons/util/OrLocalDateTimeUtil.java | 54 + .../live-chat-client-commons/pom.xml | 44 + .../pom.xml | 55 + .../netty/client/base/BaseNettyClient.java | 349 + .../client/config/BaseNettyClientConfig.java | 65 + .../BaseNettyClientBinaryFrameHandler.java | 66 + .../BaseNettyClientConnectionHandler.java | 65 + .../live-chat-client-servers-netty/pom.xml | 59 + .../frame/base/BaseBinaryWebSocketFrame.java | 39 + .../handler/base/BaseBinaryFrameHandler.java | 184 + .../handler/base/BaseConnectionHandler.java | 168 + .../live-chat-client-servers/pom.xml | 47 + .../live-chat-client-bilibili/pom.xml | 71 + .../client/bilibili/api/BilibiliApis.java | 247 + .../request/BilibiliLikeReportV3Request.java | 74 + .../api/request/BilibiliSendMsgRequest.java | 77 + .../client/BilibiliLiveChatClient.java | 184 + .../config/BilibiliLiveChatClientConfig.java | 67 + .../bilibili/constant/BilibiliCmdEnum.java | 143 + .../bilibili/constant/OperationEnum.java | 86 + .../bilibili/constant/ProtoverEnum.java | 67 + .../listener/IBilibiliConnectionListener.java | 38 + .../listener/IBilibiliMsgListener.java | 138 + .../chat/client/bilibili/msg/AuthMsg.java | 92 + .../client/bilibili/msg/AuthReplyMsg.java | 63 + .../chat/client/bilibili/msg/DanmuMsgMsg.java | 102 + .../client/bilibili/msg/HeartbeatMsg.java | 58 + .../bilibili/msg/HeartbeatReplyMsg.java | 60 + .../client/bilibili/msg/InteractWordMsg.java | 396 + .../bilibili/msg/LikeInfoV3ClickMsg.java | 158 + .../chat/client/bilibili/msg/SendGiftMsg.java | 351 + .../client/bilibili/msg/SendSmsReplyMsg.java | 81 + .../bilibili/msg/SuperChatMessageMsg.java | 202 + .../bilibili/msg/base/BaseBilibiliCmdMsg.java | 68 + .../bilibili/msg/base/BaseBilibiliMsg.java | 50 + .../bilibili/msg/base/IBilibiliMsg.java | 44 + .../client/bilibili/msg/dto/MedalInfo.java | 66 + .../netty/frame/AuthWebSocketFrame.java | 40 + .../netty/frame/HeartbeatWebSocketFrame.java | 40 + .../base/BaseBilibiliWebSocketFrame.java | 54 + .../BilibiliWebSocketFrameFactory.java | 113 + .../handler/BilibiliBinaryFrameHandler.java | 153 + .../handler/BilibiliConnectionHandler.java | 154 + .../client/bilibili/protobuf/Dm_v2Proto.java | 78 + .../bilibili/protobuf/Dm_v2_20Proto.java | 74 + .../chat/client/bilibili/protobuf/dm_v2.java | 610 + .../bilibili/protobuf/dm_v2OrBuilder.java | 48 + .../client/bilibili/protobuf/dm_v2_20.java | 565 + .../bilibili/protobuf/dm_v2_20OrBuilder.java | 45 + .../bilibili/util/BilibiliCodecUtil.java | 259 + .../src/main/resources/proto/dm_v2.proto | 14 + .../src/main/resources/proto/dm_v2_20.proto | 12 + .../client/bilibili/api/BilibiliApisTest.java | 16 + .../client/BilibiliLiveChatClientTest.java | 176 + .../live-chat-client-douyin/pom.xml | 42 + .../chat/client/douyin/ClientModeExample.java | 81 + .../chat/client/douyin/api/DouyinApis.java | 108 + .../douyin/client/DouyinLiveChatClient.java | 174 + .../config/DouyinLiveChatClientConfig.java | 93 + .../client/douyin/constant/DouyinCmdEnum.java | 73 + .../listener/IDouyinConnectionListener.java | 35 + .../douyin/listener/IDouyinMsgListener.java | 44 + .../client/douyin/msg/DouyinDanmuMsg.java | 77 + .../client/douyin/msg/DouyinEnterRoomMsg.java | 72 + .../chat/client/douyin/msg/DouyinGiftMsg.java | 107 + .../chat/client/douyin/msg/DouyinLikeMsg.java | 77 + .../client/douyin/msg/base/IDouyinCmdMsg.java | 35 + .../client/douyin/msg/base/IDouyinMsg.java | 34 + .../handler/DouyinBinaryFrameHandler.java | 156 + .../handler/DouyinConnectionHandler.java | 117 + .../douyin/protobuf/Douyin_cmd_msgProto.java | 78 + .../Douyin_webcast_chat_message_msgProto.java | 93 + .../Douyin_webcast_gift_message_msgProto.java | 112 + ...ouyin_webcast_member_message_msgProto.java | 111 + .../protobuf/Douyin_websocket_frameProto.java | 93 + .../douyin/protobuf/douyin_cmd_msg.java | 1122 + .../protobuf/douyin_cmd_msgOrBuilder.java | 93 + .../douyin_webcast_chat_message_msg.java | 2384 ++ ...yin_webcast_chat_message_msgOrBuilder.java | 220 + .../douyin_webcast_gift_message_msg.java | 3963 ++ ...yin_webcast_gift_message_msgOrBuilder.java | 354 + .../douyin_webcast_like_message_msg.java | 1563 + ...yin_webcast_like_message_msgOrBuilder.java | 140 + .../douyin_webcast_like_message_msgProto.java | 87 + .../douyin_webcast_member_message_msg.java | 2828 ++ ...n_webcast_member_message_msgOrBuilder.java | 265 + .../protobuf/douyin_websocket_frame.java | 1315 + .../douyin_websocket_frameOrBuilder.java | 121 + .../protobuf/douyin_websocket_frame_msg.java | 2007 + .../douyin_websocket_frame_msgOrBuilder.java | 175 + .../douyin_websocket_frame_msgProto.java | 100 + .../douyin/protobuf/dto/CommonOuterClass.java | 2558 ++ .../dto/DoubleLikeDetailOuterClass.java | 767 + .../dto/GiftIMPriorityOuterClass.java | 816 + .../protobuf/dto/GiftStructOuterClass.java | 6440 +++ .../douyin/protobuf/dto/ImageOuterClass.java | 3722 ++ .../protobuf/dto/PatternRefOuterClass.java | 773 + .../dto/PublicAreaCommonOuterClass.java | 823 + .../dto/TextEffectDetailOuterClass.java | 1968 + .../protobuf/dto/TextEffectOuterClass.java | 872 + .../protobuf/dto/TextFormatOuterClass.java | 1136 + .../douyin/protobuf/dto/TextOuterClass.java | 1171 + .../protobuf/dto/TextPieceGiftOuterClass.java | 749 + .../dto/TextPieceHeartOuterClass.java | 625 + .../dto/TextPieceImageOuterClass.java | 750 + .../protobuf/dto/TextPieceOuterClass.java | 1895 + .../dto/TextPiecePatternRefOuterClass.java | 773 + .../protobuf/dto/TextPieceUserOuterClass.java | 748 + .../douyin/protobuf/dto/UserOuterClass.java | 33138 ++++++++++++++++ .../src/main/resources/proto/Common.proto | 30 + .../resources/proto/DoubleLikeDetail.proto | 10 + .../main/resources/proto/GiftIMPriority.proto | 9 + .../src/main/resources/proto/GiftStruct.proto | 66 + .../src/main/resources/proto/Image.proto | 29 + .../src/main/resources/proto/PatternRef.proto | 8 + .../resources/proto/PublicAreaCommon.proto | 10 + .../src/main/resources/proto/Text.proto | 12 + .../src/main/resources/proto/TextEffect.proto | 9 + .../resources/proto/TextEffectDetail.proto | 23 + .../src/main/resources/proto/TextFormat.proto | 14 + .../src/main/resources/proto/TextPiece.proto | 20 + .../main/resources/proto/TextPieceGift.proto | 9 + .../main/resources/proto/TextPieceHeart.proto | 7 + .../main/resources/proto/TextPieceImage.proto | 9 + .../resources/proto/TextPiecePatternRef.proto | 8 + .../main/resources/proto/TextPieceUser.proto | 9 + .../src/main/resources/proto/User.proto | 272 + .../main/resources/proto/douyin_cmd_msg.proto | 19 + .../douyin_webcast_chat_message_msg.proto | 34 + .../douyin_webcast_gift_message_msg.proto | 52 + .../douyin_webcast_like_message_msg.proto | 26 + .../douyin_webcast_member_message_msg.proto | 37 + .../proto/douyin_websocket_frame.proto | 19 + .../proto/douyin_websocket_frame_msg.proto | 25 + .../client/douyin/api/DouyinApisTest.java | 15 + .../client/DouyinLiveChatClientTest.java | 93 + .../live-chat-client-douyu/README.md | 52 + .../live-chat-client-douyu/pom.xml | 61 + .../live/chat/client/douyu/api/DouyuApis.java | 196 + .../client/DouyuDanmuLiveChatClient.java | 117 + .../douyu/client/DouyuLiveChatClient.java | 268 + .../douyu/client/DouyuWsLiveChatClient.java | 116 + .../client/base/BaseDouyuLiveChatClient.java | 139 + .../config/DouyuLiveChatClientConfig.java | 69 + .../douyu/constant/DouyuClientModeEnum.java | 40 + .../client/douyu/constant/DouyuCmdEnum.java | 199 + .../listener/IDouyuConnectionListener.java | 38 + .../douyu/listener/IDouyuMsgListener.java | 45 + .../chat/client/douyu/msg/ChatmessageMsg.java | 86 + .../chat/client/douyu/msg/ChatmsgMsg.java | 125 + .../live/chat/client/douyu/msg/DgbMsg.java | 233 + .../chat/client/douyu/msg/DouyuCmdMsg.java | 51 + .../chat/client/douyu/msg/H5ckreqMsg.java | 51 + .../live/chat/client/douyu/msg/H5csMsg.java | 50 + .../chat/client/douyu/msg/H5gkcreqMsg.java | 51 + .../chat/client/douyu/msg/HeartbeatMsg.java | 45 + .../client/douyu/msg/HeartbeatReplyMsg.java | 45 + .../chat/client/douyu/msg/JoingroupMsg.java | 52 + .../chat/client/douyu/msg/KeepliveMsg.java | 62 + .../chat/client/douyu/msg/LoginreqMsg.java | 107 + .../chat/client/douyu/msg/LoginresMsg.java | 77 + .../live/chat/client/douyu/msg/MapkbMsg.java | 53 + .../douyu/msg/MsgrepeaterproxylistMsg.java | 96 + .../live/chat/client/douyu/msg/SubMsg.java | 51 + .../live/chat/client/douyu/msg/UenterMsg.java | 78 + .../douyu/msg/base/BaseDouyuCmdMsg.java | 62 + .../chat/client/douyu/msg/base/IDouyuMsg.java | 36 + .../client/douyu/msg/dto/GiftListInfo.java | 136 + .../client/douyu/msg/dto/GiftPropInfo.java | 99 + .../client/douyu/msg/dto/GiftPropSingle.java | 97 + .../douyu/netty/frame/AuthWebSocketFrame.java | 40 + .../netty/frame/HeartbeatWebSocketFrame.java | 40 + .../netty/frame/KeepliveWebSocketFrame.java | 40 + .../frame/base/BaseDouyuWebSocketFrame.java | 39 + .../factory/DouyuWebSocketFrameFactory.java | 181 + .../handler/DouyuBinaryFrameHandler.java | 98 + .../netty/handler/DouyuConnectionHandler.java | 173 + .../client/douyu/util/DouyuCodecUtil.java | 329 + .../chat/client/douyu/api/DouyuApisTest.java | 30 + .../chat/client/douyu/client/ChatChoice.java | 31 + .../douyu/client/ChatCompletionResponse.java | 24 + .../douyu/client/DouyuLiveChatClientTest.java | 410 + .../chat/client/douyu/client/Message.java | 104 + .../live/chat/client/douyu/client/Usage.java | 24 + .../client/douyu/util/DouyuCodecUtilTest.java | 102 + .../live-chat-client-huya/pom.xml | 66 + .../live/chat/client/huya/api/HuyaApis.java | 83 + .../huya/client/HuyaLiveChatClient.java | 148 + .../huya/config/HuyaLiveChatClientConfig.java | 84 + .../constant/HuyaClientTemplateTypeEnum.java | 58 + .../client/huya/constant/HuyaCmdEnum.java | 206 + .../constant/HuyaDecorationAppTypeEnum.java | 88 + .../constant/HuyaDecorationViewTypeEnum.java | 54 + .../client/huya/constant/HuyaGenderEnum.java | 51 + .../client/huya/constant/HuyaLiveSource.java | 54 + .../huya/constant/HuyaOperationEnum.java | 97 + .../huya/constant/HuyaStreamLineTypeEnum.java | 62 + .../huya/constant/HuyaWupFunctionEnum.java | 59 + .../listener/IHuyaConnectionListener.java | 38 + .../huya/listener/IHuyaMsgListener.java | 45 + .../live/chat/client/huya/msg/BaseWup.java | 138 + .../chat/client/huya/msg/ConnectParaInfo.java | 105 + .../chat/client/huya/msg/LiveLaunchRsp.java | 78 + .../client/huya/msg/MessageNoticeMsg.java | 197 + .../chat/client/huya/msg/PushMessage.java | 84 + .../chat/client/huya/msg/PushMessage_V2.java | 73 + .../client/huya/msg/RegisterGroupRsp.java | 72 + .../chat/client/huya/msg/RegisterRsp.java | 75 + .../msg/SendItemSubBroadcastPacketMsg.java | 283 + .../live/chat/client/huya/msg/UserInfo.java | 88 + .../chat/client/huya/msg/VerifyCookieRsp.java | 66 + .../client/huya/msg/VipEnterBannerMsg.java | 144 + .../client/huya/msg/WebSocketCommand.java | 84 + .../live/chat/client/huya/msg/WupRsp.java | 45 + .../client/huya/msg/base/BaseHuyaCmdMsg.java | 79 + .../client/huya/msg/base/BaseHuyaMsg.java | 51 + .../client/huya/msg/base/IHuyaCmdMsg.java | 35 + .../chat/client/huya/msg/base/IHuyaMsg.java | 38 + .../client/huya/msg/dto/ACEnterBanner.java | 70 + .../chat/client/huya/msg/dto/BadgeInfo.java | 119 + .../msg/dto/BulletBorderGroundFormat.java | 85 + .../client/huya/msg/dto/BulletFormat.java | 89 + .../chat/client/huya/msg/dto/ChannelPair.java | 67 + .../client/huya/msg/dto/CommEnterBanner.java | 67 + .../client/huya/msg/dto/ContentFormat.java | 76 + .../msg/dto/CustomBadgeDynamicExternal.java | 64 + .../client/huya/msg/dto/DIYBigGiftEffect.java | 70 + .../client/huya/msg/dto/DecorationInfo.java | 67 + .../huya/msg/dto/DecorationInfoRsp.java | 88 + .../chat/client/huya/msg/dto/DeviceInfo.java | 73 + .../chat/client/huya/msg/dto/DisplayInfo.java | 91 + .../chat/client/huya/msg/dto/FaithInfo.java | 67 + .../client/huya/msg/dto/FaithPresenter.java | 64 + .../chat/client/huya/msg/dto/GuardInfo.java | 94 + .../client/huya/msg/dto/ItemEffectInfo.java | 70 + .../chat/client/huya/msg/dto/LiveAppUAEx.java | 73 + .../client/huya/msg/dto/LiveProxyValue.java | 67 + .../client/huya/msg/dto/LiveUserbase.java | 67 + .../huya/msg/dto/MessageContentExpand.java | 67 + .../client/huya/msg/dto/MessageTagInfo.java | 64 + .../chat/client/huya/msg/dto/MsgItem.java | 67 + .../chat/client/huya/msg/dto/MsgStatInfo.java | 70 + .../chat/client/huya/msg/dto/NobleInfo.java | 94 + .../client/huya/msg/dto/NobleLevelAttr.java | 79 + .../client/huya/msg/dto/NobleLevelInfo.java | 64 + .../client/huya/msg/dto/NoblePetAttr.java | 77 + .../huya/msg/dto/PresenterChannelInfo.java | 82 + .../chat/client/huya/msg/dto/PropView.java | 70 + .../client/huya/msg/dto/PropsIdentity.java | 125 + .../chat/client/huya/msg/dto/PropsItem.java | 181 + .../huya/msg/dto/SendMessageFormat.java | 67 + .../chat/client/huya/msg/dto/SenderInfo.java | 85 + .../chat/client/huya/msg/dto/SpecialInfo.java | 91 + .../client/huya/msg/dto/SuperFansInfo.java | 76 + .../chat/client/huya/msg/dto/UidNickName.java | 64 + .../live/chat/client/huya/msg/dto/UserId.java | 80 + .../client/huya/msg/dto/UserIdentityInfo.java | 67 + .../client/huya/msg/dto/UserRidePetInfo.java | 94 + .../client/huya/msg/dto/WeekRankInfo.java | 64 + .../client/huya/msg/req/GetLivingInfoReq.java | 86 + .../client/huya/msg/req/GetPropsListReq.java | 83 + .../client/huya/msg/req/GetPropsListRsp.java | 79 + .../chat/client/huya/msg/req/LaunchReq.java | 74 + .../client/huya/msg/req/LiveLaunchReq.java | 69 + .../client/huya/msg/req/RegisterGroupReq.java | 67 + .../client/huya/msg/req/SendMessageReq.java | 99 + .../huya/msg/req/UpdateUserInfoReq.java | 87 + .../client/huya/msg/req/UserHeartBeatReq.java | 90 + .../client/huya/msg/req/VerifyCookieReq.java | 76 + .../live/chat/client/huya/msg/req/WupReq.java | 42 + .../factory/HuyaWebSocketFrameFactory.java | 271 + .../netty/handler/HuyaBinaryFrameHandler.java | 199 + .../netty/handler/HuyaConnectionHandler.java | 152 + .../chat/client/huya/util/HuyaCodecUtil.java | 167 + .../chat/client/huya/api/HuyaApisTest.java | 20 + .../huya/client/HuyaLiveChatClientTest.java | 150 + .../client/huya/util/HuyaCodecUtilTest.java | 99 + .../live-chat-client-kuaishou/pom.xml | 42 + .../client/kuaishou/ClientModeExample.java | 99 + .../client/kuaishou/api/KuaishouApis.java | 235 + .../client/KuaishouLiveChatClient.java | 201 + .../config/KuaishouLiveChatClientConfig.java | 47 + .../listener/IKuaishouConnectionListener.java | 35 + .../listener/IKuaishouMsgListener.java | 45 + .../client/kuaishou/msg/KuaishouDanmuMsg.java | 100 + .../client/kuaishou/msg/KuaishouGiftMsg.java | 108 + .../client/kuaishou/msg/KuaishouLikeMsg.java | 61 + .../kuaishou/msg/base/IKuaishouCmdMsg.java | 35 + .../kuaishou/msg/base/IKuaishouMsg.java | 34 + .../handler/KuaishouBinaryFrameHandler.java | 127 + .../handler/KuaishouConnectionHandler.java | 158 + .../protobuf/AuditAudienceMaskOuterClass.java | 1155 + .../kuaishou/protobuf/CSErrorOuterClass.java | 548 + .../protobuf/CSHeartbeatOuterClass.java | 549 + .../kuaishou/protobuf/CSPingOuterClass.java | 1029 + .../protobuf/CSWebEnterRoomOuterClass.java | 1363 + .../protobuf/CSWebErrorOuterClass.java | 697 + .../protobuf/CSWebHeartbeatOuterClass.java | 550 + .../protobuf/CSWebUserExitOuterClass.java | 549 + .../protobuf/CSWebUserPauseOuterClass.java | 658 + .../kuaishou/protobuf/ClientIdOuterClass.java | 216 + .../protobuf/ConfigSwitchItemOuterClass.java | 658 + .../protobuf/ConfigSwitchTypeOuterClass.java | 180 + .../protobuf/GzoneNameplateOuterClass.java | 1079 + .../protobuf/LiveAudienceStateOuterClass.java | 1541 + .../protobuf/LiveCdnNodeViewOuterClass.java | 846 + .../LiveFansGroupStateOuterClass.java | 622 + .../protobuf/PSHostInfoOuterClass.java | 697 + .../protobuf/PayloadTypeOuterClass.java | 708 + .../kuaishou/protobuf/PicUrlOuterClass.java | 1069 + .../kuaishou/protobuf/SCEchoOuterClass.java | 624 + .../kuaishou/protobuf/SCErrorOuterClass.java | 769 + .../protobuf/SCHeartbeatAckOuterClass.java | 623 + .../kuaishou/protobuf/SCInfoOuterClass.java | 696 + ...ngMaskStatusChangedAudienceOuterClass.java | 750 + .../protobuf/SCPingAckOuterClass.java | 624 + .../protobuf/SCWebAuthorPauseOuterClass.java | 658 + .../protobuf/SCWebAuthorResumeOuterClass.java | 550 + .../protobuf/SCWebBetChangedOuterClass.java | 550 + .../protobuf/SCWebBetClosedOuterClass.java | 550 + .../SCWebCurrentRedPackFeedOuterClass.java | 858 + .../protobuf/SCWebEnterRoomAckOuterClass.java | 697 + .../protobuf/SCWebErrorOuterClass.java | 769 + .../protobuf/SCWebFeedPushOuterClass.java | 3487 ++ .../protobuf/SCWebGuessClosedOuterClass.java | 772 + .../protobuf/SCWebGuessOpenedOuterClass.java | 845 + .../protobuf/SCWebHeartbeatAckOuterClass.java | 623 + ...veSpecialAccountConfigStateOuterClass.java | 932 + .../SCWebLiveWatchingUsersOuterClass.java | 1081 + .../protobuf/SCWebPipEndedOuterClass.java | 549 + .../protobuf/SCWebPipStartedOuterClass.java | 549 + .../SCWebRefreshWalletOuterClass.java | 469 + .../protobuf/SCWebRideChangedOuterClass.java | 697 + .../SCWebSuspectedViolationOuterClass.java | 550 + .../protobuf/SimpleUserInfoOuterClass.java | 921 + .../protobuf/SocketMessageOuterClass.java | 910 + .../kuaishou/protobuf/UserInfoOuterClass.java | 2121 + .../WebComboCommentFeedOuterClass.java | 846 + .../protobuf/WebCommentFeedOuterClass.java | 1651 + .../WebCommentFeedShowTypeOuterClass.java | 180 + .../protobuf/WebGiftFeedOuterClass.java | 2305 ++ .../protobuf/WebLikeFeedOuterClass.java | 1046 + .../WebLiveAssistantTypeOuterClass.java | 180 + .../protobuf/WebPauseTypeOuterClass.java | 179 + .../WebRedPackCoverTypeOuterClass.java | 180 + .../protobuf/WebRedPackInfoOuterClass.java | 1522 + .../protobuf/WebShareFeedOuterClass.java | 1301 + .../WebSystemNoticeFeedOuterClass.java | 1427 + .../protobuf/WebUserPauseTypeOuterClass.java | 170 + .../WebWatchingUserInfoOuterClass.java | 1080 + .../resources/proto/AuditAudienceMask.proto | 11 + .../src/main/resources/proto/CSError.proto | 9 + .../main/resources/proto/CSHeartbeat.proto | 9 + .../src/main/resources/proto/CSPing.proto | 12 + .../main/resources/proto/CSWebEnterRoom.proto | 15 + .../src/main/resources/proto/CSWebError.proto | 10 + .../main/resources/proto/CSWebHeartbeat.proto | 9 + .../main/resources/proto/CSWebUserExit.proto | 9 + .../main/resources/proto/CSWebUserPause.proto | 10 + .../src/main/resources/proto/ClientId.proto | 14 + .../resources/proto/ConfigSwitchItem.proto | 10 + .../resources/proto/ConfigSwitchType.proto | 10 + .../main/resources/proto/GzoneNameplate.proto | 11 + .../resources/proto/LiveAudienceState.proto | 22 + .../resources/proto/LiveCdnNodeView.proto | 11 + .../resources/proto/LiveFansGroupState.proto | 10 + .../src/main/resources/proto/PSHostInfo.proto | 10 + .../main/resources/proto/PayloadType.proto | 65 + .../src/main/resources/proto/PicUrl.proto | 12 + .../src/main/resources/proto/SCEcho.proto | 9 + .../src/main/resources/proto/SCError.proto | 11 + .../main/resources/proto/SCHeartbeatAck.proto | 10 + .../src/main/resources/proto/SCInfo.proto | 10 + ...LiveWarningMaskStatusChangedAudience.proto | 10 + .../src/main/resources/proto/SCPingAck.proto | 9 + .../resources/proto/SCWebAuthorPause.proto | 10 + .../resources/proto/SCWebAuthorResume.proto | 9 + .../resources/proto/SCWebBetChanged.proto | 9 + .../main/resources/proto/SCWebBetClosed.proto | 9 + .../proto/SCWebCurrentRedPackFeed.proto | 9 + .../resources/proto/SCWebEnterRoomAck.proto | 11 + .../src/main/resources/proto/SCWebError.proto | 11 + .../main/resources/proto/SCWebFeedPush.proto | 25 + .../resources/proto/SCWebGuessClosed.proto | 11 + .../resources/proto/SCWebGuessOpened.proto | 12 + .../resources/proto/SCWebHeartbeatAck.proto | 10 + .../SCWebLiveSpecialAccountConfigState.proto | 10 + .../proto/SCWebLiveWatchingUsers.proto | 11 + .../main/resources/proto/SCWebPipEnded.proto | 9 + .../resources/proto/SCWebPipStarted.proto | 9 + .../resources/proto/SCWebRefreshWallet.proto | 8 + .../resources/proto/SCWebRideChanged.proto | 10 + .../proto/SCWebSuspectedViolation.proto | 9 + .../main/resources/proto/SimpleUserInfo.proto | 11 + .../main/resources/proto/SocketMessage.proto | 17 + .../src/main/resources/proto/UserInfo.proto | 17 + .../resources/proto/WebComboCommentFeed.proto | 11 + .../main/resources/proto/WebCommentFeed.proto | 18 + .../proto/WebCommentFeedShowType.proto | 10 + .../main/resources/proto/WebGiftFeed.proto | 36 + .../main/resources/proto/WebLikeFeed.proto | 12 + .../proto/WebLiveAssistantType.proto | 10 + .../main/resources/proto/WebPauseType.proto | 10 + .../resources/proto/WebRedPackCoverType.proto | 10 + .../main/resources/proto/WebRedPackInfo.proto | 19 + .../main/resources/proto/WebShareFeed.proto | 16 + .../resources/proto/WebSystemNoticeFeed.proto | 21 + .../resources/proto/WebUserPauseType.proto | 9 + .../resources/proto/WebWatchingUserInfo.proto | 14 + .../client/kuaishou/api/KuaishouApisTest.java | 40 + .../client/KuaishouLiveChatClientTest.java | 206 + .../live-chat-clients/pom.xml | 47 + ruoyi-common/ruoyi-common-live/pom.xml | 179 + ruoyi-common/ruoyi-common-pay/pom.xml | 43 + .../org/ruoyi/common/config/PayConfig.java | 53 + .../java/org/ruoyi/common/config/PayInit.java | 49 + .../common/config/WxPayConfiguration.java | 47 + .../common/listener/ConfigChangeListener.java | 37 + .../ruoyi/common/response/PayResponse.java | 70 + .../org/ruoyi/common/service/PayService.java | 23 + .../common/service/impl/PayServiceImpl.java | 53 + .../java/org/ruoyi/common/utils/MD5Util.java | 106 + ruoyi-common/ruoyi-common-wechat/pom.xml | 75 + .../wechat/itchat4j/api/MessageTools.java | 546 + .../wechat/itchat4j/api/WechatTools.java | 352 + .../common/wechat/itchat4j/beans/AppInfo.java | 37 + .../common/wechat/itchat4j/beans/BaseMsg.java | 330 + .../wechat/itchat4j/beans/BaseResponse.java | 28 + .../common/wechat/itchat4j/beans/Member.java | 306 + .../wechat/itchat4j/beans/RecommendInfo.java | 146 + .../common/wechat/itchat4j/beans/SendMsg.java | 59 + .../common/wechat/itchat4j/beans/SyncKey.java | 52 + .../common/wechat/itchat4j/beans/User.java | 54 + .../wechat/itchat4j/beans/WebWxInit.java | 43 + .../itchat4j/client/HttpClientManage.java | 34 + .../itchat4j/client/SingleHttpClient.java | 187 + .../itchat4j/controller/LoginController.java | 148 + .../common/wechat/itchat4j/core/Core.java | 371 + .../wechat/itchat4j/core/CoreManage.java | 323 + .../wechat/itchat4j/core/MsgCenter.java | 273 + .../wechat/itchat4j/face/IMsgHandlerFace.java | 93 + .../itchat4j/service/ILoginService.java | 85 + .../service/impl/LoginServiceImpl.java | 894 + .../common/wechat/itchat4j/utils/Config.java | 78 + .../itchat4j/utils/ConstantConfigEnum.java | 34 + .../wechat/itchat4j/utils/LogInterface.java | 13 + .../wechat/itchat4j/utils/MoreConfig.java | 12 + .../wechat/itchat4j/utils/SleepUtils.java | 20 + .../itchat4j/utils/enums/MsgCodeEnum.java | 64 + .../itchat4j/utils/enums/MsgTypeEnum.java | 41 + .../itchat4j/utils/enums/OsNameEnum.java | 13 + .../itchat4j/utils/enums/ResultEnum.java | 25 + .../itchat4j/utils/enums/RetCodeEnum.java | 49 + .../itchat4j/utils/enums/SelectorEnum.java | 48 + .../itchat4j/utils/enums/SendMsgType.java | 65 + .../utils/enums/StorageLoginInfoEnum.java | 57 + .../wechat/itchat4j/utils/enums/URLEnum.java | 49 + .../utils/enums/VerifyFriendEnum.java | 28 + .../utils/enums/parameters/BaseParaEnum.java | 36 + .../utils/enums/parameters/LoginParaEnum.java | 31 + .../parameters/StatusNotifyParaEnum.java | 31 + .../utils/enums/parameters/UUIDParaEnum.java | 30 + .../itchat4j/utils/tools/CommonTools.java | 301 + .../itchat4j/utils/tools/DownloadTools.java | 77 + .../wechat/web/annotation/UnCheckLogin.java | 11 + .../common/wechat/web/base/BaseError.java | 56 + .../common/wechat/web/base/BaseException.java | 40 + .../common/wechat/web/base/BaseResponse.java | 85 + .../common/wechat/web/cache/UserSession.java | 30 + .../common/wechat/web/common/MyConfig.java | 153 + .../common/wechat/web/common/MyRoute.java | 30 + .../common/wechat/web/common/OutRoute.java | 21 + .../wechat/web/constant/ConfigKeys.java | 21 + .../wechat/web/constant/UploadConstant.java | 21 + .../web/controller/ExtendController.java | 125 + .../web/controller/IndexController.java | 99 + .../web/controller/KeyWordController.java | 191 + .../web/controller/RelateController.java | 179 + .../web/controller/RobotController.java | 223 + .../web/controller/RobotWorkController.java | 179 + .../wechat/web/controller/ToolController.java | 14 + .../web/controller/UploadController.java | 47 + .../web/controller/_BaseController.java | 199 + .../wechat/web/enums/KeyMsgValueType.java | 45 + .../web/interceptor/ExceptionInterceptor.java | 52 + .../web/interceptor/VisitLogInterceptor.java | 79 + .../interceptor/VisitLogInterceptor4down.java | 26 + .../common/wechat/web/model/WxRobConfig.java | 21 + .../common/wechat/web/model/WxRobKeyword.java | 11 + .../wechat/web/model/WxRobRelation.java | 11 + .../web/model/_JFinalDemoGenerator.java | 72 + .../common/wechat/web/model/_MappingKit.java | 24 + .../web/model/base/BaseWxRobConfig.java | 111 + .../web/model/base/BaseWxRobKeyword.java | 93 + .../web/model/base/BaseWxRobRelation.java | 84 + .../common/wechat/web/utils/Base64Util.java | 30 + .../ruoyi/common/wechat/web/utils/IpUtil.java | 35 + .../common/wechat/web/utils/LRUCache.java | 26 + .../common/wechat/web/utils/MD5Util.java | 68 + .../wechat/web/utils/UUIDShortUtil.java | 33 + .../src/main/resources/appConfig.properties | 7 + .../src/main/resources/passport.properties | 1 + .../src/main/resources/undertow.txt | 51 + 532 files changed, 161718 insertions(+) create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java create mode 100644 ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml create mode 100644 ruoyi-common/ruoyi-common-live/pom.xml create mode 100644 ruoyi-common/ruoyi-common-pay/pom.xml create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java create mode 100644 ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java create mode 100644 ruoyi-common/ruoyi-common-wechat/pom.xml create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/IndexController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/KeyWordController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties create mode 100644 ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index bec0540d..e617b6dd 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -39,6 +39,9 @@ ruoyi-common-encrypt ruoyi-common-tenant ruoyi-common-chat + ruoyi-common-wechat + ruoyi-common-pay + ruoyi-common-live diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml new file mode 100644 index 00000000..76af3458 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + + org.ruoyi + live-chat-client-commons + ${revision} + ../pom.xml + + + live-chat-client-commons-base + ordinaryroad-live-chat-client-commons-base + + + UTF-8 + + + + + com.fasterxml.jackson.core + jackson-databind + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java new file mode 100644 index 00000000..faf4a699 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/constant/Constants.java @@ -0,0 +1,32 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.constant; + +/** + * @author mjz + * @date 2023/8/26 + */ +public class Constants { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java new file mode 100644 index 00000000..71248e7e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/exception/BaseException.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.exception; + +/** + * @author mjz + * @date 2023/9/5 + */ +public class BaseException extends RuntimeException { + + public BaseException() { + } + + public BaseException(String message) { + super(message); + } + + public BaseException(String message, Throwable cause) { + super(message, cause); + } + + public BaseException(Throwable cause) { + super(cause); + } + + public BaseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java new file mode 100644 index 00000000..4398cf9b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseConnectionListener.java @@ -0,0 +1,60 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 连接回调 + * + * @author mjz + * @date 2023/8/26 + */ +public interface IBaseConnectionListener { + + /** + * 连接建立成功 + */ + default void onConnected(T t) { + // ignore + } + + /** + * 连接建立失败 + * + * @param t + */ + default void onConnectFailed(T t) { + // ignore + } + + /** + * 连接断开 + * + * @param t + */ + default void onDisconnected(T t) { + // ignore + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java new file mode 100644 index 00000000..7230d9dd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IBaseMsgListener.java @@ -0,0 +1,149 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +/** + * Base消息回调 + * + * @author mjz + * @date 2023/8/26 + */ +public interface IBaseMsgListener> { + + /** + * 收到消息(所有消息) + * + * @param msg IMsg + */ + default void onMsg(T t, IMsg msg) { + this.onMsg(msg); + } + + default void onMsg(IMsg msg) { + // ignore + } + + /** + * 收到cmd消息(所有cmd) + * + * @param cmd CmdEnum + * @param cmdMsg BaseCmdMsg + */ + default void onCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { + this.onCmdMsg(cmd, cmdMsg); + } + + default void onCmdMsg(CmdEnum cmd, ICmdMsg cmdMsg) { + // ignore + } + + /** + * 收到其他cmd消息(存在Enum,但Listener没有对应的回调) + * + * @param cmd CmdEnum + * @param cmdMsg BaseCmdMsg + */ + default void onOtherCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { + this.onOtherCmdMsg(cmd, cmdMsg); + } + + default void onOtherCmdMsg(CmdEnum cmd, ICmdMsg cmdMsg) { + // ignore + } + + /** + * 收到未知cmd消息 + * + * @param cmdString 实际收到的cmd字符串 + * @param msg BaseMsg + */ + default void onUnknownCmd(T t, String cmdString, IMsg msg) { + this.onUnknownCmd(cmdString, msg); + } + + default void onUnknownCmd(String cmdString, IMsg msg) { + // ignore + } + + /** + * 收到cmd消息(所有cmd) + * + * @param cmd CmdEnum + * @param cmdMsg BaseCmdMsg + * @deprecated use {@link #onCmdMsg(T, Enum, ICmdMsg)} + */ + default void onCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { + this.onCmdMsg(cmd, cmdMsg); + } + + /** + * @deprecated use {@link #onCmdMsg(Enum, ICmdMsg)} + */ + default void onCmdMsg(CmdEnum cmd, BaseCmdMsg cmdMsg) { + // ignore + } + + /** + * 收到其他cmd消息(存在Enum,但Listener没有对应的回调) + * + * @param cmd CmdEnum + * @param cmdMsg BaseCmdMsg + * @deprecated use {@link #onOtherCmdMsg(T, Enum, ICmdMsg)} + */ + default void onOtherCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { + this.onOtherCmdMsg(cmd, cmdMsg); + } + + /** + * @deprecated use {@link #onOtherCmdMsg(Enum, ICmdMsg)} + */ + default void onOtherCmdMsg(CmdEnum cmd, BaseCmdMsg cmdMsg) { + // ignore + } + + /** + * 收到未知cmd消息 + * + * @param cmdString 实际收到的cmd字符串 + * @param msg BaseMsg + * @deprecated use {@link #onUnknownCmd(T, String, IMsg)} + */ + default void onUnknownCmd(T t, String cmdString, BaseMsg msg) { + this.onUnknownCmd(cmdString, msg); + } + + /** + * @deprecated use {@link #onUnknownCmd(String, IMsg)} + */ + default void onUnknownCmd(String cmdString, BaseMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java new file mode 100644 index 00000000..52b8dac1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IDanmuMsgListener.java @@ -0,0 +1,46 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 弹幕消息回调 + * + * @author mjz + * @since 0.0.6 + */ +public interface IDanmuMsgListener { + + /** + * 收到弹幕 + */ + default void onDanmuMsg(T t, DanmuMsg msg) { + this.onDanmuMsg(msg); + } + + default void onDanmuMsg(DanmuMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java new file mode 100644 index 00000000..931f35f8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IEnterRoomMsgListener.java @@ -0,0 +1,47 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 进入房间消息回调 + * + * @author mjz + * @date 2023/12/14 + * @since 0.0.16 + */ +public interface IEnterRoomMsgListener { + + /** + * 用户进入房间 + */ + default void onEnterRoomMsg(T t, EnterRoomMsg msg) { + this.onEnterRoomMsg(msg); + } + + default void onEnterRoomMsg(EnterRoomMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java new file mode 100644 index 00000000..f486b961 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/IGiftMsgListener.java @@ -0,0 +1,47 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 礼物消息回调 + * + * @author mjz + * @since 0.0.8 + */ +public interface IGiftMsgListener { + + + /** + * 收到礼物 + */ + default void onGiftMsg(T t, GiftMsg msg) { + this.onGiftMsg(msg); + } + + default void onGiftMsg(GiftMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java new file mode 100644 index 00000000..42cc886a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ILikeMsgListener.java @@ -0,0 +1,46 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 点赞消息回调 + * + * @author mjz + * @since 0.2.0 + */ +public interface ILikeMsgListener { + + /** + * 收到点赞 + */ + default void onLikeMsg(T t, LikeMsg msg) { + this.onLikeMsg(msg); + } + + default void onLikeMsg(LikeMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java new file mode 100644 index 00000000..1a70b60a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/listener/ISuperChatMsgListener.java @@ -0,0 +1,47 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.listener; + + +/** + * 醒目留言消息回调 + * + * @author mjz + * @date 2023/9/24 + * @since 0.0.11 + */ +public interface ISuperChatMsgListener { + + /** + * 收到醒目留言 + */ + default void onSuperChatMsg(T t, SuperChatMsg msg) { + this.onSuperChatMsg(msg); + } + + default void onSuperChatMsg(SuperChatMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java new file mode 100644 index 00000000..734c4b6b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseCmdMsg.java @@ -0,0 +1,33 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * @author mjz + * @date 2023/8/26 + */ +public abstract class BaseCmdMsg> extends BaseMsg + implements ICmdMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java new file mode 100644 index 00000000..2135fa49 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/BaseMsg.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/8/26 + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +public abstract class BaseMsg implements IMsg { + + public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + + @Override + public String toString() { + try { + return OBJECT_MAPPER.writeValueAsString(this); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java new file mode 100644 index 00000000..7a0b2cf1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ICmdMsg.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * @author mjz + * @date 2023/10/2 + */ +public interface ICmdMsg> extends IMsg { + + String getCmd(); + + void setCmd(String cmd); + + CmdEnum getCmdEnum(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java new file mode 100644 index 00000000..7a4745c7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IDanmuMsg.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * @author mjz + * @date 2023/9/8 + */ +public interface IDanmuMsg extends IMsg { + + /** + * 粉丝牌名称 + */ + String getBadgeName(); + + /** + * 粉丝牌等级 + */ + byte getBadgeLevel(); + + /** + * 弹幕发送者id + */ + String getUid(); + + /** + * 弹幕发送者用户名 + */ + String getUsername(); + + /** + * 弹幕发送者头像地址 + * + * @since 0.0.11 + */ + default String getUserAvatar() { + return null; + } + + /** + * 弹幕内容 + */ + String getContent(); + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java new file mode 100644 index 00000000..a914e63f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IEnterRoomMsg.java @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * 入房消息 + * + * @author mjz + * @date 2023/12/26 + * @since 0.0.16 + */ +public interface IEnterRoomMsg extends IMsg { + + /** + * 粉丝牌名称 + */ + String getBadgeName(); + + /** + * 粉丝牌等级 + */ + byte getBadgeLevel(); + + /** + * 用户id + */ + String getUid(); + + /** + * 用户名 + */ + String getUsername(); + + /** + * 头像地址 + */ + default String getUserAvatar() { + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java new file mode 100644 index 00000000..9b8d35d7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IGiftMsg.java @@ -0,0 +1,100 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * @author mjz + * @date 2023/9/8 + */ +public interface IGiftMsg extends IMsg { + + /** + * 粉丝牌名称 + */ + default String getBadgeName() { + return ""; + } + + /** + * 粉丝牌等级 + */ + default byte getBadgeLevel() { + return 0; + } + + /** + * 发送方id + */ + String getUid(); + + /** + * 发送方用户名 + */ + String getUsername(); + + /** + * 发送方头像地址 + * + * @since 0.0.11 + */ + default String getUserAvatar() { + return null; + } + + /** + * 礼物名称 + */ + String getGiftName(); + + /** + * 礼物图像地址 + */ + String getGiftImg(); + + /** + * 礼物id + */ + String getGiftId(); + + /** + * 礼物数量 + */ + int getGiftCount(); + + /** + * 单个礼物价格 + */ + int getGiftPrice(); + + /** + * 接收方id + */ + String getReceiveUid(); + + /** + * 接收方用户名 + */ + String getReceiveUsername(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java new file mode 100644 index 00000000..c10fe97b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ILikeMsg.java @@ -0,0 +1,71 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * @author mjz + * @date 2024/1/31 + * @since 0.2.0 + */ +public interface ILikeMsg extends IMsg { + + /** + * 粉丝牌名称 + */ + default String getBadgeName(){ + return ""; + } + + /** + * 粉丝牌等级 + */ + default byte getBadgeLevel(){ + return 0; + } + + /** + * 点赞者id + */ + String getUid(); + + /** + * 点赞者用户名 + */ + String getUsername(); + + /** + * 点赞者头像地址 + */ + default String getUserAvatar() { + return null; + } + + /** + * 点赞数 + */ + default int getClickCount() { + return 1; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java new file mode 100644 index 00000000..c02a3367 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/IMsg.java @@ -0,0 +1,34 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +import java.io.Serializable; + +/** + * @author mjz + * @date 2023/8/26 + */ +public interface IMsg extends Serializable { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java new file mode 100644 index 00000000..58c94916 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-base/src/main/java/tech/ordinaryroad/live/chat/client/commons/base/msg/ISuperChatMsg.java @@ -0,0 +1,49 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.base.msg; + +/** + * 醒目留言 + * + * @author mjz + * @date 2023/9/22 + */ +public interface ISuperChatMsg extends IDanmuMsg { + + /** + * 醒目留言持续时间,单位秒 + */ + int getDuration(); + + @Override + default String getBadgeName() { + return ""; + } + + @Override + default byte getBadgeLevel() { + return 0; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml new file mode 100644 index 00000000..f25c8226 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/pom.xml @@ -0,0 +1,55 @@ + + + + 4.0.0 + + + org.ruoyi + live-chat-client-commons + ${revision} + ../pom.xml + + jar + + live-chat-client-commons-client + live-chat-client-commons-client + + + UTF-8 + + + + + org.ruoyi + live-chat-client-commons-base + + + + org.ruoyi + live-chat-client-commons-util + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java new file mode 100644 index 00000000..f442b9c8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/BaseLiveChatClient.java @@ -0,0 +1,200 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.client; + +import lombok.Getter; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.client.config.BaseLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2023/8/26 + */ +public abstract class BaseLiveChatClient< + Config extends BaseLiveChatClientConfig, + MsgListener extends IBaseMsgListener + > implements IBaseLiveChatClient { + + private final Config config; + @Getter + private volatile ClientStatusEnums status = ClientStatusEnums.NEW; + protected PropertyChangeSupport statusChangeSupport = new PropertyChangeSupport(status); + protected volatile boolean cancelReconnect = false; + protected final List msgListeners = Collections.synchronizedList(new ArrayList<>()); + + protected BaseLiveChatClient(Config config) { + this.config = config; + } + + public Config getConfig() { + return config; + } + + @Override + public void connect(Runnable success) { + this.connect(success, null); + } + + @Override + public void connect() { + this.connect(null, null); + } + + @Override + public void disconnect(boolean cancelReconnect) { + this.cancelReconnect = cancelReconnect; + this.disconnect(); + } + + @Override + public void send(Object msg) { + this.send(msg, null, null); + } + + @Override + public void send(Object msg, Runnable success) { + this.send(msg, success, null); + } + + @Override + public void send(Object msg, Consumer failed) { + this.send(msg, null, failed); + } + + @Override + public void sendDanmu(Object danmu) { + this.sendDanmu(danmu, null, null); + } + + @Override + public void sendDanmu(Object danmu, Runnable success) { + this.sendDanmu(danmu, success, null); + } + + @Override + public void sendDanmu(Object danmu, Consumer failed) { + this.sendDanmu(danmu, null, failed); + } + + @Override + public void clickLike(int count) { + this.clickLike(count, null, null); + } + + @Override + public void clickLike(int count, Runnable success) { + this.clickLike(count, success, null); + } + + @Override + public void clickLike(int count, Consumer failed) { + this.clickLike(count, null, failed); + } + + protected abstract void tryReconnect(); + + protected abstract String getWebSocketUriString(); + + /** + * 判断是否处于某个状态,或者处于后续状态 + * + * @param status {@link ClientStatusEnums} + * @return false: 还没有到达该状态 + */ + protected boolean checkStatus(ClientStatusEnums status) { + return this.status.getCode() >= Objects.requireNonNull(status).getCode(); + } + + protected void setStatus(ClientStatusEnums status) { + ClientStatusEnums oldStatus = this.status; + if (oldStatus != status) { + this.status = status; + this.statusChangeSupport.firePropertyChange("status", oldStatus, status); + } + } + + public void addStatusChangeListener(PropertyChangeListener listener) { + this.statusChangeSupport.addPropertyChangeListener(listener); + } + + public void removeStatusChangeListener(PropertyChangeListener listener) { + this.statusChangeSupport.removePropertyChangeListener(listener); + } + + @Override + public void destroy() { + for (PropertyChangeListener propertyChangeListener : this.statusChangeSupport.getPropertyChangeListeners()) { + this.statusChangeSupport.removePropertyChangeListener(propertyChangeListener); + } + this.msgListeners.clear(); + } + + @Override + public boolean addMsgListener(MsgListener msgListener) { + if (msgListener == null) { + return false; + } + return this.msgListeners.add(msgListener); + } + + @Override + public boolean addMsgListeners(List msgListeners) { + if (msgListeners == null || msgListeners.isEmpty()) { + return false; + } + return this.msgListeners.addAll(msgListeners); + } + + @Override + public boolean removeMsgListener(MsgListener msgListener) { + if (msgListener == null) { + return false; + } + return this.msgListeners.remove(msgListener); + } + + @Override + public boolean removeMsgListeners(List msgListeners) { + if (msgListeners == null || msgListeners.isEmpty()) { + return false; + } + return this.msgListeners.removeAll(msgListeners); + } + + @Override + public void removeAllMsgListeners() { + this.msgListeners.clear(); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java new file mode 100644 index 00000000..951b4bca --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/IBaseLiveChatClient.java @@ -0,0 +1,135 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.client; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; + +import java.util.List; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2023/9/5 + */ +public interface IBaseLiveChatClient> { + + void init(); + + boolean addMsgListener(MsgListener msgListener); + + boolean addMsgListeners(List msgListeners); + + boolean removeMsgListener(MsgListener msgListener); + + boolean removeMsgListeners(List msgListeners); + + void removeAllMsgListeners(); + + void connect(Runnable success, Consumer failed); + + void connect(Runnable success); + + void connect(); + + /** + * 手动断开连接 + * + * @param cancelReconnect 取消本次的自动重连(如果启用自动重连) + */ + void disconnect(boolean cancelReconnect); + + void disconnect(); + + void destroy(); + + void send(Object msg); + + void send(Object msg, Runnable success, Consumer failed); + + void send(Object msg, Runnable success); + + void send(Object msg, Consumer failed); + + /** + * 发送弹幕 + * + * @param danmu 弹幕内容 + * @since 0.0.6 + */ + void sendDanmu(Object danmu); + + /** + * 发送弹幕 + * + * @param danmu 弹幕内容 + * @since 0.0.6 + */ + void sendDanmu(Object danmu, Runnable success, Consumer failed); + + /** + * 发送弹幕 + * + * @param danmu 弹幕内容 + * @since 0.0.6 + */ + void sendDanmu(Object danmu, Runnable success); + + /** + * 发送弹幕 + * + * @param danmu 弹幕内容 + * @since 0.0.6 + */ + void sendDanmu(Object danmu, Consumer failed); + + /** + * 为直播间点赞 + * + * @since 0.2.0 + */ + void clickLike(int count); + + /** + * 为直播间点赞 + * + * @since 0.2.0 + */ + void clickLike(int count, Runnable success, Consumer failed); + + /** + * 为直播间点赞 + * + * @since 0.2.0 + */ + void clickLike(int count, Runnable success); + + /** + * 为直播间点赞 + * + * @since 0.2.0 + */ + void clickLike(int count, Consumer failed); + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java new file mode 100644 index 00000000..1fee0f74 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/config/BaseLiveChatClientConfig.java @@ -0,0 +1,139 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.client.config; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; + +/** + * 直播间弹幕客户端配置 + * + * @author mjz + * @date 2023/8/26 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public abstract class BaseLiveChatClientConfig { + + protected PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); + public static final long DEFAULT_HEARTBEAT_INITIAL_DELAY = 15; + public static final long DEFAULT_HEARTBEAT_PERIOD = 25; + public static final long DEFAULT_MIN_SEND_DANMU_PERIOD = 3000L; + + private String websocketUri; + + /** + * 浏览器中的Cookie + */ + private String cookie; + + /** + * 直播间id + */ + private Object roomId; + + /** + * 是否启用自动重连 + */ + @Builder.Default + private boolean autoReconnect = Boolean.TRUE; + + /** + * 重试延迟时间(秒),默认5s后重试 + */ + @Builder.Default + private int reconnectDelay = 5; + + /** + * 首次发送心跳包的延迟时间(秒) + */ + @Builder.Default + private long heartbeatInitialDelay = DEFAULT_HEARTBEAT_INITIAL_DELAY; + + /** + * 心跳包发送周期(秒) + */ + @Builder.Default + private long heartbeatPeriod = DEFAULT_HEARTBEAT_PERIOD; + + /** + * 最小发送弹幕时间间隔(毫秒) + */ + @Builder.Default + private long minSendDanmuPeriod = DEFAULT_MIN_SEND_DANMU_PERIOD; + + public void setCookie(String cookie) { + String oldValue = this.cookie; + this.cookie = cookie; + this.propertyChangeSupport.firePropertyChange("cookie", oldValue, cookie); + } + + public void setRoomId(Object roomId) { + if (!(roomId instanceof Number || roomId instanceof String)) { + throw new BaseException("房间ID仅支持数字或字符串,所传参数类型:" + roomId.getClass() + "值:" + roomId); + } + Object oldValue = this.roomId; + this.roomId = roomId; + this.propertyChangeSupport.firePropertyChange("roomId", oldValue, roomId); + } + + public void setWebsocketUri(String websocketUri) { + String oldValue = this.websocketUri; + this.websocketUri = websocketUri; + this.propertyChangeSupport.firePropertyChange("websocketUri", oldValue, websocketUri); + } + + public void setMinSendDanmuPeriod(long minSendDanmuPeriod) { + long oldValue = this.minSendDanmuPeriod; + this.minSendDanmuPeriod = minSendDanmuPeriod; + this.propertyChangeSupport.firePropertyChange("minSendDanmuPeriod", oldValue, minSendDanmuPeriod); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + this.propertyChangeSupport.addPropertyChangeListener(propertyName, listener); + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + this.propertyChangeSupport.addPropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + this.propertyChangeSupport.removePropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + this.propertyChangeSupport.removePropertyChangeListener(listener); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java new file mode 100644 index 00000000..29d2c753 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-client/src/main/java/tech/ordinaryroad/live/chat/client/commons/client/enums/ClientStatusEnums.java @@ -0,0 +1,83 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.client.enums; + +/** + * @author mjz + * @date 2023/8/26 + */ +public enum ClientStatusEnums { + /** + * 新创建 + */ + NEW(0), + + /** + * 已初始化 + */ + INITIALIZED(1), + + /** + * 连接中 + */ + CONNECTING(100), + + /** + * 重新连接中 + */ + RECONNECTING(101), + + /** + * 已连接 + */ + CONNECTED(200), + + /** + * 连接失败 + */ + CONNECT_FAILED(401), + + /** + * 已断开连接 + */ + DISCONNECTED(400), + + /** + * 已销毁 + */ + DESTROYED(-1), + ; + + public int getCode() { + return code; + } + + ClientStatusEnums(int order) { + this.code = order; + } + + private final int code; + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml new file mode 100644 index 00000000..190ca516 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + org.ruoyi + live-chat-client-commons + ${revision} + ../pom.xml + + jar + + live-chat-client-commons-util + live-chat-client-commons-util + + + UTF-8 + + + + + cn.hutool + hutool-all + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java new file mode 100644 index 00000000..9ec118fc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatCookieUtil.java @@ -0,0 +1,80 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; + +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; +import java.util.stream.Collectors; + +/** + * @author mjz + * @date 2023/8/27 + */ +public class OrLiveChatCookieUtil { + + public static String toString(List cookies) { + if (CollUtil.isEmpty(cookies)) { + return StrUtil.EMPTY; + } + + return cookies.stream().map(httpCookie -> { + httpCookie.setVersion(0); + return httpCookie.toString(); + }).collect(Collectors.joining("; ")); + } + + public static Map parseCookieString(String cookies) { + Map map = new HashMap<>(); + if (StrUtil.isNotBlank(cookies) && !StrUtil.isNullOrUndefined(cookies)) { + try { + String[] split = cookies.split("; "); + for (String s : split) { + String[] split1 = s.split("="); + map.put(split1[0], split1[1]); + } + } catch (Exception e) { + throw new RuntimeException("cookie解析失败 " + cookies, e); + } + } + return map; + } + + public static String getCookieByName(Map cookieMap, String name, Supplier supplier) { + String str = MapUtil.getStr(cookieMap, name); + return str == null ? supplier.get() : str; + } + + public static String getCookieByName(String cookie, String name, Supplier supplier) { + String str = MapUtil.getStr(parseCookieString(cookie), name); + return str == null ? supplier.get() : str; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java new file mode 100644 index 00000000..969cf003 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatNumberUtil.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.util; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; + +/** + * @author mjz + * @date 2023/12/2 + */ +public class OrLiveChatNumberUtil extends NumberUtil { + + public static long parseLong(Object object){ + return NumberUtil.parseLong(StrUtil.toStringOrNull(object)); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java new file mode 100644 index 00000000..a4d8a5dd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLiveChatReflectUtil.java @@ -0,0 +1,50 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.util; + +import cn.hutool.core.util.ReflectUtil; + +import java.lang.reflect.Method; + +/** + * @author mjz + * @date 2023/8/28 + */ +public class OrLiveChatReflectUtil extends ReflectUtil { + + public static Method getGetterMethod(Class objectClass, String key) { + Method method; + if (key.startsWith("is")) { + method = ReflectUtil.getMethodByNameIgnoreCase(objectClass, key); + if (method == null) { + ReflectUtil.getMethodByNameIgnoreCase(objectClass, "get" + key); + } + } else { + method = ReflectUtil.getMethodByNameIgnoreCase(objectClass, "get" + key); + } + return method; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java new file mode 100644 index 00000000..b09cdedd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/live-chat-client-commons-util/src/main/java/tech/ordinaryroad/live/chat/client/commons/util/OrLocalDateTimeUtil.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.commons.util; + +import cn.hutool.core.date.LocalDateTimeUtil; + +import java.time.ZoneId; +import java.time.ZonedDateTime; + +/** + * @author mjz + * @date 2023/9/7 + */ +public class OrLocalDateTimeUtil extends LocalDateTimeUtil { + + public static ZoneId ZONE_ID_CTT = ZoneId.of(ZoneId.SHORT_IDS.get("CTT")); + + /** + * 获取中国标准时间的当前时间戳(毫秒) + */ + public static long zonedCurrentTimeMillis() { + ZonedDateTime now = ZonedDateTime.now(ZONE_ID_CTT); + return now.toEpochSecond() * 1000 + now.getNano() / 1_000_000; + } + + /** + * 获取中国标准时间的当前时间戳(秒) + */ + public static long zonedCurrentTimeSecs() { + return ZonedDateTime.now(ZONE_ID_CTT).toEpochSecond(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml new file mode 100644 index 00000000..84ba7804 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-commons/pom.xml @@ -0,0 +1,44 @@ + + + + 4.0.0 + + org.ruoyi + ruoyi-common-live + ${revision} + ../pom.xml + + + pom + + live-chat-client-commons + + + live-chat-client-commons-base + live-chat-client-commons-util + live-chat-client-commons-client + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml new file mode 100644 index 00000000..9ea335d6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/pom.xml @@ -0,0 +1,55 @@ + + + + 4.0.0 + + org.ruoyi + live-chat-client-servers + ${revision} + ../pom.xml + + + jar + + live-chat-client-servers-netty-client + live-chat-client-servers-netty + + + UTF-8 + + + + + org.ruoyi + live-chat-client-commons-client + + + + org.ruoyi + live-chat-client-servers-netty + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java new file mode 100644 index 00000000..c342b5bc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/base/BaseNettyClient.java @@ -0,0 +1,349 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.client.base; + +import io.netty.bootstrap.Bootstrap; +import io.netty.channel.*; +import io.netty.channel.socket.SocketChannel; +import io.netty.channel.socket.nio.NioSocketChannel; +import io.netty.handler.codec.http.HttpClientCodec; +import io.netty.handler.codec.http.HttpObjectAggregator; +import io.netty.handler.ssl.SslContext; +import io.netty.handler.ssl.SslContextBuilder; +import io.netty.handler.stream.ChunkedWriteHandler; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.BaseLiveChatClient; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; +import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseConnectionHandler; + +import javax.net.ssl.SSLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2023/8/26 + */ +@Slf4j +public abstract class BaseNettyClient + , + Msg extends IMsg, + MsgListener extends IBaseMsgListener, + ConnectionHandler extends BaseConnectionHandler, + BinaryFrameHandler extends BaseBinaryFrameHandler + > + extends BaseLiveChatClient { + + @Getter + private final EventLoopGroup workerGroup; + @Getter + private final Bootstrap bootstrap = new Bootstrap(); + private BinaryFrameHandler binaryFrameHandler; + private ConnectionHandler connectionHandler; + private IBaseConnectionListener connectionListener; + private Channel channel; + @Getter + private URI websocketUri; + protected IBaseConnectionListener clientConnectionListener; + /** + * 控制弹幕发送频率 + */ + private volatile long lastSendDanmuTimeInMillis; + + public abstract ConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener); + + public abstract BinaryFrameHandler initBinaryFrameHandler(); + + protected BaseNettyClient(Config config, EventLoopGroup workerGroup, IBaseConnectionListener connectionListener) { + super(config); + this.workerGroup = workerGroup; + this.connectionListener = connectionListener; + } + + public void onConnected(ConnectionHandler connectionHandler) { + this.setStatus(ClientStatusEnums.CONNECTED); + if (this.connectionListener != null) { + this.connectionListener.onConnected(connectionHandler); + } + } + + public void onConnectFailed(ConnectionHandler connectionHandler) { + this.setStatus(ClientStatusEnums.CONNECT_FAILED); + tryReconnect(); + if (this.connectionListener != null) { + this.connectionListener.onConnectFailed(connectionHandler); + } + } + + public void onDisconnected(ConnectionHandler connectionHandler) { + this.setStatus(ClientStatusEnums.DISCONNECTED); + tryReconnect(); + if (this.connectionListener != null) { + this.connectionListener.onDisconnected(connectionHandler); + } + } + + @Override + public void init() { + if (checkStatus(ClientStatusEnums.INITIALIZED)) { + return; + } + try { + this.websocketUri = new URI(getWebSocketUriString()); + SslContext sslCtx = SslContextBuilder.forClient().build(); + + this.clientConnectionListener = new IBaseConnectionListener() { + @Override + public void onConnected(ConnectionHandler connectionHandler) { + BaseNettyClient.this.onConnected(connectionHandler); + } + + @Override + public void onConnectFailed(ConnectionHandler connectionHandler) { + BaseNettyClient.this.onConnectFailed(connectionHandler); + } + + @Override + public void onDisconnected(ConnectionHandler connectionHandler) { + BaseNettyClient.this.onDisconnected(connectionHandler); + } + }; + this.binaryFrameHandler = this.initBinaryFrameHandler(); + this.connectionHandler = this.initConnectionHandler(this.clientConnectionListener); + + this.bootstrap.group(this.workerGroup) + // 创建Channel + .channel(NioSocketChannel.class) + .remoteAddress(this.websocketUri.getHost(), getInetPort()) + .option(ChannelOption.TCP_NODELAY, true) + .option(ChannelOption.SO_KEEPALIVE, true) + // Channel配置 + .handler(new ChannelInitializer() { + @Override + protected void initChannel(SocketChannel ch) { + // 责任链 + ChannelPipeline pipeline = ch.pipeline(); + + // 放到第一位 addFirst 支持wss链接服务端 + pipeline.addFirst(sslCtx.newHandler(ch.alloc(), BaseNettyClient.this.websocketUri.getHost(), getInetPort())); + + // 添加一个http的编解码器 + pipeline.addLast(new HttpClientCodec()); + // 添加一个用于支持大数据流的支持 + pipeline.addLast(new ChunkedWriteHandler()); + // 添加一个聚合器,这个聚合器主要是将HttpMessage聚合成FullHttpRequest/Response + pipeline.addLast(new HttpObjectAggregator(BaseNettyClient.this.getConfig().getAggregatorMaxContentLength())); + + // 连接处理器 + pipeline.addLast(BaseNettyClient.this.connectionHandler); + // 弹幕处理器 + pipeline.addLast(BaseNettyClient.this.binaryFrameHandler); + } + }); + this.setStatus(ClientStatusEnums.INITIALIZED); + } catch (URISyntaxException e) { + throw new BaseException(e); + } catch (SSLException e) { + throw new BaseException(e); + } + } + + private int getInetPort() { + int port = this.websocketUri.getPort(); + return port == -1 ? "wss".equalsIgnoreCase(websocketUri.getScheme()) ? 443 : 80 : port; + } + + @Override + public void connect(Runnable success, Consumer failed) { + if (this.cancelReconnect) { + this.cancelReconnect = false; + } + if (!checkStatus(ClientStatusEnums.INITIALIZED)) { + return; + } + if (getStatus() == ClientStatusEnums.CONNECTED) { + return; + } + if (getStatus() != ClientStatusEnums.RECONNECTING) { + this.setStatus(ClientStatusEnums.CONNECTING); + } + this.bootstrap.connect().addListener((ChannelFutureListener) connectFuture -> { + if (connectFuture.isSuccess()) { + if (log.isDebugEnabled()) { + log.debug("连接建立成功!"); + } + this.channel = connectFuture.channel(); + // 监听是否握手成功 + this.connectionHandler.getHandshakeFuture().addListener((ChannelFutureListener) handshakeFuture -> { + try { + connectionHandler.sendAuthRequest(channel); + if (success != null) { + success.run(); + } + } catch (Exception e) { + log.error("认证包发送失败,断开连接", e); + this.disconnect(); + } + }); + } else { + log.error("连接建立失败", connectFuture.cause()); + this.onConnectFailed(this.connectionHandler); + if (failed != null) { + failed.accept(connectFuture.cause()); + } + } + }); + } + + @Override + public void disconnect() { + if (this.channel == null) { + return; + } + this.channel.close(); + } + + @Override + protected void tryReconnect() { + if (this.cancelReconnect) { + this.cancelReconnect = false; + return; + } + if (!getConfig().isAutoReconnect()) { + return; + } + if (log.isWarnEnabled()) { + log.warn("{}s后将重新连接 {}", getConfig().getReconnectDelay(), getConfig().getRoomId()); + } + workerGroup.schedule(() -> { + this.setStatus(ClientStatusEnums.RECONNECTING); + this.connect(); + }, getConfig().getReconnectDelay(), TimeUnit.SECONDS); + } + + @Override + public void send(Object msg, Runnable success, Consumer failed) { + ChannelFuture future = this.channel.writeAndFlush(msg); + if (success != null || failed != null) { + future.addListener((ChannelFutureListener) channelFuture -> { + if (channelFuture.isSuccess()) { + if (success != null) { + success.run(); + } + } else { + if (failed != null) { + failed.accept(channelFuture.cause()); + } + } + }); + } + } + + @Override + public void destroy() { + super.destroy(); + + // 销毁时不需要重连 + this.cancelReconnect = true; + workerGroup.shutdownGracefully().addListener(future -> { + if (future.isSuccess()) { + this.setStatus(ClientStatusEnums.DESTROYED); + } else { + throw new BaseException("client销毁失败", future.cause()); + } + }); + } + + @Override + protected String getWebSocketUriString() { + return getConfig().getWebsocketUri(); + } + + @Override + protected void setStatus(ClientStatusEnums status) { + if (log.isDebugEnabled()) { + if (getStatus() != status) { + log.debug("{} 状态变化 {} => {}\n", getClass().getSimpleName(), getStatus(), status); + } + } + super.setStatus(status); + } + + @Override + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + throw new BaseException("暂未支持该功能"); + } + + @Override + public void clickLike(int count, Runnable success, Consumer failed) { + throw new BaseException("暂未支持该功能"); + } + + /** + * 发送弹幕前判断是否可以发送 + * + * @param checkConnected 是否检查Client连接状态 + */ + protected boolean checkCanSendDanmu(boolean checkConnected) { + if (checkConnected && getStatus() != ClientStatusEnums.CONNECTED) { + throw new BaseException("连接未建立,无法发送弹幕"); + } + if (System.currentTimeMillis() - this.lastSendDanmuTimeInMillis <= getConfig().getMinSendDanmuPeriod()) { + if (log.isWarnEnabled()) { + log.warn("发送弹幕频率过快,忽略该次发送"); + } + return false; + } + return true; + } + + protected boolean checkCanSendDanmu() { + return checkCanSendDanmu(true); + } + + /** + * 发送弹幕后调用该方法 + */ + protected void finishSendDanmu() { + this.lastSendDanmuTimeInMillis = System.currentTimeMillis(); + if (log.isDebugEnabled()) { + log.debug("弹幕发送完成"); + } + } + + public void iteratorMsgListeners(Consumer consumer) { + binaryFrameHandler.iteratorMsgListeners(consumer); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java new file mode 100644 index 00000000..c0ebf52b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/config/BaseNettyClientConfig.java @@ -0,0 +1,65 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.client.config; + +import io.netty.handler.codec.http.HttpHeaders; +import io.netty.handler.codec.http.HttpObjectAggregator; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.commons.client.config.BaseLiveChatClientConfig; + +import java.net.URI; + +/** + * @author mjz + * @date 2023/8/26 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public abstract class BaseNettyClientConfig extends BaseLiveChatClientConfig { + + /** + * 聚合器允许的最大消息体长度,默认 64*1024 byte + * + * @see HttpObjectAggregator#HttpObjectAggregator(int) + */ + @Builder.Default + private int aggregatorMaxContentLength = 64 * 1024; + + /** + * WebSocketClientHandshaker最大消息体长度,默认 64*1024 byte + * + * @see WebSocketClientHandshakerFactory#newHandshaker(URI, WebSocketVersion, String, boolean, HttpHeaders, int) + */ + @Builder.Default + private int maxFramePayloadLength = 64 * 1024; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java new file mode 100644 index 00000000..278ce3f4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientBinaryFrameHandler.java @@ -0,0 +1,66 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.client.handler; + +import lombok.Getter; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; +import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseBinaryFrameHandler; + +import java.util.List; + +/** + * BaseClientBinaryFrameHandler + * + * @author mjz + * @date 2023/8/30 + */ +public abstract class BaseNettyClientBinaryFrameHandler< + Client extends BaseNettyClient, + BinaryFrameHandler extends BaseBinaryFrameHandler, + CmdEnum extends Enum, + Msg extends IMsg, + MsgListener extends IBaseMsgListener> + extends BaseBinaryFrameHandler { + + @Getter + protected final Client client; + + public BaseNettyClientBinaryFrameHandler(List msgListeners, Client client, long roomId) { + super(msgListeners, roomId); + this.client = client; + } + + public BaseNettyClientBinaryFrameHandler(List msgListeners, Client client) { + super(msgListeners, client.getConfig().getRoomId()); + this.client = client; + } + + public BaseNettyClientBinaryFrameHandler(List msgListeners, long roomId) { + super(msgListeners, roomId); + this.client = null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java new file mode 100644 index 00000000..a9903f17 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty-client/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/client/handler/BaseNettyClientConnectionHandler.java @@ -0,0 +1,65 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.client.handler; + +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import lombok.Getter; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; +import tech.ordinaryroad.live.chat.client.servers.netty.handler.base.BaseConnectionHandler; + +/** + * BaseClientConnectionHandler + * + * @author mjz + * @date 2023/8/27 + */ +public abstract class BaseNettyClientConnectionHandler< + Client extends BaseNettyClient, + ConnectionHandler extends BaseConnectionHandler> + extends BaseConnectionHandler { + + @Getter + protected final Client client; + + public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, Client client, IBaseConnectionListener listener) { + super(handshaker, listener); + this.client = client; + } + + public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, Client client) { + this(handshaker, client, null); + } + + public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, IBaseConnectionListener listener) { + super(handshaker, listener); + this.client = null; + } + + public BaseNettyClientConnectionHandler(WebSocketClientHandshaker handshaker, long roomId) { + super(handshaker, null); + this.client = null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml new file mode 100644 index 00000000..1e4259a9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/pom.xml @@ -0,0 +1,59 @@ + + + + 4.0.0 + + org.ruoyi + live-chat-client-servers + ${revision} + ../pom.xml + + jar + + live-chat-client-servers-netty + live-chat-client-servers-netty + + + UTF-8 + + + + + org.ruoyi + live-chat-client-commons-base + + + + io.netty + netty-all + + + + ch.qos.logback + logback-classic + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java new file mode 100644 index 00000000..984960a0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/frame/base/BaseBinaryWebSocketFrame.java @@ -0,0 +1,39 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.frame.base; + +import io.netty.buffer.ByteBuf; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; + +/** + * @author mjz + * @date 2023/1/5 + */ +public abstract class BaseBinaryWebSocketFrame extends BinaryWebSocketFrame { + + public BaseBinaryWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java new file mode 100644 index 00000000..c7a683f3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseBinaryFrameHandler.java @@ -0,0 +1,184 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.handler.base; + +import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +import java.util.List; +import java.util.function.Consumer; + + +/** + * 消息处理器 + * + * @author mjz + * @date 2023/1/4 + */ +@Slf4j +public abstract class BaseBinaryFrameHandler< + T extends BaseBinaryFrameHandler, + CmdEnum extends Enum, + Msg extends IMsg, + MsgListener extends IBaseMsgListener + > extends SimpleChannelInboundHandler + implements IBaseMsgListener { + + @Getter + private final Object roomId; + protected final List msgListeners; + + public BaseBinaryFrameHandler(List msgListeners, Object roomId) { + this.msgListeners = msgListeners; + this.roomId = roomId; + if (this.msgListeners == null || this.msgListeners.isEmpty()) { + if (log.isDebugEnabled()) { + log.debug("listener not set"); + } + } + } + + /** + * 解码收到的二进制流 + * + * @param byteBuf ByteBuf + * @return List + */ + protected abstract List decode(ByteBuf byteBuf); + + @SuppressWarnings("unchecked") + protected void channelRead0(ChannelHandlerContext ctx, BinaryWebSocketFrame message) { + ByteBuf byteBuf = message.content(); + List msgList = this.decode(byteBuf); + if (msgList == null || msgList.isEmpty()) { + if (log.isDebugEnabled()) { + log.debug("msgList is empty"); + } + return; + } + for (Msg msg : msgList) { + this.onMsg((T) BaseBinaryFrameHandler.this, msg); + if (msg instanceof ICmdMsg) { + ICmdMsg cmdMsg = (ICmdMsg) msg; + Enum cmdEnum = cmdMsg.getCmdEnum(); + if (cmdEnum == null) { + this.onUnknownCmd((T) BaseBinaryFrameHandler.this, cmdMsg.getCmd(), cmdMsg); + } else { + this.onCmdMsg((T) BaseBinaryFrameHandler.this, (CmdEnum) cmdEnum, (ICmdMsg) cmdMsg); + } + } + if (msg instanceof BaseCmdMsg) { + BaseCmdMsg cmdMsg = (BaseCmdMsg) msg; + Enum cmdEnum = cmdMsg.getCmdEnum(); + if (cmdEnum == null) { + this.onUnknownCmd((T) BaseBinaryFrameHandler.this, cmdMsg.getCmd(), cmdMsg); + } else { + this.onCmdMsg((T) BaseBinaryFrameHandler.this, (CmdEnum) cmdEnum, (BaseCmdMsg) cmdMsg); + } + } + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + if (cause.getCause() instanceof UnrecognizedPropertyException) { + log.error("缺少字段:{}", cause.getMessage()); + } else { + super.exceptionCaught(ctx, cause); + } + } + + @Override + public void onMsg(T t, IMsg msg) { + IBaseMsgListener.super.onMsg(t, msg); + iteratorMsgListeners(msgListener -> msgListener.onMsg(t, msg)); + } + + /** + * 重写该方法,判断CMD,或者调用{@link IBaseMsgListener#onOtherCmdMsg(Object, Enum, ICmdMsg)} + * + * @param t BaseBinaryFrameHandler + * @param cmd CmdEnum + * @param cmdMsg BaseMsg + */ + @Override + public void onCmdMsg(T t, CmdEnum cmd, ICmdMsg cmdMsg) { + IBaseMsgListener.super.onCmdMsg(t, cmd, cmdMsg); + iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(t, cmd, cmdMsg)); + } + + @Override + public void onUnknownCmd(T t, String cmdString, IMsg msg) { + IBaseMsgListener.super.onUnknownCmd(t, cmdString, msg); + iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(t, cmdString, msg)); + } + + @SuppressWarnings("ForLoopReplaceableByForEach") + public void iteratorMsgListeners(Consumer consumer) { + if (msgListeners.isEmpty()) { + return; + } + for (int i = 0; i < msgListeners.size(); i++) { + consumer.accept(msgListeners.get(i)); + } + } + + @Override + public void onCmdMsg(T t, CmdEnum cmd, BaseCmdMsg cmdMsg) { + IBaseMsgListener.super.onCmdMsg(t, cmd, cmdMsg); + iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(t, cmd, cmdMsg)); + } + + @Override + public void onUnknownCmd(T t, String cmdString, BaseMsg msg) { + IBaseMsgListener.super.onUnknownCmd(t, cmdString, msg); + iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(t, cmdString, msg)); + } + + public String getRoomIdAsString() { + if (this.roomId == null) { + return ""; + } + return this.roomId.toString(); + } + + public long getRoomIdAsLong() { + String roomIdAsString = this.getRoomIdAsString(); + if (roomIdAsString.trim().isEmpty()) { + return 0L; + } + return Long.parseLong(roomIdAsString); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java new file mode 100644 index 00000000..724dca41 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/live-chat-client-servers-netty/src/main/java/tech/ordinaryroad/live/chat/client/servers/netty/handler/base/BaseConnectionHandler.java @@ -0,0 +1,168 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.servers.netty.handler.base; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.ChannelPromise; +import io.netty.channel.SimpleChannelInboundHandler; +import io.netty.handler.codec.http.FullHttpResponse; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import io.netty.handler.codec.http.websocketx.WebSocketHandshakeException; +import io.netty.handler.ssl.SslCloseCompletionEvent; +import io.netty.handler.ssl.SslHandshakeCompletionEvent; +import io.netty.util.concurrent.ScheduledFuture; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; + +import java.util.concurrent.TimeUnit; + + +/** + * 连接处理器 + * + * @author mjz + * @date 2023/8/21 + */ +@Slf4j +public abstract class BaseConnectionHandler> extends SimpleChannelInboundHandler { + + private final WebSocketClientHandshaker handshaker; + @Getter + private ChannelPromise handshakeFuture; + private final IBaseConnectionListener listener; + /** + * 客户端发送心跳包 + */ + private ScheduledFuture scheduledFuture = null; + + public BaseConnectionHandler(WebSocketClientHandshaker handshaker, IBaseConnectionListener listener) { + this.handshaker = handshaker; + this.listener = listener; + } + + public BaseConnectionHandler(WebSocketClientHandshaker handshaker) { + this(handshaker, null); + } + + + @Override + public void handlerAdded(ChannelHandlerContext ctx) { + this.handshakeFuture = ctx.newPromise(); + } + + @Override + public void channelActive(ChannelHandlerContext ctx) { + this.handshaker.handshake(ctx.channel()); + } + + protected void channelRead0(ChannelHandlerContext ctx, FullHttpResponse msg) throws Exception { + // 判断是否正确握手 + if (this.handshaker.isHandshakeComplete()) { + handshakeSuccessfully(ctx, msg); + } else { + try { + handshakeSuccessfully(ctx, msg); + } catch (WebSocketHandshakeException e) { + handshakeFailed(msg, e); + } + } + } + + @Override + public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { + if (log.isDebugEnabled()) { + log.debug("userEventTriggered {}", evt.getClass()); + } + if (evt instanceof SslHandshakeCompletionEvent) { + heartbeatCancel(); + heartbeatStart(ctx); + if (this.listener != null) { + listener.onConnected((ConnectionHandler) BaseConnectionHandler.this); + } + } else if (evt instanceof SslCloseCompletionEvent) { + heartbeatCancel(); + if (this.listener != null) { + listener.onDisconnected((ConnectionHandler) BaseConnectionHandler.this); + } + } else { + log.error("待处理 {}", evt.getClass()); + } + super.userEventTriggered(ctx, evt); + } + + /** + * 开始发送心跳包 + */ + private void heartbeatStart(ChannelHandlerContext ctx) { + scheduledFuture = ctx.executor().scheduleAtFixedRate(() -> { + sendHeartbeat(ctx); + }, getHeartbeatInitialDelay(), getHeartbeatPeriod(), TimeUnit.SECONDS); + } + + /** + * 取消发送心跳包 + */ + private void heartbeatCancel() { + if (null != scheduledFuture && !scheduledFuture.isCancelled()) { + scheduledFuture.cancel(true); + scheduledFuture = null; + } + } + + protected abstract void sendHeartbeat(ChannelHandlerContext ctx); + + public abstract void sendAuthRequest(Channel channel); + + protected abstract long getHeartbeatPeriod(); + + protected abstract long getHeartbeatInitialDelay(); + + private void handshakeSuccessfully(ChannelHandlerContext ctx, FullHttpResponse msg) { + if (log.isDebugEnabled()) { + log.debug("握手完成!"); + } + this.handshaker.finishHandshake(ctx.channel(), msg); + this.handshakeFuture.setSuccess(); + } + + private void handshakeFailed(FullHttpResponse msg, WebSocketHandshakeException e) { + log.error("握手失败!status:" + msg.status(), e); + this.handshakeFuture.setFailure(e); + if (listener != null) { + this.listener.onConnectFailed((ConnectionHandler) this); + } + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { + log.error("exceptionCaught", cause); + if (!this.handshakeFuture.isDone()) { + this.handshakeFuture.setFailure(cause); + } + ctx.close(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml new file mode 100644 index 00000000..28a9cfb0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-client-servers/pom.xml @@ -0,0 +1,47 @@ + + + + 4.0.0 + + org.ruoyi + ruoyi-common-live + ${revision} + ../pom.xml + + pom + + live-chat-client-servers + live-chat-client-servers + + + UTF-8 + + + + live-chat-client-servers-netty + live-chat-client-servers-netty-client + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml new file mode 100644 index 00000000..dcd4706d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/pom.xml @@ -0,0 +1,71 @@ + + + + 4.0.0 + + org.ruoyi + live-chat-clients + ${revision} + ../pom.xml + + jar + + live-chat-client-bilibili + live-chat-client-bilibili + + + UTF-8 + + + + + org.ruoyi + live-chat-client-servers-netty-client + + + + com.aayushatharva.brotli4j + brotli4j + + + + com.google.protobuf + protobuf-java-util + + + + ch.qos.logback + logback-classic + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java new file mode 100644 index 00000000..5fd081e8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApis.java @@ -0,0 +1,247 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.api; + +import cn.hutool.cache.impl.TimedCache; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.*; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.bilibili.api.request.BilibiliLikeReportV3Request; +import tech.ordinaryroad.live.chat.client.bilibili.api.request.BilibiliSendMsgRequest; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; + +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; + +/** + * B站API简易版 + * + * @author mjz + * @date 2023/5/5 + */ +@Slf4j +public class BilibiliApis { + + public static final TimedCache GIFT_IMG_CACHE = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); + public static final String KEY_COOKIE_CSRF = "bili_jct"; + public static final String KEY_UID = "DedeUserID"; + + @SneakyThrows + public static RoomInitResult roomInit(long roomId, String cookie) { + @Cleanup + HttpResponse response = createGetRequest("https://api.live.bilibili.com/room/v1/Room/room_init?id=" + roomId, cookie).execute(); + JsonNode dataJsonNode = responseInterceptor(response.body()); + return OBJECT_MAPPER.readValue(dataJsonNode.toString(), RoomInitResult.class); + } + + public static JsonNode roomGiftConfig(long roomId, String cookie) { + @Cleanup + HttpResponse response = createGetRequest("https://api.live.bilibili.com/xlive/web-room/v1/giftPanel/roomGiftConfig?platform=pc&source=live&build=0&global_version=0&room_id=" + roomId, cookie).execute(); + return responseInterceptor(response.body()); + } + + /** + * @param roomId + * @param type 直播间用0 + * @return
{@code
+     * {
+     * 	"group": "live",
+     * 	"business_id": 0,
+     * 	"refresh_row_factor": 0.125,
+     * 	"refresh_rate": 100,
+     * 	"max_delay": 5000,
+     * 	"token": "-wm5-Qo4BBAztd1qp5ZJpgyTMRBhCc7yikz5d9rAd63PV46G9BMwl0R10kMM8Ilb-UieZGjLtipPrz4Cvi0DdhGFwOi8PJpFN9K-LoXh6Z_4yjEIwgRerDiMIstHzJ80J3B7wnRisAYkWA==",
+     * 	"host_list": [{
+     * 		"host": "ali-bj-live-comet-09.chat.bilibili.com",
+     * 		"port": 2243,
+     * 		"wss_port": 443,
+     * 		"ws_port": 2244
+     *        }, {
+     * 		"host": "ali-gz-live-comet-02.chat.bilibili.com",
+     * 		"port": 2243,
+     * 		"wss_port": 443,
+     * 		"ws_port": 2244
+     *    }, {
+     * 		"host": "broadcastlv.chat.bilibili.com",
+     * 		"port": 2243,
+     * 		"wss_port": 443,
+     * 		"ws_port": 2244
+     *    }]
+     * }
+     * }
+ */ + public static JsonNode getDanmuInfo(long roomId, int type, String cookie) { + @Cleanup + HttpResponse response = createGetRequest("https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo?id=" + roomId + "&type=" + type, cookie).execute(); + return responseInterceptor(response.body()); + } + + public static String getGiftImgById(long giftId, long roomId) { + if (!GIFT_IMG_CACHE.containsKey(giftId)) { + ThreadUtil.execAsync(() -> { + updateGiftImgCache(roomId, null); + }); + } + + return GIFT_IMG_CACHE.get(giftId); + } + + /** + * 更新礼物图片缓存 + */ + public static void updateGiftImgCache(long roomId, String cookie) { + JsonNode jsonNode = roomGiftConfig(roomId, cookie); + for (JsonNode node : jsonNode.get("global_gift").get("list")) { + long giftId = node.get("id").asLong(); + String giftImgUrl = node.get("webp").asText(); + GIFT_IMG_CACHE.put(giftId, giftImgUrl); + } + } + + /** + * 发送弹幕 + * + * @param request {@link BilibiliSendMsgRequest} + * @param cookie Cookie + */ + public static void sendMsg(BilibiliSendMsgRequest request, String cookie) { + if (StrUtil.isBlank(cookie)) { + throw new BaseException("发送弹幕接口cookie不能为空"); + } + Map stringObjectMap = BeanUtil.beanToMap(request); + @Cleanup HttpResponse execute = HttpUtil.createPost("https://api.live.bilibili.com/msg/send") + .cookie(cookie) + .form(stringObjectMap) + .execute(); + responseInterceptor(execute.body()); + } + + /** + * 发送弹幕 + * + * @param msg 内容 + * @param realRoomId 真实房间id + * @param cookie Cookie + */ + public static void sendMsg(String msg, long realRoomId, String cookie) { + String biliJct = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_CSRF, () -> { + throw new BaseException("cookie中缺少参数" + KEY_COOKIE_CSRF); + }); + BilibiliSendMsgRequest request = new BilibiliSendMsgRequest(msg, StrUtil.toString(ZonedDateTime.now(ZoneId.of("Asia/Shanghai")).toEpochSecond()), realRoomId, biliJct, biliJct); + sendMsg(request, cookie); + } + + /** + * 为主播点赞 + * + * @param request {@link BilibiliLikeReportV3Request} + * @param cookie Cookie + */ + public static void likeReportV3(BilibiliLikeReportV3Request request, String cookie) { + if (StrUtil.isBlank(cookie)) { + throw new BaseException("为主播点赞接口cookie不能为空"); + } + Map stringObjectMap = BeanUtil.beanToMap(request); + @Cleanup HttpResponse execute = HttpUtil.createPost("https://api.live.bilibili.com/xlive/app-ucenter/v1/like_info_v3/like/likeReportV3") + .cookie(cookie) + .form(stringObjectMap) + .execute(); + responseInterceptor(execute.body()); + } + + /** + * 为主播点赞 + * + * @param anchor_id 主播Uid {@link RoomInitResult#uid} + * @param realRoomId 真实房间Id {@link RoomInitResult#room_id} + * @param cookie Cookie + */ + public static void likeReportV3(long anchor_id, long realRoomId, String cookie) { + String uid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_UID, () -> { + throw new BaseException("cookie中缺少参数" + KEY_UID); + }); + String biliJct = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_CSRF, () -> { + throw new BaseException("cookie中缺少参数" + KEY_COOKIE_CSRF); + }); + BilibiliLikeReportV3Request request = new BilibiliLikeReportV3Request(realRoomId, uid, anchor_id, biliJct, biliJct); + likeReportV3(request, cookie); + } + + public static HttpRequest createGetRequest(String url, String cookies) { + return HttpUtil.createGet(url) + .cookie(cookies); + } + + private static JsonNode responseInterceptor(String responseString) { + try { + JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); + int code = jsonNode.get("code").asInt(); + if (code == 0) { + // 成功 + return jsonNode.get("data"); + } else { + throw new BaseException(jsonNode.get("message").asText()); + } + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class RoomInitResult { + private long room_id; + private int short_id; + private long uid; + private int need_p2p; + private boolean is_hidden; + private boolean is_locked; + private boolean is_portrait; + private int live_status; + private int hidden_till; + private int lock_till; + private boolean encrypted; + private boolean pwd_verified; + private long live_time; + private int room_shield; + private int is_sp; + private int special_type; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java new file mode 100644 index 00000000..5979d891 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliLikeReportV3Request.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.api.request; + +import cn.hutool.core.util.StrUtil; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author mjz + * @date 2024/1/31 + */ +@Data +@NoArgsConstructor +public class BilibiliLikeReportV3Request { + /** + * 本次点赞次数 + */ + private int click_time = 1; + /** + * 房间真实ID + */ + private long room_id; + /** + * Cookie中的DedeUserID + */ + private String uid; + /** + * RoomInitResult中的uid + */ + private long anchor_id; + /** + * Cookie中的bili_jct + */ + private String csrf; + /** + * Cookie中的bili_jct + */ + private String csrf_token; + /** + * 暂时留空 + */ + private String visit_id = StrUtil.EMPTY; + + public BilibiliLikeReportV3Request(long room_id, String uid, long anchor_id, String csrf, String csrf_token) { + this.room_id = room_id; + this.uid = uid; + this.anchor_id = anchor_id; + this.csrf = csrf; + this.csrf_token = csrf_token; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java new file mode 100644 index 00000000..eca8d7b8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/api/request/BilibiliSendMsgRequest.java @@ -0,0 +1,77 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.api.request; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author mjz + * @date 2023/9/7 + */ +@Data +@NoArgsConstructor +public class BilibiliSendMsgRequest { + private String bubble = "0"; + /** + * 弹幕内容 + */ + private String msg; + /** + * 弹幕颜色 + */ + private String color = "16777215"; + private String mode = "1"; + private String room_type = "0"; + private String jumpfrom = "0"; + /** + * 字体大小 + */ + private String fontsize = "25"; + /** + * 时间戳(秒) + */ + private String rnd; + /** + * 房间真实ID + */ + private long roomid; + /** + * Cookie中的bili_jct + */ + private String csrf; + /** + * Cookie中的bili_jct + */ + private String csrf_token; + + public BilibiliSendMsgRequest(String msg, String rnd, long roomid, String csrf, String csrf_token) { + this.msg = msg; + this.rnd = rnd; + this.roomid = roomid; + this.csrf = csrf; + this.csrf_token = csrf_token; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java new file mode 100644 index 00000000..6bca3870 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClient.java @@ -0,0 +1,184 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.client; + +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; +import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; +import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliConnectionListener; +import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliConnectionHandler; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; + +import java.util.List; +import java.util.function.Consumer; + +/** + * B站直播间弹幕客户端 + * + * @author mjz + * @date 2023/8/20 + */ +@Slf4j +public class BilibiliLiveChatClient extends BaseNettyClient< + BilibiliLiveChatClientConfig, + BilibiliCmdEnum, + IBilibiliMsg, + IBilibiliMsgListener, + BilibiliConnectionHandler, + BilibiliBinaryFrameHandler + > { + + private BilibiliApis.RoomInitResult roomInitResult = new BilibiliApis.RoomInitResult(); + + public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, List msgListeners, IBilibiliConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListeners(msgListeners); + + // 初始化 + this.init(); + } + + public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener, IBilibiliConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListener(msgListener); + + // 初始化 + this.init(); + } + + public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener, IBilibiliConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config, IBilibiliMsgListener msgListener) { + this(config, msgListener, null, new NioEventLoopGroup()); + } + + public BilibiliLiveChatClient(BilibiliLiveChatClientConfig config) { + this(config, null); + } + + @Override + public void init() { + roomInitResult = BilibiliApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); + super.init(); + } + + @Override + public BilibiliConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + return new BilibiliConnectionHandler( + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), + BilibiliLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public BilibiliBinaryFrameHandler initBinaryFrameHandler() { + return new BilibiliBinaryFrameHandler(super.msgListeners, BilibiliLiveChatClient.this); + } + + @Override + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + if (!checkCanSendDanmu(false)) { + return; + } + if (danmu instanceof String) { + String msg = (String) danmu; + try { + if (log.isDebugEnabled()) { + log.debug("{} bilibili发送弹幕 {}", getConfig().getRoomId(), danmu); + } + + boolean sendSuccess = false; + try { + BilibiliApis.sendMsg(msg, roomInitResult.getRoom_id(), getConfig().getCookie()); + sendSuccess = true; + } catch (Exception e) { + log.error("bilibili弹幕发送失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (!sendSuccess) { + return; + } + + if (log.isDebugEnabled()) { + log.debug("bilibili弹幕发送成功 {}", danmu); + } + if (success != null) { + success.run(); + } + finishSendDanmu(); + } catch (Exception e) { + log.error("bilibili弹幕发送失败", e); + if (failed != null) { + failed.accept(e); + } + } + } else { + super.sendDanmu(danmu, success, failed); + } + } + + @Override + public void clickLike(int count, Runnable success, Consumer failed) { + if (count <= 0) { + throw new BaseException("点赞次数必须大于0"); + } + + boolean successfullyClicked = false; + try { + BilibiliApis.likeReportV3(roomInitResult.getUid(), roomInitResult.getRoom_id(), getConfig().getCookie()); + successfullyClicked = true; + } catch (Exception e) { + log.error("Bilibili为直播间点赞失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (!successfullyClicked) { + return; + } + + if (log.isDebugEnabled()) { + log.debug("Bilibili为直播间点赞成功"); + } + if (success != null) { + success.run(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java new file mode 100644 index 00000000..0f0b3b9d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/config/BilibiliLiveChatClientConfig.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.config; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatNumberUtil; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; + +/** + * B站直播间弹幕客户端配置 + * + * @author mjz + * @date 2023/8/21 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public class BilibiliLiveChatClientConfig extends BaseNettyClientConfig { + + /** + * @see ProtoverEnum + */ + @Builder.Default + private ProtoverEnum protover = ProtoverEnum.NORMAL_ZLIB; + + @Builder.Default + private String websocketUri = "wss://broadcastlv.chat.bilibili.com:443/sub"; + + @Override + public Long getRoomId() { + return OrLiveChatNumberUtil.parseLong(super.getRoomId()); + } + + public void setProtover(ProtoverEnum protover) { + ProtoverEnum oldValue = this.protover; + this.protover = protover; + super.propertyChangeSupport.firePropertyChange("protover", oldValue, protover); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java new file mode 100644 index 00000000..1b6edbc5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/BilibiliCmdEnum.java @@ -0,0 +1,143 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@RequiredArgsConstructor +public enum BilibiliCmdEnum { + /** + * 游客状态下,5分钟后会出现登录提示,弹幕中的用户名、用户id等信息将不再可见 + */ + LOG_IN_NOTICE, + /** + * 收到弹幕 + */ + DANMU_MSG, + /** + * 收到礼物 + */ + SEND_GIFT, + /** + * 有人上舰 + */ + GUARD_BUY, + /** + * 欢迎舰长 + */ + WELCOME_GUARD, + WELCOME, + /** + * 礼物连击 + */ + COMBO_SEND, + /** + * 欢迎高能用户、(舰长?待验证)特殊消息 + */ + ENTRY_EFFECT, + HOT_RANK_CHANGED, + HOT_RANK_CHANGED_V2, + INTERACT_WORD, + /** + * 开始直播 + */ + LIVE, + LIVE_INTERACTIVE_GAME, + NOTICE_MSG, + /** + * 高能榜数量更新 + */ + ONLINE_RANK_COUNT, + ONLINE_RANK_TOP3, + ONLINE_RANK_V2, + PK_BATTLE_END, + PK_BATTLE_FINAL_PROCESS, + PK_BATTLE_PROCESS, + PK_BATTLE_PROCESS_NEW, + PK_BATTLE_SETTLE, + PK_BATTLE_SETTLE_USER, + PK_BATTLE_SETTLE_V2, + /** + * 主播准备中 + */ + PREPARING, + ROOM_REAL_TIME_MESSAGE_UPDATE, + /** + * 停止直播的房间ID列表 + */ + STOP_LIVE_ROOM_LIST, + /** + * 醒目留言 + */ + SUPER_CHAT_MESSAGE, + SUPER_CHAT_MESSAGE_JPN, + /** + * 删除醒目留言 + */ + SUPER_CHAT_MESSAGE_DELETE, + WIDGET_BANNER, + /** + * 点赞数更新 + */ + LIKE_INFO_V3_UPDATE, + /** + * 为主播点赞 + */ + LIKE_INFO_V3_CLICK, + HOT_ROOM_NOTIFY, + /** + * 观看人数变化 + */ + WATCHED_CHANGE, + POPULAR_RANK_CHANGED, + COMMON_NOTICE_DANMAKU, + LIVE_MULTI_VIEW_CHANGE, + RECOMMEND_CARD, + PK_BATTLE_START_NEW, + PK_BATTLE_ENTRANCE, + AREA_RANK_CHANGED, + ROOM_BLOCK_MSG, + USER_TOAST_MSG, + PK_BATTLE_PRE_NEW, + PK_BATTLE_RANK_CHANGE, + PK_BATTLE_START, + PK_BATTLE_PRE, + PLAY_TAG, + ; + + public static BilibiliCmdEnum getByString(String cmd) { + try { + return BilibiliCmdEnum.valueOf(cmd); + } catch (Exception e) { + return null; + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java new file mode 100644 index 00000000..296abc31 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/OperationEnum.java @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/1/5 + */ +@Getter +@RequiredArgsConstructor +public enum OperationEnum { + HANDSHAKE(0), + HANDSHAKE_REPLY(1), + /** + * 心跳包 + */ + HEARTBEAT(2), + /** + * 心跳包回复(人气值) + */ + HEARTBEAT_REPLY(3), + SEND_MSG(4), + + /** + * 普通包(命令) + */ + SEND_SMS_REPLY(5), + DISCONNECT_REPLY(6), + + /** + * 认证包 + */ + AUTH(7), + + /** + * 认证包回复 + */ + AUTH_REPLY(8), + RAW(9), + PROTO_READY(10), + PROTO_FINISH(11), + CHANGE_ROOM(12), + CHANGE_ROOM_REPLY(13), + REGISTER(14), + REGISTER_REPLY(15), + UNREGISTER(16), + UNREGISTER_REPLY(17), + ; + + private final int code; + + public static OperationEnum getByCode(int code) { + for (OperationEnum value : OperationEnum.values()) { + if (value.code == code) { + return value; + } + } + return null; + } + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java new file mode 100644 index 00000000..bee3f2a7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/constant/ProtoverEnum.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/1/5 + */ +@Getter +@RequiredArgsConstructor +public enum ProtoverEnum { + /** + * 普通包正文不使用压缩 + */ + NORMAL_NO_COMPRESSION(0), + /** + * 心跳及认证包正文不使用压缩 + */ + HEARTBEAT_AUTH_NO_COMPRESSION(1), + /** + * 普通包正文使用zlib压缩 + */ + NORMAL_ZLIB(2), + /** + * 普通包正文使用brotli压缩,解压为一个带头部的协议0普通包 + */ + NORMAL_BROTLI(3), + ; + + private final int code; + + + public static ProtoverEnum getByCode(int code) { + for (ProtoverEnum value : ProtoverEnum.values()) { + if (value.code == code) { + return value; + } + } + return null; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java new file mode 100644 index 00000000..74248b1c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliConnectionListener.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.listener; + + +import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliConnectionHandler; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; + +/** + * 连接回调 + * + * @author mjz + * @date 2023/8/21 + */ +public interface IBilibiliConnectionListener extends IBaseConnectionListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java new file mode 100644 index 00000000..bb62956b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/listener/IBilibiliMsgListener.java @@ -0,0 +1,138 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.listener; + +import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.*; +import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.commons.base.listener.*; + +/** + * @author mjz + * @date 2023/1/7 + */ +public interface IBilibiliMsgListener extends IBaseMsgListener, + IDanmuMsgListener, + IGiftMsgListener, + ISuperChatMsgListener, + IEnterRoomMsgListener, + ILikeMsgListener { + + /** + * 收到礼物 + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param msg SendSmsReplyMsg + * @deprecated use {@link IGiftMsgListener#onGiftMsg(Object, Object)} + */ + default void onSendGift(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { + this.onSendGift(msg); + } + + /** + * @deprecated use {@link IGiftMsgListener#onGiftMsg(Object)} + */ + default void onSendGift(SendSmsReplyMsg msg) { + // ignore + } + + /** + * 普通用户进入直播间 + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param msg SendSmsReplyMsg + * @deprecated use {@link IEnterRoomMsgListener#onEnterRoomMsg} + */ + default void onEnterRoom(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { + this.onEnterRoom(msg); + } + + /** + * @deprecated use {@link IEnterRoomMsgListener#onEnterRoomMsg} + */ + default void onEnterRoom(SendSmsReplyMsg msg) { + // ignore + } + + /** + * 入场效果(高能用户) + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param sendSmsReplyMsg SendSmsReplyMsg + */ + default void onEntryEffect(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg sendSmsReplyMsg) { + this.onEntryEffect(sendSmsReplyMsg); + } + + default void onEntryEffect(SendSmsReplyMsg sendSmsReplyMsg) { + // ignore + } + + /** + * 观看人数变化 + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param msg SendSmsReplyMsg + */ + default void onWatchedChange(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { + this.onWatchedChange(msg); + } + + default void onWatchedChange(SendSmsReplyMsg msg) { + // ignore + } + + /** + * 为主播点赞 + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param msg SendSmsReplyMsg + * @deprecated use {@link ILikeMsgListener#onLikeMsg} + */ + default void onClickLike(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { + this.onClickLike(msg); + } + + /** + * @deprecated use {@link ILikeMsgListener#onLikeMsg} + */ + default void onClickLike(SendSmsReplyMsg msg) { + // ignore + } + + /** + * 点赞数更新 + * + * @param binaryFrameHandler BilibiliBinaryFrameHandler + * @param msg SendSmsReplyMsg + */ + default void onClickUpdate(BilibiliBinaryFrameHandler binaryFrameHandler, SendSmsReplyMsg msg) { + this.onClickUpdate(msg); + } + + default void onClickUpdate(SendSmsReplyMsg msg) { + // ignore + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java new file mode 100644 index 00000000..6a30d3b3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthMsg.java @@ -0,0 +1,92 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@RequiredArgsConstructor +public class AuthMsg extends BaseBilibiliMsg { + + /** + * 用户uid,0代表游客 + */ + private long uid; + + /** + * 房间id room_id,不是短id short_id + * 可以通过将url参数id改为直播地址中的数字来查询房间真实id + * example: https://api.live.bilibili.com/room/v1/Room/room_init?id=6 + */ + private final long roomid; + + /** + * 协议版本 + * + * @see ProtoverEnum#getCode() + */ + private final int protover; + + /** + * 平台标识 + */ + private String platform = "web"; + private int type = 2; + + /** + * 必须字段 + * + * @since 2023-08-19 + */ + private final String buvid; + + /** + * 认证秘钥(必须字段) + * + * @since @since 2023-08-19 + */ + private final String key; + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(this.protover); + } + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.AUTH; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java new file mode 100644 index 00000000..5bb76ea1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/AuthReplyMsg.java @@ -0,0 +1,63 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class AuthReplyMsg extends BaseBilibiliMsg { + + /** + * 0: OK,-101: TOKEN_ERROR + */ + private int code; + + @JsonIgnore + private int protover; + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(protover); + } + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.AUTH_REPLY; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java new file mode 100644 index 00000000..8bf093c6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/DanmuMsgMsg.java @@ -0,0 +1,102 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import cn.hutool.core.codec.Base64; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DanmuMsgMsg extends BaseBilibiliMsg implements IDanmuMsg { + + private JsonNode info; + private String dm_v2; + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } + + @Override + public String getBadgeName() { + JsonNode jsonNode3 = info.get(3); + if (jsonNode3.isEmpty()) { + return ""; + } + return jsonNode3.get(1).asText(); + } + + @Override + public byte getBadgeLevel() { + JsonNode jsonNode3 = info.get(3); + if (jsonNode3.isEmpty()) { + return 0; + } + return (byte) jsonNode3.get(0).asInt(); + } + + @Override + public String getUid() { + JsonNode jsonNode2 = info.get(2); + return jsonNode2.get(0).asText(); + } + + @Override + public String getUsername() { + JsonNode jsonNode2 = info.get(2); + return jsonNode2.get(1).asText(); + } + + @Override + public String getUserAvatar() { + String avatar = null; + try { + tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2 dmV2 = tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2.parseFrom(Base64.decode(dm_v2)); + avatar = dmV2.getDmV220().getAvatar(); + } catch (Exception e) { + // ignore + } + return avatar; + } + + @Override + public String getContent() { + JsonNode jsonNode1 = info.get(1); + return jsonNode1.asText(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java new file mode 100644 index 00000000..dff52fc0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatMsg.java @@ -0,0 +1,58 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class HeartbeatMsg extends BaseBilibiliMsg { + + @JsonIgnore + private int protover; + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(protover); + } + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.HEARTBEAT; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java new file mode 100644 index 00000000..535aadd1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/HeartbeatReplyMsg.java @@ -0,0 +1,60 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class HeartbeatReplyMsg extends BaseBilibiliMsg { + + private int popularity; + + @JsonIgnore + private int protover; + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(protover); + } + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.HEARTBEAT_REPLY; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java new file mode 100644 index 00000000..8ef298a8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/InteractWordMsg.java @@ -0,0 +1,396 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author mjz + * @date 2023/12/26 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class InteractWordMsg extends BaseBilibiliMsg implements IEnterRoomMsg { + + private Data data; + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } + + @Override + public String getBadgeName() { + if (data == null || data.fans_medal == null) { + return null; + } + return data.fans_medal.medal_name; + } + + @Override + public byte getBadgeLevel() { + if (data == null || data.fans_medal == null) { + return 0; + } + return data.fans_medal.medal_level; + } + + @Override + public String getUid() { + if (data == null) { + return null; + } + return Long.toString(data.uid); + } + + @Override + public String getUsername() { + if (data == null) { + return null; + } + return data.uname; + } + + @Override + public String getUserAvatar() { + if (data == null || data.uinfo == null || data.uinfo.base == null) { + return null; + } + return data.uinfo.base.face; + } + + @lombok.Data + public static class Data { + + private Contribution contribution; + private Contribution_v2 contribution_v2; + private int core_user_type; + private int dmscore; + private Fans_medal fans_medal; + private String group_medal; + private List identities; + private boolean is_mystery; + private int is_spread; + private int msg_type; + private int privilege_type; + private long roomid; + private long score; + private String spread_desc; + private String spread_info; + private int tail_icon; + private String tail_text; + private long timestamp; + private long trigger_time; + private long uid; + private Uinfo uinfo; + private String uname; + private String uname_color; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Contribution { + + private int grade; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Contribution_v2 { + + private int grade; + private String rank_type; + private String text; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Fans_medal { + + private long anchor_roomid; + private int guard_level; + private int icon_id; + private int is_lighted; + private long medal_color; + private long medal_color_border; + private long medal_color_end; + private long medal_color_start; + private byte medal_level; + private String medal_name; + private long score; + private String special; + private long target_id; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Origin_info { + + private String face; + private String name; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Risk_ctrl_info { + + private String face; + private String name; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Official_info { + + private int role; + private String title; + private String desc; + private int type; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Base { + + private String face; + private boolean is_mystery; + private String name; + private int name_color; + private Origin_info origin_info; + private Risk_ctrl_info risk_ctrl_info; + private Official_info official_info; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Medal { + + private String name; + private int level; + private long color_start; + private long color_end; + private long color_border; + private long color; + private int id; + private int typ; + private int is_light; + private long ruid; + private int guard_level; + private int score; + private String guard_icon; + private String honor_icon; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Guard { + + private int level; + private String expired_str; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + + @lombok.Data + public static class Uinfo { + + private long uid; + private Base base; + private Medal medal; + private String wealth; + private String title; + private Guard guard; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java new file mode 100644 index 00000000..191aab2a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/LikeInfoV3ClickMsg.java @@ -0,0 +1,158 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author mjz + * @date 2024/1/31 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LikeInfoV3ClickMsg extends BaseBilibiliMsg implements ILikeMsg { + + private Data data; + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } + + @Override + public String getBadgeName() { + if (this.data == null || this.data.getFans_medal() == null) { + return null; + } + + return this.data.getFans_medal().getMedal_name(); + } + + @Override + public byte getBadgeLevel() { + if (this.data == null || this.data.getFans_medal() == null) { + return 0; + } + + return this.data.getFans_medal().getMedal_level(); + } + + @Override + public String getUid() { + if (this.data == null) { + return null; + } + + return Long.toString(this.data.getUid()); + } + + @Override + public String getUsername() { + if (this.data == null) { + return ""; + } + + return this.data.getUname(); + } + + @Override + public String getUserAvatar() { + if (this.data == null || this.data.getUinfo() == null || this.data.getUinfo().getBase() == null) { + return ""; + } + + return this.data.getUinfo().getBase().getFace(); + } + + @lombok.Data + public static class Data { + + private int show_area; + private int msg_type; + private String like_icon; + private long uid; + private String like_text; + private String uname; + private String uname_color; + private List identities; + private InteractWordMsg.Fans_medal fans_medal; + private Contribution_info contribution_info; + private int dmscore; + private String group_medal; + private boolean is_mystery; + private InteractWordMsg.Uinfo uinfo; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Contribution_info { + + private int grade; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java new file mode 100644 index 00000000..8879c8c5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendGiftMsg.java @@ -0,0 +1,351 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.dto.MedalInfo; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SendGiftMsg extends BaseBilibiliMsg implements IGiftMsg { + + private Data data; + + /** + * 额外属性,获取礼物图片时可能会用到 + */ + private long roomId; + + @Override + public String getBadgeName() { + if (data == null || data.medal_info == null) { + return IGiftMsg.super.getBadgeName(); + } + + return data.medal_info.getMedal_name(); + } + + @Override + public byte getBadgeLevel() { + if (data == null || data.medal_info == null) { + return IGiftMsg.super.getBadgeLevel(); + } + + return data.medal_info.getMedal_level(); + } + + @Override + public String getUid() { + if (this.data == null) { + return null; + } + + return Long.toString(this.data.getUid()); + } + + @Override + public String getUsername() { + if (this.data == null) { + return ""; + } + + return this.data.getUname(); + } + + @Override + public String getUserAvatar() { + if (this.data == null) { + return ""; + } + + return this.data.getFace(); + } + + @Override + public String getGiftName() { + if (this.data == null) { + return "未知礼物"; + } + + return this.data.getGiftName(); + } + + @Override + public String getGiftImg() { + return BilibiliApis.getGiftImgById(this.data.giftId, this.roomId); + } + + @Override + public String getGiftId() { + if (this.data == null) { + return null; + } + + return Long.toString(data.getGiftId()); + } + + @Override + public int getGiftCount() { + if (this.data == null) { + return 0; + } + + return data.getNum(); + } + + @Override + public int getGiftPrice() { + if (this.data == null) { + return -1; + } + + return data.getPrice(); + } + + @Override + public String getReceiveUid() { + if (this.data == null || this.data.getReceive_user_info() == null) { + return null; + } + + return Long.toString(data.getReceive_user_info().getUid()); + } + + @Override + public String getReceiveUsername() { + if (this.data == null || this.data.getReceive_user_info() == null) { + return ""; + } + + return data.getReceive_user_info().getUname(); + } + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } + + @lombok.Data + public static class Data { + + private int draw; + private int gold; + private int silver; + private int num; + private int total_coin; + private int effect; + private int broadcast_id; + private int crit_prob; + private int guard_level; + private long rcost; + private long uid; + private long timestamp; + private int giftId; + private int giftType; + @JsonProperty("super") + private int _super; + private int super_gift_num; + private int super_batch_gift_num; + private int remain; + private int discount_price; + private int price; + private String beatId; + private String biz_source; + private String action; + private String coin_type; + private String uname; + private String face; + private String batch_combo_id; + private String rnd; + private String giftName; + private String original_gift_name; + private Combo_send combo_send; + private Batch_combo_send batch_combo_send; + private String tag_image; + private String top_list; + private String send_master; + private boolean is_first; + private int demarcation; + private int combo_stay_time; + private int combo_total_coin; + private String tid; + private int effect_block; + private int is_special_batch; + private int combo_resources_id; + private int magnification; + private String name_color; + private MedalInfo medal_info; + private int svga_block; + private JsonNode blind_gift; + private int float_sc_resource_id; + @JsonProperty("switch") + private boolean _switch; + private int face_effect_type; + private int face_effect_id; + private boolean is_naming; + private Receive_user_info receive_user_info; + private boolean is_join_receiver; + private Bag_gift bag_gift; + private int wealth_level; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Combo_send { + + private long uid; + private int gift_num; + private int combo_num; + private int gift_id; + private String combo_id; + private String gift_name; + private String action; + private String uname; + private String send_master; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Receive_user_info { + + private String uname; + private long uid; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Batch_combo_send { + + private long uid; + private int gift_num; + private int batch_combo_num; + private int gift_id; + private String batch_combo_id; + private String gift_name; + private String action; + private String uname; + private String send_master; + private JsonNode blind_gift; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Bag_gift { + + private int show_price; + private int price_for_show; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java new file mode 100644 index 00000000..ae2c52d9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SendSmsReplyMsg.java @@ -0,0 +1,81 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliCmdMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SendSmsReplyMsg extends BaseBilibiliCmdMsg { + + private Long id; + + private String name; + + private JsonNode full; + + private JsonNode half; + + private JsonNode side; + + private JsonNode data; + + private JsonNode info; + + private JsonNode msg_common; + + private JsonNode msg_self; + + private JsonNode link_url; + + private JsonNode msg_type; + + private JsonNode shield_uid; + + private JsonNode business_id; + + private JsonNode scatter; + + private long roomid; + + private long real_roomid; + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java new file mode 100644 index 00000000..1842b78c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/SuperChatMessageMsg.java @@ -0,0 +1,202 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package tech.ordinaryroad.live.chat.client.bilibili.msg; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.dto.MedalInfo; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ISuperChatMsg; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/9/24 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SuperChatMessageMsg extends BaseBilibiliMsg implements ISuperChatMsg { + + private long roomid; + private Data data; + + @Override + public OperationEnum getOperationEnum() { + return OperationEnum.SEND_SMS_REPLY; + } + + @Override + public String getUid() { + if (this.data == null) { + return null; + } + + return Long.toString(this.data.uid); + } + + @Override + public String getUsername() { + if (this.data == null || this.data.getUser_info() == null) { + return ""; + } + + return this.data.user_info.uname; + } + + @Override + public String getUserAvatar() { + if (this.data == null || this.data.getUser_info() == null) { + return ""; + } + + return this.data.user_info.face; + } + + @Override + public String getContent() { + if (this.data == null) { + return ""; + } + + return this.data.message; + } + + @Override + public int getDuration() { + if (this.data == null) { + return 0; + } + + return this.data.time; + } + + @lombok.Data + public static class Data { + private String background_bottom_color; + private String background_color; + private String background_color_end; + private String background_color_start; + private String background_icon; + private String background_image; + private String background_price_color; + private double color_point; + private int dmscore; + private long end_time; + private Gift gift; + private long id; + private int is_ranked; + private int is_send_audit; + private MedalInfo medal_info; + private String message; + private String message_font_color; + private String message_trans; + private int price; + private int rate; + private long start_time; + private int time; + private String token; + private int trans_mark; + private long ts; + private long uid; + private User_info user_info; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class Gift { + private int gift_id; + private String gift_name; + private int num; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @lombok.Data + public static class User_info { + private String face; + private String face_frame; + private int guard_level; + private int is_main_vip; + private int is_svip; + private int is_vip; + private String level_color; + private int manager; + private String name_color; + private String title; + private String uname; + private int user_level; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java new file mode 100644 index 00000000..5dd624f4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliCmdMsg.java @@ -0,0 +1,68 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg.base; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseBilibiliCmdMsg extends BaseCmdMsg implements IBilibiliMsg { + + private int protover; + private String cmd; + + @Override + public String getCmd() { + return this.cmd; + } + + @Override + public void setCmd(String cmd) { + this.cmd = cmd; + } + + @Override + public BilibiliCmdEnum getCmdEnum() { + return BilibiliCmdEnum.getByString(getCmd()); + } + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(this.protover); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java new file mode 100644 index 00000000..16ca652d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/BaseBilibiliMsg.java @@ -0,0 +1,50 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg.base; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseBilibiliMsg extends BaseMsg implements IBilibiliMsg { + + private int protover; + + @Override + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(protover); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java new file mode 100644 index 00000000..ff12eedf --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/base/IBilibiliMsg.java @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg.base; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +/** + * @author mjz + * @date 2023/8/26 + */ +public interface IBilibiliMsg extends IMsg { + + @JsonIgnore + ProtoverEnum getProtoverEnum(); + + @JsonIgnore + OperationEnum getOperationEnum(); + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java new file mode 100644 index 00000000..15cd17a3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/msg/dto/MedalInfo.java @@ -0,0 +1,66 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.msg.dto; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class MedalInfo { + + private long target_id; + private String special; + private int icon_id; + private String anchor_uname; + private int anchor_roomid; + private byte medal_level; + private String medal_name; + private String medal_color; + private long medal_color_start; + private long medal_color_end; + private long medal_color_border; + private int is_lighted; + private int guard_level; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java new file mode 100644 index 00000000..c6436e28 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/AuthWebSocketFrame.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.frame; + +import io.netty.buffer.ByteBuf; +import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base.BaseBilibiliWebSocketFrame; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class AuthWebSocketFrame extends BaseBilibiliWebSocketFrame { + + public AuthWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java new file mode 100644 index 00000000..f2abecfc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/HeartbeatWebSocketFrame.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.frame; + +import io.netty.buffer.ByteBuf; +import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base.BaseBilibiliWebSocketFrame; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class HeartbeatWebSocketFrame extends BaseBilibiliWebSocketFrame { + + public HeartbeatWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java new file mode 100644 index 00000000..a3556f6c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/base/BaseBilibiliWebSocketFrame.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.frame.base; + +import io.netty.buffer.ByteBuf; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; + +/** + * 实现Bilibili协议的BinaryWebSocketFrame + * 数据包格式 + * + * @author mjz + * @date 2023/1/5 + */ +public abstract class BaseBilibiliWebSocketFrame extends BinaryWebSocketFrame { + + public static int sequence = 0; + + public ProtoverEnum getProtoverEnum() { + return ProtoverEnum.getByCode(super.content().getShort(6)); + } + + public OperationEnum getOperationEnum() { + return OperationEnum.getByCode(super.content().getInt(8)); + } + + public BaseBilibiliWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java new file mode 100644 index 00000000..63e62d75 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/frame/factory/BilibiliWebSocketFrameFactory.java @@ -0,0 +1,113 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.frame.factory; + +import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.NumberUtil; +import com.fasterxml.jackson.databind.JsonNode; +import tech.ordinaryroad.live.chat.client.bilibili.api.BilibiliApis; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.AuthMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatMsg; +import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.AuthWebSocketFrame; +import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.HeartbeatWebSocketFrame; +import tech.ordinaryroad.live.chat.client.bilibili.util.BilibiliCodecUtil; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class BilibiliWebSocketFrameFactory { + + private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); + + /** + * 浏览器地址中的房间id,支持短id + */ + private final long roomId; + private volatile static HeartbeatMsg heartbeatMsg; + + public BilibiliWebSocketFrameFactory(long roomId) { + this.roomId = roomId; + } + + public synchronized static BilibiliWebSocketFrameFactory getInstance(long roomId) { + return CACHE.computeIfAbsent(roomId, aLong -> new BilibiliWebSocketFrameFactory(roomId)); + } + + /** + * 创建认证包 + * + * @param protover {@link ProtoverEnum} + * @param cookie 浏览器cookie,仅用来维持登录状态 + * @return AuthWebSocketFrame + */ + public AuthWebSocketFrame createAuth(ProtoverEnum protover, String cookie) { + try { + Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); + String buvid3 = OrLiveChatCookieUtil.getCookieByName(cookieMap, "buvid3", () -> UUID.randomUUID().toString()); + String uid = OrLiveChatCookieUtil.getCookieByName(cookieMap, "DedeUserID", () -> "0"); + BilibiliApis.RoomInitResult data = BilibiliApis.roomInit(roomId, cookie); + JsonNode danmuInfo = BilibiliApis.getDanmuInfo(roomId, 0, cookie); + long realRoomId = data.getRoom_id(); + AuthMsg authMsg = new AuthMsg(realRoomId, protover.getCode(), buvid3, danmuInfo.get("token").asText()); + authMsg.setUid(NumberUtil.parseLong(uid)); + return new AuthWebSocketFrame(BilibiliCodecUtil.encode(authMsg)); + } catch (Exception e) { + throw new BaseException(String.format("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s", roomId, e.getMessage())); + } + } + + public AuthWebSocketFrame createAuth(ProtoverEnum protover) { + return this.createAuth(protover, null); + } + + public HeartbeatWebSocketFrame createHeartbeat(ProtoverEnum protover) { + return new HeartbeatWebSocketFrame(BilibiliCodecUtil.encode(this.getHeartbeatMsg(protover))); + } + + /** + * 心跳包单例模式 + * + * @param protover {@link ProtoverEnum} + * @return HeartbeatWebSocketFrame + */ + public HeartbeatMsg getHeartbeatMsg(ProtoverEnum protover) { + if (heartbeatMsg == null) { + synchronized (BilibiliWebSocketFrameFactory.this) { + if (heartbeatMsg == null) { + heartbeatMsg = new HeartbeatMsg(protover.getCode()); + } + } + } + return heartbeatMsg; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java new file mode 100644 index 00000000..d79efd03 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliBinaryFrameHandler.java @@ -0,0 +1,153 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.handler; + +import cn.hutool.core.util.StrUtil; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.bilibili.client.BilibiliLiveChatClient; +import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; +import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; +import tech.ordinaryroad.live.chat.client.bilibili.msg.*; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.util.BilibiliCodecUtil; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; + +import java.util.List; + + +/** + * 消息处理器 + * + * @author mjz + * @date 2023/1/4 + */ +@Slf4j +@ChannelHandler.Sharable +public class BilibiliBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { + + public BilibiliBinaryFrameHandler(List msgListeners, BilibiliLiveChatClient client) { + super(msgListeners, client); + } + + public BilibiliBinaryFrameHandler(List msgListeners, long roomId) { + super(msgListeners, roomId); + } + + @SneakyThrows + @Override + public void onCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { + if (super.msgListeners.isEmpty()) { + return; + } + + SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; + switch (cmd) { + case DANMU_MSG: { + DanmuMsgMsg danmuMsgMsg = new DanmuMsgMsg(); + danmuMsgMsg.setProtover(sendSmsReplyMsg.getProtover()); + danmuMsgMsg.setInfo(sendSmsReplyMsg.getInfo()); + danmuMsgMsg.setDm_v2(StrUtil.toStringOrNull(sendSmsReplyMsg.getUnknownProperties().get("dm_v2"))); + iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(BilibiliBinaryFrameHandler.this, danmuMsgMsg)); + break; + } + + case SEND_GIFT: { + SendGiftMsg sendGiftMsg = new SendGiftMsg(); + sendGiftMsg.setRoomId(getRoomIdAsLong()); + sendGiftMsg.setProtover(sendSmsReplyMsg.getProtover()); + SendGiftMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), SendGiftMsg.Data.class); + sendGiftMsg.setData(data); + iteratorMsgListeners(msgListener -> { + msgListener.onGiftMsg(BilibiliBinaryFrameHandler.this, sendGiftMsg); + msgListener.onSendGift(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); + }); + break; + } + + case SUPER_CHAT_MESSAGE: { + SuperChatMessageMsg superChatMessageMsg = new SuperChatMessageMsg(); + superChatMessageMsg.setProtover(sendSmsReplyMsg.getProtover()); + superChatMessageMsg.setRoomid(sendSmsReplyMsg.getRoomid()); + SuperChatMessageMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), SuperChatMessageMsg.Data.class); + superChatMessageMsg.setData(data); + iteratorMsgListeners(msgListener -> msgListener.onSuperChatMsg(BilibiliBinaryFrameHandler.this, superChatMessageMsg)); + break; + } + + case INTERACT_WORD: { + InteractWordMsg interactWordMsg = new InteractWordMsg(); + interactWordMsg.setProtover(sendSmsReplyMsg.getProtover()); + InteractWordMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), InteractWordMsg.Data.class); + interactWordMsg.setData(data); + iteratorMsgListeners(msgListener -> { + msgListener.onEnterRoomMsg(BilibiliBinaryFrameHandler.this, interactWordMsg); + msgListener.onEnterRoom(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); + }); + break; + } + + case ENTRY_EFFECT: { + iteratorMsgListeners(msgListener -> msgListener.onEntryEffect(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); + break; + } + + case WATCHED_CHANGE: { + iteratorMsgListeners(msgListener -> msgListener.onWatchedChange(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); + break; + } + + case LIKE_INFO_V3_CLICK: { + LikeInfoV3ClickMsg likeInfoV3ClickMsg = new LikeInfoV3ClickMsg(); + likeInfoV3ClickMsg.setProtover(sendSmsReplyMsg.getProtover()); + LikeInfoV3ClickMsg.Data data = BaseBilibiliMsg.OBJECT_MAPPER.treeToValue(sendSmsReplyMsg.getData(), LikeInfoV3ClickMsg.Data.class); + likeInfoV3ClickMsg.setData(data); + iteratorMsgListeners(msgListener -> { + msgListener.onLikeMsg(BilibiliBinaryFrameHandler.this, likeInfoV3ClickMsg); + msgListener.onClickLike(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg); + }); + break; + } + + case LIKE_INFO_V3_UPDATE: { + iteratorMsgListeners(msgListener -> msgListener.onClickUpdate(BilibiliBinaryFrameHandler.this, sendSmsReplyMsg)); + break; + } + + default: { + iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(BilibiliBinaryFrameHandler.this, cmd, cmdMsg)); + } + } + } + + @Override + protected List decode(ByteBuf byteBuf) { + return BilibiliCodecUtil.decode(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java new file mode 100644 index 00000000..8bd886ec --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/netty/handler/BilibiliConnectionHandler.java @@ -0,0 +1,154 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.netty.handler; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.bilibili.client.BilibiliLiveChatClient; +import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.netty.frame.factory.BilibiliWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; + + +/** + * 连接处理器 + * + * @author mjz + * @date 2023/8/21 + */ +@Slf4j +@ChannelHandler.Sharable +public class BilibiliConnectionHandler extends BaseNettyClientConnectionHandler { + + /** + * 以ClientConfig为主 + */ + private final long roomId; + /** + * 以ClientConfig为主 + */ + private final ProtoverEnum protover; + /** + * 以ClientConfig为主 + */ + private String cookie; + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, BilibiliLiveChatClient client, IBaseConnectionListener listener) { + super(handshaker, client, listener); + this.roomId = client.getConfig().getRoomId(); + this.protover = client.getConfig().getProtover(); + this.cookie = client.getConfig().getCookie(); + } + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, BilibiliLiveChatClient client) { + this(handshaker, client, null); + } + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, IBaseConnectionListener listener, String cookie) { + super(handshaker, listener); + this.roomId = roomId; + this.protover = protover; + this.cookie = cookie; + } + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, IBaseConnectionListener listener) { + this(handshaker, roomId, protover, listener, null); + } + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover, String cookie) { + this(handshaker, roomId, protover, null, cookie); + } + + public BilibiliConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, ProtoverEnum protover) { + this(handshaker, roomId, protover, null, null); + } + + @Override + protected void sendHeartbeat(ChannelHandlerContext ctx) { + if (log.isDebugEnabled()) { + log.debug("发送心跳包"); + } + ctx.writeAndFlush( + getWebSocketFrameFactory(getRoomId()).createHeartbeat(getProtover()) + ).addListener((ChannelFutureListener) future -> { + if (future.isSuccess()) { + if (log.isDebugEnabled()) { + log.debug("心跳包发送完成"); + } + } else { + log.error("心跳包发送失败", future.cause()); + } + }); + } + + private static BilibiliWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { + return BilibiliWebSocketFrameFactory.getInstance(roomId); + } + + @Override + public void sendAuthRequest(Channel channel) { + // 5s内认证 + if (log.isDebugEnabled()) { + log.debug("发送认证包"); + } + channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(getProtover(), getCookie())); + } + + public long getRoomId() { + return client != null ? client.getConfig().getRoomId() : roomId; + } + + private ProtoverEnum getProtover() { + return client != null ? client.getConfig().getProtover() : protover; + } + + private String getCookie() { + return client != null ? client.getConfig().getCookie() : cookie; + } + + @Override + protected long getHeartbeatPeriod() { + if (client == null) { + return BilibiliLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; + } else { + return client.getConfig().getHeartbeatPeriod(); + } + } + + @Override + protected long getHeartbeatInitialDelay() { + if (client == null) { + return BilibiliLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; + } else { + return client.getConfig().getHeartbeatInitialDelay(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java new file mode 100644 index 00000000..5666f45a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2Proto.java @@ -0,0 +1,78 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +public final class Dm_v2Proto { + private Dm_v2Proto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + String[] descriptorData = { + "\n\013dm_v2.proto\0224tech.ordinaryroad.live.ch" + + "at.client.bilibili.protobuf\032\016dm_v2_20.pr" + + "oto\"Y\n\005dm_v2\022P\n\010dm_v2_20\030\024 \001(\0132>.tech.or" + + "dinaryroad.live.chat.client.bilibili.pro" + + "tobuf.dm_v2_20BJ\n4tech.ordinaryroad.live" + + ".chat.client.bilibili.protobufB\nDm_v2Pro" + + "toP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + Dm_v2_20Proto.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor, + new String[] { "DmV220", }); + Dm_v2_20Proto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java new file mode 100644 index 00000000..fab53e09 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/Dm_v2_20Proto.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2_20.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +public final class Dm_v2_20Proto { + private Dm_v2_20Proto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + String[] descriptorData = { + "\n\016dm_v2_20.proto\0224tech.ordinaryroad.live" + + ".chat.client.bilibili.protobuf\"\032\n\010dm_v2_" + + "20\022\016\n\006avatar\030\004 \001(\tBM\n4tech.ordinaryroad." + + "live.chat.client.bilibili.protobufB\rDm_v" + + "2_20ProtoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor, + new String[] { "Avatar", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java new file mode 100644 index 00000000..97292775 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2.java @@ -0,0 +1,610 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2} + */ +public final class dm_v2 extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) + dm_v2OrBuilder { +private static final long serialVersionUID = 0L; + // Use dm_v2.newBuilder() to construct. + private dm_v2(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private dm_v2() { + } + + @Override + @SuppressWarnings({"unused"}) + protected Object newInstance( + UnusedPrivateParameter unused) { + return new dm_v2(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dm_v2.class, Builder.class); + } + + public static final int DM_V2_20_FIELD_NUMBER = 20; + private dm_v2_20 dmV220_; + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return Whether the dmV220 field is set. + */ + @Override + public boolean hasDmV220() { + return dmV220_ != null; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return The dmV220. + */ + @Override + public dm_v2_20 getDmV220() { + return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + @Override + public dm_v2_20OrBuilder getDmV220OrBuilder() { + return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; + } + + private byte memoizedIsInitialized = -1; + @Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (dmV220_ != null) { + output.writeMessage(20, getDmV220()); + } + getUnknownFields().writeTo(output); + } + + @Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (dmV220_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, getDmV220()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @Override + public boolean equals(final Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof dm_v2)) { + return super.equals(obj); + } + dm_v2 other = (dm_v2) obj; + + if (hasDmV220() != other.hasDmV220()) return false; + if (hasDmV220()) { + if (!getDmV220() + .equals(other.getDmV220())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDmV220()) { + hash = (37 * hash) + DM_V2_20_FIELD_NUMBER; + hash = (53 * hash) + getDmV220().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static dm_v2 parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2 parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2 parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2 parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2 parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2 parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2 parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dm_v2 parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static dm_v2 parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static dm_v2 parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static dm_v2 parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dm_v2 parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(dm_v2 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @Override + protected Builder newBuilderForType( + BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) + dm_v2OrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dm_v2.class, Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2.newBuilder() + private Builder() { + + } + + private Builder( + BuilderParent parent) { + super(parent); + + } + @Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + dmV220_ = null; + if (dmV220Builder_ != null) { + dmV220Builder_.dispose(); + dmV220Builder_ = null; + } + return this; + } + + @Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Dm_v2Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_descriptor; + } + + @Override + public dm_v2 getDefaultInstanceForType() { + return dm_v2.getDefaultInstance(); + } + + @Override + public dm_v2 build() { + dm_v2 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @Override + public dm_v2 buildPartial() { + dm_v2 result = new dm_v2(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(dm_v2 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.dmV220_ = dmV220Builder_ == null + ? dmV220_ + : dmV220Builder_.build(); + } + } + + @Override + public Builder clone() { + return super.clone(); + } + @Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return super.setField(field, value); + } + @Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return super.setRepeatedField(field, index, value); + } + @Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return super.addRepeatedField(field, value); + } + @Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof dm_v2) { + return mergeFrom((dm_v2)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(dm_v2 other) { + if (other == dm_v2.getDefaultInstance()) return this; + if (other.hasDmV220()) { + mergeDmV220(other.getDmV220()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @Override + public final boolean isInitialized() { + return true; + } + + @Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 162: { + input.readMessage( + getDmV220FieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 162 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private dm_v2_20 dmV220_; + private com.google.protobuf.SingleFieldBuilderV3< + dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder> dmV220Builder_; + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return Whether the dmV220 field is set. + */ + public boolean hasDmV220() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return The dmV220. + */ + public dm_v2_20 getDmV220() { + if (dmV220Builder_ == null) { + return dmV220_ == null ? dm_v2_20.getDefaultInstance() : dmV220_; + } else { + return dmV220Builder_.getMessage(); + } + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public Builder setDmV220(dm_v2_20 value) { + if (dmV220Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + dmV220_ = value; + } else { + dmV220Builder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public Builder setDmV220( + dm_v2_20.Builder builderForValue) { + if (dmV220Builder_ == null) { + dmV220_ = builderForValue.build(); + } else { + dmV220Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public Builder mergeDmV220(dm_v2_20 value) { + if (dmV220Builder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + dmV220_ != null && + dmV220_ != dm_v2_20.getDefaultInstance()) { + getDmV220Builder().mergeFrom(value); + } else { + dmV220_ = value; + } + } else { + dmV220Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public Builder clearDmV220() { + bitField0_ = (bitField0_ & ~0x00000001); + dmV220_ = null; + if (dmV220Builder_ != null) { + dmV220Builder_.dispose(); + dmV220Builder_ = null; + } + onChanged(); + return this; + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public dm_v2_20.Builder getDmV220Builder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDmV220FieldBuilder().getBuilder(); + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + public dm_v2_20OrBuilder getDmV220OrBuilder() { + if (dmV220Builder_ != null) { + return dmV220Builder_.getMessageOrBuilder(); + } else { + return dmV220_ == null ? + dm_v2_20.getDefaultInstance() : dmV220_; + } + } + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + private com.google.protobuf.SingleFieldBuilderV3< + dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder> + getDmV220FieldBuilder() { + if (dmV220Builder_ == null) { + dmV220Builder_ = new com.google.protobuf.SingleFieldBuilderV3< + dm_v2_20, dm_v2_20.Builder, dm_v2_20OrBuilder>( + getDmV220(), + getParentForChildren(), + isClean()); + dmV220_ = null; + } + return dmV220Builder_; + } + @Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) + private static final dm_v2 DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new dm_v2(); + } + + public static dm_v2 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @Override + public dm_v2 parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @Override + public dm_v2 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java new file mode 100644 index 00000000..f219e9e3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2OrBuilder.java @@ -0,0 +1,48 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +public interface dm_v2OrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2) + com.google.protobuf.MessageOrBuilder { + + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return Whether the dmV220 field is set. + */ + boolean hasDmV220(); + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + * @return The dmV220. + */ + dm_v2_20 getDmV220(); + /** + * .tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20 dm_v2_20 = 20; + */ + dm_v2_20OrBuilder getDmV220OrBuilder(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java new file mode 100644 index 00000000..a10e7d3e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20.java @@ -0,0 +1,565 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2_20.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20} + */ +public final class dm_v2_20 extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) + dm_v2_20OrBuilder { +private static final long serialVersionUID = 0L; + // Use dm_v2_20.newBuilder() to construct. + private dm_v2_20(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private dm_v2_20() { + avatar_ = ""; + } + + @Override + @SuppressWarnings({"unused"}) + protected Object newInstance( + UnusedPrivateParameter unused) { + return new dm_v2_20(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dm_v2_20.class, Builder.class); + } + + public static final int AVATAR_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile Object avatar_ = ""; + /** + * string avatar = 4; + * @return The avatar. + */ + @Override + public String getAvatar() { + Object ref = avatar_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + avatar_ = s; + return s; + } + } + /** + * string avatar = 4; + * @return The bytes for avatar. + */ + @Override + public com.google.protobuf.ByteString + getAvatarBytes() { + Object ref = avatar_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + avatar_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avatar_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, avatar_); + } + getUnknownFields().writeTo(output); + } + + @Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avatar_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, avatar_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @Override + public boolean equals(final Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof dm_v2_20)) { + return super.equals(obj); + } + dm_v2_20 other = (dm_v2_20) obj; + + if (!getAvatar() + .equals(other.getAvatar())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + AVATAR_FIELD_NUMBER; + hash = (53 * hash) + getAvatar().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static dm_v2_20 parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2_20 parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2_20 parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2_20 parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2_20 parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static dm_v2_20 parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static dm_v2_20 parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dm_v2_20 parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static dm_v2_20 parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static dm_v2_20 parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static dm_v2_20 parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static dm_v2_20 parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(dm_v2_20 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @Override + protected Builder newBuilderForType( + BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) + dm_v2_20OrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; + } + + @Override + protected FieldAccessorTable + internalGetFieldAccessorTable() { + return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_fieldAccessorTable + .ensureFieldAccessorsInitialized( + dm_v2_20.class, Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20.newBuilder() + private Builder() { + + } + + private Builder( + BuilderParent parent) { + super(parent); + + } + @Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + avatar_ = ""; + return this; + } + + @Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Dm_v2_20Proto.internal_static_tech_ordinaryroad_live_chat_client_bilibili_protobuf_dm_v2_20_descriptor; + } + + @Override + public dm_v2_20 getDefaultInstanceForType() { + return dm_v2_20.getDefaultInstance(); + } + + @Override + public dm_v2_20 build() { + dm_v2_20 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @Override + public dm_v2_20 buildPartial() { + dm_v2_20 result = new dm_v2_20(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(dm_v2_20 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.avatar_ = avatar_; + } + } + + @Override + public Builder clone() { + return super.clone(); + } + @Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return super.setField(field, value); + } + @Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, Object value) { + return super.setRepeatedField(field, index, value); + } + @Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + Object value) { + return super.addRepeatedField(field, value); + } + @Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof dm_v2_20) { + return mergeFrom((dm_v2_20)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(dm_v2_20 other) { + if (other == dm_v2_20.getDefaultInstance()) return this; + if (!other.getAvatar().isEmpty()) { + avatar_ = other.avatar_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @Override + public final boolean isInitialized() { + return true; + } + + @Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 34: { + avatar_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private Object avatar_ = ""; + /** + * string avatar = 4; + * @return The avatar. + */ + public String getAvatar() { + Object ref = avatar_; + if (!(ref instanceof String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + avatar_ = s; + return s; + } else { + return (String) ref; + } + } + /** + * string avatar = 4; + * @return The bytes for avatar. + */ + public com.google.protobuf.ByteString + getAvatarBytes() { + Object ref = avatar_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (String) ref); + avatar_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string avatar = 4; + * @param value The avatar to set. + * @return This builder for chaining. + */ + public Builder setAvatar( + String value) { + if (value == null) { throw new NullPointerException(); } + avatar_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string avatar = 4; + * @return This builder for chaining. + */ + public Builder clearAvatar() { + avatar_ = getDefaultInstance().getAvatar(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string avatar = 4; + * @param value The bytes for avatar to set. + * @return This builder for chaining. + */ + public Builder setAvatarBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + avatar_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + @Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) + private static final dm_v2_20 DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new dm_v2_20(); + } + + public static dm_v2_20 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @Override + public dm_v2_20 parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @Override + public dm_v2_20 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java new file mode 100644 index 00000000..d6345678 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/protobuf/dm_v2_20OrBuilder.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: dm_v2_20.proto + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +public interface dm_v2_20OrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.bilibili.protobuf.dm_v2_20) + com.google.protobuf.MessageOrBuilder { + + /** + * string avatar = 4; + * @return The avatar. + */ + String getAvatar(); + /** + * string avatar = 4; + * @return The bytes for avatar. + */ + com.google.protobuf.ByteString + getAvatarBytes(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java new file mode 100644 index 00000000..9841cae7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/java/tech/ordinaryroad/live/chat/client/bilibili/util/BilibiliCodecUtil.java @@ -0,0 +1,259 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.util; + +import cn.hutool.core.util.StrUtil; +import com.aayushatharva.brotli4j.Brotli4jLoader; +import com.aayushatharva.brotli4j.decoder.BrotliInputStream; +import com.fasterxml.jackson.core.JsonProcessingException; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.bilibili.constant.OperationEnum; +import tech.ordinaryroad.live.chat.client.bilibili.constant.ProtoverEnum; +import tech.ordinaryroad.live.chat.client.bilibili.msg.AuthReplyMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.HeartbeatReplyMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.SendSmsReplyMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.BaseBilibiliMsg; +import tech.ordinaryroad.live.chat.client.bilibili.msg.base.IBilibiliMsg; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Slf4j +public class BilibiliCodecUtil { + + public static int sequence = 0; + + public static final short FRAME_HEADER_LENGTH = 16; + + public static ByteBuf encode(BaseBilibiliMsg msg) { + ByteBuf out = Unpooled.buffer(FRAME_HEADER_LENGTH); + String bodyJsonString = StrUtil.EMPTY; + // HeartbeatMsg不需要正文,如果序列化后得到`{}`,则替换为空字符串 + if (!(msg instanceof HeartbeatMsg)) { + bodyJsonString = msg.toString(); + if (StrUtil.EMPTY_JSON.equals(bodyJsonString)) { + bodyJsonString = StrUtil.EMPTY; + } + } + byte[] bodyBytes = bodyJsonString.getBytes(StandardCharsets.UTF_8); + int length = bodyBytes.length + FRAME_HEADER_LENGTH; + out.writeInt(length); + out.writeShort(FRAME_HEADER_LENGTH); + out.writeShort(msg.getProtoverEnum().getCode()); + out.writeInt(msg.getOperationEnum().getCode()); + out.writeInt(sequence++); + out.writeBytes(bodyBytes); + return out; + } + + public static List decode(ByteBuf in) { + List msgList = new ArrayList<>(); + Queue pendingByteBuf = new LinkedList<>(); + + do { + Optional msg = doDecode(in, pendingByteBuf); + msg.ifPresent(msgList::add); + in = pendingByteBuf.poll(); + } while (in != null); + + return msgList; + } + + /** + * 执行解码操作,有压缩则先解压,解压后可能得到多条消息 + * + * @param in handler收到的一条消息 + * @param pendingByteBuf 用于存放未读取完的ByteBuf + * @return Optional 何时为空值:不支持的{@link OperationEnum},不支持的{@link ProtoverEnum},{@link #parse(OperationEnum, String)}反序列化失败 + * @see OperationEnum + * @see ProtoverEnum + */ + private static Optional doDecode(ByteBuf in, Queue pendingByteBuf) { + int length = in.readInt(); + short frameHeaderLength = in.readShort(); + short protoverCode = in.readShort(); + int operationCode = in.readInt(); + int sequence = in.readInt(); + int contentLength = length - frameHeaderLength; + byte[] inputBytes = new byte[contentLength]; + in.readBytes(inputBytes); + if (in.readableBytes() != 0) { + // log.error("in.readableBytes() {}", in.readableBytes()); + pendingByteBuf.offer(in); + } + + OperationEnum operationEnum = OperationEnum.getByCode(operationCode); + if (operationEnum == null) { + throw new BaseException(String.format("未知operation: %d", operationCode)); + } + if (protoverCode == ProtoverEnum.NORMAL_ZLIB.getCode()) { + switch (operationEnum) { + case SEND_SMS_REPLY: { + // Decompress the bytes + Inflater inflater = new Inflater(); + inflater.reset(); + inflater.setInput(inputBytes); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(contentLength); + try { + byte[] bytes = new byte[1024]; + while (!inflater.finished()) { + int count = inflater.inflate(bytes); + byteArrayOutputStream.write(bytes, 0, count); + } + } catch (DataFormatException e) { + throw new BaseException(e); + } + inflater.end(); + + return doDecode(Unpooled.wrappedBuffer(byteArrayOutputStream.toByteArray()), pendingByteBuf); + } + case HEARTBEAT_REPLY: { + BigInteger bigInteger = new BigInteger(inputBytes); + return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); + } + default: { + String s = new String(inputBytes, StandardCharsets.UTF_8); + return parse(operationEnum, s); + } + } + } else if (protoverCode == ProtoverEnum.NORMAL_NO_COMPRESSION.getCode()) { + switch (operationEnum) { + case HEARTBEAT_REPLY: { + BigInteger bigInteger = new BigInteger(inputBytes); + return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); + } + default: { + String s = new String(inputBytes, StandardCharsets.UTF_8); + return parse(operationEnum, s); + } + } + } else if (protoverCode == ProtoverEnum.HEARTBEAT_AUTH_NO_COMPRESSION.getCode()) { + switch (operationEnum) { + case HEARTBEAT_REPLY: { + BigInteger bigInteger = new BigInteger(inputBytes); + return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); + } + default: { + String s = new String(inputBytes, StandardCharsets.UTF_8); + return parse(operationEnum, s); + } + } + } else if (protoverCode == ProtoverEnum.NORMAL_BROTLI.getCode()) { + switch (operationEnum) { + case SEND_SMS_REPLY: { + // Load the native library + Brotli4jLoader.ensureAvailability(); + + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(inputBytes); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(contentLength); + byte[] bytes = new byte[1024]; + BrotliInputStream brotliInputStream = null; + ByteBuf wrappedBuffer = null; + try { + brotliInputStream = new BrotliInputStream(byteArrayInputStream); + int count; + while ((count = brotliInputStream.read(bytes)) > -1) { + byteArrayOutputStream.write(bytes, 0, count); + } + wrappedBuffer = Unpooled.wrappedBuffer(byteArrayOutputStream.toByteArray()); + } catch (IOException e) { + throw new BaseException(e); + } finally { + try { + // Close the BrotliInputStream. This also closes the InputStream. + if (brotliInputStream != null) { + brotliInputStream.close(); + } + byteArrayOutputStream.close(); + } catch (IOException e) { + log.error("解压失败", e); + } + } + return doDecode(wrappedBuffer, pendingByteBuf); + } + case HEARTBEAT_REPLY: { + BigInteger bigInteger = new BigInteger(inputBytes); + return parse(operationEnum, String.format("{\"popularity\":%d}", bigInteger)); + } + default: { + String s = new String(inputBytes, StandardCharsets.UTF_8); + return parse(operationEnum, s); + } + } + } else { + if (log.isWarnEnabled()) { + log.warn("暂不支持的版本:{}", protoverCode); + } + return Optional.empty(); + } + } + + public static Optional parse(OperationEnum operation, String jsonString) { + switch (operation) { + case SEND_SMS_REPLY: { + try { + return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, SendSmsReplyMsg.class)); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + case AUTH_REPLY: { + try { + return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, AuthReplyMsg.class)); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + case HEARTBEAT_REPLY: { + try { + return Optional.ofNullable(BaseBilibiliMsg.OBJECT_MAPPER.readValue(jsonString, HeartbeatReplyMsg.class)); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + default: { + if (log.isWarnEnabled()) { + log.warn("暂不支持 {}", operation); + } + return Optional.empty(); + } + } + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto new file mode 100644 index 00000000..53bf69c4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.bilibili.protobuf"; +option java_outer_classname = "Dm_v2Proto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +import "dm_v2_20.proto"; + +message dm_v2 { + dm_v2_20 dm_v2_20 = 20; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto new file mode 100644 index 00000000..3cb87799 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/main/resources/proto/dm_v2_20.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package tech.ordinaryroad.live.chat.client.bilibili.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.bilibili.protobuf"; +option java_outer_classname = "Dm_v2_20Proto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message dm_v2_20 { + string avatar = 4; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java new file mode 100644 index 00000000..f602e368 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/api/BilibiliApisTest.java @@ -0,0 +1,16 @@ +package tech.ordinaryroad.live.chat.client.bilibili.api; + +import org.junit.jupiter.api.Test; + +/** + * @author mjz + * @date 2023/9/7 + */ +class BilibiliApisTest { + + @Test + void sendMsg() { + String cookie = System.getenv("cookie"); + BilibiliApis.sendMsg("666", 545068, cookie); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java new file mode 100644 index 00000000..1d3f6ca3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-bilibili/src/test/java/tech/ordinaryroad/live/chat/client/bilibili/client/BilibiliLiveChatClientTest.java @@ -0,0 +1,176 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.bilibili.client; + +import cn.hutool.core.thread.ThreadUtil; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.bilibili.config.BilibiliLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.bilibili.constant.BilibiliCmdEnum; +import tech.ordinaryroad.live.chat.client.bilibili.listener.IBilibiliMsgListener; +import tech.ordinaryroad.live.chat.client.bilibili.msg.*; +import tech.ordinaryroad.live.chat.client.bilibili.netty.handler.BilibiliBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; + +/** + * @author mjz + * @date 2023/8/26 + */ +@Slf4j +class BilibiliLiveChatClientTest { + + static Object lock = new Object(); + BilibiliLiveChatClient client; + + @Test + void example() throws InterruptedException { + String cookie = System.getenv("cookie"); + log.error("cookie: {}", cookie); + BilibiliLiveChatClientConfig config = BilibiliLiveChatClientConfig.builder() + // TODO 浏览器Cookie + .cookie(cookie) + .roomId(7777) + .roomId(697) + .build(); + + client = new BilibiliLiveChatClient(config, new IBilibiliMsgListener() { + @Override + public void onDanmuMsg(BilibiliBinaryFrameHandler binaryFrameHandler, DanmuMsgMsg msg) { + IBilibiliMsgListener.super.onDanmuMsg(binaryFrameHandler, msg); + log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(BilibiliBinaryFrameHandler binaryFrameHandler, SendGiftMsg msg) { + IBilibiliMsgListener.super.onGiftMsg(binaryFrameHandler, msg); + log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getData().getAction(), msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); + } + + @Override + public void onSuperChatMsg(BilibiliBinaryFrameHandler binaryFrameHandler, SuperChatMessageMsg msg) { + IBilibiliMsgListener.super.onSuperChatMsg(binaryFrameHandler, msg); + log.info("{} 收到醒目留言 {}({}):{}", binaryFrameHandler.getRoomId(), msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onEnterRoomMsg(InteractWordMsg msg) { + log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + + @Override + public void onLikeMsg(BilibiliBinaryFrameHandler binaryFrameHandler, LikeInfoV3ClickMsg msg) { + IBilibiliMsgListener.super.onLikeMsg(binaryFrameHandler, msg); + log.info("{} 收到点赞 {} {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + + @Override + public void onEntryEffect(SendSmsReplyMsg msg) { + JsonNode data = msg.getData(); + String copyWriting = data.get("copy_writing").asText(); + log.info("入场效果 {}", copyWriting); + } + + @Override + public void onWatchedChange(SendSmsReplyMsg msg) { + JsonNode data = msg.getData(); + int num = data.get("num").asInt(); + String textSmall = data.get("text_small").asText(); + String textLarge = data.get("text_large").asText(); + log.debug("观看人数变化 {} {} {}", num, textSmall, textLarge); + } + + @Override + public void onClickLike(SendSmsReplyMsg msg) { + JsonNode data = msg.getData(); + String uname = data.get("uname").asText(); + String likeText = data.get("like_text").asText(); + log.debug("为主播点赞 {} {}", uname, likeText); + } + + @Override + public void onClickUpdate(SendSmsReplyMsg msg) { + JsonNode data = msg.getData(); + int clickCount = data.get("click_count").asInt(); + log.debug("点赞数更新 {}", clickCount); + } + + @Override + public void onMsg(IMsg msg) { + log.debug("收到{}消息 {}", msg.getClass(), msg); + } + + @Override + public void onCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { + log.debug("收到CMD消息{} {}", cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(BilibiliCmdEnum cmd, ICmdMsg cmdMsg) { +// log.debug("收到其他CMD消息 {}", cmd); + switch (cmd) { + case GUARD_BUY: { + // 有人上舰 + SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; + break; + } + case SUPER_CHAT_MESSAGE_DELETE: { + // 删除醒目留言 + SendSmsReplyMsg sendSmsReplyMsg = (SendSmsReplyMsg) cmdMsg; + break; + } + } + } + + @Override + public void onUnknownCmd(String cmdString, IMsg msg) { + log.debug("收到未知CMD消息 {}", cmdString); + } + }); + client.connect(); + + client.addStatusChangeListener(evt -> { + ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); + if (newValue == ClientStatusEnums.CONNECTED) { + ThreadUtil.execAsync(() -> { + ThreadUtil.sleep(5000); + client.clickLike(5, () -> { + log.warn("为主播点赞成功"); + }); + }); + } + }); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml new file mode 100644 index 00000000..a3690f87 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/pom.xml @@ -0,0 +1,42 @@ + + 4.0.0 + + org.ruoyi + live-chat-clients + ${revision} + ../pom.xml + + jar + + live-chat-client-douyin + live-chat-client-douyin + + + UTF-8 + + + + + org.ruoyi + live-chat-client-servers-netty-client + + + + com.google.protobuf + protobuf-java-util + + + + ch.qos.logback + logback-classic + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java new file mode 100644 index 00000000..c2c8678b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/ClientModeExample.java @@ -0,0 +1,81 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin; + +import cn.hutool.core.util.RandomUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; +import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +public class ClientModeExample { + static Logger log = LoggerFactory.getLogger(ClientModeExample.class); + + public static void main(String[] args) { + // 1. 创建配置 + DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder() + // TODO 浏览器Cookie + .cookie("did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; kuaishou.live.bfb1s=7206d814e5c089a58c910ed8bf52ace5; clientid=3; did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; client_key=65890b29; kpn=GAME_ZONE; userId=3941614875; kuaishou.live.web_st=ChRrdWFpc2hvdS5saXZlLndlYi5zdBKgAbRhgemDxM_Z_lBn7EZ_-5unvtslsh7ci5VY_eg80qqjxy5yb7oBFrdcWSPlz6jMIBz9h_yoLzATE3ngj2WawpxvbJhmq0EnRYIHv308kTBmg4KN2JQf7w2mfrsp1vusFbZ3NkfsEO4PrGQfX0L6mJRbgXeBqyz4tUM5O0q2Jte_NzWkaOnezvIGRAG8Y6yA1dxGUmiA9syTrPrdnSOzZvAaEoJNhwQ4OUDtgURWN6k9Xgm8PSIgAfV-ZvahtgaYhopZno6OuS2pkaFZjrz4ymoEZ1DSnj0oBTAB; kuaishou.live.web_ph=a287be6ab01dce264c0554eed94c2d6ac991; userId=3941614875") + // TODO 直播间id(支持短id) + .roomId("Jiazi-9931") + .build(); + + // 2. 创建Client并传入配置、添加消息回调 + DouyinLiveChatClient client = new DouyinLiveChatClient(config, new IDouyinMsgListener() { +// @Override +// public void onMsg(IMsg msg) { +// log.debug("收到{}消息 {}", msg.getClass(), msg); +// } +// @Override +// public void onUnknownCmd(String cmdString, IMsg msg) { +// log.debug("收到未知CMD消息 {}", cmdString); +// } + + @Override + public void onDanmuMsg(DouyinBinaryFrameHandler douyinBinaryFrameHandler, DouyinDanmuMsg msg) { + log.info("{} 收到弹幕 [{}] {}({}):{}", douyinBinaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + }); + // 3. 开始监听直播间 + client.connect(); + + // 客户端连接状态回调 +// client.addStatusChangeListener(evt -> { +// if (evt.getNewValue().equals(ClientStatusEnums.CONNECTED)) { +// // TODO 要发送的弹幕内容,请注意控制发送频率;框架内置支持设置发送弹幕的最少时间间隔,小于时将忽略该次发送 +// client.sendDanmu("666666" + RandomUtil.randomNumbers(1)); +// } +// }); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java new file mode 100644 index 00000000..d361e3a1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApis.java @@ -0,0 +1,108 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.api; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpStatus; +import cn.hutool.http.HttpUtil; +import lombok.*; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; + +import java.util.Map; + +/** + * @author mjz + * @date 2024/1/3 + */ +@Slf4j +public class DouyinApis { + + public static final String KEY_COOKIE_TTWID = "ttwid"; + public static final String KEY_COOKIE_MS_TOKEN = "msToken"; + public static final String KEY_COOKIE_AC_NONCE = "__ac_nonce"; + public static final String MS_TOKEN_BASE_STRING = RandomUtil.BASE_CHAR_NUMBER_LOWER + "=_"; + public static final int MS_TOKEN_LENGTH = 107; + public static final int AC_NONCE_LENGTH = 21; + public static final String PATTERN_USER_UNIQUE_ID = "\\\\\"user_unique_id\\\\\":\\\\\"(\\d+)\\\\\""; + public static final String PATTERN_ROOM_ID = "\\\\\"roomId\\\\\":\\\\\"(\\d+)\\\\\""; + + public static RoomInitResult roomInit(Object roomId, String cookie) { + Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); + + @Cleanup + HttpResponse response1 = HttpUtil.createGet("https://live.douyin.com/").cookie(cookie).execute(); + String ttwid = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_TTWID, () -> response1.getCookie(KEY_COOKIE_TTWID).getValue()); + String msToken = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_MS_TOKEN, () -> RandomUtil.randomString(MS_TOKEN_BASE_STRING, MS_TOKEN_LENGTH)); + String __ac_nonce = OrLiveChatCookieUtil.getCookieByName(cookieMap, KEY_COOKIE_AC_NONCE, () -> RandomUtil.randomString(AC_NONCE_LENGTH)); + + @Cleanup + HttpResponse response2 = HttpUtil.createGet("https://live.douyin.com/" + roomId) + .cookie(StrUtil.emptyToDefault(cookie, KEY_COOKIE_TTWID + "=" + ttwid + "; " + KEY_COOKIE_MS_TOKEN + "=" + msToken + "; " + KEY_COOKIE_AC_NONCE + "=" + __ac_nonce)) + .execute(); + if (response2.getStatus() != HttpStatus.HTTP_OK) { + throw new BaseException("获取" + roomId + "真实房间ID失败"); + } + String user_unique_id = StrUtil.emptyToDefault(ReUtil.getGroup1(PATTERN_USER_UNIQUE_ID, response2.body()), RandomUtil.randomNumbers(19)); + long realRoomId; + String realRoomIdString = ReUtil.getGroup1(PATTERN_ROOM_ID, response2.body()); + try { + realRoomId = NumberUtil.parseLong(realRoomIdString); + } catch (Exception e) { + throw new BaseException("获取" + roomId + "真实房间ID失败"); + } + + + return RoomInitResult.builder() + .ttwid(ttwid) + .msToken(msToken) + .acNonce(__ac_nonce) + .realRoomId(realRoomId) + .userUniqueId(user_unique_id) + .build(); + } + + public static RoomInitResult roomInit(Object roomId) { + return roomInit(roomId, null); + } + + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class RoomInitResult { + private String ttwid; + private String msToken; + private String acNonce; + private long realRoomId; + private String userUniqueId; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java new file mode 100644 index 00000000..47767a1c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClient.java @@ -0,0 +1,174 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.client; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.http.GlobalHeaders; +import cn.hutool.http.Header; +import cn.hutool.http.HttpUtil; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.douyin.api.DouyinApis; +import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; +import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinConnectionListener; +import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinConnectionHandler; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Slf4j +public class DouyinLiveChatClient extends BaseNettyClient< + DouyinLiveChatClientConfig, + DouyinCmdEnum, + IDouyinMsg, + IDouyinMsgListener, + DouyinConnectionHandler, + DouyinBinaryFrameHandler> { + + private DouyinApis.RoomInitResult roomInitResult = new DouyinApis.RoomInitResult(); + + public DouyinLiveChatClient(DouyinLiveChatClientConfig config, List msgListeners, IDouyinConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListeners(msgListeners); + + // 初始化 + this.init(); + } + + public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener, IDouyinConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListener(msgListener); + + // 初始化 + this.init(); + } + + public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener, IDouyinConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public DouyinLiveChatClient(DouyinLiveChatClientConfig config, IDouyinMsgListener msgListener) { + this(config, msgListener, null, new NioEventLoopGroup()); + } + + public DouyinLiveChatClient(DouyinLiveChatClientConfig config) { + this(config, null); + } + + @Override + public void init() { + roomInitResult = DouyinApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); + super.init(); + } + + @Override + public DouyinConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + DefaultHttpHeaders headers = new DefaultHttpHeaders(); + headers.add(Header.COOKIE.name(), DouyinApis.KEY_COOKIE_TTWID + "=" + roomInitResult.getTtwid()); + headers.add(Header.USER_AGENT.name(), GlobalHeaders.INSTANCE.header(Header.USER_AGENT)); + return new DouyinConnectionHandler( + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, headers, getConfig().getMaxFramePayloadLength()), + DouyinLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public DouyinBinaryFrameHandler initBinaryFrameHandler() { + return new DouyinBinaryFrameHandler(super.msgListeners, DouyinLiveChatClient.this); + } + + @Override + protected String getWebSocketUriString() { + long realRoomId = roomInitResult.getRealRoomId(); + String userUniqueId = roomInitResult.getUserUniqueId(); + + String webSocketUriString = super.getWebSocketUriString(); + Map queryParams = new HashMap<>(); + queryParams.put("app_name", "douyin_web"); + queryParams.put("version_code", getConfig().getVersionCode()); + queryParams.put("webcast_sdk_version", getConfig().getWebcastSdkVersion()); + queryParams.put("update_version_code", getConfig().getUpdateVersionCode()); + queryParams.put("compress", "gzip"); + queryParams.put("device_platform", "web"); + queryParams.put("cookie_enabled", "true"); + queryParams.put("screen_width", "800"); + queryParams.put("screen_height", "1280"); + queryParams.put("browser_language", "zh-CN"); + queryParams.put("browser_platform", "MacIntel"); + queryParams.put("browser_name", "Mozilla"); + queryParams.put("browser_version", "5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/116.0.0.0%20Safari/537.36"); + queryParams.put("browser_online", "true"); + queryParams.put("tz_name", "Asia/Shanghai"); + queryParams.put("host", "https://live.douyin.com"); + queryParams.put("im_path", "/webcast/im/fetch/"); + queryParams.put("endpoint", "live_pc"); + queryParams.put("identity", "audience"); + + queryParams.put("support_wrds", "1"); + queryParams.put("heartbeatDuration ", "0"); + queryParams.put("live_id", "1"); + queryParams.put("did_rule", "3"); + queryParams.put("aid", "6383"); + + queryParams.put("room_id", Long.toString(realRoomId)); + queryParams.put("user_unique_id", userUniqueId); + // TODO 生成signature + queryParams.put("signature", "00000000"); + queryParams.put("cursor", "t-" + System.currentTimeMillis() + "_r-1_d-1_u-1_h-1"); + queryParams.put("internal_ext", "internal_src:dim|" + + "wss_push_room_id:" + realRoomId + "|" + + "wss_push_did:" + userUniqueId + "|" + + "dim_log_id:" + DateUtil.format(new Date(), "yyyy-MM-dd") + RandomUtil.randomNumbers(6) + RandomUtil.randomString("0123456789ABCDEF", 20) + "|" + + "first_req_ms:" + System.currentTimeMillis() + "|" + + "fetch_time:" + System.currentTimeMillis() + "|" + + "seq:1|" + + "wss_info:0-" + System.currentTimeMillis() + "-0-0|" + + "wrds_kvs:WebcastRoomStatsMessage-" + System.nanoTime() + "_WebcastRoomRankMessage-" + System.nanoTime() + "_LotteryInfoSyncData-" + System.nanoTime() + "_WebcastActivityEmojiGroupsMessage-" + System.nanoTime()); + return webSocketUriString + "?" + HttpUtil.toParams(queryParams); + } + + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + super.sendDanmu(danmu, success, failed); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java new file mode 100644 index 00000000..6958bb0c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/config/DouyinLiveChatClientConfig.java @@ -0,0 +1,93 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.config; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public class DouyinLiveChatClientConfig extends BaseNettyClientConfig { + + @Builder.Default + private int aggregatorMaxContentLength = 64 * 1024 * 1024; + + @Builder.Default + private int maxFramePayloadLength = 64 * 1024 * 1024; + + private String versionCode = "180800"; + + private String webcastSdkVersion = "1.0.12"; + + private String updateVersionCode = "1.0.12"; + + /** + * 示例 + * wss://webcast5-ws-web-lf.douyin.com/webcast/im/push/v2/ + * ?app_name=douyin_web + * &version_code=180800 + * &webcast_sdk_version=1.0.12 + * &update_version_code=1.0.12 + * &compress=gzip + * &device_platform=web + * &cookie_enabled=true + * &screen_width=1512 + * &screen_height=982 + * &browser_language=zh-CN + * &browser_platform=MacIntel + * &browser_name=Mozilla + * &browser_version=5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/118.0.0.0%20Safari/537.36 + * &browser_online=true + * &tz_name=Asia/Shanghai + * &cursor=u-1_h-1_t-1704202376885_r-1_d-1 + * &internal_ext=internal_src:dim|wss_push_room_id:7319486720022301449|wss_push_did:7319492411867170356|dim_log_id:20240102213256AAA5B735ADBE992BEF6A|first_req_ms:1704202376757|fetch_time:1704202376885|seq:1|wss_info:0-1704202376885-0-0|wrds_kvs:WebcastActivityEmojiGroupsMessage-1704200830782138545_WebcastRoomRankMessage-1704202270876589607_WebcastRoomStatsMessage-1704202372842388781 + * &host=https://live.douyin.com + * &aid=6383 + * &live_id=1 + * &did_rule=3 + * &endpoint=live_pc + * &support_wrds=1 + * &user_unique_id=7319492411867170356 + * &im_path=/webcast/im/fetch/ + * &identity=audience + * &need_persist_msg_count=15 + * &room_id=7319486720022301449 + * &heartbeatDuration=0 + * &signature=Wk407jV1/WbnoIGk + */ + @Builder.Default + private String websocketUri = "wss://webcast5-ws-web-lf.douyin.com:443/webcast/im/push/v2/"; + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java new file mode 100644 index 00000000..d7335cde --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/constant/DouyinCmdEnum.java @@ -0,0 +1,73 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.constant; + +import cn.hutool.core.util.StrUtil; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Getter +@RequiredArgsConstructor +public enum DouyinCmdEnum { + + /** + * 弹幕 + */ + WebcastChatMessage, + /** + * 礼物 + */ + WebcastGiftMessage, + /** + * 点赞 + */ + WebcastLikeMessage, + /** + * 入房 + */ + WebcastMemberMessage, + WebcastSocialMessage, + WebcastRoomUserSeqMessage, + WebcastFansclubMessage, + WebcastControlMessage, + ; + + public static DouyinCmdEnum getByName(String name) { + if (StrUtil.isBlank(name)) { + return null; + } + + for (DouyinCmdEnum value : values()) { + if (value.name().equals(name)) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java new file mode 100644 index 00000000..9be4cea7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinConnectionListener.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinConnectionHandler; + +/** + * @author mjz + * @date 2024/1/2 + */ +public interface IDouyinConnectionListener extends IBaseConnectionListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java new file mode 100644 index 00000000..8f1c86ff --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/listener/IDouyinMsgListener.java @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.*; +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; + +/** + * @author mjz + * @date 2024/1/2 + */ +public interface IDouyinMsgListener extends IBaseMsgListener, + IDanmuMsgListener, + IGiftMsgListener, + IEnterRoomMsgListener, + ILikeMsgListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java new file mode 100644 index 00000000..32bb5301 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinDanmuMsg.java @@ -0,0 +1,77 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg; + +import cn.hutool.core.collection.CollUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DouyinDanmuMsg implements IDouyinMsg, IDanmuMsg { + + private douyin_webcast_chat_message_msg msg; + + @Override + public String getBadgeName() { + return msg.getUser().getFansClub().getData().getClubName(); + } + + @Override + public byte getBadgeLevel() { + return (byte) msg.getUser().getFansClub().getData().getLevel(); + } + + @Override + public String getUid() { + return Long.toString(msg.getUser().getId()); + } + + @Override + public String getUsername() { + return msg.getUser().getNickname(); + } + + @Override + public String getUserAvatar() { + return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); + } + + @Override + public String getContent() { + return msg.getContent(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java new file mode 100644 index 00000000..6c394f56 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinEnterRoomMsg.java @@ -0,0 +1,72 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg; + +import cn.hutool.core.collection.CollUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DouyinEnterRoomMsg implements IDouyinMsg, IEnterRoomMsg { + + private douyin_webcast_member_message_msg msg; + + @Override + public String getBadgeName() { + return msg.getUser().getFansClub().getData().getClubName(); + } + + @Override + public byte getBadgeLevel() { + return (byte) msg.getUser().getFansClub().getData().getLevel(); + } + + @Override + public String getUid() { + return Long.toString(msg.getUser().getId()); + } + + @Override + public String getUsername() { + return msg.getUser().getNickname(); + } + + @Override + public String getUserAvatar() { + return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java new file mode 100644 index 00000000..0bd35354 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinGiftMsg.java @@ -0,0 +1,107 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg; + +import cn.hutool.core.collection.CollUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DouyinGiftMsg implements IDouyinMsg, IGiftMsg { + + private douyin_webcast_gift_message_msg msg; + + @Override + public String getBadgeName() { + return msg.getUser().getFansClub().getData().getClubName(); + } + + @Override + public byte getBadgeLevel() { + return (byte) msg.getUser().getFansClub().getData().getLevel(); + } + + @Override + public String getUid() { + return Long.toString(msg.getUser().getId()); + } + + @Override + public String getUsername() { + return msg.getUser().getNickname(); + } + + @Override + public String getUserAvatar() { + return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); + } + + @Override + public String getGiftName() { + return msg.getGift().getName(); + } + + @Override + public String getGiftImg() { + return CollUtil.getFirst(msg.getGift().getImage().getUrlListListList()); + } + + @Override + public String getGiftId() { + return Long.toString(msg.getLongGiftId()); + } + + @Override + public int getGiftCount() { + return (int) msg.getTotalCount(); + } + + @Override + public int getGiftPrice() { + return msg.getGift().getDiamondCount(); + } + + @Override + public String getReceiveUid() { + return Long.toString(msg.getToUser().getId()); + } + + @Override + public String getReceiveUsername() { + return msg.getToUser().getNickname(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java new file mode 100644 index 00000000..ce029979 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/DouyinLikeMsg.java @@ -0,0 +1,77 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg; + +import cn.hutool.core.collection.CollUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg; + +/** + * @author mjz + * @date 2024/1/31 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DouyinLikeMsg implements IDouyinMsg, ILikeMsg { + + private douyin_webcast_like_message_msg msg; + + @Override + public String getBadgeName() { + return msg.getUser().getFansClub().getData().getClubName(); + } + + @Override + public byte getBadgeLevel() { + return (byte) msg.getUser().getFansClub().getData().getLevel(); + } + + @Override + public String getUid() { + return Long.toString(msg.getUser().getId()); + } + + @Override + public String getUsername() { + return msg.getUser().getNickname(); + } + + @Override + public String getUserAvatar() { + return CollUtil.getFirst(msg.getUser().getAvatarThumb().getUrlListListList()); + } + + @Override + public int getClickCount() { + return (int) msg.getCount(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java new file mode 100644 index 00000000..aa264a16 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinCmdMsg.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; + +/** + * @author mjz + * @date 2024/1/2 + */ +public interface IDouyinCmdMsg extends IDouyinMsg, ICmdMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java new file mode 100644 index 00000000..6dc10954 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/msg/base/IDouyinMsg.java @@ -0,0 +1,34 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +/** + * @author mjz + * @date 2024/1/2 + */ +public interface IDouyinMsg extends IMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java new file mode 100644 index 00000000..bddf8de0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinBinaryFrameHandler.java @@ -0,0 +1,156 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.netty.handler; + +import cn.hutool.core.util.ZipUtil; +import com.google.protobuf.ByteString; +import com.google.protobuf.InvalidProtocolBufferException; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; +import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinMsg; +import tech.ordinaryroad.live.chat.client.douyin.protobuf.*; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Slf4j +@ChannelHandler.Sharable +public class DouyinBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { + + private ChannelHandlerContext channelHandlerContext; + + public DouyinBinaryFrameHandler(List iDouyinMsgListeners, DouyinLiveChatClient client) { + super(iDouyinMsgListeners, client); + } + + public DouyinBinaryFrameHandler(List iDouyinMsgListeners, long roomId) { + super(iDouyinMsgListeners, roomId); + } + + @Override + public void handlerAdded(ChannelHandlerContext ctx) throws Exception { + super.handlerAdded(ctx); + channelHandlerContext = ctx; + } + + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + super.handlerRemoved(ctx); + channelHandlerContext = null; + } + + @Override + public void onCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { + if (super.msgListeners.isEmpty()) { + return; + } + + ByteString payload = ((douyin_cmd_msg) cmdMsg).getPayload(); + switch (cmd) { + case WebcastChatMessage: { + try { + douyin_webcast_chat_message_msg douyinWebcastChatMessageMsg = douyin_webcast_chat_message_msg.parseFrom(payload); + iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(DouyinBinaryFrameHandler.this, new DouyinDanmuMsg(douyinWebcastChatMessageMsg))); + } catch (IOException e) { + throw new BaseException(e); + } + break; + } + case WebcastGiftMessage: { + try { + douyin_webcast_gift_message_msg douyinWebcastGiftMessageMsg = douyin_webcast_gift_message_msg.parseFrom(payload); + iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(DouyinBinaryFrameHandler.this, new DouyinGiftMsg(douyinWebcastGiftMessageMsg))); + } catch (InvalidProtocolBufferException e) { + throw new BaseException(e); + } + break; + } + case WebcastMemberMessage: { + try { + douyin_webcast_member_message_msg douyinWebcastMemberMessageMsg = douyin_webcast_member_message_msg.parseFrom(payload); + iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(DouyinBinaryFrameHandler.this, new DouyinEnterRoomMsg(douyinWebcastMemberMessageMsg))); + } catch (InvalidProtocolBufferException e) { + throw new BaseException(e); + } + break; + } + case WebcastLikeMessage: { + try { + douyin_webcast_like_message_msg douyinWebcastLikeMessageMsg = douyin_webcast_like_message_msg.parseFrom(payload); + iteratorMsgListeners(msgListener -> msgListener.onLikeMsg(DouyinBinaryFrameHandler.this, new DouyinLikeMsg(douyinWebcastLikeMessageMsg))); + } catch (InvalidProtocolBufferException e) { + throw new BaseException(e); + } + break; + } + default: { + iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(DouyinBinaryFrameHandler.this, cmd, cmdMsg)); + } + } + } + + @Override + protected List decode(ByteBuf byteBuf) { + try { + douyin_websocket_frame douyinWebsocketFrame = douyin_websocket_frame.parseFrom(byteBuf.nioBuffer()); + ByteString payload = douyinWebsocketFrame.getPayload(); + byte[] bytes = ZipUtil.unGzip(payload.newInput()); + douyin_websocket_frame_msg douyinWebsocketFrameMsg = douyin_websocket_frame_msg.parseFrom(bytes); + + // 抖音不是使用心跳,而是ACK + if (douyinWebsocketFrameMsg.getNeedAck()) { + douyin_websocket_frame ack = douyin_websocket_frame.newBuilder() + .setLogId(douyinWebsocketFrame.getLogId()) + .setPayloadType("ack") + .setPayload(douyinWebsocketFrameMsg.getInternalExtBytes()) + .build(); + channelHandlerContext.writeAndFlush(new BinaryWebSocketFrame(Unpooled.wrappedBuffer(ack.toByteArray()))); + } + + return new ArrayList<>(douyinWebsocketFrameMsg.getMessagesListList()); + } catch (InvalidProtocolBufferException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java new file mode 100644 index 00000000..1b9c6f8f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/netty/handler/DouyinConnectionHandler.java @@ -0,0 +1,117 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyin.netty.handler; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.douyin.client.DouyinLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Slf4j +@ChannelHandler.Sharable +public class DouyinConnectionHandler extends BaseNettyClientConnectionHandler { + + /** + * 以ClientConfig为主 + */ + private final Object roomId; + /** + * 以ClientConfig为主 + */ + private String cookie; + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, DouyinLiveChatClient client, IBaseConnectionListener listener) { + super(handshaker, client, listener); + this.roomId = client.getConfig().getRoomId(); + this.cookie = client.getConfig().getCookie(); + } + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, DouyinLiveChatClient client) { + this(handshaker, client, null); + } + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, IBaseConnectionListener listener, String cookie) { + super(handshaker, listener); + this.roomId = roomId; + this.cookie = cookie; + } + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, IBaseConnectionListener listener) { + this(handshaker, roomId, listener, null); + } + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String cookie) { + this(handshaker, roomId, null, cookie); + } + + public DouyinConnectionHandler(WebSocketClientHandshaker handshaker, long roomId) { + this(handshaker, roomId, null, null); + } + + @Override + protected void sendHeartbeat(ChannelHandlerContext ctx) { + // ignore + } + + @Override + public void sendAuthRequest(Channel channel) { + // ignore + } + + @Override + protected long getHeartbeatPeriod() { + if (client == null) { + return DouyinLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; + } else { + return client.getConfig().getHeartbeatPeriod(); + } + } + + @Override + protected long getHeartbeatInitialDelay() { + if (client == null) { + return DouyinLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; + } else { + return client.getConfig().getHeartbeatInitialDelay(); + } + } + + public Object getRoomId() { + return client != null ? client.getConfig().getRoomId() : roomId; + } + + private String getCookie() { + return client != null ? client.getConfig().getCookie() : cookie; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java new file mode 100644 index 00000000..f5ed4b41 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_cmd_msgProto.java @@ -0,0 +1,78 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_cmd_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class Douyin_cmd_msgProto { + private Douyin_cmd_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024douyin_cmd_msg.proto\0222tech.ordinaryroa" + + "d.live.chat.client.douyin.protobuf\"\250\001\n\016d" + + "ouyin_cmd_msg\022\016\n\006method\030\001 \001(\t\022\017\n\007payload" + + "\030\002 \001(\014\022\016\n\006msg_id\030\003 \001(\003\022\020\n\010msg_type\030\004 \001(\005" + + "\022\016\n\006offset\030\005 \001(\003\022\027\n\017need_wrds_store\030\006 \001(" + + "\010\022\024\n\014wrds_version\030\007 \001(\003\022\024\n\014wrds_sub_key\030" + + "\010 \001(\tBQ\n2tech.ordinaryroad.live.chat.cli" + + "ent.douyin.protobufB\023Douyin_cmd_msgProto" + + "P\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor, + new java.lang.String[] { "Method", "Payload", "MsgId", "MsgType", "Offset", "NeedWrdsStore", "WrdsVersion", "WrdsSubKey", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java new file mode 100644 index 00000000..4e5a46d7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_chat_message_msgProto.java @@ -0,0 +1,93 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_chat_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class Douyin_webcast_chat_message_msgProto { + private Douyin_webcast_chat_message_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n%douyin_webcast_chat_message_msg.proto\022" + + "2tech.ordinaryroad.live.chat.client.douy" + + "in.protobuf\032\014Common.proto\032\nUser.proto\032\013I" + + "mage.proto\"\300\003\n\037douyin_webcast_chat_messa" + + "ge_msg\022\027\n\006common\030\001 \001(\0132\007.Common\022\023\n\004user\030" + + "\002 \001(\0132\005.User\022\017\n\007content\030\003 \001(\t\022\031\n\021visible" + + "_to_sender\030\004 \001(\010\022 \n\020background_image\030\005 \001" + + "(\0132\006.Image\022\036\n\026full_screen_text_color\030\006 \001" + + "(\t\022#\n\023background_image_v2\030\007 \001(\0132\006.Image\022" + + "\032\n\ngift_image\030\n \001(\0132\006.Image\022\024\n\014agree_msg" + + "_id\030\013 \001(\004\022\026\n\016priority_level\030\014 \001(\r\022\022\n\neve" + + "nt_time\030\017 \001(\004\022\023\n\013send_review\030\020 \001(\010\022\025\n\rfr" + + "om_intercom\030\021 \001(\010\022\037\n\027intercom_hide_user_" + + "card\030\022 \001(\010\022\017\n\007chat_by\030\024 \001(\t\022 \n\030individua" + + "l_chat_priority\030\025 \001(\rBb\n2tech.ordinaryro" + + "ad.live.chat.client.douyin.protobufB$Dou" + + "yin_webcast_chat_message_msgProtoP\001\242\002\003GP" + + "Bb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor, + new java.lang.String[] { "Common", "User", "Content", "VisibleToSender", "BackgroundImage", "FullScreenTextColor", "BackgroundImageV2", "GiftImage", "AgreeMsgId", "PriorityLevel", "EventTime", "SendReview", "FromIntercom", "IntercomHideUserCard", "ChatBy", "IndividualChatPriority", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java new file mode 100644 index 00000000..69ed4f92 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_gift_message_msgProto.java @@ -0,0 +1,112 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_gift_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class Douyin_webcast_gift_message_msgProto { + private Douyin_webcast_gift_message_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n%douyin_webcast_gift_message_msg.proto\022" + + "2tech.ordinaryroad.live.chat.client.douy" + + "in.protobuf\032\014Common.proto\032\nUser.proto\032\020T" + + "extEffect.proto\032\nText.proto\032\024GiftIMPrior" + + "ity.proto\032\020GiftStruct.proto\032\026PublicAreaC" + + "ommon.proto\"\277\006\n\037douyin_webcast_gift_mess" + + "age_msg\022\027\n\006common\030\001 \001(\0132\007.Common\022\024\n\014long" + + "_gift_id\030\002 \001(\004\022\030\n\020fan_ticket_count\030\003 \001(\004" + + "\022\023\n\013group_count\030\004 \001(\004\022\024\n\014repeat_count\030\005 " + + "\001(\004\022\023\n\013combo_count\030\006 \001(\004\022\023\n\004user\030\007 \001(\0132\005" + + ".User\022\026\n\007to_user\030\010 \001(\0132\005.User\022\022\n\nrepeat_" + + "end\030\t \001(\r\022 \n\013text_effect\030\n \001(\0132\013.TextEff" + + "ect\022\020\n\010group_id\030\013 \001(\004\022\030\n\020income_taskgift" + + "s\030\014 \001(\004\022\035\n\025room_fan_ticket_count\030\r \001(\004\022!" + + "\n\010priority\030\016 \001(\0132\017.GiftIMPriority\022\031\n\004gif" + + "t\030\017 \001(\0132\013.GiftStruct\022\016\n\006log_id\030\020 \001(\t\022\021\n\t" + + "send_type\030\021 \001(\004\022-\n\022public_area_common\030\022 " + + "\001(\0132\021.PublicAreaCommon\022 \n\021tray_display_t" + + "ext\030\023 \001(\0132\005.Text\022\036\n\026banned_display_effec" + + "ts\030\024 \001(\004\022\030\n\020display_for_self\030\031 \001(\010\022\032\n\022in" + + "teract_gift_info\030\032 \001(\t\022\025\n\rdiy_item_info\030" + + "\033 \001(\t\022\032\n\022min_asset_set_list\030\034 \003(\004\022\023\n\013tot" + + "al_count\030\035 \001(\004\022\032\n\022client_gift_source\030\036 \001" + + "(\r\022\030\n\020to_user_ids_list\030 \003(\004\022\022\n\nsend_tim" + + "et\030! \001(\004\022\036\n\026force_display_effectst\030\" \001(\004" + + "\022\020\n\010trace_id\030# \001(\t\022\031\n\021effect_display_ts\030" + + "$ \001(\004Bb\n2tech.ordinaryroad.live.chat.cli" + + "ent.douyin.protobufB$Douyin_webcast_gift" + + "_message_msgProtoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor, + new java.lang.String[] { "Common", "LongGiftId", "FanTicketCount", "GroupCount", "RepeatCount", "ComboCount", "User", "ToUser", "RepeatEnd", "TextEffect", "GroupId", "IncomeTaskgifts", "RoomFanTicketCount", "Priority", "Gift", "LogId", "SendType", "PublicAreaCommon", "TrayDisplayText", "BannedDisplayEffects", "DisplayForSelf", "InteractGiftInfo", "DiyItemInfo", "MinAssetSetList", "TotalCount", "ClientGiftSource", "ToUserIdsList", "SendTimet", "ForceDisplayEffectst", "TraceId", "EffectDisplayTs", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java new file mode 100644 index 00000000..ccdb0088 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_webcast_member_message_msgProto.java @@ -0,0 +1,111 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_member_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class Douyin_webcast_member_message_msgProto { + private Douyin_webcast_member_message_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\'douyin_webcast_member_message_msg.prot" + + "o\0222tech.ordinaryroad.live.chat.client.do" + + "uyin.protobuf\032\014Common.proto\032\nUser.proto\032" + + "\013Image.proto\032\nText.proto\"\203\005\n!douyin_webc" + + "ast_member_message_msg\022\027\n\006common\030\001 \001(\0132\007" + + ".Common\022\023\n\004user\030\002 \001(\0132\005.User\022\023\n\013memberCo" + + "unt\030\003 \001(\004\022\027\n\010operator\030\004 \001(\0132\005.User\022\024\n\014is" + + "SetToAdmin\030\005 \001(\010\022\021\n\tisTopUser\030\006 \001(\010\022\021\n\tr" + + "ankScore\030\007 \001(\003\022\021\n\ttopUserNo\030\010 \001(\003\022\021\n\tent" + + "erType\030\t \001(\003\022\016\n\006action\030\n \001(\003\022\031\n\021actionDe" + + "scription\030\013 \001(\t\022\016\n\006userId\030\014 \001(\003\022\016\n\006popSt" + + "r\030\016 \001(\t\022\037\n\017backgroundImage\030\020 \001(\0132\006.Image" + + "\022!\n\021backgroundImageV2\030\021 \001(\0132\006.Image\022 \n\021a" + + "nchorDisplayText\030\022 \001(\0132\005.Text\022\030\n\020userEnt" + + "erTipType\030\024 \001(\003\022\032\n\022anchorEnterTipType\030\025 " + + "\001(\003\022\201\001\n\016buriedPointMap\030\026 \003(\0132i.tech.ordi" + + "naryroad.live.chat.client.douyin.protobu" + + "f.douyin_webcast_member_message_msg.Buri" + + "edPointMapEntry\0325\n\023BuriedPointMapEntry\022\013" + + "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001Bd\n2tech.o" + + "rdinaryroad.live.chat.client.douyin.prot" + + "obufB&Douyin_webcast_member_message_msgP" + + "rotoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor, + new java.lang.String[] { "Common", "User", "MemberCount", "Operator", "IsSetToAdmin", "IsTopUser", "RankScore", "TopUserNo", "EnterType", "Action", "ActionDescription", "UserId", "PopStr", "BackgroundImage", "BackgroundImageV2", "AnchorDisplayText", "UserEnterTipType", "AnchorEnterTipType", "BuriedPointMap", }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor = + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor.getNestedTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java new file mode 100644 index 00000000..620d99e3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/Douyin_websocket_frameProto.java @@ -0,0 +1,93 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class Douyin_websocket_frameProto { + private Douyin_websocket_frameProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\034douyin_websocket_frame.proto\0222tech.ord" + + "inaryroad.live.chat.client.douyin.protob" + + "uf\"\301\002\n\026douyin_websocket_frame\022\016\n\006seq_id\030" + + "\001 \001(\004\022\016\n\006log_id\030\002 \001(\004\022\017\n\007service\030\003 \001(\004\022\016" + + "\n\006method\030\004 \001(\004\022q\n\014headers_list\030\005 \003(\0132[.t" + + "ech.ordinaryroad.live.chat.client.douyin" + + ".protobuf.douyin_websocket_frame.Headers" + + "ListEntry\022\030\n\020payload_encoding\030\006 \001(\t\022\024\n\014p" + + "ayload_type\030\007 \001(\t\022\017\n\007payload\030\010 \001(\014\0322\n\020He" + + "adersListEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001" + + "(\t:\0028\001BY\n2tech.ordinaryroad.live.chat.cl" + + "ient.douyin.protobufB\033Douyin_websocket_f" + + "rameProtoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor, + new java.lang.String[] { "SeqId", "LogId", "Service", "Method", "HeadersList", "PayloadEncoding", "PayloadType", "Payload", }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor = + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor.getNestedTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java new file mode 100644 index 00000000..44f8e78b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msg.java @@ -0,0 +1,1122 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_cmd_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; +import tech.ordinaryroad.live.chat.client.douyin.msg.base.IDouyinCmdMsg; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg} + */ +public final class douyin_cmd_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) + douyin_cmd_msgOrBuilder, IDouyinCmdMsg { + + @Override + public String getCmd() { + return getMethod(); + } + + @Override + public void setCmd(String cmd) { + // ignore + // method_ = cmd; + } + + @Override + public DouyinCmdEnum getCmdEnum() { + return DouyinCmdEnum.getByName(getMethod()); + } + +private static final long serialVersionUID = 0L; + // Use douyin_cmd_msg.newBuilder() to construct. + private douyin_cmd_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_cmd_msg() { + method_ = ""; + payload_ = com.google.protobuf.ByteString.EMPTY; + wrdsSubKey_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_cmd_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder.class); + } + + public static final int METHOD_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object method_ = ""; + /** + * string method = 1; + * @return The method. + */ + @java.lang.Override + public java.lang.String getMethod() { + java.lang.Object ref = method_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + method_ = s; + return s; + } + } + /** + * string method = 1; + * @return The bytes for method. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodBytes() { + java.lang.Object ref = method_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + method_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAYLOAD_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 2; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + + public static final int MSG_ID_FIELD_NUMBER = 3; + private long msgId_ = 0L; + /** + * int64 msg_id = 3; + * @return The msgId. + */ + @java.lang.Override + public long getMsgId() { + return msgId_; + } + + public static final int MSG_TYPE_FIELD_NUMBER = 4; + private int msgType_ = 0; + /** + * int32 msg_type = 4; + * @return The msgType. + */ + @java.lang.Override + public int getMsgType() { + return msgType_; + } + + public static final int OFFSET_FIELD_NUMBER = 5; + private long offset_ = 0L; + /** + * int64 offset = 5; + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + + public static final int NEED_WRDS_STORE_FIELD_NUMBER = 6; + private boolean needWrdsStore_ = false; + /** + * bool need_wrds_store = 6; + * @return The needWrdsStore. + */ + @java.lang.Override + public boolean getNeedWrdsStore() { + return needWrdsStore_; + } + + public static final int WRDS_VERSION_FIELD_NUMBER = 7; + private long wrdsVersion_ = 0L; + /** + * int64 wrds_version = 7; + * @return The wrdsVersion. + */ + @java.lang.Override + public long getWrdsVersion() { + return wrdsVersion_; + } + + public static final int WRDS_SUB_KEY_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object wrdsSubKey_ = ""; + /** + * string wrds_sub_key = 8; + * @return The wrdsSubKey. + */ + @java.lang.Override + public java.lang.String getWrdsSubKey() { + java.lang.Object ref = wrdsSubKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + wrdsSubKey_ = s; + return s; + } + } + /** + * string wrds_sub_key = 8; + * @return The bytes for wrdsSubKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getWrdsSubKeyBytes() { + java.lang.Object ref = wrdsSubKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + wrdsSubKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, method_); + } + if (!payload_.isEmpty()) { + output.writeBytes(2, payload_); + } + if (msgId_ != 0L) { + output.writeInt64(3, msgId_); + } + if (msgType_ != 0) { + output.writeInt32(4, msgType_); + } + if (offset_ != 0L) { + output.writeInt64(5, offset_); + } + if (needWrdsStore_ != false) { + output.writeBool(6, needWrdsStore_); + } + if (wrdsVersion_ != 0L) { + output.writeInt64(7, wrdsVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(wrdsSubKey_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, wrdsSubKey_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, method_); + } + if (!payload_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, payload_); + } + if (msgId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, msgId_); + } + if (msgType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, msgType_); + } + if (offset_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(5, offset_); + } + if (needWrdsStore_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(6, needWrdsStore_); + } + if (wrdsVersion_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(7, wrdsVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(wrdsSubKey_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, wrdsSubKey_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) obj; + + if (!getMethod() + .equals(other.getMethod())) return false; + if (!getPayload() + .equals(other.getPayload())) return false; + if (getMsgId() + != other.getMsgId()) return false; + if (getMsgType() + != other.getMsgType()) return false; + if (getOffset() + != other.getOffset()) return false; + if (getNeedWrdsStore() + != other.getNeedWrdsStore()) return false; + if (getWrdsVersion() + != other.getWrdsVersion()) return false; + if (!getWrdsSubKey() + .equals(other.getWrdsSubKey())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + METHOD_FIELD_NUMBER; + hash = (53 * hash) + getMethod().hashCode(); + hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; + hash = (53 * hash) + getPayload().hashCode(); + hash = (37 * hash) + MSG_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMsgId()); + hash = (37 * hash) + MSG_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getMsgType(); + hash = (37 * hash) + OFFSET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getOffset()); + hash = (37 * hash) + NEED_WRDS_STORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNeedWrdsStore()); + hash = (37 * hash) + WRDS_VERSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getWrdsVersion()); + hash = (37 * hash) + WRDS_SUB_KEY_FIELD_NUMBER; + hash = (53 * hash) + getWrdsSubKey().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + method_ = ""; + payload_ = com.google.protobuf.ByteString.EMPTY; + msgId_ = 0L; + msgType_ = 0; + offset_ = 0L; + needWrdsStore_ = false; + wrdsVersion_ = 0L; + wrdsSubKey_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_cmd_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.method_ = method_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.payload_ = payload_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.msgId_ = msgId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.msgType_ = msgType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.offset_ = offset_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.needWrdsStore_ = needWrdsStore_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.wrdsVersion_ = wrdsVersion_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.wrdsSubKey_ = wrdsSubKey_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()) return this; + if (!other.getMethod().isEmpty()) { + method_ = other.method_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { + setPayload(other.getPayload()); + } + if (other.getMsgId() != 0L) { + setMsgId(other.getMsgId()); + } + if (other.getMsgType() != 0) { + setMsgType(other.getMsgType()); + } + if (other.getOffset() != 0L) { + setOffset(other.getOffset()); + } + if (other.getNeedWrdsStore() != false) { + setNeedWrdsStore(other.getNeedWrdsStore()); + } + if (other.getWrdsVersion() != 0L) { + setWrdsVersion(other.getWrdsVersion()); + } + if (!other.getWrdsSubKey().isEmpty()) { + wrdsSubKey_ = other.wrdsSubKey_; + bitField0_ |= 0x00000080; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + method_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + payload_ = input.readBytes(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + msgId_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + msgType_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + offset_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + needWrdsStore_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + wrdsVersion_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 66: { + wrdsSubKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object method_ = ""; + /** + * string method = 1; + * @return The method. + */ + public java.lang.String getMethod() { + java.lang.Object ref = method_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + method_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string method = 1; + * @return The bytes for method. + */ + public com.google.protobuf.ByteString + getMethodBytes() { + java.lang.Object ref = method_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + method_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string method = 1; + * @param value The method to set. + * @return This builder for chaining. + */ + public Builder setMethod( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + method_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string method = 1; + * @return This builder for chaining. + */ + public Builder clearMethod() { + method_ = getDefaultInstance().getMethod(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string method = 1; + * @param value The bytes for method to set. + * @return This builder for chaining. + */ + public Builder setMethodBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + method_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 2; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + /** + * bytes payload = 2; + * @param value The payload to set. + * @return This builder for chaining. + */ + public Builder setPayload(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + payload_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bytes payload = 2; + * @return This builder for chaining. + */ + public Builder clearPayload() { + bitField0_ = (bitField0_ & ~0x00000002); + payload_ = getDefaultInstance().getPayload(); + onChanged(); + return this; + } + + private long msgId_ ; + /** + * int64 msg_id = 3; + * @return The msgId. + */ + @java.lang.Override + public long getMsgId() { + return msgId_; + } + /** + * int64 msg_id = 3; + * @param value The msgId to set. + * @return This builder for chaining. + */ + public Builder setMsgId(long value) { + + msgId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 msg_id = 3; + * @return This builder for chaining. + */ + public Builder clearMsgId() { + bitField0_ = (bitField0_ & ~0x00000004); + msgId_ = 0L; + onChanged(); + return this; + } + + private int msgType_ ; + /** + * int32 msg_type = 4; + * @return The msgType. + */ + @java.lang.Override + public int getMsgType() { + return msgType_; + } + /** + * int32 msg_type = 4; + * @param value The msgType to set. + * @return This builder for chaining. + */ + public Builder setMsgType(int value) { + + msgType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int32 msg_type = 4; + * @return This builder for chaining. + */ + public Builder clearMsgType() { + bitField0_ = (bitField0_ & ~0x00000008); + msgType_ = 0; + onChanged(); + return this; + } + + private long offset_ ; + /** + * int64 offset = 5; + * @return The offset. + */ + @java.lang.Override + public long getOffset() { + return offset_; + } + /** + * int64 offset = 5; + * @param value The offset to set. + * @return This builder for chaining. + */ + public Builder setOffset(long value) { + + offset_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * int64 offset = 5; + * @return This builder for chaining. + */ + public Builder clearOffset() { + bitField0_ = (bitField0_ & ~0x00000010); + offset_ = 0L; + onChanged(); + return this; + } + + private boolean needWrdsStore_ ; + /** + * bool need_wrds_store = 6; + * @return The needWrdsStore. + */ + @java.lang.Override + public boolean getNeedWrdsStore() { + return needWrdsStore_; + } + /** + * bool need_wrds_store = 6; + * @param value The needWrdsStore to set. + * @return This builder for chaining. + */ + public Builder setNeedWrdsStore(boolean value) { + + needWrdsStore_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool need_wrds_store = 6; + * @return This builder for chaining. + */ + public Builder clearNeedWrdsStore() { + bitField0_ = (bitField0_ & ~0x00000020); + needWrdsStore_ = false; + onChanged(); + return this; + } + + private long wrdsVersion_ ; + /** + * int64 wrds_version = 7; + * @return The wrdsVersion. + */ + @java.lang.Override + public long getWrdsVersion() { + return wrdsVersion_; + } + /** + * int64 wrds_version = 7; + * @param value The wrdsVersion to set. + * @return This builder for chaining. + */ + public Builder setWrdsVersion(long value) { + + wrdsVersion_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * int64 wrds_version = 7; + * @return This builder for chaining. + */ + public Builder clearWrdsVersion() { + bitField0_ = (bitField0_ & ~0x00000040); + wrdsVersion_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object wrdsSubKey_ = ""; + /** + * string wrds_sub_key = 8; + * @return The wrdsSubKey. + */ + public java.lang.String getWrdsSubKey() { + java.lang.Object ref = wrdsSubKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + wrdsSubKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string wrds_sub_key = 8; + * @return The bytes for wrdsSubKey. + */ + public com.google.protobuf.ByteString + getWrdsSubKeyBytes() { + java.lang.Object ref = wrdsSubKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + wrdsSubKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string wrds_sub_key = 8; + * @param value The wrdsSubKey to set. + * @return This builder for chaining. + */ + public Builder setWrdsSubKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + wrdsSubKey_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string wrds_sub_key = 8; + * @return This builder for chaining. + */ + public Builder clearWrdsSubKey() { + wrdsSubKey_ = getDefaultInstance().getWrdsSubKey(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string wrds_sub_key = 8; + * @param value The bytes for wrdsSubKey to set. + * @return This builder for chaining. + */ + public Builder setWrdsSubKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + wrdsSubKey_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_cmd_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java new file mode 100644 index 00000000..ed0175d5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_cmd_msgOrBuilder.java @@ -0,0 +1,93 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_cmd_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_cmd_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * string method = 1; + * @return The method. + */ + java.lang.String getMethod(); + /** + * string method = 1; + * @return The bytes for method. + */ + com.google.protobuf.ByteString + getMethodBytes(); + + /** + * bytes payload = 2; + * @return The payload. + */ + com.google.protobuf.ByteString getPayload(); + + /** + * int64 msg_id = 3; + * @return The msgId. + */ + long getMsgId(); + + /** + * int32 msg_type = 4; + * @return The msgType. + */ + int getMsgType(); + + /** + * int64 offset = 5; + * @return The offset. + */ + long getOffset(); + + /** + * bool need_wrds_store = 6; + * @return The needWrdsStore. + */ + boolean getNeedWrdsStore(); + + /** + * int64 wrds_version = 7; + * @return The wrdsVersion. + */ + long getWrdsVersion(); + + /** + * string wrds_sub_key = 8; + * @return The wrdsSubKey. + */ + java.lang.String getWrdsSubKey(); + /** + * string wrds_sub_key = 8; + * @return The bytes for wrdsSubKey. + */ + com.google.protobuf.ByteString + getWrdsSubKeyBytes(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java new file mode 100644 index 00000000..ae1a4d49 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msg.java @@ -0,0 +1,2384 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_chat_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg} + */ +public final class douyin_webcast_chat_message_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) + douyin_webcast_chat_message_msgOrBuilder { + private static final long serialVersionUID = 0L; + // Use douyin_webcast_chat_message_msg.newBuilder() to construct. + private douyin_webcast_chat_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_webcast_chat_message_msg() { + content_ = ""; + fullScreenTextColor_ = ""; + chatBy_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_webcast_chat_message_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.Builder.class); + } + + public static final int COMMON_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + @java.lang.Override + public boolean hasCommon() { + return common_ != null; + } + /** + * .Common common = 1; + * @return The common. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + /** + * .Common common = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int CONTENT_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + /** + * string content = 3; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 3; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VISIBLE_TO_SENDER_FIELD_NUMBER = 4; + private boolean visibleToSender_ = false; + /** + * bool visible_to_sender = 4; + * @return The visibleToSender. + */ + @java.lang.Override + public boolean getVisibleToSender() { + return visibleToSender_; + } + + public static final int BACKGROUND_IMAGE_FIELD_NUMBER = 5; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; + /** + * .Image background_image = 5; + * @return Whether the backgroundImage field is set. + */ + @java.lang.Override + public boolean hasBackgroundImage() { + return backgroundImage_ != null; + } + /** + * .Image background_image = 5; + * @return The backgroundImage. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + /** + * .Image background_image = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + + public static final int FULL_SCREEN_TEXT_COLOR_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object fullScreenTextColor_ = ""; + /** + * string full_screen_text_color = 6; + * @return The fullScreenTextColor. + */ + @java.lang.Override + public java.lang.String getFullScreenTextColor() { + java.lang.Object ref = fullScreenTextColor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fullScreenTextColor_ = s; + return s; + } + } + /** + * string full_screen_text_color = 6; + * @return The bytes for fullScreenTextColor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFullScreenTextColorBytes() { + java.lang.Object ref = fullScreenTextColor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fullScreenTextColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BACKGROUND_IMAGE_V2_FIELD_NUMBER = 7; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; + /** + * .Image background_image_v2 = 7; + * @return Whether the backgroundImageV2 field is set. + */ + @java.lang.Override + public boolean hasBackgroundImageV2() { + return backgroundImageV2_ != null; + } + /** + * .Image background_image_v2 = 7; + * @return The backgroundImageV2. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + /** + * .Image background_image_v2 = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + + public static final int GIFT_IMAGE_FIELD_NUMBER = 10; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftImage_; + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + * @return Whether the giftImage field is set. + */ + @java.lang.Override + public boolean hasGiftImage() { + return giftImage_ != null; + } + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + * @return The giftImage. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage() { + return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; + } + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder() { + return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; + } + + public static final int AGREE_MSG_ID_FIELD_NUMBER = 11; + private long agreeMsgId_ = 0L; + /** + * uint64 agree_msg_id = 11; + * @return The agreeMsgId. + */ + @java.lang.Override + public long getAgreeMsgId() { + return agreeMsgId_; + } + + public static final int PRIORITY_LEVEL_FIELD_NUMBER = 12; + private int priorityLevel_ = 0; + /** + * uint32 priority_level = 12; + * @return The priorityLevel. + */ + @java.lang.Override + public int getPriorityLevel() { + return priorityLevel_; + } + + public static final int EVENT_TIME_FIELD_NUMBER = 15; + private long eventTime_ = 0L; + /** + *
+   * LandscapeAreaCommon landscape_area_common = 13;
+   * 
+ * + * uint64 event_time = 15; + * @return The eventTime. + */ + @java.lang.Override + public long getEventTime() { + return eventTime_; + } + + public static final int SEND_REVIEW_FIELD_NUMBER = 16; + private boolean sendReview_ = false; + /** + * bool send_review = 16; + * @return The sendReview. + */ + @java.lang.Override + public boolean getSendReview() { + return sendReview_; + } + + public static final int FROM_INTERCOM_FIELD_NUMBER = 17; + private boolean fromIntercom_ = false; + /** + * bool from_intercom = 17; + * @return The fromIntercom. + */ + @java.lang.Override + public boolean getFromIntercom() { + return fromIntercom_; + } + + public static final int INTERCOM_HIDE_USER_CARD_FIELD_NUMBER = 18; + private boolean intercomHideUserCard_ = false; + /** + * bool intercom_hide_user_card = 18; + * @return The intercomHideUserCard. + */ + @java.lang.Override + public boolean getIntercomHideUserCard() { + return intercomHideUserCard_; + } + + public static final int CHAT_BY_FIELD_NUMBER = 20; + @SuppressWarnings("serial") + private volatile java.lang.Object chatBy_ = ""; + /** + *
+   * repeated string chatTagsList = 19;
+   * 
+ * + * string chat_by = 20; + * @return The chatBy. + */ + @java.lang.Override + public java.lang.String getChatBy() { + java.lang.Object ref = chatBy_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + chatBy_ = s; + return s; + } + } + /** + *
+   * repeated string chatTagsList = 19;
+   * 
+ * + * string chat_by = 20; + * @return The bytes for chatBy. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getChatByBytes() { + java.lang.Object ref = chatBy_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + chatBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int INDIVIDUAL_CHAT_PRIORITY_FIELD_NUMBER = 21; + private int individualChatPriority_ = 0; + /** + *
+   * Text rtf_content = 22 ;
+   * 
+ * + * uint32 individual_chat_priority = 21; + * @return The individualChatPriority. + */ + @java.lang.Override + public int getIndividualChatPriority() { + return individualChatPriority_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (common_ != null) { + output.writeMessage(1, getCommon()); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); + } + if (visibleToSender_ != false) { + output.writeBool(4, visibleToSender_); + } + if (backgroundImage_ != null) { + output.writeMessage(5, getBackgroundImage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fullScreenTextColor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, fullScreenTextColor_); + } + if (backgroundImageV2_ != null) { + output.writeMessage(7, getBackgroundImageV2()); + } + if (giftImage_ != null) { + output.writeMessage(10, getGiftImage()); + } + if (agreeMsgId_ != 0L) { + output.writeUInt64(11, agreeMsgId_); + } + if (priorityLevel_ != 0) { + output.writeUInt32(12, priorityLevel_); + } + if (eventTime_ != 0L) { + output.writeUInt64(15, eventTime_); + } + if (sendReview_ != false) { + output.writeBool(16, sendReview_); + } + if (fromIntercom_ != false) { + output.writeBool(17, fromIntercom_); + } + if (intercomHideUserCard_ != false) { + output.writeBool(18, intercomHideUserCard_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(chatBy_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 20, chatBy_); + } + if (individualChatPriority_ != 0) { + output.writeUInt32(21, individualChatPriority_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (common_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getCommon()); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); + } + if (visibleToSender_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, visibleToSender_); + } + if (backgroundImage_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getBackgroundImage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fullScreenTextColor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, fullScreenTextColor_); + } + if (backgroundImageV2_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getBackgroundImageV2()); + } + if (giftImage_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, getGiftImage()); + } + if (agreeMsgId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(11, agreeMsgId_); + } + if (priorityLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(12, priorityLevel_); + } + if (eventTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(15, eventTime_); + } + if (sendReview_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(16, sendReview_); + } + if (fromIntercom_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(17, fromIntercom_); + } + if (intercomHideUserCard_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(18, intercomHideUserCard_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(chatBy_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, chatBy_); + } + if (individualChatPriority_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(21, individualChatPriority_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) obj; + + if (hasCommon() != other.hasCommon()) return false; + if (hasCommon()) { + if (!getCommon() + .equals(other.getCommon())) return false; + } + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (!getContent() + .equals(other.getContent())) return false; + if (getVisibleToSender() + != other.getVisibleToSender()) return false; + if (hasBackgroundImage() != other.hasBackgroundImage()) return false; + if (hasBackgroundImage()) { + if (!getBackgroundImage() + .equals(other.getBackgroundImage())) return false; + } + if (!getFullScreenTextColor() + .equals(other.getFullScreenTextColor())) return false; + if (hasBackgroundImageV2() != other.hasBackgroundImageV2()) return false; + if (hasBackgroundImageV2()) { + if (!getBackgroundImageV2() + .equals(other.getBackgroundImageV2())) return false; + } + if (hasGiftImage() != other.hasGiftImage()) return false; + if (hasGiftImage()) { + if (!getGiftImage() + .equals(other.getGiftImage())) return false; + } + if (getAgreeMsgId() + != other.getAgreeMsgId()) return false; + if (getPriorityLevel() + != other.getPriorityLevel()) return false; + if (getEventTime() + != other.getEventTime()) return false; + if (getSendReview() + != other.getSendReview()) return false; + if (getFromIntercom() + != other.getFromIntercom()) return false; + if (getIntercomHideUserCard() + != other.getIntercomHideUserCard()) return false; + if (!getChatBy() + .equals(other.getChatBy())) return false; + if (getIndividualChatPriority() + != other.getIndividualChatPriority()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCommon()) { + hash = (37 * hash) + COMMON_FIELD_NUMBER; + hash = (53 * hash) + getCommon().hashCode(); + } + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + VISIBLE_TO_SENDER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getVisibleToSender()); + if (hasBackgroundImage()) { + hash = (37 * hash) + BACKGROUND_IMAGE_FIELD_NUMBER; + hash = (53 * hash) + getBackgroundImage().hashCode(); + } + hash = (37 * hash) + FULL_SCREEN_TEXT_COLOR_FIELD_NUMBER; + hash = (53 * hash) + getFullScreenTextColor().hashCode(); + if (hasBackgroundImageV2()) { + hash = (37 * hash) + BACKGROUND_IMAGE_V2_FIELD_NUMBER; + hash = (53 * hash) + getBackgroundImageV2().hashCode(); + } + if (hasGiftImage()) { + hash = (37 * hash) + GIFT_IMAGE_FIELD_NUMBER; + hash = (53 * hash) + getGiftImage().hashCode(); + } + hash = (37 * hash) + AGREE_MSG_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAgreeMsgId()); + hash = (37 * hash) + PRIORITY_LEVEL_FIELD_NUMBER; + hash = (53 * hash) + getPriorityLevel(); + hash = (37 * hash) + EVENT_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEventTime()); + hash = (37 * hash) + SEND_REVIEW_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSendReview()); + hash = (37 * hash) + FROM_INTERCOM_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFromIntercom()); + hash = (37 * hash) + INTERCOM_HIDE_USER_CARD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIntercomHideUserCard()); + hash = (37 * hash) + CHAT_BY_FIELD_NUMBER; + hash = (53 * hash) + getChatBy().hashCode(); + hash = (37 * hash) + INDIVIDUAL_CHAT_PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + getIndividualChatPriority(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + content_ = ""; + visibleToSender_ = false; + backgroundImage_ = null; + if (backgroundImageBuilder_ != null) { + backgroundImageBuilder_.dispose(); + backgroundImageBuilder_ = null; + } + fullScreenTextColor_ = ""; + backgroundImageV2_ = null; + if (backgroundImageV2Builder_ != null) { + backgroundImageV2Builder_.dispose(); + backgroundImageV2Builder_ = null; + } + giftImage_ = null; + if (giftImageBuilder_ != null) { + giftImageBuilder_.dispose(); + giftImageBuilder_ = null; + } + agreeMsgId_ = 0L; + priorityLevel_ = 0; + eventTime_ = 0L; + sendReview_ = false; + fromIntercom_ = false; + intercomHideUserCard_ = false; + chatBy_ = ""; + individualChatPriority_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_chat_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_chat_message_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.common_ = commonBuilder_ == null + ? common_ + : commonBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.content_ = content_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.visibleToSender_ = visibleToSender_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.backgroundImage_ = backgroundImageBuilder_ == null + ? backgroundImage_ + : backgroundImageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.fullScreenTextColor_ = fullScreenTextColor_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.backgroundImageV2_ = backgroundImageV2Builder_ == null + ? backgroundImageV2_ + : backgroundImageV2Builder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.giftImage_ = giftImageBuilder_ == null + ? giftImage_ + : giftImageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.agreeMsgId_ = agreeMsgId_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.priorityLevel_ = priorityLevel_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.eventTime_ = eventTime_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.sendReview_ = sendReview_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.fromIntercom_ = fromIntercom_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.intercomHideUserCard_ = intercomHideUserCard_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.chatBy_ = chatBy_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.individualChatPriority_ = individualChatPriority_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg.getDefaultInstance()) return this; + if (other.hasCommon()) { + mergeCommon(other.getCommon()); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getVisibleToSender() != false) { + setVisibleToSender(other.getVisibleToSender()); + } + if (other.hasBackgroundImage()) { + mergeBackgroundImage(other.getBackgroundImage()); + } + if (!other.getFullScreenTextColor().isEmpty()) { + fullScreenTextColor_ = other.fullScreenTextColor_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasBackgroundImageV2()) { + mergeBackgroundImageV2(other.getBackgroundImageV2()); + } + if (other.hasGiftImage()) { + mergeGiftImage(other.getGiftImage()); + } + if (other.getAgreeMsgId() != 0L) { + setAgreeMsgId(other.getAgreeMsgId()); + } + if (other.getPriorityLevel() != 0) { + setPriorityLevel(other.getPriorityLevel()); + } + if (other.getEventTime() != 0L) { + setEventTime(other.getEventTime()); + } + if (other.getSendReview() != false) { + setSendReview(other.getSendReview()); + } + if (other.getFromIntercom() != false) { + setFromIntercom(other.getFromIntercom()); + } + if (other.getIntercomHideUserCard() != false) { + setIntercomHideUserCard(other.getIntercomHideUserCard()); + } + if (!other.getChatBy().isEmpty()) { + chatBy_ = other.chatBy_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (other.getIndividualChatPriority() != 0) { + setIndividualChatPriority(other.getIndividualChatPriority()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getCommonFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + visibleToSender_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + input.readMessage( + getBackgroundImageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + fullScreenTextColor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + input.readMessage( + getBackgroundImageV2FieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 82: { + input.readMessage( + getGiftImageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 82 + case 88: { + agreeMsgId_ = input.readUInt64(); + bitField0_ |= 0x00000100; + break; + } // case 88 + case 96: { + priorityLevel_ = input.readUInt32(); + bitField0_ |= 0x00000200; + break; + } // case 96 + case 120: { + eventTime_ = input.readUInt64(); + bitField0_ |= 0x00000400; + break; + } // case 120 + case 128: { + sendReview_ = input.readBool(); + bitField0_ |= 0x00000800; + break; + } // case 128 + case 136: { + fromIntercom_ = input.readBool(); + bitField0_ |= 0x00001000; + break; + } // case 136 + case 144: { + intercomHideUserCard_ = input.readBool(); + bitField0_ |= 0x00002000; + break; + } // case 144 + case 162: { + chatBy_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 162 + case 168: { + individualChatPriority_ = input.readUInt32(); + bitField0_ |= 0x00008000; + break; + } // case 168 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + public boolean hasCommon() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Common common = 1; + * @return The common. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + if (commonBuilder_ == null) { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } else { + return commonBuilder_.getMessage(); + } + } + /** + * .Common common = 1; + */ + public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + common_ = value; + } else { + commonBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder setCommon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { + if (commonBuilder_ == null) { + common_ = builderForValue.build(); + } else { + commonBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + common_ != null && + common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { + getCommonBuilder().mergeFrom(value); + } else { + common_ = value; + } + } else { + commonBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder clearCommon() { + bitField0_ = (bitField0_ & ~0x00000001); + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getCommonFieldBuilder().getBuilder(); + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + if (commonBuilder_ != null) { + return commonBuilder_.getMessageOrBuilder(); + } else { + return common_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + } + /** + * .Common common = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> + getCommonFieldBuilder() { + if (commonBuilder_ == null) { + commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( + getCommon(), + getParentForChildren(), + isClean()); + common_ = null; + } + return commonBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .User user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private java.lang.Object content_ = ""; + /** + * string content = 3; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 3; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 3; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + content_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string content = 3; + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string content = 3; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private boolean visibleToSender_ ; + /** + * bool visible_to_sender = 4; + * @return The visibleToSender. + */ + @java.lang.Override + public boolean getVisibleToSender() { + return visibleToSender_; + } + /** + * bool visible_to_sender = 4; + * @param value The visibleToSender to set. + * @return This builder for chaining. + */ + public Builder setVisibleToSender(boolean value) { + + visibleToSender_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * bool visible_to_sender = 4; + * @return This builder for chaining. + */ + public Builder clearVisibleToSender() { + bitField0_ = (bitField0_ & ~0x00000008); + visibleToSender_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageBuilder_; + /** + * .Image background_image = 5; + * @return Whether the backgroundImage field is set. + */ + public boolean hasBackgroundImage() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .Image background_image = 5; + * @return The backgroundImage. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { + if (backgroundImageBuilder_ == null) { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } else { + return backgroundImageBuilder_.getMessage(); + } + } + /** + * .Image background_image = 5; + */ + public Builder setBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + backgroundImage_ = value; + } else { + backgroundImageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .Image background_image = 5; + */ + public Builder setBackgroundImage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundImageBuilder_ == null) { + backgroundImage_ = builderForValue.build(); + } else { + backgroundImageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .Image background_image = 5; + */ + public Builder mergeBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + backgroundImage_ != null && + backgroundImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundImageBuilder().mergeFrom(value); + } else { + backgroundImage_ = value; + } + } else { + backgroundImageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .Image background_image = 5; + */ + public Builder clearBackgroundImage() { + bitField0_ = (bitField0_ & ~0x00000010); + backgroundImage_ = null; + if (backgroundImageBuilder_ != null) { + backgroundImageBuilder_.dispose(); + backgroundImageBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image background_image = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getBackgroundImageFieldBuilder().getBuilder(); + } + /** + * .Image background_image = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { + if (backgroundImageBuilder_ != null) { + return backgroundImageBuilder_.getMessageOrBuilder(); + } else { + return backgroundImage_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + } + /** + * .Image background_image = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundImageFieldBuilder() { + if (backgroundImageBuilder_ == null) { + backgroundImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackgroundImage(), + getParentForChildren(), + isClean()); + backgroundImage_ = null; + } + return backgroundImageBuilder_; + } + + private java.lang.Object fullScreenTextColor_ = ""; + /** + * string full_screen_text_color = 6; + * @return The fullScreenTextColor. + */ + public java.lang.String getFullScreenTextColor() { + java.lang.Object ref = fullScreenTextColor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fullScreenTextColor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string full_screen_text_color = 6; + * @return The bytes for fullScreenTextColor. + */ + public com.google.protobuf.ByteString + getFullScreenTextColorBytes() { + java.lang.Object ref = fullScreenTextColor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fullScreenTextColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string full_screen_text_color = 6; + * @param value The fullScreenTextColor to set. + * @return This builder for chaining. + */ + public Builder setFullScreenTextColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + fullScreenTextColor_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string full_screen_text_color = 6; + * @return This builder for chaining. + */ + public Builder clearFullScreenTextColor() { + fullScreenTextColor_ = getDefaultInstance().getFullScreenTextColor(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string full_screen_text_color = 6; + * @param value The bytes for fullScreenTextColor to set. + * @return This builder for chaining. + */ + public Builder setFullScreenTextColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + fullScreenTextColor_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageV2Builder_; + /** + * .Image background_image_v2 = 7; + * @return Whether the backgroundImageV2 field is set. + */ + public boolean hasBackgroundImageV2() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .Image background_image_v2 = 7; + * @return The backgroundImageV2. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { + if (backgroundImageV2Builder_ == null) { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } else { + return backgroundImageV2Builder_.getMessage(); + } + } + /** + * .Image background_image_v2 = 7; + */ + public Builder setBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageV2Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + backgroundImageV2_ = value; + } else { + backgroundImageV2Builder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image background_image_v2 = 7; + */ + public Builder setBackgroundImageV2( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundImageV2Builder_ == null) { + backgroundImageV2_ = builderForValue.build(); + } else { + backgroundImageV2Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image background_image_v2 = 7; + */ + public Builder mergeBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageV2Builder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + backgroundImageV2_ != null && + backgroundImageV2_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundImageV2Builder().mergeFrom(value); + } else { + backgroundImageV2_ = value; + } + } else { + backgroundImageV2Builder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image background_image_v2 = 7; + */ + public Builder clearBackgroundImageV2() { + bitField0_ = (bitField0_ & ~0x00000040); + backgroundImageV2_ = null; + if (backgroundImageV2Builder_ != null) { + backgroundImageV2Builder_.dispose(); + backgroundImageV2Builder_ = null; + } + onChanged(); + return this; + } + /** + * .Image background_image_v2 = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageV2Builder() { + bitField0_ |= 0x00000040; + onChanged(); + return getBackgroundImageV2FieldBuilder().getBuilder(); + } + /** + * .Image background_image_v2 = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { + if (backgroundImageV2Builder_ != null) { + return backgroundImageV2Builder_.getMessageOrBuilder(); + } else { + return backgroundImageV2_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + } + /** + * .Image background_image_v2 = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundImageV2FieldBuilder() { + if (backgroundImageV2Builder_ == null) { + backgroundImageV2Builder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackgroundImageV2(), + getParentForChildren(), + isClean()); + backgroundImageV2_ = null; + } + return backgroundImageV2Builder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftImage_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> giftImageBuilder_; + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + * @return Whether the giftImage field is set. + */ + public boolean hasGiftImage() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + * @return The giftImage. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage() { + if (giftImageBuilder_ == null) { + return giftImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; + } else { + return giftImageBuilder_.getMessage(); + } + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public Builder setGiftImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (giftImageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + giftImage_ = value; + } else { + giftImageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public Builder setGiftImage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (giftImageBuilder_ == null) { + giftImage_ = builderForValue.build(); + } else { + giftImageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public Builder mergeGiftImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (giftImageBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + giftImage_ != null && + giftImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getGiftImageBuilder().mergeFrom(value); + } else { + giftImage_ = value; + } + } else { + giftImageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public Builder clearGiftImage() { + bitField0_ = (bitField0_ & ~0x00000080); + giftImage_ = null; + if (giftImageBuilder_ != null) { + giftImageBuilder_.dispose(); + giftImageBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getGiftImageBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getGiftImageFieldBuilder().getBuilder(); + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder() { + if (giftImageBuilder_ != null) { + return giftImageBuilder_.getMessageOrBuilder(); + } else { + return giftImage_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftImage_; + } + } + /** + *
+     * PublicAreaCommon public_area_common = 9;
+     * 
+ * + * .Image gift_image = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getGiftImageFieldBuilder() { + if (giftImageBuilder_ == null) { + giftImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getGiftImage(), + getParentForChildren(), + isClean()); + giftImage_ = null; + } + return giftImageBuilder_; + } + + private long agreeMsgId_ ; + /** + * uint64 agree_msg_id = 11; + * @return The agreeMsgId. + */ + @java.lang.Override + public long getAgreeMsgId() { + return agreeMsgId_; + } + /** + * uint64 agree_msg_id = 11; + * @param value The agreeMsgId to set. + * @return This builder for chaining. + */ + public Builder setAgreeMsgId(long value) { + + agreeMsgId_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint64 agree_msg_id = 11; + * @return This builder for chaining. + */ + public Builder clearAgreeMsgId() { + bitField0_ = (bitField0_ & ~0x00000100); + agreeMsgId_ = 0L; + onChanged(); + return this; + } + + private int priorityLevel_ ; + /** + * uint32 priority_level = 12; + * @return The priorityLevel. + */ + @java.lang.Override + public int getPriorityLevel() { + return priorityLevel_; + } + /** + * uint32 priority_level = 12; + * @param value The priorityLevel to set. + * @return This builder for chaining. + */ + public Builder setPriorityLevel(int value) { + + priorityLevel_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * uint32 priority_level = 12; + * @return This builder for chaining. + */ + public Builder clearPriorityLevel() { + bitField0_ = (bitField0_ & ~0x00000200); + priorityLevel_ = 0; + onChanged(); + return this; + } + + private long eventTime_ ; + /** + *
+     * LandscapeAreaCommon landscape_area_common = 13;
+     * 
+ * + * uint64 event_time = 15; + * @return The eventTime. + */ + @java.lang.Override + public long getEventTime() { + return eventTime_; + } + /** + *
+     * LandscapeAreaCommon landscape_area_common = 13;
+     * 
+ * + * uint64 event_time = 15; + * @param value The eventTime to set. + * @return This builder for chaining. + */ + public Builder setEventTime(long value) { + + eventTime_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + *
+     * LandscapeAreaCommon landscape_area_common = 13;
+     * 
+ * + * uint64 event_time = 15; + * @return This builder for chaining. + */ + public Builder clearEventTime() { + bitField0_ = (bitField0_ & ~0x00000400); + eventTime_ = 0L; + onChanged(); + return this; + } + + private boolean sendReview_ ; + /** + * bool send_review = 16; + * @return The sendReview. + */ + @java.lang.Override + public boolean getSendReview() { + return sendReview_; + } + /** + * bool send_review = 16; + * @param value The sendReview to set. + * @return This builder for chaining. + */ + public Builder setSendReview(boolean value) { + + sendReview_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool send_review = 16; + * @return This builder for chaining. + */ + public Builder clearSendReview() { + bitField0_ = (bitField0_ & ~0x00000800); + sendReview_ = false; + onChanged(); + return this; + } + + private boolean fromIntercom_ ; + /** + * bool from_intercom = 17; + * @return The fromIntercom. + */ + @java.lang.Override + public boolean getFromIntercom() { + return fromIntercom_; + } + /** + * bool from_intercom = 17; + * @param value The fromIntercom to set. + * @return This builder for chaining. + */ + public Builder setFromIntercom(boolean value) { + + fromIntercom_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * bool from_intercom = 17; + * @return This builder for chaining. + */ + public Builder clearFromIntercom() { + bitField0_ = (bitField0_ & ~0x00001000); + fromIntercom_ = false; + onChanged(); + return this; + } + + private boolean intercomHideUserCard_ ; + /** + * bool intercom_hide_user_card = 18; + * @return The intercomHideUserCard. + */ + @java.lang.Override + public boolean getIntercomHideUserCard() { + return intercomHideUserCard_; + } + /** + * bool intercom_hide_user_card = 18; + * @param value The intercomHideUserCard to set. + * @return This builder for chaining. + */ + public Builder setIntercomHideUserCard(boolean value) { + + intercomHideUserCard_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * bool intercom_hide_user_card = 18; + * @return This builder for chaining. + */ + public Builder clearIntercomHideUserCard() { + bitField0_ = (bitField0_ & ~0x00002000); + intercomHideUserCard_ = false; + onChanged(); + return this; + } + + private java.lang.Object chatBy_ = ""; + /** + *
+     * repeated string chatTagsList = 19;
+     * 
+ * + * string chat_by = 20; + * @return The chatBy. + */ + public java.lang.String getChatBy() { + java.lang.Object ref = chatBy_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + chatBy_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * repeated string chatTagsList = 19;
+     * 
+ * + * string chat_by = 20; + * @return The bytes for chatBy. + */ + public com.google.protobuf.ByteString + getChatByBytes() { + java.lang.Object ref = chatBy_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + chatBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * repeated string chatTagsList = 19;
+     * 
+ * + * string chat_by = 20; + * @param value The chatBy to set. + * @return This builder for chaining. + */ + public Builder setChatBy( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + chatBy_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + *
+     * repeated string chatTagsList = 19;
+     * 
+ * + * string chat_by = 20; + * @return This builder for chaining. + */ + public Builder clearChatBy() { + chatBy_ = getDefaultInstance().getChatBy(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + /** + *
+     * repeated string chatTagsList = 19;
+     * 
+ * + * string chat_by = 20; + * @param value The bytes for chatBy to set. + * @return This builder for chaining. + */ + public Builder setChatByBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + chatBy_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private int individualChatPriority_ ; + /** + *
+     * Text rtf_content = 22 ;
+     * 
+ * + * uint32 individual_chat_priority = 21; + * @return The individualChatPriority. + */ + @java.lang.Override + public int getIndividualChatPriority() { + return individualChatPriority_; + } + /** + *
+     * Text rtf_content = 22 ;
+     * 
+ * + * uint32 individual_chat_priority = 21; + * @param value The individualChatPriority to set. + * @return This builder for chaining. + */ + public Builder setIndividualChatPriority(int value) { + + individualChatPriority_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + *
+     * Text rtf_content = 22 ;
+     * 
+ * + * uint32 individual_chat_priority = 21; + * @return This builder for chaining. + */ + public Builder clearIndividualChatPriority() { + bitField0_ = (bitField0_ & ~0x00008000); + individualChatPriority_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_webcast_chat_message_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java new file mode 100644 index 00000000..961938ed --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_chat_message_msgOrBuilder.java @@ -0,0 +1,220 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_chat_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_webcast_chat_message_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_chat_message_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + boolean hasCommon(); + /** + * .Common common = 1; + * @return The common. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); + /** + * .Common common = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); + + /** + * .User user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + * string content = 3; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 3; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * bool visible_to_sender = 4; + * @return The visibleToSender. + */ + boolean getVisibleToSender(); + + /** + * .Image background_image = 5; + * @return Whether the backgroundImage field is set. + */ + boolean hasBackgroundImage(); + /** + * .Image background_image = 5; + * @return The backgroundImage. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage(); + /** + * .Image background_image = 5; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder(); + + /** + * string full_screen_text_color = 6; + * @return The fullScreenTextColor. + */ + java.lang.String getFullScreenTextColor(); + /** + * string full_screen_text_color = 6; + * @return The bytes for fullScreenTextColor. + */ + com.google.protobuf.ByteString + getFullScreenTextColorBytes(); + + /** + * .Image background_image_v2 = 7; + * @return Whether the backgroundImageV2 field is set. + */ + boolean hasBackgroundImageV2(); + /** + * .Image background_image_v2 = 7; + * @return The backgroundImageV2. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2(); + /** + * .Image background_image_v2 = 7; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder(); + + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + * @return Whether the giftImage field is set. + */ + boolean hasGiftImage(); + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + * @return The giftImage. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftImage(); + /** + *
+   * PublicAreaCommon public_area_common = 9;
+   * 
+ * + * .Image gift_image = 10; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftImageOrBuilder(); + + /** + * uint64 agree_msg_id = 11; + * @return The agreeMsgId. + */ + long getAgreeMsgId(); + + /** + * uint32 priority_level = 12; + * @return The priorityLevel. + */ + int getPriorityLevel(); + + /** + *
+   * LandscapeAreaCommon landscape_area_common = 13;
+   * 
+ * + * uint64 event_time = 15; + * @return The eventTime. + */ + long getEventTime(); + + /** + * bool send_review = 16; + * @return The sendReview. + */ + boolean getSendReview(); + + /** + * bool from_intercom = 17; + * @return The fromIntercom. + */ + boolean getFromIntercom(); + + /** + * bool intercom_hide_user_card = 18; + * @return The intercomHideUserCard. + */ + boolean getIntercomHideUserCard(); + + /** + *
+   * repeated string chatTagsList = 19;
+   * 
+ * + * string chat_by = 20; + * @return The chatBy. + */ + java.lang.String getChatBy(); + /** + *
+   * repeated string chatTagsList = 19;
+   * 
+ * + * string chat_by = 20; + * @return The bytes for chatBy. + */ + com.google.protobuf.ByteString + getChatByBytes(); + + /** + *
+   * Text rtf_content = 22 ;
+   * 
+ * + * uint32 individual_chat_priority = 21; + * @return The individualChatPriority. + */ + int getIndividualChatPriority(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java new file mode 100644 index 00000000..d4098dd6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msg.java @@ -0,0 +1,3963 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_gift_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg} + */ +public final class douyin_webcast_gift_message_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) + douyin_webcast_gift_message_msgOrBuilder { + private static final long serialVersionUID = 0L; + // Use douyin_webcast_gift_message_msg.newBuilder() to construct. + private douyin_webcast_gift_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_webcast_gift_message_msg() { + logId_ = ""; + interactGiftInfo_ = ""; + diyItemInfo_ = ""; + minAssetSetList_ = emptyLongList(); + toUserIdsList_ = emptyLongList(); + traceId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_webcast_gift_message_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.Builder.class); + } + + public static final int COMMON_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + @java.lang.Override + public boolean hasCommon() { + return common_ != null; + } + /** + * .Common common = 1; + * @return The common. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + /** + * .Common common = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + + public static final int LONG_GIFT_ID_FIELD_NUMBER = 2; + private long longGiftId_ = 0L; + /** + * uint64 long_gift_id = 2; + * @return The longGiftId. + */ + @java.lang.Override + public long getLongGiftId() { + return longGiftId_; + } + + public static final int FAN_TICKET_COUNT_FIELD_NUMBER = 3; + private long fanTicketCount_ = 0L; + /** + * uint64 fan_ticket_count = 3; + * @return The fanTicketCount. + */ + @java.lang.Override + public long getFanTicketCount() { + return fanTicketCount_; + } + + public static final int GROUP_COUNT_FIELD_NUMBER = 4; + private long groupCount_ = 0L; + /** + * uint64 group_count = 4; + * @return The groupCount. + */ + @java.lang.Override + public long getGroupCount() { + return groupCount_; + } + + public static final int REPEAT_COUNT_FIELD_NUMBER = 5; + private long repeatCount_ = 0L; + /** + * uint64 repeat_count = 5; + * @return The repeatCount. + */ + @java.lang.Override + public long getRepeatCount() { + return repeatCount_; + } + + public static final int COMBO_COUNT_FIELD_NUMBER = 6; + private long comboCount_ = 0L; + /** + * uint64 combo_count = 6; + * @return The comboCount. + */ + @java.lang.Override + public long getComboCount() { + return comboCount_; + } + + public static final int USER_FIELD_NUMBER = 7; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 7; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 7; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int TO_USER_FIELD_NUMBER = 8; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User toUser_; + /** + * .User to_user = 8; + * @return Whether the toUser field is set. + */ + @java.lang.Override + public boolean hasToUser() { + return toUser_ != null; + } + /** + * .User to_user = 8; + * @return The toUser. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser() { + return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; + } + /** + * .User to_user = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder() { + return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; + } + + public static final int REPEAT_END_FIELD_NUMBER = 9; + private int repeatEnd_ = 0; + /** + * uint32 repeat_end = 9; + * @return The repeatEnd. + */ + @java.lang.Override + public int getRepeatEnd() { + return repeatEnd_; + } + + public static final int TEXT_EFFECT_FIELD_NUMBER = 10; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect textEffect_; + /** + * .TextEffect text_effect = 10; + * @return Whether the textEffect field is set. + */ + @java.lang.Override + public boolean hasTextEffect() { + return textEffect_ != null; + } + /** + * .TextEffect text_effect = 10; + * @return The textEffect. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect() { + return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; + } + /** + * .TextEffect text_effect = 10; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder() { + return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; + } + + public static final int GROUP_ID_FIELD_NUMBER = 11; + private long groupId_ = 0L; + /** + * uint64 group_id = 11; + * @return The groupId. + */ + @java.lang.Override + public long getGroupId() { + return groupId_; + } + + public static final int INCOME_TASKGIFTS_FIELD_NUMBER = 12; + private long incomeTaskgifts_ = 0L; + /** + * uint64 income_taskgifts = 12; + * @return The incomeTaskgifts. + */ + @java.lang.Override + public long getIncomeTaskgifts() { + return incomeTaskgifts_; + } + + public static final int ROOM_FAN_TICKET_COUNT_FIELD_NUMBER = 13; + private long roomFanTicketCount_ = 0L; + /** + * uint64 room_fan_ticket_count = 13; + * @return The roomFanTicketCount. + */ + @java.lang.Override + public long getRoomFanTicketCount() { + return roomFanTicketCount_; + } + + public static final int PRIORITY_FIELD_NUMBER = 14; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority priority_; + /** + * .GiftIMPriority priority = 14; + * @return Whether the priority field is set. + */ + @java.lang.Override + public boolean hasPriority() { + return priority_ != null; + } + /** + * .GiftIMPriority priority = 14; + * @return The priority. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority() { + return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; + } + /** + * .GiftIMPriority priority = 14; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder() { + return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; + } + + public static final int GIFT_FIELD_NUMBER = 15; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct gift_; + /** + * .GiftStruct gift = 15; + * @return Whether the gift field is set. + */ + @java.lang.Override + public boolean hasGift() { + return gift_ != null; + } + /** + * .GiftStruct gift = 15; + * @return The gift. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift() { + return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; + } + /** + * .GiftStruct gift = 15; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder() { + return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; + } + + public static final int LOG_ID_FIELD_NUMBER = 16; + @SuppressWarnings("serial") + private volatile java.lang.Object logId_ = ""; + /** + * string log_id = 16; + * @return The logId. + */ + @java.lang.Override + public java.lang.String getLogId() { + java.lang.Object ref = logId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + logId_ = s; + return s; + } + } + /** + * string log_id = 16; + * @return The bytes for logId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLogIdBytes() { + java.lang.Object ref = logId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + logId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEND_TYPE_FIELD_NUMBER = 17; + private long sendType_ = 0L; + /** + * uint64 send_type = 17; + * @return The sendType. + */ + @java.lang.Override + public long getSendType() { + return sendType_; + } + + public static final int PUBLIC_AREA_COMMON_FIELD_NUMBER = 18; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon publicAreaCommon_; + /** + * .PublicAreaCommon public_area_common = 18; + * @return Whether the publicAreaCommon field is set. + */ + @java.lang.Override + public boolean hasPublicAreaCommon() { + return publicAreaCommon_ != null; + } + /** + * .PublicAreaCommon public_area_common = 18; + * @return The publicAreaCommon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon() { + return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder() { + return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; + } + + public static final int TRAY_DISPLAY_TEXT_FIELD_NUMBER = 19; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text trayDisplayText_; + /** + * .Text tray_display_text = 19; + * @return Whether the trayDisplayText field is set. + */ + @java.lang.Override + public boolean hasTrayDisplayText() { + return trayDisplayText_ != null; + } + /** + * .Text tray_display_text = 19; + * @return The trayDisplayText. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText() { + return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; + } + /** + * .Text tray_display_text = 19; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder() { + return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; + } + + public static final int BANNED_DISPLAY_EFFECTS_FIELD_NUMBER = 20; + private long bannedDisplayEffects_ = 0L; + /** + * uint64 banned_display_effects = 20; + * @return The bannedDisplayEffects. + */ + @java.lang.Override + public long getBannedDisplayEffects() { + return bannedDisplayEffects_; + } + + public static final int DISPLAY_FOR_SELF_FIELD_NUMBER = 25; + private boolean displayForSelf_ = false; + /** + *
+   * GiftTrayInfo trayInfo = 21;
+   * AssetEffectMixInfo assetEffectMixInfo = 22;
+   * 
+ * + * bool display_for_self = 25; + * @return The displayForSelf. + */ + @java.lang.Override + public boolean getDisplayForSelf() { + return displayForSelf_; + } + + public static final int INTERACT_GIFT_INFO_FIELD_NUMBER = 26; + @SuppressWarnings("serial") + private volatile java.lang.Object interactGiftInfo_ = ""; + /** + * string interact_gift_info = 26; + * @return The interactGiftInfo. + */ + @java.lang.Override + public java.lang.String getInteractGiftInfo() { + java.lang.Object ref = interactGiftInfo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + interactGiftInfo_ = s; + return s; + } + } + /** + * string interact_gift_info = 26; + * @return The bytes for interactGiftInfo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getInteractGiftInfoBytes() { + java.lang.Object ref = interactGiftInfo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + interactGiftInfo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DIY_ITEM_INFO_FIELD_NUMBER = 27; + @SuppressWarnings("serial") + private volatile java.lang.Object diyItemInfo_ = ""; + /** + * string diy_item_info = 27; + * @return The diyItemInfo. + */ + @java.lang.Override + public java.lang.String getDiyItemInfo() { + java.lang.Object ref = diyItemInfo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + diyItemInfo_ = s; + return s; + } + } + /** + * string diy_item_info = 27; + * @return The bytes for diyItemInfo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDiyItemInfoBytes() { + java.lang.Object ref = diyItemInfo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + diyItemInfo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MIN_ASSET_SET_LIST_FIELD_NUMBER = 28; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList minAssetSetList_; + /** + * repeated uint64 min_asset_set_list = 28; + * @return A list containing the minAssetSetList. + */ + @java.lang.Override + public java.util.List + getMinAssetSetListList() { + return minAssetSetList_; + } + /** + * repeated uint64 min_asset_set_list = 28; + * @return The count of minAssetSetList. + */ + public int getMinAssetSetListCount() { + return minAssetSetList_.size(); + } + /** + * repeated uint64 min_asset_set_list = 28; + * @param index The index of the element to return. + * @return The minAssetSetList at the given index. + */ + public long getMinAssetSetList(int index) { + return minAssetSetList_.getLong(index); + } + private int minAssetSetListMemoizedSerializedSize = -1; + + public static final int TOTAL_COUNT_FIELD_NUMBER = 29; + private long totalCount_ = 0L; + /** + * uint64 total_count = 29; + * @return The totalCount. + */ + @java.lang.Override + public long getTotalCount() { + return totalCount_; + } + + public static final int CLIENT_GIFT_SOURCE_FIELD_NUMBER = 30; + private int clientGiftSource_ = 0; + /** + * uint32 client_gift_source = 30; + * @return The clientGiftSource. + */ + @java.lang.Override + public int getClientGiftSource() { + return clientGiftSource_; + } + + public static final int TO_USER_IDS_LIST_FIELD_NUMBER = 32; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList toUserIdsList_; + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return A list containing the toUserIdsList. + */ + @java.lang.Override + public java.util.List + getToUserIdsListList() { + return toUserIdsList_; + } + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return The count of toUserIdsList. + */ + public int getToUserIdsListCount() { + return toUserIdsList_.size(); + } + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param index The index of the element to return. + * @return The toUserIdsList at the given index. + */ + public long getToUserIdsList(int index) { + return toUserIdsList_.getLong(index); + } + private int toUserIdsListMemoizedSerializedSize = -1; + + public static final int SEND_TIMET_FIELD_NUMBER = 33; + private long sendTimet_ = 0L; + /** + * uint64 send_timet = 33; + * @return The sendTimet. + */ + @java.lang.Override + public long getSendTimet() { + return sendTimet_; + } + + public static final int FORCE_DISPLAY_EFFECTST_FIELD_NUMBER = 34; + private long forceDisplayEffectst_ = 0L; + /** + * uint64 force_display_effectst = 34; + * @return The forceDisplayEffectst. + */ + @java.lang.Override + public long getForceDisplayEffectst() { + return forceDisplayEffectst_; + } + + public static final int TRACE_ID_FIELD_NUMBER = 35; + @SuppressWarnings("serial") + private volatile java.lang.Object traceId_ = ""; + /** + * string trace_id = 35; + * @return The traceId. + */ + @java.lang.Override + public java.lang.String getTraceId() { + java.lang.Object ref = traceId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + traceId_ = s; + return s; + } + } + /** + * string trace_id = 35; + * @return The bytes for traceId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTraceIdBytes() { + java.lang.Object ref = traceId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + traceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EFFECT_DISPLAY_TS_FIELD_NUMBER = 36; + private long effectDisplayTs_ = 0L; + /** + * uint64 effect_display_ts = 36; + * @return The effectDisplayTs. + */ + @java.lang.Override + public long getEffectDisplayTs() { + return effectDisplayTs_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (common_ != null) { + output.writeMessage(1, getCommon()); + } + if (longGiftId_ != 0L) { + output.writeUInt64(2, longGiftId_); + } + if (fanTicketCount_ != 0L) { + output.writeUInt64(3, fanTicketCount_); + } + if (groupCount_ != 0L) { + output.writeUInt64(4, groupCount_); + } + if (repeatCount_ != 0L) { + output.writeUInt64(5, repeatCount_); + } + if (comboCount_ != 0L) { + output.writeUInt64(6, comboCount_); + } + if (user_ != null) { + output.writeMessage(7, getUser()); + } + if (toUser_ != null) { + output.writeMessage(8, getToUser()); + } + if (repeatEnd_ != 0) { + output.writeUInt32(9, repeatEnd_); + } + if (textEffect_ != null) { + output.writeMessage(10, getTextEffect()); + } + if (groupId_ != 0L) { + output.writeUInt64(11, groupId_); + } + if (incomeTaskgifts_ != 0L) { + output.writeUInt64(12, incomeTaskgifts_); + } + if (roomFanTicketCount_ != 0L) { + output.writeUInt64(13, roomFanTicketCount_); + } + if (priority_ != null) { + output.writeMessage(14, getPriority()); + } + if (gift_ != null) { + output.writeMessage(15, getGift()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, logId_); + } + if (sendType_ != 0L) { + output.writeUInt64(17, sendType_); + } + if (publicAreaCommon_ != null) { + output.writeMessage(18, getPublicAreaCommon()); + } + if (trayDisplayText_ != null) { + output.writeMessage(19, getTrayDisplayText()); + } + if (bannedDisplayEffects_ != 0L) { + output.writeUInt64(20, bannedDisplayEffects_); + } + if (displayForSelf_ != false) { + output.writeBool(25, displayForSelf_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(interactGiftInfo_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 26, interactGiftInfo_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diyItemInfo_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 27, diyItemInfo_); + } + if (getMinAssetSetListList().size() > 0) { + output.writeUInt32NoTag(226); + output.writeUInt32NoTag(minAssetSetListMemoizedSerializedSize); + } + for (int i = 0; i < minAssetSetList_.size(); i++) { + output.writeUInt64NoTag(minAssetSetList_.getLong(i)); + } + if (totalCount_ != 0L) { + output.writeUInt64(29, totalCount_); + } + if (clientGiftSource_ != 0) { + output.writeUInt32(30, clientGiftSource_); + } + if (getToUserIdsListList().size() > 0) { + output.writeUInt32NoTag(258); + output.writeUInt32NoTag(toUserIdsListMemoizedSerializedSize); + } + for (int i = 0; i < toUserIdsList_.size(); i++) { + output.writeUInt64NoTag(toUserIdsList_.getLong(i)); + } + if (sendTimet_ != 0L) { + output.writeUInt64(33, sendTimet_); + } + if (forceDisplayEffectst_ != 0L) { + output.writeUInt64(34, forceDisplayEffectst_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traceId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 35, traceId_); + } + if (effectDisplayTs_ != 0L) { + output.writeUInt64(36, effectDisplayTs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (common_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getCommon()); + } + if (longGiftId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, longGiftId_); + } + if (fanTicketCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, fanTicketCount_); + } + if (groupCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, groupCount_); + } + if (repeatCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, repeatCount_); + } + if (comboCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(6, comboCount_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getUser()); + } + if (toUser_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, getToUser()); + } + if (repeatEnd_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(9, repeatEnd_); + } + if (textEffect_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, getTextEffect()); + } + if (groupId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(11, groupId_); + } + if (incomeTaskgifts_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(12, incomeTaskgifts_); + } + if (roomFanTicketCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(13, roomFanTicketCount_); + } + if (priority_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, getPriority()); + } + if (gift_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, getGift()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, logId_); + } + if (sendType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(17, sendType_); + } + if (publicAreaCommon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, getPublicAreaCommon()); + } + if (trayDisplayText_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(19, getTrayDisplayText()); + } + if (bannedDisplayEffects_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(20, bannedDisplayEffects_); + } + if (displayForSelf_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(25, displayForSelf_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(interactGiftInfo_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, interactGiftInfo_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(diyItemInfo_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(27, diyItemInfo_); + } + { + int dataSize = 0; + for (int i = 0; i < minAssetSetList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt64SizeNoTag(minAssetSetList_.getLong(i)); + } + size += dataSize; + if (!getMinAssetSetListList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + minAssetSetListMemoizedSerializedSize = dataSize; + } + if (totalCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(29, totalCount_); + } + if (clientGiftSource_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(30, clientGiftSource_); + } + { + int dataSize = 0; + for (int i = 0; i < toUserIdsList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt64SizeNoTag(toUserIdsList_.getLong(i)); + } + size += dataSize; + if (!getToUserIdsListList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + toUserIdsListMemoizedSerializedSize = dataSize; + } + if (sendTimet_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(33, sendTimet_); + } + if (forceDisplayEffectst_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(34, forceDisplayEffectst_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traceId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(35, traceId_); + } + if (effectDisplayTs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(36, effectDisplayTs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) obj; + + if (hasCommon() != other.hasCommon()) return false; + if (hasCommon()) { + if (!getCommon() + .equals(other.getCommon())) return false; + } + if (getLongGiftId() + != other.getLongGiftId()) return false; + if (getFanTicketCount() + != other.getFanTicketCount()) return false; + if (getGroupCount() + != other.getGroupCount()) return false; + if (getRepeatCount() + != other.getRepeatCount()) return false; + if (getComboCount() + != other.getComboCount()) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (hasToUser() != other.hasToUser()) return false; + if (hasToUser()) { + if (!getToUser() + .equals(other.getToUser())) return false; + } + if (getRepeatEnd() + != other.getRepeatEnd()) return false; + if (hasTextEffect() != other.hasTextEffect()) return false; + if (hasTextEffect()) { + if (!getTextEffect() + .equals(other.getTextEffect())) return false; + } + if (getGroupId() + != other.getGroupId()) return false; + if (getIncomeTaskgifts() + != other.getIncomeTaskgifts()) return false; + if (getRoomFanTicketCount() + != other.getRoomFanTicketCount()) return false; + if (hasPriority() != other.hasPriority()) return false; + if (hasPriority()) { + if (!getPriority() + .equals(other.getPriority())) return false; + } + if (hasGift() != other.hasGift()) return false; + if (hasGift()) { + if (!getGift() + .equals(other.getGift())) return false; + } + if (!getLogId() + .equals(other.getLogId())) return false; + if (getSendType() + != other.getSendType()) return false; + if (hasPublicAreaCommon() != other.hasPublicAreaCommon()) return false; + if (hasPublicAreaCommon()) { + if (!getPublicAreaCommon() + .equals(other.getPublicAreaCommon())) return false; + } + if (hasTrayDisplayText() != other.hasTrayDisplayText()) return false; + if (hasTrayDisplayText()) { + if (!getTrayDisplayText() + .equals(other.getTrayDisplayText())) return false; + } + if (getBannedDisplayEffects() + != other.getBannedDisplayEffects()) return false; + if (getDisplayForSelf() + != other.getDisplayForSelf()) return false; + if (!getInteractGiftInfo() + .equals(other.getInteractGiftInfo())) return false; + if (!getDiyItemInfo() + .equals(other.getDiyItemInfo())) return false; + if (!getMinAssetSetListList() + .equals(other.getMinAssetSetListList())) return false; + if (getTotalCount() + != other.getTotalCount()) return false; + if (getClientGiftSource() + != other.getClientGiftSource()) return false; + if (!getToUserIdsListList() + .equals(other.getToUserIdsListList())) return false; + if (getSendTimet() + != other.getSendTimet()) return false; + if (getForceDisplayEffectst() + != other.getForceDisplayEffectst()) return false; + if (!getTraceId() + .equals(other.getTraceId())) return false; + if (getEffectDisplayTs() + != other.getEffectDisplayTs()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCommon()) { + hash = (37 * hash) + COMMON_FIELD_NUMBER; + hash = (53 * hash) + getCommon().hashCode(); + } + hash = (37 * hash) + LONG_GIFT_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLongGiftId()); + hash = (37 * hash) + FAN_TICKET_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFanTicketCount()); + hash = (37 * hash) + GROUP_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGroupCount()); + hash = (37 * hash) + REPEAT_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRepeatCount()); + hash = (37 * hash) + COMBO_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getComboCount()); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + if (hasToUser()) { + hash = (37 * hash) + TO_USER_FIELD_NUMBER; + hash = (53 * hash) + getToUser().hashCode(); + } + hash = (37 * hash) + REPEAT_END_FIELD_NUMBER; + hash = (53 * hash) + getRepeatEnd(); + if (hasTextEffect()) { + hash = (37 * hash) + TEXT_EFFECT_FIELD_NUMBER; + hash = (53 * hash) + getTextEffect().hashCode(); + } + hash = (37 * hash) + GROUP_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGroupId()); + hash = (37 * hash) + INCOME_TASKGIFTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getIncomeTaskgifts()); + hash = (37 * hash) + ROOM_FAN_TICKET_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRoomFanTicketCount()); + if (hasPriority()) { + hash = (37 * hash) + PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + getPriority().hashCode(); + } + if (hasGift()) { + hash = (37 * hash) + GIFT_FIELD_NUMBER; + hash = (53 * hash) + getGift().hashCode(); + } + hash = (37 * hash) + LOG_ID_FIELD_NUMBER; + hash = (53 * hash) + getLogId().hashCode(); + hash = (37 * hash) + SEND_TYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSendType()); + if (hasPublicAreaCommon()) { + hash = (37 * hash) + PUBLIC_AREA_COMMON_FIELD_NUMBER; + hash = (53 * hash) + getPublicAreaCommon().hashCode(); + } + if (hasTrayDisplayText()) { + hash = (37 * hash) + TRAY_DISPLAY_TEXT_FIELD_NUMBER; + hash = (53 * hash) + getTrayDisplayText().hashCode(); + } + hash = (37 * hash) + BANNED_DISPLAY_EFFECTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getBannedDisplayEffects()); + hash = (37 * hash) + DISPLAY_FOR_SELF_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDisplayForSelf()); + hash = (37 * hash) + INTERACT_GIFT_INFO_FIELD_NUMBER; + hash = (53 * hash) + getInteractGiftInfo().hashCode(); + hash = (37 * hash) + DIY_ITEM_INFO_FIELD_NUMBER; + hash = (53 * hash) + getDiyItemInfo().hashCode(); + if (getMinAssetSetListCount() > 0) { + hash = (37 * hash) + MIN_ASSET_SET_LIST_FIELD_NUMBER; + hash = (53 * hash) + getMinAssetSetListList().hashCode(); + } + hash = (37 * hash) + TOTAL_COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTotalCount()); + hash = (37 * hash) + CLIENT_GIFT_SOURCE_FIELD_NUMBER; + hash = (53 * hash) + getClientGiftSource(); + if (getToUserIdsListCount() > 0) { + hash = (37 * hash) + TO_USER_IDS_LIST_FIELD_NUMBER; + hash = (53 * hash) + getToUserIdsListList().hashCode(); + } + hash = (37 * hash) + SEND_TIMET_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSendTimet()); + hash = (37 * hash) + FORCE_DISPLAY_EFFECTST_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getForceDisplayEffectst()); + hash = (37 * hash) + TRACE_ID_FIELD_NUMBER; + hash = (53 * hash) + getTraceId().hashCode(); + hash = (37 * hash) + EFFECT_DISPLAY_TS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEffectDisplayTs()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + longGiftId_ = 0L; + fanTicketCount_ = 0L; + groupCount_ = 0L; + repeatCount_ = 0L; + comboCount_ = 0L; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + toUser_ = null; + if (toUserBuilder_ != null) { + toUserBuilder_.dispose(); + toUserBuilder_ = null; + } + repeatEnd_ = 0; + textEffect_ = null; + if (textEffectBuilder_ != null) { + textEffectBuilder_.dispose(); + textEffectBuilder_ = null; + } + groupId_ = 0L; + incomeTaskgifts_ = 0L; + roomFanTicketCount_ = 0L; + priority_ = null; + if (priorityBuilder_ != null) { + priorityBuilder_.dispose(); + priorityBuilder_ = null; + } + gift_ = null; + if (giftBuilder_ != null) { + giftBuilder_.dispose(); + giftBuilder_ = null; + } + logId_ = ""; + sendType_ = 0L; + publicAreaCommon_ = null; + if (publicAreaCommonBuilder_ != null) { + publicAreaCommonBuilder_.dispose(); + publicAreaCommonBuilder_ = null; + } + trayDisplayText_ = null; + if (trayDisplayTextBuilder_ != null) { + trayDisplayTextBuilder_.dispose(); + trayDisplayTextBuilder_ = null; + } + bannedDisplayEffects_ = 0L; + displayForSelf_ = false; + interactGiftInfo_ = ""; + diyItemInfo_ = ""; + minAssetSetList_ = emptyLongList(); + totalCount_ = 0L; + clientGiftSource_ = 0; + toUserIdsList_ = emptyLongList(); + sendTimet_ = 0L; + forceDisplayEffectst_ = 0L; + traceId_ = ""; + effectDisplayTs_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_gift_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_gift_message_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result) { + if (((bitField0_ & 0x00800000) != 0)) { + minAssetSetList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00800000); + } + result.minAssetSetList_ = minAssetSetList_; + if (((bitField0_ & 0x04000000) != 0)) { + toUserIdsList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x04000000); + } + result.toUserIdsList_ = toUserIdsList_; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.common_ = commonBuilder_ == null + ? common_ + : commonBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.longGiftId_ = longGiftId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.fanTicketCount_ = fanTicketCount_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.groupCount_ = groupCount_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.repeatCount_ = repeatCount_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.comboCount_ = comboCount_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.toUser_ = toUserBuilder_ == null + ? toUser_ + : toUserBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.repeatEnd_ = repeatEnd_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.textEffect_ = textEffectBuilder_ == null + ? textEffect_ + : textEffectBuilder_.build(); + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.groupId_ = groupId_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.incomeTaskgifts_ = incomeTaskgifts_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.roomFanTicketCount_ = roomFanTicketCount_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.priority_ = priorityBuilder_ == null + ? priority_ + : priorityBuilder_.build(); + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.gift_ = giftBuilder_ == null + ? gift_ + : giftBuilder_.build(); + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.logId_ = logId_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.sendType_ = sendType_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.publicAreaCommon_ = publicAreaCommonBuilder_ == null + ? publicAreaCommon_ + : publicAreaCommonBuilder_.build(); + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.trayDisplayText_ = trayDisplayTextBuilder_ == null + ? trayDisplayText_ + : trayDisplayTextBuilder_.build(); + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.bannedDisplayEffects_ = bannedDisplayEffects_; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.displayForSelf_ = displayForSelf_; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.interactGiftInfo_ = interactGiftInfo_; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.diyItemInfo_ = diyItemInfo_; + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.totalCount_ = totalCount_; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.clientGiftSource_ = clientGiftSource_; + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.sendTimet_ = sendTimet_; + } + if (((from_bitField0_ & 0x10000000) != 0)) { + result.forceDisplayEffectst_ = forceDisplayEffectst_; + } + if (((from_bitField0_ & 0x20000000) != 0)) { + result.traceId_ = traceId_; + } + if (((from_bitField0_ & 0x40000000) != 0)) { + result.effectDisplayTs_ = effectDisplayTs_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg.getDefaultInstance()) return this; + if (other.hasCommon()) { + mergeCommon(other.getCommon()); + } + if (other.getLongGiftId() != 0L) { + setLongGiftId(other.getLongGiftId()); + } + if (other.getFanTicketCount() != 0L) { + setFanTicketCount(other.getFanTicketCount()); + } + if (other.getGroupCount() != 0L) { + setGroupCount(other.getGroupCount()); + } + if (other.getRepeatCount() != 0L) { + setRepeatCount(other.getRepeatCount()); + } + if (other.getComboCount() != 0L) { + setComboCount(other.getComboCount()); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.hasToUser()) { + mergeToUser(other.getToUser()); + } + if (other.getRepeatEnd() != 0) { + setRepeatEnd(other.getRepeatEnd()); + } + if (other.hasTextEffect()) { + mergeTextEffect(other.getTextEffect()); + } + if (other.getGroupId() != 0L) { + setGroupId(other.getGroupId()); + } + if (other.getIncomeTaskgifts() != 0L) { + setIncomeTaskgifts(other.getIncomeTaskgifts()); + } + if (other.getRoomFanTicketCount() != 0L) { + setRoomFanTicketCount(other.getRoomFanTicketCount()); + } + if (other.hasPriority()) { + mergePriority(other.getPriority()); + } + if (other.hasGift()) { + mergeGift(other.getGift()); + } + if (!other.getLogId().isEmpty()) { + logId_ = other.logId_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (other.getSendType() != 0L) { + setSendType(other.getSendType()); + } + if (other.hasPublicAreaCommon()) { + mergePublicAreaCommon(other.getPublicAreaCommon()); + } + if (other.hasTrayDisplayText()) { + mergeTrayDisplayText(other.getTrayDisplayText()); + } + if (other.getBannedDisplayEffects() != 0L) { + setBannedDisplayEffects(other.getBannedDisplayEffects()); + } + if (other.getDisplayForSelf() != false) { + setDisplayForSelf(other.getDisplayForSelf()); + } + if (!other.getInteractGiftInfo().isEmpty()) { + interactGiftInfo_ = other.interactGiftInfo_; + bitField0_ |= 0x00200000; + onChanged(); + } + if (!other.getDiyItemInfo().isEmpty()) { + diyItemInfo_ = other.diyItemInfo_; + bitField0_ |= 0x00400000; + onChanged(); + } + if (!other.minAssetSetList_.isEmpty()) { + if (minAssetSetList_.isEmpty()) { + minAssetSetList_ = other.minAssetSetList_; + bitField0_ = (bitField0_ & ~0x00800000); + } else { + ensureMinAssetSetListIsMutable(); + minAssetSetList_.addAll(other.minAssetSetList_); + } + onChanged(); + } + if (other.getTotalCount() != 0L) { + setTotalCount(other.getTotalCount()); + } + if (other.getClientGiftSource() != 0) { + setClientGiftSource(other.getClientGiftSource()); + } + if (!other.toUserIdsList_.isEmpty()) { + if (toUserIdsList_.isEmpty()) { + toUserIdsList_ = other.toUserIdsList_; + bitField0_ = (bitField0_ & ~0x04000000); + } else { + ensureToUserIdsListIsMutable(); + toUserIdsList_.addAll(other.toUserIdsList_); + } + onChanged(); + } + if (other.getSendTimet() != 0L) { + setSendTimet(other.getSendTimet()); + } + if (other.getForceDisplayEffectst() != 0L) { + setForceDisplayEffectst(other.getForceDisplayEffectst()); + } + if (!other.getTraceId().isEmpty()) { + traceId_ = other.traceId_; + bitField0_ |= 0x20000000; + onChanged(); + } + if (other.getEffectDisplayTs() != 0L) { + setEffectDisplayTs(other.getEffectDisplayTs()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getCommonFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + longGiftId_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + fanTicketCount_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + groupCount_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + repeatCount_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + comboCount_ = input.readUInt64(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + input.readMessage( + getToUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 72: { + repeatEnd_ = input.readUInt32(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 82: { + input.readMessage( + getTextEffectFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 88: { + groupId_ = input.readUInt64(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 96: { + incomeTaskgifts_ = input.readUInt64(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 104: { + roomFanTicketCount_ = input.readUInt64(); + bitField0_ |= 0x00001000; + break; + } // case 104 + case 114: { + input.readMessage( + getPriorityFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: { + input.readMessage( + getGiftFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00004000; + break; + } // case 122 + case 130: { + logId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 136: { + sendType_ = input.readUInt64(); + bitField0_ |= 0x00010000; + break; + } // case 136 + case 146: { + input.readMessage( + getPublicAreaCommonFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00020000; + break; + } // case 146 + case 154: { + input.readMessage( + getTrayDisplayTextFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00040000; + break; + } // case 154 + case 160: { + bannedDisplayEffects_ = input.readUInt64(); + bitField0_ |= 0x00080000; + break; + } // case 160 + case 200: { + displayForSelf_ = input.readBool(); + bitField0_ |= 0x00100000; + break; + } // case 200 + case 210: { + interactGiftInfo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00200000; + break; + } // case 210 + case 218: { + diyItemInfo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00400000; + break; + } // case 218 + case 224: { + long v = input.readUInt64(); + ensureMinAssetSetListIsMutable(); + minAssetSetList_.addLong(v); + break; + } // case 224 + case 226: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureMinAssetSetListIsMutable(); + while (input.getBytesUntilLimit() > 0) { + minAssetSetList_.addLong(input.readUInt64()); + } + input.popLimit(limit); + break; + } // case 226 + case 232: { + totalCount_ = input.readUInt64(); + bitField0_ |= 0x01000000; + break; + } // case 232 + case 240: { + clientGiftSource_ = input.readUInt32(); + bitField0_ |= 0x02000000; + break; + } // case 240 + case 256: { + long v = input.readUInt64(); + ensureToUserIdsListIsMutable(); + toUserIdsList_.addLong(v); + break; + } // case 256 + case 258: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureToUserIdsListIsMutable(); + while (input.getBytesUntilLimit() > 0) { + toUserIdsList_.addLong(input.readUInt64()); + } + input.popLimit(limit); + break; + } // case 258 + case 264: { + sendTimet_ = input.readUInt64(); + bitField0_ |= 0x08000000; + break; + } // case 264 + case 272: { + forceDisplayEffectst_ = input.readUInt64(); + bitField0_ |= 0x10000000; + break; + } // case 272 + case 282: { + traceId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x20000000; + break; + } // case 282 + case 288: { + effectDisplayTs_ = input.readUInt64(); + bitField0_ |= 0x40000000; + break; + } // case 288 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + public boolean hasCommon() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Common common = 1; + * @return The common. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + if (commonBuilder_ == null) { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } else { + return commonBuilder_.getMessage(); + } + } + /** + * .Common common = 1; + */ + public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + common_ = value; + } else { + commonBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder setCommon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { + if (commonBuilder_ == null) { + common_ = builderForValue.build(); + } else { + commonBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + common_ != null && + common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { + getCommonBuilder().mergeFrom(value); + } else { + common_ = value; + } + } else { + commonBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder clearCommon() { + bitField0_ = (bitField0_ & ~0x00000001); + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getCommonFieldBuilder().getBuilder(); + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + if (commonBuilder_ != null) { + return commonBuilder_.getMessageOrBuilder(); + } else { + return common_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + } + /** + * .Common common = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> + getCommonFieldBuilder() { + if (commonBuilder_ == null) { + commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( + getCommon(), + getParentForChildren(), + isClean()); + common_ = null; + } + return commonBuilder_; + } + + private long longGiftId_ ; + /** + * uint64 long_gift_id = 2; + * @return The longGiftId. + */ + @java.lang.Override + public long getLongGiftId() { + return longGiftId_; + } + /** + * uint64 long_gift_id = 2; + * @param value The longGiftId to set. + * @return This builder for chaining. + */ + public Builder setLongGiftId(long value) { + + longGiftId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 long_gift_id = 2; + * @return This builder for chaining. + */ + public Builder clearLongGiftId() { + bitField0_ = (bitField0_ & ~0x00000002); + longGiftId_ = 0L; + onChanged(); + return this; + } + + private long fanTicketCount_ ; + /** + * uint64 fan_ticket_count = 3; + * @return The fanTicketCount. + */ + @java.lang.Override + public long getFanTicketCount() { + return fanTicketCount_; + } + /** + * uint64 fan_ticket_count = 3; + * @param value The fanTicketCount to set. + * @return This builder for chaining. + */ + public Builder setFanTicketCount(long value) { + + fanTicketCount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 fan_ticket_count = 3; + * @return This builder for chaining. + */ + public Builder clearFanTicketCount() { + bitField0_ = (bitField0_ & ~0x00000004); + fanTicketCount_ = 0L; + onChanged(); + return this; + } + + private long groupCount_ ; + /** + * uint64 group_count = 4; + * @return The groupCount. + */ + @java.lang.Override + public long getGroupCount() { + return groupCount_; + } + /** + * uint64 group_count = 4; + * @param value The groupCount to set. + * @return This builder for chaining. + */ + public Builder setGroupCount(long value) { + + groupCount_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 group_count = 4; + * @return This builder for chaining. + */ + public Builder clearGroupCount() { + bitField0_ = (bitField0_ & ~0x00000008); + groupCount_ = 0L; + onChanged(); + return this; + } + + private long repeatCount_ ; + /** + * uint64 repeat_count = 5; + * @return The repeatCount. + */ + @java.lang.Override + public long getRepeatCount() { + return repeatCount_; + } + /** + * uint64 repeat_count = 5; + * @param value The repeatCount to set. + * @return This builder for chaining. + */ + public Builder setRepeatCount(long value) { + + repeatCount_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 repeat_count = 5; + * @return This builder for chaining. + */ + public Builder clearRepeatCount() { + bitField0_ = (bitField0_ & ~0x00000010); + repeatCount_ = 0L; + onChanged(); + return this; + } + + private long comboCount_ ; + /** + * uint64 combo_count = 6; + * @return The comboCount. + */ + @java.lang.Override + public long getComboCount() { + return comboCount_; + } + /** + * uint64 combo_count = 6; + * @param value The comboCount to set. + * @return This builder for chaining. + */ + public Builder setComboCount(long value) { + + comboCount_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint64 combo_count = 6; + * @return This builder for chaining. + */ + public Builder clearComboCount() { + bitField0_ = (bitField0_ & ~0x00000020); + comboCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 7; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .User user = 7; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 7; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .User user = 7; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .User user = 7; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .User user = 7; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000040); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User toUser_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> toUserBuilder_; + /** + * .User to_user = 8; + * @return Whether the toUser field is set. + */ + public boolean hasToUser() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + * .User to_user = 8; + * @return The toUser. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser() { + if (toUserBuilder_ == null) { + return toUser_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; + } else { + return toUserBuilder_.getMessage(); + } + } + /** + * .User to_user = 8; + */ + public Builder setToUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (toUserBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + toUser_ = value; + } else { + toUserBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .User to_user = 8; + */ + public Builder setToUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (toUserBuilder_ == null) { + toUser_ = builderForValue.build(); + } else { + toUserBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .User to_user = 8; + */ + public Builder mergeToUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (toUserBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + toUser_ != null && + toUser_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getToUserBuilder().mergeFrom(value); + } else { + toUser_ = value; + } + } else { + toUserBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .User to_user = 8; + */ + public Builder clearToUser() { + bitField0_ = (bitField0_ & ~0x00000080); + toUser_ = null; + if (toUserBuilder_ != null) { + toUserBuilder_.dispose(); + toUserBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User to_user = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getToUserBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getToUserFieldBuilder().getBuilder(); + } + /** + * .User to_user = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder() { + if (toUserBuilder_ != null) { + return toUserBuilder_.getMessageOrBuilder(); + } else { + return toUser_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : toUser_; + } + } + /** + * .User to_user = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getToUserFieldBuilder() { + if (toUserBuilder_ == null) { + toUserBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getToUser(), + getParentForChildren(), + isClean()); + toUser_ = null; + } + return toUserBuilder_; + } + + private int repeatEnd_ ; + /** + * uint32 repeat_end = 9; + * @return The repeatEnd. + */ + @java.lang.Override + public int getRepeatEnd() { + return repeatEnd_; + } + /** + * uint32 repeat_end = 9; + * @param value The repeatEnd to set. + * @return This builder for chaining. + */ + public Builder setRepeatEnd(int value) { + + repeatEnd_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint32 repeat_end = 9; + * @return This builder for chaining. + */ + public Builder clearRepeatEnd() { + bitField0_ = (bitField0_ & ~0x00000100); + repeatEnd_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect textEffect_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder> textEffectBuilder_; + /** + * .TextEffect text_effect = 10; + * @return Whether the textEffect field is set. + */ + public boolean hasTextEffect() { + return ((bitField0_ & 0x00000200) != 0); + } + /** + * .TextEffect text_effect = 10; + * @return The textEffect. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect() { + if (textEffectBuilder_ == null) { + return textEffect_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; + } else { + return textEffectBuilder_.getMessage(); + } + } + /** + * .TextEffect text_effect = 10; + */ + public Builder setTextEffect(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect value) { + if (textEffectBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + textEffect_ = value; + } else { + textEffectBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .TextEffect text_effect = 10; + */ + public Builder setTextEffect( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder builderForValue) { + if (textEffectBuilder_ == null) { + textEffect_ = builderForValue.build(); + } else { + textEffectBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .TextEffect text_effect = 10; + */ + public Builder mergeTextEffect(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect value) { + if (textEffectBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) && + textEffect_ != null && + textEffect_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance()) { + getTextEffectBuilder().mergeFrom(value); + } else { + textEffect_ = value; + } + } else { + textEffectBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .TextEffect text_effect = 10; + */ + public Builder clearTextEffect() { + bitField0_ = (bitField0_ & ~0x00000200); + textEffect_ = null; + if (textEffectBuilder_ != null) { + textEffectBuilder_.dispose(); + textEffectBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextEffect text_effect = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder getTextEffectBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getTextEffectFieldBuilder().getBuilder(); + } + /** + * .TextEffect text_effect = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder() { + if (textEffectBuilder_ != null) { + return textEffectBuilder_.getMessageOrBuilder(); + } else { + return textEffect_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance() : textEffect_; + } + } + /** + * .TextEffect text_effect = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder> + getTextEffectFieldBuilder() { + if (textEffectBuilder_ == null) { + textEffectBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder>( + getTextEffect(), + getParentForChildren(), + isClean()); + textEffect_ = null; + } + return textEffectBuilder_; + } + + private long groupId_ ; + /** + * uint64 group_id = 11; + * @return The groupId. + */ + @java.lang.Override + public long getGroupId() { + return groupId_; + } + /** + * uint64 group_id = 11; + * @param value The groupId to set. + * @return This builder for chaining. + */ + public Builder setGroupId(long value) { + + groupId_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * uint64 group_id = 11; + * @return This builder for chaining. + */ + public Builder clearGroupId() { + bitField0_ = (bitField0_ & ~0x00000400); + groupId_ = 0L; + onChanged(); + return this; + } + + private long incomeTaskgifts_ ; + /** + * uint64 income_taskgifts = 12; + * @return The incomeTaskgifts. + */ + @java.lang.Override + public long getIncomeTaskgifts() { + return incomeTaskgifts_; + } + /** + * uint64 income_taskgifts = 12; + * @param value The incomeTaskgifts to set. + * @return This builder for chaining. + */ + public Builder setIncomeTaskgifts(long value) { + + incomeTaskgifts_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * uint64 income_taskgifts = 12; + * @return This builder for chaining. + */ + public Builder clearIncomeTaskgifts() { + bitField0_ = (bitField0_ & ~0x00000800); + incomeTaskgifts_ = 0L; + onChanged(); + return this; + } + + private long roomFanTicketCount_ ; + /** + * uint64 room_fan_ticket_count = 13; + * @return The roomFanTicketCount. + */ + @java.lang.Override + public long getRoomFanTicketCount() { + return roomFanTicketCount_; + } + /** + * uint64 room_fan_ticket_count = 13; + * @param value The roomFanTicketCount to set. + * @return This builder for chaining. + */ + public Builder setRoomFanTicketCount(long value) { + + roomFanTicketCount_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * uint64 room_fan_ticket_count = 13; + * @return This builder for chaining. + */ + public Builder clearRoomFanTicketCount() { + bitField0_ = (bitField0_ & ~0x00001000); + roomFanTicketCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority priority_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder> priorityBuilder_; + /** + * .GiftIMPriority priority = 14; + * @return Whether the priority field is set. + */ + public boolean hasPriority() { + return ((bitField0_ & 0x00002000) != 0); + } + /** + * .GiftIMPriority priority = 14; + * @return The priority. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority() { + if (priorityBuilder_ == null) { + return priority_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; + } else { + return priorityBuilder_.getMessage(); + } + } + /** + * .GiftIMPriority priority = 14; + */ + public Builder setPriority(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority value) { + if (priorityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + priority_ = value; + } else { + priorityBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .GiftIMPriority priority = 14; + */ + public Builder setPriority( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder builderForValue) { + if (priorityBuilder_ == null) { + priority_ = builderForValue.build(); + } else { + priorityBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .GiftIMPriority priority = 14; + */ + public Builder mergePriority(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority value) { + if (priorityBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0) && + priority_ != null && + priority_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance()) { + getPriorityBuilder().mergeFrom(value); + } else { + priority_ = value; + } + } else { + priorityBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .GiftIMPriority priority = 14; + */ + public Builder clearPriority() { + bitField0_ = (bitField0_ & ~0x00002000); + priority_ = null; + if (priorityBuilder_ != null) { + priorityBuilder_.dispose(); + priorityBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .GiftIMPriority priority = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder getPriorityBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getPriorityFieldBuilder().getBuilder(); + } + /** + * .GiftIMPriority priority = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder() { + if (priorityBuilder_ != null) { + return priorityBuilder_.getMessageOrBuilder(); + } else { + return priority_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance() : priority_; + } + } + /** + * .GiftIMPriority priority = 14; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder> + getPriorityFieldBuilder() { + if (priorityBuilder_ == null) { + priorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder>( + getPriority(), + getParentForChildren(), + isClean()); + priority_ = null; + } + return priorityBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct gift_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder> giftBuilder_; + /** + * .GiftStruct gift = 15; + * @return Whether the gift field is set. + */ + public boolean hasGift() { + return ((bitField0_ & 0x00004000) != 0); + } + /** + * .GiftStruct gift = 15; + * @return The gift. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift() { + if (giftBuilder_ == null) { + return gift_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; + } else { + return giftBuilder_.getMessage(); + } + } + /** + * .GiftStruct gift = 15; + */ + public Builder setGift(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct value) { + if (giftBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + gift_ = value; + } else { + giftBuilder_.setMessage(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .GiftStruct gift = 15; + */ + public Builder setGift( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder builderForValue) { + if (giftBuilder_ == null) { + gift_ = builderForValue.build(); + } else { + giftBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .GiftStruct gift = 15; + */ + public Builder mergeGift(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct value) { + if (giftBuilder_ == null) { + if (((bitField0_ & 0x00004000) != 0) && + gift_ != null && + gift_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance()) { + getGiftBuilder().mergeFrom(value); + } else { + gift_ = value; + } + } else { + giftBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .GiftStruct gift = 15; + */ + public Builder clearGift() { + bitField0_ = (bitField0_ & ~0x00004000); + gift_ = null; + if (giftBuilder_ != null) { + giftBuilder_.dispose(); + giftBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .GiftStruct gift = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder getGiftBuilder() { + bitField0_ |= 0x00004000; + onChanged(); + return getGiftFieldBuilder().getBuilder(); + } + /** + * .GiftStruct gift = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder() { + if (giftBuilder_ != null) { + return giftBuilder_.getMessageOrBuilder(); + } else { + return gift_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance() : gift_; + } + } + /** + * .GiftStruct gift = 15; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder> + getGiftFieldBuilder() { + if (giftBuilder_ == null) { + giftBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder>( + getGift(), + getParentForChildren(), + isClean()); + gift_ = null; + } + return giftBuilder_; + } + + private java.lang.Object logId_ = ""; + /** + * string log_id = 16; + * @return The logId. + */ + public java.lang.String getLogId() { + java.lang.Object ref = logId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + logId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string log_id = 16; + * @return The bytes for logId. + */ + public com.google.protobuf.ByteString + getLogIdBytes() { + java.lang.Object ref = logId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + logId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string log_id = 16; + * @param value The logId to set. + * @return This builder for chaining. + */ + public Builder setLogId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + logId_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * string log_id = 16; + * @return This builder for chaining. + */ + public Builder clearLogId() { + logId_ = getDefaultInstance().getLogId(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + /** + * string log_id = 16; + * @param value The bytes for logId to set. + * @return This builder for chaining. + */ + public Builder setLogIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + logId_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private long sendType_ ; + /** + * uint64 send_type = 17; + * @return The sendType. + */ + @java.lang.Override + public long getSendType() { + return sendType_; + } + /** + * uint64 send_type = 17; + * @param value The sendType to set. + * @return This builder for chaining. + */ + public Builder setSendType(long value) { + + sendType_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * uint64 send_type = 17; + * @return This builder for chaining. + */ + public Builder clearSendType() { + bitField0_ = (bitField0_ & ~0x00010000); + sendType_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon publicAreaCommon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder> publicAreaCommonBuilder_; + /** + * .PublicAreaCommon public_area_common = 18; + * @return Whether the publicAreaCommon field is set. + */ + public boolean hasPublicAreaCommon() { + return ((bitField0_ & 0x00020000) != 0); + } + /** + * .PublicAreaCommon public_area_common = 18; + * @return The publicAreaCommon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon() { + if (publicAreaCommonBuilder_ == null) { + return publicAreaCommon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; + } else { + return publicAreaCommonBuilder_.getMessage(); + } + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public Builder setPublicAreaCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon value) { + if (publicAreaCommonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + publicAreaCommon_ = value; + } else { + publicAreaCommonBuilder_.setMessage(value); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public Builder setPublicAreaCommon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder builderForValue) { + if (publicAreaCommonBuilder_ == null) { + publicAreaCommon_ = builderForValue.build(); + } else { + publicAreaCommonBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public Builder mergePublicAreaCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon value) { + if (publicAreaCommonBuilder_ == null) { + if (((bitField0_ & 0x00020000) != 0) && + publicAreaCommon_ != null && + publicAreaCommon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance()) { + getPublicAreaCommonBuilder().mergeFrom(value); + } else { + publicAreaCommon_ = value; + } + } else { + publicAreaCommonBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public Builder clearPublicAreaCommon() { + bitField0_ = (bitField0_ & ~0x00020000); + publicAreaCommon_ = null; + if (publicAreaCommonBuilder_ != null) { + publicAreaCommonBuilder_.dispose(); + publicAreaCommonBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder getPublicAreaCommonBuilder() { + bitField0_ |= 0x00020000; + onChanged(); + return getPublicAreaCommonFieldBuilder().getBuilder(); + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder() { + if (publicAreaCommonBuilder_ != null) { + return publicAreaCommonBuilder_.getMessageOrBuilder(); + } else { + return publicAreaCommon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance() : publicAreaCommon_; + } + } + /** + * .PublicAreaCommon public_area_common = 18; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder> + getPublicAreaCommonFieldBuilder() { + if (publicAreaCommonBuilder_ == null) { + publicAreaCommonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder>( + getPublicAreaCommon(), + getParentForChildren(), + isClean()); + publicAreaCommon_ = null; + } + return publicAreaCommonBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text trayDisplayText_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> trayDisplayTextBuilder_; + /** + * .Text tray_display_text = 19; + * @return Whether the trayDisplayText field is set. + */ + public boolean hasTrayDisplayText() { + return ((bitField0_ & 0x00040000) != 0); + } + /** + * .Text tray_display_text = 19; + * @return The trayDisplayText. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText() { + if (trayDisplayTextBuilder_ == null) { + return trayDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; + } else { + return trayDisplayTextBuilder_.getMessage(); + } + } + /** + * .Text tray_display_text = 19; + */ + public Builder setTrayDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (trayDisplayTextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + trayDisplayText_ = value; + } else { + trayDisplayTextBuilder_.setMessage(value); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Text tray_display_text = 19; + */ + public Builder setTrayDisplayText( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { + if (trayDisplayTextBuilder_ == null) { + trayDisplayText_ = builderForValue.build(); + } else { + trayDisplayTextBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Text tray_display_text = 19; + */ + public Builder mergeTrayDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (trayDisplayTextBuilder_ == null) { + if (((bitField0_ & 0x00040000) != 0) && + trayDisplayText_ != null && + trayDisplayText_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { + getTrayDisplayTextBuilder().mergeFrom(value); + } else { + trayDisplayText_ = value; + } + } else { + trayDisplayTextBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Text tray_display_text = 19; + */ + public Builder clearTrayDisplayText() { + bitField0_ = (bitField0_ & ~0x00040000); + trayDisplayText_ = null; + if (trayDisplayTextBuilder_ != null) { + trayDisplayTextBuilder_.dispose(); + trayDisplayTextBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Text tray_display_text = 19; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getTrayDisplayTextBuilder() { + bitField0_ |= 0x00040000; + onChanged(); + return getTrayDisplayTextFieldBuilder().getBuilder(); + } + /** + * .Text tray_display_text = 19; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder() { + if (trayDisplayTextBuilder_ != null) { + return trayDisplayTextBuilder_.getMessageOrBuilder(); + } else { + return trayDisplayText_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : trayDisplayText_; + } + } + /** + * .Text tray_display_text = 19; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> + getTrayDisplayTextFieldBuilder() { + if (trayDisplayTextBuilder_ == null) { + trayDisplayTextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( + getTrayDisplayText(), + getParentForChildren(), + isClean()); + trayDisplayText_ = null; + } + return trayDisplayTextBuilder_; + } + + private long bannedDisplayEffects_ ; + /** + * uint64 banned_display_effects = 20; + * @return The bannedDisplayEffects. + */ + @java.lang.Override + public long getBannedDisplayEffects() { + return bannedDisplayEffects_; + } + /** + * uint64 banned_display_effects = 20; + * @param value The bannedDisplayEffects to set. + * @return This builder for chaining. + */ + public Builder setBannedDisplayEffects(long value) { + + bannedDisplayEffects_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * uint64 banned_display_effects = 20; + * @return This builder for chaining. + */ + public Builder clearBannedDisplayEffects() { + bitField0_ = (bitField0_ & ~0x00080000); + bannedDisplayEffects_ = 0L; + onChanged(); + return this; + } + + private boolean displayForSelf_ ; + /** + *
+     * GiftTrayInfo trayInfo = 21;
+     * AssetEffectMixInfo assetEffectMixInfo = 22;
+     * 
+ * + * bool display_for_self = 25; + * @return The displayForSelf. + */ + @java.lang.Override + public boolean getDisplayForSelf() { + return displayForSelf_; + } + /** + *
+     * GiftTrayInfo trayInfo = 21;
+     * AssetEffectMixInfo assetEffectMixInfo = 22;
+     * 
+ * + * bool display_for_self = 25; + * @param value The displayForSelf to set. + * @return This builder for chaining. + */ + public Builder setDisplayForSelf(boolean value) { + + displayForSelf_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + *
+     * GiftTrayInfo trayInfo = 21;
+     * AssetEffectMixInfo assetEffectMixInfo = 22;
+     * 
+ * + * bool display_for_self = 25; + * @return This builder for chaining. + */ + public Builder clearDisplayForSelf() { + bitField0_ = (bitField0_ & ~0x00100000); + displayForSelf_ = false; + onChanged(); + return this; + } + + private java.lang.Object interactGiftInfo_ = ""; + /** + * string interact_gift_info = 26; + * @return The interactGiftInfo. + */ + public java.lang.String getInteractGiftInfo() { + java.lang.Object ref = interactGiftInfo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + interactGiftInfo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string interact_gift_info = 26; + * @return The bytes for interactGiftInfo. + */ + public com.google.protobuf.ByteString + getInteractGiftInfoBytes() { + java.lang.Object ref = interactGiftInfo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + interactGiftInfo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string interact_gift_info = 26; + * @param value The interactGiftInfo to set. + * @return This builder for chaining. + */ + public Builder setInteractGiftInfo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + interactGiftInfo_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * string interact_gift_info = 26; + * @return This builder for chaining. + */ + public Builder clearInteractGiftInfo() { + interactGiftInfo_ = getDefaultInstance().getInteractGiftInfo(); + bitField0_ = (bitField0_ & ~0x00200000); + onChanged(); + return this; + } + /** + * string interact_gift_info = 26; + * @param value The bytes for interactGiftInfo to set. + * @return This builder for chaining. + */ + public Builder setInteractGiftInfoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + interactGiftInfo_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + private java.lang.Object diyItemInfo_ = ""; + /** + * string diy_item_info = 27; + * @return The diyItemInfo. + */ + public java.lang.String getDiyItemInfo() { + java.lang.Object ref = diyItemInfo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + diyItemInfo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string diy_item_info = 27; + * @return The bytes for diyItemInfo. + */ + public com.google.protobuf.ByteString + getDiyItemInfoBytes() { + java.lang.Object ref = diyItemInfo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + diyItemInfo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string diy_item_info = 27; + * @param value The diyItemInfo to set. + * @return This builder for chaining. + */ + public Builder setDiyItemInfo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + diyItemInfo_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * string diy_item_info = 27; + * @return This builder for chaining. + */ + public Builder clearDiyItemInfo() { + diyItemInfo_ = getDefaultInstance().getDiyItemInfo(); + bitField0_ = (bitField0_ & ~0x00400000); + onChanged(); + return this; + } + /** + * string diy_item_info = 27; + * @param value The bytes for diyItemInfo to set. + * @return This builder for chaining. + */ + public Builder setDiyItemInfoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + diyItemInfo_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.LongList minAssetSetList_ = emptyLongList(); + private void ensureMinAssetSetListIsMutable() { + if (!((bitField0_ & 0x00800000) != 0)) { + minAssetSetList_ = mutableCopy(minAssetSetList_); + bitField0_ |= 0x00800000; + } + } + /** + * repeated uint64 min_asset_set_list = 28; + * @return A list containing the minAssetSetList. + */ + public java.util.List + getMinAssetSetListList() { + return ((bitField0_ & 0x00800000) != 0) ? + java.util.Collections.unmodifiableList(minAssetSetList_) : minAssetSetList_; + } + /** + * repeated uint64 min_asset_set_list = 28; + * @return The count of minAssetSetList. + */ + public int getMinAssetSetListCount() { + return minAssetSetList_.size(); + } + /** + * repeated uint64 min_asset_set_list = 28; + * @param index The index of the element to return. + * @return The minAssetSetList at the given index. + */ + public long getMinAssetSetList(int index) { + return minAssetSetList_.getLong(index); + } + /** + * repeated uint64 min_asset_set_list = 28; + * @param index The index to set the value at. + * @param value The minAssetSetList to set. + * @return This builder for chaining. + */ + public Builder setMinAssetSetList( + int index, long value) { + + ensureMinAssetSetListIsMutable(); + minAssetSetList_.setLong(index, value); + onChanged(); + return this; + } + /** + * repeated uint64 min_asset_set_list = 28; + * @param value The minAssetSetList to add. + * @return This builder for chaining. + */ + public Builder addMinAssetSetList(long value) { + + ensureMinAssetSetListIsMutable(); + minAssetSetList_.addLong(value); + onChanged(); + return this; + } + /** + * repeated uint64 min_asset_set_list = 28; + * @param values The minAssetSetList to add. + * @return This builder for chaining. + */ + public Builder addAllMinAssetSetList( + java.lang.Iterable values) { + ensureMinAssetSetListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, minAssetSetList_); + onChanged(); + return this; + } + /** + * repeated uint64 min_asset_set_list = 28; + * @return This builder for chaining. + */ + public Builder clearMinAssetSetList() { + minAssetSetList_ = emptyLongList(); + bitField0_ = (bitField0_ & ~0x00800000); + onChanged(); + return this; + } + + private long totalCount_ ; + /** + * uint64 total_count = 29; + * @return The totalCount. + */ + @java.lang.Override + public long getTotalCount() { + return totalCount_; + } + /** + * uint64 total_count = 29; + * @param value The totalCount to set. + * @return This builder for chaining. + */ + public Builder setTotalCount(long value) { + + totalCount_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * uint64 total_count = 29; + * @return This builder for chaining. + */ + public Builder clearTotalCount() { + bitField0_ = (bitField0_ & ~0x01000000); + totalCount_ = 0L; + onChanged(); + return this; + } + + private int clientGiftSource_ ; + /** + * uint32 client_gift_source = 30; + * @return The clientGiftSource. + */ + @java.lang.Override + public int getClientGiftSource() { + return clientGiftSource_; + } + /** + * uint32 client_gift_source = 30; + * @param value The clientGiftSource to set. + * @return This builder for chaining. + */ + public Builder setClientGiftSource(int value) { + + clientGiftSource_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + /** + * uint32 client_gift_source = 30; + * @return This builder for chaining. + */ + public Builder clearClientGiftSource() { + bitField0_ = (bitField0_ & ~0x02000000); + clientGiftSource_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.LongList toUserIdsList_ = emptyLongList(); + private void ensureToUserIdsListIsMutable() { + if (!((bitField0_ & 0x04000000) != 0)) { + toUserIdsList_ = mutableCopy(toUserIdsList_); + bitField0_ |= 0x04000000; + } + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return A list containing the toUserIdsList. + */ + public java.util.List + getToUserIdsListList() { + return ((bitField0_ & 0x04000000) != 0) ? + java.util.Collections.unmodifiableList(toUserIdsList_) : toUserIdsList_; + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return The count of toUserIdsList. + */ + public int getToUserIdsListCount() { + return toUserIdsList_.size(); + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param index The index of the element to return. + * @return The toUserIdsList at the given index. + */ + public long getToUserIdsList(int index) { + return toUserIdsList_.getLong(index); + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param index The index to set the value at. + * @param value The toUserIdsList to set. + * @return This builder for chaining. + */ + public Builder setToUserIdsList( + int index, long value) { + + ensureToUserIdsListIsMutable(); + toUserIdsList_.setLong(index, value); + onChanged(); + return this; + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param value The toUserIdsList to add. + * @return This builder for chaining. + */ + public Builder addToUserIdsList(long value) { + + ensureToUserIdsListIsMutable(); + toUserIdsList_.addLong(value); + onChanged(); + return this; + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param values The toUserIdsList to add. + * @return This builder for chaining. + */ + public Builder addAllToUserIdsList( + java.lang.Iterable values) { + ensureToUserIdsListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, toUserIdsList_); + onChanged(); + return this; + } + /** + *
+     * AnchorGiftData anchorGift = 31;
+     * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return This builder for chaining. + */ + public Builder clearToUserIdsList() { + toUserIdsList_ = emptyLongList(); + bitField0_ = (bitField0_ & ~0x04000000); + onChanged(); + return this; + } + + private long sendTimet_ ; + /** + * uint64 send_timet = 33; + * @return The sendTimet. + */ + @java.lang.Override + public long getSendTimet() { + return sendTimet_; + } + /** + * uint64 send_timet = 33; + * @param value The sendTimet to set. + * @return This builder for chaining. + */ + public Builder setSendTimet(long value) { + + sendTimet_ = value; + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * uint64 send_timet = 33; + * @return This builder for chaining. + */ + public Builder clearSendTimet() { + bitField0_ = (bitField0_ & ~0x08000000); + sendTimet_ = 0L; + onChanged(); + return this; + } + + private long forceDisplayEffectst_ ; + /** + * uint64 force_display_effectst = 34; + * @return The forceDisplayEffectst. + */ + @java.lang.Override + public long getForceDisplayEffectst() { + return forceDisplayEffectst_; + } + /** + * uint64 force_display_effectst = 34; + * @param value The forceDisplayEffectst to set. + * @return This builder for chaining. + */ + public Builder setForceDisplayEffectst(long value) { + + forceDisplayEffectst_ = value; + bitField0_ |= 0x10000000; + onChanged(); + return this; + } + /** + * uint64 force_display_effectst = 34; + * @return This builder for chaining. + */ + public Builder clearForceDisplayEffectst() { + bitField0_ = (bitField0_ & ~0x10000000); + forceDisplayEffectst_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object traceId_ = ""; + /** + * string trace_id = 35; + * @return The traceId. + */ + public java.lang.String getTraceId() { + java.lang.Object ref = traceId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + traceId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string trace_id = 35; + * @return The bytes for traceId. + */ + public com.google.protobuf.ByteString + getTraceIdBytes() { + java.lang.Object ref = traceId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + traceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string trace_id = 35; + * @param value The traceId to set. + * @return This builder for chaining. + */ + public Builder setTraceId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + traceId_ = value; + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + /** + * string trace_id = 35; + * @return This builder for chaining. + */ + public Builder clearTraceId() { + traceId_ = getDefaultInstance().getTraceId(); + bitField0_ = (bitField0_ & ~0x20000000); + onChanged(); + return this; + } + /** + * string trace_id = 35; + * @param value The bytes for traceId to set. + * @return This builder for chaining. + */ + public Builder setTraceIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + traceId_ = value; + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + + private long effectDisplayTs_ ; + /** + * uint64 effect_display_ts = 36; + * @return The effectDisplayTs. + */ + @java.lang.Override + public long getEffectDisplayTs() { + return effectDisplayTs_; + } + /** + * uint64 effect_display_ts = 36; + * @param value The effectDisplayTs to set. + * @return This builder for chaining. + */ + public Builder setEffectDisplayTs(long value) { + + effectDisplayTs_ = value; + bitField0_ |= 0x40000000; + onChanged(); + return this; + } + /** + * uint64 effect_display_ts = 36; + * @return This builder for chaining. + */ + public Builder clearEffectDisplayTs() { + bitField0_ = (bitField0_ & ~0x40000000); + effectDisplayTs_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_webcast_gift_message_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java new file mode 100644 index 00000000..48301993 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_gift_message_msgOrBuilder.java @@ -0,0 +1,354 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_gift_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_webcast_gift_message_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_gift_message_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + boolean hasCommon(); + /** + * .Common common = 1; + * @return The common. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); + /** + * .Common common = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); + + /** + * uint64 long_gift_id = 2; + * @return The longGiftId. + */ + long getLongGiftId(); + + /** + * uint64 fan_ticket_count = 3; + * @return The fanTicketCount. + */ + long getFanTicketCount(); + + /** + * uint64 group_count = 4; + * @return The groupCount. + */ + long getGroupCount(); + + /** + * uint64 repeat_count = 5; + * @return The repeatCount. + */ + long getRepeatCount(); + + /** + * uint64 combo_count = 6; + * @return The comboCount. + */ + long getComboCount(); + + /** + * .User user = 7; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 7; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 7; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + * .User to_user = 8; + * @return Whether the toUser field is set. + */ + boolean hasToUser(); + /** + * .User to_user = 8; + * @return The toUser. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getToUser(); + /** + * .User to_user = 8; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getToUserOrBuilder(); + + /** + * uint32 repeat_end = 9; + * @return The repeatEnd. + */ + int getRepeatEnd(); + + /** + * .TextEffect text_effect = 10; + * @return Whether the textEffect field is set. + */ + boolean hasTextEffect(); + /** + * .TextEffect text_effect = 10; + * @return The textEffect. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getTextEffect(); + /** + * .TextEffect text_effect = 10; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder getTextEffectOrBuilder(); + + /** + * uint64 group_id = 11; + * @return The groupId. + */ + long getGroupId(); + + /** + * uint64 income_taskgifts = 12; + * @return The incomeTaskgifts. + */ + long getIncomeTaskgifts(); + + /** + * uint64 room_fan_ticket_count = 13; + * @return The roomFanTicketCount. + */ + long getRoomFanTicketCount(); + + /** + * .GiftIMPriority priority = 14; + * @return Whether the priority field is set. + */ + boolean hasPriority(); + /** + * .GiftIMPriority priority = 14; + * @return The priority. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getPriority(); + /** + * .GiftIMPriority priority = 14; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder getPriorityOrBuilder(); + + /** + * .GiftStruct gift = 15; + * @return Whether the gift field is set. + */ + boolean hasGift(); + /** + * .GiftStruct gift = 15; + * @return The gift. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getGift(); + /** + * .GiftStruct gift = 15; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder getGiftOrBuilder(); + + /** + * string log_id = 16; + * @return The logId. + */ + java.lang.String getLogId(); + /** + * string log_id = 16; + * @return The bytes for logId. + */ + com.google.protobuf.ByteString + getLogIdBytes(); + + /** + * uint64 send_type = 17; + * @return The sendType. + */ + long getSendType(); + + /** + * .PublicAreaCommon public_area_common = 18; + * @return Whether the publicAreaCommon field is set. + */ + boolean hasPublicAreaCommon(); + /** + * .PublicAreaCommon public_area_common = 18; + * @return The publicAreaCommon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getPublicAreaCommon(); + /** + * .PublicAreaCommon public_area_common = 18; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder getPublicAreaCommonOrBuilder(); + + /** + * .Text tray_display_text = 19; + * @return Whether the trayDisplayText field is set. + */ + boolean hasTrayDisplayText(); + /** + * .Text tray_display_text = 19; + * @return The trayDisplayText. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getTrayDisplayText(); + /** + * .Text tray_display_text = 19; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTrayDisplayTextOrBuilder(); + + /** + * uint64 banned_display_effects = 20; + * @return The bannedDisplayEffects. + */ + long getBannedDisplayEffects(); + + /** + *
+   * GiftTrayInfo trayInfo = 21;
+   * AssetEffectMixInfo assetEffectMixInfo = 22;
+   * 
+ * + * bool display_for_self = 25; + * @return The displayForSelf. + */ + boolean getDisplayForSelf(); + + /** + * string interact_gift_info = 26; + * @return The interactGiftInfo. + */ + java.lang.String getInteractGiftInfo(); + /** + * string interact_gift_info = 26; + * @return The bytes for interactGiftInfo. + */ + com.google.protobuf.ByteString + getInteractGiftInfoBytes(); + + /** + * string diy_item_info = 27; + * @return The diyItemInfo. + */ + java.lang.String getDiyItemInfo(); + /** + * string diy_item_info = 27; + * @return The bytes for diyItemInfo. + */ + com.google.protobuf.ByteString + getDiyItemInfoBytes(); + + /** + * repeated uint64 min_asset_set_list = 28; + * @return A list containing the minAssetSetList. + */ + java.util.List getMinAssetSetListList(); + /** + * repeated uint64 min_asset_set_list = 28; + * @return The count of minAssetSetList. + */ + int getMinAssetSetListCount(); + /** + * repeated uint64 min_asset_set_list = 28; + * @param index The index of the element to return. + * @return The minAssetSetList at the given index. + */ + long getMinAssetSetList(int index); + + /** + * uint64 total_count = 29; + * @return The totalCount. + */ + long getTotalCount(); + + /** + * uint32 client_gift_source = 30; + * @return The clientGiftSource. + */ + int getClientGiftSource(); + + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return A list containing the toUserIdsList. + */ + java.util.List getToUserIdsListList(); + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @return The count of toUserIdsList. + */ + int getToUserIdsListCount(); + /** + *
+   * AnchorGiftData anchorGift = 31;
+   * 
+ * + * repeated uint64 to_user_ids_list = 32; + * @param index The index of the element to return. + * @return The toUserIdsList at the given index. + */ + long getToUserIdsList(int index); + + /** + * uint64 send_timet = 33; + * @return The sendTimet. + */ + long getSendTimet(); + + /** + * uint64 force_display_effectst = 34; + * @return The forceDisplayEffectst. + */ + long getForceDisplayEffectst(); + + /** + * string trace_id = 35; + * @return The traceId. + */ + java.lang.String getTraceId(); + /** + * string trace_id = 35; + * @return The bytes for traceId. + */ + com.google.protobuf.ByteString + getTraceIdBytes(); + + /** + * uint64 effect_display_ts = 36; + * @return The effectDisplayTs. + */ + long getEffectDisplayTs(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java new file mode 100644 index 00000000..8e79778c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msg.java @@ -0,0 +1,1563 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_like_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg} + */ +public final class douyin_webcast_like_message_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) + douyin_webcast_like_message_msgOrBuilder { +private static final long serialVersionUID = 0L; + // Use douyin_webcast_like_message_msg.newBuilder() to construct. + private douyin_webcast_like_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_webcast_like_message_msg() { + icon_ = ""; + scene_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_webcast_like_message_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.Builder.class); + } + + public static final int COMMON_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + @java.lang.Override + public boolean hasCommon() { + return common_ != null; + } + /** + * .Common common = 1; + * @return The common. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + /** + * .Common common = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + + public static final int COUNT_FIELD_NUMBER = 2; + private long count_ = 0L; + /** + * uint64 count = 2; + * @return The count. + */ + @java.lang.Override + public long getCount() { + return count_; + } + + public static final int TOTAL_FIELD_NUMBER = 3; + private long total_ = 0L; + /** + * uint64 total = 3; + * @return The total. + */ + @java.lang.Override + public long getTotal() { + return total_; + } + + public static final int COLOR_FIELD_NUMBER = 4; + private long color_ = 0L; + /** + * uint64 color = 4; + * @return The color. + */ + @java.lang.Override + public long getColor() { + return color_; + } + + public static final int USER_FIELD_NUMBER = 5; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 5; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 5; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int ICON_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object icon_ = ""; + /** + * string icon = 6; + * @return The icon. + */ + @java.lang.Override + public java.lang.String getIcon() { + java.lang.Object ref = icon_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + icon_ = s; + return s; + } + } + /** + * string icon = 6; + * @return The bytes for icon. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIconBytes() { + java.lang.Object ref = icon_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + icon_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DOUBLELIKEDETAIL_FIELD_NUMBER = 7; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail doubleLikeDetail_; + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return Whether the doubleLikeDetail field is set. + */ + @java.lang.Override + public boolean hasDoubleLikeDetail() { + return doubleLikeDetail_ != null; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return The doubleLikeDetail. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail() { + return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder() { + return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; + } + + public static final int LINKMICGUESTUID_FIELD_NUMBER = 9; + private long linkmicGuestUid_ = 0L; + /** + *
+   * DisplayControlInfo displayControlInfo = 8;
+   * 
+ * + * uint64 linkmicGuestUid = 9; + * @return The linkmicGuestUid. + */ + @java.lang.Override + public long getLinkmicGuestUid() { + return linkmicGuestUid_; + } + + public static final int SCENE_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object scene_ = ""; + /** + *
+   * PicoDisplayInfo picoDisplayInfo = 11;
+   * = 12;
+   * 
+ * + * string scene = 10; + * @return The scene. + */ + @java.lang.Override + public java.lang.String getScene() { + java.lang.Object ref = scene_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + scene_ = s; + return s; + } + } + /** + *
+   * PicoDisplayInfo picoDisplayInfo = 11;
+   * = 12;
+   * 
+ * + * string scene = 10; + * @return The bytes for scene. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSceneBytes() { + java.lang.Object ref = scene_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + scene_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (common_ != null) { + output.writeMessage(1, getCommon()); + } + if (count_ != 0L) { + output.writeUInt64(2, count_); + } + if (total_ != 0L) { + output.writeUInt64(3, total_); + } + if (color_ != 0L) { + output.writeUInt64(4, color_); + } + if (user_ != null) { + output.writeMessage(5, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(icon_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, icon_); + } + if (doubleLikeDetail_ != null) { + output.writeMessage(7, getDoubleLikeDetail()); + } + if (linkmicGuestUid_ != 0L) { + output.writeUInt64(9, linkmicGuestUid_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(scene_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, scene_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (common_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getCommon()); + } + if (count_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, count_); + } + if (total_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, total_); + } + if (color_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, color_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(icon_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, icon_); + } + if (doubleLikeDetail_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getDoubleLikeDetail()); + } + if (linkmicGuestUid_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(9, linkmicGuestUid_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(scene_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, scene_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) obj; + + if (hasCommon() != other.hasCommon()) return false; + if (hasCommon()) { + if (!getCommon() + .equals(other.getCommon())) return false; + } + if (getCount() + != other.getCount()) return false; + if (getTotal() + != other.getTotal()) return false; + if (getColor() + != other.getColor()) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (!getIcon() + .equals(other.getIcon())) return false; + if (hasDoubleLikeDetail() != other.hasDoubleLikeDetail()) return false; + if (hasDoubleLikeDetail()) { + if (!getDoubleLikeDetail() + .equals(other.getDoubleLikeDetail())) return false; + } + if (getLinkmicGuestUid() + != other.getLinkmicGuestUid()) return false; + if (!getScene() + .equals(other.getScene())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCommon()) { + hash = (37 * hash) + COMMON_FIELD_NUMBER; + hash = (53 * hash) + getCommon().hashCode(); + } + hash = (37 * hash) + COUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getCount()); + hash = (37 * hash) + TOTAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTotal()); + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getColor()); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + ICON_FIELD_NUMBER; + hash = (53 * hash) + getIcon().hashCode(); + if (hasDoubleLikeDetail()) { + hash = (37 * hash) + DOUBLELIKEDETAIL_FIELD_NUMBER; + hash = (53 * hash) + getDoubleLikeDetail().hashCode(); + } + hash = (37 * hash) + LINKMICGUESTUID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLinkmicGuestUid()); + hash = (37 * hash) + SCENE_FIELD_NUMBER; + hash = (53 * hash) + getScene().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + count_ = 0L; + total_ = 0L; + color_ = 0L; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + icon_ = ""; + doubleLikeDetail_ = null; + if (doubleLikeDetailBuilder_ != null) { + doubleLikeDetailBuilder_.dispose(); + doubleLikeDetailBuilder_ = null; + } + linkmicGuestUid_ = 0L; + scene_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.common_ = commonBuilder_ == null + ? common_ + : commonBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.count_ = count_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.total_ = total_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.color_ = color_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.icon_ = icon_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.doubleLikeDetail_ = doubleLikeDetailBuilder_ == null + ? doubleLikeDetail_ + : doubleLikeDetailBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.linkmicGuestUid_ = linkmicGuestUid_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.scene_ = scene_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg.getDefaultInstance()) return this; + if (other.hasCommon()) { + mergeCommon(other.getCommon()); + } + if (other.getCount() != 0L) { + setCount(other.getCount()); + } + if (other.getTotal() != 0L) { + setTotal(other.getTotal()); + } + if (other.getColor() != 0L) { + setColor(other.getColor()); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (!other.getIcon().isEmpty()) { + icon_ = other.icon_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.hasDoubleLikeDetail()) { + mergeDoubleLikeDetail(other.getDoubleLikeDetail()); + } + if (other.getLinkmicGuestUid() != 0L) { + setLinkmicGuestUid(other.getLinkmicGuestUid()); + } + if (!other.getScene().isEmpty()) { + scene_ = other.scene_; + bitField0_ |= 0x00000100; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getCommonFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + count_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + total_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + color_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + icon_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + input.readMessage( + getDoubleLikeDetailFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 72: { + linkmicGuestUid_ = input.readUInt64(); + bitField0_ |= 0x00000080; + break; + } // case 72 + case 82: { + scene_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 82 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + public boolean hasCommon() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Common common = 1; + * @return The common. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + if (commonBuilder_ == null) { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } else { + return commonBuilder_.getMessage(); + } + } + /** + * .Common common = 1; + */ + public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + common_ = value; + } else { + commonBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder setCommon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { + if (commonBuilder_ == null) { + common_ = builderForValue.build(); + } else { + commonBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + common_ != null && + common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { + getCommonBuilder().mergeFrom(value); + } else { + common_ = value; + } + } else { + commonBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder clearCommon() { + bitField0_ = (bitField0_ & ~0x00000001); + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getCommonFieldBuilder().getBuilder(); + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + if (commonBuilder_ != null) { + return commonBuilder_.getMessageOrBuilder(); + } else { + return common_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + } + /** + * .Common common = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> + getCommonFieldBuilder() { + if (commonBuilder_ == null) { + commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( + getCommon(), + getParentForChildren(), + isClean()); + common_ = null; + } + return commonBuilder_; + } + + private long count_ ; + /** + * uint64 count = 2; + * @return The count. + */ + @java.lang.Override + public long getCount() { + return count_; + } + /** + * uint64 count = 2; + * @param value The count to set. + * @return This builder for chaining. + */ + public Builder setCount(long value) { + + count_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 count = 2; + * @return This builder for chaining. + */ + public Builder clearCount() { + bitField0_ = (bitField0_ & ~0x00000002); + count_ = 0L; + onChanged(); + return this; + } + + private long total_ ; + /** + * uint64 total = 3; + * @return The total. + */ + @java.lang.Override + public long getTotal() { + return total_; + } + /** + * uint64 total = 3; + * @param value The total to set. + * @return This builder for chaining. + */ + public Builder setTotal(long value) { + + total_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 total = 3; + * @return This builder for chaining. + */ + public Builder clearTotal() { + bitField0_ = (bitField0_ & ~0x00000004); + total_ = 0L; + onChanged(); + return this; + } + + private long color_ ; + /** + * uint64 color = 4; + * @return The color. + */ + @java.lang.Override + public long getColor() { + return color_; + } + /** + * uint64 color = 4; + * @param value The color to set. + * @return This builder for chaining. + */ + public Builder setColor(long value) { + + color_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 color = 4; + * @return This builder for chaining. + */ + public Builder clearColor() { + bitField0_ = (bitField0_ & ~0x00000008); + color_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 5; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .User user = 5; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 5; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User user = 5; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User user = 5; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User user = 5; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000010); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private java.lang.Object icon_ = ""; + /** + * string icon = 6; + * @return The icon. + */ + public java.lang.String getIcon() { + java.lang.Object ref = icon_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + icon_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string icon = 6; + * @return The bytes for icon. + */ + public com.google.protobuf.ByteString + getIconBytes() { + java.lang.Object ref = icon_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + icon_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string icon = 6; + * @param value The icon to set. + * @return This builder for chaining. + */ + public Builder setIcon( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + icon_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string icon = 6; + * @return This builder for chaining. + */ + public Builder clearIcon() { + icon_ = getDefaultInstance().getIcon(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string icon = 6; + * @param value The bytes for icon to set. + * @return This builder for chaining. + */ + public Builder setIconBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + icon_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail doubleLikeDetail_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder> doubleLikeDetailBuilder_; + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return Whether the doubleLikeDetail field is set. + */ + public boolean hasDoubleLikeDetail() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return The doubleLikeDetail. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail() { + if (doubleLikeDetailBuilder_ == null) { + return doubleLikeDetail_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; + } else { + return doubleLikeDetailBuilder_.getMessage(); + } + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public Builder setDoubleLikeDetail(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail value) { + if (doubleLikeDetailBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + doubleLikeDetail_ = value; + } else { + doubleLikeDetailBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public Builder setDoubleLikeDetail( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder builderForValue) { + if (doubleLikeDetailBuilder_ == null) { + doubleLikeDetail_ = builderForValue.build(); + } else { + doubleLikeDetailBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public Builder mergeDoubleLikeDetail(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail value) { + if (doubleLikeDetailBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + doubleLikeDetail_ != null && + doubleLikeDetail_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance()) { + getDoubleLikeDetailBuilder().mergeFrom(value); + } else { + doubleLikeDetail_ = value; + } + } else { + doubleLikeDetailBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public Builder clearDoubleLikeDetail() { + bitField0_ = (bitField0_ & ~0x00000040); + doubleLikeDetail_ = null; + if (doubleLikeDetailBuilder_ != null) { + doubleLikeDetailBuilder_.dispose(); + doubleLikeDetailBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder getDoubleLikeDetailBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getDoubleLikeDetailFieldBuilder().getBuilder(); + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder() { + if (doubleLikeDetailBuilder_ != null) { + return doubleLikeDetailBuilder_.getMessageOrBuilder(); + } else { + return doubleLikeDetail_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance() : doubleLikeDetail_; + } + } + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder> + getDoubleLikeDetailFieldBuilder() { + if (doubleLikeDetailBuilder_ == null) { + doubleLikeDetailBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder>( + getDoubleLikeDetail(), + getParentForChildren(), + isClean()); + doubleLikeDetail_ = null; + } + return doubleLikeDetailBuilder_; + } + + private long linkmicGuestUid_ ; + /** + *
+     * DisplayControlInfo displayControlInfo = 8;
+     * 
+ * + * uint64 linkmicGuestUid = 9; + * @return The linkmicGuestUid. + */ + @java.lang.Override + public long getLinkmicGuestUid() { + return linkmicGuestUid_; + } + /** + *
+     * DisplayControlInfo displayControlInfo = 8;
+     * 
+ * + * uint64 linkmicGuestUid = 9; + * @param value The linkmicGuestUid to set. + * @return This builder for chaining. + */ + public Builder setLinkmicGuestUid(long value) { + + linkmicGuestUid_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+     * DisplayControlInfo displayControlInfo = 8;
+     * 
+ * + * uint64 linkmicGuestUid = 9; + * @return This builder for chaining. + */ + public Builder clearLinkmicGuestUid() { + bitField0_ = (bitField0_ & ~0x00000080); + linkmicGuestUid_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object scene_ = ""; + /** + *
+     * PicoDisplayInfo picoDisplayInfo = 11;
+     * = 12;
+     * 
+ * + * string scene = 10; + * @return The scene. + */ + public java.lang.String getScene() { + java.lang.Object ref = scene_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + scene_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * PicoDisplayInfo picoDisplayInfo = 11;
+     * = 12;
+     * 
+ * + * string scene = 10; + * @return The bytes for scene. + */ + public com.google.protobuf.ByteString + getSceneBytes() { + java.lang.Object ref = scene_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + scene_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * PicoDisplayInfo picoDisplayInfo = 11;
+     * = 12;
+     * 
+ * + * string scene = 10; + * @param value The scene to set. + * @return This builder for chaining. + */ + public Builder setScene( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + scene_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + *
+     * PicoDisplayInfo picoDisplayInfo = 11;
+     * = 12;
+     * 
+ * + * string scene = 10; + * @return This builder for chaining. + */ + public Builder clearScene() { + scene_ = getDefaultInstance().getScene(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + *
+     * PicoDisplayInfo picoDisplayInfo = 11;
+     * = 12;
+     * 
+ * + * string scene = 10; + * @param value The bytes for scene to set. + * @return This builder for chaining. + */ + public Builder setSceneBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + scene_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_webcast_like_message_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java new file mode 100644 index 00000000..b5b088a5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgOrBuilder.java @@ -0,0 +1,140 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_like_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_webcast_like_message_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_like_message_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + boolean hasCommon(); + /** + * .Common common = 1; + * @return The common. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); + /** + * .Common common = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); + + /** + * uint64 count = 2; + * @return The count. + */ + long getCount(); + + /** + * uint64 total = 3; + * @return The total. + */ + long getTotal(); + + /** + * uint64 color = 4; + * @return The color. + */ + long getColor(); + + /** + * .User user = 5; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 5; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 5; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + * string icon = 6; + * @return The icon. + */ + java.lang.String getIcon(); + /** + * string icon = 6; + * @return The bytes for icon. + */ + com.google.protobuf.ByteString + getIconBytes(); + + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return Whether the doubleLikeDetail field is set. + */ + boolean hasDoubleLikeDetail(); + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + * @return The doubleLikeDetail. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDoubleLikeDetail(); + /** + * .DoubleLikeDetail doubleLikeDetail = 7; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder getDoubleLikeDetailOrBuilder(); + + /** + *
+   * DisplayControlInfo displayControlInfo = 8;
+   * 
+ * + * uint64 linkmicGuestUid = 9; + * @return The linkmicGuestUid. + */ + long getLinkmicGuestUid(); + + /** + *
+   * PicoDisplayInfo picoDisplayInfo = 11;
+   * = 12;
+   * 
+ * + * string scene = 10; + * @return The scene. + */ + java.lang.String getScene(); + /** + *
+   * PicoDisplayInfo picoDisplayInfo = 11;
+   * = 12;
+   * 
+ * + * string scene = 10; + * @return The bytes for scene. + */ + com.google.protobuf.ByteString + getSceneBytes(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java new file mode 100644 index 00000000..153557b6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_like_message_msgProto.java @@ -0,0 +1,87 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_like_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class douyin_webcast_like_message_msgProto { + private douyin_webcast_like_message_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n%douyin_webcast_like_message_msg.proto\022" + + "2tech.ordinaryroad.live.chat.client.douy" + + "in.protobuf\032\014Common.proto\032\nUser.proto\032\026D" + + "oubleLikeDetail.proto\"\337\001\n\037douyin_webcast" + + "_like_message_msg\022\027\n\006common\030\001 \001(\0132\007.Comm" + + "on\022\r\n\005count\030\002 \001(\004\022\r\n\005total\030\003 \001(\004\022\r\n\005colo" + + "r\030\004 \001(\004\022\023\n\004user\030\005 \001(\0132\005.User\022\014\n\004icon\030\006 \001" + + "(\t\022+\n\020doubleLikeDetail\030\007 \001(\0132\021.DoubleLik" + + "eDetail\022\027\n\017linkmicGuestUid\030\t \001(\004\022\r\n\005scen" + + "e\030\n \001(\tBb\n2tech.ordinaryroad.live.chat.c" + + "lient.douyin.protobufB$douyin_webcast_li" + + "ke_message_msgProtoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_like_message_msg_descriptor, + new java.lang.String[] { "Common", "Count", "Total", "Color", "User", "Icon", "DoubleLikeDetail", "LinkmicGuestUid", "Scene", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java new file mode 100644 index 00000000..63c75d62 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msg.java @@ -0,0 +1,2828 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_member_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg} + */ +public final class douyin_webcast_member_message_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) + douyin_webcast_member_message_msgOrBuilder { + private static final long serialVersionUID = 0L; + // Use douyin_webcast_member_message_msg.newBuilder() to construct. + private douyin_webcast_member_message_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_webcast_member_message_msg() { + actionDescription_ = ""; + popStr_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_webcast_member_message_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 22: + return internalGetBuriedPointMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.Builder.class); + } + + public static final int COMMON_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + @java.lang.Override + public boolean hasCommon() { + return common_ != null; + } + /** + * .Common common = 1; + * @return The common. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + /** + * .Common common = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int MEMBERCOUNT_FIELD_NUMBER = 3; + private long memberCount_ = 0L; + /** + * uint64 memberCount = 3; + * @return The memberCount. + */ + @java.lang.Override + public long getMemberCount() { + return memberCount_; + } + + public static final int OPERATOR_FIELD_NUMBER = 4; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User operator_; + /** + * .User operator = 4; + * @return Whether the operator field is set. + */ + @java.lang.Override + public boolean hasOperator() { + return operator_ != null; + } + /** + * .User operator = 4; + * @return The operator. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator() { + return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; + } + /** + * .User operator = 4; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder() { + return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; + } + + public static final int ISSETTOADMIN_FIELD_NUMBER = 5; + private boolean isSetToAdmin_ = false; + /** + * bool isSetToAdmin = 5; + * @return The isSetToAdmin. + */ + @java.lang.Override + public boolean getIsSetToAdmin() { + return isSetToAdmin_; + } + + public static final int ISTOPUSER_FIELD_NUMBER = 6; + private boolean isTopUser_ = false; + /** + * bool isTopUser = 6; + * @return The isTopUser. + */ + @java.lang.Override + public boolean getIsTopUser() { + return isTopUser_; + } + + public static final int RANKSCORE_FIELD_NUMBER = 7; + private long rankScore_ = 0L; + /** + * int64 rankScore = 7; + * @return The rankScore. + */ + @java.lang.Override + public long getRankScore() { + return rankScore_; + } + + public static final int TOPUSERNO_FIELD_NUMBER = 8; + private long topUserNo_ = 0L; + /** + * int64 topUserNo = 8; + * @return The topUserNo. + */ + @java.lang.Override + public long getTopUserNo() { + return topUserNo_; + } + + public static final int ENTERTYPE_FIELD_NUMBER = 9; + private long enterType_ = 0L; + /** + * int64 enterType = 9; + * @return The enterType. + */ + @java.lang.Override + public long getEnterType() { + return enterType_; + } + + public static final int ACTION_FIELD_NUMBER = 10; + private long action_ = 0L; + /** + * int64 action = 10; + * @return The action. + */ + @java.lang.Override + public long getAction() { + return action_; + } + + public static final int ACTIONDESCRIPTION_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private volatile java.lang.Object actionDescription_ = ""; + /** + * string actionDescription = 11; + * @return The actionDescription. + */ + @java.lang.Override + public java.lang.String getActionDescription() { + java.lang.Object ref = actionDescription_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + actionDescription_ = s; + return s; + } + } + /** + * string actionDescription = 11; + * @return The bytes for actionDescription. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getActionDescriptionBytes() { + java.lang.Object ref = actionDescription_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + actionDescription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERID_FIELD_NUMBER = 12; + private long userId_ = 0L; + /** + * int64 userId = 12; + * @return The userId. + */ + @java.lang.Override + public long getUserId() { + return userId_; + } + + public static final int POPSTR_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object popStr_ = ""; + /** + *
+   * EffectConfig effectConfig = 13;
+   * 
+ * + * string popStr = 14; + * @return The popStr. + */ + @java.lang.Override + public java.lang.String getPopStr() { + java.lang.Object ref = popStr_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + popStr_ = s; + return s; + } + } + /** + *
+   * EffectConfig effectConfig = 13;
+   * 
+ * + * string popStr = 14; + * @return The bytes for popStr. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPopStrBytes() { + java.lang.Object ref = popStr_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + popStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BACKGROUNDIMAGE_FIELD_NUMBER = 16; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + * @return Whether the backgroundImage field is set. + */ + @java.lang.Override + public boolean hasBackgroundImage() { + return backgroundImage_ != null; + } + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + * @return The backgroundImage. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + + public static final int BACKGROUNDIMAGEV2_FIELD_NUMBER = 17; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; + /** + * .Image backgroundImageV2 = 17; + * @return Whether the backgroundImageV2 field is set. + */ + @java.lang.Override + public boolean hasBackgroundImageV2() { + return backgroundImageV2_ != null; + } + /** + * .Image backgroundImageV2 = 17; + * @return The backgroundImageV2. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + /** + * .Image backgroundImageV2 = 17; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + + public static final int ANCHORDISPLAYTEXT_FIELD_NUMBER = 18; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text anchorDisplayText_; + /** + * .Text anchorDisplayText = 18; + * @return Whether the anchorDisplayText field is set. + */ + @java.lang.Override + public boolean hasAnchorDisplayText() { + return anchorDisplayText_ != null; + } + /** + * .Text anchorDisplayText = 18; + * @return The anchorDisplayText. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText() { + return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; + } + /** + * .Text anchorDisplayText = 18; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder() { + return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; + } + + public static final int USERENTERTIPTYPE_FIELD_NUMBER = 20; + private long userEnterTipType_ = 0L; + /** + *
+   * PublicAreaCommon publicAreaCommon = 19;
+   * 
+ * + * int64 userEnterTipType = 20; + * @return The userEnterTipType. + */ + @java.lang.Override + public long getUserEnterTipType() { + return userEnterTipType_; + } + + public static final int ANCHORENTERTIPTYPE_FIELD_NUMBER = 21; + private long anchorEnterTipType_ = 0L; + /** + * int64 anchorEnterTipType = 21; + * @return The anchorEnterTipType. + */ + @java.lang.Override + public long getAnchorEnterTipType() { + return anchorEnterTipType_; + } + + public static final int BURIEDPOINTMAP_FIELD_NUMBER = 22; + private static final class BuriedPointMapDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_BuriedPointMapEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> buriedPointMap_; + private com.google.protobuf.MapField + internalGetBuriedPointMap() { + if (buriedPointMap_ == null) { + return com.google.protobuf.MapField.emptyMapField( + BuriedPointMapDefaultEntryHolder.defaultEntry); + } + return buriedPointMap_; + } + public int getBuriedPointMapCount() { + return internalGetBuriedPointMap().getMap().size(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public boolean containsBuriedPointMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetBuriedPointMap().getMap().containsKey(key); + } + /** + * Use {@link #getBuriedPointMapMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getBuriedPointMap() { + return getBuriedPointMapMap(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public java.util.Map getBuriedPointMapMap() { + return internalGetBuriedPointMap().getMap(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getBuriedPointMapOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetBuriedPointMap().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public java.lang.String getBuriedPointMapOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetBuriedPointMap().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (common_ != null) { + output.writeMessage(1, getCommon()); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (memberCount_ != 0L) { + output.writeUInt64(3, memberCount_); + } + if (operator_ != null) { + output.writeMessage(4, getOperator()); + } + if (isSetToAdmin_ != false) { + output.writeBool(5, isSetToAdmin_); + } + if (isTopUser_ != false) { + output.writeBool(6, isTopUser_); + } + if (rankScore_ != 0L) { + output.writeInt64(7, rankScore_); + } + if (topUserNo_ != 0L) { + output.writeInt64(8, topUserNo_); + } + if (enterType_ != 0L) { + output.writeInt64(9, enterType_); + } + if (action_ != 0L) { + output.writeInt64(10, action_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionDescription_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, actionDescription_); + } + if (userId_ != 0L) { + output.writeInt64(12, userId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(popStr_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, popStr_); + } + if (backgroundImage_ != null) { + output.writeMessage(16, getBackgroundImage()); + } + if (backgroundImageV2_ != null) { + output.writeMessage(17, getBackgroundImageV2()); + } + if (anchorDisplayText_ != null) { + output.writeMessage(18, getAnchorDisplayText()); + } + if (userEnterTipType_ != 0L) { + output.writeInt64(20, userEnterTipType_); + } + if (anchorEnterTipType_ != 0L) { + output.writeInt64(21, anchorEnterTipType_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetBuriedPointMap(), + BuriedPointMapDefaultEntryHolder.defaultEntry, + 22); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (common_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getCommon()); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (memberCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, memberCount_); + } + if (operator_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getOperator()); + } + if (isSetToAdmin_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, isSetToAdmin_); + } + if (isTopUser_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(6, isTopUser_); + } + if (rankScore_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(7, rankScore_); + } + if (topUserNo_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, topUserNo_); + } + if (enterType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(9, enterType_); + } + if (action_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, action_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(actionDescription_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, actionDescription_); + } + if (userId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(12, userId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(popStr_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, popStr_); + } + if (backgroundImage_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(16, getBackgroundImage()); + } + if (backgroundImageV2_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, getBackgroundImageV2()); + } + if (anchorDisplayText_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, getAnchorDisplayText()); + } + if (userEnterTipType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(20, userEnterTipType_); + } + if (anchorEnterTipType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(21, anchorEnterTipType_); + } + for (java.util.Map.Entry entry + : internalGetBuriedPointMap().getMap().entrySet()) { + com.google.protobuf.MapEntry + buriedPointMap__ = BuriedPointMapDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, buriedPointMap__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) obj; + + if (hasCommon() != other.hasCommon()) return false; + if (hasCommon()) { + if (!getCommon() + .equals(other.getCommon())) return false; + } + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getMemberCount() + != other.getMemberCount()) return false; + if (hasOperator() != other.hasOperator()) return false; + if (hasOperator()) { + if (!getOperator() + .equals(other.getOperator())) return false; + } + if (getIsSetToAdmin() + != other.getIsSetToAdmin()) return false; + if (getIsTopUser() + != other.getIsTopUser()) return false; + if (getRankScore() + != other.getRankScore()) return false; + if (getTopUserNo() + != other.getTopUserNo()) return false; + if (getEnterType() + != other.getEnterType()) return false; + if (getAction() + != other.getAction()) return false; + if (!getActionDescription() + .equals(other.getActionDescription())) return false; + if (getUserId() + != other.getUserId()) return false; + if (!getPopStr() + .equals(other.getPopStr())) return false; + if (hasBackgroundImage() != other.hasBackgroundImage()) return false; + if (hasBackgroundImage()) { + if (!getBackgroundImage() + .equals(other.getBackgroundImage())) return false; + } + if (hasBackgroundImageV2() != other.hasBackgroundImageV2()) return false; + if (hasBackgroundImageV2()) { + if (!getBackgroundImageV2() + .equals(other.getBackgroundImageV2())) return false; + } + if (hasAnchorDisplayText() != other.hasAnchorDisplayText()) return false; + if (hasAnchorDisplayText()) { + if (!getAnchorDisplayText() + .equals(other.getAnchorDisplayText())) return false; + } + if (getUserEnterTipType() + != other.getUserEnterTipType()) return false; + if (getAnchorEnterTipType() + != other.getAnchorEnterTipType()) return false; + if (!internalGetBuriedPointMap().equals( + other.internalGetBuriedPointMap())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasCommon()) { + hash = (37 * hash) + COMMON_FIELD_NUMBER; + hash = (53 * hash) + getCommon().hashCode(); + } + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + MEMBERCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMemberCount()); + if (hasOperator()) { + hash = (37 * hash) + OPERATOR_FIELD_NUMBER; + hash = (53 * hash) + getOperator().hashCode(); + } + hash = (37 * hash) + ISSETTOADMIN_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsSetToAdmin()); + hash = (37 * hash) + ISTOPUSER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsTopUser()); + hash = (37 * hash) + RANKSCORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRankScore()); + hash = (37 * hash) + TOPUSERNO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTopUserNo()); + hash = (37 * hash) + ENTERTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEnterType()); + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAction()); + hash = (37 * hash) + ACTIONDESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getActionDescription().hashCode(); + hash = (37 * hash) + USERID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserId()); + hash = (37 * hash) + POPSTR_FIELD_NUMBER; + hash = (53 * hash) + getPopStr().hashCode(); + if (hasBackgroundImage()) { + hash = (37 * hash) + BACKGROUNDIMAGE_FIELD_NUMBER; + hash = (53 * hash) + getBackgroundImage().hashCode(); + } + if (hasBackgroundImageV2()) { + hash = (37 * hash) + BACKGROUNDIMAGEV2_FIELD_NUMBER; + hash = (53 * hash) + getBackgroundImageV2().hashCode(); + } + if (hasAnchorDisplayText()) { + hash = (37 * hash) + ANCHORDISPLAYTEXT_FIELD_NUMBER; + hash = (53 * hash) + getAnchorDisplayText().hashCode(); + } + hash = (37 * hash) + USERENTERTIPTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserEnterTipType()); + hash = (37 * hash) + ANCHORENTERTIPTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAnchorEnterTipType()); + if (!internalGetBuriedPointMap().getMap().isEmpty()) { + hash = (37 * hash) + BURIEDPOINTMAP_FIELD_NUMBER; + hash = (53 * hash) + internalGetBuriedPointMap().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 22: + return internalGetBuriedPointMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 22: + return internalGetMutableBuriedPointMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + memberCount_ = 0L; + operator_ = null; + if (operatorBuilder_ != null) { + operatorBuilder_.dispose(); + operatorBuilder_ = null; + } + isSetToAdmin_ = false; + isTopUser_ = false; + rankScore_ = 0L; + topUserNo_ = 0L; + enterType_ = 0L; + action_ = 0L; + actionDescription_ = ""; + userId_ = 0L; + popStr_ = ""; + backgroundImage_ = null; + if (backgroundImageBuilder_ != null) { + backgroundImageBuilder_.dispose(); + backgroundImageBuilder_ = null; + } + backgroundImageV2_ = null; + if (backgroundImageV2Builder_ != null) { + backgroundImageV2Builder_.dispose(); + backgroundImageV2Builder_ = null; + } + anchorDisplayText_ = null; + if (anchorDisplayTextBuilder_ != null) { + anchorDisplayTextBuilder_.dispose(); + anchorDisplayTextBuilder_ = null; + } + userEnterTipType_ = 0L; + anchorEnterTipType_ = 0L; + internalGetMutableBuriedPointMap().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_webcast_member_message_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_webcast_member_message_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.common_ = commonBuilder_ == null + ? common_ + : commonBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.memberCount_ = memberCount_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.operator_ = operatorBuilder_ == null + ? operator_ + : operatorBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.isSetToAdmin_ = isSetToAdmin_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.isTopUser_ = isTopUser_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.rankScore_ = rankScore_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.topUserNo_ = topUserNo_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.enterType_ = enterType_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.action_ = action_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.actionDescription_ = actionDescription_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.userId_ = userId_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.popStr_ = popStr_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.backgroundImage_ = backgroundImageBuilder_ == null + ? backgroundImage_ + : backgroundImageBuilder_.build(); + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.backgroundImageV2_ = backgroundImageV2Builder_ == null + ? backgroundImageV2_ + : backgroundImageV2Builder_.build(); + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.anchorDisplayText_ = anchorDisplayTextBuilder_ == null + ? anchorDisplayText_ + : anchorDisplayTextBuilder_.build(); + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.userEnterTipType_ = userEnterTipType_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.anchorEnterTipType_ = anchorEnterTipType_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.buriedPointMap_ = internalGetBuriedPointMap(); + result.buriedPointMap_.makeImmutable(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg.getDefaultInstance()) return this; + if (other.hasCommon()) { + mergeCommon(other.getCommon()); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getMemberCount() != 0L) { + setMemberCount(other.getMemberCount()); + } + if (other.hasOperator()) { + mergeOperator(other.getOperator()); + } + if (other.getIsSetToAdmin() != false) { + setIsSetToAdmin(other.getIsSetToAdmin()); + } + if (other.getIsTopUser() != false) { + setIsTopUser(other.getIsTopUser()); + } + if (other.getRankScore() != 0L) { + setRankScore(other.getRankScore()); + } + if (other.getTopUserNo() != 0L) { + setTopUserNo(other.getTopUserNo()); + } + if (other.getEnterType() != 0L) { + setEnterType(other.getEnterType()); + } + if (other.getAction() != 0L) { + setAction(other.getAction()); + } + if (!other.getActionDescription().isEmpty()) { + actionDescription_ = other.actionDescription_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.getUserId() != 0L) { + setUserId(other.getUserId()); + } + if (!other.getPopStr().isEmpty()) { + popStr_ = other.popStr_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasBackgroundImage()) { + mergeBackgroundImage(other.getBackgroundImage()); + } + if (other.hasBackgroundImageV2()) { + mergeBackgroundImageV2(other.getBackgroundImageV2()); + } + if (other.hasAnchorDisplayText()) { + mergeAnchorDisplayText(other.getAnchorDisplayText()); + } + if (other.getUserEnterTipType() != 0L) { + setUserEnterTipType(other.getUserEnterTipType()); + } + if (other.getAnchorEnterTipType() != 0L) { + setAnchorEnterTipType(other.getAnchorEnterTipType()); + } + internalGetMutableBuriedPointMap().mergeFrom( + other.internalGetBuriedPointMap()); + bitField0_ |= 0x00040000; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getCommonFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + memberCount_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + input.readMessage( + getOperatorFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: { + isSetToAdmin_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + isTopUser_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + rankScore_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + topUserNo_ = input.readInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + enterType_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: { + action_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 90: { + actionDescription_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 96: { + userId_ = input.readInt64(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 114: { + popStr_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 114 + case 130: { + input.readMessage( + getBackgroundImageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00002000; + break; + } // case 130 + case 138: { + input.readMessage( + getBackgroundImageV2FieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00004000; + break; + } // case 138 + case 146: { + input.readMessage( + getAnchorDisplayTextFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00008000; + break; + } // case 146 + case 160: { + userEnterTipType_ = input.readInt64(); + bitField0_ |= 0x00010000; + break; + } // case 160 + case 168: { + anchorEnterTipType_ = input.readInt64(); + bitField0_ |= 0x00020000; + break; + } // case 168 + case 178: { + com.google.protobuf.MapEntry + buriedPointMap__ = input.readMessage( + BuriedPointMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableBuriedPointMap().getMutableMap().put( + buriedPointMap__.getKey(), buriedPointMap__.getValue()); + bitField0_ |= 0x00040000; + break; + } // case 178 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common common_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> commonBuilder_; + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + public boolean hasCommon() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Common common = 1; + * @return The common. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon() { + if (commonBuilder_ == null) { + return common_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } else { + return commonBuilder_.getMessage(); + } + } + /** + * .Common common = 1; + */ + public Builder setCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + common_ = value; + } else { + commonBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder setCommon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder builderForValue) { + if (commonBuilder_ == null) { + common_ = builderForValue.build(); + } else { + commonBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder mergeCommon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common value) { + if (commonBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + common_ != null && + common_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) { + getCommonBuilder().mergeFrom(value); + } else { + common_ = value; + } + } else { + commonBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public Builder clearCommon() { + bitField0_ = (bitField0_ & ~0x00000001); + common_ = null; + if (commonBuilder_ != null) { + commonBuilder_.dispose(); + commonBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder getCommonBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getCommonFieldBuilder().getBuilder(); + } + /** + * .Common common = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder() { + if (commonBuilder_ != null) { + return commonBuilder_.getMessageOrBuilder(); + } else { + return common_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance() : common_; + } + } + /** + * .Common common = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder> + getCommonFieldBuilder() { + if (commonBuilder_ == null) { + commonBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder>( + getCommon(), + getParentForChildren(), + isClean()); + common_ = null; + } + return commonBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .User user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long memberCount_ ; + /** + * uint64 memberCount = 3; + * @return The memberCount. + */ + @java.lang.Override + public long getMemberCount() { + return memberCount_; + } + /** + * uint64 memberCount = 3; + * @param value The memberCount to set. + * @return This builder for chaining. + */ + public Builder setMemberCount(long value) { + + memberCount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 memberCount = 3; + * @return This builder for chaining. + */ + public Builder clearMemberCount() { + bitField0_ = (bitField0_ & ~0x00000004); + memberCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User operator_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> operatorBuilder_; + /** + * .User operator = 4; + * @return Whether the operator field is set. + */ + public boolean hasOperator() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .User operator = 4; + * @return The operator. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator() { + if (operatorBuilder_ == null) { + return operator_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; + } else { + return operatorBuilder_.getMessage(); + } + } + /** + * .User operator = 4; + */ + public Builder setOperator(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (operatorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + operator_ = value; + } else { + operatorBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User operator = 4; + */ + public Builder setOperator( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (operatorBuilder_ == null) { + operator_ = builderForValue.build(); + } else { + operatorBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User operator = 4; + */ + public Builder mergeOperator(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (operatorBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + operator_ != null && + operator_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getOperatorBuilder().mergeFrom(value); + } else { + operator_ = value; + } + } else { + operatorBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User operator = 4; + */ + public Builder clearOperator() { + bitField0_ = (bitField0_ & ~0x00000008); + operator_ = null; + if (operatorBuilder_ != null) { + operatorBuilder_.dispose(); + operatorBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User operator = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getOperatorBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getOperatorFieldBuilder().getBuilder(); + } + /** + * .User operator = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder() { + if (operatorBuilder_ != null) { + return operatorBuilder_.getMessageOrBuilder(); + } else { + return operator_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : operator_; + } + } + /** + * .User operator = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getOperatorFieldBuilder() { + if (operatorBuilder_ == null) { + operatorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getOperator(), + getParentForChildren(), + isClean()); + operator_ = null; + } + return operatorBuilder_; + } + + private boolean isSetToAdmin_ ; + /** + * bool isSetToAdmin = 5; + * @return The isSetToAdmin. + */ + @java.lang.Override + public boolean getIsSetToAdmin() { + return isSetToAdmin_; + } + /** + * bool isSetToAdmin = 5; + * @param value The isSetToAdmin to set. + * @return This builder for chaining. + */ + public Builder setIsSetToAdmin(boolean value) { + + isSetToAdmin_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * bool isSetToAdmin = 5; + * @return This builder for chaining. + */ + public Builder clearIsSetToAdmin() { + bitField0_ = (bitField0_ & ~0x00000010); + isSetToAdmin_ = false; + onChanged(); + return this; + } + + private boolean isTopUser_ ; + /** + * bool isTopUser = 6; + * @return The isTopUser. + */ + @java.lang.Override + public boolean getIsTopUser() { + return isTopUser_; + } + /** + * bool isTopUser = 6; + * @param value The isTopUser to set. + * @return This builder for chaining. + */ + public Builder setIsTopUser(boolean value) { + + isTopUser_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool isTopUser = 6; + * @return This builder for chaining. + */ + public Builder clearIsTopUser() { + bitField0_ = (bitField0_ & ~0x00000020); + isTopUser_ = false; + onChanged(); + return this; + } + + private long rankScore_ ; + /** + * int64 rankScore = 7; + * @return The rankScore. + */ + @java.lang.Override + public long getRankScore() { + return rankScore_; + } + /** + * int64 rankScore = 7; + * @param value The rankScore to set. + * @return This builder for chaining. + */ + public Builder setRankScore(long value) { + + rankScore_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * int64 rankScore = 7; + * @return This builder for chaining. + */ + public Builder clearRankScore() { + bitField0_ = (bitField0_ & ~0x00000040); + rankScore_ = 0L; + onChanged(); + return this; + } + + private long topUserNo_ ; + /** + * int64 topUserNo = 8; + * @return The topUserNo. + */ + @java.lang.Override + public long getTopUserNo() { + return topUserNo_; + } + /** + * int64 topUserNo = 8; + * @param value The topUserNo to set. + * @return This builder for chaining. + */ + public Builder setTopUserNo(long value) { + + topUserNo_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * int64 topUserNo = 8; + * @return This builder for chaining. + */ + public Builder clearTopUserNo() { + bitField0_ = (bitField0_ & ~0x00000080); + topUserNo_ = 0L; + onChanged(); + return this; + } + + private long enterType_ ; + /** + * int64 enterType = 9; + * @return The enterType. + */ + @java.lang.Override + public long getEnterType() { + return enterType_; + } + /** + * int64 enterType = 9; + * @param value The enterType to set. + * @return This builder for chaining. + */ + public Builder setEnterType(long value) { + + enterType_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * int64 enterType = 9; + * @return This builder for chaining. + */ + public Builder clearEnterType() { + bitField0_ = (bitField0_ & ~0x00000100); + enterType_ = 0L; + onChanged(); + return this; + } + + private long action_ ; + /** + * int64 action = 10; + * @return The action. + */ + @java.lang.Override + public long getAction() { + return action_; + } + /** + * int64 action = 10; + * @param value The action to set. + * @return This builder for chaining. + */ + public Builder setAction(long value) { + + action_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * int64 action = 10; + * @return This builder for chaining. + */ + public Builder clearAction() { + bitField0_ = (bitField0_ & ~0x00000200); + action_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object actionDescription_ = ""; + /** + * string actionDescription = 11; + * @return The actionDescription. + */ + public java.lang.String getActionDescription() { + java.lang.Object ref = actionDescription_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + actionDescription_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string actionDescription = 11; + * @return The bytes for actionDescription. + */ + public com.google.protobuf.ByteString + getActionDescriptionBytes() { + java.lang.Object ref = actionDescription_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + actionDescription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string actionDescription = 11; + * @param value The actionDescription to set. + * @return This builder for chaining. + */ + public Builder setActionDescription( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + actionDescription_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string actionDescription = 11; + * @return This builder for chaining. + */ + public Builder clearActionDescription() { + actionDescription_ = getDefaultInstance().getActionDescription(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string actionDescription = 11; + * @param value The bytes for actionDescription to set. + * @return This builder for chaining. + */ + public Builder setActionDescriptionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + actionDescription_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private long userId_ ; + /** + * int64 userId = 12; + * @return The userId. + */ + @java.lang.Override + public long getUserId() { + return userId_; + } + /** + * int64 userId = 12; + * @param value The userId to set. + * @return This builder for chaining. + */ + public Builder setUserId(long value) { + + userId_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * int64 userId = 12; + * @return This builder for chaining. + */ + public Builder clearUserId() { + bitField0_ = (bitField0_ & ~0x00000800); + userId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object popStr_ = ""; + /** + *
+     * EffectConfig effectConfig = 13;
+     * 
+ * + * string popStr = 14; + * @return The popStr. + */ + public java.lang.String getPopStr() { + java.lang.Object ref = popStr_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + popStr_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * EffectConfig effectConfig = 13;
+     * 
+ * + * string popStr = 14; + * @return The bytes for popStr. + */ + public com.google.protobuf.ByteString + getPopStrBytes() { + java.lang.Object ref = popStr_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + popStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * EffectConfig effectConfig = 13;
+     * 
+ * + * string popStr = 14; + * @param value The popStr to set. + * @return This builder for chaining. + */ + public Builder setPopStr( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + popStr_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + *
+     * EffectConfig effectConfig = 13;
+     * 
+ * + * string popStr = 14; + * @return This builder for chaining. + */ + public Builder clearPopStr() { + popStr_ = getDefaultInstance().getPopStr(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + *
+     * EffectConfig effectConfig = 13;
+     * 
+ * + * string popStr = 14; + * @param value The bytes for popStr to set. + * @return This builder for chaining. + */ + public Builder setPopStrBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + popStr_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImage_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageBuilder_; + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + * @return Whether the backgroundImage field is set. + */ + public boolean hasBackgroundImage() { + return ((bitField0_ & 0x00002000) != 0); + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + * @return The backgroundImage. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage() { + if (backgroundImageBuilder_ == null) { + return backgroundImage_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } else { + return backgroundImageBuilder_.getMessage(); + } + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public Builder setBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + backgroundImage_ = value; + } else { + backgroundImageBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public Builder setBackgroundImage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundImageBuilder_ == null) { + backgroundImage_ = builderForValue.build(); + } else { + backgroundImageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public Builder mergeBackgroundImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0) && + backgroundImage_ != null && + backgroundImage_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundImageBuilder().mergeFrom(value); + } else { + backgroundImage_ = value; + } + } else { + backgroundImageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public Builder clearBackgroundImage() { + bitField0_ = (bitField0_ & ~0x00002000); + backgroundImage_ = null; + if (backgroundImageBuilder_ != null) { + backgroundImageBuilder_.dispose(); + backgroundImageBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getBackgroundImageFieldBuilder().getBuilder(); + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder() { + if (backgroundImageBuilder_ != null) { + return backgroundImageBuilder_.getMessageOrBuilder(); + } else { + return backgroundImage_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImage_; + } + } + /** + *
+     * EffectConfig enterEffectConfig = 15;
+     * 
+ * + * .Image backgroundImage = 16; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundImageFieldBuilder() { + if (backgroundImageBuilder_ == null) { + backgroundImageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackgroundImage(), + getParentForChildren(), + isClean()); + backgroundImage_ = null; + } + return backgroundImageBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundImageV2_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundImageV2Builder_; + /** + * .Image backgroundImageV2 = 17; + * @return Whether the backgroundImageV2 field is set. + */ + public boolean hasBackgroundImageV2() { + return ((bitField0_ & 0x00004000) != 0); + } + /** + * .Image backgroundImageV2 = 17; + * @return The backgroundImageV2. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2() { + if (backgroundImageV2Builder_ == null) { + return backgroundImageV2_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } else { + return backgroundImageV2Builder_.getMessage(); + } + } + /** + * .Image backgroundImageV2 = 17; + */ + public Builder setBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageV2Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + backgroundImageV2_ = value; + } else { + backgroundImageV2Builder_.setMessage(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .Image backgroundImageV2 = 17; + */ + public Builder setBackgroundImageV2( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundImageV2Builder_ == null) { + backgroundImageV2_ = builderForValue.build(); + } else { + backgroundImageV2Builder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .Image backgroundImageV2 = 17; + */ + public Builder mergeBackgroundImageV2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundImageV2Builder_ == null) { + if (((bitField0_ & 0x00004000) != 0) && + backgroundImageV2_ != null && + backgroundImageV2_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundImageV2Builder().mergeFrom(value); + } else { + backgroundImageV2_ = value; + } + } else { + backgroundImageV2Builder_.mergeFrom(value); + } + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .Image backgroundImageV2 = 17; + */ + public Builder clearBackgroundImageV2() { + bitField0_ = (bitField0_ & ~0x00004000); + backgroundImageV2_ = null; + if (backgroundImageV2Builder_ != null) { + backgroundImageV2Builder_.dispose(); + backgroundImageV2Builder_ = null; + } + onChanged(); + return this; + } + /** + * .Image backgroundImageV2 = 17; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundImageV2Builder() { + bitField0_ |= 0x00004000; + onChanged(); + return getBackgroundImageV2FieldBuilder().getBuilder(); + } + /** + * .Image backgroundImageV2 = 17; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder() { + if (backgroundImageV2Builder_ != null) { + return backgroundImageV2Builder_.getMessageOrBuilder(); + } else { + return backgroundImageV2_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundImageV2_; + } + } + /** + * .Image backgroundImageV2 = 17; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundImageV2FieldBuilder() { + if (backgroundImageV2Builder_ == null) { + backgroundImageV2Builder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackgroundImageV2(), + getParentForChildren(), + isClean()); + backgroundImageV2_ = null; + } + return backgroundImageV2Builder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text anchorDisplayText_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> anchorDisplayTextBuilder_; + /** + * .Text anchorDisplayText = 18; + * @return Whether the anchorDisplayText field is set. + */ + public boolean hasAnchorDisplayText() { + return ((bitField0_ & 0x00008000) != 0); + } + /** + * .Text anchorDisplayText = 18; + * @return The anchorDisplayText. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText() { + if (anchorDisplayTextBuilder_ == null) { + return anchorDisplayText_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; + } else { + return anchorDisplayTextBuilder_.getMessage(); + } + } + /** + * .Text anchorDisplayText = 18; + */ + public Builder setAnchorDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (anchorDisplayTextBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + anchorDisplayText_ = value; + } else { + anchorDisplayTextBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Text anchorDisplayText = 18; + */ + public Builder setAnchorDisplayText( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { + if (anchorDisplayTextBuilder_ == null) { + anchorDisplayText_ = builderForValue.build(); + } else { + anchorDisplayTextBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Text anchorDisplayText = 18; + */ + public Builder mergeAnchorDisplayText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (anchorDisplayTextBuilder_ == null) { + if (((bitField0_ & 0x00008000) != 0) && + anchorDisplayText_ != null && + anchorDisplayText_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { + getAnchorDisplayTextBuilder().mergeFrom(value); + } else { + anchorDisplayText_ = value; + } + } else { + anchorDisplayTextBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Text anchorDisplayText = 18; + */ + public Builder clearAnchorDisplayText() { + bitField0_ = (bitField0_ & ~0x00008000); + anchorDisplayText_ = null; + if (anchorDisplayTextBuilder_ != null) { + anchorDisplayTextBuilder_.dispose(); + anchorDisplayTextBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Text anchorDisplayText = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getAnchorDisplayTextBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return getAnchorDisplayTextFieldBuilder().getBuilder(); + } + /** + * .Text anchorDisplayText = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder() { + if (anchorDisplayTextBuilder_ != null) { + return anchorDisplayTextBuilder_.getMessageOrBuilder(); + } else { + return anchorDisplayText_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : anchorDisplayText_; + } + } + /** + * .Text anchorDisplayText = 18; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> + getAnchorDisplayTextFieldBuilder() { + if (anchorDisplayTextBuilder_ == null) { + anchorDisplayTextBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( + getAnchorDisplayText(), + getParentForChildren(), + isClean()); + anchorDisplayText_ = null; + } + return anchorDisplayTextBuilder_; + } + + private long userEnterTipType_ ; + /** + *
+     * PublicAreaCommon publicAreaCommon = 19;
+     * 
+ * + * int64 userEnterTipType = 20; + * @return The userEnterTipType. + */ + @java.lang.Override + public long getUserEnterTipType() { + return userEnterTipType_; + } + /** + *
+     * PublicAreaCommon publicAreaCommon = 19;
+     * 
+ * + * int64 userEnterTipType = 20; + * @param value The userEnterTipType to set. + * @return This builder for chaining. + */ + public Builder setUserEnterTipType(long value) { + + userEnterTipType_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + *
+     * PublicAreaCommon publicAreaCommon = 19;
+     * 
+ * + * int64 userEnterTipType = 20; + * @return This builder for chaining. + */ + public Builder clearUserEnterTipType() { + bitField0_ = (bitField0_ & ~0x00010000); + userEnterTipType_ = 0L; + onChanged(); + return this; + } + + private long anchorEnterTipType_ ; + /** + * int64 anchorEnterTipType = 21; + * @return The anchorEnterTipType. + */ + @java.lang.Override + public long getAnchorEnterTipType() { + return anchorEnterTipType_; + } + /** + * int64 anchorEnterTipType = 21; + * @param value The anchorEnterTipType to set. + * @return This builder for chaining. + */ + public Builder setAnchorEnterTipType(long value) { + + anchorEnterTipType_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * int64 anchorEnterTipType = 21; + * @return This builder for chaining. + */ + public Builder clearAnchorEnterTipType() { + bitField0_ = (bitField0_ & ~0x00020000); + anchorEnterTipType_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> buriedPointMap_; + private com.google.protobuf.MapField + internalGetBuriedPointMap() { + if (buriedPointMap_ == null) { + return com.google.protobuf.MapField.emptyMapField( + BuriedPointMapDefaultEntryHolder.defaultEntry); + } + return buriedPointMap_; + } + private com.google.protobuf.MapField + internalGetMutableBuriedPointMap() { + if (buriedPointMap_ == null) { + buriedPointMap_ = com.google.protobuf.MapField.newMapField( + BuriedPointMapDefaultEntryHolder.defaultEntry); + } + if (!buriedPointMap_.isMutable()) { + buriedPointMap_ = buriedPointMap_.copy(); + } + bitField0_ |= 0x00040000; + onChanged(); + return buriedPointMap_; + } + public int getBuriedPointMapCount() { + return internalGetBuriedPointMap().getMap().size(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public boolean containsBuriedPointMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetBuriedPointMap().getMap().containsKey(key); + } + /** + * Use {@link #getBuriedPointMapMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getBuriedPointMap() { + return getBuriedPointMapMap(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public java.util.Map getBuriedPointMapMap() { + return internalGetBuriedPointMap().getMap(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getBuriedPointMapOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetBuriedPointMap().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> buriedPointMap = 22; + */ + @java.lang.Override + public java.lang.String getBuriedPointMapOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetBuriedPointMap().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearBuriedPointMap() { + bitField0_ = (bitField0_ & ~0x00040000); + internalGetMutableBuriedPointMap().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> buriedPointMap = 22; + */ + public Builder removeBuriedPointMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableBuriedPointMap().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableBuriedPointMap() { + bitField0_ |= 0x00040000; + return internalGetMutableBuriedPointMap().getMutableMap(); + } + /** + * map<string, string> buriedPointMap = 22; + */ + public Builder putBuriedPointMap( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableBuriedPointMap().getMutableMap() + .put(key, value); + bitField0_ |= 0x00040000; + return this; + } + /** + * map<string, string> buriedPointMap = 22; + */ + public Builder putAllBuriedPointMap( + java.util.Map values) { + internalGetMutableBuriedPointMap().getMutableMap() + .putAll(values); + bitField0_ |= 0x00040000; + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_webcast_member_message_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java new file mode 100644 index 00000000..52d111be --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_webcast_member_message_msgOrBuilder.java @@ -0,0 +1,265 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_webcast_member_message_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_webcast_member_message_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_webcast_member_message_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * .Common common = 1; + * @return Whether the common field is set. + */ + boolean hasCommon(); + /** + * .Common common = 1; + * @return The common. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getCommon(); + /** + * .Common common = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder getCommonOrBuilder(); + + /** + * .User user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + * uint64 memberCount = 3; + * @return The memberCount. + */ + long getMemberCount(); + + /** + * .User operator = 4; + * @return Whether the operator field is set. + */ + boolean hasOperator(); + /** + * .User operator = 4; + * @return The operator. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getOperator(); + /** + * .User operator = 4; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getOperatorOrBuilder(); + + /** + * bool isSetToAdmin = 5; + * @return The isSetToAdmin. + */ + boolean getIsSetToAdmin(); + + /** + * bool isTopUser = 6; + * @return The isTopUser. + */ + boolean getIsTopUser(); + + /** + * int64 rankScore = 7; + * @return The rankScore. + */ + long getRankScore(); + + /** + * int64 topUserNo = 8; + * @return The topUserNo. + */ + long getTopUserNo(); + + /** + * int64 enterType = 9; + * @return The enterType. + */ + long getEnterType(); + + /** + * int64 action = 10; + * @return The action. + */ + long getAction(); + + /** + * string actionDescription = 11; + * @return The actionDescription. + */ + java.lang.String getActionDescription(); + /** + * string actionDescription = 11; + * @return The bytes for actionDescription. + */ + com.google.protobuf.ByteString + getActionDescriptionBytes(); + + /** + * int64 userId = 12; + * @return The userId. + */ + long getUserId(); + + /** + *
+   * EffectConfig effectConfig = 13;
+   * 
+ * + * string popStr = 14; + * @return The popStr. + */ + java.lang.String getPopStr(); + /** + *
+   * EffectConfig effectConfig = 13;
+   * 
+ * + * string popStr = 14; + * @return The bytes for popStr. + */ + com.google.protobuf.ByteString + getPopStrBytes(); + + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + * @return Whether the backgroundImage field is set. + */ + boolean hasBackgroundImage(); + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + * @return The backgroundImage. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImage(); + /** + *
+   * EffectConfig enterEffectConfig = 15;
+   * 
+ * + * .Image backgroundImage = 16; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageOrBuilder(); + + /** + * .Image backgroundImageV2 = 17; + * @return Whether the backgroundImageV2 field is set. + */ + boolean hasBackgroundImageV2(); + /** + * .Image backgroundImageV2 = 17; + * @return The backgroundImageV2. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundImageV2(); + /** + * .Image backgroundImageV2 = 17; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundImageV2OrBuilder(); + + /** + * .Text anchorDisplayText = 18; + * @return Whether the anchorDisplayText field is set. + */ + boolean hasAnchorDisplayText(); + /** + * .Text anchorDisplayText = 18; + * @return The anchorDisplayText. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getAnchorDisplayText(); + /** + * .Text anchorDisplayText = 18; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getAnchorDisplayTextOrBuilder(); + + /** + *
+   * PublicAreaCommon publicAreaCommon = 19;
+   * 
+ * + * int64 userEnterTipType = 20; + * @return The userEnterTipType. + */ + long getUserEnterTipType(); + + /** + * int64 anchorEnterTipType = 21; + * @return The anchorEnterTipType. + */ + long getAnchorEnterTipType(); + + /** + * map<string, string> buriedPointMap = 22; + */ + int getBuriedPointMapCount(); + /** + * map<string, string> buriedPointMap = 22; + */ + boolean containsBuriedPointMap( + java.lang.String key); + /** + * Use {@link #getBuriedPointMapMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getBuriedPointMap(); + /** + * map<string, string> buriedPointMap = 22; + */ + java.util.Map + getBuriedPointMapMap(); + /** + * map<string, string> buriedPointMap = 22; + */ + /* nullable */ +java.lang.String getBuriedPointMapOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue); + /** + * map<string, string> buriedPointMap = 22; + */ + java.lang.String getBuriedPointMapOrThrow( + java.lang.String key); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java new file mode 100644 index 00000000..8caffe8a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame.java @@ -0,0 +1,1315 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame} + */ +public final class douyin_websocket_frame extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) + douyin_websocket_frameOrBuilder { +private static final long serialVersionUID = 0L; + // Use douyin_websocket_frame.newBuilder() to construct. + private douyin_websocket_frame(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_websocket_frame() { + payloadEncoding_ = ""; + payloadType_ = ""; + payload_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_websocket_frame(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 5: + return internalGetHeadersList(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.Builder.class); + } + + public static final int SEQ_ID_FIELD_NUMBER = 1; + private long seqId_ = 0L; + /** + * uint64 seq_id = 1; + * @return The seqId. + */ + @java.lang.Override + public long getSeqId() { + return seqId_; + } + + public static final int LOG_ID_FIELD_NUMBER = 2; + private long logId_ = 0L; + /** + * uint64 log_id = 2; + * @return The logId. + */ + @java.lang.Override + public long getLogId() { + return logId_; + } + + public static final int SERVICE_FIELD_NUMBER = 3; + private long service_ = 0L; + /** + * uint64 service = 3; + * @return The service. + */ + @java.lang.Override + public long getService() { + return service_; + } + + public static final int METHOD_FIELD_NUMBER = 4; + private long method_ = 0L; + /** + * uint64 method = 4; + * @return The method. + */ + @java.lang.Override + public long getMethod() { + return method_; + } + + public static final int HEADERS_LIST_FIELD_NUMBER = 5; + private static final class HeadersListDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_HeadersListEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> headersList_; + private com.google.protobuf.MapField + internalGetHeadersList() { + if (headersList_ == null) { + return com.google.protobuf.MapField.emptyMapField( + HeadersListDefaultEntryHolder.defaultEntry); + } + return headersList_; + } + public int getHeadersListCount() { + return internalGetHeadersList().getMap().size(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public boolean containsHeadersList( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetHeadersList().getMap().containsKey(key); + } + /** + * Use {@link #getHeadersListMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getHeadersList() { + return getHeadersListMap(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public java.util.Map getHeadersListMap() { + return internalGetHeadersList().getMap(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getHeadersListOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetHeadersList().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public java.lang.String getHeadersListOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetHeadersList().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int PAYLOAD_ENCODING_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object payloadEncoding_ = ""; + /** + * string payload_encoding = 6; + * @return The payloadEncoding. + */ + @java.lang.Override + public java.lang.String getPayloadEncoding() { + java.lang.Object ref = payloadEncoding_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + payloadEncoding_ = s; + return s; + } + } + /** + * string payload_encoding = 6; + * @return The bytes for payloadEncoding. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPayloadEncodingBytes() { + java.lang.Object ref = payloadEncoding_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + payloadEncoding_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAYLOAD_TYPE_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object payloadType_ = ""; + /** + * string payload_type = 7; + * @return The payloadType. + */ + @java.lang.Override + public java.lang.String getPayloadType() { + java.lang.Object ref = payloadType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + payloadType_ = s; + return s; + } + } + /** + * string payload_type = 7; + * @return The bytes for payloadType. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPayloadTypeBytes() { + java.lang.Object ref = payloadType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + payloadType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAYLOAD_FIELD_NUMBER = 8; + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 8; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (seqId_ != 0L) { + output.writeUInt64(1, seqId_); + } + if (logId_ != 0L) { + output.writeUInt64(2, logId_); + } + if (service_ != 0L) { + output.writeUInt64(3, service_); + } + if (method_ != 0L) { + output.writeUInt64(4, method_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetHeadersList(), + HeadersListDefaultEntryHolder.defaultEntry, + 5); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadEncoding_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, payloadEncoding_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadType_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, payloadType_); + } + if (!payload_.isEmpty()) { + output.writeBytes(8, payload_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (seqId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, seqId_); + } + if (logId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, logId_); + } + if (service_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, service_); + } + if (method_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, method_); + } + for (java.util.Map.Entry entry + : internalGetHeadersList().getMap().entrySet()) { + com.google.protobuf.MapEntry + headersList__ = HeadersListDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, headersList__); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadEncoding_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, payloadEncoding_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(payloadType_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, payloadType_); + } + if (!payload_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(8, payload_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) obj; + + if (getSeqId() + != other.getSeqId()) return false; + if (getLogId() + != other.getLogId()) return false; + if (getService() + != other.getService()) return false; + if (getMethod() + != other.getMethod()) return false; + if (!internalGetHeadersList().equals( + other.internalGetHeadersList())) return false; + if (!getPayloadEncoding() + .equals(other.getPayloadEncoding())) return false; + if (!getPayloadType() + .equals(other.getPayloadType())) return false; + if (!getPayload() + .equals(other.getPayload())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQ_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSeqId()); + hash = (37 * hash) + LOG_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLogId()); + hash = (37 * hash) + SERVICE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getService()); + hash = (37 * hash) + METHOD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMethod()); + if (!internalGetHeadersList().getMap().isEmpty()) { + hash = (37 * hash) + HEADERS_LIST_FIELD_NUMBER; + hash = (53 * hash) + internalGetHeadersList().hashCode(); + } + hash = (37 * hash) + PAYLOAD_ENCODING_FIELD_NUMBER; + hash = (53 * hash) + getPayloadEncoding().hashCode(); + hash = (37 * hash) + PAYLOAD_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getPayloadType().hashCode(); + hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; + hash = (53 * hash) + getPayload().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frameOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 5: + return internalGetHeadersList(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 5: + return internalGetMutableHeadersList(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + seqId_ = 0L; + logId_ = 0L; + service_ = 0L; + method_ = 0L; + internalGetMutableHeadersList().clear(); + payloadEncoding_ = ""; + payloadType_ = ""; + payload_ = com.google.protobuf.ByteString.EMPTY; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_websocket_frameProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.seqId_ = seqId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.logId_ = logId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.service_ = service_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.method_ = method_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.headersList_ = internalGetHeadersList(); + result.headersList_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.payloadEncoding_ = payloadEncoding_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.payloadType_ = payloadType_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.payload_ = payload_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame.getDefaultInstance()) return this; + if (other.getSeqId() != 0L) { + setSeqId(other.getSeqId()); + } + if (other.getLogId() != 0L) { + setLogId(other.getLogId()); + } + if (other.getService() != 0L) { + setService(other.getService()); + } + if (other.getMethod() != 0L) { + setMethod(other.getMethod()); + } + internalGetMutableHeadersList().mergeFrom( + other.internalGetHeadersList()); + bitField0_ |= 0x00000010; + if (!other.getPayloadEncoding().isEmpty()) { + payloadEncoding_ = other.payloadEncoding_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getPayloadType().isEmpty()) { + payloadType_ = other.payloadType_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { + setPayload(other.getPayload()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + seqId_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + logId_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + service_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + method_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + com.google.protobuf.MapEntry + headersList__ = input.readMessage( + HeadersListDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableHeadersList().getMutableMap().put( + headersList__.getKey(), headersList__.getValue()); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + payloadEncoding_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + payloadType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + payload_ = input.readBytes(); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long seqId_ ; + /** + * uint64 seq_id = 1; + * @return The seqId. + */ + @java.lang.Override + public long getSeqId() { + return seqId_; + } + /** + * uint64 seq_id = 1; + * @param value The seqId to set. + * @return This builder for chaining. + */ + public Builder setSeqId(long value) { + + seqId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 seq_id = 1; + * @return This builder for chaining. + */ + public Builder clearSeqId() { + bitField0_ = (bitField0_ & ~0x00000001); + seqId_ = 0L; + onChanged(); + return this; + } + + private long logId_ ; + /** + * uint64 log_id = 2; + * @return The logId. + */ + @java.lang.Override + public long getLogId() { + return logId_; + } + /** + * uint64 log_id = 2; + * @param value The logId to set. + * @return This builder for chaining. + */ + public Builder setLogId(long value) { + + logId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 log_id = 2; + * @return This builder for chaining. + */ + public Builder clearLogId() { + bitField0_ = (bitField0_ & ~0x00000002); + logId_ = 0L; + onChanged(); + return this; + } + + private long service_ ; + /** + * uint64 service = 3; + * @return The service. + */ + @java.lang.Override + public long getService() { + return service_; + } + /** + * uint64 service = 3; + * @param value The service to set. + * @return This builder for chaining. + */ + public Builder setService(long value) { + + service_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 service = 3; + * @return This builder for chaining. + */ + public Builder clearService() { + bitField0_ = (bitField0_ & ~0x00000004); + service_ = 0L; + onChanged(); + return this; + } + + private long method_ ; + /** + * uint64 method = 4; + * @return The method. + */ + @java.lang.Override + public long getMethod() { + return method_; + } + /** + * uint64 method = 4; + * @param value The method to set. + * @return This builder for chaining. + */ + public Builder setMethod(long value) { + + method_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 method = 4; + * @return This builder for chaining. + */ + public Builder clearMethod() { + bitField0_ = (bitField0_ & ~0x00000008); + method_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> headersList_; + private com.google.protobuf.MapField + internalGetHeadersList() { + if (headersList_ == null) { + return com.google.protobuf.MapField.emptyMapField( + HeadersListDefaultEntryHolder.defaultEntry); + } + return headersList_; + } + private com.google.protobuf.MapField + internalGetMutableHeadersList() { + if (headersList_ == null) { + headersList_ = com.google.protobuf.MapField.newMapField( + HeadersListDefaultEntryHolder.defaultEntry); + } + if (!headersList_.isMutable()) { + headersList_ = headersList_.copy(); + } + bitField0_ |= 0x00000010; + onChanged(); + return headersList_; + } + public int getHeadersListCount() { + return internalGetHeadersList().getMap().size(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public boolean containsHeadersList( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetHeadersList().getMap().containsKey(key); + } + /** + * Use {@link #getHeadersListMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getHeadersList() { + return getHeadersListMap(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public java.util.Map getHeadersListMap() { + return internalGetHeadersList().getMap(); + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getHeadersListOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetHeadersList().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> headers_list = 5; + */ + @java.lang.Override + public java.lang.String getHeadersListOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetHeadersList().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearHeadersList() { + bitField0_ = (bitField0_ & ~0x00000010); + internalGetMutableHeadersList().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> headers_list = 5; + */ + public Builder removeHeadersList( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableHeadersList().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableHeadersList() { + bitField0_ |= 0x00000010; + return internalGetMutableHeadersList().getMutableMap(); + } + /** + * map<string, string> headers_list = 5; + */ + public Builder putHeadersList( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableHeadersList().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000010; + return this; + } + /** + * map<string, string> headers_list = 5; + */ + public Builder putAllHeadersList( + java.util.Map values) { + internalGetMutableHeadersList().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000010; + return this; + } + + private java.lang.Object payloadEncoding_ = ""; + /** + * string payload_encoding = 6; + * @return The payloadEncoding. + */ + public java.lang.String getPayloadEncoding() { + java.lang.Object ref = payloadEncoding_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + payloadEncoding_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string payload_encoding = 6; + * @return The bytes for payloadEncoding. + */ + public com.google.protobuf.ByteString + getPayloadEncodingBytes() { + java.lang.Object ref = payloadEncoding_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + payloadEncoding_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string payload_encoding = 6; + * @param value The payloadEncoding to set. + * @return This builder for chaining. + */ + public Builder setPayloadEncoding( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + payloadEncoding_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string payload_encoding = 6; + * @return This builder for chaining. + */ + public Builder clearPayloadEncoding() { + payloadEncoding_ = getDefaultInstance().getPayloadEncoding(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string payload_encoding = 6; + * @param value The bytes for payloadEncoding to set. + * @return This builder for chaining. + */ + public Builder setPayloadEncodingBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + payloadEncoding_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object payloadType_ = ""; + /** + * string payload_type = 7; + * @return The payloadType. + */ + public java.lang.String getPayloadType() { + java.lang.Object ref = payloadType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + payloadType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string payload_type = 7; + * @return The bytes for payloadType. + */ + public com.google.protobuf.ByteString + getPayloadTypeBytes() { + java.lang.Object ref = payloadType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + payloadType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string payload_type = 7; + * @param value The payloadType to set. + * @return This builder for chaining. + */ + public Builder setPayloadType( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + payloadType_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string payload_type = 7; + * @return This builder for chaining. + */ + public Builder clearPayloadType() { + payloadType_ = getDefaultInstance().getPayloadType(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string payload_type = 7; + * @param value The bytes for payloadType to set. + * @return This builder for chaining. + */ + public Builder setPayloadTypeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + payloadType_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 8; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + /** + * bytes payload = 8; + * @param value The payload to set. + * @return This builder for chaining. + */ + public Builder setPayload(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + payload_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bytes payload = 8; + * @return This builder for chaining. + */ + public Builder clearPayload() { + bitField0_ = (bitField0_ & ~0x00000080); + payload_ = getDefaultInstance().getPayload(); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_websocket_frame parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java new file mode 100644 index 00000000..9bf36f73 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frameOrBuilder.java @@ -0,0 +1,121 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_websocket_frameOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 seq_id = 1; + * @return The seqId. + */ + long getSeqId(); + + /** + * uint64 log_id = 2; + * @return The logId. + */ + long getLogId(); + + /** + * uint64 service = 3; + * @return The service. + */ + long getService(); + + /** + * uint64 method = 4; + * @return The method. + */ + long getMethod(); + + /** + * map<string, string> headers_list = 5; + */ + int getHeadersListCount(); + /** + * map<string, string> headers_list = 5; + */ + boolean containsHeadersList( + java.lang.String key); + /** + * Use {@link #getHeadersListMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getHeadersList(); + /** + * map<string, string> headers_list = 5; + */ + java.util.Map + getHeadersListMap(); + /** + * map<string, string> headers_list = 5; + */ + /* nullable */ +java.lang.String getHeadersListOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue); + /** + * map<string, string> headers_list = 5; + */ + java.lang.String getHeadersListOrThrow( + java.lang.String key); + + /** + * string payload_encoding = 6; + * @return The payloadEncoding. + */ + java.lang.String getPayloadEncoding(); + /** + * string payload_encoding = 6; + * @return The bytes for payloadEncoding. + */ + com.google.protobuf.ByteString + getPayloadEncodingBytes(); + + /** + * string payload_type = 7; + * @return The payloadType. + */ + java.lang.String getPayloadType(); + /** + * string payload_type = 7; + * @return The bytes for payloadType. + */ + com.google.protobuf.ByteString + getPayloadTypeBytes(); + + /** + * bytes payload = 8; + * @return The payload. + */ + com.google.protobuf.ByteString getPayload(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java new file mode 100644 index 00000000..5037b9fe --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msg.java @@ -0,0 +1,2007 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +/** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg} + */ +public final class douyin_websocket_frame_msg extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) + douyin_websocket_frame_msgOrBuilder { +private static final long serialVersionUID = 0L; + // Use douyin_websocket_frame_msg.newBuilder() to construct. + private douyin_websocket_frame_msg(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private douyin_websocket_frame_msg() { + messagesList_ = java.util.Collections.emptyList(); + cursor_ = ""; + internalExt_ = ""; + pushServer_ = ""; + liveCursor_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new douyin_websocket_frame_msg(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 7: + return internalGetRouteParams(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.Builder.class); + } + + public static final int MESSAGES_LIST_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List messagesList_; + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + @java.lang.Override + public java.util.List getMessagesListList() { + return messagesList_; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + @java.lang.Override + public java.util.List + getMessagesListOrBuilderList() { + return messagesList_; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + @java.lang.Override + public int getMessagesListCount() { + return messagesList_.size(); + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index) { + return messagesList_.get(index); + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( + int index) { + return messagesList_.get(index); + } + + public static final int CURSOR_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object cursor_ = ""; + /** + * string cursor = 2; + * @return The cursor. + */ + @java.lang.Override + public java.lang.String getCursor() { + java.lang.Object ref = cursor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cursor_ = s; + return s; + } + } + /** + * string cursor = 2; + * @return The bytes for cursor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCursorBytes() { + java.lang.Object ref = cursor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FETCH_INTERVAL_FIELD_NUMBER = 3; + private long fetchInterval_ = 0L; + /** + * uint64 fetch_interval = 3; + * @return The fetchInterval. + */ + @java.lang.Override + public long getFetchInterval() { + return fetchInterval_; + } + + public static final int NOW_FIELD_NUMBER = 4; + private long now_ = 0L; + /** + * uint64 now = 4; + * @return The now. + */ + @java.lang.Override + public long getNow() { + return now_; + } + + public static final int INTERNAL_EXT_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object internalExt_ = ""; + /** + * string internal_ext = 5; + * @return The internalExt. + */ + @java.lang.Override + public java.lang.String getInternalExt() { + java.lang.Object ref = internalExt_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + internalExt_ = s; + return s; + } + } + /** + * string internal_ext = 5; + * @return The bytes for internalExt. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getInternalExtBytes() { + java.lang.Object ref = internalExt_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + internalExt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FETCH_TYPE_FIELD_NUMBER = 6; + private int fetchType_ = 0; + /** + * uint32 fetch_type = 6; + * @return The fetchType. + */ + @java.lang.Override + public int getFetchType() { + return fetchType_; + } + + public static final int ROUTE_PARAMS_FIELD_NUMBER = 7; + private static final class RouteParamsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> routeParams_; + private com.google.protobuf.MapField + internalGetRouteParams() { + if (routeParams_ == null) { + return com.google.protobuf.MapField.emptyMapField( + RouteParamsDefaultEntryHolder.defaultEntry); + } + return routeParams_; + } + public int getRouteParamsCount() { + return internalGetRouteParams().getMap().size(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public boolean containsRouteParams( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetRouteParams().getMap().containsKey(key); + } + /** + * Use {@link #getRouteParamsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getRouteParams() { + return getRouteParamsMap(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public java.util.Map getRouteParamsMap() { + return internalGetRouteParams().getMap(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getRouteParamsOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetRouteParams().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public java.lang.String getRouteParamsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetRouteParams().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int HEARTBEAT_DURATION_FIELD_NUMBER = 8; + private long heartbeatDuration_ = 0L; + /** + * uint64 heartbeat_duration = 8; + * @return The heartbeatDuration. + */ + @java.lang.Override + public long getHeartbeatDuration() { + return heartbeatDuration_; + } + + public static final int NEED_ACK_FIELD_NUMBER = 9; + private boolean needAck_ = false; + /** + * bool need_ack = 9; + * @return The needAck. + */ + @java.lang.Override + public boolean getNeedAck() { + return needAck_; + } + + public static final int PUSH_SERVER_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object pushServer_ = ""; + /** + * string push_server = 10; + * @return The pushServer. + */ + @java.lang.Override + public java.lang.String getPushServer() { + java.lang.Object ref = pushServer_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pushServer_ = s; + return s; + } + } + /** + * string push_server = 10; + * @return The bytes for pushServer. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPushServerBytes() { + java.lang.Object ref = pushServer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pushServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LIVE_CURSOR_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private volatile java.lang.Object liveCursor_ = ""; + /** + * string live_cursor = 11; + * @return The liveCursor. + */ + @java.lang.Override + public java.lang.String getLiveCursor() { + java.lang.Object ref = liveCursor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + liveCursor_ = s; + return s; + } + } + /** + * string live_cursor = 11; + * @return The bytes for liveCursor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLiveCursorBytes() { + java.lang.Object ref = liveCursor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + liveCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HISTORY_NO_MORE_FIELD_NUMBER = 12; + private boolean historyNoMore_ = false; + /** + * bool history_no_more = 12; + * @return The historyNoMore. + */ + @java.lang.Override + public boolean getHistoryNoMore() { + return historyNoMore_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < messagesList_.size(); i++) { + output.writeMessage(1, messagesList_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cursor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, cursor_); + } + if (fetchInterval_ != 0L) { + output.writeUInt64(3, fetchInterval_); + } + if (now_ != 0L) { + output.writeUInt64(4, now_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(internalExt_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, internalExt_); + } + if (fetchType_ != 0) { + output.writeUInt32(6, fetchType_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetRouteParams(), + RouteParamsDefaultEntryHolder.defaultEntry, + 7); + if (heartbeatDuration_ != 0L) { + output.writeUInt64(8, heartbeatDuration_); + } + if (needAck_ != false) { + output.writeBool(9, needAck_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pushServer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, pushServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveCursor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 11, liveCursor_); + } + if (historyNoMore_ != false) { + output.writeBool(12, historyNoMore_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < messagesList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, messagesList_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cursor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, cursor_); + } + if (fetchInterval_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, fetchInterval_); + } + if (now_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, now_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(internalExt_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, internalExt_); + } + if (fetchType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, fetchType_); + } + for (java.util.Map.Entry entry + : internalGetRouteParams().getMap().entrySet()) { + com.google.protobuf.MapEntry + routeParams__ = RouteParamsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, routeParams__); + } + if (heartbeatDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(8, heartbeatDuration_); + } + if (needAck_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(9, needAck_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pushServer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, pushServer_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveCursor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, liveCursor_); + } + if (historyNoMore_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(12, historyNoMore_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) obj; + + if (!getMessagesListList() + .equals(other.getMessagesListList())) return false; + if (!getCursor() + .equals(other.getCursor())) return false; + if (getFetchInterval() + != other.getFetchInterval()) return false; + if (getNow() + != other.getNow()) return false; + if (!getInternalExt() + .equals(other.getInternalExt())) return false; + if (getFetchType() + != other.getFetchType()) return false; + if (!internalGetRouteParams().equals( + other.internalGetRouteParams())) return false; + if (getHeartbeatDuration() + != other.getHeartbeatDuration()) return false; + if (getNeedAck() + != other.getNeedAck()) return false; + if (!getPushServer() + .equals(other.getPushServer())) return false; + if (!getLiveCursor() + .equals(other.getLiveCursor())) return false; + if (getHistoryNoMore() + != other.getHistoryNoMore()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getMessagesListCount() > 0) { + hash = (37 * hash) + MESSAGES_LIST_FIELD_NUMBER; + hash = (53 * hash) + getMessagesListList().hashCode(); + } + hash = (37 * hash) + CURSOR_FIELD_NUMBER; + hash = (53 * hash) + getCursor().hashCode(); + hash = (37 * hash) + FETCH_INTERVAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFetchInterval()); + hash = (37 * hash) + NOW_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getNow()); + hash = (37 * hash) + INTERNAL_EXT_FIELD_NUMBER; + hash = (53 * hash) + getInternalExt().hashCode(); + hash = (37 * hash) + FETCH_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getFetchType(); + if (!internalGetRouteParams().getMap().isEmpty()) { + hash = (37 * hash) + ROUTE_PARAMS_FIELD_NUMBER; + hash = (53 * hash) + internalGetRouteParams().hashCode(); + } + hash = (37 * hash) + HEARTBEAT_DURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getHeartbeatDuration()); + hash = (37 * hash) + NEED_ACK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNeedAck()); + hash = (37 * hash) + PUSH_SERVER_FIELD_NUMBER; + hash = (53 * hash) + getPushServer().hashCode(); + hash = (37 * hash) + LIVE_CURSOR_FIELD_NUMBER; + hash = (53 * hash) + getLiveCursor().hashCode(); + hash = (37 * hash) + HISTORY_NO_MORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getHistoryNoMore()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 7: + return internalGetRouteParams(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 7: + return internalGetMutableRouteParams(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (messagesListBuilder_ == null) { + messagesList_ = java.util.Collections.emptyList(); + } else { + messagesList_ = null; + messagesListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + cursor_ = ""; + fetchInterval_ = 0L; + now_ = 0L; + internalExt_ = ""; + fetchType_ = 0; + internalGetMutableRouteParams().clear(); + heartbeatDuration_ = 0L; + needAck_ = false; + pushServer_ = ""; + liveCursor_ = ""; + historyNoMore_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msgProto.internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result) { + if (messagesListBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + messagesList_ = java.util.Collections.unmodifiableList(messagesList_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.messagesList_ = messagesList_; + } else { + result.messagesList_ = messagesListBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.cursor_ = cursor_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.fetchInterval_ = fetchInterval_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.now_ = now_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.internalExt_ = internalExt_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.fetchType_ = fetchType_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.routeParams_ = internalGetRouteParams(); + result.routeParams_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.heartbeatDuration_ = heartbeatDuration_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.needAck_ = needAck_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.pushServer_ = pushServer_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.liveCursor_ = liveCursor_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.historyNoMore_ = historyNoMore_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg.getDefaultInstance()) return this; + if (messagesListBuilder_ == null) { + if (!other.messagesList_.isEmpty()) { + if (messagesList_.isEmpty()) { + messagesList_ = other.messagesList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMessagesListIsMutable(); + messagesList_.addAll(other.messagesList_); + } + onChanged(); + } + } else { + if (!other.messagesList_.isEmpty()) { + if (messagesListBuilder_.isEmpty()) { + messagesListBuilder_.dispose(); + messagesListBuilder_ = null; + messagesList_ = other.messagesList_; + bitField0_ = (bitField0_ & ~0x00000001); + messagesListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMessagesListFieldBuilder() : null; + } else { + messagesListBuilder_.addAllMessages(other.messagesList_); + } + } + } + if (!other.getCursor().isEmpty()) { + cursor_ = other.cursor_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getFetchInterval() != 0L) { + setFetchInterval(other.getFetchInterval()); + } + if (other.getNow() != 0L) { + setNow(other.getNow()); + } + if (!other.getInternalExt().isEmpty()) { + internalExt_ = other.internalExt_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.getFetchType() != 0) { + setFetchType(other.getFetchType()); + } + internalGetMutableRouteParams().mergeFrom( + other.internalGetRouteParams()); + bitField0_ |= 0x00000040; + if (other.getHeartbeatDuration() != 0L) { + setHeartbeatDuration(other.getHeartbeatDuration()); + } + if (other.getNeedAck() != false) { + setNeedAck(other.getNeedAck()); + } + if (!other.getPushServer().isEmpty()) { + pushServer_ = other.pushServer_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (!other.getLiveCursor().isEmpty()) { + liveCursor_ = other.liveCursor_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (other.getHistoryNoMore() != false) { + setHistoryNoMore(other.getHistoryNoMore()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.parser(), + extensionRegistry); + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + messagesList_.add(m); + } else { + messagesListBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + cursor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + fetchInterval_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + now_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + internalExt_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + fetchType_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + com.google.protobuf.MapEntry + routeParams__ = input.readMessage( + RouteParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableRouteParams().getMutableMap().put( + routeParams__.getKey(), routeParams__.getValue()); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 64: { + heartbeatDuration_ = input.readUInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + needAck_ = input.readBool(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 82: { + pushServer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: { + liveCursor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 96: { + historyNoMore_ = input.readBool(); + bitField0_ |= 0x00000800; + break; + } // case 96 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List messagesList_ = + java.util.Collections.emptyList(); + private void ensureMessagesListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + messagesList_ = new java.util.ArrayList(messagesList_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder> messagesListBuilder_; + + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public java.util.List getMessagesListList() { + if (messagesListBuilder_ == null) { + return java.util.Collections.unmodifiableList(messagesList_); + } else { + return messagesListBuilder_.getMessageList(); + } + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public int getMessagesListCount() { + if (messagesListBuilder_ == null) { + return messagesList_.size(); + } else { + return messagesListBuilder_.getCount(); + } + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index) { + if (messagesListBuilder_ == null) { + return messagesList_.get(index); + } else { + return messagesListBuilder_.getMessage(index); + } + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder setMessagesList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { + if (messagesListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesListIsMutable(); + messagesList_.set(index, value); + onChanged(); + } else { + messagesListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder setMessagesList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + messagesList_.set(index, builderForValue.build()); + onChanged(); + } else { + messagesListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder addMessagesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { + if (messagesListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesListIsMutable(); + messagesList_.add(value); + onChanged(); + } else { + messagesListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder addMessagesList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg value) { + if (messagesListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesListIsMutable(); + messagesList_.add(index, value); + onChanged(); + } else { + messagesListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder addMessagesList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + messagesList_.add(builderForValue.build()); + onChanged(); + } else { + messagesListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder addMessagesList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder builderForValue) { + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + messagesList_.add(index, builderForValue.build()); + onChanged(); + } else { + messagesListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder addAllMessagesList( + java.lang.Iterable values) { + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, messagesList_); + onChanged(); + } else { + messagesListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder clearMessagesList() { + if (messagesListBuilder_ == null) { + messagesList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + messagesListBuilder_.clear(); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public Builder removeMessagesList(int index) { + if (messagesListBuilder_ == null) { + ensureMessagesListIsMutable(); + messagesList_.remove(index); + onChanged(); + } else { + messagesListBuilder_.remove(index); + } + return this; + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder getMessagesListBuilder( + int index) { + return getMessagesListFieldBuilder().getBuilder(index); + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( + int index) { + if (messagesListBuilder_ == null) { + return messagesList_.get(index); } else { + return messagesListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public java.util.List + getMessagesListOrBuilderList() { + if (messagesListBuilder_ != null) { + return messagesListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(messagesList_); + } + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder addMessagesListBuilder() { + return getMessagesListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()); + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder addMessagesListBuilder( + int index) { + return getMessagesListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.getDefaultInstance()); + } + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + public java.util.List + getMessagesListBuilderList() { + return getMessagesListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder> + getMessagesListFieldBuilder() { + if (messagesListBuilder_ == null) { + messagesListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder>( + messagesList_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + messagesList_ = null; + } + return messagesListBuilder_; + } + + private java.lang.Object cursor_ = ""; + /** + * string cursor = 2; + * @return The cursor. + */ + public java.lang.String getCursor() { + java.lang.Object ref = cursor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cursor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string cursor = 2; + * @return The bytes for cursor. + */ + public com.google.protobuf.ByteString + getCursorBytes() { + java.lang.Object ref = cursor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string cursor = 2; + * @param value The cursor to set. + * @return This builder for chaining. + */ + public Builder setCursor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + cursor_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string cursor = 2; + * @return This builder for chaining. + */ + public Builder clearCursor() { + cursor_ = getDefaultInstance().getCursor(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string cursor = 2; + * @param value The bytes for cursor to set. + * @return This builder for chaining. + */ + public Builder setCursorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + cursor_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long fetchInterval_ ; + /** + * uint64 fetch_interval = 3; + * @return The fetchInterval. + */ + @java.lang.Override + public long getFetchInterval() { + return fetchInterval_; + } + /** + * uint64 fetch_interval = 3; + * @param value The fetchInterval to set. + * @return This builder for chaining. + */ + public Builder setFetchInterval(long value) { + + fetchInterval_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 fetch_interval = 3; + * @return This builder for chaining. + */ + public Builder clearFetchInterval() { + bitField0_ = (bitField0_ & ~0x00000004); + fetchInterval_ = 0L; + onChanged(); + return this; + } + + private long now_ ; + /** + * uint64 now = 4; + * @return The now. + */ + @java.lang.Override + public long getNow() { + return now_; + } + /** + * uint64 now = 4; + * @param value The now to set. + * @return This builder for chaining. + */ + public Builder setNow(long value) { + + now_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 now = 4; + * @return This builder for chaining. + */ + public Builder clearNow() { + bitField0_ = (bitField0_ & ~0x00000008); + now_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object internalExt_ = ""; + /** + * string internal_ext = 5; + * @return The internalExt. + */ + public java.lang.String getInternalExt() { + java.lang.Object ref = internalExt_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + internalExt_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string internal_ext = 5; + * @return The bytes for internalExt. + */ + public com.google.protobuf.ByteString + getInternalExtBytes() { + java.lang.Object ref = internalExt_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + internalExt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string internal_ext = 5; + * @param value The internalExt to set. + * @return This builder for chaining. + */ + public Builder setInternalExt( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + internalExt_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string internal_ext = 5; + * @return This builder for chaining. + */ + public Builder clearInternalExt() { + internalExt_ = getDefaultInstance().getInternalExt(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string internal_ext = 5; + * @param value The bytes for internalExt to set. + * @return This builder for chaining. + */ + public Builder setInternalExtBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + internalExt_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private int fetchType_ ; + /** + * uint32 fetch_type = 6; + * @return The fetchType. + */ + @java.lang.Override + public int getFetchType() { + return fetchType_; + } + /** + * uint32 fetch_type = 6; + * @param value The fetchType to set. + * @return This builder for chaining. + */ + public Builder setFetchType(int value) { + + fetchType_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint32 fetch_type = 6; + * @return This builder for chaining. + */ + public Builder clearFetchType() { + bitField0_ = (bitField0_ & ~0x00000020); + fetchType_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> routeParams_; + private com.google.protobuf.MapField + internalGetRouteParams() { + if (routeParams_ == null) { + return com.google.protobuf.MapField.emptyMapField( + RouteParamsDefaultEntryHolder.defaultEntry); + } + return routeParams_; + } + private com.google.protobuf.MapField + internalGetMutableRouteParams() { + if (routeParams_ == null) { + routeParams_ = com.google.protobuf.MapField.newMapField( + RouteParamsDefaultEntryHolder.defaultEntry); + } + if (!routeParams_.isMutable()) { + routeParams_ = routeParams_.copy(); + } + bitField0_ |= 0x00000040; + onChanged(); + return routeParams_; + } + public int getRouteParamsCount() { + return internalGetRouteParams().getMap().size(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public boolean containsRouteParams( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetRouteParams().getMap().containsKey(key); + } + /** + * Use {@link #getRouteParamsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getRouteParams() { + return getRouteParamsMap(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public java.util.Map getRouteParamsMap() { + return internalGetRouteParams().getMap(); + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public /* nullable */ +java.lang.String getRouteParamsOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetRouteParams().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> route_params = 7; + */ + @java.lang.Override + public java.lang.String getRouteParamsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetRouteParams().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearRouteParams() { + bitField0_ = (bitField0_ & ~0x00000040); + internalGetMutableRouteParams().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> route_params = 7; + */ + public Builder removeRouteParams( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableRouteParams().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableRouteParams() { + bitField0_ |= 0x00000040; + return internalGetMutableRouteParams().getMutableMap(); + } + /** + * map<string, string> route_params = 7; + */ + public Builder putRouteParams( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableRouteParams().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000040; + return this; + } + /** + * map<string, string> route_params = 7; + */ + public Builder putAllRouteParams( + java.util.Map values) { + internalGetMutableRouteParams().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000040; + return this; + } + + private long heartbeatDuration_ ; + /** + * uint64 heartbeat_duration = 8; + * @return The heartbeatDuration. + */ + @java.lang.Override + public long getHeartbeatDuration() { + return heartbeatDuration_; + } + /** + * uint64 heartbeat_duration = 8; + * @param value The heartbeatDuration to set. + * @return This builder for chaining. + */ + public Builder setHeartbeatDuration(long value) { + + heartbeatDuration_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * uint64 heartbeat_duration = 8; + * @return This builder for chaining. + */ + public Builder clearHeartbeatDuration() { + bitField0_ = (bitField0_ & ~0x00000080); + heartbeatDuration_ = 0L; + onChanged(); + return this; + } + + private boolean needAck_ ; + /** + * bool need_ack = 9; + * @return The needAck. + */ + @java.lang.Override + public boolean getNeedAck() { + return needAck_; + } + /** + * bool need_ack = 9; + * @param value The needAck to set. + * @return This builder for chaining. + */ + public Builder setNeedAck(boolean value) { + + needAck_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * bool need_ack = 9; + * @return This builder for chaining. + */ + public Builder clearNeedAck() { + bitField0_ = (bitField0_ & ~0x00000100); + needAck_ = false; + onChanged(); + return this; + } + + private java.lang.Object pushServer_ = ""; + /** + * string push_server = 10; + * @return The pushServer. + */ + public java.lang.String getPushServer() { + java.lang.Object ref = pushServer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pushServer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string push_server = 10; + * @return The bytes for pushServer. + */ + public com.google.protobuf.ByteString + getPushServerBytes() { + java.lang.Object ref = pushServer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pushServer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string push_server = 10; + * @param value The pushServer to set. + * @return This builder for chaining. + */ + public Builder setPushServer( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pushServer_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * string push_server = 10; + * @return This builder for chaining. + */ + public Builder clearPushServer() { + pushServer_ = getDefaultInstance().getPushServer(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + /** + * string push_server = 10; + * @param value The bytes for pushServer to set. + * @return This builder for chaining. + */ + public Builder setPushServerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pushServer_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object liveCursor_ = ""; + /** + * string live_cursor = 11; + * @return The liveCursor. + */ + public java.lang.String getLiveCursor() { + java.lang.Object ref = liveCursor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + liveCursor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string live_cursor = 11; + * @return The bytes for liveCursor. + */ + public com.google.protobuf.ByteString + getLiveCursorBytes() { + java.lang.Object ref = liveCursor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + liveCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string live_cursor = 11; + * @param value The liveCursor to set. + * @return This builder for chaining. + */ + public Builder setLiveCursor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + liveCursor_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string live_cursor = 11; + * @return This builder for chaining. + */ + public Builder clearLiveCursor() { + liveCursor_ = getDefaultInstance().getLiveCursor(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string live_cursor = 11; + * @param value The bytes for liveCursor to set. + * @return This builder for chaining. + */ + public Builder setLiveCursorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + liveCursor_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private boolean historyNoMore_ ; + /** + * bool history_no_more = 12; + * @return The historyNoMore. + */ + @java.lang.Override + public boolean getHistoryNoMore() { + return historyNoMore_; + } + /** + * bool history_no_more = 12; + * @param value The historyNoMore to set. + * @return This builder for chaining. + */ + public Builder setHistoryNoMore(boolean value) { + + historyNoMore_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool history_no_more = 12; + * @return This builder for chaining. + */ + public Builder clearHistoryNoMore() { + bitField0_ = (bitField0_ & ~0x00000800); + historyNoMore_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) + } + + // @@protoc_insertion_point(class_scope:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public douyin_websocket_frame_msg parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java new file mode 100644 index 00000000..e90332f8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgOrBuilder.java @@ -0,0 +1,175 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public interface douyin_websocket_frame_msgOrBuilder extends + // @@protoc_insertion_point(interface_extends:tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_websocket_frame_msg) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + java.util.List + getMessagesListList(); + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg getMessagesList(int index); + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + int getMessagesListCount(); + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + java.util.List + getMessagesListOrBuilderList(); + /** + * repeated .tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msg messages_list = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.douyin_cmd_msgOrBuilder getMessagesListOrBuilder( + int index); + + /** + * string cursor = 2; + * @return The cursor. + */ + java.lang.String getCursor(); + /** + * string cursor = 2; + * @return The bytes for cursor. + */ + com.google.protobuf.ByteString + getCursorBytes(); + + /** + * uint64 fetch_interval = 3; + * @return The fetchInterval. + */ + long getFetchInterval(); + + /** + * uint64 now = 4; + * @return The now. + */ + long getNow(); + + /** + * string internal_ext = 5; + * @return The internalExt. + */ + java.lang.String getInternalExt(); + /** + * string internal_ext = 5; + * @return The bytes for internalExt. + */ + com.google.protobuf.ByteString + getInternalExtBytes(); + + /** + * uint32 fetch_type = 6; + * @return The fetchType. + */ + int getFetchType(); + + /** + * map<string, string> route_params = 7; + */ + int getRouteParamsCount(); + /** + * map<string, string> route_params = 7; + */ + boolean containsRouteParams( + java.lang.String key); + /** + * Use {@link #getRouteParamsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getRouteParams(); + /** + * map<string, string> route_params = 7; + */ + java.util.Map + getRouteParamsMap(); + /** + * map<string, string> route_params = 7; + */ + /* nullable */ +java.lang.String getRouteParamsOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue); + /** + * map<string, string> route_params = 7; + */ + java.lang.String getRouteParamsOrThrow( + java.lang.String key); + + /** + * uint64 heartbeat_duration = 8; + * @return The heartbeatDuration. + */ + long getHeartbeatDuration(); + + /** + * bool need_ack = 9; + * @return The needAck. + */ + boolean getNeedAck(); + + /** + * string push_server = 10; + * @return The pushServer. + */ + java.lang.String getPushServer(); + /** + * string push_server = 10; + * @return The bytes for pushServer. + */ + com.google.protobuf.ByteString + getPushServerBytes(); + + /** + * string live_cursor = 11; + * @return The liveCursor. + */ + java.lang.String getLiveCursor(); + /** + * string live_cursor = 11; + * @return The bytes for liveCursor. + */ + com.google.protobuf.ByteString + getLiveCursorBytes(); + + /** + * bool history_no_more = 12; + * @return The historyNoMore. + */ + boolean getHistoryNoMore(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java new file mode 100644 index 00000000..607d3eda --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/douyin_websocket_frame_msgProto.java @@ -0,0 +1,100 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: douyin_websocket_frame_msg.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +public final class douyin_websocket_frame_msgProto { + private douyin_websocket_frame_msgProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n douyin_websocket_frame_msg.proto\0222tech" + + ".ordinaryroad.live.chat.client.douyin.pr" + + "otobuf\032\024douyin_cmd_msg.proto\"\362\003\n\032douyin_" + + "websocket_frame_msg\022Y\n\rmessages_list\030\001 \003" + + "(\0132B.tech.ordinaryroad.live.chat.client." + + "douyin.protobuf.douyin_cmd_msg\022\016\n\006cursor" + + "\030\002 \001(\t\022\026\n\016fetch_interval\030\003 \001(\004\022\013\n\003now\030\004 " + + "\001(\004\022\024\n\014internal_ext\030\005 \001(\t\022\022\n\nfetch_type\030" + + "\006 \001(\r\022u\n\014route_params\030\007 \003(\0132_.tech.ordin" + + "aryroad.live.chat.client.douyin.protobuf" + + ".douyin_websocket_frame_msg.RouteParamsE" + + "ntry\022\032\n\022heartbeat_duration\030\010 \001(\004\022\020\n\010need" + + "_ack\030\t \001(\010\022\023\n\013push_server\030\n \001(\t\022\023\n\013live_" + + "cursor\030\013 \001(\t\022\027\n\017history_no_more\030\014 \001(\010\0322\n" + + "\020RouteParamsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030" + + "\002 \001(\t:\0028\001B]\n2tech.ordinaryroad.live.chat" + + ".client.douyin.protobufB\037douyin_websocke" + + "t_frame_msgProtoP\001\242\002\003GPBb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.getDescriptor(), + }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor, + new java.lang.String[] { "MessagesList", "Cursor", "FetchInterval", "Now", "InternalExt", "FetchType", "RouteParams", "HeartbeatDuration", "NeedAck", "PushServer", "LiveCursor", "HistoryNoMore", }); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor = + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_descriptor.getNestedTypes().get(0); + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tech_ordinaryroad_live_chat_client_douyin_protobuf_douyin_websocket_frame_msg_RouteParamsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.Douyin_cmd_msgProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java new file mode 100644 index 00000000..17c17c41 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/CommonOuterClass.java @@ -0,0 +1,2558 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: Common.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class CommonOuterClass { + private CommonOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CommonOrBuilder extends + // @@protoc_insertion_point(interface_extends:Common) + com.google.protobuf.MessageOrBuilder { + + /** + * string method = 1; + * @return The method. + */ + java.lang.String getMethod(); + /** + * string method = 1; + * @return The bytes for method. + */ + com.google.protobuf.ByteString + getMethodBytes(); + + /** + * uint64 msgId = 2; + * @return The msgId. + */ + long getMsgId(); + + /** + * uint64 roomId = 3; + * @return The roomId. + */ + long getRoomId(); + + /** + * uint64 createTime = 4; + * @return The createTime. + */ + long getCreateTime(); + + /** + * uint32 monitor = 5; + * @return The monitor. + */ + int getMonitor(); + + /** + * bool isShowMsg = 6; + * @return The isShowMsg. + */ + boolean getIsShowMsg(); + + /** + * string describe = 7; + * @return The describe. + */ + java.lang.String getDescribe(); + /** + * string describe = 7; + * @return The bytes for describe. + */ + com.google.protobuf.ByteString + getDescribeBytes(); + + /** + *
+     * DisplayText displayText = 8;
+     * 
+ * + * uint64 foldType = 9; + * @return The foldType. + */ + long getFoldType(); + + /** + * uint64 anchorFoldType = 10; + * @return The anchorFoldType. + */ + long getAnchorFoldType(); + + /** + * uint64 priorityScore = 11; + * @return The priorityScore. + */ + long getPriorityScore(); + + /** + * string logId = 12; + * @return The logId. + */ + java.lang.String getLogId(); + /** + * string logId = 12; + * @return The bytes for logId. + */ + com.google.protobuf.ByteString + getLogIdBytes(); + + /** + * string msgProcessFilterK = 13; + * @return The msgProcessFilterK. + */ + java.lang.String getMsgProcessFilterK(); + /** + * string msgProcessFilterK = 13; + * @return The bytes for msgProcessFilterK. + */ + com.google.protobuf.ByteString + getMsgProcessFilterKBytes(); + + /** + * string msgProcessFilterV = 14; + * @return The msgProcessFilterV. + */ + java.lang.String getMsgProcessFilterV(); + /** + * string msgProcessFilterV = 14; + * @return The bytes for msgProcessFilterV. + */ + com.google.protobuf.ByteString + getMsgProcessFilterVBytes(); + + /** + * .User user = 15; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 15; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 15; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + *
+     * Room room = 16;
+     * 
+ * + * uint64 anchorFoldTypeV2 = 17; + * @return The anchorFoldTypeV2. + */ + long getAnchorFoldTypeV2(); + + /** + * uint64 processAtSeiTimeMs = 18; + * @return The processAtSeiTimeMs. + */ + long getProcessAtSeiTimeMs(); + + /** + * uint64 randomDispatchMs = 19; + * @return The randomDispatchMs. + */ + long getRandomDispatchMs(); + + /** + * bool isDispatch = 20; + * @return The isDispatch. + */ + boolean getIsDispatch(); + + /** + * uint32 channelId = 21; + * @return The channelId. + */ + int getChannelId(); + + /** + * uint64 diffSei2absSecond = 22; + * @return The diffSei2absSecond. + */ + long getDiffSei2AbsSecond(); + + /** + * uint64 anchorFoldDuration = 23; + * @return The anchorFoldDuration. + */ + long getAnchorFoldDuration(); + } + /** + * Protobuf type {@code Common} + */ + public static final class Common extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Common) + CommonOrBuilder { + private static final long serialVersionUID = 0L; + // Use Common.newBuilder() to construct. + private Common(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Common() { + method_ = ""; + describe_ = ""; + logId_ = ""; + msgProcessFilterK_ = ""; + msgProcessFilterV_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Common(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder.class); + } + + public static final int METHOD_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object method_ = ""; + /** + * string method = 1; + * @return The method. + */ + @java.lang.Override + public java.lang.String getMethod() { + java.lang.Object ref = method_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + method_ = s; + return s; + } + } + /** + * string method = 1; + * @return The bytes for method. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMethodBytes() { + java.lang.Object ref = method_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + method_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MSGID_FIELD_NUMBER = 2; + private long msgId_ = 0L; + /** + * uint64 msgId = 2; + * @return The msgId. + */ + @java.lang.Override + public long getMsgId() { + return msgId_; + } + + public static final int ROOMID_FIELD_NUMBER = 3; + private long roomId_ = 0L; + /** + * uint64 roomId = 3; + * @return The roomId. + */ + @java.lang.Override + public long getRoomId() { + return roomId_; + } + + public static final int CREATETIME_FIELD_NUMBER = 4; + private long createTime_ = 0L; + /** + * uint64 createTime = 4; + * @return The createTime. + */ + @java.lang.Override + public long getCreateTime() { + return createTime_; + } + + public static final int MONITOR_FIELD_NUMBER = 5; + private int monitor_ = 0; + /** + * uint32 monitor = 5; + * @return The monitor. + */ + @java.lang.Override + public int getMonitor() { + return monitor_; + } + + public static final int ISSHOWMSG_FIELD_NUMBER = 6; + private boolean isShowMsg_ = false; + /** + * bool isShowMsg = 6; + * @return The isShowMsg. + */ + @java.lang.Override + public boolean getIsShowMsg() { + return isShowMsg_; + } + + public static final int DESCRIBE_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object describe_ = ""; + /** + * string describe = 7; + * @return The describe. + */ + @java.lang.Override + public java.lang.String getDescribe() { + java.lang.Object ref = describe_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + describe_ = s; + return s; + } + } + /** + * string describe = 7; + * @return The bytes for describe. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDescribeBytes() { + java.lang.Object ref = describe_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + describe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FOLDTYPE_FIELD_NUMBER = 9; + private long foldType_ = 0L; + /** + *
+     * DisplayText displayText = 8;
+     * 
+ * + * uint64 foldType = 9; + * @return The foldType. + */ + @java.lang.Override + public long getFoldType() { + return foldType_; + } + + public static final int ANCHORFOLDTYPE_FIELD_NUMBER = 10; + private long anchorFoldType_ = 0L; + /** + * uint64 anchorFoldType = 10; + * @return The anchorFoldType. + */ + @java.lang.Override + public long getAnchorFoldType() { + return anchorFoldType_; + } + + public static final int PRIORITYSCORE_FIELD_NUMBER = 11; + private long priorityScore_ = 0L; + /** + * uint64 priorityScore = 11; + * @return The priorityScore. + */ + @java.lang.Override + public long getPriorityScore() { + return priorityScore_; + } + + public static final int LOGID_FIELD_NUMBER = 12; + @SuppressWarnings("serial") + private volatile java.lang.Object logId_ = ""; + /** + * string logId = 12; + * @return The logId. + */ + @java.lang.Override + public java.lang.String getLogId() { + java.lang.Object ref = logId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + logId_ = s; + return s; + } + } + /** + * string logId = 12; + * @return The bytes for logId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLogIdBytes() { + java.lang.Object ref = logId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + logId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MSGPROCESSFILTERK_FIELD_NUMBER = 13; + @SuppressWarnings("serial") + private volatile java.lang.Object msgProcessFilterK_ = ""; + /** + * string msgProcessFilterK = 13; + * @return The msgProcessFilterK. + */ + @java.lang.Override + public java.lang.String getMsgProcessFilterK() { + java.lang.Object ref = msgProcessFilterK_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msgProcessFilterK_ = s; + return s; + } + } + /** + * string msgProcessFilterK = 13; + * @return The bytes for msgProcessFilterK. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgProcessFilterKBytes() { + java.lang.Object ref = msgProcessFilterK_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msgProcessFilterK_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MSGPROCESSFILTERV_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object msgProcessFilterV_ = ""; + /** + * string msgProcessFilterV = 14; + * @return The msgProcessFilterV. + */ + @java.lang.Override + public java.lang.String getMsgProcessFilterV() { + java.lang.Object ref = msgProcessFilterV_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msgProcessFilterV_ = s; + return s; + } + } + /** + * string msgProcessFilterV = 14; + * @return The bytes for msgProcessFilterV. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgProcessFilterVBytes() { + java.lang.Object ref = msgProcessFilterV_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msgProcessFilterV_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 15; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 15; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 15; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 15; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int ANCHORFOLDTYPEV2_FIELD_NUMBER = 17; + private long anchorFoldTypeV2_ = 0L; + /** + *
+     * Room room = 16;
+     * 
+ * + * uint64 anchorFoldTypeV2 = 17; + * @return The anchorFoldTypeV2. + */ + @java.lang.Override + public long getAnchorFoldTypeV2() { + return anchorFoldTypeV2_; + } + + public static final int PROCESSATSEITIMEMS_FIELD_NUMBER = 18; + private long processAtSeiTimeMs_ = 0L; + /** + * uint64 processAtSeiTimeMs = 18; + * @return The processAtSeiTimeMs. + */ + @java.lang.Override + public long getProcessAtSeiTimeMs() { + return processAtSeiTimeMs_; + } + + public static final int RANDOMDISPATCHMS_FIELD_NUMBER = 19; + private long randomDispatchMs_ = 0L; + /** + * uint64 randomDispatchMs = 19; + * @return The randomDispatchMs. + */ + @java.lang.Override + public long getRandomDispatchMs() { + return randomDispatchMs_; + } + + public static final int ISDISPATCH_FIELD_NUMBER = 20; + private boolean isDispatch_ = false; + /** + * bool isDispatch = 20; + * @return The isDispatch. + */ + @java.lang.Override + public boolean getIsDispatch() { + return isDispatch_; + } + + public static final int CHANNELID_FIELD_NUMBER = 21; + private int channelId_ = 0; + /** + * uint32 channelId = 21; + * @return The channelId. + */ + @java.lang.Override + public int getChannelId() { + return channelId_; + } + + public static final int DIFFSEI2ABSSECOND_FIELD_NUMBER = 22; + private long diffSei2AbsSecond_ = 0L; + /** + * uint64 diffSei2absSecond = 22; + * @return The diffSei2absSecond. + */ + @java.lang.Override + public long getDiffSei2AbsSecond() { + return diffSei2AbsSecond_; + } + + public static final int ANCHORFOLDDURATION_FIELD_NUMBER = 23; + private long anchorFoldDuration_ = 0L; + /** + * uint64 anchorFoldDuration = 23; + * @return The anchorFoldDuration. + */ + @java.lang.Override + public long getAnchorFoldDuration() { + return anchorFoldDuration_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, method_); + } + if (msgId_ != 0L) { + output.writeUInt64(2, msgId_); + } + if (roomId_ != 0L) { + output.writeUInt64(3, roomId_); + } + if (createTime_ != 0L) { + output.writeUInt64(4, createTime_); + } + if (monitor_ != 0) { + output.writeUInt32(5, monitor_); + } + if (isShowMsg_ != false) { + output.writeBool(6, isShowMsg_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, describe_); + } + if (foldType_ != 0L) { + output.writeUInt64(9, foldType_); + } + if (anchorFoldType_ != 0L) { + output.writeUInt64(10, anchorFoldType_); + } + if (priorityScore_ != 0L) { + output.writeUInt64(11, priorityScore_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 12, logId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterK_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, msgProcessFilterK_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterV_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, msgProcessFilterV_); + } + if (user_ != null) { + output.writeMessage(15, getUser()); + } + if (anchorFoldTypeV2_ != 0L) { + output.writeUInt64(17, anchorFoldTypeV2_); + } + if (processAtSeiTimeMs_ != 0L) { + output.writeUInt64(18, processAtSeiTimeMs_); + } + if (randomDispatchMs_ != 0L) { + output.writeUInt64(19, randomDispatchMs_); + } + if (isDispatch_ != false) { + output.writeBool(20, isDispatch_); + } + if (channelId_ != 0) { + output.writeUInt32(21, channelId_); + } + if (diffSei2AbsSecond_ != 0L) { + output.writeUInt64(22, diffSei2AbsSecond_); + } + if (anchorFoldDuration_ != 0L) { + output.writeUInt64(23, anchorFoldDuration_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(method_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, method_); + } + if (msgId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, msgId_); + } + if (roomId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, roomId_); + } + if (createTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, createTime_); + } + if (monitor_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(5, monitor_); + } + if (isShowMsg_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(6, isShowMsg_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, describe_); + } + if (foldType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(9, foldType_); + } + if (anchorFoldType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(10, anchorFoldType_); + } + if (priorityScore_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(11, priorityScore_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(logId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, logId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterK_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, msgProcessFilterK_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msgProcessFilterV_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, msgProcessFilterV_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, getUser()); + } + if (anchorFoldTypeV2_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(17, anchorFoldTypeV2_); + } + if (processAtSeiTimeMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(18, processAtSeiTimeMs_); + } + if (randomDispatchMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(19, randomDispatchMs_); + } + if (isDispatch_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(20, isDispatch_); + } + if (channelId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(21, channelId_); + } + if (diffSei2AbsSecond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(22, diffSei2AbsSecond_); + } + if (anchorFoldDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(23, anchorFoldDuration_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common) obj; + + if (!getMethod() + .equals(other.getMethod())) return false; + if (getMsgId() + != other.getMsgId()) return false; + if (getRoomId() + != other.getRoomId()) return false; + if (getCreateTime() + != other.getCreateTime()) return false; + if (getMonitor() + != other.getMonitor()) return false; + if (getIsShowMsg() + != other.getIsShowMsg()) return false; + if (!getDescribe() + .equals(other.getDescribe())) return false; + if (getFoldType() + != other.getFoldType()) return false; + if (getAnchorFoldType() + != other.getAnchorFoldType()) return false; + if (getPriorityScore() + != other.getPriorityScore()) return false; + if (!getLogId() + .equals(other.getLogId())) return false; + if (!getMsgProcessFilterK() + .equals(other.getMsgProcessFilterK())) return false; + if (!getMsgProcessFilterV() + .equals(other.getMsgProcessFilterV())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getAnchorFoldTypeV2() + != other.getAnchorFoldTypeV2()) return false; + if (getProcessAtSeiTimeMs() + != other.getProcessAtSeiTimeMs()) return false; + if (getRandomDispatchMs() + != other.getRandomDispatchMs()) return false; + if (getIsDispatch() + != other.getIsDispatch()) return false; + if (getChannelId() + != other.getChannelId()) return false; + if (getDiffSei2AbsSecond() + != other.getDiffSei2AbsSecond()) return false; + if (getAnchorFoldDuration() + != other.getAnchorFoldDuration()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + METHOD_FIELD_NUMBER; + hash = (53 * hash) + getMethod().hashCode(); + hash = (37 * hash) + MSGID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMsgId()); + hash = (37 * hash) + ROOMID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRoomId()); + hash = (37 * hash) + CREATETIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getCreateTime()); + hash = (37 * hash) + MONITOR_FIELD_NUMBER; + hash = (53 * hash) + getMonitor(); + hash = (37 * hash) + ISSHOWMSG_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsShowMsg()); + hash = (37 * hash) + DESCRIBE_FIELD_NUMBER; + hash = (53 * hash) + getDescribe().hashCode(); + hash = (37 * hash) + FOLDTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFoldType()); + hash = (37 * hash) + ANCHORFOLDTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAnchorFoldType()); + hash = (37 * hash) + PRIORITYSCORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPriorityScore()); + hash = (37 * hash) + LOGID_FIELD_NUMBER; + hash = (53 * hash) + getLogId().hashCode(); + hash = (37 * hash) + MSGPROCESSFILTERK_FIELD_NUMBER; + hash = (53 * hash) + getMsgProcessFilterK().hashCode(); + hash = (37 * hash) + MSGPROCESSFILTERV_FIELD_NUMBER; + hash = (53 * hash) + getMsgProcessFilterV().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + ANCHORFOLDTYPEV2_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAnchorFoldTypeV2()); + hash = (37 * hash) + PROCESSATSEITIMEMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessAtSeiTimeMs()); + hash = (37 * hash) + RANDOMDISPATCHMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRandomDispatchMs()); + hash = (37 * hash) + ISDISPATCH_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsDispatch()); + hash = (37 * hash) + CHANNELID_FIELD_NUMBER; + hash = (53 * hash) + getChannelId(); + hash = (37 * hash) + DIFFSEI2ABSSECOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getDiffSei2AbsSecond()); + hash = (37 * hash) + ANCHORFOLDDURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAnchorFoldDuration()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Common} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:Common) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.CommonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + method_ = ""; + msgId_ = 0L; + roomId_ = 0L; + createTime_ = 0L; + monitor_ = 0; + isShowMsg_ = false; + describe_ = ""; + foldType_ = 0L; + anchorFoldType_ = 0L; + priorityScore_ = 0L; + logId_ = ""; + msgProcessFilterK_ = ""; + msgProcessFilterV_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + anchorFoldTypeV2_ = 0L; + processAtSeiTimeMs_ = 0L; + randomDispatchMs_ = 0L; + isDispatch_ = false; + channelId_ = 0; + diffSei2AbsSecond_ = 0L; + anchorFoldDuration_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.internal_static_Common_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.method_ = method_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.msgId_ = msgId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.roomId_ = roomId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.createTime_ = createTime_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.monitor_ = monitor_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.isShowMsg_ = isShowMsg_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.describe_ = describe_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.foldType_ = foldType_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.anchorFoldType_ = anchorFoldType_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.priorityScore_ = priorityScore_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.logId_ = logId_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.msgProcessFilterK_ = msgProcessFilterK_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.msgProcessFilterV_ = msgProcessFilterV_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.anchorFoldTypeV2_ = anchorFoldTypeV2_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.processAtSeiTimeMs_ = processAtSeiTimeMs_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.randomDispatchMs_ = randomDispatchMs_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.isDispatch_ = isDispatch_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.channelId_ = channelId_; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.diffSei2AbsSecond_ = diffSei2AbsSecond_; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.anchorFoldDuration_ = anchorFoldDuration_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common.getDefaultInstance()) return this; + if (!other.getMethod().isEmpty()) { + method_ = other.method_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getMsgId() != 0L) { + setMsgId(other.getMsgId()); + } + if (other.getRoomId() != 0L) { + setRoomId(other.getRoomId()); + } + if (other.getCreateTime() != 0L) { + setCreateTime(other.getCreateTime()); + } + if (other.getMonitor() != 0) { + setMonitor(other.getMonitor()); + } + if (other.getIsShowMsg() != false) { + setIsShowMsg(other.getIsShowMsg()); + } + if (!other.getDescribe().isEmpty()) { + describe_ = other.describe_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.getFoldType() != 0L) { + setFoldType(other.getFoldType()); + } + if (other.getAnchorFoldType() != 0L) { + setAnchorFoldType(other.getAnchorFoldType()); + } + if (other.getPriorityScore() != 0L) { + setPriorityScore(other.getPriorityScore()); + } + if (!other.getLogId().isEmpty()) { + logId_ = other.logId_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (!other.getMsgProcessFilterK().isEmpty()) { + msgProcessFilterK_ = other.msgProcessFilterK_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (!other.getMsgProcessFilterV().isEmpty()) { + msgProcessFilterV_ = other.msgProcessFilterV_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getAnchorFoldTypeV2() != 0L) { + setAnchorFoldTypeV2(other.getAnchorFoldTypeV2()); + } + if (other.getProcessAtSeiTimeMs() != 0L) { + setProcessAtSeiTimeMs(other.getProcessAtSeiTimeMs()); + } + if (other.getRandomDispatchMs() != 0L) { + setRandomDispatchMs(other.getRandomDispatchMs()); + } + if (other.getIsDispatch() != false) { + setIsDispatch(other.getIsDispatch()); + } + if (other.getChannelId() != 0) { + setChannelId(other.getChannelId()); + } + if (other.getDiffSei2AbsSecond() != 0L) { + setDiffSei2AbsSecond(other.getDiffSei2AbsSecond()); + } + if (other.getAnchorFoldDuration() != 0L) { + setAnchorFoldDuration(other.getAnchorFoldDuration()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + method_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + msgId_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + roomId_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + createTime_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + monitor_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + isShowMsg_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + describe_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 72: { + foldType_ = input.readUInt64(); + bitField0_ |= 0x00000080; + break; + } // case 72 + case 80: { + anchorFoldType_ = input.readUInt64(); + bitField0_ |= 0x00000100; + break; + } // case 80 + case 88: { + priorityScore_ = input.readUInt64(); + bitField0_ |= 0x00000200; + break; + } // case 88 + case 98: { + logId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 98 + case 106: { + msgProcessFilterK_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 106 + case 114: { + msgProcessFilterV_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 114 + case 122: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00002000; + break; + } // case 122 + case 136: { + anchorFoldTypeV2_ = input.readUInt64(); + bitField0_ |= 0x00004000; + break; + } // case 136 + case 144: { + processAtSeiTimeMs_ = input.readUInt64(); + bitField0_ |= 0x00008000; + break; + } // case 144 + case 152: { + randomDispatchMs_ = input.readUInt64(); + bitField0_ |= 0x00010000; + break; + } // case 152 + case 160: { + isDispatch_ = input.readBool(); + bitField0_ |= 0x00020000; + break; + } // case 160 + case 168: { + channelId_ = input.readUInt32(); + bitField0_ |= 0x00040000; + break; + } // case 168 + case 176: { + diffSei2AbsSecond_ = input.readUInt64(); + bitField0_ |= 0x00080000; + break; + } // case 176 + case 184: { + anchorFoldDuration_ = input.readUInt64(); + bitField0_ |= 0x00100000; + break; + } // case 184 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object method_ = ""; + /** + * string method = 1; + * @return The method. + */ + public java.lang.String getMethod() { + java.lang.Object ref = method_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + method_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string method = 1; + * @return The bytes for method. + */ + public com.google.protobuf.ByteString + getMethodBytes() { + java.lang.Object ref = method_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + method_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string method = 1; + * @param value The method to set. + * @return This builder for chaining. + */ + public Builder setMethod( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + method_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string method = 1; + * @return This builder for chaining. + */ + public Builder clearMethod() { + method_ = getDefaultInstance().getMethod(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string method = 1; + * @param value The bytes for method to set. + * @return This builder for chaining. + */ + public Builder setMethodBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + method_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private long msgId_ ; + /** + * uint64 msgId = 2; + * @return The msgId. + */ + @java.lang.Override + public long getMsgId() { + return msgId_; + } + /** + * uint64 msgId = 2; + * @param value The msgId to set. + * @return This builder for chaining. + */ + public Builder setMsgId(long value) { + + msgId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 msgId = 2; + * @return This builder for chaining. + */ + public Builder clearMsgId() { + bitField0_ = (bitField0_ & ~0x00000002); + msgId_ = 0L; + onChanged(); + return this; + } + + private long roomId_ ; + /** + * uint64 roomId = 3; + * @return The roomId. + */ + @java.lang.Override + public long getRoomId() { + return roomId_; + } + /** + * uint64 roomId = 3; + * @param value The roomId to set. + * @return This builder for chaining. + */ + public Builder setRoomId(long value) { + + roomId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 roomId = 3; + * @return This builder for chaining. + */ + public Builder clearRoomId() { + bitField0_ = (bitField0_ & ~0x00000004); + roomId_ = 0L; + onChanged(); + return this; + } + + private long createTime_ ; + /** + * uint64 createTime = 4; + * @return The createTime. + */ + @java.lang.Override + public long getCreateTime() { + return createTime_; + } + /** + * uint64 createTime = 4; + * @param value The createTime to set. + * @return This builder for chaining. + */ + public Builder setCreateTime(long value) { + + createTime_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 createTime = 4; + * @return This builder for chaining. + */ + public Builder clearCreateTime() { + bitField0_ = (bitField0_ & ~0x00000008); + createTime_ = 0L; + onChanged(); + return this; + } + + private int monitor_ ; + /** + * uint32 monitor = 5; + * @return The monitor. + */ + @java.lang.Override + public int getMonitor() { + return monitor_; + } + /** + * uint32 monitor = 5; + * @param value The monitor to set. + * @return This builder for chaining. + */ + public Builder setMonitor(int value) { + + monitor_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint32 monitor = 5; + * @return This builder for chaining. + */ + public Builder clearMonitor() { + bitField0_ = (bitField0_ & ~0x00000010); + monitor_ = 0; + onChanged(); + return this; + } + + private boolean isShowMsg_ ; + /** + * bool isShowMsg = 6; + * @return The isShowMsg. + */ + @java.lang.Override + public boolean getIsShowMsg() { + return isShowMsg_; + } + /** + * bool isShowMsg = 6; + * @param value The isShowMsg to set. + * @return This builder for chaining. + */ + public Builder setIsShowMsg(boolean value) { + + isShowMsg_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool isShowMsg = 6; + * @return This builder for chaining. + */ + public Builder clearIsShowMsg() { + bitField0_ = (bitField0_ & ~0x00000020); + isShowMsg_ = false; + onChanged(); + return this; + } + + private java.lang.Object describe_ = ""; + /** + * string describe = 7; + * @return The describe. + */ + public java.lang.String getDescribe() { + java.lang.Object ref = describe_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + describe_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string describe = 7; + * @return The bytes for describe. + */ + public com.google.protobuf.ByteString + getDescribeBytes() { + java.lang.Object ref = describe_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + describe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string describe = 7; + * @param value The describe to set. + * @return This builder for chaining. + */ + public Builder setDescribe( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + describe_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string describe = 7; + * @return This builder for chaining. + */ + public Builder clearDescribe() { + describe_ = getDefaultInstance().getDescribe(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string describe = 7; + * @param value The bytes for describe to set. + * @return This builder for chaining. + */ + public Builder setDescribeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + describe_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private long foldType_ ; + /** + *
+       * DisplayText displayText = 8;
+       * 
+ * + * uint64 foldType = 9; + * @return The foldType. + */ + @java.lang.Override + public long getFoldType() { + return foldType_; + } + /** + *
+       * DisplayText displayText = 8;
+       * 
+ * + * uint64 foldType = 9; + * @param value The foldType to set. + * @return This builder for chaining. + */ + public Builder setFoldType(long value) { + + foldType_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * DisplayText displayText = 8;
+       * 
+ * + * uint64 foldType = 9; + * @return This builder for chaining. + */ + public Builder clearFoldType() { + bitField0_ = (bitField0_ & ~0x00000080); + foldType_ = 0L; + onChanged(); + return this; + } + + private long anchorFoldType_ ; + /** + * uint64 anchorFoldType = 10; + * @return The anchorFoldType. + */ + @java.lang.Override + public long getAnchorFoldType() { + return anchorFoldType_; + } + /** + * uint64 anchorFoldType = 10; + * @param value The anchorFoldType to set. + * @return This builder for chaining. + */ + public Builder setAnchorFoldType(long value) { + + anchorFoldType_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint64 anchorFoldType = 10; + * @return This builder for chaining. + */ + public Builder clearAnchorFoldType() { + bitField0_ = (bitField0_ & ~0x00000100); + anchorFoldType_ = 0L; + onChanged(); + return this; + } + + private long priorityScore_ ; + /** + * uint64 priorityScore = 11; + * @return The priorityScore. + */ + @java.lang.Override + public long getPriorityScore() { + return priorityScore_; + } + /** + * uint64 priorityScore = 11; + * @param value The priorityScore to set. + * @return This builder for chaining. + */ + public Builder setPriorityScore(long value) { + + priorityScore_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * uint64 priorityScore = 11; + * @return This builder for chaining. + */ + public Builder clearPriorityScore() { + bitField0_ = (bitField0_ & ~0x00000200); + priorityScore_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object logId_ = ""; + /** + * string logId = 12; + * @return The logId. + */ + public java.lang.String getLogId() { + java.lang.Object ref = logId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + logId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string logId = 12; + * @return The bytes for logId. + */ + public com.google.protobuf.ByteString + getLogIdBytes() { + java.lang.Object ref = logId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + logId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string logId = 12; + * @param value The logId to set. + * @return This builder for chaining. + */ + public Builder setLogId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + logId_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string logId = 12; + * @return This builder for chaining. + */ + public Builder clearLogId() { + logId_ = getDefaultInstance().getLogId(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string logId = 12; + * @param value The bytes for logId to set. + * @return This builder for chaining. + */ + public Builder setLogIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + logId_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object msgProcessFilterK_ = ""; + /** + * string msgProcessFilterK = 13; + * @return The msgProcessFilterK. + */ + public java.lang.String getMsgProcessFilterK() { + java.lang.Object ref = msgProcessFilterK_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msgProcessFilterK_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msgProcessFilterK = 13; + * @return The bytes for msgProcessFilterK. + */ + public com.google.protobuf.ByteString + getMsgProcessFilterKBytes() { + java.lang.Object ref = msgProcessFilterK_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msgProcessFilterK_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msgProcessFilterK = 13; + * @param value The msgProcessFilterK to set. + * @return This builder for chaining. + */ + public Builder setMsgProcessFilterK( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msgProcessFilterK_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * string msgProcessFilterK = 13; + * @return This builder for chaining. + */ + public Builder clearMsgProcessFilterK() { + msgProcessFilterK_ = getDefaultInstance().getMsgProcessFilterK(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + /** + * string msgProcessFilterK = 13; + * @param value The bytes for msgProcessFilterK to set. + * @return This builder for chaining. + */ + public Builder setMsgProcessFilterKBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msgProcessFilterK_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object msgProcessFilterV_ = ""; + /** + * string msgProcessFilterV = 14; + * @return The msgProcessFilterV. + */ + public java.lang.String getMsgProcessFilterV() { + java.lang.Object ref = msgProcessFilterV_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msgProcessFilterV_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msgProcessFilterV = 14; + * @return The bytes for msgProcessFilterV. + */ + public com.google.protobuf.ByteString + getMsgProcessFilterVBytes() { + java.lang.Object ref = msgProcessFilterV_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msgProcessFilterV_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msgProcessFilterV = 14; + * @param value The msgProcessFilterV to set. + * @return This builder for chaining. + */ + public Builder setMsgProcessFilterV( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msgProcessFilterV_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string msgProcessFilterV = 14; + * @return This builder for chaining. + */ + public Builder clearMsgProcessFilterV() { + msgProcessFilterV_ = getDefaultInstance().getMsgProcessFilterV(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string msgProcessFilterV = 14; + * @param value The bytes for msgProcessFilterV to set. + * @return This builder for chaining. + */ + public Builder setMsgProcessFilterVBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msgProcessFilterV_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 15; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00002000) != 0); + } + /** + * .User user = 15; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 15; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .User user = 15; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .User user = 15; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .User user = 15; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00002000); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 15; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long anchorFoldTypeV2_ ; + /** + *
+       * Room room = 16;
+       * 
+ * + * uint64 anchorFoldTypeV2 = 17; + * @return The anchorFoldTypeV2. + */ + @java.lang.Override + public long getAnchorFoldTypeV2() { + return anchorFoldTypeV2_; + } + /** + *
+       * Room room = 16;
+       * 
+ * + * uint64 anchorFoldTypeV2 = 17; + * @param value The anchorFoldTypeV2 to set. + * @return This builder for chaining. + */ + public Builder setAnchorFoldTypeV2(long value) { + + anchorFoldTypeV2_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + *
+       * Room room = 16;
+       * 
+ * + * uint64 anchorFoldTypeV2 = 17; + * @return This builder for chaining. + */ + public Builder clearAnchorFoldTypeV2() { + bitField0_ = (bitField0_ & ~0x00004000); + anchorFoldTypeV2_ = 0L; + onChanged(); + return this; + } + + private long processAtSeiTimeMs_ ; + /** + * uint64 processAtSeiTimeMs = 18; + * @return The processAtSeiTimeMs. + */ + @java.lang.Override + public long getProcessAtSeiTimeMs() { + return processAtSeiTimeMs_; + } + /** + * uint64 processAtSeiTimeMs = 18; + * @param value The processAtSeiTimeMs to set. + * @return This builder for chaining. + */ + public Builder setProcessAtSeiTimeMs(long value) { + + processAtSeiTimeMs_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * uint64 processAtSeiTimeMs = 18; + * @return This builder for chaining. + */ + public Builder clearProcessAtSeiTimeMs() { + bitField0_ = (bitField0_ & ~0x00008000); + processAtSeiTimeMs_ = 0L; + onChanged(); + return this; + } + + private long randomDispatchMs_ ; + /** + * uint64 randomDispatchMs = 19; + * @return The randomDispatchMs. + */ + @java.lang.Override + public long getRandomDispatchMs() { + return randomDispatchMs_; + } + /** + * uint64 randomDispatchMs = 19; + * @param value The randomDispatchMs to set. + * @return This builder for chaining. + */ + public Builder setRandomDispatchMs(long value) { + + randomDispatchMs_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * uint64 randomDispatchMs = 19; + * @return This builder for chaining. + */ + public Builder clearRandomDispatchMs() { + bitField0_ = (bitField0_ & ~0x00010000); + randomDispatchMs_ = 0L; + onChanged(); + return this; + } + + private boolean isDispatch_ ; + /** + * bool isDispatch = 20; + * @return The isDispatch. + */ + @java.lang.Override + public boolean getIsDispatch() { + return isDispatch_; + } + /** + * bool isDispatch = 20; + * @param value The isDispatch to set. + * @return This builder for chaining. + */ + public Builder setIsDispatch(boolean value) { + + isDispatch_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * bool isDispatch = 20; + * @return This builder for chaining. + */ + public Builder clearIsDispatch() { + bitField0_ = (bitField0_ & ~0x00020000); + isDispatch_ = false; + onChanged(); + return this; + } + + private int channelId_ ; + /** + * uint32 channelId = 21; + * @return The channelId. + */ + @java.lang.Override + public int getChannelId() { + return channelId_; + } + /** + * uint32 channelId = 21; + * @param value The channelId to set. + * @return This builder for chaining. + */ + public Builder setChannelId(int value) { + + channelId_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * uint32 channelId = 21; + * @return This builder for chaining. + */ + public Builder clearChannelId() { + bitField0_ = (bitField0_ & ~0x00040000); + channelId_ = 0; + onChanged(); + return this; + } + + private long diffSei2AbsSecond_ ; + /** + * uint64 diffSei2absSecond = 22; + * @return The diffSei2absSecond. + */ + @java.lang.Override + public long getDiffSei2AbsSecond() { + return diffSei2AbsSecond_; + } + /** + * uint64 diffSei2absSecond = 22; + * @param value The diffSei2absSecond to set. + * @return This builder for chaining. + */ + public Builder setDiffSei2AbsSecond(long value) { + + diffSei2AbsSecond_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * uint64 diffSei2absSecond = 22; + * @return This builder for chaining. + */ + public Builder clearDiffSei2AbsSecond() { + bitField0_ = (bitField0_ & ~0x00080000); + diffSei2AbsSecond_ = 0L; + onChanged(); + return this; + } + + private long anchorFoldDuration_ ; + /** + * uint64 anchorFoldDuration = 23; + * @return The anchorFoldDuration. + */ + @java.lang.Override + public long getAnchorFoldDuration() { + return anchorFoldDuration_; + } + /** + * uint64 anchorFoldDuration = 23; + * @param value The anchorFoldDuration to set. + * @return This builder for chaining. + */ + public Builder setAnchorFoldDuration(long value) { + + anchorFoldDuration_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * uint64 anchorFoldDuration = 23; + * @return This builder for chaining. + */ + public Builder clearAnchorFoldDuration() { + bitField0_ = (bitField0_ & ~0x00100000); + anchorFoldDuration_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Common) + } + + // @@protoc_insertion_point(class_scope:Common) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Common parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.CommonOuterClass.Common getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Common_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Common_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014Common.proto\032\nUser.proto\"\312\003\n\006Common\022\016\n" + + "\006method\030\001 \001(\t\022\r\n\005msgId\030\002 \001(\004\022\016\n\006roomId\030\003" + + " \001(\004\022\022\n\ncreateTime\030\004 \001(\004\022\017\n\007monitor\030\005 \001(" + + "\r\022\021\n\tisShowMsg\030\006 \001(\010\022\020\n\010describe\030\007 \001(\t\022\020" + + "\n\010foldType\030\t \001(\004\022\026\n\016anchorFoldType\030\n \001(\004" + + "\022\025\n\rpriorityScore\030\013 \001(\004\022\r\n\005logId\030\014 \001(\t\022\031" + + "\n\021msgProcessFilterK\030\r \001(\t\022\031\n\021msgProcessF" + + "ilterV\030\016 \001(\t\022\023\n\004user\030\017 \001(\0132\005.User\022\030\n\020anc" + + "horFoldTypeV2\030\021 \001(\004\022\032\n\022processAtSeiTimeM" + + "s\030\022 \001(\004\022\030\n\020randomDispatchMs\030\023 \001(\004\022\022\n\nisD" + + "ispatch\030\024 \001(\010\022\021\n\tchannelId\030\025 \001(\r\022\031\n\021diff" + + "Sei2absSecond\030\026 \001(\004\022\032\n\022anchorFoldDuratio" + + "n\030\027 \001(\004B8\n6tech.ordinaryroad.live.chat.c" + + "lient.douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + }); + internal_static_Common_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Common_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Common_descriptor, + new java.lang.String[] { "Method", "MsgId", "RoomId", "CreateTime", "Monitor", "IsShowMsg", "Describe", "FoldType", "AnchorFoldType", "PriorityScore", "LogId", "MsgProcessFilterK", "MsgProcessFilterV", "User", "AnchorFoldTypeV2", "ProcessAtSeiTimeMs", "RandomDispatchMs", "IsDispatch", "ChannelId", "DiffSei2AbsSecond", "AnchorFoldDuration", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java new file mode 100644 index 00000000..20a7381c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/DoubleLikeDetailOuterClass.java @@ -0,0 +1,767 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: DoubleLikeDetail.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class DoubleLikeDetailOuterClass { + private DoubleLikeDetailOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface DoubleLikeDetailOrBuilder extends + // @@protoc_insertion_point(interface_extends:DoubleLikeDetail) + com.google.protobuf.MessageOrBuilder { + + /** + * bool doubleFlag = 1; + * @return The doubleFlag. + */ + boolean getDoubleFlag(); + + /** + * uint32 seqId = 2; + * @return The seqId. + */ + int getSeqId(); + + /** + * uint32 renewalsNum = 3; + * @return The renewalsNum. + */ + int getRenewalsNum(); + + /** + * uint32 triggersNum = 4; + * @return The triggersNum. + */ + int getTriggersNum(); + } + /** + * Protobuf type {@code DoubleLikeDetail} + */ + public static final class DoubleLikeDetail extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:DoubleLikeDetail) + DoubleLikeDetailOrBuilder { + private static final long serialVersionUID = 0L; + // Use DoubleLikeDetail.newBuilder() to construct. + private DoubleLikeDetail(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private DoubleLikeDetail() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new DoubleLikeDetail(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder.class); + } + + public static final int DOUBLEFLAG_FIELD_NUMBER = 1; + private boolean doubleFlag_ = false; + /** + * bool doubleFlag = 1; + * @return The doubleFlag. + */ + @java.lang.Override + public boolean getDoubleFlag() { + return doubleFlag_; + } + + public static final int SEQID_FIELD_NUMBER = 2; + private int seqId_ = 0; + /** + * uint32 seqId = 2; + * @return The seqId. + */ + @java.lang.Override + public int getSeqId() { + return seqId_; + } + + public static final int RENEWALSNUM_FIELD_NUMBER = 3; + private int renewalsNum_ = 0; + /** + * uint32 renewalsNum = 3; + * @return The renewalsNum. + */ + @java.lang.Override + public int getRenewalsNum() { + return renewalsNum_; + } + + public static final int TRIGGERSNUM_FIELD_NUMBER = 4; + private int triggersNum_ = 0; + /** + * uint32 triggersNum = 4; + * @return The triggersNum. + */ + @java.lang.Override + public int getTriggersNum() { + return triggersNum_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (doubleFlag_ != false) { + output.writeBool(1, doubleFlag_); + } + if (seqId_ != 0) { + output.writeUInt32(2, seqId_); + } + if (renewalsNum_ != 0) { + output.writeUInt32(3, renewalsNum_); + } + if (triggersNum_ != 0) { + output.writeUInt32(4, triggersNum_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (doubleFlag_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, doubleFlag_); + } + if (seqId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, seqId_); + } + if (renewalsNum_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, renewalsNum_); + } + if (triggersNum_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, triggersNum_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail) obj; + + if (getDoubleFlag() + != other.getDoubleFlag()) return false; + if (getSeqId() + != other.getSeqId()) return false; + if (getRenewalsNum() + != other.getRenewalsNum()) return false; + if (getTriggersNum() + != other.getTriggersNum()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DOUBLEFLAG_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDoubleFlag()); + hash = (37 * hash) + SEQID_FIELD_NUMBER; + hash = (53 * hash) + getSeqId(); + hash = (37 * hash) + RENEWALSNUM_FIELD_NUMBER; + hash = (53 * hash) + getRenewalsNum(); + hash = (37 * hash) + TRIGGERSNUM_FIELD_NUMBER; + hash = (53 * hash) + getTriggersNum(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code DoubleLikeDetail} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:DoubleLikeDetail) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetailOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + doubleFlag_ = false; + seqId_ = 0; + renewalsNum_ = 0; + triggersNum_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.internal_static_DoubleLikeDetail_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.doubleFlag_ = doubleFlag_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.seqId_ = seqId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.renewalsNum_ = renewalsNum_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.triggersNum_ = triggersNum_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail.getDefaultInstance()) return this; + if (other.getDoubleFlag() != false) { + setDoubleFlag(other.getDoubleFlag()); + } + if (other.getSeqId() != 0) { + setSeqId(other.getSeqId()); + } + if (other.getRenewalsNum() != 0) { + setRenewalsNum(other.getRenewalsNum()); + } + if (other.getTriggersNum() != 0) { + setTriggersNum(other.getTriggersNum()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + doubleFlag_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + seqId_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + renewalsNum_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + triggersNum_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean doubleFlag_ ; + /** + * bool doubleFlag = 1; + * @return The doubleFlag. + */ + @java.lang.Override + public boolean getDoubleFlag() { + return doubleFlag_; + } + /** + * bool doubleFlag = 1; + * @param value The doubleFlag to set. + * @return This builder for chaining. + */ + public Builder setDoubleFlag(boolean value) { + + doubleFlag_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool doubleFlag = 1; + * @return This builder for chaining. + */ + public Builder clearDoubleFlag() { + bitField0_ = (bitField0_ & ~0x00000001); + doubleFlag_ = false; + onChanged(); + return this; + } + + private int seqId_ ; + /** + * uint32 seqId = 2; + * @return The seqId. + */ + @java.lang.Override + public int getSeqId() { + return seqId_; + } + /** + * uint32 seqId = 2; + * @param value The seqId to set. + * @return This builder for chaining. + */ + public Builder setSeqId(int value) { + + seqId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint32 seqId = 2; + * @return This builder for chaining. + */ + public Builder clearSeqId() { + bitField0_ = (bitField0_ & ~0x00000002); + seqId_ = 0; + onChanged(); + return this; + } + + private int renewalsNum_ ; + /** + * uint32 renewalsNum = 3; + * @return The renewalsNum. + */ + @java.lang.Override + public int getRenewalsNum() { + return renewalsNum_; + } + /** + * uint32 renewalsNum = 3; + * @param value The renewalsNum to set. + * @return This builder for chaining. + */ + public Builder setRenewalsNum(int value) { + + renewalsNum_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint32 renewalsNum = 3; + * @return This builder for chaining. + */ + public Builder clearRenewalsNum() { + bitField0_ = (bitField0_ & ~0x00000004); + renewalsNum_ = 0; + onChanged(); + return this; + } + + private int triggersNum_ ; + /** + * uint32 triggersNum = 4; + * @return The triggersNum. + */ + @java.lang.Override + public int getTriggersNum() { + return triggersNum_; + } + /** + * uint32 triggersNum = 4; + * @param value The triggersNum to set. + * @return This builder for chaining. + */ + public Builder setTriggersNum(int value) { + + triggersNum_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 triggersNum = 4; + * @return This builder for chaining. + */ + public Builder clearTriggersNum() { + bitField0_ = (bitField0_ & ~0x00000008); + triggersNum_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:DoubleLikeDetail) + } + + // @@protoc_insertion_point(class_scope:DoubleLikeDetail) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DoubleLikeDetail parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.DoubleLikeDetailOuterClass.DoubleLikeDetail getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_DoubleLikeDetail_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_DoubleLikeDetail_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026DoubleLikeDetail.proto\"_\n\020DoubleLikeDe" + + "tail\022\022\n\ndoubleFlag\030\001 \001(\010\022\r\n\005seqId\030\002 \001(\r\022" + + "\023\n\013renewalsNum\030\003 \001(\r\022\023\n\013triggersNum\030\004 \001(" + + "\rB8\n6tech.ordinaryroad.live.chat.client." + + "douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_DoubleLikeDetail_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_DoubleLikeDetail_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_DoubleLikeDetail_descriptor, + new java.lang.String[] { "DoubleFlag", "SeqId", "RenewalsNum", "TriggersNum", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java new file mode 100644 index 00000000..79765e30 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftIMPriorityOuterClass.java @@ -0,0 +1,816 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GiftIMPriority.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class GiftIMPriorityOuterClass { + private GiftIMPriorityOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface GiftIMPriorityOrBuilder extends + // @@protoc_insertion_point(interface_extends:GiftIMPriority) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated uint64 queue_sizes_list = 1; + * @return A list containing the queueSizesList. + */ + java.util.List getQueueSizesListList(); + /** + * repeated uint64 queue_sizes_list = 1; + * @return The count of queueSizesList. + */ + int getQueueSizesListCount(); + /** + * repeated uint64 queue_sizes_list = 1; + * @param index The index of the element to return. + * @return The queueSizesList at the given index. + */ + long getQueueSizesList(int index); + + /** + * uint64 self_queue_priority = 2; + * @return The selfQueuePriority. + */ + long getSelfQueuePriority(); + + /** + * uint64 priority = 3; + * @return The priority. + */ + long getPriority(); + } + /** + * Protobuf type {@code GiftIMPriority} + */ + public static final class GiftIMPriority extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GiftIMPriority) + GiftIMPriorityOrBuilder { + private static final long serialVersionUID = 0L; + // Use GiftIMPriority.newBuilder() to construct. + private GiftIMPriority(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GiftIMPriority() { + queueSizesList_ = emptyLongList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GiftIMPriority(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder.class); + } + + public static final int QUEUE_SIZES_LIST_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList queueSizesList_; + /** + * repeated uint64 queue_sizes_list = 1; + * @return A list containing the queueSizesList. + */ + @java.lang.Override + public java.util.List + getQueueSizesListList() { + return queueSizesList_; + } + /** + * repeated uint64 queue_sizes_list = 1; + * @return The count of queueSizesList. + */ + public int getQueueSizesListCount() { + return queueSizesList_.size(); + } + /** + * repeated uint64 queue_sizes_list = 1; + * @param index The index of the element to return. + * @return The queueSizesList at the given index. + */ + public long getQueueSizesList(int index) { + return queueSizesList_.getLong(index); + } + private int queueSizesListMemoizedSerializedSize = -1; + + public static final int SELF_QUEUE_PRIORITY_FIELD_NUMBER = 2; + private long selfQueuePriority_ = 0L; + /** + * uint64 self_queue_priority = 2; + * @return The selfQueuePriority. + */ + @java.lang.Override + public long getSelfQueuePriority() { + return selfQueuePriority_; + } + + public static final int PRIORITY_FIELD_NUMBER = 3; + private long priority_ = 0L; + /** + * uint64 priority = 3; + * @return The priority. + */ + @java.lang.Override + public long getPriority() { + return priority_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (getQueueSizesListList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(queueSizesListMemoizedSerializedSize); + } + for (int i = 0; i < queueSizesList_.size(); i++) { + output.writeUInt64NoTag(queueSizesList_.getLong(i)); + } + if (selfQueuePriority_ != 0L) { + output.writeUInt64(2, selfQueuePriority_); + } + if (priority_ != 0L) { + output.writeUInt64(3, priority_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < queueSizesList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeUInt64SizeNoTag(queueSizesList_.getLong(i)); + } + size += dataSize; + if (!getQueueSizesListList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + queueSizesListMemoizedSerializedSize = dataSize; + } + if (selfQueuePriority_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, selfQueuePriority_); + } + if (priority_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, priority_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority) obj; + + if (!getQueueSizesListList() + .equals(other.getQueueSizesListList())) return false; + if (getSelfQueuePriority() + != other.getSelfQueuePriority()) return false; + if (getPriority() + != other.getPriority()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getQueueSizesListCount() > 0) { + hash = (37 * hash) + QUEUE_SIZES_LIST_FIELD_NUMBER; + hash = (53 * hash) + getQueueSizesListList().hashCode(); + } + hash = (37 * hash) + SELF_QUEUE_PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSelfQueuePriority()); + hash = (37 * hash) + PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPriority()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GiftIMPriority} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GiftIMPriority) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriorityOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + queueSizesList_ = emptyLongList(); + selfQueuePriority_ = 0L; + priority_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.internal_static_GiftIMPriority_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result) { + if (((bitField0_ & 0x00000001) != 0)) { + queueSizesList_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.queueSizesList_ = queueSizesList_; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.selfQueuePriority_ = selfQueuePriority_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.priority_ = priority_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority.getDefaultInstance()) return this; + if (!other.queueSizesList_.isEmpty()) { + if (queueSizesList_.isEmpty()) { + queueSizesList_ = other.queueSizesList_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureQueueSizesListIsMutable(); + queueSizesList_.addAll(other.queueSizesList_); + } + onChanged(); + } + if (other.getSelfQueuePriority() != 0L) { + setSelfQueuePriority(other.getSelfQueuePriority()); + } + if (other.getPriority() != 0L) { + setPriority(other.getPriority()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + long v = input.readUInt64(); + ensureQueueSizesListIsMutable(); + queueSizesList_.addLong(v); + break; + } // case 8 + case 10: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureQueueSizesListIsMutable(); + while (input.getBytesUntilLimit() > 0) { + queueSizesList_.addLong(input.readUInt64()); + } + input.popLimit(limit); + break; + } // case 10 + case 16: { + selfQueuePriority_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + priority_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.Internal.LongList queueSizesList_ = emptyLongList(); + private void ensureQueueSizesListIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + queueSizesList_ = mutableCopy(queueSizesList_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated uint64 queue_sizes_list = 1; + * @return A list containing the queueSizesList. + */ + public java.util.List + getQueueSizesListList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(queueSizesList_) : queueSizesList_; + } + /** + * repeated uint64 queue_sizes_list = 1; + * @return The count of queueSizesList. + */ + public int getQueueSizesListCount() { + return queueSizesList_.size(); + } + /** + * repeated uint64 queue_sizes_list = 1; + * @param index The index of the element to return. + * @return The queueSizesList at the given index. + */ + public long getQueueSizesList(int index) { + return queueSizesList_.getLong(index); + } + /** + * repeated uint64 queue_sizes_list = 1; + * @param index The index to set the value at. + * @param value The queueSizesList to set. + * @return This builder for chaining. + */ + public Builder setQueueSizesList( + int index, long value) { + + ensureQueueSizesListIsMutable(); + queueSizesList_.setLong(index, value); + onChanged(); + return this; + } + /** + * repeated uint64 queue_sizes_list = 1; + * @param value The queueSizesList to add. + * @return This builder for chaining. + */ + public Builder addQueueSizesList(long value) { + + ensureQueueSizesListIsMutable(); + queueSizesList_.addLong(value); + onChanged(); + return this; + } + /** + * repeated uint64 queue_sizes_list = 1; + * @param values The queueSizesList to add. + * @return This builder for chaining. + */ + public Builder addAllQueueSizesList( + java.lang.Iterable values) { + ensureQueueSizesListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, queueSizesList_); + onChanged(); + return this; + } + /** + * repeated uint64 queue_sizes_list = 1; + * @return This builder for chaining. + */ + public Builder clearQueueSizesList() { + queueSizesList_ = emptyLongList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + private long selfQueuePriority_ ; + /** + * uint64 self_queue_priority = 2; + * @return The selfQueuePriority. + */ + @java.lang.Override + public long getSelfQueuePriority() { + return selfQueuePriority_; + } + /** + * uint64 self_queue_priority = 2; + * @param value The selfQueuePriority to set. + * @return This builder for chaining. + */ + public Builder setSelfQueuePriority(long value) { + + selfQueuePriority_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 self_queue_priority = 2; + * @return This builder for chaining. + */ + public Builder clearSelfQueuePriority() { + bitField0_ = (bitField0_ & ~0x00000002); + selfQueuePriority_ = 0L; + onChanged(); + return this; + } + + private long priority_ ; + /** + * uint64 priority = 3; + * @return The priority. + */ + @java.lang.Override + public long getPriority() { + return priority_; + } + /** + * uint64 priority = 3; + * @param value The priority to set. + * @return This builder for chaining. + */ + public Builder setPriority(long value) { + + priority_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 priority = 3; + * @return This builder for chaining. + */ + public Builder clearPriority() { + bitField0_ = (bitField0_ & ~0x00000004); + priority_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:GiftIMPriority) + } + + // @@protoc_insertion_point(class_scope:GiftIMPriority) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GiftIMPriority parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftIMPriorityOuterClass.GiftIMPriority getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GiftIMPriority_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GiftIMPriority_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024GiftIMPriority.proto\"Y\n\016GiftIMPriority" + + "\022\030\n\020queue_sizes_list\030\001 \003(\004\022\033\n\023self_queue" + + "_priority\030\002 \001(\004\022\020\n\010priority\030\003 \001(\004B8\n6tec" + + "h.ordinaryroad.live.chat.client.douyin.p" + + "rotobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_GiftIMPriority_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GiftIMPriority_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GiftIMPriority_descriptor, + new java.lang.String[] { "QueueSizesList", "SelfQueuePriority", "Priority", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java new file mode 100644 index 00000000..e4e15b38 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/GiftStructOuterClass.java @@ -0,0 +1,6440 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GiftStruct.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class GiftStructOuterClass { + private GiftStructOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface GiftStructOrBuilder extends + // @@protoc_insertion_point(interface_extends:GiftStruct) + com.google.protobuf.MessageOrBuilder { + + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + boolean hasImage(); + /** + * .Image image = 1; + * @return The image. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage(); + /** + * .Image image = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder(); + + /** + * string describe = 2; + * @return The describe. + */ + java.lang.String getDescribe(); + /** + * string describe = 2; + * @return The bytes for describe. + */ + com.google.protobuf.ByteString + getDescribeBytes(); + + /** + * bool notify = 3; + * @return The notify. + */ + boolean getNotify(); + + /** + * uint64 duration = 4; + * @return The duration. + */ + long getDuration(); + + /** + * uint64 id = 5; + * @return The id. + */ + long getId(); + + /** + *
+     * GiftStructFansClubInfo fansclubInfo = 6;
+     * 
+ * + * bool for_linkmic = 7; + * @return The forLinkmic. + */ + boolean getForLinkmic(); + + /** + * bool doodle = 8; + * @return The doodle. + */ + boolean getDoodle(); + + /** + * bool for_fansclub = 9; + * @return The forFansclub. + */ + boolean getForFansclub(); + + /** + * bool combo = 10; + * @return The combo. + */ + boolean getCombo(); + + /** + * uint32 type = 11; + * @return The type. + */ + int getType(); + + /** + * uint32 diamond_count = 12; + * @return The diamondCount. + */ + int getDiamondCount(); + + /** + * bool is_displayed_on_panel = 13; + * @return The isDisplayedOnPanel. + */ + boolean getIsDisplayedOnPanel(); + + /** + * uint64 primary_effect_id = 14; + * @return The primaryEffectId. + */ + long getPrimaryEffectId(); + + /** + * .Image gift_label_icon = 15; + * @return Whether the giftLabelIcon field is set. + */ + boolean hasGiftLabelIcon(); + /** + * .Image gift_label_icon = 15; + * @return The giftLabelIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon(); + /** + * .Image gift_label_icon = 15; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder(); + + /** + * string name = 16; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 16; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * string region = 17; + * @return The region. + */ + java.lang.String getRegion(); + /** + * string region = 17; + * @return The bytes for region. + */ + com.google.protobuf.ByteString + getRegionBytes(); + + /** + * string manual = 18; + * @return The manual. + */ + java.lang.String getManual(); + /** + * string manual = 18; + * @return The bytes for manual. + */ + com.google.protobuf.ByteString + getManualBytes(); + + /** + * bool for_custom = 19; + * @return The forCustom. + */ + boolean getForCustom(); + + /** + * map<string, int64> specialEffectsMap = 20; + */ + int getSpecialEffectsMapCount(); + /** + * map<string, int64> specialEffectsMap = 20; + */ + boolean containsSpecialEffectsMap( + java.lang.String key); + /** + * Use {@link #getSpecialEffectsMapMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getSpecialEffectsMap(); + /** + * map<string, int64> specialEffectsMap = 20; + */ + java.util.Map + getSpecialEffectsMapMap(); + /** + * map<string, int64> specialEffectsMap = 20; + */ + long getSpecialEffectsMapOrDefault( + java.lang.String key, + long defaultValue); + /** + * map<string, int64> specialEffectsMap = 20; + */ + long getSpecialEffectsMapOrThrow( + java.lang.String key); + + /** + * .Image icon = 21; + * @return Whether the icon field is set. + */ + boolean hasIcon(); + /** + * .Image icon = 21; + * @return The icon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); + /** + * .Image icon = 21; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); + + /** + * uint32 action_type = 22; + * @return The actionType. + */ + int getActionType(); + + /** + * int32 watermelonSeeds = 23; + * @return The watermelonSeeds. + */ + int getWatermelonSeeds(); + + /** + * string goldEffect = 24; + * @return The goldEffect. + */ + java.lang.String getGoldEffect(); + /** + * string goldEffect = 24; + * @return The bytes for goldEffect. + */ + com.google.protobuf.ByteString + getGoldEffectBytes(); + + /** + *
+     * repeated LuckyMoneyGiftMeta subs = 25;
+     * 
+ * + * int64 goldenBeans = 26; + * @return The goldenBeans. + */ + long getGoldenBeans(); + + /** + * int64 honorLevel = 27; + * @return The honorLevel. + */ + long getHonorLevel(); + + /** + * int32 itemType = 28; + * @return The itemType. + */ + int getItemType(); + + /** + * string schemeUrl = 29; + * @return The schemeUrl. + */ + java.lang.String getSchemeUrl(); + /** + * string schemeUrl = 29; + * @return The bytes for schemeUrl. + */ + com.google.protobuf.ByteString + getSchemeUrlBytes(); + + /** + *
+     * GiftPanelOperation giftOperation = 30;
+     * 
+ * + * string eventName = 31; + * @return The eventName. + */ + java.lang.String getEventName(); + /** + *
+     * GiftPanelOperation giftOperation = 30;
+     * 
+ * + * string eventName = 31; + * @return The bytes for eventName. + */ + com.google.protobuf.ByteString + getEventNameBytes(); + + /** + * int64 nobleLevel = 32; + * @return The nobleLevel. + */ + long getNobleLevel(); + + /** + * string guideUrl = 33; + * @return The guideUrl. + */ + java.lang.String getGuideUrl(); + /** + * string guideUrl = 33; + * @return The bytes for guideUrl. + */ + com.google.protobuf.ByteString + getGuideUrlBytes(); + + /** + * bool punishMedicine = 34; + * @return The punishMedicine. + */ + boolean getPunishMedicine(); + + /** + * bool forPortal = 35; + * @return The forPortal. + */ + boolean getForPortal(); + + /** + * string businessText = 36; + * @return The businessText. + */ + java.lang.String getBusinessText(); + /** + * string businessText = 36; + * @return The bytes for businessText. + */ + com.google.protobuf.ByteString + getBusinessTextBytes(); + + /** + * bool cnyGift = 37; + * @return The cnyGift. + */ + boolean getCnyGift(); + + /** + * int64 appId = 38; + * @return The appId. + */ + long getAppId(); + + /** + * int64 vipLevel = 39; + * @return The vipLevel. + */ + long getVipLevel(); + + /** + * bool isGray = 40; + * @return The isGray. + */ + boolean getIsGray(); + + /** + * string graySchemeUrl = 41; + * @return The graySchemeUrl. + */ + java.lang.String getGraySchemeUrl(); + /** + * string graySchemeUrl = 41; + * @return The bytes for graySchemeUrl. + */ + com.google.protobuf.ByteString + getGraySchemeUrlBytes(); + + /** + * int64 giftScene = 42; + * @return The giftScene. + */ + long getGiftScene(); + + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @return A list containing the triggerWords. + */ + java.util.List + getTriggerWordsList(); + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @return The count of triggerWords. + */ + int getTriggerWordsCount(); + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the element to return. + * @return The triggerWords at the given index. + */ + java.lang.String getTriggerWords(int index); + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the value to return. + * @return The bytes of the triggerWords at the given index. + */ + com.google.protobuf.ByteString + getTriggerWordsBytes(int index); + + /** + *
+     * repeated GiftBuffInfo giftBuffInfos = 45;
+     * 
+ * + * bool forFirstRecharge = 46; + * @return The forFirstRecharge. + */ + boolean getForFirstRecharge(); + + /** + * .Image dynamicImgForSelected = 47; + * @return Whether the dynamicImgForSelected field is set. + */ + boolean hasDynamicImgForSelected(); + /** + * .Image dynamicImgForSelected = 47; + * @return The dynamicImgForSelected. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected(); + /** + * .Image dynamicImgForSelected = 47; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder(); + + /** + * int32 afterSendAction = 48; + * @return The afterSendAction. + */ + int getAfterSendAction(); + + /** + * int64 giftOfflineTime = 49; + * @return The giftOfflineTime. + */ + long getGiftOfflineTime(); + + /** + * string topBarText = 50; + * @return The topBarText. + */ + java.lang.String getTopBarText(); + /** + * string topBarText = 50; + * @return The bytes for topBarText. + */ + com.google.protobuf.ByteString + getTopBarTextBytes(); + + /** + * .Image topRightAvatar = 51; + * @return Whether the topRightAvatar field is set. + */ + boolean hasTopRightAvatar(); + /** + * .Image topRightAvatar = 51; + * @return The topRightAvatar. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar(); + /** + * .Image topRightAvatar = 51; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder(); + + /** + * string bannerSchemeUrl = 52; + * @return The bannerSchemeUrl. + */ + java.lang.String getBannerSchemeUrl(); + /** + * string bannerSchemeUrl = 52; + * @return The bytes for bannerSchemeUrl. + */ + com.google.protobuf.ByteString + getBannerSchemeUrlBytes(); + + /** + * bool isLocked = 53; + * @return The isLocked. + */ + boolean getIsLocked(); + + /** + * int64 reqExtraType = 54; + * @return The reqExtraType. + */ + long getReqExtraType(); + + /** + * repeated int64 assetIds = 55; + * @return A list containing the assetIds. + */ + java.util.List getAssetIdsList(); + /** + * repeated int64 assetIds = 55; + * @return The count of assetIds. + */ + int getAssetIdsCount(); + /** + * repeated int64 assetIds = 55; + * @param index The index of the element to return. + * @return The assetIds at the given index. + */ + long getAssetIds(int index); + + /** + *
+     * GiftPreviewInfo giftPreviewInfo = 56;
+     * GiftTip giftTip = 57;
+     * 
+ * + * int32 needSweepLightCount = 58; + * @return The needSweepLightCount. + */ + int getNeedSweepLightCount(); + } + /** + * Protobuf type {@code GiftStruct} + */ + public static final class GiftStruct extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GiftStruct) + GiftStructOrBuilder { + private static final long serialVersionUID = 0L; + // Use GiftStruct.newBuilder() to construct. + private GiftStruct(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GiftStruct() { + describe_ = ""; + name_ = ""; + region_ = ""; + manual_ = ""; + goldEffect_ = ""; + schemeUrl_ = ""; + eventName_ = ""; + guideUrl_ = ""; + businessText_ = ""; + graySchemeUrl_ = ""; + triggerWords_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + topBarText_ = ""; + bannerSchemeUrl_ = ""; + assetIds_ = emptyLongList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GiftStruct(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 20: + return internalGetSpecialEffectsMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class); + } + + public static final int IMAGE_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + @java.lang.Override + public boolean hasImage() { + return image_ != null; + } + /** + * .Image image = 1; + * @return The image. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + /** + * .Image image = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + + public static final int DESCRIBE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object describe_ = ""; + /** + * string describe = 2; + * @return The describe. + */ + @java.lang.Override + public java.lang.String getDescribe() { + java.lang.Object ref = describe_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + describe_ = s; + return s; + } + } + /** + * string describe = 2; + * @return The bytes for describe. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDescribeBytes() { + java.lang.Object ref = describe_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + describe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NOTIFY_FIELD_NUMBER = 3; + private boolean notify_ = false; + /** + * bool notify = 3; + * @return The notify. + */ + @java.lang.Override + public boolean getNotify() { + return notify_; + } + + public static final int DURATION_FIELD_NUMBER = 4; + private long duration_ = 0L; + /** + * uint64 duration = 4; + * @return The duration. + */ + @java.lang.Override + public long getDuration() { + return duration_; + } + + public static final int ID_FIELD_NUMBER = 5; + private long id_ = 0L; + /** + * uint64 id = 5; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + + public static final int FOR_LINKMIC_FIELD_NUMBER = 7; + private boolean forLinkmic_ = false; + /** + *
+     * GiftStructFansClubInfo fansclubInfo = 6;
+     * 
+ * + * bool for_linkmic = 7; + * @return The forLinkmic. + */ + @java.lang.Override + public boolean getForLinkmic() { + return forLinkmic_; + } + + public static final int DOODLE_FIELD_NUMBER = 8; + private boolean doodle_ = false; + /** + * bool doodle = 8; + * @return The doodle. + */ + @java.lang.Override + public boolean getDoodle() { + return doodle_; + } + + public static final int FOR_FANSCLUB_FIELD_NUMBER = 9; + private boolean forFansclub_ = false; + /** + * bool for_fansclub = 9; + * @return The forFansclub. + */ + @java.lang.Override + public boolean getForFansclub() { + return forFansclub_; + } + + public static final int COMBO_FIELD_NUMBER = 10; + private boolean combo_ = false; + /** + * bool combo = 10; + * @return The combo. + */ + @java.lang.Override + public boolean getCombo() { + return combo_; + } + + public static final int TYPE_FIELD_NUMBER = 11; + private int type_ = 0; + /** + * uint32 type = 11; + * @return The type. + */ + @java.lang.Override + public int getType() { + return type_; + } + + public static final int DIAMOND_COUNT_FIELD_NUMBER = 12; + private int diamondCount_ = 0; + /** + * uint32 diamond_count = 12; + * @return The diamondCount. + */ + @java.lang.Override + public int getDiamondCount() { + return diamondCount_; + } + + public static final int IS_DISPLAYED_ON_PANEL_FIELD_NUMBER = 13; + private boolean isDisplayedOnPanel_ = false; + /** + * bool is_displayed_on_panel = 13; + * @return The isDisplayedOnPanel. + */ + @java.lang.Override + public boolean getIsDisplayedOnPanel() { + return isDisplayedOnPanel_; + } + + public static final int PRIMARY_EFFECT_ID_FIELD_NUMBER = 14; + private long primaryEffectId_ = 0L; + /** + * uint64 primary_effect_id = 14; + * @return The primaryEffectId. + */ + @java.lang.Override + public long getPrimaryEffectId() { + return primaryEffectId_; + } + + public static final int GIFT_LABEL_ICON_FIELD_NUMBER = 15; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_; + /** + * .Image gift_label_icon = 15; + * @return Whether the giftLabelIcon field is set. + */ + @java.lang.Override + public boolean hasGiftLabelIcon() { + return giftLabelIcon_ != null; + } + /** + * .Image gift_label_icon = 15; + * @return The giftLabelIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() { + return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; + } + /** + * .Image gift_label_icon = 15; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() { + return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; + } + + public static final int NAME_FIELD_NUMBER = 16; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * string name = 16; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 16; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REGION_FIELD_NUMBER = 17; + @SuppressWarnings("serial") + private volatile java.lang.Object region_ = ""; + /** + * string region = 17; + * @return The region. + */ + @java.lang.Override + public java.lang.String getRegion() { + java.lang.Object ref = region_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + region_ = s; + return s; + } + } + /** + * string region = 17; + * @return The bytes for region. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + region_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MANUAL_FIELD_NUMBER = 18; + @SuppressWarnings("serial") + private volatile java.lang.Object manual_ = ""; + /** + * string manual = 18; + * @return The manual. + */ + @java.lang.Override + public java.lang.String getManual() { + java.lang.Object ref = manual_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + manual_ = s; + return s; + } + } + /** + * string manual = 18; + * @return The bytes for manual. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getManualBytes() { + java.lang.Object ref = manual_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manual_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FOR_CUSTOM_FIELD_NUMBER = 19; + private boolean forCustom_ = false; + /** + * bool for_custom = 19; + * @return The forCustom. + */ + @java.lang.Override + public boolean getForCustom() { + return forCustom_; + } + + public static final int SPECIALEFFECTSMAP_FIELD_NUMBER = 20; + private static final class SpecialEffectsMapDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.Long> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.INT64, + 0L); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, java.lang.Long> specialEffectsMap_; + private com.google.protobuf.MapField + internalGetSpecialEffectsMap() { + if (specialEffectsMap_ == null) { + return com.google.protobuf.MapField.emptyMapField( + SpecialEffectsMapDefaultEntryHolder.defaultEntry); + } + return specialEffectsMap_; + } + public int getSpecialEffectsMapCount() { + return internalGetSpecialEffectsMap().getMap().size(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public boolean containsSpecialEffectsMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetSpecialEffectsMap().getMap().containsKey(key); + } + /** + * Use {@link #getSpecialEffectsMapMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getSpecialEffectsMap() { + return getSpecialEffectsMapMap(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public java.util.Map getSpecialEffectsMapMap() { + return internalGetSpecialEffectsMap().getMap(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public long getSpecialEffectsMapOrDefault( + java.lang.String key, + long defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetSpecialEffectsMap().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public long getSpecialEffectsMapOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetSpecialEffectsMap().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int ICON_FIELD_NUMBER = 21; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + /** + * .Image icon = 21; + * @return Whether the icon field is set. + */ + @java.lang.Override + public boolean hasIcon() { + return icon_ != null; + } + /** + * .Image icon = 21; + * @return The icon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + /** + * .Image icon = 21; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + + public static final int ACTION_TYPE_FIELD_NUMBER = 22; + private int actionType_ = 0; + /** + * uint32 action_type = 22; + * @return The actionType. + */ + @java.lang.Override + public int getActionType() { + return actionType_; + } + + public static final int WATERMELONSEEDS_FIELD_NUMBER = 23; + private int watermelonSeeds_ = 0; + /** + * int32 watermelonSeeds = 23; + * @return The watermelonSeeds. + */ + @java.lang.Override + public int getWatermelonSeeds() { + return watermelonSeeds_; + } + + public static final int GOLDEFFECT_FIELD_NUMBER = 24; + @SuppressWarnings("serial") + private volatile java.lang.Object goldEffect_ = ""; + /** + * string goldEffect = 24; + * @return The goldEffect. + */ + @java.lang.Override + public java.lang.String getGoldEffect() { + java.lang.Object ref = goldEffect_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + goldEffect_ = s; + return s; + } + } + /** + * string goldEffect = 24; + * @return The bytes for goldEffect. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGoldEffectBytes() { + java.lang.Object ref = goldEffect_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + goldEffect_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GOLDENBEANS_FIELD_NUMBER = 26; + private long goldenBeans_ = 0L; + /** + *
+     * repeated LuckyMoneyGiftMeta subs = 25;
+     * 
+ * + * int64 goldenBeans = 26; + * @return The goldenBeans. + */ + @java.lang.Override + public long getGoldenBeans() { + return goldenBeans_; + } + + public static final int HONORLEVEL_FIELD_NUMBER = 27; + private long honorLevel_ = 0L; + /** + * int64 honorLevel = 27; + * @return The honorLevel. + */ + @java.lang.Override + public long getHonorLevel() { + return honorLevel_; + } + + public static final int ITEMTYPE_FIELD_NUMBER = 28; + private int itemType_ = 0; + /** + * int32 itemType = 28; + * @return The itemType. + */ + @java.lang.Override + public int getItemType() { + return itemType_; + } + + public static final int SCHEMEURL_FIELD_NUMBER = 29; + @SuppressWarnings("serial") + private volatile java.lang.Object schemeUrl_ = ""; + /** + * string schemeUrl = 29; + * @return The schemeUrl. + */ + @java.lang.Override + public java.lang.String getSchemeUrl() { + java.lang.Object ref = schemeUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + schemeUrl_ = s; + return s; + } + } + /** + * string schemeUrl = 29; + * @return The bytes for schemeUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSchemeUrlBytes() { + java.lang.Object ref = schemeUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + schemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EVENTNAME_FIELD_NUMBER = 31; + @SuppressWarnings("serial") + private volatile java.lang.Object eventName_ = ""; + /** + *
+     * GiftPanelOperation giftOperation = 30;
+     * 
+ * + * string eventName = 31; + * @return The eventName. + */ + @java.lang.Override + public java.lang.String getEventName() { + java.lang.Object ref = eventName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventName_ = s; + return s; + } + } + /** + *
+     * GiftPanelOperation giftOperation = 30;
+     * 
+ * + * string eventName = 31; + * @return The bytes for eventName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEventNameBytes() { + java.lang.Object ref = eventName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + eventName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NOBLELEVEL_FIELD_NUMBER = 32; + private long nobleLevel_ = 0L; + /** + * int64 nobleLevel = 32; + * @return The nobleLevel. + */ + @java.lang.Override + public long getNobleLevel() { + return nobleLevel_; + } + + public static final int GUIDEURL_FIELD_NUMBER = 33; + @SuppressWarnings("serial") + private volatile java.lang.Object guideUrl_ = ""; + /** + * string guideUrl = 33; + * @return The guideUrl. + */ + @java.lang.Override + public java.lang.String getGuideUrl() { + java.lang.Object ref = guideUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guideUrl_ = s; + return s; + } + } + /** + * string guideUrl = 33; + * @return The bytes for guideUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGuideUrlBytes() { + java.lang.Object ref = guideUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guideUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PUNISHMEDICINE_FIELD_NUMBER = 34; + private boolean punishMedicine_ = false; + /** + * bool punishMedicine = 34; + * @return The punishMedicine. + */ + @java.lang.Override + public boolean getPunishMedicine() { + return punishMedicine_; + } + + public static final int FORPORTAL_FIELD_NUMBER = 35; + private boolean forPortal_ = false; + /** + * bool forPortal = 35; + * @return The forPortal. + */ + @java.lang.Override + public boolean getForPortal() { + return forPortal_; + } + + public static final int BUSINESSTEXT_FIELD_NUMBER = 36; + @SuppressWarnings("serial") + private volatile java.lang.Object businessText_ = ""; + /** + * string businessText = 36; + * @return The businessText. + */ + @java.lang.Override + public java.lang.String getBusinessText() { + java.lang.Object ref = businessText_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + businessText_ = s; + return s; + } + } + /** + * string businessText = 36; + * @return The bytes for businessText. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBusinessTextBytes() { + java.lang.Object ref = businessText_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + businessText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CNYGIFT_FIELD_NUMBER = 37; + private boolean cnyGift_ = false; + /** + * bool cnyGift = 37; + * @return The cnyGift. + */ + @java.lang.Override + public boolean getCnyGift() { + return cnyGift_; + } + + public static final int APPID_FIELD_NUMBER = 38; + private long appId_ = 0L; + /** + * int64 appId = 38; + * @return The appId. + */ + @java.lang.Override + public long getAppId() { + return appId_; + } + + public static final int VIPLEVEL_FIELD_NUMBER = 39; + private long vipLevel_ = 0L; + /** + * int64 vipLevel = 39; + * @return The vipLevel. + */ + @java.lang.Override + public long getVipLevel() { + return vipLevel_; + } + + public static final int ISGRAY_FIELD_NUMBER = 40; + private boolean isGray_ = false; + /** + * bool isGray = 40; + * @return The isGray. + */ + @java.lang.Override + public boolean getIsGray() { + return isGray_; + } + + public static final int GRAYSCHEMEURL_FIELD_NUMBER = 41; + @SuppressWarnings("serial") + private volatile java.lang.Object graySchemeUrl_ = ""; + /** + * string graySchemeUrl = 41; + * @return The graySchemeUrl. + */ + @java.lang.Override + public java.lang.String getGraySchemeUrl() { + java.lang.Object ref = graySchemeUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + graySchemeUrl_ = s; + return s; + } + } + /** + * string graySchemeUrl = 41; + * @return The bytes for graySchemeUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGraySchemeUrlBytes() { + java.lang.Object ref = graySchemeUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + graySchemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GIFTSCENE_FIELD_NUMBER = 42; + private long giftScene_ = 0L; + /** + * int64 giftScene = 42; + * @return The giftScene. + */ + @java.lang.Override + public long getGiftScene() { + return giftScene_; + } + + public static final int TRIGGERWORDS_FIELD_NUMBER = 44; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList triggerWords_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @return A list containing the triggerWords. + */ + public com.google.protobuf.ProtocolStringList + getTriggerWordsList() { + return triggerWords_; + } + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @return The count of triggerWords. + */ + public int getTriggerWordsCount() { + return triggerWords_.size(); + } + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the element to return. + * @return The triggerWords at the given index. + */ + public java.lang.String getTriggerWords(int index) { + return triggerWords_.get(index); + } + /** + *
+     * GiftBanner giftBanner = 43;
+     * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the value to return. + * @return The bytes of the triggerWords at the given index. + */ + public com.google.protobuf.ByteString + getTriggerWordsBytes(int index) { + return triggerWords_.getByteString(index); + } + + public static final int FORFIRSTRECHARGE_FIELD_NUMBER = 46; + private boolean forFirstRecharge_ = false; + /** + *
+     * repeated GiftBuffInfo giftBuffInfos = 45;
+     * 
+ * + * bool forFirstRecharge = 46; + * @return The forFirstRecharge. + */ + @java.lang.Override + public boolean getForFirstRecharge() { + return forFirstRecharge_; + } + + public static final int DYNAMICIMGFORSELECTED_FIELD_NUMBER = 47; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_; + /** + * .Image dynamicImgForSelected = 47; + * @return Whether the dynamicImgForSelected field is set. + */ + @java.lang.Override + public boolean hasDynamicImgForSelected() { + return dynamicImgForSelected_ != null; + } + /** + * .Image dynamicImgForSelected = 47; + * @return The dynamicImgForSelected. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() { + return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; + } + /** + * .Image dynamicImgForSelected = 47; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() { + return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; + } + + public static final int AFTERSENDACTION_FIELD_NUMBER = 48; + private int afterSendAction_ = 0; + /** + * int32 afterSendAction = 48; + * @return The afterSendAction. + */ + @java.lang.Override + public int getAfterSendAction() { + return afterSendAction_; + } + + public static final int GIFTOFFLINETIME_FIELD_NUMBER = 49; + private long giftOfflineTime_ = 0L; + /** + * int64 giftOfflineTime = 49; + * @return The giftOfflineTime. + */ + @java.lang.Override + public long getGiftOfflineTime() { + return giftOfflineTime_; + } + + public static final int TOPBARTEXT_FIELD_NUMBER = 50; + @SuppressWarnings("serial") + private volatile java.lang.Object topBarText_ = ""; + /** + * string topBarText = 50; + * @return The topBarText. + */ + @java.lang.Override + public java.lang.String getTopBarText() { + java.lang.Object ref = topBarText_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topBarText_ = s; + return s; + } + } + /** + * string topBarText = 50; + * @return The bytes for topBarText. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTopBarTextBytes() { + java.lang.Object ref = topBarText_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + topBarText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TOPRIGHTAVATAR_FIELD_NUMBER = 51; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_; + /** + * .Image topRightAvatar = 51; + * @return Whether the topRightAvatar field is set. + */ + @java.lang.Override + public boolean hasTopRightAvatar() { + return topRightAvatar_ != null; + } + /** + * .Image topRightAvatar = 51; + * @return The topRightAvatar. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() { + return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; + } + /** + * .Image topRightAvatar = 51; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() { + return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; + } + + public static final int BANNERSCHEMEURL_FIELD_NUMBER = 52; + @SuppressWarnings("serial") + private volatile java.lang.Object bannerSchemeUrl_ = ""; + /** + * string bannerSchemeUrl = 52; + * @return The bannerSchemeUrl. + */ + @java.lang.Override + public java.lang.String getBannerSchemeUrl() { + java.lang.Object ref = bannerSchemeUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bannerSchemeUrl_ = s; + return s; + } + } + /** + * string bannerSchemeUrl = 52; + * @return The bytes for bannerSchemeUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBannerSchemeUrlBytes() { + java.lang.Object ref = bannerSchemeUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bannerSchemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ISLOCKED_FIELD_NUMBER = 53; + private boolean isLocked_ = false; + /** + * bool isLocked = 53; + * @return The isLocked. + */ + @java.lang.Override + public boolean getIsLocked() { + return isLocked_; + } + + public static final int REQEXTRATYPE_FIELD_NUMBER = 54; + private long reqExtraType_ = 0L; + /** + * int64 reqExtraType = 54; + * @return The reqExtraType. + */ + @java.lang.Override + public long getReqExtraType() { + return reqExtraType_; + } + + public static final int ASSETIDS_FIELD_NUMBER = 55; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList assetIds_; + /** + * repeated int64 assetIds = 55; + * @return A list containing the assetIds. + */ + @java.lang.Override + public java.util.List + getAssetIdsList() { + return assetIds_; + } + /** + * repeated int64 assetIds = 55; + * @return The count of assetIds. + */ + public int getAssetIdsCount() { + return assetIds_.size(); + } + /** + * repeated int64 assetIds = 55; + * @param index The index of the element to return. + * @return The assetIds at the given index. + */ + public long getAssetIds(int index) { + return assetIds_.getLong(index); + } + private int assetIdsMemoizedSerializedSize = -1; + + public static final int NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER = 58; + private int needSweepLightCount_ = 0; + /** + *
+     * GiftPreviewInfo giftPreviewInfo = 56;
+     * GiftTip giftTip = 57;
+     * 
+ * + * int32 needSweepLightCount = 58; + * @return The needSweepLightCount. + */ + @java.lang.Override + public int getNeedSweepLightCount() { + return needSweepLightCount_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (image_ != null) { + output.writeMessage(1, getImage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, describe_); + } + if (notify_ != false) { + output.writeBool(3, notify_); + } + if (duration_ != 0L) { + output.writeUInt64(4, duration_); + } + if (id_ != 0L) { + output.writeUInt64(5, id_); + } + if (forLinkmic_ != false) { + output.writeBool(7, forLinkmic_); + } + if (doodle_ != false) { + output.writeBool(8, doodle_); + } + if (forFansclub_ != false) { + output.writeBool(9, forFansclub_); + } + if (combo_ != false) { + output.writeBool(10, combo_); + } + if (type_ != 0) { + output.writeUInt32(11, type_); + } + if (diamondCount_ != 0) { + output.writeUInt32(12, diamondCount_); + } + if (isDisplayedOnPanel_ != false) { + output.writeBool(13, isDisplayedOnPanel_); + } + if (primaryEffectId_ != 0L) { + output.writeUInt64(14, primaryEffectId_); + } + if (giftLabelIcon_ != null) { + output.writeMessage(15, getGiftLabelIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 17, region_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 18, manual_); + } + if (forCustom_ != false) { + output.writeBool(19, forCustom_); + } + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetSpecialEffectsMap(), + SpecialEffectsMapDefaultEntryHolder.defaultEntry, + 20); + if (icon_ != null) { + output.writeMessage(21, getIcon()); + } + if (actionType_ != 0) { + output.writeUInt32(22, actionType_); + } + if (watermelonSeeds_ != 0) { + output.writeInt32(23, watermelonSeeds_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 24, goldEffect_); + } + if (goldenBeans_ != 0L) { + output.writeInt64(26, goldenBeans_); + } + if (honorLevel_ != 0L) { + output.writeInt64(27, honorLevel_); + } + if (itemType_ != 0) { + output.writeInt32(28, itemType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 29, schemeUrl_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 31, eventName_); + } + if (nobleLevel_ != 0L) { + output.writeInt64(32, nobleLevel_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 33, guideUrl_); + } + if (punishMedicine_ != false) { + output.writeBool(34, punishMedicine_); + } + if (forPortal_ != false) { + output.writeBool(35, forPortal_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 36, businessText_); + } + if (cnyGift_ != false) { + output.writeBool(37, cnyGift_); + } + if (appId_ != 0L) { + output.writeInt64(38, appId_); + } + if (vipLevel_ != 0L) { + output.writeInt64(39, vipLevel_); + } + if (isGray_ != false) { + output.writeBool(40, isGray_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 41, graySchemeUrl_); + } + if (giftScene_ != 0L) { + output.writeInt64(42, giftScene_); + } + for (int i = 0; i < triggerWords_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 44, triggerWords_.getRaw(i)); + } + if (forFirstRecharge_ != false) { + output.writeBool(46, forFirstRecharge_); + } + if (dynamicImgForSelected_ != null) { + output.writeMessage(47, getDynamicImgForSelected()); + } + if (afterSendAction_ != 0) { + output.writeInt32(48, afterSendAction_); + } + if (giftOfflineTime_ != 0L) { + output.writeInt64(49, giftOfflineTime_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 50, topBarText_); + } + if (topRightAvatar_ != null) { + output.writeMessage(51, getTopRightAvatar()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 52, bannerSchemeUrl_); + } + if (isLocked_ != false) { + output.writeBool(53, isLocked_); + } + if (reqExtraType_ != 0L) { + output.writeInt64(54, reqExtraType_); + } + if (getAssetIdsList().size() > 0) { + output.writeUInt32NoTag(442); + output.writeUInt32NoTag(assetIdsMemoizedSerializedSize); + } + for (int i = 0; i < assetIds_.size(); i++) { + output.writeInt64NoTag(assetIds_.getLong(i)); + } + if (needSweepLightCount_ != 0) { + output.writeInt32(58, needSweepLightCount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (image_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getImage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, describe_); + } + if (notify_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, notify_); + } + if (duration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, duration_); + } + if (id_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, id_); + } + if (forLinkmic_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(7, forLinkmic_); + } + if (doodle_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(8, doodle_); + } + if (forFansclub_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(9, forFansclub_); + } + if (combo_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(10, combo_); + } + if (type_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(11, type_); + } + if (diamondCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(12, diamondCount_); + } + if (isDisplayedOnPanel_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(13, isDisplayedOnPanel_); + } + if (primaryEffectId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(14, primaryEffectId_); + } + if (giftLabelIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, getGiftLabelIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, region_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, manual_); + } + if (forCustom_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(19, forCustom_); + } + for (java.util.Map.Entry entry + : internalGetSpecialEffectsMap().getMap().entrySet()) { + com.google.protobuf.MapEntry + specialEffectsMap__ = SpecialEffectsMapDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, specialEffectsMap__); + } + if (icon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, getIcon()); + } + if (actionType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(22, actionType_); + } + if (watermelonSeeds_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(23, watermelonSeeds_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, goldEffect_); + } + if (goldenBeans_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(26, goldenBeans_); + } + if (honorLevel_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(27, honorLevel_); + } + if (itemType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(28, itemType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, schemeUrl_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, eventName_); + } + if (nobleLevel_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(32, nobleLevel_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, guideUrl_); + } + if (punishMedicine_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(34, punishMedicine_); + } + if (forPortal_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(35, forPortal_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, businessText_); + } + if (cnyGift_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(37, cnyGift_); + } + if (appId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(38, appId_); + } + if (vipLevel_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(39, vipLevel_); + } + if (isGray_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(40, isGray_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(41, graySchemeUrl_); + } + if (giftScene_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(42, giftScene_); + } + { + int dataSize = 0; + for (int i = 0; i < triggerWords_.size(); i++) { + dataSize += computeStringSizeNoTag(triggerWords_.getRaw(i)); + } + size += dataSize; + size += 2 * getTriggerWordsList().size(); + } + if (forFirstRecharge_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(46, forFirstRecharge_); + } + if (dynamicImgForSelected_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(47, getDynamicImgForSelected()); + } + if (afterSendAction_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(48, afterSendAction_); + } + if (giftOfflineTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(49, giftOfflineTime_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(50, topBarText_); + } + if (topRightAvatar_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(51, getTopRightAvatar()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(52, bannerSchemeUrl_); + } + if (isLocked_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(53, isLocked_); + } + if (reqExtraType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(54, reqExtraType_); + } + { + int dataSize = 0; + for (int i = 0; i < assetIds_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeInt64SizeNoTag(assetIds_.getLong(i)); + } + size += dataSize; + if (!getAssetIdsList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + assetIdsMemoizedSerializedSize = dataSize; + } + if (needSweepLightCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(58, needSweepLightCount_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) obj; + + if (hasImage() != other.hasImage()) return false; + if (hasImage()) { + if (!getImage() + .equals(other.getImage())) return false; + } + if (!getDescribe() + .equals(other.getDescribe())) return false; + if (getNotify() + != other.getNotify()) return false; + if (getDuration() + != other.getDuration()) return false; + if (getId() + != other.getId()) return false; + if (getForLinkmic() + != other.getForLinkmic()) return false; + if (getDoodle() + != other.getDoodle()) return false; + if (getForFansclub() + != other.getForFansclub()) return false; + if (getCombo() + != other.getCombo()) return false; + if (getType() + != other.getType()) return false; + if (getDiamondCount() + != other.getDiamondCount()) return false; + if (getIsDisplayedOnPanel() + != other.getIsDisplayedOnPanel()) return false; + if (getPrimaryEffectId() + != other.getPrimaryEffectId()) return false; + if (hasGiftLabelIcon() != other.hasGiftLabelIcon()) return false; + if (hasGiftLabelIcon()) { + if (!getGiftLabelIcon() + .equals(other.getGiftLabelIcon())) return false; + } + if (!getName() + .equals(other.getName())) return false; + if (!getRegion() + .equals(other.getRegion())) return false; + if (!getManual() + .equals(other.getManual())) return false; + if (getForCustom() + != other.getForCustom()) return false; + if (!internalGetSpecialEffectsMap().equals( + other.internalGetSpecialEffectsMap())) return false; + if (hasIcon() != other.hasIcon()) return false; + if (hasIcon()) { + if (!getIcon() + .equals(other.getIcon())) return false; + } + if (getActionType() + != other.getActionType()) return false; + if (getWatermelonSeeds() + != other.getWatermelonSeeds()) return false; + if (!getGoldEffect() + .equals(other.getGoldEffect())) return false; + if (getGoldenBeans() + != other.getGoldenBeans()) return false; + if (getHonorLevel() + != other.getHonorLevel()) return false; + if (getItemType() + != other.getItemType()) return false; + if (!getSchemeUrl() + .equals(other.getSchemeUrl())) return false; + if (!getEventName() + .equals(other.getEventName())) return false; + if (getNobleLevel() + != other.getNobleLevel()) return false; + if (!getGuideUrl() + .equals(other.getGuideUrl())) return false; + if (getPunishMedicine() + != other.getPunishMedicine()) return false; + if (getForPortal() + != other.getForPortal()) return false; + if (!getBusinessText() + .equals(other.getBusinessText())) return false; + if (getCnyGift() + != other.getCnyGift()) return false; + if (getAppId() + != other.getAppId()) return false; + if (getVipLevel() + != other.getVipLevel()) return false; + if (getIsGray() + != other.getIsGray()) return false; + if (!getGraySchemeUrl() + .equals(other.getGraySchemeUrl())) return false; + if (getGiftScene() + != other.getGiftScene()) return false; + if (!getTriggerWordsList() + .equals(other.getTriggerWordsList())) return false; + if (getForFirstRecharge() + != other.getForFirstRecharge()) return false; + if (hasDynamicImgForSelected() != other.hasDynamicImgForSelected()) return false; + if (hasDynamicImgForSelected()) { + if (!getDynamicImgForSelected() + .equals(other.getDynamicImgForSelected())) return false; + } + if (getAfterSendAction() + != other.getAfterSendAction()) return false; + if (getGiftOfflineTime() + != other.getGiftOfflineTime()) return false; + if (!getTopBarText() + .equals(other.getTopBarText())) return false; + if (hasTopRightAvatar() != other.hasTopRightAvatar()) return false; + if (hasTopRightAvatar()) { + if (!getTopRightAvatar() + .equals(other.getTopRightAvatar())) return false; + } + if (!getBannerSchemeUrl() + .equals(other.getBannerSchemeUrl())) return false; + if (getIsLocked() + != other.getIsLocked()) return false; + if (getReqExtraType() + != other.getReqExtraType()) return false; + if (!getAssetIdsList() + .equals(other.getAssetIdsList())) return false; + if (getNeedSweepLightCount() + != other.getNeedSweepLightCount()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasImage()) { + hash = (37 * hash) + IMAGE_FIELD_NUMBER; + hash = (53 * hash) + getImage().hashCode(); + } + hash = (37 * hash) + DESCRIBE_FIELD_NUMBER; + hash = (53 * hash) + getDescribe().hashCode(); + hash = (37 * hash) + NOTIFY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNotify()); + hash = (37 * hash) + DURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getDuration()); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getId()); + hash = (37 * hash) + FOR_LINKMIC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getForLinkmic()); + hash = (37 * hash) + DOODLE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDoodle()); + hash = (37 * hash) + FOR_FANSCLUB_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getForFansclub()); + hash = (37 * hash) + COMBO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getCombo()); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + getType(); + hash = (37 * hash) + DIAMOND_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getDiamondCount(); + hash = (37 * hash) + IS_DISPLAYED_ON_PANEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsDisplayedOnPanel()); + hash = (37 * hash) + PRIMARY_EFFECT_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPrimaryEffectId()); + if (hasGiftLabelIcon()) { + hash = (37 * hash) + GIFT_LABEL_ICON_FIELD_NUMBER; + hash = (53 * hash) + getGiftLabelIcon().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + REGION_FIELD_NUMBER; + hash = (53 * hash) + getRegion().hashCode(); + hash = (37 * hash) + MANUAL_FIELD_NUMBER; + hash = (53 * hash) + getManual().hashCode(); + hash = (37 * hash) + FOR_CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getForCustom()); + if (!internalGetSpecialEffectsMap().getMap().isEmpty()) { + hash = (37 * hash) + SPECIALEFFECTSMAP_FIELD_NUMBER; + hash = (53 * hash) + internalGetSpecialEffectsMap().hashCode(); + } + if (hasIcon()) { + hash = (37 * hash) + ICON_FIELD_NUMBER; + hash = (53 * hash) + getIcon().hashCode(); + } + hash = (37 * hash) + ACTION_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getActionType(); + hash = (37 * hash) + WATERMELONSEEDS_FIELD_NUMBER; + hash = (53 * hash) + getWatermelonSeeds(); + hash = (37 * hash) + GOLDEFFECT_FIELD_NUMBER; + hash = (53 * hash) + getGoldEffect().hashCode(); + hash = (37 * hash) + GOLDENBEANS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGoldenBeans()); + hash = (37 * hash) + HONORLEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getHonorLevel()); + hash = (37 * hash) + ITEMTYPE_FIELD_NUMBER; + hash = (53 * hash) + getItemType(); + hash = (37 * hash) + SCHEMEURL_FIELD_NUMBER; + hash = (53 * hash) + getSchemeUrl().hashCode(); + hash = (37 * hash) + EVENTNAME_FIELD_NUMBER; + hash = (53 * hash) + getEventName().hashCode(); + hash = (37 * hash) + NOBLELEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getNobleLevel()); + hash = (37 * hash) + GUIDEURL_FIELD_NUMBER; + hash = (53 * hash) + getGuideUrl().hashCode(); + hash = (37 * hash) + PUNISHMEDICINE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPunishMedicine()); + hash = (37 * hash) + FORPORTAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getForPortal()); + hash = (37 * hash) + BUSINESSTEXT_FIELD_NUMBER; + hash = (53 * hash) + getBusinessText().hashCode(); + hash = (37 * hash) + CNYGIFT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getCnyGift()); + hash = (37 * hash) + APPID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAppId()); + hash = (37 * hash) + VIPLEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getVipLevel()); + hash = (37 * hash) + ISGRAY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsGray()); + hash = (37 * hash) + GRAYSCHEMEURL_FIELD_NUMBER; + hash = (53 * hash) + getGraySchemeUrl().hashCode(); + hash = (37 * hash) + GIFTSCENE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGiftScene()); + if (getTriggerWordsCount() > 0) { + hash = (37 * hash) + TRIGGERWORDS_FIELD_NUMBER; + hash = (53 * hash) + getTriggerWordsList().hashCode(); + } + hash = (37 * hash) + FORFIRSTRECHARGE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getForFirstRecharge()); + if (hasDynamicImgForSelected()) { + hash = (37 * hash) + DYNAMICIMGFORSELECTED_FIELD_NUMBER; + hash = (53 * hash) + getDynamicImgForSelected().hashCode(); + } + hash = (37 * hash) + AFTERSENDACTION_FIELD_NUMBER; + hash = (53 * hash) + getAfterSendAction(); + hash = (37 * hash) + GIFTOFFLINETIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGiftOfflineTime()); + hash = (37 * hash) + TOPBARTEXT_FIELD_NUMBER; + hash = (53 * hash) + getTopBarText().hashCode(); + if (hasTopRightAvatar()) { + hash = (37 * hash) + TOPRIGHTAVATAR_FIELD_NUMBER; + hash = (53 * hash) + getTopRightAvatar().hashCode(); + } + hash = (37 * hash) + BANNERSCHEMEURL_FIELD_NUMBER; + hash = (53 * hash) + getBannerSchemeUrl().hashCode(); + hash = (37 * hash) + ISLOCKED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsLocked()); + hash = (37 * hash) + REQEXTRATYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getReqExtraType()); + if (getAssetIdsCount() > 0) { + hash = (37 * hash) + ASSETIDS_FIELD_NUMBER; + hash = (53 * hash) + getAssetIdsList().hashCode(); + } + hash = (37 * hash) + NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getNeedSweepLightCount(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GiftStruct} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GiftStruct) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 20: + return internalGetSpecialEffectsMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 20: + return internalGetMutableSpecialEffectsMap(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bitField1_ = 0; + image_ = null; + if (imageBuilder_ != null) { + imageBuilder_.dispose(); + imageBuilder_ = null; + } + describe_ = ""; + notify_ = false; + duration_ = 0L; + id_ = 0L; + forLinkmic_ = false; + doodle_ = false; + forFansclub_ = false; + combo_ = false; + type_ = 0; + diamondCount_ = 0; + isDisplayedOnPanel_ = false; + primaryEffectId_ = 0L; + giftLabelIcon_ = null; + if (giftLabelIconBuilder_ != null) { + giftLabelIconBuilder_.dispose(); + giftLabelIconBuilder_ = null; + } + name_ = ""; + region_ = ""; + manual_ = ""; + forCustom_ = false; + internalGetMutableSpecialEffectsMap().clear(); + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + actionType_ = 0; + watermelonSeeds_ = 0; + goldEffect_ = ""; + goldenBeans_ = 0L; + honorLevel_ = 0L; + itemType_ = 0; + schemeUrl_ = ""; + eventName_ = ""; + nobleLevel_ = 0L; + guideUrl_ = ""; + punishMedicine_ = false; + forPortal_ = false; + businessText_ = ""; + cnyGift_ = false; + appId_ = 0L; + vipLevel_ = 0L; + isGray_ = false; + graySchemeUrl_ = ""; + giftScene_ = 0L; + triggerWords_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + forFirstRecharge_ = false; + dynamicImgForSelected_ = null; + if (dynamicImgForSelectedBuilder_ != null) { + dynamicImgForSelectedBuilder_.dispose(); + dynamicImgForSelectedBuilder_ = null; + } + afterSendAction_ = 0; + giftOfflineTime_ = 0L; + topBarText_ = ""; + topRightAvatar_ = null; + if (topRightAvatarBuilder_ != null) { + topRightAvatarBuilder_.dispose(); + topRightAvatarBuilder_ = null; + } + bannerSchemeUrl_ = ""; + isLocked_ = false; + reqExtraType_ = 0L; + assetIds_ = emptyLongList(); + needSweepLightCount_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + if (bitField1_ != 0) { buildPartial1(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { + if (((bitField1_ & 0x00020000) != 0)) { + assetIds_.makeImmutable(); + bitField1_ = (bitField1_ & ~0x00020000); + } + result.assetIds_ = assetIds_; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.image_ = imageBuilder_ == null + ? image_ + : imageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.describe_ = describe_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.notify_ = notify_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.duration_ = duration_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.forLinkmic_ = forLinkmic_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.doodle_ = doodle_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.forFansclub_ = forFansclub_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.combo_ = combo_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.diamondCount_ = diamondCount_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.isDisplayedOnPanel_ = isDisplayedOnPanel_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.primaryEffectId_ = primaryEffectId_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.giftLabelIcon_ = giftLabelIconBuilder_ == null + ? giftLabelIcon_ + : giftLabelIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.region_ = region_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.manual_ = manual_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.forCustom_ = forCustom_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.specialEffectsMap_ = internalGetSpecialEffectsMap(); + result.specialEffectsMap_.makeImmutable(); + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.icon_ = iconBuilder_ == null + ? icon_ + : iconBuilder_.build(); + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.actionType_ = actionType_; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.watermelonSeeds_ = watermelonSeeds_; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.goldEffect_ = goldEffect_; + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.goldenBeans_ = goldenBeans_; + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.honorLevel_ = honorLevel_; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.itemType_ = itemType_; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.schemeUrl_ = schemeUrl_; + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.eventName_ = eventName_; + } + if (((from_bitField0_ & 0x10000000) != 0)) { + result.nobleLevel_ = nobleLevel_; + } + if (((from_bitField0_ & 0x20000000) != 0)) { + result.guideUrl_ = guideUrl_; + } + if (((from_bitField0_ & 0x40000000) != 0)) { + result.punishMedicine_ = punishMedicine_; + } + if (((from_bitField0_ & 0x80000000) != 0)) { + result.forPortal_ = forPortal_; + } + } + + private void buildPartial1(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) { + int from_bitField1_ = bitField1_; + if (((from_bitField1_ & 0x00000001) != 0)) { + result.businessText_ = businessText_; + } + if (((from_bitField1_ & 0x00000002) != 0)) { + result.cnyGift_ = cnyGift_; + } + if (((from_bitField1_ & 0x00000004) != 0)) { + result.appId_ = appId_; + } + if (((from_bitField1_ & 0x00000008) != 0)) { + result.vipLevel_ = vipLevel_; + } + if (((from_bitField1_ & 0x00000010) != 0)) { + result.isGray_ = isGray_; + } + if (((from_bitField1_ & 0x00000020) != 0)) { + result.graySchemeUrl_ = graySchemeUrl_; + } + if (((from_bitField1_ & 0x00000040) != 0)) { + result.giftScene_ = giftScene_; + } + if (((from_bitField1_ & 0x00000080) != 0)) { + triggerWords_.makeImmutable(); + result.triggerWords_ = triggerWords_; + } + if (((from_bitField1_ & 0x00000100) != 0)) { + result.forFirstRecharge_ = forFirstRecharge_; + } + if (((from_bitField1_ & 0x00000200) != 0)) { + result.dynamicImgForSelected_ = dynamicImgForSelectedBuilder_ == null + ? dynamicImgForSelected_ + : dynamicImgForSelectedBuilder_.build(); + } + if (((from_bitField1_ & 0x00000400) != 0)) { + result.afterSendAction_ = afterSendAction_; + } + if (((from_bitField1_ & 0x00000800) != 0)) { + result.giftOfflineTime_ = giftOfflineTime_; + } + if (((from_bitField1_ & 0x00001000) != 0)) { + result.topBarText_ = topBarText_; + } + if (((from_bitField1_ & 0x00002000) != 0)) { + result.topRightAvatar_ = topRightAvatarBuilder_ == null + ? topRightAvatar_ + : topRightAvatarBuilder_.build(); + } + if (((from_bitField1_ & 0x00004000) != 0)) { + result.bannerSchemeUrl_ = bannerSchemeUrl_; + } + if (((from_bitField1_ & 0x00008000) != 0)) { + result.isLocked_ = isLocked_; + } + if (((from_bitField1_ & 0x00010000) != 0)) { + result.reqExtraType_ = reqExtraType_; + } + if (((from_bitField1_ & 0x00040000) != 0)) { + result.needSweepLightCount_ = needSweepLightCount_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance()) return this; + if (other.hasImage()) { + mergeImage(other.getImage()); + } + if (!other.getDescribe().isEmpty()) { + describe_ = other.describe_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getNotify() != false) { + setNotify(other.getNotify()); + } + if (other.getDuration() != 0L) { + setDuration(other.getDuration()); + } + if (other.getId() != 0L) { + setId(other.getId()); + } + if (other.getForLinkmic() != false) { + setForLinkmic(other.getForLinkmic()); + } + if (other.getDoodle() != false) { + setDoodle(other.getDoodle()); + } + if (other.getForFansclub() != false) { + setForFansclub(other.getForFansclub()); + } + if (other.getCombo() != false) { + setCombo(other.getCombo()); + } + if (other.getType() != 0) { + setType(other.getType()); + } + if (other.getDiamondCount() != 0) { + setDiamondCount(other.getDiamondCount()); + } + if (other.getIsDisplayedOnPanel() != false) { + setIsDisplayedOnPanel(other.getIsDisplayedOnPanel()); + } + if (other.getPrimaryEffectId() != 0L) { + setPrimaryEffectId(other.getPrimaryEffectId()); + } + if (other.hasGiftLabelIcon()) { + mergeGiftLabelIcon(other.getGiftLabelIcon()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (!other.getRegion().isEmpty()) { + region_ = other.region_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (!other.getManual().isEmpty()) { + manual_ = other.manual_; + bitField0_ |= 0x00010000; + onChanged(); + } + if (other.getForCustom() != false) { + setForCustom(other.getForCustom()); + } + internalGetMutableSpecialEffectsMap().mergeFrom( + other.internalGetSpecialEffectsMap()); + bitField0_ |= 0x00040000; + if (other.hasIcon()) { + mergeIcon(other.getIcon()); + } + if (other.getActionType() != 0) { + setActionType(other.getActionType()); + } + if (other.getWatermelonSeeds() != 0) { + setWatermelonSeeds(other.getWatermelonSeeds()); + } + if (!other.getGoldEffect().isEmpty()) { + goldEffect_ = other.goldEffect_; + bitField0_ |= 0x00400000; + onChanged(); + } + if (other.getGoldenBeans() != 0L) { + setGoldenBeans(other.getGoldenBeans()); + } + if (other.getHonorLevel() != 0L) { + setHonorLevel(other.getHonorLevel()); + } + if (other.getItemType() != 0) { + setItemType(other.getItemType()); + } + if (!other.getSchemeUrl().isEmpty()) { + schemeUrl_ = other.schemeUrl_; + bitField0_ |= 0x04000000; + onChanged(); + } + if (!other.getEventName().isEmpty()) { + eventName_ = other.eventName_; + bitField0_ |= 0x08000000; + onChanged(); + } + if (other.getNobleLevel() != 0L) { + setNobleLevel(other.getNobleLevel()); + } + if (!other.getGuideUrl().isEmpty()) { + guideUrl_ = other.guideUrl_; + bitField0_ |= 0x20000000; + onChanged(); + } + if (other.getPunishMedicine() != false) { + setPunishMedicine(other.getPunishMedicine()); + } + if (other.getForPortal() != false) { + setForPortal(other.getForPortal()); + } + if (!other.getBusinessText().isEmpty()) { + businessText_ = other.businessText_; + bitField1_ |= 0x00000001; + onChanged(); + } + if (other.getCnyGift() != false) { + setCnyGift(other.getCnyGift()); + } + if (other.getAppId() != 0L) { + setAppId(other.getAppId()); + } + if (other.getVipLevel() != 0L) { + setVipLevel(other.getVipLevel()); + } + if (other.getIsGray() != false) { + setIsGray(other.getIsGray()); + } + if (!other.getGraySchemeUrl().isEmpty()) { + graySchemeUrl_ = other.graySchemeUrl_; + bitField1_ |= 0x00000020; + onChanged(); + } + if (other.getGiftScene() != 0L) { + setGiftScene(other.getGiftScene()); + } + if (!other.triggerWords_.isEmpty()) { + if (triggerWords_.isEmpty()) { + triggerWords_ = other.triggerWords_; + bitField1_ |= 0x00000080; + } else { + ensureTriggerWordsIsMutable(); + triggerWords_.addAll(other.triggerWords_); + } + onChanged(); + } + if (other.getForFirstRecharge() != false) { + setForFirstRecharge(other.getForFirstRecharge()); + } + if (other.hasDynamicImgForSelected()) { + mergeDynamicImgForSelected(other.getDynamicImgForSelected()); + } + if (other.getAfterSendAction() != 0) { + setAfterSendAction(other.getAfterSendAction()); + } + if (other.getGiftOfflineTime() != 0L) { + setGiftOfflineTime(other.getGiftOfflineTime()); + } + if (!other.getTopBarText().isEmpty()) { + topBarText_ = other.topBarText_; + bitField1_ |= 0x00001000; + onChanged(); + } + if (other.hasTopRightAvatar()) { + mergeTopRightAvatar(other.getTopRightAvatar()); + } + if (!other.getBannerSchemeUrl().isEmpty()) { + bannerSchemeUrl_ = other.bannerSchemeUrl_; + bitField1_ |= 0x00004000; + onChanged(); + } + if (other.getIsLocked() != false) { + setIsLocked(other.getIsLocked()); + } + if (other.getReqExtraType() != 0L) { + setReqExtraType(other.getReqExtraType()); + } + if (!other.assetIds_.isEmpty()) { + if (assetIds_.isEmpty()) { + assetIds_ = other.assetIds_; + bitField1_ = (bitField1_ & ~0x00020000); + } else { + ensureAssetIdsIsMutable(); + assetIds_.addAll(other.assetIds_); + } + onChanged(); + } + if (other.getNeedSweepLightCount() != 0) { + setNeedSweepLightCount(other.getNeedSweepLightCount()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getImageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + describe_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + notify_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + duration_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + id_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 56: { + forLinkmic_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 56 + case 64: { + doodle_ = input.readBool(); + bitField0_ |= 0x00000040; + break; + } // case 64 + case 72: { + forFansclub_ = input.readBool(); + bitField0_ |= 0x00000080; + break; + } // case 72 + case 80: { + combo_ = input.readBool(); + bitField0_ |= 0x00000100; + break; + } // case 80 + case 88: { + type_ = input.readUInt32(); + bitField0_ |= 0x00000200; + break; + } // case 88 + case 96: { + diamondCount_ = input.readUInt32(); + bitField0_ |= 0x00000400; + break; + } // case 96 + case 104: { + isDisplayedOnPanel_ = input.readBool(); + bitField0_ |= 0x00000800; + break; + } // case 104 + case 112: { + primaryEffectId_ = input.readUInt64(); + bitField0_ |= 0x00001000; + break; + } // case 112 + case 122: { + input.readMessage( + getGiftLabelIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00002000; + break; + } // case 122 + case 130: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 130 + case 138: { + region_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 138 + case 146: { + manual_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00010000; + break; + } // case 146 + case 152: { + forCustom_ = input.readBool(); + bitField0_ |= 0x00020000; + break; + } // case 152 + case 162: { + com.google.protobuf.MapEntry + specialEffectsMap__ = input.readMessage( + SpecialEffectsMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableSpecialEffectsMap().getMutableMap().put( + specialEffectsMap__.getKey(), specialEffectsMap__.getValue()); + bitField0_ |= 0x00040000; + break; + } // case 162 + case 170: { + input.readMessage( + getIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00080000; + break; + } // case 170 + case 176: { + actionType_ = input.readUInt32(); + bitField0_ |= 0x00100000; + break; + } // case 176 + case 184: { + watermelonSeeds_ = input.readInt32(); + bitField0_ |= 0x00200000; + break; + } // case 184 + case 194: { + goldEffect_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00400000; + break; + } // case 194 + case 208: { + goldenBeans_ = input.readInt64(); + bitField0_ |= 0x00800000; + break; + } // case 208 + case 216: { + honorLevel_ = input.readInt64(); + bitField0_ |= 0x01000000; + break; + } // case 216 + case 224: { + itemType_ = input.readInt32(); + bitField0_ |= 0x02000000; + break; + } // case 224 + case 234: { + schemeUrl_ = input.readStringRequireUtf8(); + bitField0_ |= 0x04000000; + break; + } // case 234 + case 250: { + eventName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x08000000; + break; + } // case 250 + case 256: { + nobleLevel_ = input.readInt64(); + bitField0_ |= 0x10000000; + break; + } // case 256 + case 266: { + guideUrl_ = input.readStringRequireUtf8(); + bitField0_ |= 0x20000000; + break; + } // case 266 + case 272: { + punishMedicine_ = input.readBool(); + bitField0_ |= 0x40000000; + break; + } // case 272 + case 280: { + forPortal_ = input.readBool(); + bitField0_ |= 0x80000000; + break; + } // case 280 + case 290: { + businessText_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00000001; + break; + } // case 290 + case 296: { + cnyGift_ = input.readBool(); + bitField1_ |= 0x00000002; + break; + } // case 296 + case 304: { + appId_ = input.readInt64(); + bitField1_ |= 0x00000004; + break; + } // case 304 + case 312: { + vipLevel_ = input.readInt64(); + bitField1_ |= 0x00000008; + break; + } // case 312 + case 320: { + isGray_ = input.readBool(); + bitField1_ |= 0x00000010; + break; + } // case 320 + case 330: { + graySchemeUrl_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00000020; + break; + } // case 330 + case 336: { + giftScene_ = input.readInt64(); + bitField1_ |= 0x00000040; + break; + } // case 336 + case 354: { + java.lang.String s = input.readStringRequireUtf8(); + ensureTriggerWordsIsMutable(); + triggerWords_.add(s); + break; + } // case 354 + case 368: { + forFirstRecharge_ = input.readBool(); + bitField1_ |= 0x00000100; + break; + } // case 368 + case 378: { + input.readMessage( + getDynamicImgForSelectedFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000200; + break; + } // case 378 + case 384: { + afterSendAction_ = input.readInt32(); + bitField1_ |= 0x00000400; + break; + } // case 384 + case 392: { + giftOfflineTime_ = input.readInt64(); + bitField1_ |= 0x00000800; + break; + } // case 392 + case 402: { + topBarText_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00001000; + break; + } // case 402 + case 410: { + input.readMessage( + getTopRightAvatarFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00002000; + break; + } // case 410 + case 418: { + bannerSchemeUrl_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00004000; + break; + } // case 418 + case 424: { + isLocked_ = input.readBool(); + bitField1_ |= 0x00008000; + break; + } // case 424 + case 432: { + reqExtraType_ = input.readInt64(); + bitField1_ |= 0x00010000; + break; + } // case 432 + case 440: { + long v = input.readInt64(); + ensureAssetIdsIsMutable(); + assetIds_.addLong(v); + break; + } // case 440 + case 442: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureAssetIdsIsMutable(); + while (input.getBytesUntilLimit() > 0) { + assetIds_.addLong(input.readInt64()); + } + input.popLimit(limit); + break; + } // case 442 + case 464: { + needSweepLightCount_ = input.readInt32(); + bitField1_ |= 0x00040000; + break; + } // case 464 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + private int bitField1_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imageBuilder_; + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + public boolean hasImage() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Image image = 1; + * @return The image. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { + if (imageBuilder_ == null) { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } else { + return imageBuilder_.getMessage(); + } + } + /** + * .Image image = 1; + */ + public Builder setImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + image_ = value; + } else { + imageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder setImage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (imageBuilder_ == null) { + image_ = builderForValue.build(); + } else { + imageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder mergeImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imageBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + image_ != null && + image_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getImageBuilder().mergeFrom(value); + } else { + image_ = value; + } + } else { + imageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder clearImage() { + bitField0_ = (bitField0_ & ~0x00000001); + image_ = null; + if (imageBuilder_ != null) { + imageBuilder_.dispose(); + imageBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImageBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getImageFieldBuilder().getBuilder(); + } + /** + * .Image image = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { + if (imageBuilder_ != null) { + return imageBuilder_.getMessageOrBuilder(); + } else { + return image_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + } + /** + * .Image image = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getImageFieldBuilder() { + if (imageBuilder_ == null) { + imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getImage(), + getParentForChildren(), + isClean()); + image_ = null; + } + return imageBuilder_; + } + + private java.lang.Object describe_ = ""; + /** + * string describe = 2; + * @return The describe. + */ + public java.lang.String getDescribe() { + java.lang.Object ref = describe_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + describe_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string describe = 2; + * @return The bytes for describe. + */ + public com.google.protobuf.ByteString + getDescribeBytes() { + java.lang.Object ref = describe_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + describe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string describe = 2; + * @param value The describe to set. + * @return This builder for chaining. + */ + public Builder setDescribe( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + describe_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string describe = 2; + * @return This builder for chaining. + */ + public Builder clearDescribe() { + describe_ = getDefaultInstance().getDescribe(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string describe = 2; + * @param value The bytes for describe to set. + * @return This builder for chaining. + */ + public Builder setDescribeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + describe_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private boolean notify_ ; + /** + * bool notify = 3; + * @return The notify. + */ + @java.lang.Override + public boolean getNotify() { + return notify_; + } + /** + * bool notify = 3; + * @param value The notify to set. + * @return This builder for chaining. + */ + public Builder setNotify(boolean value) { + + notify_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool notify = 3; + * @return This builder for chaining. + */ + public Builder clearNotify() { + bitField0_ = (bitField0_ & ~0x00000004); + notify_ = false; + onChanged(); + return this; + } + + private long duration_ ; + /** + * uint64 duration = 4; + * @return The duration. + */ + @java.lang.Override + public long getDuration() { + return duration_; + } + /** + * uint64 duration = 4; + * @param value The duration to set. + * @return This builder for chaining. + */ + public Builder setDuration(long value) { + + duration_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 duration = 4; + * @return This builder for chaining. + */ + public Builder clearDuration() { + bitField0_ = (bitField0_ & ~0x00000008); + duration_ = 0L; + onChanged(); + return this; + } + + private long id_ ; + /** + * uint64 id = 5; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + /** + * uint64 id = 5; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(long value) { + + id_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 id = 5; + * @return This builder for chaining. + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000010); + id_ = 0L; + onChanged(); + return this; + } + + private boolean forLinkmic_ ; + /** + *
+       * GiftStructFansClubInfo fansclubInfo = 6;
+       * 
+ * + * bool for_linkmic = 7; + * @return The forLinkmic. + */ + @java.lang.Override + public boolean getForLinkmic() { + return forLinkmic_; + } + /** + *
+       * GiftStructFansClubInfo fansclubInfo = 6;
+       * 
+ * + * bool for_linkmic = 7; + * @param value The forLinkmic to set. + * @return This builder for chaining. + */ + public Builder setForLinkmic(boolean value) { + + forLinkmic_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * GiftStructFansClubInfo fansclubInfo = 6;
+       * 
+ * + * bool for_linkmic = 7; + * @return This builder for chaining. + */ + public Builder clearForLinkmic() { + bitField0_ = (bitField0_ & ~0x00000020); + forLinkmic_ = false; + onChanged(); + return this; + } + + private boolean doodle_ ; + /** + * bool doodle = 8; + * @return The doodle. + */ + @java.lang.Override + public boolean getDoodle() { + return doodle_; + } + /** + * bool doodle = 8; + * @param value The doodle to set. + * @return This builder for chaining. + */ + public Builder setDoodle(boolean value) { + + doodle_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * bool doodle = 8; + * @return This builder for chaining. + */ + public Builder clearDoodle() { + bitField0_ = (bitField0_ & ~0x00000040); + doodle_ = false; + onChanged(); + return this; + } + + private boolean forFansclub_ ; + /** + * bool for_fansclub = 9; + * @return The forFansclub. + */ + @java.lang.Override + public boolean getForFansclub() { + return forFansclub_; + } + /** + * bool for_fansclub = 9; + * @param value The forFansclub to set. + * @return This builder for chaining. + */ + public Builder setForFansclub(boolean value) { + + forFansclub_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bool for_fansclub = 9; + * @return This builder for chaining. + */ + public Builder clearForFansclub() { + bitField0_ = (bitField0_ & ~0x00000080); + forFansclub_ = false; + onChanged(); + return this; + } + + private boolean combo_ ; + /** + * bool combo = 10; + * @return The combo. + */ + @java.lang.Override + public boolean getCombo() { + return combo_; + } + /** + * bool combo = 10; + * @param value The combo to set. + * @return This builder for chaining. + */ + public Builder setCombo(boolean value) { + + combo_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * bool combo = 10; + * @return This builder for chaining. + */ + public Builder clearCombo() { + bitField0_ = (bitField0_ & ~0x00000100); + combo_ = false; + onChanged(); + return this; + } + + private int type_ ; + /** + * uint32 type = 11; + * @return The type. + */ + @java.lang.Override + public int getType() { + return type_; + } + /** + * uint32 type = 11; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(int value) { + + type_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * uint32 type = 11; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000200); + type_ = 0; + onChanged(); + return this; + } + + private int diamondCount_ ; + /** + * uint32 diamond_count = 12; + * @return The diamondCount. + */ + @java.lang.Override + public int getDiamondCount() { + return diamondCount_; + } + /** + * uint32 diamond_count = 12; + * @param value The diamondCount to set. + * @return This builder for chaining. + */ + public Builder setDiamondCount(int value) { + + diamondCount_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * uint32 diamond_count = 12; + * @return This builder for chaining. + */ + public Builder clearDiamondCount() { + bitField0_ = (bitField0_ & ~0x00000400); + diamondCount_ = 0; + onChanged(); + return this; + } + + private boolean isDisplayedOnPanel_ ; + /** + * bool is_displayed_on_panel = 13; + * @return The isDisplayedOnPanel. + */ + @java.lang.Override + public boolean getIsDisplayedOnPanel() { + return isDisplayedOnPanel_; + } + /** + * bool is_displayed_on_panel = 13; + * @param value The isDisplayedOnPanel to set. + * @return This builder for chaining. + */ + public Builder setIsDisplayedOnPanel(boolean value) { + + isDisplayedOnPanel_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool is_displayed_on_panel = 13; + * @return This builder for chaining. + */ + public Builder clearIsDisplayedOnPanel() { + bitField0_ = (bitField0_ & ~0x00000800); + isDisplayedOnPanel_ = false; + onChanged(); + return this; + } + + private long primaryEffectId_ ; + /** + * uint64 primary_effect_id = 14; + * @return The primaryEffectId. + */ + @java.lang.Override + public long getPrimaryEffectId() { + return primaryEffectId_; + } + /** + * uint64 primary_effect_id = 14; + * @param value The primaryEffectId to set. + * @return This builder for chaining. + */ + public Builder setPrimaryEffectId(long value) { + + primaryEffectId_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * uint64 primary_effect_id = 14; + * @return This builder for chaining. + */ + public Builder clearPrimaryEffectId() { + bitField0_ = (bitField0_ & ~0x00001000); + primaryEffectId_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> giftLabelIconBuilder_; + /** + * .Image gift_label_icon = 15; + * @return Whether the giftLabelIcon field is set. + */ + public boolean hasGiftLabelIcon() { + return ((bitField0_ & 0x00002000) != 0); + } + /** + * .Image gift_label_icon = 15; + * @return The giftLabelIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() { + if (giftLabelIconBuilder_ == null) { + return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; + } else { + return giftLabelIconBuilder_.getMessage(); + } + } + /** + * .Image gift_label_icon = 15; + */ + public Builder setGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (giftLabelIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + giftLabelIcon_ = value; + } else { + giftLabelIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image gift_label_icon = 15; + */ + public Builder setGiftLabelIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (giftLabelIconBuilder_ == null) { + giftLabelIcon_ = builderForValue.build(); + } else { + giftLabelIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image gift_label_icon = 15; + */ + public Builder mergeGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (giftLabelIconBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0) && + giftLabelIcon_ != null && + giftLabelIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getGiftLabelIconBuilder().mergeFrom(value); + } else { + giftLabelIcon_ = value; + } + } else { + giftLabelIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image gift_label_icon = 15; + */ + public Builder clearGiftLabelIcon() { + bitField0_ = (bitField0_ & ~0x00002000); + giftLabelIcon_ = null; + if (giftLabelIconBuilder_ != null) { + giftLabelIconBuilder_.dispose(); + giftLabelIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image gift_label_icon = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getGiftLabelIconBuilder() { + bitField0_ |= 0x00002000; + onChanged(); + return getGiftLabelIconFieldBuilder().getBuilder(); + } + /** + * .Image gift_label_icon = 15; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() { + if (giftLabelIconBuilder_ != null) { + return giftLabelIconBuilder_.getMessageOrBuilder(); + } else { + return giftLabelIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_; + } + } + /** + * .Image gift_label_icon = 15; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getGiftLabelIconFieldBuilder() { + if (giftLabelIconBuilder_ == null) { + giftLabelIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getGiftLabelIcon(), + getParentForChildren(), + isClean()); + giftLabelIcon_ = null; + } + return giftLabelIconBuilder_; + } + + private java.lang.Object name_ = ""; + /** + * string name = 16; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 16; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 16; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * string name = 16; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + /** + * string name = 16; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private java.lang.Object region_ = ""; + /** + * string region = 17; + * @return The region. + */ + public java.lang.String getRegion() { + java.lang.Object ref = region_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + region_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string region = 17; + * @return The bytes for region. + */ + public com.google.protobuf.ByteString + getRegionBytes() { + java.lang.Object ref = region_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + region_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string region = 17; + * @param value The region to set. + * @return This builder for chaining. + */ + public Builder setRegion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + region_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * string region = 17; + * @return This builder for chaining. + */ + public Builder clearRegion() { + region_ = getDefaultInstance().getRegion(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + /** + * string region = 17; + * @param value The bytes for region to set. + * @return This builder for chaining. + */ + public Builder setRegionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + region_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private java.lang.Object manual_ = ""; + /** + * string manual = 18; + * @return The manual. + */ + public java.lang.String getManual() { + java.lang.Object ref = manual_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + manual_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string manual = 18; + * @return The bytes for manual. + */ + public com.google.protobuf.ByteString + getManualBytes() { + java.lang.Object ref = manual_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + manual_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string manual = 18; + * @param value The manual to set. + * @return This builder for chaining. + */ + public Builder setManual( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + manual_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * string manual = 18; + * @return This builder for chaining. + */ + public Builder clearManual() { + manual_ = getDefaultInstance().getManual(); + bitField0_ = (bitField0_ & ~0x00010000); + onChanged(); + return this; + } + /** + * string manual = 18; + * @param value The bytes for manual to set. + * @return This builder for chaining. + */ + public Builder setManualBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + manual_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + private boolean forCustom_ ; + /** + * bool for_custom = 19; + * @return The forCustom. + */ + @java.lang.Override + public boolean getForCustom() { + return forCustom_; + } + /** + * bool for_custom = 19; + * @param value The forCustom to set. + * @return This builder for chaining. + */ + public Builder setForCustom(boolean value) { + + forCustom_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * bool for_custom = 19; + * @return This builder for chaining. + */ + public Builder clearForCustom() { + bitField0_ = (bitField0_ & ~0x00020000); + forCustom_ = false; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.String, java.lang.Long> specialEffectsMap_; + private com.google.protobuf.MapField + internalGetSpecialEffectsMap() { + if (specialEffectsMap_ == null) { + return com.google.protobuf.MapField.emptyMapField( + SpecialEffectsMapDefaultEntryHolder.defaultEntry); + } + return specialEffectsMap_; + } + private com.google.protobuf.MapField + internalGetMutableSpecialEffectsMap() { + if (specialEffectsMap_ == null) { + specialEffectsMap_ = com.google.protobuf.MapField.newMapField( + SpecialEffectsMapDefaultEntryHolder.defaultEntry); + } + if (!specialEffectsMap_.isMutable()) { + specialEffectsMap_ = specialEffectsMap_.copy(); + } + bitField0_ |= 0x00040000; + onChanged(); + return specialEffectsMap_; + } + public int getSpecialEffectsMapCount() { + return internalGetSpecialEffectsMap().getMap().size(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public boolean containsSpecialEffectsMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetSpecialEffectsMap().getMap().containsKey(key); + } + /** + * Use {@link #getSpecialEffectsMapMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getSpecialEffectsMap() { + return getSpecialEffectsMapMap(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public java.util.Map getSpecialEffectsMapMap() { + return internalGetSpecialEffectsMap().getMap(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public long getSpecialEffectsMapOrDefault( + java.lang.String key, + long defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetSpecialEffectsMap().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + @java.lang.Override + public long getSpecialEffectsMapOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetSpecialEffectsMap().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearSpecialEffectsMap() { + bitField0_ = (bitField0_ & ~0x00040000); + internalGetMutableSpecialEffectsMap().getMutableMap() + .clear(); + return this; + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + public Builder removeSpecialEffectsMap( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableSpecialEffectsMap().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableSpecialEffectsMap() { + bitField0_ |= 0x00040000; + return internalGetMutableSpecialEffectsMap().getMutableMap(); + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + public Builder putSpecialEffectsMap( + java.lang.String key, + long value) { + if (key == null) { throw new NullPointerException("map key"); } + + internalGetMutableSpecialEffectsMap().getMutableMap() + .put(key, value); + bitField0_ |= 0x00040000; + return this; + } + /** + * map<string, int64> specialEffectsMap = 20; + */ + public Builder putAllSpecialEffectsMap( + java.util.Map values) { + internalGetMutableSpecialEffectsMap().getMutableMap() + .putAll(values); + bitField0_ |= 0x00040000; + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; + /** + * .Image icon = 21; + * @return Whether the icon field is set. + */ + public boolean hasIcon() { + return ((bitField0_ & 0x00080000) != 0); + } + /** + * .Image icon = 21; + * @return The icon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + if (iconBuilder_ == null) { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } else { + return iconBuilder_.getMessage(); + } + } + /** + * .Image icon = 21; + */ + public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + icon_ = value; + } else { + iconBuilder_.setMessage(value); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image icon = 21; + */ + public Builder setIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (iconBuilder_ == null) { + icon_ = builderForValue.build(); + } else { + iconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image icon = 21; + */ + public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (((bitField0_ & 0x00080000) != 0) && + icon_ != null && + icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getIconBuilder().mergeFrom(value); + } else { + icon_ = value; + } + } else { + iconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image icon = 21; + */ + public Builder clearIcon() { + bitField0_ = (bitField0_ & ~0x00080000); + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image icon = 21; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { + bitField0_ |= 0x00080000; + onChanged(); + return getIconFieldBuilder().getBuilder(); + } + /** + * .Image icon = 21; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + if (iconBuilder_ != null) { + return iconBuilder_.getMessageOrBuilder(); + } else { + return icon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + } + /** + * .Image icon = 21; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getIconFieldBuilder() { + if (iconBuilder_ == null) { + iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getIcon(), + getParentForChildren(), + isClean()); + icon_ = null; + } + return iconBuilder_; + } + + private int actionType_ ; + /** + * uint32 action_type = 22; + * @return The actionType. + */ + @java.lang.Override + public int getActionType() { + return actionType_; + } + /** + * uint32 action_type = 22; + * @param value The actionType to set. + * @return This builder for chaining. + */ + public Builder setActionType(int value) { + + actionType_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * uint32 action_type = 22; + * @return This builder for chaining. + */ + public Builder clearActionType() { + bitField0_ = (bitField0_ & ~0x00100000); + actionType_ = 0; + onChanged(); + return this; + } + + private int watermelonSeeds_ ; + /** + * int32 watermelonSeeds = 23; + * @return The watermelonSeeds. + */ + @java.lang.Override + public int getWatermelonSeeds() { + return watermelonSeeds_; + } + /** + * int32 watermelonSeeds = 23; + * @param value The watermelonSeeds to set. + * @return This builder for chaining. + */ + public Builder setWatermelonSeeds(int value) { + + watermelonSeeds_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * int32 watermelonSeeds = 23; + * @return This builder for chaining. + */ + public Builder clearWatermelonSeeds() { + bitField0_ = (bitField0_ & ~0x00200000); + watermelonSeeds_ = 0; + onChanged(); + return this; + } + + private java.lang.Object goldEffect_ = ""; + /** + * string goldEffect = 24; + * @return The goldEffect. + */ + public java.lang.String getGoldEffect() { + java.lang.Object ref = goldEffect_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + goldEffect_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string goldEffect = 24; + * @return The bytes for goldEffect. + */ + public com.google.protobuf.ByteString + getGoldEffectBytes() { + java.lang.Object ref = goldEffect_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + goldEffect_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string goldEffect = 24; + * @param value The goldEffect to set. + * @return This builder for chaining. + */ + public Builder setGoldEffect( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + goldEffect_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * string goldEffect = 24; + * @return This builder for chaining. + */ + public Builder clearGoldEffect() { + goldEffect_ = getDefaultInstance().getGoldEffect(); + bitField0_ = (bitField0_ & ~0x00400000); + onChanged(); + return this; + } + /** + * string goldEffect = 24; + * @param value The bytes for goldEffect to set. + * @return This builder for chaining. + */ + public Builder setGoldEffectBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + goldEffect_ = value; + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + + private long goldenBeans_ ; + /** + *
+       * repeated LuckyMoneyGiftMeta subs = 25;
+       * 
+ * + * int64 goldenBeans = 26; + * @return The goldenBeans. + */ + @java.lang.Override + public long getGoldenBeans() { + return goldenBeans_; + } + /** + *
+       * repeated LuckyMoneyGiftMeta subs = 25;
+       * 
+ * + * int64 goldenBeans = 26; + * @param value The goldenBeans to set. + * @return This builder for chaining. + */ + public Builder setGoldenBeans(long value) { + + goldenBeans_ = value; + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + *
+       * repeated LuckyMoneyGiftMeta subs = 25;
+       * 
+ * + * int64 goldenBeans = 26; + * @return This builder for chaining. + */ + public Builder clearGoldenBeans() { + bitField0_ = (bitField0_ & ~0x00800000); + goldenBeans_ = 0L; + onChanged(); + return this; + } + + private long honorLevel_ ; + /** + * int64 honorLevel = 27; + * @return The honorLevel. + */ + @java.lang.Override + public long getHonorLevel() { + return honorLevel_; + } + /** + * int64 honorLevel = 27; + * @param value The honorLevel to set. + * @return This builder for chaining. + */ + public Builder setHonorLevel(long value) { + + honorLevel_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * int64 honorLevel = 27; + * @return This builder for chaining. + */ + public Builder clearHonorLevel() { + bitField0_ = (bitField0_ & ~0x01000000); + honorLevel_ = 0L; + onChanged(); + return this; + } + + private int itemType_ ; + /** + * int32 itemType = 28; + * @return The itemType. + */ + @java.lang.Override + public int getItemType() { + return itemType_; + } + /** + * int32 itemType = 28; + * @param value The itemType to set. + * @return This builder for chaining. + */ + public Builder setItemType(int value) { + + itemType_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + /** + * int32 itemType = 28; + * @return This builder for chaining. + */ + public Builder clearItemType() { + bitField0_ = (bitField0_ & ~0x02000000); + itemType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object schemeUrl_ = ""; + /** + * string schemeUrl = 29; + * @return The schemeUrl. + */ + public java.lang.String getSchemeUrl() { + java.lang.Object ref = schemeUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + schemeUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string schemeUrl = 29; + * @return The bytes for schemeUrl. + */ + public com.google.protobuf.ByteString + getSchemeUrlBytes() { + java.lang.Object ref = schemeUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + schemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string schemeUrl = 29; + * @param value The schemeUrl to set. + * @return This builder for chaining. + */ + public Builder setSchemeUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + schemeUrl_ = value; + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * string schemeUrl = 29; + * @return This builder for chaining. + */ + public Builder clearSchemeUrl() { + schemeUrl_ = getDefaultInstance().getSchemeUrl(); + bitField0_ = (bitField0_ & ~0x04000000); + onChanged(); + return this; + } + /** + * string schemeUrl = 29; + * @param value The bytes for schemeUrl to set. + * @return This builder for chaining. + */ + public Builder setSchemeUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + schemeUrl_ = value; + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + + private java.lang.Object eventName_ = ""; + /** + *
+       * GiftPanelOperation giftOperation = 30;
+       * 
+ * + * string eventName = 31; + * @return The eventName. + */ + public java.lang.String getEventName() { + java.lang.Object ref = eventName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * GiftPanelOperation giftOperation = 30;
+       * 
+ * + * string eventName = 31; + * @return The bytes for eventName. + */ + public com.google.protobuf.ByteString + getEventNameBytes() { + java.lang.Object ref = eventName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + eventName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * GiftPanelOperation giftOperation = 30;
+       * 
+ * + * string eventName = 31; + * @param value The eventName to set. + * @return This builder for chaining. + */ + public Builder setEventName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + eventName_ = value; + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + *
+       * GiftPanelOperation giftOperation = 30;
+       * 
+ * + * string eventName = 31; + * @return This builder for chaining. + */ + public Builder clearEventName() { + eventName_ = getDefaultInstance().getEventName(); + bitField0_ = (bitField0_ & ~0x08000000); + onChanged(); + return this; + } + /** + *
+       * GiftPanelOperation giftOperation = 30;
+       * 
+ * + * string eventName = 31; + * @param value The bytes for eventName to set. + * @return This builder for chaining. + */ + public Builder setEventNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + eventName_ = value; + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + + private long nobleLevel_ ; + /** + * int64 nobleLevel = 32; + * @return The nobleLevel. + */ + @java.lang.Override + public long getNobleLevel() { + return nobleLevel_; + } + /** + * int64 nobleLevel = 32; + * @param value The nobleLevel to set. + * @return This builder for chaining. + */ + public Builder setNobleLevel(long value) { + + nobleLevel_ = value; + bitField0_ |= 0x10000000; + onChanged(); + return this; + } + /** + * int64 nobleLevel = 32; + * @return This builder for chaining. + */ + public Builder clearNobleLevel() { + bitField0_ = (bitField0_ & ~0x10000000); + nobleLevel_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object guideUrl_ = ""; + /** + * string guideUrl = 33; + * @return The guideUrl. + */ + public java.lang.String getGuideUrl() { + java.lang.Object ref = guideUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guideUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string guideUrl = 33; + * @return The bytes for guideUrl. + */ + public com.google.protobuf.ByteString + getGuideUrlBytes() { + java.lang.Object ref = guideUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guideUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string guideUrl = 33; + * @param value The guideUrl to set. + * @return This builder for chaining. + */ + public Builder setGuideUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + guideUrl_ = value; + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + /** + * string guideUrl = 33; + * @return This builder for chaining. + */ + public Builder clearGuideUrl() { + guideUrl_ = getDefaultInstance().getGuideUrl(); + bitField0_ = (bitField0_ & ~0x20000000); + onChanged(); + return this; + } + /** + * string guideUrl = 33; + * @param value The bytes for guideUrl to set. + * @return This builder for chaining. + */ + public Builder setGuideUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + guideUrl_ = value; + bitField0_ |= 0x20000000; + onChanged(); + return this; + } + + private boolean punishMedicine_ ; + /** + * bool punishMedicine = 34; + * @return The punishMedicine. + */ + @java.lang.Override + public boolean getPunishMedicine() { + return punishMedicine_; + } + /** + * bool punishMedicine = 34; + * @param value The punishMedicine to set. + * @return This builder for chaining. + */ + public Builder setPunishMedicine(boolean value) { + + punishMedicine_ = value; + bitField0_ |= 0x40000000; + onChanged(); + return this; + } + /** + * bool punishMedicine = 34; + * @return This builder for chaining. + */ + public Builder clearPunishMedicine() { + bitField0_ = (bitField0_ & ~0x40000000); + punishMedicine_ = false; + onChanged(); + return this; + } + + private boolean forPortal_ ; + /** + * bool forPortal = 35; + * @return The forPortal. + */ + @java.lang.Override + public boolean getForPortal() { + return forPortal_; + } + /** + * bool forPortal = 35; + * @param value The forPortal to set. + * @return This builder for chaining. + */ + public Builder setForPortal(boolean value) { + + forPortal_ = value; + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + /** + * bool forPortal = 35; + * @return This builder for chaining. + */ + public Builder clearForPortal() { + bitField0_ = (bitField0_ & ~0x80000000); + forPortal_ = false; + onChanged(); + return this; + } + + private java.lang.Object businessText_ = ""; + /** + * string businessText = 36; + * @return The businessText. + */ + public java.lang.String getBusinessText() { + java.lang.Object ref = businessText_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + businessText_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string businessText = 36; + * @return The bytes for businessText. + */ + public com.google.protobuf.ByteString + getBusinessTextBytes() { + java.lang.Object ref = businessText_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + businessText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string businessText = 36; + * @param value The businessText to set. + * @return This builder for chaining. + */ + public Builder setBusinessText( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + businessText_ = value; + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string businessText = 36; + * @return This builder for chaining. + */ + public Builder clearBusinessText() { + businessText_ = getDefaultInstance().getBusinessText(); + bitField1_ = (bitField1_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string businessText = 36; + * @param value The bytes for businessText to set. + * @return This builder for chaining. + */ + public Builder setBusinessTextBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + businessText_ = value; + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + + private boolean cnyGift_ ; + /** + * bool cnyGift = 37; + * @return The cnyGift. + */ + @java.lang.Override + public boolean getCnyGift() { + return cnyGift_; + } + /** + * bool cnyGift = 37; + * @param value The cnyGift to set. + * @return This builder for chaining. + */ + public Builder setCnyGift(boolean value) { + + cnyGift_ = value; + bitField1_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool cnyGift = 37; + * @return This builder for chaining. + */ + public Builder clearCnyGift() { + bitField1_ = (bitField1_ & ~0x00000002); + cnyGift_ = false; + onChanged(); + return this; + } + + private long appId_ ; + /** + * int64 appId = 38; + * @return The appId. + */ + @java.lang.Override + public long getAppId() { + return appId_; + } + /** + * int64 appId = 38; + * @param value The appId to set. + * @return This builder for chaining. + */ + public Builder setAppId(long value) { + + appId_ = value; + bitField1_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 appId = 38; + * @return This builder for chaining. + */ + public Builder clearAppId() { + bitField1_ = (bitField1_ & ~0x00000004); + appId_ = 0L; + onChanged(); + return this; + } + + private long vipLevel_ ; + /** + * int64 vipLevel = 39; + * @return The vipLevel. + */ + @java.lang.Override + public long getVipLevel() { + return vipLevel_; + } + /** + * int64 vipLevel = 39; + * @param value The vipLevel to set. + * @return This builder for chaining. + */ + public Builder setVipLevel(long value) { + + vipLevel_ = value; + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int64 vipLevel = 39; + * @return This builder for chaining. + */ + public Builder clearVipLevel() { + bitField1_ = (bitField1_ & ~0x00000008); + vipLevel_ = 0L; + onChanged(); + return this; + } + + private boolean isGray_ ; + /** + * bool isGray = 40; + * @return The isGray. + */ + @java.lang.Override + public boolean getIsGray() { + return isGray_; + } + /** + * bool isGray = 40; + * @param value The isGray to set. + * @return This builder for chaining. + */ + public Builder setIsGray(boolean value) { + + isGray_ = value; + bitField1_ |= 0x00000010; + onChanged(); + return this; + } + /** + * bool isGray = 40; + * @return This builder for chaining. + */ + public Builder clearIsGray() { + bitField1_ = (bitField1_ & ~0x00000010); + isGray_ = false; + onChanged(); + return this; + } + + private java.lang.Object graySchemeUrl_ = ""; + /** + * string graySchemeUrl = 41; + * @return The graySchemeUrl. + */ + public java.lang.String getGraySchemeUrl() { + java.lang.Object ref = graySchemeUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + graySchemeUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string graySchemeUrl = 41; + * @return The bytes for graySchemeUrl. + */ + public com.google.protobuf.ByteString + getGraySchemeUrlBytes() { + java.lang.Object ref = graySchemeUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + graySchemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string graySchemeUrl = 41; + * @param value The graySchemeUrl to set. + * @return This builder for chaining. + */ + public Builder setGraySchemeUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + graySchemeUrl_ = value; + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string graySchemeUrl = 41; + * @return This builder for chaining. + */ + public Builder clearGraySchemeUrl() { + graySchemeUrl_ = getDefaultInstance().getGraySchemeUrl(); + bitField1_ = (bitField1_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string graySchemeUrl = 41; + * @param value The bytes for graySchemeUrl to set. + * @return This builder for chaining. + */ + public Builder setGraySchemeUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + graySchemeUrl_ = value; + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + + private long giftScene_ ; + /** + * int64 giftScene = 42; + * @return The giftScene. + */ + @java.lang.Override + public long getGiftScene() { + return giftScene_; + } + /** + * int64 giftScene = 42; + * @param value The giftScene to set. + * @return This builder for chaining. + */ + public Builder setGiftScene(long value) { + + giftScene_ = value; + bitField1_ |= 0x00000040; + onChanged(); + return this; + } + /** + * int64 giftScene = 42; + * @return This builder for chaining. + */ + public Builder clearGiftScene() { + bitField1_ = (bitField1_ & ~0x00000040); + giftScene_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList triggerWords_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureTriggerWordsIsMutable() { + if (!triggerWords_.isModifiable()) { + triggerWords_ = new com.google.protobuf.LazyStringArrayList(triggerWords_); + } + bitField1_ |= 0x00000080; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @return A list containing the triggerWords. + */ + public com.google.protobuf.ProtocolStringList + getTriggerWordsList() { + triggerWords_.makeImmutable(); + return triggerWords_; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @return The count of triggerWords. + */ + public int getTriggerWordsCount() { + return triggerWords_.size(); + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the element to return. + * @return The triggerWords at the given index. + */ + public java.lang.String getTriggerWords(int index) { + return triggerWords_.get(index); + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param index The index of the value to return. + * @return The bytes of the triggerWords at the given index. + */ + public com.google.protobuf.ByteString + getTriggerWordsBytes(int index) { + return triggerWords_.getByteString(index); + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param index The index to set the value at. + * @param value The triggerWords to set. + * @return This builder for chaining. + */ + public Builder setTriggerWords( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTriggerWordsIsMutable(); + triggerWords_.set(index, value); + bitField1_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param value The triggerWords to add. + * @return This builder for chaining. + */ + public Builder addTriggerWords( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTriggerWordsIsMutable(); + triggerWords_.add(value); + bitField1_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param values The triggerWords to add. + * @return This builder for chaining. + */ + public Builder addAllTriggerWords( + java.lang.Iterable values) { + ensureTriggerWordsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, triggerWords_); + bitField1_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @return This builder for chaining. + */ + public Builder clearTriggerWords() { + triggerWords_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField1_ = (bitField1_ & ~0x00000080);; + onChanged(); + return this; + } + /** + *
+       * GiftBanner giftBanner = 43;
+       * 
+ * + * repeated string triggerWords = 44; + * @param value The bytes of the triggerWords to add. + * @return This builder for chaining. + */ + public Builder addTriggerWordsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureTriggerWordsIsMutable(); + triggerWords_.add(value); + bitField1_ |= 0x00000080; + onChanged(); + return this; + } + + private boolean forFirstRecharge_ ; + /** + *
+       * repeated GiftBuffInfo giftBuffInfos = 45;
+       * 
+ * + * bool forFirstRecharge = 46; + * @return The forFirstRecharge. + */ + @java.lang.Override + public boolean getForFirstRecharge() { + return forFirstRecharge_; + } + /** + *
+       * repeated GiftBuffInfo giftBuffInfos = 45;
+       * 
+ * + * bool forFirstRecharge = 46; + * @param value The forFirstRecharge to set. + * @return This builder for chaining. + */ + public Builder setForFirstRecharge(boolean value) { + + forFirstRecharge_ = value; + bitField1_ |= 0x00000100; + onChanged(); + return this; + } + /** + *
+       * repeated GiftBuffInfo giftBuffInfos = 45;
+       * 
+ * + * bool forFirstRecharge = 46; + * @return This builder for chaining. + */ + public Builder clearForFirstRecharge() { + bitField1_ = (bitField1_ & ~0x00000100); + forFirstRecharge_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> dynamicImgForSelectedBuilder_; + /** + * .Image dynamicImgForSelected = 47; + * @return Whether the dynamicImgForSelected field is set. + */ + public boolean hasDynamicImgForSelected() { + return ((bitField1_ & 0x00000200) != 0); + } + /** + * .Image dynamicImgForSelected = 47; + * @return The dynamicImgForSelected. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() { + if (dynamicImgForSelectedBuilder_ == null) { + return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; + } else { + return dynamicImgForSelectedBuilder_.getMessage(); + } + } + /** + * .Image dynamicImgForSelected = 47; + */ + public Builder setDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (dynamicImgForSelectedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + dynamicImgForSelected_ = value; + } else { + dynamicImgForSelectedBuilder_.setMessage(value); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image dynamicImgForSelected = 47; + */ + public Builder setDynamicImgForSelected( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (dynamicImgForSelectedBuilder_ == null) { + dynamicImgForSelected_ = builderForValue.build(); + } else { + dynamicImgForSelectedBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image dynamicImgForSelected = 47; + */ + public Builder mergeDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (dynamicImgForSelectedBuilder_ == null) { + if (((bitField1_ & 0x00000200) != 0) && + dynamicImgForSelected_ != null && + dynamicImgForSelected_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getDynamicImgForSelectedBuilder().mergeFrom(value); + } else { + dynamicImgForSelected_ = value; + } + } else { + dynamicImgForSelectedBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image dynamicImgForSelected = 47; + */ + public Builder clearDynamicImgForSelected() { + bitField1_ = (bitField1_ & ~0x00000200); + dynamicImgForSelected_ = null; + if (dynamicImgForSelectedBuilder_ != null) { + dynamicImgForSelectedBuilder_.dispose(); + dynamicImgForSelectedBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image dynamicImgForSelected = 47; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getDynamicImgForSelectedBuilder() { + bitField1_ |= 0x00000200; + onChanged(); + return getDynamicImgForSelectedFieldBuilder().getBuilder(); + } + /** + * .Image dynamicImgForSelected = 47; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() { + if (dynamicImgForSelectedBuilder_ != null) { + return dynamicImgForSelectedBuilder_.getMessageOrBuilder(); + } else { + return dynamicImgForSelected_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_; + } + } + /** + * .Image dynamicImgForSelected = 47; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getDynamicImgForSelectedFieldBuilder() { + if (dynamicImgForSelectedBuilder_ == null) { + dynamicImgForSelectedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getDynamicImgForSelected(), + getParentForChildren(), + isClean()); + dynamicImgForSelected_ = null; + } + return dynamicImgForSelectedBuilder_; + } + + private int afterSendAction_ ; + /** + * int32 afterSendAction = 48; + * @return The afterSendAction. + */ + @java.lang.Override + public int getAfterSendAction() { + return afterSendAction_; + } + /** + * int32 afterSendAction = 48; + * @param value The afterSendAction to set. + * @return This builder for chaining. + */ + public Builder setAfterSendAction(int value) { + + afterSendAction_ = value; + bitField1_ |= 0x00000400; + onChanged(); + return this; + } + /** + * int32 afterSendAction = 48; + * @return This builder for chaining. + */ + public Builder clearAfterSendAction() { + bitField1_ = (bitField1_ & ~0x00000400); + afterSendAction_ = 0; + onChanged(); + return this; + } + + private long giftOfflineTime_ ; + /** + * int64 giftOfflineTime = 49; + * @return The giftOfflineTime. + */ + @java.lang.Override + public long getGiftOfflineTime() { + return giftOfflineTime_; + } + /** + * int64 giftOfflineTime = 49; + * @param value The giftOfflineTime to set. + * @return This builder for chaining. + */ + public Builder setGiftOfflineTime(long value) { + + giftOfflineTime_ = value; + bitField1_ |= 0x00000800; + onChanged(); + return this; + } + /** + * int64 giftOfflineTime = 49; + * @return This builder for chaining. + */ + public Builder clearGiftOfflineTime() { + bitField1_ = (bitField1_ & ~0x00000800); + giftOfflineTime_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object topBarText_ = ""; + /** + * string topBarText = 50; + * @return The topBarText. + */ + public java.lang.String getTopBarText() { + java.lang.Object ref = topBarText_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + topBarText_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string topBarText = 50; + * @return The bytes for topBarText. + */ + public com.google.protobuf.ByteString + getTopBarTextBytes() { + java.lang.Object ref = topBarText_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + topBarText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string topBarText = 50; + * @param value The topBarText to set. + * @return This builder for chaining. + */ + public Builder setTopBarText( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + topBarText_ = value; + bitField1_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string topBarText = 50; + * @return This builder for chaining. + */ + public Builder clearTopBarText() { + topBarText_ = getDefaultInstance().getTopBarText(); + bitField1_ = (bitField1_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string topBarText = 50; + * @param value The bytes for topBarText to set. + * @return This builder for chaining. + */ + public Builder setTopBarTextBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + topBarText_ = value; + bitField1_ |= 0x00001000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> topRightAvatarBuilder_; + /** + * .Image topRightAvatar = 51; + * @return Whether the topRightAvatar field is set. + */ + public boolean hasTopRightAvatar() { + return ((bitField1_ & 0x00002000) != 0); + } + /** + * .Image topRightAvatar = 51; + * @return The topRightAvatar. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() { + if (topRightAvatarBuilder_ == null) { + return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; + } else { + return topRightAvatarBuilder_.getMessage(); + } + } + /** + * .Image topRightAvatar = 51; + */ + public Builder setTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (topRightAvatarBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + topRightAvatar_ = value; + } else { + topRightAvatarBuilder_.setMessage(value); + } + bitField1_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image topRightAvatar = 51; + */ + public Builder setTopRightAvatar( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (topRightAvatarBuilder_ == null) { + topRightAvatar_ = builderForValue.build(); + } else { + topRightAvatarBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image topRightAvatar = 51; + */ + public Builder mergeTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (topRightAvatarBuilder_ == null) { + if (((bitField1_ & 0x00002000) != 0) && + topRightAvatar_ != null && + topRightAvatar_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getTopRightAvatarBuilder().mergeFrom(value); + } else { + topRightAvatar_ = value; + } + } else { + topRightAvatarBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .Image topRightAvatar = 51; + */ + public Builder clearTopRightAvatar() { + bitField1_ = (bitField1_ & ~0x00002000); + topRightAvatar_ = null; + if (topRightAvatarBuilder_ != null) { + topRightAvatarBuilder_.dispose(); + topRightAvatarBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image topRightAvatar = 51; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getTopRightAvatarBuilder() { + bitField1_ |= 0x00002000; + onChanged(); + return getTopRightAvatarFieldBuilder().getBuilder(); + } + /** + * .Image topRightAvatar = 51; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() { + if (topRightAvatarBuilder_ != null) { + return topRightAvatarBuilder_.getMessageOrBuilder(); + } else { + return topRightAvatar_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_; + } + } + /** + * .Image topRightAvatar = 51; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getTopRightAvatarFieldBuilder() { + if (topRightAvatarBuilder_ == null) { + topRightAvatarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getTopRightAvatar(), + getParentForChildren(), + isClean()); + topRightAvatar_ = null; + } + return topRightAvatarBuilder_; + } + + private java.lang.Object bannerSchemeUrl_ = ""; + /** + * string bannerSchemeUrl = 52; + * @return The bannerSchemeUrl. + */ + public java.lang.String getBannerSchemeUrl() { + java.lang.Object ref = bannerSchemeUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bannerSchemeUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string bannerSchemeUrl = 52; + * @return The bytes for bannerSchemeUrl. + */ + public com.google.protobuf.ByteString + getBannerSchemeUrlBytes() { + java.lang.Object ref = bannerSchemeUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bannerSchemeUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string bannerSchemeUrl = 52; + * @param value The bannerSchemeUrl to set. + * @return This builder for chaining. + */ + public Builder setBannerSchemeUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + bannerSchemeUrl_ = value; + bitField1_ |= 0x00004000; + onChanged(); + return this; + } + /** + * string bannerSchemeUrl = 52; + * @return This builder for chaining. + */ + public Builder clearBannerSchemeUrl() { + bannerSchemeUrl_ = getDefaultInstance().getBannerSchemeUrl(); + bitField1_ = (bitField1_ & ~0x00004000); + onChanged(); + return this; + } + /** + * string bannerSchemeUrl = 52; + * @param value The bytes for bannerSchemeUrl to set. + * @return This builder for chaining. + */ + public Builder setBannerSchemeUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + bannerSchemeUrl_ = value; + bitField1_ |= 0x00004000; + onChanged(); + return this; + } + + private boolean isLocked_ ; + /** + * bool isLocked = 53; + * @return The isLocked. + */ + @java.lang.Override + public boolean getIsLocked() { + return isLocked_; + } + /** + * bool isLocked = 53; + * @param value The isLocked to set. + * @return This builder for chaining. + */ + public Builder setIsLocked(boolean value) { + + isLocked_ = value; + bitField1_ |= 0x00008000; + onChanged(); + return this; + } + /** + * bool isLocked = 53; + * @return This builder for chaining. + */ + public Builder clearIsLocked() { + bitField1_ = (bitField1_ & ~0x00008000); + isLocked_ = false; + onChanged(); + return this; + } + + private long reqExtraType_ ; + /** + * int64 reqExtraType = 54; + * @return The reqExtraType. + */ + @java.lang.Override + public long getReqExtraType() { + return reqExtraType_; + } + /** + * int64 reqExtraType = 54; + * @param value The reqExtraType to set. + * @return This builder for chaining. + */ + public Builder setReqExtraType(long value) { + + reqExtraType_ = value; + bitField1_ |= 0x00010000; + onChanged(); + return this; + } + /** + * int64 reqExtraType = 54; + * @return This builder for chaining. + */ + public Builder clearReqExtraType() { + bitField1_ = (bitField1_ & ~0x00010000); + reqExtraType_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.LongList assetIds_ = emptyLongList(); + private void ensureAssetIdsIsMutable() { + if (!((bitField1_ & 0x00020000) != 0)) { + assetIds_ = mutableCopy(assetIds_); + bitField1_ |= 0x00020000; + } + } + /** + * repeated int64 assetIds = 55; + * @return A list containing the assetIds. + */ + public java.util.List + getAssetIdsList() { + return ((bitField1_ & 0x00020000) != 0) ? + java.util.Collections.unmodifiableList(assetIds_) : assetIds_; + } + /** + * repeated int64 assetIds = 55; + * @return The count of assetIds. + */ + public int getAssetIdsCount() { + return assetIds_.size(); + } + /** + * repeated int64 assetIds = 55; + * @param index The index of the element to return. + * @return The assetIds at the given index. + */ + public long getAssetIds(int index) { + return assetIds_.getLong(index); + } + /** + * repeated int64 assetIds = 55; + * @param index The index to set the value at. + * @param value The assetIds to set. + * @return This builder for chaining. + */ + public Builder setAssetIds( + int index, long value) { + + ensureAssetIdsIsMutable(); + assetIds_.setLong(index, value); + onChanged(); + return this; + } + /** + * repeated int64 assetIds = 55; + * @param value The assetIds to add. + * @return This builder for chaining. + */ + public Builder addAssetIds(long value) { + + ensureAssetIdsIsMutable(); + assetIds_.addLong(value); + onChanged(); + return this; + } + /** + * repeated int64 assetIds = 55; + * @param values The assetIds to add. + * @return This builder for chaining. + */ + public Builder addAllAssetIds( + java.lang.Iterable values) { + ensureAssetIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, assetIds_); + onChanged(); + return this; + } + /** + * repeated int64 assetIds = 55; + * @return This builder for chaining. + */ + public Builder clearAssetIds() { + assetIds_ = emptyLongList(); + bitField1_ = (bitField1_ & ~0x00020000); + onChanged(); + return this; + } + + private int needSweepLightCount_ ; + /** + *
+       * GiftPreviewInfo giftPreviewInfo = 56;
+       * GiftTip giftTip = 57;
+       * 
+ * + * int32 needSweepLightCount = 58; + * @return The needSweepLightCount. + */ + @java.lang.Override + public int getNeedSweepLightCount() { + return needSweepLightCount_; + } + /** + *
+       * GiftPreviewInfo giftPreviewInfo = 56;
+       * GiftTip giftTip = 57;
+       * 
+ * + * int32 needSweepLightCount = 58; + * @param value The needSweepLightCount to set. + * @return This builder for chaining. + */ + public Builder setNeedSweepLightCount(int value) { + + needSweepLightCount_ = value; + bitField1_ |= 0x00040000; + onChanged(); + return this; + } + /** + *
+       * GiftPreviewInfo giftPreviewInfo = 56;
+       * GiftTip giftTip = 57;
+       * 
+ * + * int32 needSweepLightCount = 58; + * @return This builder for chaining. + */ + public Builder clearNeedSweepLightCount() { + bitField1_ = (bitField1_ & ~0x00040000); + needSweepLightCount_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:GiftStruct) + } + + // @@protoc_insertion_point(class_scope:GiftStruct) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GiftStruct parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GiftStruct_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GiftStruct_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020GiftStruct.proto\032\013Image.proto\"\241\t\n\nGift" + + "Struct\022\025\n\005image\030\001 \001(\0132\006.Image\022\020\n\010describ" + + "e\030\002 \001(\t\022\016\n\006notify\030\003 \001(\010\022\020\n\010duration\030\004 \001(" + + "\004\022\n\n\002id\030\005 \001(\004\022\023\n\013for_linkmic\030\007 \001(\010\022\016\n\006do" + + "odle\030\010 \001(\010\022\024\n\014for_fansclub\030\t \001(\010\022\r\n\005comb" + + "o\030\n \001(\010\022\014\n\004type\030\013 \001(\r\022\025\n\rdiamond_count\030\014" + + " \001(\r\022\035\n\025is_displayed_on_panel\030\r \001(\010\022\031\n\021p" + + "rimary_effect_id\030\016 \001(\004\022\037\n\017gift_label_ico" + + "n\030\017 \001(\0132\006.Image\022\014\n\004name\030\020 \001(\t\022\016\n\006region\030" + + "\021 \001(\t\022\016\n\006manual\030\022 \001(\t\022\022\n\nfor_custom\030\023 \001(" + + "\010\022=\n\021specialEffectsMap\030\024 \003(\0132\".GiftStruc" + + "t.SpecialEffectsMapEntry\022\024\n\004icon\030\025 \001(\0132\006" + + ".Image\022\023\n\013action_type\030\026 \001(\r\022\027\n\017watermelo" + + "nSeeds\030\027 \001(\005\022\022\n\ngoldEffect\030\030 \001(\t\022\023\n\013gold" + + "enBeans\030\032 \001(\003\022\022\n\nhonorLevel\030\033 \001(\003\022\020\n\010ite" + + "mType\030\034 \001(\005\022\021\n\tschemeUrl\030\035 \001(\t\022\021\n\teventN" + + "ame\030\037 \001(\t\022\022\n\nnobleLevel\030 \001(\003\022\020\n\010guideUr" + + "l\030! \001(\t\022\026\n\016punishMedicine\030\" \001(\010\022\021\n\tforPo" + + "rtal\030# \001(\010\022\024\n\014businessText\030$ \001(\t\022\017\n\007cnyG" + + "ift\030% \001(\010\022\r\n\005appId\030& \001(\003\022\020\n\010vipLevel\030\' \001" + + "(\003\022\016\n\006isGray\030( \001(\010\022\025\n\rgraySchemeUrl\030) \001(" + + "\t\022\021\n\tgiftScene\030* \001(\003\022\024\n\014triggerWords\030, \003" + + "(\t\022\030\n\020forFirstRecharge\030. \001(\010\022%\n\025dynamicI" + + "mgForSelected\030/ \001(\0132\006.Image\022\027\n\017afterSend" + + "Action\0300 \001(\005\022\027\n\017giftOfflineTime\0301 \001(\003\022\022\n" + + "\ntopBarText\0302 \001(\t\022\036\n\016topRightAvatar\0303 \001(" + + "\0132\006.Image\022\027\n\017bannerSchemeUrl\0304 \001(\t\022\020\n\010is" + + "Locked\0305 \001(\010\022\024\n\014reqExtraType\0306 \001(\003\022\020\n\010as" + + "setIds\0307 \003(\003\022\033\n\023needSweepLightCount\030: \001(" + + "\005\0328\n\026SpecialEffectsMapEntry\022\013\n\003key\030\001 \001(\t" + + "\022\r\n\005value\030\002 \001(\003:\0028\001B8\n6tech.ordinaryroad" + + ".live.chat.client.douyin.protobuf.dtob\006p" + + "roto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + }); + internal_static_GiftStruct_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GiftStruct_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GiftStruct_descriptor, + new java.lang.String[] { "Image", "Describe", "Notify", "Duration", "Id", "ForLinkmic", "Doodle", "ForFansclub", "Combo", "Type", "DiamondCount", "IsDisplayedOnPanel", "PrimaryEffectId", "GiftLabelIcon", "Name", "Region", "Manual", "ForCustom", "SpecialEffectsMap", "Icon", "ActionType", "WatermelonSeeds", "GoldEffect", "GoldenBeans", "HonorLevel", "ItemType", "SchemeUrl", "EventName", "NobleLevel", "GuideUrl", "PunishMedicine", "ForPortal", "BusinessText", "CnyGift", "AppId", "VipLevel", "IsGray", "GraySchemeUrl", "GiftScene", "TriggerWords", "ForFirstRecharge", "DynamicImgForSelected", "AfterSendAction", "GiftOfflineTime", "TopBarText", "TopRightAvatar", "BannerSchemeUrl", "IsLocked", "ReqExtraType", "AssetIds", "NeedSweepLightCount", }); + internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor = + internal_static_GiftStruct_descriptor.getNestedTypes().get(0); + internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java new file mode 100644 index 00000000..4a30d6e7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/ImageOuterClass.java @@ -0,0 +1,3722 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: Image.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class ImageOuterClass { + private ImageOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface ImageOrBuilder extends + // @@protoc_insertion_point(interface_extends:Image) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated string urlListList = 1; + * @return A list containing the urlListList. + */ + java.util.List + getUrlListListList(); + /** + * repeated string urlListList = 1; + * @return The count of urlListList. + */ + int getUrlListListCount(); + /** + * repeated string urlListList = 1; + * @param index The index of the element to return. + * @return The urlListList at the given index. + */ + java.lang.String getUrlListList(int index); + /** + * repeated string urlListList = 1; + * @param index The index of the value to return. + * @return The bytes of the urlListList at the given index. + */ + com.google.protobuf.ByteString + getUrlListListBytes(int index); + + /** + * string uri = 2; + * @return The uri. + */ + java.lang.String getUri(); + /** + * string uri = 2; + * @return The bytes for uri. + */ + com.google.protobuf.ByteString + getUriBytes(); + + /** + * int64 height = 3; + * @return The height. + */ + long getHeight(); + + /** + * int64 width = 4; + * @return The width. + */ + long getWidth(); + + /** + * string avgColor = 5; + * @return The avgColor. + */ + java.lang.String getAvgColor(); + /** + * string avgColor = 5; + * @return The bytes for avgColor. + */ + com.google.protobuf.ByteString + getAvgColorBytes(); + + /** + * int32 imageType = 6; + * @return The imageType. + */ + int getImageType(); + + /** + * string openWebUrl = 7; + * @return The openWebUrl. + */ + java.lang.String getOpenWebUrl(); + /** + * string openWebUrl = 7; + * @return The bytes for openWebUrl. + */ + com.google.protobuf.ByteString + getOpenWebUrlBytes(); + + /** + * .Image.Content content = 8; + * @return Whether the content field is set. + */ + boolean hasContent(); + /** + * .Image.Content content = 8; + * @return The content. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent(); + /** + * .Image.Content content = 8; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder(); + + /** + * bool isAnimated = 9; + * @return The isAnimated. + */ + boolean getIsAnimated(); + + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + java.util.List + getFlexSettingListListList(); + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index); + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + int getFlexSettingListListCount(); + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + java.util.List + getFlexSettingListListOrBuilderList(); + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( + int index); + + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + java.util.List + getTextSettingListListList(); + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index); + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + int getTextSettingListListCount(); + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + java.util.List + getTextSettingListListOrBuilderList(); + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( + int index); + } + /** + * Protobuf type {@code Image} + */ + public static final class Image extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Image) + ImageOrBuilder { + private static final long serialVersionUID = 0L; + // Use Image.newBuilder() to construct. + private Image(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Image() { + urlListList_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + uri_ = ""; + avgColor_ = ""; + openWebUrl_ = ""; + flexSettingListList_ = java.util.Collections.emptyList(); + textSettingListList_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Image(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder.class); + } + + public interface ContentOrBuilder extends + // @@protoc_insertion_point(interface_extends:Image.Content) + com.google.protobuf.MessageOrBuilder { + + /** + * string name = 1; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 1; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * string fontColor = 2; + * @return The fontColor. + */ + java.lang.String getFontColor(); + /** + * string fontColor = 2; + * @return The bytes for fontColor. + */ + com.google.protobuf.ByteString + getFontColorBytes(); + + /** + * int64 level = 3; + * @return The level. + */ + long getLevel(); + + /** + * string alternativeText = 4; + * @return The alternativeText. + */ + java.lang.String getAlternativeText(); + /** + * string alternativeText = 4; + * @return The bytes for alternativeText. + */ + com.google.protobuf.ByteString + getAlternativeTextBytes(); + } + /** + * Protobuf type {@code Image.Content} + */ + public static final class Content extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Image.Content) + ContentOrBuilder { + private static final long serialVersionUID = 0L; + // Use Content.newBuilder() to construct. + private Content(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Content() { + name_ = ""; + fontColor_ = ""; + alternativeText_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Content(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * string name = 1; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 1; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FONTCOLOR_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object fontColor_ = ""; + /** + * string fontColor = 2; + * @return The fontColor. + */ + @java.lang.Override + public java.lang.String getFontColor() { + java.lang.Object ref = fontColor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fontColor_ = s; + return s; + } + } + /** + * string fontColor = 2; + * @return The bytes for fontColor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFontColorBytes() { + java.lang.Object ref = fontColor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fontColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LEVEL_FIELD_NUMBER = 3; + private long level_ = 0L; + /** + * int64 level = 3; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + + public static final int ALTERNATIVETEXT_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object alternativeText_ = ""; + /** + * string alternativeText = 4; + * @return The alternativeText. + */ + @java.lang.Override + public java.lang.String getAlternativeText() { + java.lang.Object ref = alternativeText_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + alternativeText_ = s; + return s; + } + } + /** + * string alternativeText = 4; + * @return The bytes for alternativeText. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAlternativeTextBytes() { + java.lang.Object ref = alternativeText_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + alternativeText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fontColor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fontColor_); + } + if (level_ != 0L) { + output.writeInt64(3, level_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alternativeText_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, alternativeText_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fontColor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fontColor_); + } + if (level_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, level_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alternativeText_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, alternativeText_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content) obj; + + if (!getName() + .equals(other.getName())) return false; + if (!getFontColor() + .equals(other.getFontColor())) return false; + if (getLevel() + != other.getLevel()) return false; + if (!getAlternativeText() + .equals(other.getAlternativeText())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + FONTCOLOR_FIELD_NUMBER; + hash = (53 * hash) + getFontColor().hashCode(); + hash = (37 * hash) + LEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLevel()); + hash = (37 * hash) + ALTERNATIVETEXT_FIELD_NUMBER; + hash = (53 * hash) + getAlternativeText().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Image.Content} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:Image.Content) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + fontColor_ = ""; + level_ = 0L; + alternativeText_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_Content_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.fontColor_ = fontColor_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.level_ = level_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.alternativeText_ = alternativeText_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getFontColor().isEmpty()) { + fontColor_ = other.fontColor_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getLevel() != 0L) { + setLevel(other.getLevel()); + } + if (!other.getAlternativeText().isEmpty()) { + alternativeText_ = other.alternativeText_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + fontColor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + level_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + alternativeText_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + * string name = 1; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 1; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 1; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string name = 1; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string name = 1; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object fontColor_ = ""; + /** + * string fontColor = 2; + * @return The fontColor. + */ + public java.lang.String getFontColor() { + java.lang.Object ref = fontColor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fontColor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string fontColor = 2; + * @return The bytes for fontColor. + */ + public com.google.protobuf.ByteString + getFontColorBytes() { + java.lang.Object ref = fontColor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fontColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string fontColor = 2; + * @param value The fontColor to set. + * @return This builder for chaining. + */ + public Builder setFontColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + fontColor_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string fontColor = 2; + * @return This builder for chaining. + */ + public Builder clearFontColor() { + fontColor_ = getDefaultInstance().getFontColor(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string fontColor = 2; + * @param value The bytes for fontColor to set. + * @return This builder for chaining. + */ + public Builder setFontColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + fontColor_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long level_ ; + /** + * int64 level = 3; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + /** + * int64 level = 3; + * @param value The level to set. + * @return This builder for chaining. + */ + public Builder setLevel(long value) { + + level_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 level = 3; + * @return This builder for chaining. + */ + public Builder clearLevel() { + bitField0_ = (bitField0_ & ~0x00000004); + level_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object alternativeText_ = ""; + /** + * string alternativeText = 4; + * @return The alternativeText. + */ + public java.lang.String getAlternativeText() { + java.lang.Object ref = alternativeText_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + alternativeText_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string alternativeText = 4; + * @return The bytes for alternativeText. + */ + public com.google.protobuf.ByteString + getAlternativeTextBytes() { + java.lang.Object ref = alternativeText_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + alternativeText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string alternativeText = 4; + * @param value The alternativeText to set. + * @return This builder for chaining. + */ + public Builder setAlternativeText( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + alternativeText_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string alternativeText = 4; + * @return This builder for chaining. + */ + public Builder clearAlternativeText() { + alternativeText_ = getDefaultInstance().getAlternativeText(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string alternativeText = 4; + * @param value The bytes for alternativeText to set. + * @return This builder for chaining. + */ + public Builder setAlternativeTextBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + alternativeText_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Image.Content) + } + + // @@protoc_insertion_point(class_scope:Image.Content) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Content parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface NinePatchSettingOrBuilder extends + // @@protoc_insertion_point(interface_extends:Image.NinePatchSetting) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code Image.NinePatchSetting} + */ + public static final class NinePatchSetting extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Image.NinePatchSetting) + NinePatchSettingOrBuilder { + private static final long serialVersionUID = 0L; + // Use NinePatchSetting.newBuilder() to construct. + private NinePatchSetting(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private NinePatchSetting() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new NinePatchSetting(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Image.NinePatchSetting} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:Image.NinePatchSetting) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_NinePatchSetting_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Image.NinePatchSetting) + } + + // @@protoc_insertion_point(class_scope:Image.NinePatchSetting) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public NinePatchSetting parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int URLLISTLIST_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList urlListList_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string urlListList = 1; + * @return A list containing the urlListList. + */ + public com.google.protobuf.ProtocolStringList + getUrlListListList() { + return urlListList_; + } + /** + * repeated string urlListList = 1; + * @return The count of urlListList. + */ + public int getUrlListListCount() { + return urlListList_.size(); + } + /** + * repeated string urlListList = 1; + * @param index The index of the element to return. + * @return The urlListList at the given index. + */ + public java.lang.String getUrlListList(int index) { + return urlListList_.get(index); + } + /** + * repeated string urlListList = 1; + * @param index The index of the value to return. + * @return The bytes of the urlListList at the given index. + */ + public com.google.protobuf.ByteString + getUrlListListBytes(int index) { + return urlListList_.getByteString(index); + } + + public static final int URI_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object uri_ = ""; + /** + * string uri = 2; + * @return The uri. + */ + @java.lang.Override + public java.lang.String getUri() { + java.lang.Object ref = uri_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + uri_ = s; + return s; + } + } + /** + * string uri = 2; + * @return The bytes for uri. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUriBytes() { + java.lang.Object ref = uri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + uri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HEIGHT_FIELD_NUMBER = 3; + private long height_ = 0L; + /** + * int64 height = 3; + * @return The height. + */ + @java.lang.Override + public long getHeight() { + return height_; + } + + public static final int WIDTH_FIELD_NUMBER = 4; + private long width_ = 0L; + /** + * int64 width = 4; + * @return The width. + */ + @java.lang.Override + public long getWidth() { + return width_; + } + + public static final int AVGCOLOR_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object avgColor_ = ""; + /** + * string avgColor = 5; + * @return The avgColor. + */ + @java.lang.Override + public java.lang.String getAvgColor() { + java.lang.Object ref = avgColor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + avgColor_ = s; + return s; + } + } + /** + * string avgColor = 5; + * @return The bytes for avgColor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAvgColorBytes() { + java.lang.Object ref = avgColor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + avgColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IMAGETYPE_FIELD_NUMBER = 6; + private int imageType_ = 0; + /** + * int32 imageType = 6; + * @return The imageType. + */ + @java.lang.Override + public int getImageType() { + return imageType_; + } + + public static final int OPENWEBURL_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object openWebUrl_ = ""; + /** + * string openWebUrl = 7; + * @return The openWebUrl. + */ + @java.lang.Override + public java.lang.String getOpenWebUrl() { + java.lang.Object ref = openWebUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + openWebUrl_ = s; + return s; + } + } + /** + * string openWebUrl = 7; + * @return The bytes for openWebUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getOpenWebUrlBytes() { + java.lang.Object ref = openWebUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + openWebUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 8; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content content_; + /** + * .Image.Content content = 8; + * @return Whether the content field is set. + */ + @java.lang.Override + public boolean hasContent() { + return content_ != null; + } + /** + * .Image.Content content = 8; + * @return The content. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent() { + return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; + } + /** + * .Image.Content content = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder() { + return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; + } + + public static final int ISANIMATED_FIELD_NUMBER = 9; + private boolean isAnimated_ = false; + /** + * bool isAnimated = 9; + * @return The isAnimated. + */ + @java.lang.Override + public boolean getIsAnimated() { + return isAnimated_; + } + + public static final int FLEXSETTINGLISTLIST_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private java.util.List flexSettingListList_; + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + @java.lang.Override + public java.util.List getFlexSettingListListList() { + return flexSettingListList_; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + @java.lang.Override + public java.util.List + getFlexSettingListListOrBuilderList() { + return flexSettingListList_; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + @java.lang.Override + public int getFlexSettingListListCount() { + return flexSettingListList_.size(); + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index) { + return flexSettingListList_.get(index); + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( + int index) { + return flexSettingListList_.get(index); + } + + public static final int TEXTSETTINGLISTLIST_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private java.util.List textSettingListList_; + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + @java.lang.Override + public java.util.List getTextSettingListListList() { + return textSettingListList_; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + @java.lang.Override + public java.util.List + getTextSettingListListOrBuilderList() { + return textSettingListList_; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + @java.lang.Override + public int getTextSettingListListCount() { + return textSettingListList_.size(); + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index) { + return textSettingListList_.get(index); + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( + int index) { + return textSettingListList_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < urlListList_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, urlListList_.getRaw(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uri_); + } + if (height_ != 0L) { + output.writeInt64(3, height_); + } + if (width_ != 0L) { + output.writeInt64(4, width_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avgColor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, avgColor_); + } + if (imageType_ != 0) { + output.writeInt32(6, imageType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openWebUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, openWebUrl_); + } + if (content_ != null) { + output.writeMessage(8, getContent()); + } + if (isAnimated_ != false) { + output.writeBool(9, isAnimated_); + } + for (int i = 0; i < flexSettingListList_.size(); i++) { + output.writeMessage(10, flexSettingListList_.get(i)); + } + for (int i = 0; i < textSettingListList_.size(); i++) { + output.writeMessage(11, textSettingListList_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < urlListList_.size(); i++) { + dataSize += computeStringSizeNoTag(urlListList_.getRaw(i)); + } + size += dataSize; + size += 1 * getUrlListListList().size(); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uri_); + } + if (height_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, height_); + } + if (width_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, width_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(avgColor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, avgColor_); + } + if (imageType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, imageType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(openWebUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, openWebUrl_); + } + if (content_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, getContent()); + } + if (isAnimated_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(9, isAnimated_); + } + for (int i = 0; i < flexSettingListList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, flexSettingListList_.get(i)); + } + for (int i = 0; i < textSettingListList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, textSettingListList_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image) obj; + + if (!getUrlListListList() + .equals(other.getUrlListListList())) return false; + if (!getUri() + .equals(other.getUri())) return false; + if (getHeight() + != other.getHeight()) return false; + if (getWidth() + != other.getWidth()) return false; + if (!getAvgColor() + .equals(other.getAvgColor())) return false; + if (getImageType() + != other.getImageType()) return false; + if (!getOpenWebUrl() + .equals(other.getOpenWebUrl())) return false; + if (hasContent() != other.hasContent()) return false; + if (hasContent()) { + if (!getContent() + .equals(other.getContent())) return false; + } + if (getIsAnimated() + != other.getIsAnimated()) return false; + if (!getFlexSettingListListList() + .equals(other.getFlexSettingListListList())) return false; + if (!getTextSettingListListList() + .equals(other.getTextSettingListListList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getUrlListListCount() > 0) { + hash = (37 * hash) + URLLISTLIST_FIELD_NUMBER; + hash = (53 * hash) + getUrlListListList().hashCode(); + } + hash = (37 * hash) + URI_FIELD_NUMBER; + hash = (53 * hash) + getUri().hashCode(); + hash = (37 * hash) + HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getHeight()); + hash = (37 * hash) + WIDTH_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getWidth()); + hash = (37 * hash) + AVGCOLOR_FIELD_NUMBER; + hash = (53 * hash) + getAvgColor().hashCode(); + hash = (37 * hash) + IMAGETYPE_FIELD_NUMBER; + hash = (53 * hash) + getImageType(); + hash = (37 * hash) + OPENWEBURL_FIELD_NUMBER; + hash = (53 * hash) + getOpenWebUrl().hashCode(); + if (hasContent()) { + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + } + hash = (37 * hash) + ISANIMATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsAnimated()); + if (getFlexSettingListListCount() > 0) { + hash = (37 * hash) + FLEXSETTINGLISTLIST_FIELD_NUMBER; + hash = (53 * hash) + getFlexSettingListListList().hashCode(); + } + if (getTextSettingListListCount() > 0) { + hash = (37 * hash) + TEXTSETTINGLISTLIST_FIELD_NUMBER; + hash = (53 * hash) + getTextSettingListListList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Image} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:Image) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + urlListList_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + uri_ = ""; + height_ = 0L; + width_ = 0L; + avgColor_ = ""; + imageType_ = 0; + openWebUrl_ = ""; + content_ = null; + if (contentBuilder_ != null) { + contentBuilder_.dispose(); + contentBuilder_ = null; + } + isAnimated_ = false; + if (flexSettingListListBuilder_ == null) { + flexSettingListList_ = java.util.Collections.emptyList(); + } else { + flexSettingListList_ = null; + flexSettingListListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000200); + if (textSettingListListBuilder_ == null) { + textSettingListList_ = java.util.Collections.emptyList(); + } else { + textSettingListList_ = null; + textSettingListListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000400); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.internal_static_Image_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result) { + if (flexSettingListListBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0)) { + flexSettingListList_ = java.util.Collections.unmodifiableList(flexSettingListList_); + bitField0_ = (bitField0_ & ~0x00000200); + } + result.flexSettingListList_ = flexSettingListList_; + } else { + result.flexSettingListList_ = flexSettingListListBuilder_.build(); + } + if (textSettingListListBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0)) { + textSettingListList_ = java.util.Collections.unmodifiableList(textSettingListList_); + bitField0_ = (bitField0_ & ~0x00000400); + } + result.textSettingListList_ = textSettingListList_; + } else { + result.textSettingListList_ = textSettingListListBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + urlListList_.makeImmutable(); + result.urlListList_ = urlListList_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.uri_ = uri_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.height_ = height_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.width_ = width_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.avgColor_ = avgColor_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.imageType_ = imageType_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.openWebUrl_ = openWebUrl_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.content_ = contentBuilder_ == null + ? content_ + : contentBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.isAnimated_ = isAnimated_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) return this; + if (!other.urlListList_.isEmpty()) { + if (urlListList_.isEmpty()) { + urlListList_ = other.urlListList_; + bitField0_ |= 0x00000001; + } else { + ensureUrlListListIsMutable(); + urlListList_.addAll(other.urlListList_); + } + onChanged(); + } + if (!other.getUri().isEmpty()) { + uri_ = other.uri_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getHeight() != 0L) { + setHeight(other.getHeight()); + } + if (other.getWidth() != 0L) { + setWidth(other.getWidth()); + } + if (!other.getAvgColor().isEmpty()) { + avgColor_ = other.avgColor_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.getImageType() != 0) { + setImageType(other.getImageType()); + } + if (!other.getOpenWebUrl().isEmpty()) { + openWebUrl_ = other.openWebUrl_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (other.hasContent()) { + mergeContent(other.getContent()); + } + if (other.getIsAnimated() != false) { + setIsAnimated(other.getIsAnimated()); + } + if (flexSettingListListBuilder_ == null) { + if (!other.flexSettingListList_.isEmpty()) { + if (flexSettingListList_.isEmpty()) { + flexSettingListList_ = other.flexSettingListList_; + bitField0_ = (bitField0_ & ~0x00000200); + } else { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.addAll(other.flexSettingListList_); + } + onChanged(); + } + } else { + if (!other.flexSettingListList_.isEmpty()) { + if (flexSettingListListBuilder_.isEmpty()) { + flexSettingListListBuilder_.dispose(); + flexSettingListListBuilder_ = null; + flexSettingListList_ = other.flexSettingListList_; + bitField0_ = (bitField0_ & ~0x00000200); + flexSettingListListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getFlexSettingListListFieldBuilder() : null; + } else { + flexSettingListListBuilder_.addAllMessages(other.flexSettingListList_); + } + } + } + if (textSettingListListBuilder_ == null) { + if (!other.textSettingListList_.isEmpty()) { + if (textSettingListList_.isEmpty()) { + textSettingListList_ = other.textSettingListList_; + bitField0_ = (bitField0_ & ~0x00000400); + } else { + ensureTextSettingListListIsMutable(); + textSettingListList_.addAll(other.textSettingListList_); + } + onChanged(); + } + } else { + if (!other.textSettingListList_.isEmpty()) { + if (textSettingListListBuilder_.isEmpty()) { + textSettingListListBuilder_.dispose(); + textSettingListListBuilder_ = null; + textSettingListList_ = other.textSettingListList_; + bitField0_ = (bitField0_ & ~0x00000400); + textSettingListListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getTextSettingListListFieldBuilder() : null; + } else { + textSettingListListBuilder_.addAllMessages(other.textSettingListList_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + ensureUrlListListIsMutable(); + urlListList_.add(s); + break; + } // case 10 + case 18: { + uri_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + height_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + width_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + avgColor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + imageType_ = input.readInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + openWebUrl_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + input.readMessage( + getContentFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 72: { + isAnimated_ = input.readBool(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 82: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.parser(), + extensionRegistry); + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.add(m); + } else { + flexSettingListListBuilder_.addMessage(m); + } + break; + } // case 82 + case 90: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.parser(), + extensionRegistry); + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + textSettingListList_.add(m); + } else { + textSettingListListBuilder_.addMessage(m); + } + break; + } // case 90 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList urlListList_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureUrlListListIsMutable() { + if (!urlListList_.isModifiable()) { + urlListList_ = new com.google.protobuf.LazyStringArrayList(urlListList_); + } + bitField0_ |= 0x00000001; + } + /** + * repeated string urlListList = 1; + * @return A list containing the urlListList. + */ + public com.google.protobuf.ProtocolStringList + getUrlListListList() { + urlListList_.makeImmutable(); + return urlListList_; + } + /** + * repeated string urlListList = 1; + * @return The count of urlListList. + */ + public int getUrlListListCount() { + return urlListList_.size(); + } + /** + * repeated string urlListList = 1; + * @param index The index of the element to return. + * @return The urlListList at the given index. + */ + public java.lang.String getUrlListList(int index) { + return urlListList_.get(index); + } + /** + * repeated string urlListList = 1; + * @param index The index of the value to return. + * @return The bytes of the urlListList at the given index. + */ + public com.google.protobuf.ByteString + getUrlListListBytes(int index) { + return urlListList_.getByteString(index); + } + /** + * repeated string urlListList = 1; + * @param index The index to set the value at. + * @param value The urlListList to set. + * @return This builder for chaining. + */ + public Builder setUrlListList( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureUrlListListIsMutable(); + urlListList_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string urlListList = 1; + * @param value The urlListList to add. + * @return This builder for chaining. + */ + public Builder addUrlListList( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureUrlListListIsMutable(); + urlListList_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string urlListList = 1; + * @param values The urlListList to add. + * @return This builder for chaining. + */ + public Builder addAllUrlListList( + java.lang.Iterable values) { + ensureUrlListListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, urlListList_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string urlListList = 1; + * @return This builder for chaining. + */ + public Builder clearUrlListList() { + urlListList_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001);; + onChanged(); + return this; + } + /** + * repeated string urlListList = 1; + * @param value The bytes of the urlListList to add. + * @return This builder for chaining. + */ + public Builder addUrlListListBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureUrlListListIsMutable(); + urlListList_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object uri_ = ""; + /** + * string uri = 2; + * @return The uri. + */ + public java.lang.String getUri() { + java.lang.Object ref = uri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + uri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string uri = 2; + * @return The bytes for uri. + */ + public com.google.protobuf.ByteString + getUriBytes() { + java.lang.Object ref = uri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + uri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string uri = 2; + * @param value The uri to set. + * @return This builder for chaining. + */ + public Builder setUri( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + uri_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string uri = 2; + * @return This builder for chaining. + */ + public Builder clearUri() { + uri_ = getDefaultInstance().getUri(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string uri = 2; + * @param value The bytes for uri to set. + * @return This builder for chaining. + */ + public Builder setUriBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + uri_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long height_ ; + /** + * int64 height = 3; + * @return The height. + */ + @java.lang.Override + public long getHeight() { + return height_; + } + /** + * int64 height = 3; + * @param value The height to set. + * @return This builder for chaining. + */ + public Builder setHeight(long value) { + + height_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 height = 3; + * @return This builder for chaining. + */ + public Builder clearHeight() { + bitField0_ = (bitField0_ & ~0x00000004); + height_ = 0L; + onChanged(); + return this; + } + + private long width_ ; + /** + * int64 width = 4; + * @return The width. + */ + @java.lang.Override + public long getWidth() { + return width_; + } + /** + * int64 width = 4; + * @param value The width to set. + * @return This builder for chaining. + */ + public Builder setWidth(long value) { + + width_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int64 width = 4; + * @return This builder for chaining. + */ + public Builder clearWidth() { + bitField0_ = (bitField0_ & ~0x00000008); + width_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object avgColor_ = ""; + /** + * string avgColor = 5; + * @return The avgColor. + */ + public java.lang.String getAvgColor() { + java.lang.Object ref = avgColor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + avgColor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string avgColor = 5; + * @return The bytes for avgColor. + */ + public com.google.protobuf.ByteString + getAvgColorBytes() { + java.lang.Object ref = avgColor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + avgColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string avgColor = 5; + * @param value The avgColor to set. + * @return This builder for chaining. + */ + public Builder setAvgColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + avgColor_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string avgColor = 5; + * @return This builder for chaining. + */ + public Builder clearAvgColor() { + avgColor_ = getDefaultInstance().getAvgColor(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string avgColor = 5; + * @param value The bytes for avgColor to set. + * @return This builder for chaining. + */ + public Builder setAvgColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + avgColor_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private int imageType_ ; + /** + * int32 imageType = 6; + * @return The imageType. + */ + @java.lang.Override + public int getImageType() { + return imageType_; + } + /** + * int32 imageType = 6; + * @param value The imageType to set. + * @return This builder for chaining. + */ + public Builder setImageType(int value) { + + imageType_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * int32 imageType = 6; + * @return This builder for chaining. + */ + public Builder clearImageType() { + bitField0_ = (bitField0_ & ~0x00000020); + imageType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object openWebUrl_ = ""; + /** + * string openWebUrl = 7; + * @return The openWebUrl. + */ + public java.lang.String getOpenWebUrl() { + java.lang.Object ref = openWebUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + openWebUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string openWebUrl = 7; + * @return The bytes for openWebUrl. + */ + public com.google.protobuf.ByteString + getOpenWebUrlBytes() { + java.lang.Object ref = openWebUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + openWebUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string openWebUrl = 7; + * @param value The openWebUrl to set. + * @return This builder for chaining. + */ + public Builder setOpenWebUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + openWebUrl_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string openWebUrl = 7; + * @return This builder for chaining. + */ + public Builder clearOpenWebUrl() { + openWebUrl_ = getDefaultInstance().getOpenWebUrl(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string openWebUrl = 7; + * @param value The bytes for openWebUrl to set. + * @return This builder for chaining. + */ + public Builder setOpenWebUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + openWebUrl_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content content_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder> contentBuilder_; + /** + * .Image.Content content = 8; + * @return Whether the content field is set. + */ + public boolean hasContent() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + * .Image.Content content = 8; + * @return The content. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content getContent() { + if (contentBuilder_ == null) { + return content_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; + } else { + return contentBuilder_.getMessage(); + } + } + /** + * .Image.Content content = 8; + */ + public Builder setContent(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content value) { + if (contentBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + content_ = value; + } else { + contentBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .Image.Content content = 8; + */ + public Builder setContent( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder builderForValue) { + if (contentBuilder_ == null) { + content_ = builderForValue.build(); + } else { + contentBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .Image.Content content = 8; + */ + public Builder mergeContent(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content value) { + if (contentBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + content_ != null && + content_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance()) { + getContentBuilder().mergeFrom(value); + } else { + content_ = value; + } + } else { + contentBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .Image.Content content = 8; + */ + public Builder clearContent() { + bitField0_ = (bitField0_ & ~0x00000080); + content_ = null; + if (contentBuilder_ != null) { + contentBuilder_.dispose(); + contentBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image.Content content = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder getContentBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getContentFieldBuilder().getBuilder(); + } + /** + * .Image.Content content = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder getContentOrBuilder() { + if (contentBuilder_ != null) { + return contentBuilder_.getMessageOrBuilder(); + } else { + return content_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.getDefaultInstance() : content_; + } + } + /** + * .Image.Content content = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder> + getContentFieldBuilder() { + if (contentBuilder_ == null) { + contentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Content.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.ContentOrBuilder>( + getContent(), + getParentForChildren(), + isClean()); + content_ = null; + } + return contentBuilder_; + } + + private boolean isAnimated_ ; + /** + * bool isAnimated = 9; + * @return The isAnimated. + */ + @java.lang.Override + public boolean getIsAnimated() { + return isAnimated_; + } + /** + * bool isAnimated = 9; + * @param value The isAnimated to set. + * @return This builder for chaining. + */ + public Builder setIsAnimated(boolean value) { + + isAnimated_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * bool isAnimated = 9; + * @return This builder for chaining. + */ + public Builder clearIsAnimated() { + bitField0_ = (bitField0_ & ~0x00000100); + isAnimated_ = false; + onChanged(); + return this; + } + + private java.util.List flexSettingListList_ = + java.util.Collections.emptyList(); + private void ensureFlexSettingListListIsMutable() { + if (!((bitField0_ & 0x00000200) != 0)) { + flexSettingListList_ = new java.util.ArrayList(flexSettingListList_); + bitField0_ |= 0x00000200; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> flexSettingListListBuilder_; + + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public java.util.List getFlexSettingListListList() { + if (flexSettingListListBuilder_ == null) { + return java.util.Collections.unmodifiableList(flexSettingListList_); + } else { + return flexSettingListListBuilder_.getMessageList(); + } + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public int getFlexSettingListListCount() { + if (flexSettingListListBuilder_ == null) { + return flexSettingListList_.size(); + } else { + return flexSettingListListBuilder_.getCount(); + } + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getFlexSettingListList(int index) { + if (flexSettingListListBuilder_ == null) { + return flexSettingListList_.get(index); + } else { + return flexSettingListListBuilder_.getMessage(index); + } + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder setFlexSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (flexSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFlexSettingListListIsMutable(); + flexSettingListList_.set(index, value); + onChanged(); + } else { + flexSettingListListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder setFlexSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.set(index, builderForValue.build()); + onChanged(); + } else { + flexSettingListListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder addFlexSettingListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (flexSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFlexSettingListListIsMutable(); + flexSettingListList_.add(value); + onChanged(); + } else { + flexSettingListListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder addFlexSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (flexSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFlexSettingListListIsMutable(); + flexSettingListList_.add(index, value); + onChanged(); + } else { + flexSettingListListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder addFlexSettingListList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.add(builderForValue.build()); + onChanged(); + } else { + flexSettingListListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder addFlexSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.add(index, builderForValue.build()); + onChanged(); + } else { + flexSettingListListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder addAllFlexSettingListList( + java.lang.Iterable values) { + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, flexSettingListList_); + onChanged(); + } else { + flexSettingListListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder clearFlexSettingListList() { + if (flexSettingListListBuilder_ == null) { + flexSettingListList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + } else { + flexSettingListListBuilder_.clear(); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public Builder removeFlexSettingListList(int index) { + if (flexSettingListListBuilder_ == null) { + ensureFlexSettingListListIsMutable(); + flexSettingListList_.remove(index); + onChanged(); + } else { + flexSettingListListBuilder_.remove(index); + } + return this; + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder getFlexSettingListListBuilder( + int index) { + return getFlexSettingListListFieldBuilder().getBuilder(index); + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getFlexSettingListListOrBuilder( + int index) { + if (flexSettingListListBuilder_ == null) { + return flexSettingListList_.get(index); } else { + return flexSettingListListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public java.util.List + getFlexSettingListListOrBuilderList() { + if (flexSettingListListBuilder_ != null) { + return flexSettingListListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(flexSettingListList_); + } + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addFlexSettingListListBuilder() { + return getFlexSettingListListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addFlexSettingListListBuilder( + int index) { + return getFlexSettingListListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); + } + /** + * repeated .Image.NinePatchSetting flexSettingListList = 10; + */ + public java.util.List + getFlexSettingListListBuilderList() { + return getFlexSettingListListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> + getFlexSettingListListFieldBuilder() { + if (flexSettingListListBuilder_ == null) { + flexSettingListListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder>( + flexSettingListList_, + ((bitField0_ & 0x00000200) != 0), + getParentForChildren(), + isClean()); + flexSettingListList_ = null; + } + return flexSettingListListBuilder_; + } + + private java.util.List textSettingListList_ = + java.util.Collections.emptyList(); + private void ensureTextSettingListListIsMutable() { + if (!((bitField0_ & 0x00000400) != 0)) { + textSettingListList_ = new java.util.ArrayList(textSettingListList_); + bitField0_ |= 0x00000400; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> textSettingListListBuilder_; + + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public java.util.List getTextSettingListListList() { + if (textSettingListListBuilder_ == null) { + return java.util.Collections.unmodifiableList(textSettingListList_); + } else { + return textSettingListListBuilder_.getMessageList(); + } + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public int getTextSettingListListCount() { + if (textSettingListListBuilder_ == null) { + return textSettingListList_.size(); + } else { + return textSettingListListBuilder_.getCount(); + } + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting getTextSettingListList(int index) { + if (textSettingListListBuilder_ == null) { + return textSettingListList_.get(index); + } else { + return textSettingListListBuilder_.getMessage(index); + } + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder setTextSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (textSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTextSettingListListIsMutable(); + textSettingListList_.set(index, value); + onChanged(); + } else { + textSettingListListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder setTextSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + textSettingListList_.set(index, builderForValue.build()); + onChanged(); + } else { + textSettingListListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder addTextSettingListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (textSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTextSettingListListIsMutable(); + textSettingListList_.add(value); + onChanged(); + } else { + textSettingListListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder addTextSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting value) { + if (textSettingListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTextSettingListListIsMutable(); + textSettingListList_.add(index, value); + onChanged(); + } else { + textSettingListListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder addTextSettingListList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + textSettingListList_.add(builderForValue.build()); + onChanged(); + } else { + textSettingListListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder addTextSettingListList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder builderForValue) { + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + textSettingListList_.add(index, builderForValue.build()); + onChanged(); + } else { + textSettingListListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder addAllTextSettingListList( + java.lang.Iterable values) { + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, textSettingListList_); + onChanged(); + } else { + textSettingListListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder clearTextSettingListList() { + if (textSettingListListBuilder_ == null) { + textSettingListList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + } else { + textSettingListListBuilder_.clear(); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public Builder removeTextSettingListList(int index) { + if (textSettingListListBuilder_ == null) { + ensureTextSettingListListIsMutable(); + textSettingListList_.remove(index); + onChanged(); + } else { + textSettingListListBuilder_.remove(index); + } + return this; + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder getTextSettingListListBuilder( + int index) { + return getTextSettingListListFieldBuilder().getBuilder(index); + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder getTextSettingListListOrBuilder( + int index) { + if (textSettingListListBuilder_ == null) { + return textSettingListList_.get(index); } else { + return textSettingListListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public java.util.List + getTextSettingListListOrBuilderList() { + if (textSettingListListBuilder_ != null) { + return textSettingListListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(textSettingListList_); + } + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addTextSettingListListBuilder() { + return getTextSettingListListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder addTextSettingListListBuilder( + int index) { + return getTextSettingListListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.getDefaultInstance()); + } + /** + * repeated .Image.NinePatchSetting textSettingListList = 11; + */ + public java.util.List + getTextSettingListListBuilderList() { + return getTextSettingListListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder> + getTextSettingListListFieldBuilder() { + if (textSettingListListBuilder_ == null) { + textSettingListListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSetting.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.NinePatchSettingOrBuilder>( + textSettingListList_, + ((bitField0_ & 0x00000400) != 0), + getParentForChildren(), + isClean()); + textSettingListList_ = null; + } + return textSettingListListBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Image) + } + + // @@protoc_insertion_point(class_scope:Image) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Image parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Image_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Image_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Image_Content_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Image_Content_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Image_NinePatchSetting_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Image_NinePatchSetting_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\013Image.proto\"\212\003\n\005Image\022\023\n\013urlListList\030\001" + + " \003(\t\022\013\n\003uri\030\002 \001(\t\022\016\n\006height\030\003 \001(\003\022\r\n\005wid" + + "th\030\004 \001(\003\022\020\n\010avgColor\030\005 \001(\t\022\021\n\timageType\030" + + "\006 \001(\005\022\022\n\nopenWebUrl\030\007 \001(\t\022\037\n\007content\030\010 \001" + + "(\0132\016.Image.Content\022\022\n\nisAnimated\030\t \001(\010\0224" + + "\n\023flexSettingListList\030\n \003(\0132\027.Image.Nine" + + "PatchSetting\0224\n\023textSettingListList\030\013 \003(" + + "\0132\027.Image.NinePatchSetting\032R\n\007Content\022\014\n" + + "\004name\030\001 \001(\t\022\021\n\tfontColor\030\002 \001(\t\022\r\n\005level\030" + + "\003 \001(\003\022\027\n\017alternativeText\030\004 \001(\t\032\022\n\020NinePa" + + "tchSettingB8\n6tech.ordinaryroad.live.cha" + + "t.client.douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_Image_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Image_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Image_descriptor, + new java.lang.String[] { "UrlListList", "Uri", "Height", "Width", "AvgColor", "ImageType", "OpenWebUrl", "Content", "IsAnimated", "FlexSettingListList", "TextSettingListList", }); + internal_static_Image_Content_descriptor = + internal_static_Image_descriptor.getNestedTypes().get(0); + internal_static_Image_Content_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Image_Content_descriptor, + new java.lang.String[] { "Name", "FontColor", "Level", "AlternativeText", }); + internal_static_Image_NinePatchSetting_descriptor = + internal_static_Image_descriptor.getNestedTypes().get(1); + internal_static_Image_NinePatchSetting_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Image_NinePatchSetting_descriptor, + new java.lang.String[] { }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java new file mode 100644 index 00000000..378b1fcd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PatternRefOuterClass.java @@ -0,0 +1,773 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PatternRef.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class PatternRefOuterClass { + private PatternRefOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface PatternRefOrBuilder extends + // @@protoc_insertion_point(interface_extends:PatternRef) + com.google.protobuf.MessageOrBuilder { + + /** + * string key = 1; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + java.lang.String getDefaultPattern(); + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + com.google.protobuf.ByteString + getDefaultPatternBytes(); + } + /** + * Protobuf type {@code PatternRef} + */ + public static final class PatternRef extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:PatternRef) + PatternRefOrBuilder { + private static final long serialVersionUID = 0L; + // Use PatternRef.newBuilder() to construct. + private PatternRef(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PatternRef() { + key_ = ""; + defaultPattern_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PatternRef(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEFAULT_PATTERN_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object defaultPattern_ = ""; + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + @java.lang.Override + public java.lang.String getDefaultPattern() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPattern_ = s; + return s; + } + } + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDefaultPatternBytes() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPattern_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPattern_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (!getDefaultPattern() + .equals(other.getDefaultPattern())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + DEFAULT_PATTERN_FIELD_NUMBER; + hash = (53 * hash) + getDefaultPattern().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code PatternRef} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:PatternRef) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + key_ = ""; + defaultPattern_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.internal_static_PatternRef_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.key_ = key_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.defaultPattern_ = defaultPattern_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDefaultPattern().isEmpty()) { + defaultPattern_ = other.defaultPattern_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + key_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + defaultPattern_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string key = 1; + * @return This builder for chaining. + */ + public Builder clearKey() { + key_ = getDefaultInstance().getKey(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object defaultPattern_ = ""; + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + public java.lang.String getDefaultPattern() { + java.lang.Object ref = defaultPattern_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPattern_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + public com.google.protobuf.ByteString + getDefaultPatternBytes() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string default_pattern = 2; + * @param value The defaultPattern to set. + * @return This builder for chaining. + */ + public Builder setDefaultPattern( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + defaultPattern_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string default_pattern = 2; + * @return This builder for chaining. + */ + public Builder clearDefaultPattern() { + defaultPattern_ = getDefaultInstance().getDefaultPattern(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string default_pattern = 2; + * @param value The bytes for defaultPattern to set. + * @return This builder for chaining. + */ + public Builder setDefaultPatternBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + defaultPattern_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:PatternRef) + } + + // @@protoc_insertion_point(class_scope:PatternRef) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PatternRef parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_PatternRef_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_PatternRef_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020PatternRef.proto\"2\n\nPatternRef\022\013\n\003key\030" + + "\001 \001(\t\022\027\n\017default_pattern\030\002 \001(\tB8\n6tech.o" + + "rdinaryroad.live.chat.client.douyin.prot" + + "obuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_PatternRef_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_PatternRef_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_PatternRef_descriptor, + new java.lang.String[] { "Key", "DefaultPattern", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java new file mode 100644 index 00000000..6585a114 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/PublicAreaCommonOuterClass.java @@ -0,0 +1,823 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PublicAreaCommon.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class PublicAreaCommonOuterClass { + private PublicAreaCommonOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface PublicAreaCommonOrBuilder extends + // @@protoc_insertion_point(interface_extends:PublicAreaCommon) + com.google.protobuf.MessageOrBuilder { + + /** + * .Image user_label = 1; + * @return Whether the userLabel field is set. + */ + boolean hasUserLabel(); + /** + * .Image user_label = 1; + * @return The userLabel. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel(); + /** + * .Image user_label = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder(); + + /** + * uint64 user_consume_in_room = 2; + * @return The userConsumeInRoom. + */ + long getUserConsumeInRoom(); + + /** + * uint64 user_send_gift_cnt_in_room = 3; + * @return The userSendGiftCntInRoom. + */ + long getUserSendGiftCntInRoom(); + } + /** + * Protobuf type {@code PublicAreaCommon} + */ + public static final class PublicAreaCommon extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:PublicAreaCommon) + PublicAreaCommonOrBuilder { + private static final long serialVersionUID = 0L; + // Use PublicAreaCommon.newBuilder() to construct. + private PublicAreaCommon(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PublicAreaCommon() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PublicAreaCommon(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder.class); + } + + public static final int USER_LABEL_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image userLabel_; + /** + * .Image user_label = 1; + * @return Whether the userLabel field is set. + */ + @java.lang.Override + public boolean hasUserLabel() { + return userLabel_ != null; + } + /** + * .Image user_label = 1; + * @return The userLabel. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel() { + return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; + } + /** + * .Image user_label = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder() { + return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; + } + + public static final int USER_CONSUME_IN_ROOM_FIELD_NUMBER = 2; + private long userConsumeInRoom_ = 0L; + /** + * uint64 user_consume_in_room = 2; + * @return The userConsumeInRoom. + */ + @java.lang.Override + public long getUserConsumeInRoom() { + return userConsumeInRoom_; + } + + public static final int USER_SEND_GIFT_CNT_IN_ROOM_FIELD_NUMBER = 3; + private long userSendGiftCntInRoom_ = 0L; + /** + * uint64 user_send_gift_cnt_in_room = 3; + * @return The userSendGiftCntInRoom. + */ + @java.lang.Override + public long getUserSendGiftCntInRoom() { + return userSendGiftCntInRoom_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (userLabel_ != null) { + output.writeMessage(1, getUserLabel()); + } + if (userConsumeInRoom_ != 0L) { + output.writeUInt64(2, userConsumeInRoom_); + } + if (userSendGiftCntInRoom_ != 0L) { + output.writeUInt64(3, userSendGiftCntInRoom_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (userLabel_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getUserLabel()); + } + if (userConsumeInRoom_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, userConsumeInRoom_); + } + if (userSendGiftCntInRoom_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, userSendGiftCntInRoom_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon) obj; + + if (hasUserLabel() != other.hasUserLabel()) return false; + if (hasUserLabel()) { + if (!getUserLabel() + .equals(other.getUserLabel())) return false; + } + if (getUserConsumeInRoom() + != other.getUserConsumeInRoom()) return false; + if (getUserSendGiftCntInRoom() + != other.getUserSendGiftCntInRoom()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasUserLabel()) { + hash = (37 * hash) + USER_LABEL_FIELD_NUMBER; + hash = (53 * hash) + getUserLabel().hashCode(); + } + hash = (37 * hash) + USER_CONSUME_IN_ROOM_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserConsumeInRoom()); + hash = (37 * hash) + USER_SEND_GIFT_CNT_IN_ROOM_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserSendGiftCntInRoom()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code PublicAreaCommon} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:PublicAreaCommon) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + userLabel_ = null; + if (userLabelBuilder_ != null) { + userLabelBuilder_.dispose(); + userLabelBuilder_ = null; + } + userConsumeInRoom_ = 0L; + userSendGiftCntInRoom_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.internal_static_PublicAreaCommon_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.userLabel_ = userLabelBuilder_ == null + ? userLabel_ + : userLabelBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.userConsumeInRoom_ = userConsumeInRoom_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.userSendGiftCntInRoom_ = userSendGiftCntInRoom_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon.getDefaultInstance()) return this; + if (other.hasUserLabel()) { + mergeUserLabel(other.getUserLabel()); + } + if (other.getUserConsumeInRoom() != 0L) { + setUserConsumeInRoom(other.getUserConsumeInRoom()); + } + if (other.getUserSendGiftCntInRoom() != 0L) { + setUserSendGiftCntInRoom(other.getUserSendGiftCntInRoom()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getUserLabelFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + userConsumeInRoom_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + userSendGiftCntInRoom_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image userLabel_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> userLabelBuilder_; + /** + * .Image user_label = 1; + * @return Whether the userLabel field is set. + */ + public boolean hasUserLabel() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Image user_label = 1; + * @return The userLabel. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getUserLabel() { + if (userLabelBuilder_ == null) { + return userLabel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; + } else { + return userLabelBuilder_.getMessage(); + } + } + /** + * .Image user_label = 1; + */ + public Builder setUserLabel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (userLabelBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + userLabel_ = value; + } else { + userLabelBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image user_label = 1; + */ + public Builder setUserLabel( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (userLabelBuilder_ == null) { + userLabel_ = builderForValue.build(); + } else { + userLabelBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image user_label = 1; + */ + public Builder mergeUserLabel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (userLabelBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + userLabel_ != null && + userLabel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getUserLabelBuilder().mergeFrom(value); + } else { + userLabel_ = value; + } + } else { + userLabelBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image user_label = 1; + */ + public Builder clearUserLabel() { + bitField0_ = (bitField0_ & ~0x00000001); + userLabel_ = null; + if (userLabelBuilder_ != null) { + userLabelBuilder_.dispose(); + userLabelBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image user_label = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getUserLabelBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getUserLabelFieldBuilder().getBuilder(); + } + /** + * .Image user_label = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getUserLabelOrBuilder() { + if (userLabelBuilder_ != null) { + return userLabelBuilder_.getMessageOrBuilder(); + } else { + return userLabel_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : userLabel_; + } + } + /** + * .Image user_label = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getUserLabelFieldBuilder() { + if (userLabelBuilder_ == null) { + userLabelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getUserLabel(), + getParentForChildren(), + isClean()); + userLabel_ = null; + } + return userLabelBuilder_; + } + + private long userConsumeInRoom_ ; + /** + * uint64 user_consume_in_room = 2; + * @return The userConsumeInRoom. + */ + @java.lang.Override + public long getUserConsumeInRoom() { + return userConsumeInRoom_; + } + /** + * uint64 user_consume_in_room = 2; + * @param value The userConsumeInRoom to set. + * @return This builder for chaining. + */ + public Builder setUserConsumeInRoom(long value) { + + userConsumeInRoom_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 user_consume_in_room = 2; + * @return This builder for chaining. + */ + public Builder clearUserConsumeInRoom() { + bitField0_ = (bitField0_ & ~0x00000002); + userConsumeInRoom_ = 0L; + onChanged(); + return this; + } + + private long userSendGiftCntInRoom_ ; + /** + * uint64 user_send_gift_cnt_in_room = 3; + * @return The userSendGiftCntInRoom. + */ + @java.lang.Override + public long getUserSendGiftCntInRoom() { + return userSendGiftCntInRoom_; + } + /** + * uint64 user_send_gift_cnt_in_room = 3; + * @param value The userSendGiftCntInRoom to set. + * @return This builder for chaining. + */ + public Builder setUserSendGiftCntInRoom(long value) { + + userSendGiftCntInRoom_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 user_send_gift_cnt_in_room = 3; + * @return This builder for chaining. + */ + public Builder clearUserSendGiftCntInRoom() { + bitField0_ = (bitField0_ & ~0x00000004); + userSendGiftCntInRoom_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:PublicAreaCommon) + } + + // @@protoc_insertion_point(class_scope:PublicAreaCommon) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PublicAreaCommon parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PublicAreaCommonOuterClass.PublicAreaCommon getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_PublicAreaCommon_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_PublicAreaCommon_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026PublicAreaCommon.proto\032\013Image.proto\"p\n" + + "\020PublicAreaCommon\022\032\n\nuser_label\030\001 \001(\0132\006." + + "Image\022\034\n\024user_consume_in_room\030\002 \001(\004\022\"\n\032u" + + "ser_send_gift_cnt_in_room\030\003 \001(\004B8\n6tech." + + "ordinaryroad.live.chat.client.douyin.pro" + + "tobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + }); + internal_static_PublicAreaCommon_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_PublicAreaCommon_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_PublicAreaCommon_descriptor, + new java.lang.String[] { "UserLabel", "UserConsumeInRoom", "UserSendGiftCntInRoom", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java new file mode 100644 index 00000000..9e29e90a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectDetailOuterClass.java @@ -0,0 +1,1968 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextEffectDetail.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextEffectDetailOuterClass { + private TextEffectDetailOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextEffectDetailOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextEffectDetail) + com.google.protobuf.MessageOrBuilder { + + /** + * .Text text = 1; + * @return Whether the text field is set. + */ + boolean hasText(); + /** + * .Text text = 1; + * @return The text. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText(); + /** + * .Text text = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder(); + + /** + * uint32 text_font_size = 2; + * @return The textFontSize. + */ + int getTextFontSize(); + + /** + * .Image background = 3; + * @return Whether the background field is set. + */ + boolean hasBackground(); + /** + * .Image background = 3; + * @return The background. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground(); + /** + * .Image background = 3; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder(); + + /** + * uint32 start = 4; + * @return The start. + */ + int getStart(); + + /** + * uint32 duration = 5; + * @return The duration. + */ + int getDuration(); + + /** + * uint32 x = 6; + * @return The x. + */ + int getX(); + + /** + * uint32 y = 7; + * @return The y. + */ + int getY(); + + /** + * uint32 width = 8; + * @return The width. + */ + int getWidth(); + + /** + * uint32 height = 9; + * @return The height. + */ + int getHeight(); + + /** + * uint32 shadow_dx = 10; + * @return The shadowDx. + */ + int getShadowDx(); + + /** + * uint32 shadow_dy = 11; + * @return The shadowDy. + */ + int getShadowDy(); + + /** + * uint32 shadow_radius = 12; + * @return The shadowRadius. + */ + int getShadowRadius(); + + /** + * string shadow_color = 13; + * @return The shadowColor. + */ + java.lang.String getShadowColor(); + /** + * string shadow_color = 13; + * @return The bytes for shadowColor. + */ + com.google.protobuf.ByteString + getShadowColorBytes(); + + /** + * string stroke_color = 14; + * @return The strokeColor. + */ + java.lang.String getStrokeColor(); + /** + * string stroke_color = 14; + * @return The bytes for strokeColor. + */ + com.google.protobuf.ByteString + getStrokeColorBytes(); + + /** + * uint32 stroke_width = 15; + * @return The strokeWidth. + */ + int getStrokeWidth(); + } + /** + * Protobuf type {@code TextEffectDetail} + */ + public static final class TextEffectDetail extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextEffectDetail) + TextEffectDetailOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextEffectDetail.newBuilder() to construct. + private TextEffectDetail(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextEffectDetail() { + shadowColor_ = ""; + strokeColor_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextEffectDetail(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder.class); + } + + public static final int TEXT_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text text_; + /** + * .Text text = 1; + * @return Whether the text field is set. + */ + @java.lang.Override + public boolean hasText() { + return text_ != null; + } + /** + * .Text text = 1; + * @return The text. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText() { + return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; + } + /** + * .Text text = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder() { + return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; + } + + public static final int TEXT_FONT_SIZE_FIELD_NUMBER = 2; + private int textFontSize_ = 0; + /** + * uint32 text_font_size = 2; + * @return The textFontSize. + */ + @java.lang.Override + public int getTextFontSize() { + return textFontSize_; + } + + public static final int BACKGROUND_FIELD_NUMBER = 3; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; + /** + * .Image background = 3; + * @return Whether the background field is set. + */ + @java.lang.Override + public boolean hasBackground() { + return background_ != null; + } + /** + * .Image background = 3; + * @return The background. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + /** + * .Image background = 3; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + + public static final int START_FIELD_NUMBER = 4; + private int start_ = 0; + /** + * uint32 start = 4; + * @return The start. + */ + @java.lang.Override + public int getStart() { + return start_; + } + + public static final int DURATION_FIELD_NUMBER = 5; + private int duration_ = 0; + /** + * uint32 duration = 5; + * @return The duration. + */ + @java.lang.Override + public int getDuration() { + return duration_; + } + + public static final int X_FIELD_NUMBER = 6; + private int x_ = 0; + /** + * uint32 x = 6; + * @return The x. + */ + @java.lang.Override + public int getX() { + return x_; + } + + public static final int Y_FIELD_NUMBER = 7; + private int y_ = 0; + /** + * uint32 y = 7; + * @return The y. + */ + @java.lang.Override + public int getY() { + return y_; + } + + public static final int WIDTH_FIELD_NUMBER = 8; + private int width_ = 0; + /** + * uint32 width = 8; + * @return The width. + */ + @java.lang.Override + public int getWidth() { + return width_; + } + + public static final int HEIGHT_FIELD_NUMBER = 9; + private int height_ = 0; + /** + * uint32 height = 9; + * @return The height. + */ + @java.lang.Override + public int getHeight() { + return height_; + } + + public static final int SHADOW_DX_FIELD_NUMBER = 10; + private int shadowDx_ = 0; + /** + * uint32 shadow_dx = 10; + * @return The shadowDx. + */ + @java.lang.Override + public int getShadowDx() { + return shadowDx_; + } + + public static final int SHADOW_DY_FIELD_NUMBER = 11; + private int shadowDy_ = 0; + /** + * uint32 shadow_dy = 11; + * @return The shadowDy. + */ + @java.lang.Override + public int getShadowDy() { + return shadowDy_; + } + + public static final int SHADOW_RADIUS_FIELD_NUMBER = 12; + private int shadowRadius_ = 0; + /** + * uint32 shadow_radius = 12; + * @return The shadowRadius. + */ + @java.lang.Override + public int getShadowRadius() { + return shadowRadius_; + } + + public static final int SHADOW_COLOR_FIELD_NUMBER = 13; + @SuppressWarnings("serial") + private volatile java.lang.Object shadowColor_ = ""; + /** + * string shadow_color = 13; + * @return The shadowColor. + */ + @java.lang.Override + public java.lang.String getShadowColor() { + java.lang.Object ref = shadowColor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + shadowColor_ = s; + return s; + } + } + /** + * string shadow_color = 13; + * @return The bytes for shadowColor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getShadowColorBytes() { + java.lang.Object ref = shadowColor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + shadowColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STROKE_COLOR_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object strokeColor_ = ""; + /** + * string stroke_color = 14; + * @return The strokeColor. + */ + @java.lang.Override + public java.lang.String getStrokeColor() { + java.lang.Object ref = strokeColor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + strokeColor_ = s; + return s; + } + } + /** + * string stroke_color = 14; + * @return The bytes for strokeColor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStrokeColorBytes() { + java.lang.Object ref = strokeColor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + strokeColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STROKE_WIDTH_FIELD_NUMBER = 15; + private int strokeWidth_ = 0; + /** + * uint32 stroke_width = 15; + * @return The strokeWidth. + */ + @java.lang.Override + public int getStrokeWidth() { + return strokeWidth_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (text_ != null) { + output.writeMessage(1, getText()); + } + if (textFontSize_ != 0) { + output.writeUInt32(2, textFontSize_); + } + if (background_ != null) { + output.writeMessage(3, getBackground()); + } + if (start_ != 0) { + output.writeUInt32(4, start_); + } + if (duration_ != 0) { + output.writeUInt32(5, duration_); + } + if (x_ != 0) { + output.writeUInt32(6, x_); + } + if (y_ != 0) { + output.writeUInt32(7, y_); + } + if (width_ != 0) { + output.writeUInt32(8, width_); + } + if (height_ != 0) { + output.writeUInt32(9, height_); + } + if (shadowDx_ != 0) { + output.writeUInt32(10, shadowDx_); + } + if (shadowDy_ != 0) { + output.writeUInt32(11, shadowDy_); + } + if (shadowRadius_ != 0) { + output.writeUInt32(12, shadowRadius_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shadowColor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, shadowColor_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(strokeColor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, strokeColor_); + } + if (strokeWidth_ != 0) { + output.writeUInt32(15, strokeWidth_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (text_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getText()); + } + if (textFontSize_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, textFontSize_); + } + if (background_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getBackground()); + } + if (start_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, start_); + } + if (duration_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(5, duration_); + } + if (x_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, x_); + } + if (y_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(7, y_); + } + if (width_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(8, width_); + } + if (height_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(9, height_); + } + if (shadowDx_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(10, shadowDx_); + } + if (shadowDy_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(11, shadowDy_); + } + if (shadowRadius_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(12, shadowRadius_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shadowColor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, shadowColor_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(strokeColor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, strokeColor_); + } + if (strokeWidth_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(15, strokeWidth_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail) obj; + + if (hasText() != other.hasText()) return false; + if (hasText()) { + if (!getText() + .equals(other.getText())) return false; + } + if (getTextFontSize() + != other.getTextFontSize()) return false; + if (hasBackground() != other.hasBackground()) return false; + if (hasBackground()) { + if (!getBackground() + .equals(other.getBackground())) return false; + } + if (getStart() + != other.getStart()) return false; + if (getDuration() + != other.getDuration()) return false; + if (getX() + != other.getX()) return false; + if (getY() + != other.getY()) return false; + if (getWidth() + != other.getWidth()) return false; + if (getHeight() + != other.getHeight()) return false; + if (getShadowDx() + != other.getShadowDx()) return false; + if (getShadowDy() + != other.getShadowDy()) return false; + if (getShadowRadius() + != other.getShadowRadius()) return false; + if (!getShadowColor() + .equals(other.getShadowColor())) return false; + if (!getStrokeColor() + .equals(other.getStrokeColor())) return false; + if (getStrokeWidth() + != other.getStrokeWidth()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasText()) { + hash = (37 * hash) + TEXT_FIELD_NUMBER; + hash = (53 * hash) + getText().hashCode(); + } + hash = (37 * hash) + TEXT_FONT_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getTextFontSize(); + if (hasBackground()) { + hash = (37 * hash) + BACKGROUND_FIELD_NUMBER; + hash = (53 * hash) + getBackground().hashCode(); + } + hash = (37 * hash) + START_FIELD_NUMBER; + hash = (53 * hash) + getStart(); + hash = (37 * hash) + DURATION_FIELD_NUMBER; + hash = (53 * hash) + getDuration(); + hash = (37 * hash) + X_FIELD_NUMBER; + hash = (53 * hash) + getX(); + hash = (37 * hash) + Y_FIELD_NUMBER; + hash = (53 * hash) + getY(); + hash = (37 * hash) + WIDTH_FIELD_NUMBER; + hash = (53 * hash) + getWidth(); + hash = (37 * hash) + HEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getHeight(); + hash = (37 * hash) + SHADOW_DX_FIELD_NUMBER; + hash = (53 * hash) + getShadowDx(); + hash = (37 * hash) + SHADOW_DY_FIELD_NUMBER; + hash = (53 * hash) + getShadowDy(); + hash = (37 * hash) + SHADOW_RADIUS_FIELD_NUMBER; + hash = (53 * hash) + getShadowRadius(); + hash = (37 * hash) + SHADOW_COLOR_FIELD_NUMBER; + hash = (53 * hash) + getShadowColor().hashCode(); + hash = (37 * hash) + STROKE_COLOR_FIELD_NUMBER; + hash = (53 * hash) + getStrokeColor().hashCode(); + hash = (37 * hash) + STROKE_WIDTH_FIELD_NUMBER; + hash = (53 * hash) + getStrokeWidth(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextEffectDetail} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextEffectDetail) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + text_ = null; + if (textBuilder_ != null) { + textBuilder_.dispose(); + textBuilder_ = null; + } + textFontSize_ = 0; + background_ = null; + if (backgroundBuilder_ != null) { + backgroundBuilder_.dispose(); + backgroundBuilder_ = null; + } + start_ = 0; + duration_ = 0; + x_ = 0; + y_ = 0; + width_ = 0; + height_ = 0; + shadowDx_ = 0; + shadowDy_ = 0; + shadowRadius_ = 0; + shadowColor_ = ""; + strokeColor_ = ""; + strokeWidth_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.internal_static_TextEffectDetail_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.text_ = textBuilder_ == null + ? text_ + : textBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.textFontSize_ = textFontSize_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.background_ = backgroundBuilder_ == null + ? background_ + : backgroundBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.start_ = start_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.duration_ = duration_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.x_ = x_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.y_ = y_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.width_ = width_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.height_ = height_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.shadowDx_ = shadowDx_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.shadowDy_ = shadowDy_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.shadowRadius_ = shadowRadius_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.shadowColor_ = shadowColor_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.strokeColor_ = strokeColor_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.strokeWidth_ = strokeWidth_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) return this; + if (other.hasText()) { + mergeText(other.getText()); + } + if (other.getTextFontSize() != 0) { + setTextFontSize(other.getTextFontSize()); + } + if (other.hasBackground()) { + mergeBackground(other.getBackground()); + } + if (other.getStart() != 0) { + setStart(other.getStart()); + } + if (other.getDuration() != 0) { + setDuration(other.getDuration()); + } + if (other.getX() != 0) { + setX(other.getX()); + } + if (other.getY() != 0) { + setY(other.getY()); + } + if (other.getWidth() != 0) { + setWidth(other.getWidth()); + } + if (other.getHeight() != 0) { + setHeight(other.getHeight()); + } + if (other.getShadowDx() != 0) { + setShadowDx(other.getShadowDx()); + } + if (other.getShadowDy() != 0) { + setShadowDy(other.getShadowDy()); + } + if (other.getShadowRadius() != 0) { + setShadowRadius(other.getShadowRadius()); + } + if (!other.getShadowColor().isEmpty()) { + shadowColor_ = other.shadowColor_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (!other.getStrokeColor().isEmpty()) { + strokeColor_ = other.strokeColor_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.getStrokeWidth() != 0) { + setStrokeWidth(other.getStrokeWidth()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getTextFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + textFontSize_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + input.readMessage( + getBackgroundFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + start_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + duration_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + x_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + y_ = input.readUInt32(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + width_ = input.readUInt32(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + height_ = input.readUInt32(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: { + shadowDx_ = input.readUInt32(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 88: { + shadowDy_ = input.readUInt32(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 96: { + shadowRadius_ = input.readUInt32(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 106: { + shadowColor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: { + strokeColor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 120: { + strokeWidth_ = input.readUInt32(); + bitField0_ |= 0x00004000; + break; + } // case 120 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text text_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> textBuilder_; + /** + * .Text text = 1; + * @return Whether the text field is set. + */ + public boolean hasText() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Text text = 1; + * @return The text. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getText() { + if (textBuilder_ == null) { + return text_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; + } else { + return textBuilder_.getMessage(); + } + } + /** + * .Text text = 1; + */ + public Builder setText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (textBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + text_ = value; + } else { + textBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Text text = 1; + */ + public Builder setText( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder builderForValue) { + if (textBuilder_ == null) { + text_ = builderForValue.build(); + } else { + textBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Text text = 1; + */ + public Builder mergeText(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text value) { + if (textBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + text_ != null && + text_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) { + getTextBuilder().mergeFrom(value); + } else { + text_ = value; + } + } else { + textBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Text text = 1; + */ + public Builder clearText() { + bitField0_ = (bitField0_ & ~0x00000001); + text_ = null; + if (textBuilder_ != null) { + textBuilder_.dispose(); + textBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Text text = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder getTextBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getTextFieldBuilder().getBuilder(); + } + /** + * .Text text = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder getTextOrBuilder() { + if (textBuilder_ != null) { + return textBuilder_.getMessageOrBuilder(); + } else { + return text_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance() : text_; + } + } + /** + * .Text text = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder> + getTextFieldBuilder() { + if (textBuilder_ == null) { + textBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder>( + getText(), + getParentForChildren(), + isClean()); + text_ = null; + } + return textBuilder_; + } + + private int textFontSize_ ; + /** + * uint32 text_font_size = 2; + * @return The textFontSize. + */ + @java.lang.Override + public int getTextFontSize() { + return textFontSize_; + } + /** + * uint32 text_font_size = 2; + * @param value The textFontSize to set. + * @return This builder for chaining. + */ + public Builder setTextFontSize(int value) { + + textFontSize_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint32 text_font_size = 2; + * @return This builder for chaining. + */ + public Builder clearTextFontSize() { + bitField0_ = (bitField0_ & ~0x00000002); + textFontSize_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBuilder_; + /** + * .Image background = 3; + * @return Whether the background field is set. + */ + public boolean hasBackground() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .Image background = 3; + * @return The background. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { + if (backgroundBuilder_ == null) { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } else { + return backgroundBuilder_.getMessage(); + } + } + /** + * .Image background = 3; + */ + public Builder setBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + background_ = value; + } else { + backgroundBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .Image background = 3; + */ + public Builder setBackground( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundBuilder_ == null) { + background_ = builderForValue.build(); + } else { + backgroundBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .Image background = 3; + */ + public Builder mergeBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + background_ != null && + background_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundBuilder().mergeFrom(value); + } else { + background_ = value; + } + } else { + backgroundBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .Image background = 3; + */ + public Builder clearBackground() { + bitField0_ = (bitField0_ & ~0x00000004); + background_ = null; + if (backgroundBuilder_ != null) { + backgroundBuilder_.dispose(); + backgroundBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image background = 3; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getBackgroundFieldBuilder().getBuilder(); + } + /** + * .Image background = 3; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { + if (backgroundBuilder_ != null) { + return backgroundBuilder_.getMessageOrBuilder(); + } else { + return background_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + } + /** + * .Image background = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundFieldBuilder() { + if (backgroundBuilder_ == null) { + backgroundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackground(), + getParentForChildren(), + isClean()); + background_ = null; + } + return backgroundBuilder_; + } + + private int start_ ; + /** + * uint32 start = 4; + * @return The start. + */ + @java.lang.Override + public int getStart() { + return start_; + } + /** + * uint32 start = 4; + * @param value The start to set. + * @return This builder for chaining. + */ + public Builder setStart(int value) { + + start_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 start = 4; + * @return This builder for chaining. + */ + public Builder clearStart() { + bitField0_ = (bitField0_ & ~0x00000008); + start_ = 0; + onChanged(); + return this; + } + + private int duration_ ; + /** + * uint32 duration = 5; + * @return The duration. + */ + @java.lang.Override + public int getDuration() { + return duration_; + } + /** + * uint32 duration = 5; + * @param value The duration to set. + * @return This builder for chaining. + */ + public Builder setDuration(int value) { + + duration_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint32 duration = 5; + * @return This builder for chaining. + */ + public Builder clearDuration() { + bitField0_ = (bitField0_ & ~0x00000010); + duration_ = 0; + onChanged(); + return this; + } + + private int x_ ; + /** + * uint32 x = 6; + * @return The x. + */ + @java.lang.Override + public int getX() { + return x_; + } + /** + * uint32 x = 6; + * @param value The x to set. + * @return This builder for chaining. + */ + public Builder setX(int value) { + + x_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint32 x = 6; + * @return This builder for chaining. + */ + public Builder clearX() { + bitField0_ = (bitField0_ & ~0x00000020); + x_ = 0; + onChanged(); + return this; + } + + private int y_ ; + /** + * uint32 y = 7; + * @return The y. + */ + @java.lang.Override + public int getY() { + return y_; + } + /** + * uint32 y = 7; + * @param value The y to set. + * @return This builder for chaining. + */ + public Builder setY(int value) { + + y_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * uint32 y = 7; + * @return This builder for chaining. + */ + public Builder clearY() { + bitField0_ = (bitField0_ & ~0x00000040); + y_ = 0; + onChanged(); + return this; + } + + private int width_ ; + /** + * uint32 width = 8; + * @return The width. + */ + @java.lang.Override + public int getWidth() { + return width_; + } + /** + * uint32 width = 8; + * @param value The width to set. + * @return This builder for chaining. + */ + public Builder setWidth(int value) { + + width_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * uint32 width = 8; + * @return This builder for chaining. + */ + public Builder clearWidth() { + bitField0_ = (bitField0_ & ~0x00000080); + width_ = 0; + onChanged(); + return this; + } + + private int height_ ; + /** + * uint32 height = 9; + * @return The height. + */ + @java.lang.Override + public int getHeight() { + return height_; + } + /** + * uint32 height = 9; + * @param value The height to set. + * @return This builder for chaining. + */ + public Builder setHeight(int value) { + + height_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint32 height = 9; + * @return This builder for chaining. + */ + public Builder clearHeight() { + bitField0_ = (bitField0_ & ~0x00000100); + height_ = 0; + onChanged(); + return this; + } + + private int shadowDx_ ; + /** + * uint32 shadow_dx = 10; + * @return The shadowDx. + */ + @java.lang.Override + public int getShadowDx() { + return shadowDx_; + } + /** + * uint32 shadow_dx = 10; + * @param value The shadowDx to set. + * @return This builder for chaining. + */ + public Builder setShadowDx(int value) { + + shadowDx_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * uint32 shadow_dx = 10; + * @return This builder for chaining. + */ + public Builder clearShadowDx() { + bitField0_ = (bitField0_ & ~0x00000200); + shadowDx_ = 0; + onChanged(); + return this; + } + + private int shadowDy_ ; + /** + * uint32 shadow_dy = 11; + * @return The shadowDy. + */ + @java.lang.Override + public int getShadowDy() { + return shadowDy_; + } + /** + * uint32 shadow_dy = 11; + * @param value The shadowDy to set. + * @return This builder for chaining. + */ + public Builder setShadowDy(int value) { + + shadowDy_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * uint32 shadow_dy = 11; + * @return This builder for chaining. + */ + public Builder clearShadowDy() { + bitField0_ = (bitField0_ & ~0x00000400); + shadowDy_ = 0; + onChanged(); + return this; + } + + private int shadowRadius_ ; + /** + * uint32 shadow_radius = 12; + * @return The shadowRadius. + */ + @java.lang.Override + public int getShadowRadius() { + return shadowRadius_; + } + /** + * uint32 shadow_radius = 12; + * @param value The shadowRadius to set. + * @return This builder for chaining. + */ + public Builder setShadowRadius(int value) { + + shadowRadius_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * uint32 shadow_radius = 12; + * @return This builder for chaining. + */ + public Builder clearShadowRadius() { + bitField0_ = (bitField0_ & ~0x00000800); + shadowRadius_ = 0; + onChanged(); + return this; + } + + private java.lang.Object shadowColor_ = ""; + /** + * string shadow_color = 13; + * @return The shadowColor. + */ + public java.lang.String getShadowColor() { + java.lang.Object ref = shadowColor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + shadowColor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string shadow_color = 13; + * @return The bytes for shadowColor. + */ + public com.google.protobuf.ByteString + getShadowColorBytes() { + java.lang.Object ref = shadowColor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + shadowColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string shadow_color = 13; + * @param value The shadowColor to set. + * @return This builder for chaining. + */ + public Builder setShadowColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + shadowColor_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string shadow_color = 13; + * @return This builder for chaining. + */ + public Builder clearShadowColor() { + shadowColor_ = getDefaultInstance().getShadowColor(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string shadow_color = 13; + * @param value The bytes for shadowColor to set. + * @return This builder for chaining. + */ + public Builder setShadowColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + shadowColor_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object strokeColor_ = ""; + /** + * string stroke_color = 14; + * @return The strokeColor. + */ + public java.lang.String getStrokeColor() { + java.lang.Object ref = strokeColor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + strokeColor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string stroke_color = 14; + * @return The bytes for strokeColor. + */ + public com.google.protobuf.ByteString + getStrokeColorBytes() { + java.lang.Object ref = strokeColor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + strokeColor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string stroke_color = 14; + * @param value The strokeColor to set. + * @return This builder for chaining. + */ + public Builder setStrokeColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + strokeColor_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * string stroke_color = 14; + * @return This builder for chaining. + */ + public Builder clearStrokeColor() { + strokeColor_ = getDefaultInstance().getStrokeColor(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + /** + * string stroke_color = 14; + * @param value The bytes for strokeColor to set. + * @return This builder for chaining. + */ + public Builder setStrokeColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + strokeColor_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private int strokeWidth_ ; + /** + * uint32 stroke_width = 15; + * @return The strokeWidth. + */ + @java.lang.Override + public int getStrokeWidth() { + return strokeWidth_; + } + /** + * uint32 stroke_width = 15; + * @param value The strokeWidth to set. + * @return This builder for chaining. + */ + public Builder setStrokeWidth(int value) { + + strokeWidth_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * uint32 stroke_width = 15; + * @return This builder for chaining. + */ + public Builder clearStrokeWidth() { + bitField0_ = (bitField0_ & ~0x00004000); + strokeWidth_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextEffectDetail) + } + + // @@protoc_insertion_point(class_scope:TextEffectDetail) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextEffectDetail parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextEffectDetail_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextEffectDetail_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026TextEffectDetail.proto\032\013Image.proto\032\nT" + + "ext.proto\"\260\002\n\020TextEffectDetail\022\023\n\004text\030\001" + + " \001(\0132\005.Text\022\026\n\016text_font_size\030\002 \001(\r\022\032\n\nb" + + "ackground\030\003 \001(\0132\006.Image\022\r\n\005start\030\004 \001(\r\022\020" + + "\n\010duration\030\005 \001(\r\022\t\n\001x\030\006 \001(\r\022\t\n\001y\030\007 \001(\r\022\r" + + "\n\005width\030\010 \001(\r\022\016\n\006height\030\t \001(\r\022\021\n\tshadow_" + + "dx\030\n \001(\r\022\021\n\tshadow_dy\030\013 \001(\r\022\025\n\rshadow_ra" + + "dius\030\014 \001(\r\022\024\n\014shadow_color\030\r \001(\t\022\024\n\014stro" + + "ke_color\030\016 \001(\t\022\024\n\014stroke_width\030\017 \001(\rB8\n6" + + "tech.ordinaryroad.live.chat.client.douyi" + + "n.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(), + }); + internal_static_TextEffectDetail_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextEffectDetail_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextEffectDetail_descriptor, + new java.lang.String[] { "Text", "TextFontSize", "Background", "Start", "Duration", "X", "Y", "Width", "Height", "ShadowDx", "ShadowDy", "ShadowRadius", "ShadowColor", "StrokeColor", "StrokeWidth", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java new file mode 100644 index 00000000..9fffc74a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextEffectOuterClass.java @@ -0,0 +1,872 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextEffect.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextEffectOuterClass { + private TextEffectOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextEffectOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextEffect) + com.google.protobuf.MessageOrBuilder { + + /** + * .TextEffectDetail portrait = 1; + * @return Whether the portrait field is set. + */ + boolean hasPortrait(); + /** + * .TextEffectDetail portrait = 1; + * @return The portrait. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait(); + /** + * .TextEffectDetail portrait = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder(); + + /** + * .TextEffectDetail landscape = 2; + * @return Whether the landscape field is set. + */ + boolean hasLandscape(); + /** + * .TextEffectDetail landscape = 2; + * @return The landscape. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape(); + /** + * .TextEffectDetail landscape = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder(); + } + /** + * Protobuf type {@code TextEffect} + */ + public static final class TextEffect extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextEffect) + TextEffectOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextEffect.newBuilder() to construct. + private TextEffect(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextEffect() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextEffect(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder.class); + } + + public static final int PORTRAIT_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail portrait_; + /** + * .TextEffectDetail portrait = 1; + * @return Whether the portrait field is set. + */ + @java.lang.Override + public boolean hasPortrait() { + return portrait_ != null; + } + /** + * .TextEffectDetail portrait = 1; + * @return The portrait. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait() { + return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; + } + /** + * .TextEffectDetail portrait = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder() { + return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; + } + + public static final int LANDSCAPE_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail landscape_; + /** + * .TextEffectDetail landscape = 2; + * @return Whether the landscape field is set. + */ + @java.lang.Override + public boolean hasLandscape() { + return landscape_ != null; + } + /** + * .TextEffectDetail landscape = 2; + * @return The landscape. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape() { + return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; + } + /** + * .TextEffectDetail landscape = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder() { + return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (portrait_ != null) { + output.writeMessage(1, getPortrait()); + } + if (landscape_ != null) { + output.writeMessage(2, getLandscape()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (portrait_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getPortrait()); + } + if (landscape_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getLandscape()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect) obj; + + if (hasPortrait() != other.hasPortrait()) return false; + if (hasPortrait()) { + if (!getPortrait() + .equals(other.getPortrait())) return false; + } + if (hasLandscape() != other.hasLandscape()) return false; + if (hasLandscape()) { + if (!getLandscape() + .equals(other.getLandscape())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPortrait()) { + hash = (37 * hash) + PORTRAIT_FIELD_NUMBER; + hash = (53 * hash) + getPortrait().hashCode(); + } + if (hasLandscape()) { + hash = (37 * hash) + LANDSCAPE_FIELD_NUMBER; + hash = (53 * hash) + getLandscape().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextEffect} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextEffect) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffectOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + portrait_ = null; + if (portraitBuilder_ != null) { + portraitBuilder_.dispose(); + portraitBuilder_ = null; + } + landscape_ = null; + if (landscapeBuilder_ != null) { + landscapeBuilder_.dispose(); + landscapeBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.internal_static_TextEffect_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.portrait_ = portraitBuilder_ == null + ? portrait_ + : portraitBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.landscape_ = landscapeBuilder_ == null + ? landscape_ + : landscapeBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect.getDefaultInstance()) return this; + if (other.hasPortrait()) { + mergePortrait(other.getPortrait()); + } + if (other.hasLandscape()) { + mergeLandscape(other.getLandscape()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getPortraitFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getLandscapeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail portrait_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> portraitBuilder_; + /** + * .TextEffectDetail portrait = 1; + * @return Whether the portrait field is set. + */ + public boolean hasPortrait() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .TextEffectDetail portrait = 1; + * @return The portrait. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getPortrait() { + if (portraitBuilder_ == null) { + return portrait_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; + } else { + return portraitBuilder_.getMessage(); + } + } + /** + * .TextEffectDetail portrait = 1; + */ + public Builder setPortrait(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { + if (portraitBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + portrait_ = value; + } else { + portraitBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .TextEffectDetail portrait = 1; + */ + public Builder setPortrait( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder builderForValue) { + if (portraitBuilder_ == null) { + portrait_ = builderForValue.build(); + } else { + portraitBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .TextEffectDetail portrait = 1; + */ + public Builder mergePortrait(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { + if (portraitBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + portrait_ != null && + portrait_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) { + getPortraitBuilder().mergeFrom(value); + } else { + portrait_ = value; + } + } else { + portraitBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .TextEffectDetail portrait = 1; + */ + public Builder clearPortrait() { + bitField0_ = (bitField0_ & ~0x00000001); + portrait_ = null; + if (portraitBuilder_ != null) { + portraitBuilder_.dispose(); + portraitBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextEffectDetail portrait = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder getPortraitBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getPortraitFieldBuilder().getBuilder(); + } + /** + * .TextEffectDetail portrait = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getPortraitOrBuilder() { + if (portraitBuilder_ != null) { + return portraitBuilder_.getMessageOrBuilder(); + } else { + return portrait_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : portrait_; + } + } + /** + * .TextEffectDetail portrait = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> + getPortraitFieldBuilder() { + if (portraitBuilder_ == null) { + portraitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder>( + getPortrait(), + getParentForChildren(), + isClean()); + portrait_ = null; + } + return portraitBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail landscape_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> landscapeBuilder_; + /** + * .TextEffectDetail landscape = 2; + * @return Whether the landscape field is set. + */ + public boolean hasLandscape() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .TextEffectDetail landscape = 2; + * @return The landscape. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail getLandscape() { + if (landscapeBuilder_ == null) { + return landscape_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; + } else { + return landscapeBuilder_.getMessage(); + } + } + /** + * .TextEffectDetail landscape = 2; + */ + public Builder setLandscape(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { + if (landscapeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + landscape_ = value; + } else { + landscapeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextEffectDetail landscape = 2; + */ + public Builder setLandscape( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder builderForValue) { + if (landscapeBuilder_ == null) { + landscape_ = builderForValue.build(); + } else { + landscapeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextEffectDetail landscape = 2; + */ + public Builder mergeLandscape(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail value) { + if (landscapeBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + landscape_ != null && + landscape_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance()) { + getLandscapeBuilder().mergeFrom(value); + } else { + landscape_ = value; + } + } else { + landscapeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextEffectDetail landscape = 2; + */ + public Builder clearLandscape() { + bitField0_ = (bitField0_ & ~0x00000002); + landscape_ = null; + if (landscapeBuilder_ != null) { + landscapeBuilder_.dispose(); + landscapeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextEffectDetail landscape = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder getLandscapeBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getLandscapeFieldBuilder().getBuilder(); + } + /** + * .TextEffectDetail landscape = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder getLandscapeOrBuilder() { + if (landscapeBuilder_ != null) { + return landscapeBuilder_.getMessageOrBuilder(); + } else { + return landscape_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.getDefaultInstance() : landscape_; + } + } + /** + * .TextEffectDetail landscape = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder> + getLandscapeFieldBuilder() { + if (landscapeBuilder_ == null) { + landscapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetail.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.TextEffectDetailOrBuilder>( + getLandscape(), + getParentForChildren(), + isClean()); + landscape_ = null; + } + return landscapeBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextEffect) + } + + // @@protoc_insertion_point(class_scope:TextEffect) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextEffect parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectOuterClass.TextEffect getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextEffect_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextEffect_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020TextEffect.proto\032\026TextEffectDetail.pro" + + "to\"W\n\nTextEffect\022#\n\010portrait\030\001 \001(\0132\021.Tex" + + "tEffectDetail\022$\n\tlandscape\030\002 \001(\0132\021.TextE" + + "ffectDetailB8\n6tech.ordinaryroad.live.ch" + + "at.client.douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.getDescriptor(), + }); + internal_static_TextEffect_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextEffect_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextEffect_descriptor, + new java.lang.String[] { "Portrait", "Landscape", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextEffectDetailOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java new file mode 100644 index 00000000..d3fc3455 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextFormatOuterClass.java @@ -0,0 +1,1136 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextFormat.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextFormatOuterClass { + private TextFormatOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextFormatOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextFormat) + com.google.protobuf.MessageOrBuilder { + + /** + * string color = 1; + * @return The color. + */ + java.lang.String getColor(); + /** + * string color = 1; + * @return The bytes for color. + */ + com.google.protobuf.ByteString + getColorBytes(); + + /** + * bool bold = 2; + * @return The bold. + */ + boolean getBold(); + + /** + * bool italic = 3; + * @return The italic. + */ + boolean getItalic(); + + /** + * uint32 weight = 4; + * @return The weight. + */ + int getWeight(); + + /** + * uint32 italic_angle = 5; + * @return The italicAngle. + */ + int getItalicAngle(); + + /** + * uint32 font_size = 6; + * @return The fontSize. + */ + int getFontSize(); + + /** + * bool use_heigh_light_color = 7; + * @return The useHeighLightColor. + */ + boolean getUseHeighLightColor(); + + /** + * bool use_remote_clor = 8; + * @return The useRemoteClor. + */ + boolean getUseRemoteClor(); + } + /** + * Protobuf type {@code TextFormat} + */ + public static final class TextFormat extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextFormat) + TextFormatOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextFormat.newBuilder() to construct. + private TextFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextFormat() { + color_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextFormat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder.class); + } + + public static final int COLOR_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object color_ = ""; + /** + * string color = 1; + * @return The color. + */ + @java.lang.Override + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } + } + /** + * string color = 1; + * @return The bytes for color. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BOLD_FIELD_NUMBER = 2; + private boolean bold_ = false; + /** + * bool bold = 2; + * @return The bold. + */ + @java.lang.Override + public boolean getBold() { + return bold_; + } + + public static final int ITALIC_FIELD_NUMBER = 3; + private boolean italic_ = false; + /** + * bool italic = 3; + * @return The italic. + */ + @java.lang.Override + public boolean getItalic() { + return italic_; + } + + public static final int WEIGHT_FIELD_NUMBER = 4; + private int weight_ = 0; + /** + * uint32 weight = 4; + * @return The weight. + */ + @java.lang.Override + public int getWeight() { + return weight_; + } + + public static final int ITALIC_ANGLE_FIELD_NUMBER = 5; + private int italicAngle_ = 0; + /** + * uint32 italic_angle = 5; + * @return The italicAngle. + */ + @java.lang.Override + public int getItalicAngle() { + return italicAngle_; + } + + public static final int FONT_SIZE_FIELD_NUMBER = 6; + private int fontSize_ = 0; + /** + * uint32 font_size = 6; + * @return The fontSize. + */ + @java.lang.Override + public int getFontSize() { + return fontSize_; + } + + public static final int USE_HEIGH_LIGHT_COLOR_FIELD_NUMBER = 7; + private boolean useHeighLightColor_ = false; + /** + * bool use_heigh_light_color = 7; + * @return The useHeighLightColor. + */ + @java.lang.Override + public boolean getUseHeighLightColor() { + return useHeighLightColor_; + } + + public static final int USE_REMOTE_CLOR_FIELD_NUMBER = 8; + private boolean useRemoteClor_ = false; + /** + * bool use_remote_clor = 8; + * @return The useRemoteClor. + */ + @java.lang.Override + public boolean getUseRemoteClor() { + return useRemoteClor_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, color_); + } + if (bold_ != false) { + output.writeBool(2, bold_); + } + if (italic_ != false) { + output.writeBool(3, italic_); + } + if (weight_ != 0) { + output.writeUInt32(4, weight_); + } + if (italicAngle_ != 0) { + output.writeUInt32(5, italicAngle_); + } + if (fontSize_ != 0) { + output.writeUInt32(6, fontSize_); + } + if (useHeighLightColor_ != false) { + output.writeBool(7, useHeighLightColor_); + } + if (useRemoteClor_ != false) { + output.writeBool(8, useRemoteClor_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, color_); + } + if (bold_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, bold_); + } + if (italic_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, italic_); + } + if (weight_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, weight_); + } + if (italicAngle_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(5, italicAngle_); + } + if (fontSize_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, fontSize_); + } + if (useHeighLightColor_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(7, useHeighLightColor_); + } + if (useRemoteClor_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(8, useRemoteClor_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat) obj; + + if (!getColor() + .equals(other.getColor())) return false; + if (getBold() + != other.getBold()) return false; + if (getItalic() + != other.getItalic()) return false; + if (getWeight() + != other.getWeight()) return false; + if (getItalicAngle() + != other.getItalicAngle()) return false; + if (getFontSize() + != other.getFontSize()) return false; + if (getUseHeighLightColor() + != other.getUseHeighLightColor()) return false; + if (getUseRemoteClor() + != other.getUseRemoteClor()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + getColor().hashCode(); + hash = (37 * hash) + BOLD_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getBold()); + hash = (37 * hash) + ITALIC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getItalic()); + hash = (37 * hash) + WEIGHT_FIELD_NUMBER; + hash = (53 * hash) + getWeight(); + hash = (37 * hash) + ITALIC_ANGLE_FIELD_NUMBER; + hash = (53 * hash) + getItalicAngle(); + hash = (37 * hash) + FONT_SIZE_FIELD_NUMBER; + hash = (53 * hash) + getFontSize(); + hash = (37 * hash) + USE_HEIGH_LIGHT_COLOR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getUseHeighLightColor()); + hash = (37 * hash) + USE_REMOTE_CLOR_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getUseRemoteClor()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextFormat} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextFormat) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + color_ = ""; + bold_ = false; + italic_ = false; + weight_ = 0; + italicAngle_ = 0; + fontSize_ = 0; + useHeighLightColor_ = false; + useRemoteClor_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.internal_static_TextFormat_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.color_ = color_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.bold_ = bold_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.italic_ = italic_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.weight_ = weight_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.italicAngle_ = italicAngle_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.fontSize_ = fontSize_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.useHeighLightColor_ = useHeighLightColor_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.useRemoteClor_ = useRemoteClor_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) return this; + if (!other.getColor().isEmpty()) { + color_ = other.color_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getBold() != false) { + setBold(other.getBold()); + } + if (other.getItalic() != false) { + setItalic(other.getItalic()); + } + if (other.getWeight() != 0) { + setWeight(other.getWeight()); + } + if (other.getItalicAngle() != 0) { + setItalicAngle(other.getItalicAngle()); + } + if (other.getFontSize() != 0) { + setFontSize(other.getFontSize()); + } + if (other.getUseHeighLightColor() != false) { + setUseHeighLightColor(other.getUseHeighLightColor()); + } + if (other.getUseRemoteClor() != false) { + setUseRemoteClor(other.getUseRemoteClor()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + color_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + bold_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + italic_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + weight_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + italicAngle_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + fontSize_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + useHeighLightColor_ = input.readBool(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + useRemoteClor_ = input.readBool(); + bitField0_ |= 0x00000080; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object color_ = ""; + /** + * string color = 1; + * @return The color. + */ + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string color = 1; + * @return The bytes for color. + */ + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string color = 1; + * @param value The color to set. + * @return This builder for chaining. + */ + public Builder setColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + color_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string color = 1; + * @return This builder for chaining. + */ + public Builder clearColor() { + color_ = getDefaultInstance().getColor(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string color = 1; + * @param value The bytes for color to set. + * @return This builder for chaining. + */ + public Builder setColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + color_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private boolean bold_ ; + /** + * bool bold = 2; + * @return The bold. + */ + @java.lang.Override + public boolean getBold() { + return bold_; + } + /** + * bool bold = 2; + * @param value The bold to set. + * @return This builder for chaining. + */ + public Builder setBold(boolean value) { + + bold_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool bold = 2; + * @return This builder for chaining. + */ + public Builder clearBold() { + bitField0_ = (bitField0_ & ~0x00000002); + bold_ = false; + onChanged(); + return this; + } + + private boolean italic_ ; + /** + * bool italic = 3; + * @return The italic. + */ + @java.lang.Override + public boolean getItalic() { + return italic_; + } + /** + * bool italic = 3; + * @param value The italic to set. + * @return This builder for chaining. + */ + public Builder setItalic(boolean value) { + + italic_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool italic = 3; + * @return This builder for chaining. + */ + public Builder clearItalic() { + bitField0_ = (bitField0_ & ~0x00000004); + italic_ = false; + onChanged(); + return this; + } + + private int weight_ ; + /** + * uint32 weight = 4; + * @return The weight. + */ + @java.lang.Override + public int getWeight() { + return weight_; + } + /** + * uint32 weight = 4; + * @param value The weight to set. + * @return This builder for chaining. + */ + public Builder setWeight(int value) { + + weight_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 weight = 4; + * @return This builder for chaining. + */ + public Builder clearWeight() { + bitField0_ = (bitField0_ & ~0x00000008); + weight_ = 0; + onChanged(); + return this; + } + + private int italicAngle_ ; + /** + * uint32 italic_angle = 5; + * @return The italicAngle. + */ + @java.lang.Override + public int getItalicAngle() { + return italicAngle_; + } + /** + * uint32 italic_angle = 5; + * @param value The italicAngle to set. + * @return This builder for chaining. + */ + public Builder setItalicAngle(int value) { + + italicAngle_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint32 italic_angle = 5; + * @return This builder for chaining. + */ + public Builder clearItalicAngle() { + bitField0_ = (bitField0_ & ~0x00000010); + italicAngle_ = 0; + onChanged(); + return this; + } + + private int fontSize_ ; + /** + * uint32 font_size = 6; + * @return The fontSize. + */ + @java.lang.Override + public int getFontSize() { + return fontSize_; + } + /** + * uint32 font_size = 6; + * @param value The fontSize to set. + * @return This builder for chaining. + */ + public Builder setFontSize(int value) { + + fontSize_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint32 font_size = 6; + * @return This builder for chaining. + */ + public Builder clearFontSize() { + bitField0_ = (bitField0_ & ~0x00000020); + fontSize_ = 0; + onChanged(); + return this; + } + + private boolean useHeighLightColor_ ; + /** + * bool use_heigh_light_color = 7; + * @return The useHeighLightColor. + */ + @java.lang.Override + public boolean getUseHeighLightColor() { + return useHeighLightColor_; + } + /** + * bool use_heigh_light_color = 7; + * @param value The useHeighLightColor to set. + * @return This builder for chaining. + */ + public Builder setUseHeighLightColor(boolean value) { + + useHeighLightColor_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * bool use_heigh_light_color = 7; + * @return This builder for chaining. + */ + public Builder clearUseHeighLightColor() { + bitField0_ = (bitField0_ & ~0x00000040); + useHeighLightColor_ = false; + onChanged(); + return this; + } + + private boolean useRemoteClor_ ; + /** + * bool use_remote_clor = 8; + * @return The useRemoteClor. + */ + @java.lang.Override + public boolean getUseRemoteClor() { + return useRemoteClor_; + } + /** + * bool use_remote_clor = 8; + * @param value The useRemoteClor to set. + * @return This builder for chaining. + */ + public Builder setUseRemoteClor(boolean value) { + + useRemoteClor_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bool use_remote_clor = 8; + * @return This builder for chaining. + */ + public Builder clearUseRemoteClor() { + bitField0_ = (bitField0_ & ~0x00000080); + useRemoteClor_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextFormat) + } + + // @@protoc_insertion_point(class_scope:TextFormat) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextFormat parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextFormat_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextFormat_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020TextFormat.proto\"\252\001\n\nTextFormat\022\r\n\005col" + + "or\030\001 \001(\t\022\014\n\004bold\030\002 \001(\010\022\016\n\006italic\030\003 \001(\010\022\016" + + "\n\006weight\030\004 \001(\r\022\024\n\014italic_angle\030\005 \001(\r\022\021\n\t" + + "font_size\030\006 \001(\r\022\035\n\025use_heigh_light_color" + + "\030\007 \001(\010\022\027\n\017use_remote_clor\030\010 \001(\010B8\n6tech." + + "ordinaryroad.live.chat.client.douyin.pro" + + "tobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_TextFormat_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextFormat_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextFormat_descriptor, + new java.lang.String[] { "Color", "Bold", "Italic", "Weight", "ItalicAngle", "FontSize", "UseHeighLightColor", "UseRemoteClor", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java new file mode 100644 index 00000000..4ff0f8d6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextOuterClass.java @@ -0,0 +1,1171 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: Text.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextOuterClass { + private TextOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextOrBuilder extends + // @@protoc_insertion_point(interface_extends:Text) + com.google.protobuf.MessageOrBuilder { + + /** + * string key = 1; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + * string default_patter = 2; + * @return The defaultPatter. + */ + java.lang.String getDefaultPatter(); + /** + * string default_patter = 2; + * @return The bytes for defaultPatter. + */ + com.google.protobuf.ByteString + getDefaultPatterBytes(); + + /** + * .TextFormat default_format = 3; + * @return Whether the defaultFormat field is set. + */ + boolean hasDefaultFormat(); + /** + * .TextFormat default_format = 3; + * @return The defaultFormat. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat(); + /** + * .TextFormat default_format = 3; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder(); + + /** + * .TextPiece pieces_list = 4; + * @return Whether the piecesList field is set. + */ + boolean hasPiecesList(); + /** + * .TextPiece pieces_list = 4; + * @return The piecesList. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList(); + /** + * .TextPiece pieces_list = 4; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder(); + } + /** + * Protobuf type {@code Text} + */ + public static final class Text extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:Text) + TextOrBuilder { + private static final long serialVersionUID = 0L; + // Use Text.newBuilder() to construct. + private Text(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Text() { + key_ = ""; + defaultPatter_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Text(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEFAULT_PATTER_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object defaultPatter_ = ""; + /** + * string default_patter = 2; + * @return The defaultPatter. + */ + @java.lang.Override + public java.lang.String getDefaultPatter() { + java.lang.Object ref = defaultPatter_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPatter_ = s; + return s; + } + } + /** + * string default_patter = 2; + * @return The bytes for defaultPatter. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDefaultPatterBytes() { + java.lang.Object ref = defaultPatter_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPatter_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEFAULT_FORMAT_FIELD_NUMBER = 3; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat defaultFormat_; + /** + * .TextFormat default_format = 3; + * @return Whether the defaultFormat field is set. + */ + @java.lang.Override + public boolean hasDefaultFormat() { + return defaultFormat_ != null; + } + /** + * .TextFormat default_format = 3; + * @return The defaultFormat. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat() { + return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; + } + /** + * .TextFormat default_format = 3; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder() { + return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; + } + + public static final int PIECES_LIST_FIELD_NUMBER = 4; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece piecesList_; + /** + * .TextPiece pieces_list = 4; + * @return Whether the piecesList field is set. + */ + @java.lang.Override + public boolean hasPiecesList() { + return piecesList_ != null; + } + /** + * .TextPiece pieces_list = 4; + * @return The piecesList. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList() { + return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; + } + /** + * .TextPiece pieces_list = 4; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder() { + return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPatter_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPatter_); + } + if (defaultFormat_ != null) { + output.writeMessage(3, getDefaultFormat()); + } + if (piecesList_ != null) { + output.writeMessage(4, getPiecesList()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPatter_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPatter_); + } + if (defaultFormat_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getDefaultFormat()); + } + if (piecesList_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getPiecesList()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (!getDefaultPatter() + .equals(other.getDefaultPatter())) return false; + if (hasDefaultFormat() != other.hasDefaultFormat()) return false; + if (hasDefaultFormat()) { + if (!getDefaultFormat() + .equals(other.getDefaultFormat())) return false; + } + if (hasPiecesList() != other.hasPiecesList()) return false; + if (hasPiecesList()) { + if (!getPiecesList() + .equals(other.getPiecesList())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + DEFAULT_PATTER_FIELD_NUMBER; + hash = (53 * hash) + getDefaultPatter().hashCode(); + if (hasDefaultFormat()) { + hash = (37 * hash) + DEFAULT_FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getDefaultFormat().hashCode(); + } + if (hasPiecesList()) { + hash = (37 * hash) + PIECES_LIST_FIELD_NUMBER; + hash = (53 * hash) + getPiecesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code Text} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:Text) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.TextOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + key_ = ""; + defaultPatter_ = ""; + defaultFormat_ = null; + if (defaultFormatBuilder_ != null) { + defaultFormatBuilder_.dispose(); + defaultFormatBuilder_ = null; + } + piecesList_ = null; + if (piecesListBuilder_ != null) { + piecesListBuilder_.dispose(); + piecesListBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.internal_static_Text_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.key_ = key_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.defaultPatter_ = defaultPatter_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.defaultFormat_ = defaultFormatBuilder_ == null + ? defaultFormat_ + : defaultFormatBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.piecesList_ = piecesListBuilder_ == null + ? piecesList_ + : piecesListBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDefaultPatter().isEmpty()) { + defaultPatter_ = other.defaultPatter_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasDefaultFormat()) { + mergeDefaultFormat(other.getDefaultFormat()); + } + if (other.hasPiecesList()) { + mergePiecesList(other.getPiecesList()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + key_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + defaultPatter_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getDefaultFormatFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getPiecesListFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string key = 1; + * @return This builder for chaining. + */ + public Builder clearKey() { + key_ = getDefaultInstance().getKey(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object defaultPatter_ = ""; + /** + * string default_patter = 2; + * @return The defaultPatter. + */ + public java.lang.String getDefaultPatter() { + java.lang.Object ref = defaultPatter_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPatter_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string default_patter = 2; + * @return The bytes for defaultPatter. + */ + public com.google.protobuf.ByteString + getDefaultPatterBytes() { + java.lang.Object ref = defaultPatter_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPatter_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string default_patter = 2; + * @param value The defaultPatter to set. + * @return This builder for chaining. + */ + public Builder setDefaultPatter( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + defaultPatter_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string default_patter = 2; + * @return This builder for chaining. + */ + public Builder clearDefaultPatter() { + defaultPatter_ = getDefaultInstance().getDefaultPatter(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string default_patter = 2; + * @param value The bytes for defaultPatter to set. + * @return This builder for chaining. + */ + public Builder setDefaultPatterBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + defaultPatter_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat defaultFormat_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> defaultFormatBuilder_; + /** + * .TextFormat default_format = 3; + * @return Whether the defaultFormat field is set. + */ + public boolean hasDefaultFormat() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .TextFormat default_format = 3; + * @return The defaultFormat. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getDefaultFormat() { + if (defaultFormatBuilder_ == null) { + return defaultFormat_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; + } else { + return defaultFormatBuilder_.getMessage(); + } + } + /** + * .TextFormat default_format = 3; + */ + public Builder setDefaultFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { + if (defaultFormatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + defaultFormat_ = value; + } else { + defaultFormatBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .TextFormat default_format = 3; + */ + public Builder setDefaultFormat( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder builderForValue) { + if (defaultFormatBuilder_ == null) { + defaultFormat_ = builderForValue.build(); + } else { + defaultFormatBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .TextFormat default_format = 3; + */ + public Builder mergeDefaultFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { + if (defaultFormatBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + defaultFormat_ != null && + defaultFormat_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) { + getDefaultFormatBuilder().mergeFrom(value); + } else { + defaultFormat_ = value; + } + } else { + defaultFormatBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .TextFormat default_format = 3; + */ + public Builder clearDefaultFormat() { + bitField0_ = (bitField0_ & ~0x00000004); + defaultFormat_ = null; + if (defaultFormatBuilder_ != null) { + defaultFormatBuilder_.dispose(); + defaultFormatBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextFormat default_format = 3; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder getDefaultFormatBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getDefaultFormatFieldBuilder().getBuilder(); + } + /** + * .TextFormat default_format = 3; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getDefaultFormatOrBuilder() { + if (defaultFormatBuilder_ != null) { + return defaultFormatBuilder_.getMessageOrBuilder(); + } else { + return defaultFormat_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : defaultFormat_; + } + } + /** + * .TextFormat default_format = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> + getDefaultFormatFieldBuilder() { + if (defaultFormatBuilder_ == null) { + defaultFormatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder>( + getDefaultFormat(), + getParentForChildren(), + isClean()); + defaultFormat_ = null; + } + return defaultFormatBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece piecesList_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder> piecesListBuilder_; + /** + * .TextPiece pieces_list = 4; + * @return Whether the piecesList field is set. + */ + public boolean hasPiecesList() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .TextPiece pieces_list = 4; + * @return The piecesList. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getPiecesList() { + if (piecesListBuilder_ == null) { + return piecesList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; + } else { + return piecesListBuilder_.getMessage(); + } + } + /** + * .TextPiece pieces_list = 4; + */ + public Builder setPiecesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece value) { + if (piecesListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + piecesList_ = value; + } else { + piecesListBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPiece pieces_list = 4; + */ + public Builder setPiecesList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder builderForValue) { + if (piecesListBuilder_ == null) { + piecesList_ = builderForValue.build(); + } else { + piecesListBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPiece pieces_list = 4; + */ + public Builder mergePiecesList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece value) { + if (piecesListBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + piecesList_ != null && + piecesList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance()) { + getPiecesListBuilder().mergeFrom(value); + } else { + piecesList_ = value; + } + } else { + piecesListBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPiece pieces_list = 4; + */ + public Builder clearPiecesList() { + bitField0_ = (bitField0_ & ~0x00000008); + piecesList_ = null; + if (piecesListBuilder_ != null) { + piecesListBuilder_.dispose(); + piecesListBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPiece pieces_list = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder getPiecesListBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getPiecesListFieldBuilder().getBuilder(); + } + /** + * .TextPiece pieces_list = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder getPiecesListOrBuilder() { + if (piecesListBuilder_ != null) { + return piecesListBuilder_.getMessageOrBuilder(); + } else { + return piecesList_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance() : piecesList_; + } + } + /** + * .TextPiece pieces_list = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder> + getPiecesListFieldBuilder() { + if (piecesListBuilder_ == null) { + piecesListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder>( + getPiecesList(), + getParentForChildren(), + isClean()); + piecesList_ = null; + } + return piecesListBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Text) + } + + // @@protoc_insertion_point(class_scope:Text) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Text parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextOuterClass.Text getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_Text_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_Text_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\nText.proto\032\020TextFormat.proto\032\017TextPiec" + + "e.proto\"q\n\004Text\022\013\n\003key\030\001 \001(\t\022\026\n\016default_" + + "patter\030\002 \001(\t\022#\n\016default_format\030\003 \001(\0132\013.T" + + "extFormat\022\037\n\013pieces_list\030\004 \001(\0132\n.TextPie" + + "ceB8\n6tech.ordinaryroad.live.chat.client" + + ".douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.getDescriptor(), + }); + internal_static_Text_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_Text_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Text_descriptor, + new java.lang.String[] { "Key", "DefaultPatter", "DefaultFormat", "PiecesList", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java new file mode 100644 index 00000000..7e8d34f2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceGiftOuterClass.java @@ -0,0 +1,749 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPieceGift.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPieceGiftOuterClass { + private TextPieceGiftOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPieceGiftOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPieceGift) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 gift_id = 1; + * @return The giftId. + */ + long getGiftId(); + + /** + * .PatternRef name_ref = 2; + * @return Whether the nameRef field is set. + */ + boolean hasNameRef(); + /** + * .PatternRef name_ref = 2; + * @return The nameRef. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef(); + /** + * .PatternRef name_ref = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder(); + } + /** + * Protobuf type {@code TextPieceGift} + */ + public static final class TextPieceGift extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPieceGift) + TextPieceGiftOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPieceGift.newBuilder() to construct. + private TextPieceGift(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPieceGift() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPieceGift(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder.class); + } + + public static final int GIFT_ID_FIELD_NUMBER = 1; + private long giftId_ = 0L; + /** + * uint64 gift_id = 1; + * @return The giftId. + */ + @java.lang.Override + public long getGiftId() { + return giftId_; + } + + public static final int NAME_REF_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef nameRef_; + /** + * .PatternRef name_ref = 2; + * @return Whether the nameRef field is set. + */ + @java.lang.Override + public boolean hasNameRef() { + return nameRef_ != null; + } + /** + * .PatternRef name_ref = 2; + * @return The nameRef. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef() { + return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; + } + /** + * .PatternRef name_ref = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder() { + return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (giftId_ != 0L) { + output.writeUInt64(1, giftId_); + } + if (nameRef_ != null) { + output.writeMessage(2, getNameRef()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (giftId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, giftId_); + } + if (nameRef_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getNameRef()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift) obj; + + if (getGiftId() + != other.getGiftId()) return false; + if (hasNameRef() != other.hasNameRef()) return false; + if (hasNameRef()) { + if (!getNameRef() + .equals(other.getNameRef())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + GIFT_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGiftId()); + if (hasNameRef()) { + hash = (37 * hash) + NAME_REF_FIELD_NUMBER; + hash = (53 * hash) + getNameRef().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPieceGift} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPieceGift) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + giftId_ = 0L; + nameRef_ = null; + if (nameRefBuilder_ != null) { + nameRefBuilder_.dispose(); + nameRefBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.internal_static_TextPieceGift_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.giftId_ = giftId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.nameRef_ = nameRefBuilder_ == null + ? nameRef_ + : nameRefBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance()) return this; + if (other.getGiftId() != 0L) { + setGiftId(other.getGiftId()); + } + if (other.hasNameRef()) { + mergeNameRef(other.getNameRef()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + giftId_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + input.readMessage( + getNameRefFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long giftId_ ; + /** + * uint64 gift_id = 1; + * @return The giftId. + */ + @java.lang.Override + public long getGiftId() { + return giftId_; + } + /** + * uint64 gift_id = 1; + * @param value The giftId to set. + * @return This builder for chaining. + */ + public Builder setGiftId(long value) { + + giftId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 gift_id = 1; + * @return This builder for chaining. + */ + public Builder clearGiftId() { + bitField0_ = (bitField0_ & ~0x00000001); + giftId_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef nameRef_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder> nameRefBuilder_; + /** + * .PatternRef name_ref = 2; + * @return Whether the nameRef field is set. + */ + public boolean hasNameRef() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .PatternRef name_ref = 2; + * @return The nameRef. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef getNameRef() { + if (nameRefBuilder_ == null) { + return nameRef_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; + } else { + return nameRefBuilder_.getMessage(); + } + } + /** + * .PatternRef name_ref = 2; + */ + public Builder setNameRef(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef value) { + if (nameRefBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nameRef_ = value; + } else { + nameRefBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .PatternRef name_ref = 2; + */ + public Builder setNameRef( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder builderForValue) { + if (nameRefBuilder_ == null) { + nameRef_ = builderForValue.build(); + } else { + nameRefBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .PatternRef name_ref = 2; + */ + public Builder mergeNameRef(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef value) { + if (nameRefBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + nameRef_ != null && + nameRef_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance()) { + getNameRefBuilder().mergeFrom(value); + } else { + nameRef_ = value; + } + } else { + nameRefBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .PatternRef name_ref = 2; + */ + public Builder clearNameRef() { + bitField0_ = (bitField0_ & ~0x00000002); + nameRef_ = null; + if (nameRefBuilder_ != null) { + nameRefBuilder_.dispose(); + nameRefBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .PatternRef name_ref = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder getNameRefBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getNameRefFieldBuilder().getBuilder(); + } + /** + * .PatternRef name_ref = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder getNameRefOrBuilder() { + if (nameRefBuilder_ != null) { + return nameRefBuilder_.getMessageOrBuilder(); + } else { + return nameRef_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.getDefaultInstance() : nameRef_; + } + } + /** + * .PatternRef name_ref = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder> + getNameRefFieldBuilder() { + if (nameRefBuilder_ == null) { + nameRefBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.PatternRefOrBuilder>( + getNameRef(), + getParentForChildren(), + isClean()); + nameRef_ = null; + } + return nameRefBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPieceGift) + } + + // @@protoc_insertion_point(class_scope:TextPieceGift) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPieceGift parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPieceGift_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPieceGift_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023TextPieceGift.proto\032\020PatternRef.proto\"" + + "?\n\rTextPieceGift\022\017\n\007gift_id\030\001 \001(\004\022\035\n\010nam" + + "e_ref\030\002 \001(\0132\013.PatternRefB8\n6tech.ordinar" + + "yroad.live.chat.client.douyin.protobuf.d" + + "tob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.getDescriptor(), + }); + internal_static_TextPieceGift_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPieceGift_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPieceGift_descriptor, + new java.lang.String[] { "GiftId", "NameRef", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.PatternRefOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java new file mode 100644 index 00000000..7e4c99c7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceHeartOuterClass.java @@ -0,0 +1,625 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPieceHeart.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPieceHeartOuterClass { + private TextPieceHeartOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPieceHeartOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPieceHeart) + com.google.protobuf.MessageOrBuilder { + + /** + * string color = 1; + * @return The color. + */ + java.lang.String getColor(); + /** + * string color = 1; + * @return The bytes for color. + */ + com.google.protobuf.ByteString + getColorBytes(); + } + /** + * Protobuf type {@code TextPieceHeart} + */ + public static final class TextPieceHeart extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPieceHeart) + TextPieceHeartOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPieceHeart.newBuilder() to construct. + private TextPieceHeart(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPieceHeart() { + color_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPieceHeart(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder.class); + } + + public static final int COLOR_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object color_ = ""; + /** + * string color = 1; + * @return The color. + */ + @java.lang.Override + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } + } + /** + * string color = 1; + * @return The bytes for color. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, color_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, color_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart) obj; + + if (!getColor() + .equals(other.getColor())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + getColor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPieceHeart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPieceHeart) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + color_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.internal_static_TextPieceHeart_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.color_ = color_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance()) return this; + if (!other.getColor().isEmpty()) { + color_ = other.color_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + color_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object color_ = ""; + /** + * string color = 1; + * @return The color. + */ + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string color = 1; + * @return The bytes for color. + */ + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string color = 1; + * @param value The color to set. + * @return This builder for chaining. + */ + public Builder setColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + color_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string color = 1; + * @return This builder for chaining. + */ + public Builder clearColor() { + color_ = getDefaultInstance().getColor(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string color = 1; + * @param value The bytes for color to set. + * @return This builder for chaining. + */ + public Builder setColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + color_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPieceHeart) + } + + // @@protoc_insertion_point(class_scope:TextPieceHeart) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPieceHeart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPieceHeart_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPieceHeart_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024TextPieceHeart.proto\"\037\n\016TextPieceHeart" + + "\022\r\n\005color\030\001 \001(\tB8\n6tech.ordinaryroad.liv" + + "e.chat.client.douyin.protobuf.dtob\006proto" + + "3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_TextPieceHeart_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPieceHeart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPieceHeart_descriptor, + new java.lang.String[] { "Color", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java new file mode 100644 index 00000000..8d3adcb3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceImageOuterClass.java @@ -0,0 +1,750 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPieceImage.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPieceImageOuterClass { + private TextPieceImageOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPieceImageOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPieceImage) + com.google.protobuf.MessageOrBuilder { + + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + boolean hasImage(); + /** + * .Image image = 1; + * @return The image. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage(); + /** + * .Image image = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder(); + + /** + * float scaling_rate = 2; + * @return The scalingRate. + */ + float getScalingRate(); + } + /** + * Protobuf type {@code TextPieceImage} + */ + public static final class TextPieceImage extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPieceImage) + TextPieceImageOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPieceImage.newBuilder() to construct. + private TextPieceImage(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPieceImage() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPieceImage(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder.class); + } + + public static final int IMAGE_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + @java.lang.Override + public boolean hasImage() { + return image_ != null; + } + /** + * .Image image = 1; + * @return The image. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + /** + * .Image image = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + + public static final int SCALING_RATE_FIELD_NUMBER = 2; + private float scalingRate_ = 0F; + /** + * float scaling_rate = 2; + * @return The scalingRate. + */ + @java.lang.Override + public float getScalingRate() { + return scalingRate_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (image_ != null) { + output.writeMessage(1, getImage()); + } + if (java.lang.Float.floatToRawIntBits(scalingRate_) != 0) { + output.writeFloat(2, scalingRate_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (image_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getImage()); + } + if (java.lang.Float.floatToRawIntBits(scalingRate_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, scalingRate_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage) obj; + + if (hasImage() != other.hasImage()) return false; + if (hasImage()) { + if (!getImage() + .equals(other.getImage())) return false; + } + if (java.lang.Float.floatToIntBits(getScalingRate()) + != java.lang.Float.floatToIntBits( + other.getScalingRate())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasImage()) { + hash = (37 * hash) + IMAGE_FIELD_NUMBER; + hash = (53 * hash) + getImage().hashCode(); + } + hash = (37 * hash) + SCALING_RATE_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getScalingRate()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPieceImage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPieceImage) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + image_ = null; + if (imageBuilder_ != null) { + imageBuilder_.dispose(); + imageBuilder_ = null; + } + scalingRate_ = 0F; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.internal_static_TextPieceImage_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.image_ = imageBuilder_ == null + ? image_ + : imageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.scalingRate_ = scalingRate_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance()) return this; + if (other.hasImage()) { + mergeImage(other.getImage()); + } + if (other.getScalingRate() != 0F) { + setScalingRate(other.getScalingRate()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getImageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 21: { + scalingRate_ = input.readFloat(); + bitField0_ |= 0x00000002; + break; + } // case 21 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imageBuilder_; + /** + * .Image image = 1; + * @return Whether the image field is set. + */ + public boolean hasImage() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Image image = 1; + * @return The image. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() { + if (imageBuilder_ == null) { + return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } else { + return imageBuilder_.getMessage(); + } + } + /** + * .Image image = 1; + */ + public Builder setImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + image_ = value; + } else { + imageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder setImage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (imageBuilder_ == null) { + image_ = builderForValue.build(); + } else { + imageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder mergeImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imageBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + image_ != null && + image_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getImageBuilder().mergeFrom(value); + } else { + image_ = value; + } + } else { + imageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public Builder clearImage() { + bitField0_ = (bitField0_ & ~0x00000001); + image_ = null; + if (imageBuilder_ != null) { + imageBuilder_.dispose(); + imageBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image image = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImageBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getImageFieldBuilder().getBuilder(); + } + /** + * .Image image = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() { + if (imageBuilder_ != null) { + return imageBuilder_.getMessageOrBuilder(); + } else { + return image_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_; + } + } + /** + * .Image image = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getImageFieldBuilder() { + if (imageBuilder_ == null) { + imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getImage(), + getParentForChildren(), + isClean()); + image_ = null; + } + return imageBuilder_; + } + + private float scalingRate_ ; + /** + * float scaling_rate = 2; + * @return The scalingRate. + */ + @java.lang.Override + public float getScalingRate() { + return scalingRate_; + } + /** + * float scaling_rate = 2; + * @param value The scalingRate to set. + * @return This builder for chaining. + */ + public Builder setScalingRate(float value) { + + scalingRate_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * float scaling_rate = 2; + * @return This builder for chaining. + */ + public Builder clearScalingRate() { + bitField0_ = (bitField0_ & ~0x00000002); + scalingRate_ = 0F; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPieceImage) + } + + // @@protoc_insertion_point(class_scope:TextPieceImage) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPieceImage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPieceImage_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPieceImage_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024TextPieceImage.proto\032\013Image.proto\"=\n\016T" + + "extPieceImage\022\025\n\005image\030\001 \001(\0132\006.Image\022\024\n\014" + + "scaling_rate\030\002 \001(\002B8\n6tech.ordinaryroad." + + "live.chat.client.douyin.protobuf.dtob\006pr" + + "oto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + }); + internal_static_TextPieceImage_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPieceImage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPieceImage_descriptor, + new java.lang.String[] { "Image", "ScalingRate", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java new file mode 100644 index 00000000..3eecce98 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceOuterClass.java @@ -0,0 +1,1895 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPiece.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPieceOuterClass { + private TextPieceOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPieceOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPiece) + com.google.protobuf.MessageOrBuilder { + + /** + * bool type = 1; + * @return The type. + */ + boolean getType(); + + /** + * .TextFormat format = 2; + * @return Whether the format field is set. + */ + boolean hasFormat(); + /** + * .TextFormat format = 2; + * @return The format. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat(); + /** + * .TextFormat format = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder(); + + /** + * string string_value = 3; + * @return The stringValue. + */ + java.lang.String getStringValue(); + /** + * string string_value = 3; + * @return The bytes for stringValue. + */ + com.google.protobuf.ByteString + getStringValueBytes(); + + /** + * .TextPieceUser user_value = 4; + * @return Whether the userValue field is set. + */ + boolean hasUserValue(); + /** + * .TextPieceUser user_value = 4; + * @return The userValue. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue(); + /** + * .TextPieceUser user_value = 4; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder(); + + /** + * .TextPieceGift gift_value = 5; + * @return Whether the giftValue field is set. + */ + boolean hasGiftValue(); + /** + * .TextPieceGift gift_value = 5; + * @return The giftValue. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue(); + /** + * .TextPieceGift gift_value = 5; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder(); + + /** + * .TextPieceHeart heart_value = 6; + * @return Whether the heartValue field is set. + */ + boolean hasHeartValue(); + /** + * .TextPieceHeart heart_value = 6; + * @return The heartValue. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue(); + /** + * .TextPieceHeart heart_value = 6; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder(); + + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return Whether the patternRefValue field is set. + */ + boolean hasPatternRefValue(); + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return The patternRefValue. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue(); + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder(); + + /** + * .TextPieceImage image_value = 8; + * @return Whether the imageValue field is set. + */ + boolean hasImageValue(); + /** + * .TextPieceImage image_value = 8; + * @return The imageValue. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue(); + /** + * .TextPieceImage image_value = 8; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder(); + } + /** + * Protobuf type {@code TextPiece} + */ + public static final class TextPiece extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPiece) + TextPieceOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPiece.newBuilder() to construct. + private TextPiece(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPiece() { + stringValue_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPiece(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder.class); + } + + public static final int TYPE_FIELD_NUMBER = 1; + private boolean type_ = false; + /** + * bool type = 1; + * @return The type. + */ + @java.lang.Override + public boolean getType() { + return type_; + } + + public static final int FORMAT_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat format_; + /** + * .TextFormat format = 2; + * @return Whether the format field is set. + */ + @java.lang.Override + public boolean hasFormat() { + return format_ != null; + } + /** + * .TextFormat format = 2; + * @return The format. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat() { + return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; + } + /** + * .TextFormat format = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder() { + return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; + } + + public static final int STRING_VALUE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object stringValue_ = ""; + /** + * string string_value = 3; + * @return The stringValue. + */ + @java.lang.Override + public java.lang.String getStringValue() { + java.lang.Object ref = stringValue_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stringValue_ = s; + return s; + } + } + /** + * string string_value = 3; + * @return The bytes for stringValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = stringValue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stringValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_VALUE_FIELD_NUMBER = 4; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser userValue_; + /** + * .TextPieceUser user_value = 4; + * @return Whether the userValue field is set. + */ + @java.lang.Override + public boolean hasUserValue() { + return userValue_ != null; + } + /** + * .TextPieceUser user_value = 4; + * @return The userValue. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue() { + return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; + } + /** + * .TextPieceUser user_value = 4; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder() { + return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; + } + + public static final int GIFT_VALUE_FIELD_NUMBER = 5; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift giftValue_; + /** + * .TextPieceGift gift_value = 5; + * @return Whether the giftValue field is set. + */ + @java.lang.Override + public boolean hasGiftValue() { + return giftValue_ != null; + } + /** + * .TextPieceGift gift_value = 5; + * @return The giftValue. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue() { + return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; + } + /** + * .TextPieceGift gift_value = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder() { + return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; + } + + public static final int HEART_VALUE_FIELD_NUMBER = 6; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart heartValue_; + /** + * .TextPieceHeart heart_value = 6; + * @return Whether the heartValue field is set. + */ + @java.lang.Override + public boolean hasHeartValue() { + return heartValue_ != null; + } + /** + * .TextPieceHeart heart_value = 6; + * @return The heartValue. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue() { + return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; + } + /** + * .TextPieceHeart heart_value = 6; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder() { + return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; + } + + public static final int PATTERN_REF_VALUE_FIELD_NUMBER = 7; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef patternRefValue_; + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return Whether the patternRefValue field is set. + */ + @java.lang.Override + public boolean hasPatternRefValue() { + return patternRefValue_ != null; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return The patternRefValue. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue() { + return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder() { + return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; + } + + public static final int IMAGE_VALUE_FIELD_NUMBER = 8; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage imageValue_; + /** + * .TextPieceImage image_value = 8; + * @return Whether the imageValue field is set. + */ + @java.lang.Override + public boolean hasImageValue() { + return imageValue_ != null; + } + /** + * .TextPieceImage image_value = 8; + * @return The imageValue. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue() { + return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; + } + /** + * .TextPieceImage image_value = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder() { + return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (type_ != false) { + output.writeBool(1, type_); + } + if (format_ != null) { + output.writeMessage(2, getFormat()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stringValue_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, stringValue_); + } + if (userValue_ != null) { + output.writeMessage(4, getUserValue()); + } + if (giftValue_ != null) { + output.writeMessage(5, getGiftValue()); + } + if (heartValue_ != null) { + output.writeMessage(6, getHeartValue()); + } + if (patternRefValue_ != null) { + output.writeMessage(7, getPatternRefValue()); + } + if (imageValue_ != null) { + output.writeMessage(8, getImageValue()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (type_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, type_); + } + if (format_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getFormat()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stringValue_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, stringValue_); + } + if (userValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getUserValue()); + } + if (giftValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getGiftValue()); + } + if (heartValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getHeartValue()); + } + if (patternRefValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getPatternRefValue()); + } + if (imageValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, getImageValue()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece) obj; + + if (getType() + != other.getType()) return false; + if (hasFormat() != other.hasFormat()) return false; + if (hasFormat()) { + if (!getFormat() + .equals(other.getFormat())) return false; + } + if (!getStringValue() + .equals(other.getStringValue())) return false; + if (hasUserValue() != other.hasUserValue()) return false; + if (hasUserValue()) { + if (!getUserValue() + .equals(other.getUserValue())) return false; + } + if (hasGiftValue() != other.hasGiftValue()) return false; + if (hasGiftValue()) { + if (!getGiftValue() + .equals(other.getGiftValue())) return false; + } + if (hasHeartValue() != other.hasHeartValue()) return false; + if (hasHeartValue()) { + if (!getHeartValue() + .equals(other.getHeartValue())) return false; + } + if (hasPatternRefValue() != other.hasPatternRefValue()) return false; + if (hasPatternRefValue()) { + if (!getPatternRefValue() + .equals(other.getPatternRefValue())) return false; + } + if (hasImageValue() != other.hasImageValue()) return false; + if (hasImageValue()) { + if (!getImageValue() + .equals(other.getImageValue())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getType()); + if (hasFormat()) { + hash = (37 * hash) + FORMAT_FIELD_NUMBER; + hash = (53 * hash) + getFormat().hashCode(); + } + hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getStringValue().hashCode(); + if (hasUserValue()) { + hash = (37 * hash) + USER_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getUserValue().hashCode(); + } + if (hasGiftValue()) { + hash = (37 * hash) + GIFT_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getGiftValue().hashCode(); + } + if (hasHeartValue()) { + hash = (37 * hash) + HEART_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getHeartValue().hashCode(); + } + if (hasPatternRefValue()) { + hash = (37 * hash) + PATTERN_REF_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getPatternRefValue().hashCode(); + } + if (hasImageValue()) { + hash = (37 * hash) + IMAGE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getImageValue().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPiece} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPiece) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPieceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + type_ = false; + format_ = null; + if (formatBuilder_ != null) { + formatBuilder_.dispose(); + formatBuilder_ = null; + } + stringValue_ = ""; + userValue_ = null; + if (userValueBuilder_ != null) { + userValueBuilder_.dispose(); + userValueBuilder_ = null; + } + giftValue_ = null; + if (giftValueBuilder_ != null) { + giftValueBuilder_.dispose(); + giftValueBuilder_ = null; + } + heartValue_ = null; + if (heartValueBuilder_ != null) { + heartValueBuilder_.dispose(); + heartValueBuilder_ = null; + } + patternRefValue_ = null; + if (patternRefValueBuilder_ != null) { + patternRefValueBuilder_.dispose(); + patternRefValueBuilder_ = null; + } + imageValue_ = null; + if (imageValueBuilder_ != null) { + imageValueBuilder_.dispose(); + imageValueBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.internal_static_TextPiece_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.format_ = formatBuilder_ == null + ? format_ + : formatBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.stringValue_ = stringValue_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.userValue_ = userValueBuilder_ == null + ? userValue_ + : userValueBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.giftValue_ = giftValueBuilder_ == null + ? giftValue_ + : giftValueBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.heartValue_ = heartValueBuilder_ == null + ? heartValue_ + : heartValueBuilder_.build(); + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.patternRefValue_ = patternRefValueBuilder_ == null + ? patternRefValue_ + : patternRefValueBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.imageValue_ = imageValueBuilder_ == null + ? imageValue_ + : imageValueBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece.getDefaultInstance()) return this; + if (other.getType() != false) { + setType(other.getType()); + } + if (other.hasFormat()) { + mergeFormat(other.getFormat()); + } + if (!other.getStringValue().isEmpty()) { + stringValue_ = other.stringValue_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasUserValue()) { + mergeUserValue(other.getUserValue()); + } + if (other.hasGiftValue()) { + mergeGiftValue(other.getGiftValue()); + } + if (other.hasHeartValue()) { + mergeHeartValue(other.getHeartValue()); + } + if (other.hasPatternRefValue()) { + mergePatternRefValue(other.getPatternRefValue()); + } + if (other.hasImageValue()) { + mergeImageValue(other.getImageValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + type_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + input.readMessage( + getFormatFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + stringValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getUserValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + input.readMessage( + getGiftValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + input.readMessage( + getHeartValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + input.readMessage( + getPatternRefValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + input.readMessage( + getImageValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean type_ ; + /** + * bool type = 1; + * @return The type. + */ + @java.lang.Override + public boolean getType() { + return type_; + } + /** + * bool type = 1; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(boolean value) { + + type_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool type = 1; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000001); + type_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat format_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> formatBuilder_; + /** + * .TextFormat format = 2; + * @return Whether the format field is set. + */ + public boolean hasFormat() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .TextFormat format = 2; + * @return The format. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat getFormat() { + if (formatBuilder_ == null) { + return format_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; + } else { + return formatBuilder_.getMessage(); + } + } + /** + * .TextFormat format = 2; + */ + public Builder setFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { + if (formatBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + format_ = value; + } else { + formatBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextFormat format = 2; + */ + public Builder setFormat( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder builderForValue) { + if (formatBuilder_ == null) { + format_ = builderForValue.build(); + } else { + formatBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextFormat format = 2; + */ + public Builder mergeFormat(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat value) { + if (formatBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + format_ != null && + format_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance()) { + getFormatBuilder().mergeFrom(value); + } else { + format_ = value; + } + } else { + formatBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .TextFormat format = 2; + */ + public Builder clearFormat() { + bitField0_ = (bitField0_ & ~0x00000002); + format_ = null; + if (formatBuilder_ != null) { + formatBuilder_.dispose(); + formatBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextFormat format = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder getFormatBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getFormatFieldBuilder().getBuilder(); + } + /** + * .TextFormat format = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder getFormatOrBuilder() { + if (formatBuilder_ != null) { + return formatBuilder_.getMessageOrBuilder(); + } else { + return format_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.getDefaultInstance() : format_; + } + } + /** + * .TextFormat format = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder> + getFormatFieldBuilder() { + if (formatBuilder_ == null) { + formatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormat.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.TextFormatOrBuilder>( + getFormat(), + getParentForChildren(), + isClean()); + format_ = null; + } + return formatBuilder_; + } + + private java.lang.Object stringValue_ = ""; + /** + * string string_value = 3; + * @return The stringValue. + */ + public java.lang.String getStringValue() { + java.lang.Object ref = stringValue_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + stringValue_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string string_value = 3; + * @return The bytes for stringValue. + */ + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = stringValue_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + stringValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string string_value = 3; + * @param value The stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + stringValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string string_value = 3; + * @return This builder for chaining. + */ + public Builder clearStringValue() { + stringValue_ = getDefaultInstance().getStringValue(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string string_value = 3; + * @param value The bytes for stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + stringValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser userValue_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder> userValueBuilder_; + /** + * .TextPieceUser user_value = 4; + * @return Whether the userValue field is set. + */ + public boolean hasUserValue() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .TextPieceUser user_value = 4; + * @return The userValue. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getUserValue() { + if (userValueBuilder_ == null) { + return userValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; + } else { + return userValueBuilder_.getMessage(); + } + } + /** + * .TextPieceUser user_value = 4; + */ + public Builder setUserValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser value) { + if (userValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + userValue_ = value; + } else { + userValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPieceUser user_value = 4; + */ + public Builder setUserValue( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder builderForValue) { + if (userValueBuilder_ == null) { + userValue_ = builderForValue.build(); + } else { + userValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPieceUser user_value = 4; + */ + public Builder mergeUserValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser value) { + if (userValueBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + userValue_ != null && + userValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance()) { + getUserValueBuilder().mergeFrom(value); + } else { + userValue_ = value; + } + } else { + userValueBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .TextPieceUser user_value = 4; + */ + public Builder clearUserValue() { + bitField0_ = (bitField0_ & ~0x00000008); + userValue_ = null; + if (userValueBuilder_ != null) { + userValueBuilder_.dispose(); + userValueBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPieceUser user_value = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder getUserValueBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getUserValueFieldBuilder().getBuilder(); + } + /** + * .TextPieceUser user_value = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder getUserValueOrBuilder() { + if (userValueBuilder_ != null) { + return userValueBuilder_.getMessageOrBuilder(); + } else { + return userValue_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance() : userValue_; + } + } + /** + * .TextPieceUser user_value = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder> + getUserValueFieldBuilder() { + if (userValueBuilder_ == null) { + userValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder>( + getUserValue(), + getParentForChildren(), + isClean()); + userValue_ = null; + } + return userValueBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift giftValue_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder> giftValueBuilder_; + /** + * .TextPieceGift gift_value = 5; + * @return Whether the giftValue field is set. + */ + public boolean hasGiftValue() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .TextPieceGift gift_value = 5; + * @return The giftValue. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift getGiftValue() { + if (giftValueBuilder_ == null) { + return giftValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; + } else { + return giftValueBuilder_.getMessage(); + } + } + /** + * .TextPieceGift gift_value = 5; + */ + public Builder setGiftValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift value) { + if (giftValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + giftValue_ = value; + } else { + giftValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .TextPieceGift gift_value = 5; + */ + public Builder setGiftValue( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder builderForValue) { + if (giftValueBuilder_ == null) { + giftValue_ = builderForValue.build(); + } else { + giftValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .TextPieceGift gift_value = 5; + */ + public Builder mergeGiftValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift value) { + if (giftValueBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + giftValue_ != null && + giftValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance()) { + getGiftValueBuilder().mergeFrom(value); + } else { + giftValue_ = value; + } + } else { + giftValueBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .TextPieceGift gift_value = 5; + */ + public Builder clearGiftValue() { + bitField0_ = (bitField0_ & ~0x00000010); + giftValue_ = null; + if (giftValueBuilder_ != null) { + giftValueBuilder_.dispose(); + giftValueBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPieceGift gift_value = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder getGiftValueBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getGiftValueFieldBuilder().getBuilder(); + } + /** + * .TextPieceGift gift_value = 5; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder getGiftValueOrBuilder() { + if (giftValueBuilder_ != null) { + return giftValueBuilder_.getMessageOrBuilder(); + } else { + return giftValue_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.getDefaultInstance() : giftValue_; + } + } + /** + * .TextPieceGift gift_value = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder> + getGiftValueFieldBuilder() { + if (giftValueBuilder_ == null) { + giftValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGift.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.TextPieceGiftOrBuilder>( + getGiftValue(), + getParentForChildren(), + isClean()); + giftValue_ = null; + } + return giftValueBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart heartValue_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder> heartValueBuilder_; + /** + * .TextPieceHeart heart_value = 6; + * @return Whether the heartValue field is set. + */ + public boolean hasHeartValue() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * .TextPieceHeart heart_value = 6; + * @return The heartValue. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart getHeartValue() { + if (heartValueBuilder_ == null) { + return heartValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; + } else { + return heartValueBuilder_.getMessage(); + } + } + /** + * .TextPieceHeart heart_value = 6; + */ + public Builder setHeartValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart value) { + if (heartValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + heartValue_ = value; + } else { + heartValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .TextPieceHeart heart_value = 6; + */ + public Builder setHeartValue( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder builderForValue) { + if (heartValueBuilder_ == null) { + heartValue_ = builderForValue.build(); + } else { + heartValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .TextPieceHeart heart_value = 6; + */ + public Builder mergeHeartValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart value) { + if (heartValueBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + heartValue_ != null && + heartValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance()) { + getHeartValueBuilder().mergeFrom(value); + } else { + heartValue_ = value; + } + } else { + heartValueBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .TextPieceHeart heart_value = 6; + */ + public Builder clearHeartValue() { + bitField0_ = (bitField0_ & ~0x00000020); + heartValue_ = null; + if (heartValueBuilder_ != null) { + heartValueBuilder_.dispose(); + heartValueBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPieceHeart heart_value = 6; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder getHeartValueBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getHeartValueFieldBuilder().getBuilder(); + } + /** + * .TextPieceHeart heart_value = 6; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder getHeartValueOrBuilder() { + if (heartValueBuilder_ != null) { + return heartValueBuilder_.getMessageOrBuilder(); + } else { + return heartValue_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.getDefaultInstance() : heartValue_; + } + } + /** + * .TextPieceHeart heart_value = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder> + getHeartValueFieldBuilder() { + if (heartValueBuilder_ == null) { + heartValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeart.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.TextPieceHeartOrBuilder>( + getHeartValue(), + getParentForChildren(), + isClean()); + heartValue_ = null; + } + return heartValueBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef patternRefValue_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder> patternRefValueBuilder_; + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return Whether the patternRefValue field is set. + */ + public boolean hasPatternRefValue() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + * @return The patternRefValue. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getPatternRefValue() { + if (patternRefValueBuilder_ == null) { + return patternRefValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; + } else { + return patternRefValueBuilder_.getMessage(); + } + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public Builder setPatternRefValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef value) { + if (patternRefValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + patternRefValue_ = value; + } else { + patternRefValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public Builder setPatternRefValue( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder builderForValue) { + if (patternRefValueBuilder_ == null) { + patternRefValue_ = builderForValue.build(); + } else { + patternRefValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public Builder mergePatternRefValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef value) { + if (patternRefValueBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + patternRefValue_ != null && + patternRefValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance()) { + getPatternRefValueBuilder().mergeFrom(value); + } else { + patternRefValue_ = value; + } + } else { + patternRefValueBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public Builder clearPatternRefValue() { + bitField0_ = (bitField0_ & ~0x00000040); + patternRefValue_ = null; + if (patternRefValueBuilder_ != null) { + patternRefValueBuilder_.dispose(); + patternRefValueBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder getPatternRefValueBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getPatternRefValueFieldBuilder().getBuilder(); + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder getPatternRefValueOrBuilder() { + if (patternRefValueBuilder_ != null) { + return patternRefValueBuilder_.getMessageOrBuilder(); + } else { + return patternRefValue_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance() : patternRefValue_; + } + } + /** + * .TextPiecePatternRef pattern_ref_value = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder> + getPatternRefValueFieldBuilder() { + if (patternRefValueBuilder_ == null) { + patternRefValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder>( + getPatternRefValue(), + getParentForChildren(), + isClean()); + patternRefValue_ = null; + } + return patternRefValueBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage imageValue_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder> imageValueBuilder_; + /** + * .TextPieceImage image_value = 8; + * @return Whether the imageValue field is set. + */ + public boolean hasImageValue() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + * .TextPieceImage image_value = 8; + * @return The imageValue. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage getImageValue() { + if (imageValueBuilder_ == null) { + return imageValue_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; + } else { + return imageValueBuilder_.getMessage(); + } + } + /** + * .TextPieceImage image_value = 8; + */ + public Builder setImageValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage value) { + if (imageValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + imageValue_ = value; + } else { + imageValueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .TextPieceImage image_value = 8; + */ + public Builder setImageValue( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder builderForValue) { + if (imageValueBuilder_ == null) { + imageValue_ = builderForValue.build(); + } else { + imageValueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .TextPieceImage image_value = 8; + */ + public Builder mergeImageValue(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage value) { + if (imageValueBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + imageValue_ != null && + imageValue_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance()) { + getImageValueBuilder().mergeFrom(value); + } else { + imageValue_ = value; + } + } else { + imageValueBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .TextPieceImage image_value = 8; + */ + public Builder clearImageValue() { + bitField0_ = (bitField0_ & ~0x00000080); + imageValue_ = null; + if (imageValueBuilder_ != null) { + imageValueBuilder_.dispose(); + imageValueBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .TextPieceImage image_value = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder getImageValueBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getImageValueFieldBuilder().getBuilder(); + } + /** + * .TextPieceImage image_value = 8; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder getImageValueOrBuilder() { + if (imageValueBuilder_ != null) { + return imageValueBuilder_.getMessageOrBuilder(); + } else { + return imageValue_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.getDefaultInstance() : imageValue_; + } + } + /** + * .TextPieceImage image_value = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder> + getImageValueFieldBuilder() { + if (imageValueBuilder_ == null) { + imageValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImage.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.TextPieceImageOrBuilder>( + getImageValue(), + getParentForChildren(), + isClean()); + imageValue_ = null; + } + return imageValueBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPiece) + } + + // @@protoc_insertion_point(class_scope:TextPiece) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPiece parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceOuterClass.TextPiece getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPiece_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPiece_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\017TextPiece.proto\032\020TextFormat.proto\032\024Tex" + + "tPieceImage.proto\032\031TextPiecePatternRef.p" + + "roto\032\024TextPieceHeart.proto\032\023TextPieceGif" + + "t.proto\032\023TextPieceUser.proto\"\221\002\n\tTextPie" + + "ce\022\014\n\004type\030\001 \001(\010\022\033\n\006format\030\002 \001(\0132\013.TextF" + + "ormat\022\024\n\014string_value\030\003 \001(\t\022\"\n\nuser_valu" + + "e\030\004 \001(\0132\016.TextPieceUser\022\"\n\ngift_value\030\005 " + + "\001(\0132\016.TextPieceGift\022$\n\013heart_value\030\006 \001(\013" + + "2\017.TextPieceHeart\022/\n\021pattern_ref_value\030\007" + + " \001(\0132\024.TextPiecePatternRef\022$\n\013image_valu" + + "e\030\010 \001(\0132\017.TextPieceImageB8\n6tech.ordinar" + + "yroad.live.chat.client.douyin.protobuf.d" + + "tob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.getDescriptor(), + }); + internal_static_TextPiece_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPiece_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPiece_descriptor, + new java.lang.String[] { "Type", "Format", "StringValue", "UserValue", "GiftValue", "HeartValue", "PatternRefValue", "ImageValue", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextFormatOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceImageOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceHeartOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceGiftOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java new file mode 100644 index 00000000..1a928e54 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPiecePatternRefOuterClass.java @@ -0,0 +1,773 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPiecePatternRef.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPiecePatternRefOuterClass { + private TextPiecePatternRefOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPiecePatternRefOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPiecePatternRef) + com.google.protobuf.MessageOrBuilder { + + /** + * string key = 1; + * @return The key. + */ + java.lang.String getKey(); + /** + * string key = 1; + * @return The bytes for key. + */ + com.google.protobuf.ByteString + getKeyBytes(); + + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + java.lang.String getDefaultPattern(); + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + com.google.protobuf.ByteString + getDefaultPatternBytes(); + } + /** + * Protobuf type {@code TextPiecePatternRef} + */ + public static final class TextPiecePatternRef extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPiecePatternRef) + TextPiecePatternRefOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPiecePatternRef.newBuilder() to construct. + private TextPiecePatternRef(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPiecePatternRef() { + key_ = ""; + defaultPattern_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPiecePatternRef(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + @java.lang.Override + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEFAULT_PATTERN_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object defaultPattern_ = ""; + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + @java.lang.Override + public java.lang.String getDefaultPattern() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPattern_ = s; + return s; + } + } + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDefaultPatternBytes() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defaultPattern_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(defaultPattern_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, defaultPattern_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (!getDefaultPattern() + .equals(other.getDefaultPattern())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (37 * hash) + DEFAULT_PATTERN_FIELD_NUMBER; + hash = (53 * hash) + getDefaultPattern().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPiecePatternRef} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPiecePatternRef) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRefOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + key_ = ""; + defaultPattern_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.internal_static_TextPiecePatternRef_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.key_ = key_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.defaultPattern_ = defaultPattern_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef.getDefaultInstance()) return this; + if (!other.getKey().isEmpty()) { + key_ = other.key_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDefaultPattern().isEmpty()) { + defaultPattern_ = other.defaultPattern_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + key_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + defaultPattern_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object key_ = ""; + /** + * string key = 1; + * @return The key. + */ + public java.lang.String getKey() { + java.lang.Object ref = key_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + key_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string key = 1; + * @return The bytes for key. + */ + public com.google.protobuf.ByteString + getKeyBytes() { + java.lang.Object ref = key_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + key_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string key = 1; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string key = 1; + * @return This builder for chaining. + */ + public Builder clearKey() { + key_ = getDefaultInstance().getKey(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string key = 1; + * @param value The bytes for key to set. + * @return This builder for chaining. + */ + public Builder setKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object defaultPattern_ = ""; + /** + * string default_pattern = 2; + * @return The defaultPattern. + */ + public java.lang.String getDefaultPattern() { + java.lang.Object ref = defaultPattern_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + defaultPattern_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string default_pattern = 2; + * @return The bytes for defaultPattern. + */ + public com.google.protobuf.ByteString + getDefaultPatternBytes() { + java.lang.Object ref = defaultPattern_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + defaultPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string default_pattern = 2; + * @param value The defaultPattern to set. + * @return This builder for chaining. + */ + public Builder setDefaultPattern( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + defaultPattern_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string default_pattern = 2; + * @return This builder for chaining. + */ + public Builder clearDefaultPattern() { + defaultPattern_ = getDefaultInstance().getDefaultPattern(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string default_pattern = 2; + * @param value The bytes for defaultPattern to set. + * @return This builder for chaining. + */ + public Builder setDefaultPatternBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + defaultPattern_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPiecePatternRef) + } + + // @@protoc_insertion_point(class_scope:TextPiecePatternRef) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPiecePatternRef parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPiecePatternRefOuterClass.TextPiecePatternRef getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPiecePatternRef_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPiecePatternRef_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\031TextPiecePatternRef.proto\";\n\023TextPiece" + + "PatternRef\022\013\n\003key\030\001 \001(\t\022\027\n\017default_patte" + + "rn\030\002 \001(\tB8\n6tech.ordinaryroad.live.chat." + + "client.douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_TextPiecePatternRef_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPiecePatternRef_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPiecePatternRef_descriptor, + new java.lang.String[] { "Key", "DefaultPattern", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java new file mode 100644 index 00000000..2d0fc474 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/TextPieceUserOuterClass.java @@ -0,0 +1,748 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: TextPieceUser.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class TextPieceUserOuterClass { + private TextPieceUserOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TextPieceUserOrBuilder extends + // @@protoc_insertion_point(interface_extends:TextPieceUser) + com.google.protobuf.MessageOrBuilder { + + /** + * .User user = 1; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .User user = 1; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser(); + /** + * .User user = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder(); + + /** + * bool with_colon = 2; + * @return The withColon. + */ + boolean getWithColon(); + } + /** + * Protobuf type {@code TextPieceUser} + */ + public static final class TextPieceUser extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:TextPieceUser) + TextPieceUserOrBuilder { + private static final long serialVersionUID = 0L; + // Use TextPieceUser.newBuilder() to construct. + private TextPieceUser(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TextPieceUser() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TextPieceUser(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder.class); + } + + public static final int USER_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + /** + * .User user = 1; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .User user = 1; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + /** + * .User user = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + + public static final int WITH_COLON_FIELD_NUMBER = 2; + private boolean withColon_ = false; + /** + * bool with_colon = 2; + * @return The withColon. + */ + @java.lang.Override + public boolean getWithColon() { + return withColon_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (user_ != null) { + output.writeMessage(1, getUser()); + } + if (withColon_ != false) { + output.writeBool(2, withColon_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getUser()); + } + if (withColon_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, withColon_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser) obj; + + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getWithColon() + != other.getWithColon()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + WITH_COLON_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getWithColon()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code TextPieceUser} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:TextPieceUser) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUserOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + withColon_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.internal_static_TextPieceUser_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.withColon_ = withColon_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser.getDefaultInstance()) return this; + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getWithColon() != false) { + setWithColon(other.getWithColon()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + withColon_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> userBuilder_; + /** + * .User user = 1; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .User user = 1; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .User user = 1; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User user = 1; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User user = 1; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User user = 1; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000001); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User user = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getUserBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .User user = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance() : user_; + } + } + /** + * .User user = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private boolean withColon_ ; + /** + * bool with_colon = 2; + * @return The withColon. + */ + @java.lang.Override + public boolean getWithColon() { + return withColon_; + } + /** + * bool with_colon = 2; + * @param value The withColon to set. + * @return This builder for chaining. + */ + public Builder setWithColon(boolean value) { + + withColon_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool with_colon = 2; + * @return This builder for chaining. + */ + public Builder clearWithColon() { + bitField0_ = (bitField0_ & ~0x00000002); + withColon_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:TextPieceUser) + } + + // @@protoc_insertion_point(class_scope:TextPieceUser) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TextPieceUser parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.TextPieceUserOuterClass.TextPieceUser getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_TextPieceUser_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_TextPieceUser_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023TextPieceUser.proto\032\nUser.proto\"8\n\rTex" + + "tPieceUser\022\023\n\004user\030\001 \001(\0132\005.User\022\022\n\nwith_" + + "colon\030\002 \001(\010B8\n6tech.ordinaryroad.live.ch" + + "at.client.douyin.protobuf.dtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(), + }); + internal_static_TextPieceUser_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_TextPieceUser_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_TextPieceUser_descriptor, + new java.lang.String[] { "User", "WithColon", }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java new file mode 100644 index 00000000..e8d3b539 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/java/tech/ordinaryroad/live/chat/client/douyin/protobuf/dto/UserOuterClass.java @@ -0,0 +1,33138 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: User.proto + +package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto; + +public final class UserOuterClass { + private UserOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface UserOrBuilder extends + // @@protoc_insertion_point(interface_extends:User) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 id = 1; + * @return The id. + */ + long getId(); + + /** + * uint64 shortId = 2; + * @return The shortId. + */ + long getShortId(); + + /** + * string nickname = 3; + * @return The nickname. + */ + java.lang.String getNickname(); + /** + * string nickname = 3; + * @return The bytes for nickname. + */ + com.google.protobuf.ByteString + getNicknameBytes(); + + /** + * uint32 gender = 4; + * @return The gender. + */ + int getGender(); + + /** + * string signature = 5; + * @return The signature. + */ + java.lang.String getSignature(); + /** + * string signature = 5; + * @return The bytes for signature. + */ + com.google.protobuf.ByteString + getSignatureBytes(); + + /** + * uint32 level = 6; + * @return The level. + */ + int getLevel(); + + /** + * uint64 birthday = 7; + * @return The birthday. + */ + long getBirthday(); + + /** + * string telephone = 8; + * @return The telephone. + */ + java.lang.String getTelephone(); + /** + * string telephone = 8; + * @return The bytes for telephone. + */ + com.google.protobuf.ByteString + getTelephoneBytes(); + + /** + * .Image avatarThumb = 9; + * @return Whether the avatarThumb field is set. + */ + boolean hasAvatarThumb(); + /** + * .Image avatarThumb = 9; + * @return The avatarThumb. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb(); + /** + * .Image avatarThumb = 9; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder(); + + /** + * .Image avatarMedium = 10; + * @return Whether the avatarMedium field is set. + */ + boolean hasAvatarMedium(); + /** + * .Image avatarMedium = 10; + * @return The avatarMedium. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium(); + /** + * .Image avatarMedium = 10; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder(); + + /** + * .Image avatarLarge = 11; + * @return Whether the avatarLarge field is set. + */ + boolean hasAvatarLarge(); + /** + * .Image avatarLarge = 11; + * @return The avatarLarge. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge(); + /** + * .Image avatarLarge = 11; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder(); + + /** + * bool verified = 12; + * @return The verified. + */ + boolean getVerified(); + + /** + * int32 experience = 13; + * @return The experience. + */ + int getExperience(); + + /** + * string city = 14; + * @return The city. + */ + java.lang.String getCity(); + /** + * string city = 14; + * @return The bytes for city. + */ + com.google.protobuf.ByteString + getCityBytes(); + + /** + * int32 status = 15; + * @return The status. + */ + int getStatus(); + + /** + * int64 createTime = 16; + * @return The createTime. + */ + long getCreateTime(); + + /** + * int64 modifyTime = 17; + * @return The modifyTime. + */ + long getModifyTime(); + + /** + * int32 secret = 18; + * @return The secret. + */ + int getSecret(); + + /** + * string shareQrcodeUri = 19; + * @return The shareQrcodeUri. + */ + java.lang.String getShareQrcodeUri(); + /** + * string shareQrcodeUri = 19; + * @return The bytes for shareQrcodeUri. + */ + com.google.protobuf.ByteString + getShareQrcodeUriBytes(); + + /** + * int32 incomeSharePercent = 20; + * @return The incomeSharePercent. + */ + int getIncomeSharePercent(); + + /** + * .Image badgeImageListList = 21; + * @return Whether the badgeImageListList field is set. + */ + boolean hasBadgeImageListList(); + /** + * .Image badgeImageListList = 21; + * @return The badgeImageListList. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList(); + /** + * .Image badgeImageListList = 21; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder(); + + /** + * .User.FollowInfo followInfo = 22; + * @return Whether the followInfo field is set. + */ + boolean hasFollowInfo(); + /** + * .User.FollowInfo followInfo = 22; + * @return The followInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo(); + /** + * .User.FollowInfo followInfo = 22; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder(); + + /** + * .User.PayGrade payGrade = 23; + * @return Whether the payGrade field is set. + */ + boolean hasPayGrade(); + /** + * .User.PayGrade payGrade = 23; + * @return The payGrade. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade(); + /** + * .User.PayGrade payGrade = 23; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder(); + + /** + * .User.FansClub fansClub = 24; + * @return Whether the fansClub field is set. + */ + boolean hasFansClub(); + /** + * .User.FansClub fansClub = 24; + * @return The fansClub. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub(); + /** + * .User.FansClub fansClub = 24; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder(); + + /** + * .User.Border border = 25; + * @return Whether the border field is set. + */ + boolean hasBorder(); + /** + * .User.Border border = 25; + * @return The border. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder(); + /** + * .User.Border border = 25; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder(); + + /** + * string specialId = 26; + * @return The specialId. + */ + java.lang.String getSpecialId(); + /** + * string specialId = 26; + * @return The bytes for specialId. + */ + com.google.protobuf.ByteString + getSpecialIdBytes(); + + /** + * .Image avatarBorder = 27; + * @return Whether the avatarBorder field is set. + */ + boolean hasAvatarBorder(); + /** + * .Image avatarBorder = 27; + * @return The avatarBorder. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder(); + /** + * .Image avatarBorder = 27; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder(); + + /** + * .Image medal = 28; + * @return Whether the medal field is set. + */ + boolean hasMedal(); + /** + * .Image medal = 28; + * @return The medal. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal(); + /** + * .Image medal = 28; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder(); + + /** + * repeated .Image realTimeIconsList = 29; + */ + java.util.List + getRealTimeIconsListList(); + /** + * repeated .Image realTimeIconsList = 29; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index); + /** + * repeated .Image realTimeIconsList = 29; + */ + int getRealTimeIconsListCount(); + /** + * repeated .Image realTimeIconsList = 29; + */ + java.util.List + getRealTimeIconsListOrBuilderList(); + /** + * repeated .Image realTimeIconsList = 29; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( + int index); + + /** + * repeated .Image newRealTimeIconsList = 30; + */ + java.util.List + getNewRealTimeIconsListList(); + /** + * repeated .Image newRealTimeIconsList = 30; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index); + /** + * repeated .Image newRealTimeIconsList = 30; + */ + int getNewRealTimeIconsListCount(); + /** + * repeated .Image newRealTimeIconsList = 30; + */ + java.util.List + getNewRealTimeIconsListOrBuilderList(); + /** + * repeated .Image newRealTimeIconsList = 30; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( + int index); + + /** + * int64 topVipNo = 31; + * @return The topVipNo. + */ + long getTopVipNo(); + + /** + * .User.UserAttr userAttr = 32; + * @return Whether the userAttr field is set. + */ + boolean hasUserAttr(); + /** + * .User.UserAttr userAttr = 32; + * @return The userAttr. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr(); + /** + * .User.UserAttr userAttr = 32; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder(); + + /** + * .User.OwnRoom ownRoom = 33; + * @return Whether the ownRoom field is set. + */ + boolean hasOwnRoom(); + /** + * .User.OwnRoom ownRoom = 33; + * @return The ownRoom. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom(); + /** + * .User.OwnRoom ownRoom = 33; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder(); + + /** + * int64 payScore = 34; + * @return The payScore. + */ + long getPayScore(); + + /** + * int64 ticketCount = 35; + * @return The ticketCount. + */ + long getTicketCount(); + + /** + * .User.AnchorInfo anchorInfo = 36; + * @return Whether the anchorInfo field is set. + */ + boolean hasAnchorInfo(); + /** + * .User.AnchorInfo anchorInfo = 36; + * @return The anchorInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo(); + /** + * .User.AnchorInfo anchorInfo = 36; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder(); + + /** + * int32 linkMicStats = 37; + * @return The linkMicStats. + */ + int getLinkMicStats(); + + /** + * string displayId = 38; + * @return The displayId. + */ + java.lang.String getDisplayId(); + /** + * string displayId = 38; + * @return The bytes for displayId. + */ + com.google.protobuf.ByteString + getDisplayIdBytes(); + + /** + * bool withCommercePermission = 39; + * @return The withCommercePermission. + */ + boolean getWithCommercePermission(); + + /** + * bool withFusionShopEntry = 40; + * @return The withFusionShopEntry. + */ + boolean getWithFusionShopEntry(); + + /** + * int64 totalRechargeDiamondCount = 41; + * @return The totalRechargeDiamondCount. + */ + long getTotalRechargeDiamondCount(); + + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return Whether the webcastAnchorLevel field is set. + */ + boolean hasWebcastAnchorLevel(); + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return The webcastAnchorLevel. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel(); + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder(); + + /** + * string verifiedContent = 43; + * @return The verifiedContent. + */ + java.lang.String getVerifiedContent(); + /** + * string verifiedContent = 43; + * @return The bytes for verifiedContent. + */ + com.google.protobuf.ByteString + getVerifiedContentBytes(); + + /** + * .User.AuthorStats authorStats = 44; + * @return Whether the authorStats field is set. + */ + boolean hasAuthorStats(); + /** + * .User.AuthorStats authorStats = 44; + * @return The authorStats. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats(); + /** + * .User.AuthorStats authorStats = 44; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder(); + + /** + * repeated .User topFansList = 45; + */ + java.util.List + getTopFansListList(); + /** + * repeated .User topFansList = 45; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index); + /** + * repeated .User topFansList = 45; + */ + int getTopFansListCount(); + /** + * repeated .User topFansList = 45; + */ + java.util.List + getTopFansListOrBuilderList(); + /** + * repeated .User topFansList = 45; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( + int index); + + /** + * string secUid = 46; + * @return The secUid. + */ + java.lang.String getSecUid(); + /** + * string secUid = 46; + * @return The bytes for secUid. + */ + com.google.protobuf.ByteString + getSecUidBytes(); + + /** + * int32 userRole = 47; + * @return The userRole. + */ + int getUserRole(); + + /** + * .User.XiguaParams xiguaInfo = 48; + * @return Whether the xiguaInfo field is set. + */ + boolean hasXiguaInfo(); + /** + * .User.XiguaParams xiguaInfo = 48; + * @return The xiguaInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo(); + /** + * .User.XiguaParams xiguaInfo = 48; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder(); + + /** + * .User.ActivityInfo activityReward = 49; + * @return Whether the activityReward field is set. + */ + boolean hasActivityReward(); + /** + * .User.ActivityInfo activityReward = 49; + * @return The activityReward. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward(); + /** + * .User.ActivityInfo activityReward = 49; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder(); + + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return Whether the nobleInfo field is set. + */ + boolean hasNobleInfo(); + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return The nobleInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo(); + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder(); + + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return Whether the brotherhoodInfo field is set. + */ + boolean hasBrotherhoodInfo(); + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return The brotherhoodInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo(); + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder(); + + /** + * .Image personalCard = 52; + * @return Whether the personalCard field is set. + */ + boolean hasPersonalCard(); + /** + * .Image personalCard = 52; + * @return The personalCard. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard(); + /** + * .Image personalCard = 52; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder(); + + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return Whether the authenticationInfo field is set. + */ + boolean hasAuthenticationInfo(); + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return The authenticationInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo(); + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder(); + + /** + * int32 authorizationInfo = 54; + * @return The authorizationInfo. + */ + int getAuthorizationInfo(); + + /** + * int32 adversaryAuthorizationInfo = 55; + * @return The adversaryAuthorizationInfo. + */ + int getAdversaryAuthorizationInfo(); + + /** + * .User.PoiInfo poiInfo = 56; + * @return Whether the poiInfo field is set. + */ + boolean hasPoiInfo(); + /** + * .User.PoiInfo poiInfo = 56; + * @return The poiInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo(); + /** + * .User.PoiInfo poiInfo = 56; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder(); + + /** + * .Image mediaBadgeImageListList = 57; + * @return Whether the mediaBadgeImageListList field is set. + */ + boolean hasMediaBadgeImageListList(); + /** + * .Image mediaBadgeImageListList = 57; + * @return The mediaBadgeImageListList. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList(); + /** + * .Image mediaBadgeImageListList = 57; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder(); + + /** + * int32 adversaryUserStatus = 58; + * @return The adversaryUserStatus. + */ + int getAdversaryUserStatus(); + + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return Whether the userVipInfo field is set. + */ + boolean hasUserVipInfo(); + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return The userVipInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo(); + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder(); + + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return A list containing the commerceWebcastConfigIdsList. + */ + java.util.List getCommerceWebcastConfigIdsListList(); + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return The count of commerceWebcastConfigIdsList. + */ + int getCommerceWebcastConfigIdsListCount(); + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param index The index of the element to return. + * @return The commerceWebcastConfigIdsList at the given index. + */ + long getCommerceWebcastConfigIdsList(int index); + + /** + * .Image badgeImageListV2List = 61; + * @return Whether the badgeImageListV2List field is set. + */ + boolean hasBadgeImageListV2List(); + /** + * .Image badgeImageListV2List = 61; + * @return The badgeImageListV2List. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List(); + /** + * .Image badgeImageListV2List = 61; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder(); + + /** + *
+     * IndustryCertification  industryCertification = 62;
+     * 
+ * + * string locationCity = 63; + * @return The locationCity. + */ + java.lang.String getLocationCity(); + /** + *
+     * IndustryCertification  industryCertification = 62;
+     * 
+ * + * string locationCity = 63; + * @return The bytes for locationCity. + */ + com.google.protobuf.ByteString + getLocationCityBytes(); + + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return Whether the fansGroupInfo field is set. + */ + boolean hasFansGroupInfo(); + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return The fansGroupInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo(); + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder(); + + /** + * string remarkName = 65; + * @return The remarkName. + */ + java.lang.String getRemarkName(); + /** + * string remarkName = 65; + * @return The bytes for remarkName. + */ + com.google.protobuf.ByteString + getRemarkNameBytes(); + + /** + * int32 mysteryMan = 66; + * @return The mysteryMan. + */ + int getMysteryMan(); + + /** + * string webRid = 67; + * @return The webRid. + */ + java.lang.String getWebRid(); + /** + * string webRid = 67; + * @return The bytes for webRid. + */ + com.google.protobuf.ByteString + getWebRidBytes(); + + /** + * string desensitizedNickname = 68; + * @return The desensitizedNickname. + */ + java.lang.String getDesensitizedNickname(); + /** + * string desensitizedNickname = 68; + * @return The bytes for desensitizedNickname. + */ + com.google.protobuf.ByteString + getDesensitizedNicknameBytes(); + + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return Whether the jAccreditInfo field is set. + */ + boolean hasJAccreditInfo(); + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return The jAccreditInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo(); + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder(); + + /** + * .User.Subscribe subscribe = 70; + * @return Whether the subscribe field is set. + */ + boolean hasSubscribe(); + /** + * .User.Subscribe subscribe = 70; + * @return The subscribe. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe(); + /** + * .User.Subscribe subscribe = 70; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder(); + + /** + * bool isAnonymous = 71; + * @return The isAnonymous. + */ + boolean getIsAnonymous(); + + /** + * int32 consumeDiamondLevel = 72; + * @return The consumeDiamondLevel. + */ + int getConsumeDiamondLevel(); + + /** + * string webcastUid = 73; + * @return The webcastUid. + */ + java.lang.String getWebcastUid(); + /** + * string webcastUid = 73; + * @return The bytes for webcastUid. + */ + com.google.protobuf.ByteString + getWebcastUidBytes(); + + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return Whether the profileStyleParams field is set. + */ + boolean hasProfileStyleParams(); + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return The profileStyleParams. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams(); + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder(); + + /** + * .User.UserDressInfo userDressInfo = 75; + * @return Whether the userDressInfo field is set. + */ + boolean hasUserDressInfo(); + /** + * .User.UserDressInfo userDressInfo = 75; + * @return The userDressInfo. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo(); + /** + * .User.UserDressInfo userDressInfo = 75; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder(); + + /** + * bool allowBeLocated = 1001; + * @return The allowBeLocated. + */ + boolean getAllowBeLocated(); + + /** + * bool allowFindByContacts = 1002; + * @return The allowFindByContacts. + */ + boolean getAllowFindByContacts(); + + /** + * bool allowOthersDownloadVideo = 1003; + * @return The allowOthersDownloadVideo. + */ + boolean getAllowOthersDownloadVideo(); + + /** + * bool allowOthersDownloadWhenSharingVideo = 1004; + * @return The allowOthersDownloadWhenSharingVideo. + */ + boolean getAllowOthersDownloadWhenSharingVideo(); + + /** + * bool allowShareShowProfile = 1005; + * @return The allowShareShowProfile. + */ + boolean getAllowShareShowProfile(); + + /** + * bool allowShowInGossip = 1006; + * @return The allowShowInGossip. + */ + boolean getAllowShowInGossip(); + + /** + * bool allowShowMyAction = 1007; + * @return The allowShowMyAction. + */ + boolean getAllowShowMyAction(); + + /** + * bool allowStrangeComment = 1008; + * @return The allowStrangeComment. + */ + boolean getAllowStrangeComment(); + + /** + * bool allowUnfollowerComment = 1009; + * @return The allowUnfollowerComment. + */ + boolean getAllowUnfollowerComment(); + + /** + * bool allowUseLinkmic = 1010; + * @return The allowUseLinkmic. + */ + boolean getAllowUseLinkmic(); + + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return Whether the anchorLevel field is set. + */ + boolean hasAnchorLevel(); + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return The anchorLevel. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel(); + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder(); + + /** + * .Image avatarJpg = 1012; + * @return Whether the avatarJpg field is set. + */ + boolean hasAvatarJpg(); + /** + * .Image avatarJpg = 1012; + * @return The avatarJpg. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg(); + /** + * .Image avatarJpg = 1012; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder(); + + /** + * string bgImgUrl = 1013; + * @return The bgImgUrl. + */ + java.lang.String getBgImgUrl(); + /** + * string bgImgUrl = 1013; + * @return The bytes for bgImgUrl. + */ + com.google.protobuf.ByteString + getBgImgUrlBytes(); + + /** + * string birthdayDescription = 1014; + * @return The birthdayDescription. + */ + java.lang.String getBirthdayDescription(); + /** + * string birthdayDescription = 1014; + * @return The bytes for birthdayDescription. + */ + com.google.protobuf.ByteString + getBirthdayDescriptionBytes(); + + /** + * bool birthdayValid = 1015; + * @return The birthdayValid. + */ + boolean getBirthdayValid(); + + /** + * int32 blockStatus = 1016; + * @return The blockStatus. + */ + int getBlockStatus(); + + /** + * int32 commentRestrict = 1017; + * @return The commentRestrict. + */ + int getCommentRestrict(); + + /** + * string constellation = 1018; + * @return The constellation. + */ + java.lang.String getConstellation(); + /** + * string constellation = 1018; + * @return The bytes for constellation. + */ + com.google.protobuf.ByteString + getConstellationBytes(); + + /** + * int32 disableIchat = 1019; + * @return The disableIchat. + */ + int getDisableIchat(); + + /** + * int64 enableIchatImg = 1020; + * @return The enableIchatImg. + */ + long getEnableIchatImg(); + + /** + * int32 exp = 1021; + * @return The exp. + */ + int getExp(); + + /** + * int64 fanTicketCount = 1022; + * @return The fanTicketCount. + */ + long getFanTicketCount(); + + /** + * bool foldStrangerChat = 1023; + * @return The foldStrangerChat. + */ + boolean getFoldStrangerChat(); + + /** + * int64 followStatus = 1024; + * @return The followStatus. + */ + long getFollowStatus(); + + /** + * bool hotsoonVerified = 1025; + * @return The hotsoonVerified. + */ + boolean getHotsoonVerified(); + + /** + * string hotsoonVerifiedReason = 1026; + * @return The hotsoonVerifiedReason. + */ + java.lang.String getHotsoonVerifiedReason(); + /** + * string hotsoonVerifiedReason = 1026; + * @return The bytes for hotsoonVerifiedReason. + */ + com.google.protobuf.ByteString + getHotsoonVerifiedReasonBytes(); + + /** + * int32 ichatRestrictType = 1027; + * @return The ichatRestrictType. + */ + int getIchatRestrictType(); + + /** + * string idStr = 1028; + * @return The idStr. + */ + java.lang.String getIdStr(); + /** + * string idStr = 1028; + * @return The bytes for idStr. + */ + com.google.protobuf.ByteString + getIdStrBytes(); + + /** + * bool isFollower = 1029; + * @return The isFollower. + */ + boolean getIsFollower(); + + /** + * bool isFollowing = 1030; + * @return The isFollowing. + */ + boolean getIsFollowing(); + + /** + * bool needProfileGuide = 1031; + * @return The needProfileGuide. + */ + boolean getNeedProfileGuide(); + + /** + * int64 payScores = 1032; + * @return The payScores. + */ + long getPayScores(); + + /** + * bool pushCommentStatus = 1033; + * @return The pushCommentStatus. + */ + boolean getPushCommentStatus(); + + /** + * bool pushDigg = 1034; + * @return The pushDigg. + */ + boolean getPushDigg(); + + /** + * bool pushFollow = 1035; + * @return The pushFollow. + */ + boolean getPushFollow(); + + /** + * bool pushFriendAction = 1036; + * @return The pushFriendAction. + */ + boolean getPushFriendAction(); + + /** + * bool pushIchat = 1037; + * @return The pushIchat. + */ + boolean getPushIchat(); + + /** + * bool pushStatus = 1038; + * @return The pushStatus. + */ + boolean getPushStatus(); + + /** + * bool pushVideoPost = 1039; + * @return The pushVideoPost. + */ + boolean getPushVideoPost(); + + /** + * bool pushVideoRecommend = 1040; + * @return The pushVideoRecommend. + */ + boolean getPushVideoRecommend(); + + /** + * .User.UserStats stats = 1041; + * @return Whether the stats field is set. + */ + boolean hasStats(); + /** + * .User.UserStats stats = 1041; + * @return The stats. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats(); + /** + * .User.UserStats stats = 1041; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder(); + + /** + * bool verifiedMobile = 1042; + * @return The verifiedMobile. + */ + boolean getVerifiedMobile(); + + /** + * string verifiedReason = 1043; + * @return The verifiedReason. + */ + java.lang.String getVerifiedReason(); + /** + * string verifiedReason = 1043; + * @return The bytes for verifiedReason. + */ + com.google.protobuf.ByteString + getVerifiedReasonBytes(); + + /** + * bool withCarManagementPermission = 1044; + * @return The withCarManagementPermission. + */ + boolean getWithCarManagementPermission(); + + /** + * int32 ageRange = 1045; + * @return The ageRange. + */ + int getAgeRange(); + + /** + * int64 watchDurationMonth = 1046; + * @return The watchDurationMonth. + */ + long getWatchDurationMonth(); + } + /** + * Protobuf type {@code User} + */ + public static final class User extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User) + UserOrBuilder { + private static final long serialVersionUID = 0L; + // Use User.newBuilder() to construct. + private User(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private User() { + nickname_ = ""; + signature_ = ""; + telephone_ = ""; + city_ = ""; + shareQrcodeUri_ = ""; + specialId_ = ""; + realTimeIconsList_ = java.util.Collections.emptyList(); + newRealTimeIconsList_ = java.util.Collections.emptyList(); + displayId_ = ""; + verifiedContent_ = ""; + topFansList_ = java.util.Collections.emptyList(); + secUid_ = ""; + commerceWebcastConfigIdsList_ = emptyLongList(); + locationCity_ = ""; + remarkName_ = ""; + webRid_ = ""; + desensitizedNickname_ = ""; + webcastUid_ = ""; + bgImgUrl_ = ""; + birthdayDescription_ = ""; + constellation_ = ""; + hotsoonVerifiedReason_ = ""; + idStr_ = ""; + verifiedReason_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new User(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder.class); + } + + public interface ActivityInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.ActivityInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.ActivityInfo} + */ + public static final class ActivityInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.ActivityInfo) + ActivityInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use ActivityInfo.newBuilder() to construct. + private ActivityInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ActivityInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ActivityInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.ActivityInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.ActivityInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ActivityInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.ActivityInfo) + } + + // @@protoc_insertion_point(class_scope:User.ActivityInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ActivityInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AnchorInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.AnchorInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.AnchorInfo} + */ + public static final class AnchorInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.AnchorInfo) + AnchorInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use AnchorInfo.newBuilder() to construct. + private AnchorInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AnchorInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AnchorInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.AnchorInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.AnchorInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.AnchorInfo) + } + + // @@protoc_insertion_point(class_scope:User.AnchorInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AnchorInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AnchorLevelOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.AnchorLevel) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.AnchorLevel} + */ + public static final class AnchorLevel extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.AnchorLevel) + AnchorLevelOrBuilder { + private static final long serialVersionUID = 0L; + // Use AnchorLevel.newBuilder() to construct. + private AnchorLevel(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AnchorLevel() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AnchorLevel(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.AnchorLevel} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.AnchorLevel) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AnchorLevel_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.AnchorLevel) + } + + // @@protoc_insertion_point(class_scope:User.AnchorLevel) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AnchorLevel parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AuthenticationInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.AuthenticationInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.AuthenticationInfo} + */ + public static final class AuthenticationInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.AuthenticationInfo) + AuthenticationInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use AuthenticationInfo.newBuilder() to construct. + private AuthenticationInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AuthenticationInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AuthenticationInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.AuthenticationInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.AuthenticationInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthenticationInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.AuthenticationInfo) + } + + // @@protoc_insertion_point(class_scope:User.AuthenticationInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuthenticationInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AuthorStatsOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.AuthorStats) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.AuthorStats} + */ + public static final class AuthorStats extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.AuthorStats) + AuthorStatsOrBuilder { + private static final long serialVersionUID = 0L; + // Use AuthorStats.newBuilder() to construct. + private AuthorStats(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AuthorStats() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AuthorStats(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.AuthorStats} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.AuthorStats) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_AuthorStats_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.AuthorStats) + } + + // @@protoc_insertion_point(class_scope:User.AuthorStats) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuthorStats parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface BorderOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.Border) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.Border} + */ + public static final class Border extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.Border) + BorderOrBuilder { + private static final long serialVersionUID = 0L; + // Use Border.newBuilder() to construct. + private Border(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Border() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Border(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.Border} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.Border) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Border_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.Border) + } + + // @@protoc_insertion_point(class_scope:User.Border) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Border parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface BrotherhoodInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.BrotherhoodInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.BrotherhoodInfo} + */ + public static final class BrotherhoodInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.BrotherhoodInfo) + BrotherhoodInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use BrotherhoodInfo.newBuilder() to construct. + private BrotherhoodInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BrotherhoodInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new BrotherhoodInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.BrotherhoodInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.BrotherhoodInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_BrotherhoodInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.BrotherhoodInfo) + } + + // @@protoc_insertion_point(class_scope:User.BrotherhoodInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BrotherhoodInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FansClubOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.FansClub) + com.google.protobuf.MessageOrBuilder { + + /** + * .User.FansClub.FansClubData data = 1; + * @return Whether the data field is set. + */ + boolean hasData(); + /** + * .User.FansClub.FansClubData data = 1; + * @return The data. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData(); + /** + * .User.FansClub.FansClubData data = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder(); + + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + int getPreferDataCount(); + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + boolean containsPreferData( + int key); + /** + * Use {@link #getPreferDataMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getPreferData(); + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + java.util.Map + getPreferDataMap(); + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue); + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( + int key); + } + /** + * Protobuf type {@code User.FansClub} + */ + public static final class FansClub extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.FansClub) + FansClubOrBuilder { + private static final long serialVersionUID = 0L; + // Use FansClub.newBuilder() to construct. + private FansClub(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FansClub() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new FansClub(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 2: + return internalGetPreferData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder.class); + } + + public interface FansClubDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.FansClub.FansClubData) + com.google.protobuf.MessageOrBuilder { + + /** + * string clubName = 1; + * @return The clubName. + */ + java.lang.String getClubName(); + /** + * string clubName = 1; + * @return The bytes for clubName. + */ + com.google.protobuf.ByteString + getClubNameBytes(); + + /** + * int32 level = 2; + * @return The level. + */ + int getLevel(); + + /** + * int32 userFansClubStatus = 3; + * @return The userFansClubStatus. + */ + int getUserFansClubStatus(); + + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return Whether the badge field is set. + */ + boolean hasBadge(); + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return The badge. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge(); + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder(); + + /** + * repeated int64 availableGiftIds = 5; + * @return A list containing the availableGiftIds. + */ + java.util.List getAvailableGiftIdsList(); + /** + * repeated int64 availableGiftIds = 5; + * @return The count of availableGiftIds. + */ + int getAvailableGiftIdsCount(); + /** + * repeated int64 availableGiftIds = 5; + * @param index The index of the element to return. + * @return The availableGiftIds at the given index. + */ + long getAvailableGiftIds(int index); + + /** + * int64 anchorId = 6; + * @return The anchorId. + */ + long getAnchorId(); + } + /** + * Protobuf type {@code User.FansClub.FansClubData} + */ + public static final class FansClubData extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.FansClub.FansClubData) + FansClubDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use FansClubData.newBuilder() to construct. + private FansClubData(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FansClubData() { + clubName_ = ""; + availableGiftIds_ = emptyLongList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new FansClubData(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder.class); + } + + public interface UserBadgeOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.FansClub.FansClubData.UserBadge) + com.google.protobuf.MessageOrBuilder { + + /** + * map<int32, .Image> icons = 1; + */ + int getIconsCount(); + /** + * map<int32, .Image> icons = 1; + */ + boolean containsIcons( + int key); + /** + * Use {@link #getIconsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getIcons(); + /** + * map<int32, .Image> icons = 1; + */ + java.util.Map + getIconsMap(); + /** + * map<int32, .Image> icons = 1; + */ + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue); + /** + * map<int32, .Image> icons = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( + int key); + + /** + * string title = 2; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 2; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + } + /** + * Protobuf type {@code User.FansClub.FansClubData.UserBadge} + */ + public static final class UserBadge extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.FansClub.FansClubData.UserBadge) + UserBadgeOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserBadge.newBuilder() to construct. + private UserBadge(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserBadge() { + title_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserBadge(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 1: + return internalGetIcons(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder.class); + } + + public static final int ICONS_FIELD_NUMBER = 1; + private static final class IconsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.INT32, + 0, + com.google.protobuf.WireFormat.FieldType.MESSAGE, + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> icons_; + private com.google.protobuf.MapField + internalGetIcons() { + if (icons_ == null) { + return com.google.protobuf.MapField.emptyMapField( + IconsDefaultEntryHolder.defaultEntry); + } + return icons_; + } + public int getIconsCount() { + return internalGetIcons().getMap().size(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public boolean containsIcons( + int key) { + + return internalGetIcons().getMap().containsKey(key); + } + /** + * Use {@link #getIconsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getIcons() { + return getIconsMap(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public java.util.Map getIconsMap() { + return internalGetIcons().getMap(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue) { + + java.util.Map map = + internalGetIcons().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( + int key) { + + java.util.Map map = + internalGetIcons().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int TITLE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + /** + * string title = 2; + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } + } + /** + * string title = 2; + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + com.google.protobuf.GeneratedMessageV3 + .serializeIntegerMapTo( + output, + internalGetIcons(), + IconsDefaultEntryHolder.defaultEntry, + 1); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (java.util.Map.Entry entry + : internalGetIcons().getMap().entrySet()) { + com.google.protobuf.MapEntry + icons__ = IconsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, icons__); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge) obj; + + if (!internalGetIcons().equals( + other.internalGetIcons())) return false; + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (!internalGetIcons().getMap().isEmpty()) { + hash = (37 * hash) + ICONS_FIELD_NUMBER; + hash = (53 * hash) + internalGetIcons().hashCode(); + } + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.FansClub.FansClubData.UserBadge} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.FansClub.FansClubData.UserBadge) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 1: + return internalGetIcons(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 1: + return internalGetMutableIcons(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + internalGetMutableIcons().clear(); + title_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_UserBadge_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.icons_ = internalGetIcons(); + result.icons_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.title_ = title_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance()) return this; + internalGetMutableIcons().mergeFrom( + other.internalGetIcons()); + bitField0_ |= 0x00000001; + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry + icons__ = input.readMessage( + IconsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableIcons().getMutableMap().put( + icons__.getKey(), icons__.getValue()); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.MapField< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image> icons_; + private com.google.protobuf.MapField + internalGetIcons() { + if (icons_ == null) { + return com.google.protobuf.MapField.emptyMapField( + IconsDefaultEntryHolder.defaultEntry); + } + return icons_; + } + private com.google.protobuf.MapField + internalGetMutableIcons() { + if (icons_ == null) { + icons_ = com.google.protobuf.MapField.newMapField( + IconsDefaultEntryHolder.defaultEntry); + } + if (!icons_.isMutable()) { + icons_ = icons_.copy(); + } + bitField0_ |= 0x00000001; + onChanged(); + return icons_; + } + public int getIconsCount() { + return internalGetIcons().getMap().size(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public boolean containsIcons( + int key) { + + return internalGetIcons().getMap().containsKey(key); + } + /** + * Use {@link #getIconsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getIcons() { + return getIconsMap(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public java.util.Map getIconsMap() { + return internalGetIcons().getMap(); + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image defaultValue) { + + java.util.Map map = + internalGetIcons().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<int32, .Image> icons = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIconsOrThrow( + int key) { + + java.util.Map map = + internalGetIcons().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearIcons() { + bitField0_ = (bitField0_ & ~0x00000001); + internalGetMutableIcons().getMutableMap() + .clear(); + return this; + } + /** + * map<int32, .Image> icons = 1; + */ + public Builder removeIcons( + int key) { + + internalGetMutableIcons().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableIcons() { + bitField0_ |= 0x00000001; + return internalGetMutableIcons().getMutableMap(); + } + /** + * map<int32, .Image> icons = 1; + */ + public Builder putIcons( + int key, + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableIcons().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000001; + return this; + } + /** + * map<int32, .Image> icons = 1; + */ + public Builder putAllIcons( + java.util.Map values) { + internalGetMutableIcons().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000001; + return this; + } + + private java.lang.Object title_ = ""; + /** + * string title = 2; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 2; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 2; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string title = 2; + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string title = 2; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.FansClub.FansClubData.UserBadge) + } + + // @@protoc_insertion_point(class_scope:User.FansClub.FansClubData.UserBadge) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserBadge parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int CLUBNAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object clubName_ = ""; + /** + * string clubName = 1; + * @return The clubName. + */ + @java.lang.Override + public java.lang.String getClubName() { + java.lang.Object ref = clubName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clubName_ = s; + return s; + } + } + /** + * string clubName = 1; + * @return The bytes for clubName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getClubNameBytes() { + java.lang.Object ref = clubName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + clubName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LEVEL_FIELD_NUMBER = 2; + private int level_ = 0; + /** + * int32 level = 2; + * @return The level. + */ + @java.lang.Override + public int getLevel() { + return level_; + } + + public static final int USERFANSCLUBSTATUS_FIELD_NUMBER = 3; + private int userFansClubStatus_ = 0; + /** + * int32 userFansClubStatus = 3; + * @return The userFansClubStatus. + */ + @java.lang.Override + public int getUserFansClubStatus() { + return userFansClubStatus_; + } + + public static final int BADGE_FIELD_NUMBER = 4; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge badge_; + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return Whether the badge field is set. + */ + @java.lang.Override + public boolean hasBadge() { + return badge_ != null; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return The badge. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge() { + return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder() { + return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; + } + + public static final int AVAILABLEGIFTIDS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList availableGiftIds_; + /** + * repeated int64 availableGiftIds = 5; + * @return A list containing the availableGiftIds. + */ + @java.lang.Override + public java.util.List + getAvailableGiftIdsList() { + return availableGiftIds_; + } + /** + * repeated int64 availableGiftIds = 5; + * @return The count of availableGiftIds. + */ + public int getAvailableGiftIdsCount() { + return availableGiftIds_.size(); + } + /** + * repeated int64 availableGiftIds = 5; + * @param index The index of the element to return. + * @return The availableGiftIds at the given index. + */ + public long getAvailableGiftIds(int index) { + return availableGiftIds_.getLong(index); + } + private int availableGiftIdsMemoizedSerializedSize = -1; + + public static final int ANCHORID_FIELD_NUMBER = 6; + private long anchorId_ = 0L; + /** + * int64 anchorId = 6; + * @return The anchorId. + */ + @java.lang.Override + public long getAnchorId() { + return anchorId_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clubName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, clubName_); + } + if (level_ != 0) { + output.writeInt32(2, level_); + } + if (userFansClubStatus_ != 0) { + output.writeInt32(3, userFansClubStatus_); + } + if (badge_ != null) { + output.writeMessage(4, getBadge()); + } + if (getAvailableGiftIdsList().size() > 0) { + output.writeUInt32NoTag(42); + output.writeUInt32NoTag(availableGiftIdsMemoizedSerializedSize); + } + for (int i = 0; i < availableGiftIds_.size(); i++) { + output.writeInt64NoTag(availableGiftIds_.getLong(i)); + } + if (anchorId_ != 0L) { + output.writeInt64(6, anchorId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(clubName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, clubName_); + } + if (level_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, level_); + } + if (userFansClubStatus_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, userFansClubStatus_); + } + if (badge_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getBadge()); + } + { + int dataSize = 0; + for (int i = 0; i < availableGiftIds_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeInt64SizeNoTag(availableGiftIds_.getLong(i)); + } + size += dataSize; + if (!getAvailableGiftIdsList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + availableGiftIdsMemoizedSerializedSize = dataSize; + } + if (anchorId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, anchorId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData) obj; + + if (!getClubName() + .equals(other.getClubName())) return false; + if (getLevel() + != other.getLevel()) return false; + if (getUserFansClubStatus() + != other.getUserFansClubStatus()) return false; + if (hasBadge() != other.hasBadge()) return false; + if (hasBadge()) { + if (!getBadge() + .equals(other.getBadge())) return false; + } + if (!getAvailableGiftIdsList() + .equals(other.getAvailableGiftIdsList())) return false; + if (getAnchorId() + != other.getAnchorId()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CLUBNAME_FIELD_NUMBER; + hash = (53 * hash) + getClubName().hashCode(); + hash = (37 * hash) + LEVEL_FIELD_NUMBER; + hash = (53 * hash) + getLevel(); + hash = (37 * hash) + USERFANSCLUBSTATUS_FIELD_NUMBER; + hash = (53 * hash) + getUserFansClubStatus(); + if (hasBadge()) { + hash = (37 * hash) + BADGE_FIELD_NUMBER; + hash = (53 * hash) + getBadge().hashCode(); + } + if (getAvailableGiftIdsCount() > 0) { + hash = (37 * hash) + AVAILABLEGIFTIDS_FIELD_NUMBER; + hash = (53 * hash) + getAvailableGiftIdsList().hashCode(); + } + hash = (37 * hash) + ANCHORID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAnchorId()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.FansClub.FansClubData} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.FansClub.FansClubData) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + clubName_ = ""; + level_ = 0; + userFansClubStatus_ = 0; + badge_ = null; + if (badgeBuilder_ != null) { + badgeBuilder_.dispose(); + badgeBuilder_ = null; + } + availableGiftIds_ = emptyLongList(); + anchorId_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_FansClubData_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result) { + if (((bitField0_ & 0x00000010) != 0)) { + availableGiftIds_.makeImmutable(); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.availableGiftIds_ = availableGiftIds_; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.clubName_ = clubName_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.level_ = level_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.userFansClubStatus_ = userFansClubStatus_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.badge_ = badgeBuilder_ == null + ? badge_ + : badgeBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.anchorId_ = anchorId_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()) return this; + if (!other.getClubName().isEmpty()) { + clubName_ = other.clubName_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getLevel() != 0) { + setLevel(other.getLevel()); + } + if (other.getUserFansClubStatus() != 0) { + setUserFansClubStatus(other.getUserFansClubStatus()); + } + if (other.hasBadge()) { + mergeBadge(other.getBadge()); + } + if (!other.availableGiftIds_.isEmpty()) { + if (availableGiftIds_.isEmpty()) { + availableGiftIds_ = other.availableGiftIds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureAvailableGiftIdsIsMutable(); + availableGiftIds_.addAll(other.availableGiftIds_); + } + onChanged(); + } + if (other.getAnchorId() != 0L) { + setAnchorId(other.getAnchorId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + clubName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + level_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + userFansClubStatus_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + input.readMessage( + getBadgeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: { + long v = input.readInt64(); + ensureAvailableGiftIdsIsMutable(); + availableGiftIds_.addLong(v); + break; + } // case 40 + case 42: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureAvailableGiftIdsIsMutable(); + while (input.getBytesUntilLimit() > 0) { + availableGiftIds_.addLong(input.readInt64()); + } + input.popLimit(limit); + break; + } // case 42 + case 48: { + anchorId_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 48 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object clubName_ = ""; + /** + * string clubName = 1; + * @return The clubName. + */ + public java.lang.String getClubName() { + java.lang.Object ref = clubName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + clubName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string clubName = 1; + * @return The bytes for clubName. + */ + public com.google.protobuf.ByteString + getClubNameBytes() { + java.lang.Object ref = clubName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + clubName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string clubName = 1; + * @param value The clubName to set. + * @return This builder for chaining. + */ + public Builder setClubName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + clubName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string clubName = 1; + * @return This builder for chaining. + */ + public Builder clearClubName() { + clubName_ = getDefaultInstance().getClubName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string clubName = 1; + * @param value The bytes for clubName to set. + * @return This builder for chaining. + */ + public Builder setClubNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + clubName_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int level_ ; + /** + * int32 level = 2; + * @return The level. + */ + @java.lang.Override + public int getLevel() { + return level_; + } + /** + * int32 level = 2; + * @param value The level to set. + * @return This builder for chaining. + */ + public Builder setLevel(int value) { + + level_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int32 level = 2; + * @return This builder for chaining. + */ + public Builder clearLevel() { + bitField0_ = (bitField0_ & ~0x00000002); + level_ = 0; + onChanged(); + return this; + } + + private int userFansClubStatus_ ; + /** + * int32 userFansClubStatus = 3; + * @return The userFansClubStatus. + */ + @java.lang.Override + public int getUserFansClubStatus() { + return userFansClubStatus_; + } + /** + * int32 userFansClubStatus = 3; + * @param value The userFansClubStatus to set. + * @return This builder for chaining. + */ + public Builder setUserFansClubStatus(int value) { + + userFansClubStatus_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int32 userFansClubStatus = 3; + * @return This builder for chaining. + */ + public Builder clearUserFansClubStatus() { + bitField0_ = (bitField0_ & ~0x00000004); + userFansClubStatus_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge badge_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder> badgeBuilder_; + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return Whether the badge field is set. + */ + public boolean hasBadge() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + * @return The badge. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge getBadge() { + if (badgeBuilder_ == null) { + return badge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; + } else { + return badgeBuilder_.getMessage(); + } + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public Builder setBadge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge value) { + if (badgeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + badge_ = value; + } else { + badgeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public Builder setBadge( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder builderForValue) { + if (badgeBuilder_ == null) { + badge_ = builderForValue.build(); + } else { + badgeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public Builder mergeBadge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge value) { + if (badgeBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + badge_ != null && + badge_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance()) { + getBadgeBuilder().mergeFrom(value); + } else { + badge_ = value; + } + } else { + badgeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public Builder clearBadge() { + bitField0_ = (bitField0_ & ~0x00000008); + badge_ = null; + if (badgeBuilder_ != null) { + badgeBuilder_.dispose(); + badgeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder getBadgeBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getBadgeFieldBuilder().getBuilder(); + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder getBadgeOrBuilder() { + if (badgeBuilder_ != null) { + return badgeBuilder_.getMessageOrBuilder(); + } else { + return badge_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.getDefaultInstance() : badge_; + } + } + /** + * .User.FansClub.FansClubData.UserBadge badge = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder> + getBadgeFieldBuilder() { + if (badgeBuilder_ == null) { + badgeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadge.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.UserBadgeOrBuilder>( + getBadge(), + getParentForChildren(), + isClean()); + badge_ = null; + } + return badgeBuilder_; + } + + private com.google.protobuf.Internal.LongList availableGiftIds_ = emptyLongList(); + private void ensureAvailableGiftIdsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + availableGiftIds_ = mutableCopy(availableGiftIds_); + bitField0_ |= 0x00000010; + } + } + /** + * repeated int64 availableGiftIds = 5; + * @return A list containing the availableGiftIds. + */ + public java.util.List + getAvailableGiftIdsList() { + return ((bitField0_ & 0x00000010) != 0) ? + java.util.Collections.unmodifiableList(availableGiftIds_) : availableGiftIds_; + } + /** + * repeated int64 availableGiftIds = 5; + * @return The count of availableGiftIds. + */ + public int getAvailableGiftIdsCount() { + return availableGiftIds_.size(); + } + /** + * repeated int64 availableGiftIds = 5; + * @param index The index of the element to return. + * @return The availableGiftIds at the given index. + */ + public long getAvailableGiftIds(int index) { + return availableGiftIds_.getLong(index); + } + /** + * repeated int64 availableGiftIds = 5; + * @param index The index to set the value at. + * @param value The availableGiftIds to set. + * @return This builder for chaining. + */ + public Builder setAvailableGiftIds( + int index, long value) { + + ensureAvailableGiftIdsIsMutable(); + availableGiftIds_.setLong(index, value); + onChanged(); + return this; + } + /** + * repeated int64 availableGiftIds = 5; + * @param value The availableGiftIds to add. + * @return This builder for chaining. + */ + public Builder addAvailableGiftIds(long value) { + + ensureAvailableGiftIdsIsMutable(); + availableGiftIds_.addLong(value); + onChanged(); + return this; + } + /** + * repeated int64 availableGiftIds = 5; + * @param values The availableGiftIds to add. + * @return This builder for chaining. + */ + public Builder addAllAvailableGiftIds( + java.lang.Iterable values) { + ensureAvailableGiftIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, availableGiftIds_); + onChanged(); + return this; + } + /** + * repeated int64 availableGiftIds = 5; + * @return This builder for chaining. + */ + public Builder clearAvailableGiftIds() { + availableGiftIds_ = emptyLongList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + private long anchorId_ ; + /** + * int64 anchorId = 6; + * @return The anchorId. + */ + @java.lang.Override + public long getAnchorId() { + return anchorId_; + } + /** + * int64 anchorId = 6; + * @param value The anchorId to set. + * @return This builder for chaining. + */ + public Builder setAnchorId(long value) { + + anchorId_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * int64 anchorId = 6; + * @return This builder for chaining. + */ + public Builder clearAnchorId() { + bitField0_ = (bitField0_ & ~0x00000020); + anchorId_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.FansClub.FansClubData) + } + + // @@protoc_insertion_point(class_scope:User.FansClub.FansClubData) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FansClubData parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int DATA_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData data_; + /** + * .User.FansClub.FansClubData data = 1; + * @return Whether the data field is set. + */ + @java.lang.Override + public boolean hasData() { + return data_ != null; + } + /** + * .User.FansClub.FansClubData data = 1; + * @return The data. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData() { + return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; + } + /** + * .User.FansClub.FansClubData data = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder() { + return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; + } + + public static final int PREFERDATA_FIELD_NUMBER = 2; + private static final class PreferDataDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_PreferDataEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.INT32, + 0, + com.google.protobuf.WireFormat.FieldType.MESSAGE, + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> preferData_; + private com.google.protobuf.MapField + internalGetPreferData() { + if (preferData_ == null) { + return com.google.protobuf.MapField.emptyMapField( + PreferDataDefaultEntryHolder.defaultEntry); + } + return preferData_; + } + public int getPreferDataCount() { + return internalGetPreferData().getMap().size(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public boolean containsPreferData( + int key) { + + return internalGetPreferData().getMap().containsKey(key); + } + /** + * Use {@link #getPreferDataMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getPreferData() { + return getPreferDataMap(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public java.util.Map getPreferDataMap() { + return internalGetPreferData().getMap(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue) { + + java.util.Map map = + internalGetPreferData().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( + int key) { + + java.util.Map map = + internalGetPreferData().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (data_ != null) { + output.writeMessage(1, getData()); + } + com.google.protobuf.GeneratedMessageV3 + .serializeIntegerMapTo( + output, + internalGetPreferData(), + PreferDataDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (data_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getData()); + } + for (java.util.Map.Entry entry + : internalGetPreferData().getMap().entrySet()) { + com.google.protobuf.MapEntry + preferData__ = PreferDataDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, preferData__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub) obj; + + if (hasData() != other.hasData()) return false; + if (hasData()) { + if (!getData() + .equals(other.getData())) return false; + } + if (!internalGetPreferData().equals( + other.internalGetPreferData())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasData()) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + } + if (!internalGetPreferData().getMap().isEmpty()) { + hash = (37 * hash) + PREFERDATA_FIELD_NUMBER; + hash = (53 * hash) + internalGetPreferData().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.FansClub} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.FansClub) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 2: + return internalGetPreferData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 2: + return internalGetMutablePreferData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + data_ = null; + if (dataBuilder_ != null) { + dataBuilder_.dispose(); + dataBuilder_ = null; + } + internalGetMutablePreferData().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansClub_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.data_ = dataBuilder_ == null + ? data_ + : dataBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.preferData_ = internalGetPreferData(); + result.preferData_.makeImmutable(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance()) return this; + if (other.hasData()) { + mergeData(other.getData()); + } + internalGetMutablePreferData().mergeFrom( + other.internalGetPreferData()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getDataFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + com.google.protobuf.MapEntry + preferData__ = input.readMessage( + PreferDataDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutablePreferData().getMutableMap().put( + preferData__.getKey(), preferData__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData data_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder> dataBuilder_; + /** + * .User.FansClub.FansClubData data = 1; + * @return Whether the data field is set. + */ + public boolean hasData() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .User.FansClub.FansClubData data = 1; + * @return The data. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getData() { + if (dataBuilder_ == null) { + return data_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; + } else { + return dataBuilder_.getMessage(); + } + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public Builder setData(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { + if (dataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + data_ = value; + } else { + dataBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public Builder setData( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder builderForValue) { + if (dataBuilder_ == null) { + data_ = builderForValue.build(); + } else { + dataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public Builder mergeData(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { + if (dataBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + data_ != null && + data_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance()) { + getDataBuilder().mergeFrom(value); + } else { + data_ = value; + } + } else { + dataBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000001); + data_ = null; + if (dataBuilder_ != null) { + dataBuilder_.dispose(); + dataBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder getDataBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDataFieldBuilder().getBuilder(); + } + /** + * .User.FansClub.FansClubData data = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder getDataOrBuilder() { + if (dataBuilder_ != null) { + return dataBuilder_.getMessageOrBuilder(); + } else { + return data_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.getDefaultInstance() : data_; + } + } + /** + * .User.FansClub.FansClubData data = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder> + getDataFieldBuilder() { + if (dataBuilder_ == null) { + dataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubDataOrBuilder>( + getData(), + getParentForChildren(), + isClean()); + data_ = null; + } + return dataBuilder_; + } + + private com.google.protobuf.MapField< + java.lang.Integer, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData> preferData_; + private com.google.protobuf.MapField + internalGetPreferData() { + if (preferData_ == null) { + return com.google.protobuf.MapField.emptyMapField( + PreferDataDefaultEntryHolder.defaultEntry); + } + return preferData_; + } + private com.google.protobuf.MapField + internalGetMutablePreferData() { + if (preferData_ == null) { + preferData_ = com.google.protobuf.MapField.newMapField( + PreferDataDefaultEntryHolder.defaultEntry); + } + if (!preferData_.isMutable()) { + preferData_ = preferData_.copy(); + } + bitField0_ |= 0x00000002; + onChanged(); + return preferData_; + } + public int getPreferDataCount() { + return internalGetPreferData().getMap().size(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public boolean containsPreferData( + int key) { + + return internalGetPreferData().getMap().containsKey(key); + } + /** + * Use {@link #getPreferDataMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getPreferData() { + return getPreferDataMap(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public java.util.Map getPreferDataMap() { + return internalGetPreferData().getMap(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrDefault( + int key, + /* nullable */ +tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData defaultValue) { + + java.util.Map map = + internalGetPreferData().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData getPreferDataOrThrow( + int key) { + + java.util.Map map = + internalGetPreferData().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearPreferData() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutablePreferData().getMutableMap() + .clear(); + return this; + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + public Builder removePreferData( + int key) { + + internalGetMutablePreferData().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutablePreferData() { + bitField0_ |= 0x00000002; + return internalGetMutablePreferData().getMutableMap(); + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + public Builder putPreferData( + int key, + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.FansClubData value) { + + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutablePreferData().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<int32, .User.FansClub.FansClubData> preferData = 2; + */ + public Builder putAllPreferData( + java.util.Map values) { + internalGetMutablePreferData().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.FansClub) + } + + // @@protoc_insertion_point(class_scope:User.FansClub) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FansClub parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FansGroupInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.FansGroupInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.FansGroupInfo} + */ + public static final class FansGroupInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.FansGroupInfo) + FansGroupInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use FansGroupInfo.newBuilder() to construct. + private FansGroupInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FansGroupInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new FansGroupInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.FansGroupInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.FansGroupInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FansGroupInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.FansGroupInfo) + } + + // @@protoc_insertion_point(class_scope:User.FansGroupInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FansGroupInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FollowInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.FollowInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 followingCount = 1; + * @return The followingCount. + */ + long getFollowingCount(); + + /** + * int64 followerCount = 2; + * @return The followerCount. + */ + long getFollowerCount(); + + /** + * int64 followStatus = 3; + * @return The followStatus. + */ + long getFollowStatus(); + + /** + * int64 pushStatus = 4; + * @return The pushStatus. + */ + long getPushStatus(); + + /** + * string remarkName = 5; + * @return The remarkName. + */ + java.lang.String getRemarkName(); + /** + * string remarkName = 5; + * @return The bytes for remarkName. + */ + com.google.protobuf.ByteString + getRemarkNameBytes(); + } + /** + * Protobuf type {@code User.FollowInfo} + */ + public static final class FollowInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.FollowInfo) + FollowInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use FollowInfo.newBuilder() to construct. + private FollowInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FollowInfo() { + remarkName_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new FollowInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder.class); + } + + public static final int FOLLOWINGCOUNT_FIELD_NUMBER = 1; + private long followingCount_ = 0L; + /** + * int64 followingCount = 1; + * @return The followingCount. + */ + @java.lang.Override + public long getFollowingCount() { + return followingCount_; + } + + public static final int FOLLOWERCOUNT_FIELD_NUMBER = 2; + private long followerCount_ = 0L; + /** + * int64 followerCount = 2; + * @return The followerCount. + */ + @java.lang.Override + public long getFollowerCount() { + return followerCount_; + } + + public static final int FOLLOWSTATUS_FIELD_NUMBER = 3; + private long followStatus_ = 0L; + /** + * int64 followStatus = 3; + * @return The followStatus. + */ + @java.lang.Override + public long getFollowStatus() { + return followStatus_; + } + + public static final int PUSHSTATUS_FIELD_NUMBER = 4; + private long pushStatus_ = 0L; + /** + * int64 pushStatus = 4; + * @return The pushStatus. + */ + @java.lang.Override + public long getPushStatus() { + return pushStatus_; + } + + public static final int REMARKNAME_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object remarkName_ = ""; + /** + * string remarkName = 5; + * @return The remarkName. + */ + @java.lang.Override + public java.lang.String getRemarkName() { + java.lang.Object ref = remarkName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + remarkName_ = s; + return s; + } + } + /** + * string remarkName = 5; + * @return The bytes for remarkName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRemarkNameBytes() { + java.lang.Object ref = remarkName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + remarkName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (followingCount_ != 0L) { + output.writeInt64(1, followingCount_); + } + if (followerCount_ != 0L) { + output.writeInt64(2, followerCount_); + } + if (followStatus_ != 0L) { + output.writeInt64(3, followStatus_); + } + if (pushStatus_ != 0L) { + output.writeInt64(4, pushStatus_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, remarkName_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (followingCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, followingCount_); + } + if (followerCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, followerCount_); + } + if (followStatus_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, followStatus_); + } + if (pushStatus_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, pushStatus_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, remarkName_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo) obj; + + if (getFollowingCount() + != other.getFollowingCount()) return false; + if (getFollowerCount() + != other.getFollowerCount()) return false; + if (getFollowStatus() + != other.getFollowStatus()) return false; + if (getPushStatus() + != other.getPushStatus()) return false; + if (!getRemarkName() + .equals(other.getRemarkName())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FOLLOWINGCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFollowingCount()); + hash = (37 * hash) + FOLLOWERCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFollowerCount()); + hash = (37 * hash) + FOLLOWSTATUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFollowStatus()); + hash = (37 * hash) + PUSHSTATUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPushStatus()); + hash = (37 * hash) + REMARKNAME_FIELD_NUMBER; + hash = (53 * hash) + getRemarkName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.FollowInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.FollowInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + followingCount_ = 0L; + followerCount_ = 0L; + followStatus_ = 0L; + pushStatus_ = 0L; + remarkName_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_FollowInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.followingCount_ = followingCount_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.followerCount_ = followerCount_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.followStatus_ = followStatus_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.pushStatus_ = pushStatus_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.remarkName_ = remarkName_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance()) return this; + if (other.getFollowingCount() != 0L) { + setFollowingCount(other.getFollowingCount()); + } + if (other.getFollowerCount() != 0L) { + setFollowerCount(other.getFollowerCount()); + } + if (other.getFollowStatus() != 0L) { + setFollowStatus(other.getFollowStatus()); + } + if (other.getPushStatus() != 0L) { + setPushStatus(other.getPushStatus()); + } + if (!other.getRemarkName().isEmpty()) { + remarkName_ = other.remarkName_; + bitField0_ |= 0x00000010; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + followingCount_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + followerCount_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + followStatus_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + pushStatus_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + remarkName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long followingCount_ ; + /** + * int64 followingCount = 1; + * @return The followingCount. + */ + @java.lang.Override + public long getFollowingCount() { + return followingCount_; + } + /** + * int64 followingCount = 1; + * @param value The followingCount to set. + * @return This builder for chaining. + */ + public Builder setFollowingCount(long value) { + + followingCount_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int64 followingCount = 1; + * @return This builder for chaining. + */ + public Builder clearFollowingCount() { + bitField0_ = (bitField0_ & ~0x00000001); + followingCount_ = 0L; + onChanged(); + return this; + } + + private long followerCount_ ; + /** + * int64 followerCount = 2; + * @return The followerCount. + */ + @java.lang.Override + public long getFollowerCount() { + return followerCount_; + } + /** + * int64 followerCount = 2; + * @param value The followerCount to set. + * @return This builder for chaining. + */ + public Builder setFollowerCount(long value) { + + followerCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 followerCount = 2; + * @return This builder for chaining. + */ + public Builder clearFollowerCount() { + bitField0_ = (bitField0_ & ~0x00000002); + followerCount_ = 0L; + onChanged(); + return this; + } + + private long followStatus_ ; + /** + * int64 followStatus = 3; + * @return The followStatus. + */ + @java.lang.Override + public long getFollowStatus() { + return followStatus_; + } + /** + * int64 followStatus = 3; + * @param value The followStatus to set. + * @return This builder for chaining. + */ + public Builder setFollowStatus(long value) { + + followStatus_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 followStatus = 3; + * @return This builder for chaining. + */ + public Builder clearFollowStatus() { + bitField0_ = (bitField0_ & ~0x00000004); + followStatus_ = 0L; + onChanged(); + return this; + } + + private long pushStatus_ ; + /** + * int64 pushStatus = 4; + * @return The pushStatus. + */ + @java.lang.Override + public long getPushStatus() { + return pushStatus_; + } + /** + * int64 pushStatus = 4; + * @param value The pushStatus to set. + * @return This builder for chaining. + */ + public Builder setPushStatus(long value) { + + pushStatus_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int64 pushStatus = 4; + * @return This builder for chaining. + */ + public Builder clearPushStatus() { + bitField0_ = (bitField0_ & ~0x00000008); + pushStatus_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object remarkName_ = ""; + /** + * string remarkName = 5; + * @return The remarkName. + */ + public java.lang.String getRemarkName() { + java.lang.Object ref = remarkName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + remarkName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string remarkName = 5; + * @return The bytes for remarkName. + */ + public com.google.protobuf.ByteString + getRemarkNameBytes() { + java.lang.Object ref = remarkName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + remarkName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string remarkName = 5; + * @param value The remarkName to set. + * @return This builder for chaining. + */ + public Builder setRemarkName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + remarkName_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string remarkName = 5; + * @return This builder for chaining. + */ + public Builder clearRemarkName() { + remarkName_ = getDefaultInstance().getRemarkName(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string remarkName = 5; + * @param value The bytes for remarkName to set. + * @return This builder for chaining. + */ + public Builder setRemarkNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + remarkName_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.FollowInfo) + } + + // @@protoc_insertion_point(class_scope:User.FollowInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FollowInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface JAccreditInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.JAccreditInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.JAccreditInfo} + */ + public static final class JAccreditInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.JAccreditInfo) + JAccreditInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use JAccreditInfo.newBuilder() to construct. + private JAccreditInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private JAccreditInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new JAccreditInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.JAccreditInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.JAccreditInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_JAccreditInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.JAccreditInfo) + } + + // @@protoc_insertion_point(class_scope:User.JAccreditInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public JAccreditInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface NobleLevelInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.NobleLevelInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.NobleLevelInfo} + */ + public static final class NobleLevelInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.NobleLevelInfo) + NobleLevelInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use NobleLevelInfo.newBuilder() to construct. + private NobleLevelInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private NobleLevelInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new NobleLevelInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.NobleLevelInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.NobleLevelInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_NobleLevelInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.NobleLevelInfo) + } + + // @@protoc_insertion_point(class_scope:User.NobleLevelInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public NobleLevelInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface OwnRoomOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.OwnRoom) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.OwnRoom} + */ + public static final class OwnRoom extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.OwnRoom) + OwnRoomOrBuilder { + private static final long serialVersionUID = 0L; + // Use OwnRoom.newBuilder() to construct. + private OwnRoom(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private OwnRoom() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new OwnRoom(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.OwnRoom} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.OwnRoom) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_OwnRoom_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.OwnRoom) + } + + // @@protoc_insertion_point(class_scope:User.OwnRoom) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public OwnRoom parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PayGradeOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.PayGrade) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 totalDiamondCount = 1; + * @return The totalDiamondCount. + */ + long getTotalDiamondCount(); + + /** + * .Image diamondIcon = 2; + * @return Whether the diamondIcon field is set. + */ + boolean hasDiamondIcon(); + /** + * .Image diamondIcon = 2; + * @return The diamondIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon(); + /** + * .Image diamondIcon = 2; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder(); + + /** + * string name = 3; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 3; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * .Image icon = 4; + * @return Whether the icon field is set. + */ + boolean hasIcon(); + /** + * .Image icon = 4; + * @return The icon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); + /** + * .Image icon = 4; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); + + /** + * string nextName = 5; + * @return The nextName. + */ + java.lang.String getNextName(); + /** + * string nextName = 5; + * @return The bytes for nextName. + */ + com.google.protobuf.ByteString + getNextNameBytes(); + + /** + * int64 level = 6; + * @return The level. + */ + long getLevel(); + + /** + * .Image nextIcon = 7; + * @return Whether the nextIcon field is set. + */ + boolean hasNextIcon(); + /** + * .Image nextIcon = 7; + * @return The nextIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon(); + /** + * .Image nextIcon = 7; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder(); + + /** + * int64 nextDiamond = 8; + * @return The nextDiamond. + */ + long getNextDiamond(); + + /** + * int64 nowDiamond = 9; + * @return The nowDiamond. + */ + long getNowDiamond(); + + /** + * int64 thisGradeMinDiamond = 10; + * @return The thisGradeMinDiamond. + */ + long getThisGradeMinDiamond(); + + /** + * int64 thisGradeMaxDiamond = 11; + * @return The thisGradeMaxDiamond. + */ + long getThisGradeMaxDiamond(); + + /** + * int64 payDiamondBak = 12; + * @return The payDiamondBak. + */ + long getPayDiamondBak(); + + /** + * string gradeDescribe = 13; + * @return The gradeDescribe. + */ + java.lang.String getGradeDescribe(); + /** + * string gradeDescribe = 13; + * @return The bytes for gradeDescribe. + */ + com.google.protobuf.ByteString + getGradeDescribeBytes(); + + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + java.util.List + getGradeIconListList(); + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index); + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + int getGradeIconListCount(); + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + java.util.List + getGradeIconListOrBuilderList(); + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( + int index); + + /** + * int64 screenChatType = 15; + * @return The screenChatType. + */ + long getScreenChatType(); + + /** + * .Image imIcon = 16; + * @return Whether the imIcon field is set. + */ + boolean hasImIcon(); + /** + * .Image imIcon = 16; + * @return The imIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon(); + /** + * .Image imIcon = 16; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder(); + + /** + * .Image imIconWithLevel = 17; + * @return Whether the imIconWithLevel field is set. + */ + boolean hasImIconWithLevel(); + /** + * .Image imIconWithLevel = 17; + * @return The imIconWithLevel. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel(); + /** + * .Image imIconWithLevel = 17; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder(); + + /** + * .Image liveIcon = 18; + * @return Whether the liveIcon field is set. + */ + boolean hasLiveIcon(); + /** + * .Image liveIcon = 18; + * @return The liveIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon(); + /** + * .Image liveIcon = 18; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder(); + + /** + * .Image newImIconWithLevel = 19; + * @return Whether the newImIconWithLevel field is set. + */ + boolean hasNewImIconWithLevel(); + /** + * .Image newImIconWithLevel = 19; + * @return The newImIconWithLevel. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel(); + /** + * .Image newImIconWithLevel = 19; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder(); + + /** + * .Image newLiveIcon = 20; + * @return Whether the newLiveIcon field is set. + */ + boolean hasNewLiveIcon(); + /** + * .Image newLiveIcon = 20; + * @return The newLiveIcon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon(); + /** + * .Image newLiveIcon = 20; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder(); + + /** + * int64 upgradeNeedConsume = 21; + * @return The upgradeNeedConsume. + */ + long getUpgradeNeedConsume(); + + /** + * string nextPrivileges = 22; + * @return The nextPrivileges. + */ + java.lang.String getNextPrivileges(); + /** + * string nextPrivileges = 22; + * @return The bytes for nextPrivileges. + */ + com.google.protobuf.ByteString + getNextPrivilegesBytes(); + + /** + * .Image background = 23; + * @return Whether the background field is set. + */ + boolean hasBackground(); + /** + * .Image background = 23; + * @return The background. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground(); + /** + * .Image background = 23; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder(); + + /** + * .Image backgroundBack = 24; + * @return Whether the backgroundBack field is set. + */ + boolean hasBackgroundBack(); + /** + * .Image backgroundBack = 24; + * @return The backgroundBack. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack(); + /** + * .Image backgroundBack = 24; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder(); + + /** + * int64 score = 25; + * @return The score. + */ + long getScore(); + + /** + *
+       * GradeBuffInfo buffInfo = 26;
+       * 
+ * + * string gradeBanner = 1001; + * @return The gradeBanner. + */ + java.lang.String getGradeBanner(); + /** + *
+       * GradeBuffInfo buffInfo = 26;
+       * 
+ * + * string gradeBanner = 1001; + * @return The bytes for gradeBanner. + */ + com.google.protobuf.ByteString + getGradeBannerBytes(); + + /** + * .Image profileDialogBg = 1002; + * @return Whether the profileDialogBg field is set. + */ + boolean hasProfileDialogBg(); + /** + * .Image profileDialogBg = 1002; + * @return The profileDialogBg. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg(); + /** + * .Image profileDialogBg = 1002; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder(); + + /** + * .Image profileDialogBgBack = 1003; + * @return Whether the profileDialogBgBack field is set. + */ + boolean hasProfileDialogBgBack(); + /** + * .Image profileDialogBgBack = 1003; + * @return The profileDialogBgBack. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack(); + /** + * .Image profileDialogBgBack = 1003; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder(); + } + /** + * Protobuf type {@code User.PayGrade} + */ + public static final class PayGrade extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.PayGrade) + PayGradeOrBuilder { + private static final long serialVersionUID = 0L; + // Use PayGrade.newBuilder() to construct. + private PayGrade(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PayGrade() { + name_ = ""; + nextName_ = ""; + gradeDescribe_ = ""; + gradeIconList_ = java.util.Collections.emptyList(); + nextPrivileges_ = ""; + gradeBanner_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PayGrade(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder.class); + } + + public interface GradeIconOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.PayGrade.GradeIcon) + com.google.protobuf.MessageOrBuilder { + + /** + * .Image icon = 1; + * @return Whether the icon field is set. + */ + boolean hasIcon(); + /** + * .Image icon = 1; + * @return The icon. + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon(); + /** + * .Image icon = 1; + */ + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder(); + + /** + * int64 iconDiamond = 2; + * @return The iconDiamond. + */ + long getIconDiamond(); + + /** + * int64 level = 3; + * @return The level. + */ + long getLevel(); + + /** + * string levelStr = 4; + * @return The levelStr. + */ + java.lang.String getLevelStr(); + /** + * string levelStr = 4; + * @return The bytes for levelStr. + */ + com.google.protobuf.ByteString + getLevelStrBytes(); + } + /** + * Protobuf type {@code User.PayGrade.GradeIcon} + */ + public static final class GradeIcon extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.PayGrade.GradeIcon) + GradeIconOrBuilder { + private static final long serialVersionUID = 0L; + // Use GradeIcon.newBuilder() to construct. + private GradeIcon(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GradeIcon() { + levelStr_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GradeIcon(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder.class); + } + + public static final int ICON_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + /** + * .Image icon = 1; + * @return Whether the icon field is set. + */ + @java.lang.Override + public boolean hasIcon() { + return icon_ != null; + } + /** + * .Image icon = 1; + * @return The icon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + /** + * .Image icon = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + + public static final int ICONDIAMOND_FIELD_NUMBER = 2; + private long iconDiamond_ = 0L; + /** + * int64 iconDiamond = 2; + * @return The iconDiamond. + */ + @java.lang.Override + public long getIconDiamond() { + return iconDiamond_; + } + + public static final int LEVEL_FIELD_NUMBER = 3; + private long level_ = 0L; + /** + * int64 level = 3; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + + public static final int LEVELSTR_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object levelStr_ = ""; + /** + * string levelStr = 4; + * @return The levelStr. + */ + @java.lang.Override + public java.lang.String getLevelStr() { + java.lang.Object ref = levelStr_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + levelStr_ = s; + return s; + } + } + /** + * string levelStr = 4; + * @return The bytes for levelStr. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLevelStrBytes() { + java.lang.Object ref = levelStr_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + levelStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (icon_ != null) { + output.writeMessage(1, getIcon()); + } + if (iconDiamond_ != 0L) { + output.writeInt64(2, iconDiamond_); + } + if (level_ != 0L) { + output.writeInt64(3, level_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(levelStr_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, levelStr_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (icon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getIcon()); + } + if (iconDiamond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, iconDiamond_); + } + if (level_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, level_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(levelStr_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, levelStr_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon) obj; + + if (hasIcon() != other.hasIcon()) return false; + if (hasIcon()) { + if (!getIcon() + .equals(other.getIcon())) return false; + } + if (getIconDiamond() + != other.getIconDiamond()) return false; + if (getLevel() + != other.getLevel()) return false; + if (!getLevelStr() + .equals(other.getLevelStr())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasIcon()) { + hash = (37 * hash) + ICON_FIELD_NUMBER; + hash = (53 * hash) + getIcon().hashCode(); + } + hash = (37 * hash) + ICONDIAMOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getIconDiamond()); + hash = (37 * hash) + LEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLevel()); + hash = (37 * hash) + LEVELSTR_FIELD_NUMBER; + hash = (53 * hash) + getLevelStr().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.PayGrade.GradeIcon} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.PayGrade.GradeIcon) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + iconDiamond_ = 0L; + level_ = 0L; + levelStr_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_GradeIcon_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.icon_ = iconBuilder_ == null + ? icon_ + : iconBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.iconDiamond_ = iconDiamond_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.level_ = level_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.levelStr_ = levelStr_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()) return this; + if (other.hasIcon()) { + mergeIcon(other.getIcon()); + } + if (other.getIconDiamond() != 0L) { + setIconDiamond(other.getIconDiamond()); + } + if (other.getLevel() != 0L) { + setLevel(other.getLevel()); + } + if (!other.getLevelStr().isEmpty()) { + levelStr_ = other.levelStr_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + iconDiamond_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + level_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + levelStr_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; + /** + * .Image icon = 1; + * @return Whether the icon field is set. + */ + public boolean hasIcon() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .Image icon = 1; + * @return The icon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + if (iconBuilder_ == null) { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } else { + return iconBuilder_.getMessage(); + } + } + /** + * .Image icon = 1; + */ + public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + icon_ = value; + } else { + iconBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image icon = 1; + */ + public Builder setIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (iconBuilder_ == null) { + icon_ = builderForValue.build(); + } else { + iconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image icon = 1; + */ + public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + icon_ != null && + icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getIconBuilder().mergeFrom(value); + } else { + icon_ = value; + } + } else { + iconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .Image icon = 1; + */ + public Builder clearIcon() { + bitField0_ = (bitField0_ & ~0x00000001); + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image icon = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getIconFieldBuilder().getBuilder(); + } + /** + * .Image icon = 1; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + if (iconBuilder_ != null) { + return iconBuilder_.getMessageOrBuilder(); + } else { + return icon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + } + /** + * .Image icon = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getIconFieldBuilder() { + if (iconBuilder_ == null) { + iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getIcon(), + getParentForChildren(), + isClean()); + icon_ = null; + } + return iconBuilder_; + } + + private long iconDiamond_ ; + /** + * int64 iconDiamond = 2; + * @return The iconDiamond. + */ + @java.lang.Override + public long getIconDiamond() { + return iconDiamond_; + } + /** + * int64 iconDiamond = 2; + * @param value The iconDiamond to set. + * @return This builder for chaining. + */ + public Builder setIconDiamond(long value) { + + iconDiamond_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 iconDiamond = 2; + * @return This builder for chaining. + */ + public Builder clearIconDiamond() { + bitField0_ = (bitField0_ & ~0x00000002); + iconDiamond_ = 0L; + onChanged(); + return this; + } + + private long level_ ; + /** + * int64 level = 3; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + /** + * int64 level = 3; + * @param value The level to set. + * @return This builder for chaining. + */ + public Builder setLevel(long value) { + + level_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 level = 3; + * @return This builder for chaining. + */ + public Builder clearLevel() { + bitField0_ = (bitField0_ & ~0x00000004); + level_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object levelStr_ = ""; + /** + * string levelStr = 4; + * @return The levelStr. + */ + public java.lang.String getLevelStr() { + java.lang.Object ref = levelStr_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + levelStr_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string levelStr = 4; + * @return The bytes for levelStr. + */ + public com.google.protobuf.ByteString + getLevelStrBytes() { + java.lang.Object ref = levelStr_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + levelStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string levelStr = 4; + * @param value The levelStr to set. + * @return This builder for chaining. + */ + public Builder setLevelStr( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + levelStr_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string levelStr = 4; + * @return This builder for chaining. + */ + public Builder clearLevelStr() { + levelStr_ = getDefaultInstance().getLevelStr(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string levelStr = 4; + * @param value The bytes for levelStr to set. + * @return This builder for chaining. + */ + public Builder setLevelStrBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + levelStr_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.PayGrade.GradeIcon) + } + + // @@protoc_insertion_point(class_scope:User.PayGrade.GradeIcon) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GradeIcon parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int TOTALDIAMONDCOUNT_FIELD_NUMBER = 1; + private long totalDiamondCount_ = 0L; + /** + * int64 totalDiamondCount = 1; + * @return The totalDiamondCount. + */ + @java.lang.Override + public long getTotalDiamondCount() { + return totalDiamondCount_; + } + + public static final int DIAMONDICON_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image diamondIcon_; + /** + * .Image diamondIcon = 2; + * @return Whether the diamondIcon field is set. + */ + @java.lang.Override + public boolean hasDiamondIcon() { + return diamondIcon_ != null; + } + /** + * .Image diamondIcon = 2; + * @return The diamondIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon() { + return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; + } + /** + * .Image diamondIcon = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder() { + return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; + } + + public static final int NAME_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * string name = 3; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 3; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ICON_FIELD_NUMBER = 4; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + /** + * .Image icon = 4; + * @return Whether the icon field is set. + */ + @java.lang.Override + public boolean hasIcon() { + return icon_ != null; + } + /** + * .Image icon = 4; + * @return The icon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + /** + * .Image icon = 4; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + + public static final int NEXTNAME_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object nextName_ = ""; + /** + * string nextName = 5; + * @return The nextName. + */ + @java.lang.Override + public java.lang.String getNextName() { + java.lang.Object ref = nextName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextName_ = s; + return s; + } + } + /** + * string nextName = 5; + * @return The bytes for nextName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNextNameBytes() { + java.lang.Object ref = nextName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LEVEL_FIELD_NUMBER = 6; + private long level_ = 0L; + /** + * int64 level = 6; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + + public static final int NEXTICON_FIELD_NUMBER = 7; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image nextIcon_; + /** + * .Image nextIcon = 7; + * @return Whether the nextIcon field is set. + */ + @java.lang.Override + public boolean hasNextIcon() { + return nextIcon_ != null; + } + /** + * .Image nextIcon = 7; + * @return The nextIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon() { + return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; + } + /** + * .Image nextIcon = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder() { + return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; + } + + public static final int NEXTDIAMOND_FIELD_NUMBER = 8; + private long nextDiamond_ = 0L; + /** + * int64 nextDiamond = 8; + * @return The nextDiamond. + */ + @java.lang.Override + public long getNextDiamond() { + return nextDiamond_; + } + + public static final int NOWDIAMOND_FIELD_NUMBER = 9; + private long nowDiamond_ = 0L; + /** + * int64 nowDiamond = 9; + * @return The nowDiamond. + */ + @java.lang.Override + public long getNowDiamond() { + return nowDiamond_; + } + + public static final int THISGRADEMINDIAMOND_FIELD_NUMBER = 10; + private long thisGradeMinDiamond_ = 0L; + /** + * int64 thisGradeMinDiamond = 10; + * @return The thisGradeMinDiamond. + */ + @java.lang.Override + public long getThisGradeMinDiamond() { + return thisGradeMinDiamond_; + } + + public static final int THISGRADEMAXDIAMOND_FIELD_NUMBER = 11; + private long thisGradeMaxDiamond_ = 0L; + /** + * int64 thisGradeMaxDiamond = 11; + * @return The thisGradeMaxDiamond. + */ + @java.lang.Override + public long getThisGradeMaxDiamond() { + return thisGradeMaxDiamond_; + } + + public static final int PAYDIAMONDBAK_FIELD_NUMBER = 12; + private long payDiamondBak_ = 0L; + /** + * int64 payDiamondBak = 12; + * @return The payDiamondBak. + */ + @java.lang.Override + public long getPayDiamondBak() { + return payDiamondBak_; + } + + public static final int GRADEDESCRIBE_FIELD_NUMBER = 13; + @SuppressWarnings("serial") + private volatile java.lang.Object gradeDescribe_ = ""; + /** + * string gradeDescribe = 13; + * @return The gradeDescribe. + */ + @java.lang.Override + public java.lang.String getGradeDescribe() { + java.lang.Object ref = gradeDescribe_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gradeDescribe_ = s; + return s; + } + } + /** + * string gradeDescribe = 13; + * @return The bytes for gradeDescribe. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGradeDescribeBytes() { + java.lang.Object ref = gradeDescribe_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gradeDescribe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GRADEICONLIST_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private java.util.List gradeIconList_; + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + @java.lang.Override + public java.util.List getGradeIconListList() { + return gradeIconList_; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + @java.lang.Override + public java.util.List + getGradeIconListOrBuilderList() { + return gradeIconList_; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + @java.lang.Override + public int getGradeIconListCount() { + return gradeIconList_.size(); + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index) { + return gradeIconList_.get(index); + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( + int index) { + return gradeIconList_.get(index); + } + + public static final int SCREENCHATTYPE_FIELD_NUMBER = 15; + private long screenChatType_ = 0L; + /** + * int64 screenChatType = 15; + * @return The screenChatType. + */ + @java.lang.Override + public long getScreenChatType() { + return screenChatType_; + } + + public static final int IMICON_FIELD_NUMBER = 16; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIcon_; + /** + * .Image imIcon = 16; + * @return Whether the imIcon field is set. + */ + @java.lang.Override + public boolean hasImIcon() { + return imIcon_ != null; + } + /** + * .Image imIcon = 16; + * @return The imIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon() { + return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; + } + /** + * .Image imIcon = 16; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder() { + return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; + } + + public static final int IMICONWITHLEVEL_FIELD_NUMBER = 17; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIconWithLevel_; + /** + * .Image imIconWithLevel = 17; + * @return Whether the imIconWithLevel field is set. + */ + @java.lang.Override + public boolean hasImIconWithLevel() { + return imIconWithLevel_ != null; + } + /** + * .Image imIconWithLevel = 17; + * @return The imIconWithLevel. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel() { + return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; + } + /** + * .Image imIconWithLevel = 17; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder() { + return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; + } + + public static final int LIVEICON_FIELD_NUMBER = 18; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image liveIcon_; + /** + * .Image liveIcon = 18; + * @return Whether the liveIcon field is set. + */ + @java.lang.Override + public boolean hasLiveIcon() { + return liveIcon_ != null; + } + /** + * .Image liveIcon = 18; + * @return The liveIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon() { + return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; + } + /** + * .Image liveIcon = 18; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder() { + return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; + } + + public static final int NEWIMICONWITHLEVEL_FIELD_NUMBER = 19; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newImIconWithLevel_; + /** + * .Image newImIconWithLevel = 19; + * @return Whether the newImIconWithLevel field is set. + */ + @java.lang.Override + public boolean hasNewImIconWithLevel() { + return newImIconWithLevel_ != null; + } + /** + * .Image newImIconWithLevel = 19; + * @return The newImIconWithLevel. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel() { + return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; + } + /** + * .Image newImIconWithLevel = 19; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder() { + return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; + } + + public static final int NEWLIVEICON_FIELD_NUMBER = 20; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newLiveIcon_; + /** + * .Image newLiveIcon = 20; + * @return Whether the newLiveIcon field is set. + */ + @java.lang.Override + public boolean hasNewLiveIcon() { + return newLiveIcon_ != null; + } + /** + * .Image newLiveIcon = 20; + * @return The newLiveIcon. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon() { + return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; + } + /** + * .Image newLiveIcon = 20; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder() { + return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; + } + + public static final int UPGRADENEEDCONSUME_FIELD_NUMBER = 21; + private long upgradeNeedConsume_ = 0L; + /** + * int64 upgradeNeedConsume = 21; + * @return The upgradeNeedConsume. + */ + @java.lang.Override + public long getUpgradeNeedConsume() { + return upgradeNeedConsume_; + } + + public static final int NEXTPRIVILEGES_FIELD_NUMBER = 22; + @SuppressWarnings("serial") + private volatile java.lang.Object nextPrivileges_ = ""; + /** + * string nextPrivileges = 22; + * @return The nextPrivileges. + */ + @java.lang.Override + public java.lang.String getNextPrivileges() { + java.lang.Object ref = nextPrivileges_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPrivileges_ = s; + return s; + } + } + /** + * string nextPrivileges = 22; + * @return The bytes for nextPrivileges. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNextPrivilegesBytes() { + java.lang.Object ref = nextPrivileges_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextPrivileges_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BACKGROUND_FIELD_NUMBER = 23; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; + /** + * .Image background = 23; + * @return Whether the background field is set. + */ + @java.lang.Override + public boolean hasBackground() { + return background_ != null; + } + /** + * .Image background = 23; + * @return The background. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + /** + * .Image background = 23; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + + public static final int BACKGROUNDBACK_FIELD_NUMBER = 24; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundBack_; + /** + * .Image backgroundBack = 24; + * @return Whether the backgroundBack field is set. + */ + @java.lang.Override + public boolean hasBackgroundBack() { + return backgroundBack_ != null; + } + /** + * .Image backgroundBack = 24; + * @return The backgroundBack. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack() { + return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; + } + /** + * .Image backgroundBack = 24; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder() { + return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; + } + + public static final int SCORE_FIELD_NUMBER = 25; + private long score_ = 0L; + /** + * int64 score = 25; + * @return The score. + */ + @java.lang.Override + public long getScore() { + return score_; + } + + public static final int GRADEBANNER_FIELD_NUMBER = 1001; + @SuppressWarnings("serial") + private volatile java.lang.Object gradeBanner_ = ""; + /** + *
+       * GradeBuffInfo buffInfo = 26;
+       * 
+ * + * string gradeBanner = 1001; + * @return The gradeBanner. + */ + @java.lang.Override + public java.lang.String getGradeBanner() { + java.lang.Object ref = gradeBanner_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gradeBanner_ = s; + return s; + } + } + /** + *
+       * GradeBuffInfo buffInfo = 26;
+       * 
+ * + * string gradeBanner = 1001; + * @return The bytes for gradeBanner. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGradeBannerBytes() { + java.lang.Object ref = gradeBanner_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gradeBanner_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PROFILEDIALOGBG_FIELD_NUMBER = 1002; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBg_; + /** + * .Image profileDialogBg = 1002; + * @return Whether the profileDialogBg field is set. + */ + @java.lang.Override + public boolean hasProfileDialogBg() { + return profileDialogBg_ != null; + } + /** + * .Image profileDialogBg = 1002; + * @return The profileDialogBg. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg() { + return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; + } + /** + * .Image profileDialogBg = 1002; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder() { + return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; + } + + public static final int PROFILEDIALOGBGBACK_FIELD_NUMBER = 1003; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBgBack_; + /** + * .Image profileDialogBgBack = 1003; + * @return Whether the profileDialogBgBack field is set. + */ + @java.lang.Override + public boolean hasProfileDialogBgBack() { + return profileDialogBgBack_ != null; + } + /** + * .Image profileDialogBgBack = 1003; + * @return The profileDialogBgBack. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack() { + return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; + } + /** + * .Image profileDialogBgBack = 1003; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder() { + return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (totalDiamondCount_ != 0L) { + output.writeInt64(1, totalDiamondCount_); + } + if (diamondIcon_ != null) { + output.writeMessage(2, getDiamondIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_); + } + if (icon_ != null) { + output.writeMessage(4, getIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, nextName_); + } + if (level_ != 0L) { + output.writeInt64(6, level_); + } + if (nextIcon_ != null) { + output.writeMessage(7, getNextIcon()); + } + if (nextDiamond_ != 0L) { + output.writeInt64(8, nextDiamond_); + } + if (nowDiamond_ != 0L) { + output.writeInt64(9, nowDiamond_); + } + if (thisGradeMinDiamond_ != 0L) { + output.writeInt64(10, thisGradeMinDiamond_); + } + if (thisGradeMaxDiamond_ != 0L) { + output.writeInt64(11, thisGradeMaxDiamond_); + } + if (payDiamondBak_ != 0L) { + output.writeInt64(12, payDiamondBak_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeDescribe_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 13, gradeDescribe_); + } + for (int i = 0; i < gradeIconList_.size(); i++) { + output.writeMessage(14, gradeIconList_.get(i)); + } + if (screenChatType_ != 0L) { + output.writeInt64(15, screenChatType_); + } + if (imIcon_ != null) { + output.writeMessage(16, getImIcon()); + } + if (imIconWithLevel_ != null) { + output.writeMessage(17, getImIconWithLevel()); + } + if (liveIcon_ != null) { + output.writeMessage(18, getLiveIcon()); + } + if (newImIconWithLevel_ != null) { + output.writeMessage(19, getNewImIconWithLevel()); + } + if (newLiveIcon_ != null) { + output.writeMessage(20, getNewLiveIcon()); + } + if (upgradeNeedConsume_ != 0L) { + output.writeInt64(21, upgradeNeedConsume_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPrivileges_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 22, nextPrivileges_); + } + if (background_ != null) { + output.writeMessage(23, getBackground()); + } + if (backgroundBack_ != null) { + output.writeMessage(24, getBackgroundBack()); + } + if (score_ != 0L) { + output.writeInt64(25, score_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeBanner_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1001, gradeBanner_); + } + if (profileDialogBg_ != null) { + output.writeMessage(1002, getProfileDialogBg()); + } + if (profileDialogBgBack_ != null) { + output.writeMessage(1003, getProfileDialogBgBack()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (totalDiamondCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, totalDiamondCount_); + } + if (diamondIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getDiamondIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_); + } + if (icon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getIcon()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, nextName_); + } + if (level_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, level_); + } + if (nextIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getNextIcon()); + } + if (nextDiamond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, nextDiamond_); + } + if (nowDiamond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(9, nowDiamond_); + } + if (thisGradeMinDiamond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, thisGradeMinDiamond_); + } + if (thisGradeMaxDiamond_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(11, thisGradeMaxDiamond_); + } + if (payDiamondBak_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(12, payDiamondBak_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeDescribe_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, gradeDescribe_); + } + for (int i = 0; i < gradeIconList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, gradeIconList_.get(i)); + } + if (screenChatType_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(15, screenChatType_); + } + if (imIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(16, getImIcon()); + } + if (imIconWithLevel_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, getImIconWithLevel()); + } + if (liveIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, getLiveIcon()); + } + if (newImIconWithLevel_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(19, getNewImIconWithLevel()); + } + if (newLiveIcon_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, getNewLiveIcon()); + } + if (upgradeNeedConsume_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(21, upgradeNeedConsume_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nextPrivileges_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, nextPrivileges_); + } + if (background_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(23, getBackground()); + } + if (backgroundBack_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(24, getBackgroundBack()); + } + if (score_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(25, score_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gradeBanner_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1001, gradeBanner_); + } + if (profileDialogBg_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1002, getProfileDialogBg()); + } + if (profileDialogBgBack_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1003, getProfileDialogBgBack()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade) obj; + + if (getTotalDiamondCount() + != other.getTotalDiamondCount()) return false; + if (hasDiamondIcon() != other.hasDiamondIcon()) return false; + if (hasDiamondIcon()) { + if (!getDiamondIcon() + .equals(other.getDiamondIcon())) return false; + } + if (!getName() + .equals(other.getName())) return false; + if (hasIcon() != other.hasIcon()) return false; + if (hasIcon()) { + if (!getIcon() + .equals(other.getIcon())) return false; + } + if (!getNextName() + .equals(other.getNextName())) return false; + if (getLevel() + != other.getLevel()) return false; + if (hasNextIcon() != other.hasNextIcon()) return false; + if (hasNextIcon()) { + if (!getNextIcon() + .equals(other.getNextIcon())) return false; + } + if (getNextDiamond() + != other.getNextDiamond()) return false; + if (getNowDiamond() + != other.getNowDiamond()) return false; + if (getThisGradeMinDiamond() + != other.getThisGradeMinDiamond()) return false; + if (getThisGradeMaxDiamond() + != other.getThisGradeMaxDiamond()) return false; + if (getPayDiamondBak() + != other.getPayDiamondBak()) return false; + if (!getGradeDescribe() + .equals(other.getGradeDescribe())) return false; + if (!getGradeIconListList() + .equals(other.getGradeIconListList())) return false; + if (getScreenChatType() + != other.getScreenChatType()) return false; + if (hasImIcon() != other.hasImIcon()) return false; + if (hasImIcon()) { + if (!getImIcon() + .equals(other.getImIcon())) return false; + } + if (hasImIconWithLevel() != other.hasImIconWithLevel()) return false; + if (hasImIconWithLevel()) { + if (!getImIconWithLevel() + .equals(other.getImIconWithLevel())) return false; + } + if (hasLiveIcon() != other.hasLiveIcon()) return false; + if (hasLiveIcon()) { + if (!getLiveIcon() + .equals(other.getLiveIcon())) return false; + } + if (hasNewImIconWithLevel() != other.hasNewImIconWithLevel()) return false; + if (hasNewImIconWithLevel()) { + if (!getNewImIconWithLevel() + .equals(other.getNewImIconWithLevel())) return false; + } + if (hasNewLiveIcon() != other.hasNewLiveIcon()) return false; + if (hasNewLiveIcon()) { + if (!getNewLiveIcon() + .equals(other.getNewLiveIcon())) return false; + } + if (getUpgradeNeedConsume() + != other.getUpgradeNeedConsume()) return false; + if (!getNextPrivileges() + .equals(other.getNextPrivileges())) return false; + if (hasBackground() != other.hasBackground()) return false; + if (hasBackground()) { + if (!getBackground() + .equals(other.getBackground())) return false; + } + if (hasBackgroundBack() != other.hasBackgroundBack()) return false; + if (hasBackgroundBack()) { + if (!getBackgroundBack() + .equals(other.getBackgroundBack())) return false; + } + if (getScore() + != other.getScore()) return false; + if (!getGradeBanner() + .equals(other.getGradeBanner())) return false; + if (hasProfileDialogBg() != other.hasProfileDialogBg()) return false; + if (hasProfileDialogBg()) { + if (!getProfileDialogBg() + .equals(other.getProfileDialogBg())) return false; + } + if (hasProfileDialogBgBack() != other.hasProfileDialogBgBack()) return false; + if (hasProfileDialogBgBack()) { + if (!getProfileDialogBgBack() + .equals(other.getProfileDialogBgBack())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TOTALDIAMONDCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTotalDiamondCount()); + if (hasDiamondIcon()) { + hash = (37 * hash) + DIAMONDICON_FIELD_NUMBER; + hash = (53 * hash) + getDiamondIcon().hashCode(); + } + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (hasIcon()) { + hash = (37 * hash) + ICON_FIELD_NUMBER; + hash = (53 * hash) + getIcon().hashCode(); + } + hash = (37 * hash) + NEXTNAME_FIELD_NUMBER; + hash = (53 * hash) + getNextName().hashCode(); + hash = (37 * hash) + LEVEL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLevel()); + if (hasNextIcon()) { + hash = (37 * hash) + NEXTICON_FIELD_NUMBER; + hash = (53 * hash) + getNextIcon().hashCode(); + } + hash = (37 * hash) + NEXTDIAMOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getNextDiamond()); + hash = (37 * hash) + NOWDIAMOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getNowDiamond()); + hash = (37 * hash) + THISGRADEMINDIAMOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getThisGradeMinDiamond()); + hash = (37 * hash) + THISGRADEMAXDIAMOND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getThisGradeMaxDiamond()); + hash = (37 * hash) + PAYDIAMONDBAK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPayDiamondBak()); + hash = (37 * hash) + GRADEDESCRIBE_FIELD_NUMBER; + hash = (53 * hash) + getGradeDescribe().hashCode(); + if (getGradeIconListCount() > 0) { + hash = (37 * hash) + GRADEICONLIST_FIELD_NUMBER; + hash = (53 * hash) + getGradeIconListList().hashCode(); + } + hash = (37 * hash) + SCREENCHATTYPE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getScreenChatType()); + if (hasImIcon()) { + hash = (37 * hash) + IMICON_FIELD_NUMBER; + hash = (53 * hash) + getImIcon().hashCode(); + } + if (hasImIconWithLevel()) { + hash = (37 * hash) + IMICONWITHLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getImIconWithLevel().hashCode(); + } + if (hasLiveIcon()) { + hash = (37 * hash) + LIVEICON_FIELD_NUMBER; + hash = (53 * hash) + getLiveIcon().hashCode(); + } + if (hasNewImIconWithLevel()) { + hash = (37 * hash) + NEWIMICONWITHLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getNewImIconWithLevel().hashCode(); + } + if (hasNewLiveIcon()) { + hash = (37 * hash) + NEWLIVEICON_FIELD_NUMBER; + hash = (53 * hash) + getNewLiveIcon().hashCode(); + } + hash = (37 * hash) + UPGRADENEEDCONSUME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUpgradeNeedConsume()); + hash = (37 * hash) + NEXTPRIVILEGES_FIELD_NUMBER; + hash = (53 * hash) + getNextPrivileges().hashCode(); + if (hasBackground()) { + hash = (37 * hash) + BACKGROUND_FIELD_NUMBER; + hash = (53 * hash) + getBackground().hashCode(); + } + if (hasBackgroundBack()) { + hash = (37 * hash) + BACKGROUNDBACK_FIELD_NUMBER; + hash = (53 * hash) + getBackgroundBack().hashCode(); + } + hash = (37 * hash) + SCORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getScore()); + hash = (37 * hash) + GRADEBANNER_FIELD_NUMBER; + hash = (53 * hash) + getGradeBanner().hashCode(); + if (hasProfileDialogBg()) { + hash = (37 * hash) + PROFILEDIALOGBG_FIELD_NUMBER; + hash = (53 * hash) + getProfileDialogBg().hashCode(); + } + if (hasProfileDialogBgBack()) { + hash = (37 * hash) + PROFILEDIALOGBGBACK_FIELD_NUMBER; + hash = (53 * hash) + getProfileDialogBgBack().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.PayGrade} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.PayGrade) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + totalDiamondCount_ = 0L; + diamondIcon_ = null; + if (diamondIconBuilder_ != null) { + diamondIconBuilder_.dispose(); + diamondIconBuilder_ = null; + } + name_ = ""; + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + nextName_ = ""; + level_ = 0L; + nextIcon_ = null; + if (nextIconBuilder_ != null) { + nextIconBuilder_.dispose(); + nextIconBuilder_ = null; + } + nextDiamond_ = 0L; + nowDiamond_ = 0L; + thisGradeMinDiamond_ = 0L; + thisGradeMaxDiamond_ = 0L; + payDiamondBak_ = 0L; + gradeDescribe_ = ""; + if (gradeIconListBuilder_ == null) { + gradeIconList_ = java.util.Collections.emptyList(); + } else { + gradeIconList_ = null; + gradeIconListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00002000); + screenChatType_ = 0L; + imIcon_ = null; + if (imIconBuilder_ != null) { + imIconBuilder_.dispose(); + imIconBuilder_ = null; + } + imIconWithLevel_ = null; + if (imIconWithLevelBuilder_ != null) { + imIconWithLevelBuilder_.dispose(); + imIconWithLevelBuilder_ = null; + } + liveIcon_ = null; + if (liveIconBuilder_ != null) { + liveIconBuilder_.dispose(); + liveIconBuilder_ = null; + } + newImIconWithLevel_ = null; + if (newImIconWithLevelBuilder_ != null) { + newImIconWithLevelBuilder_.dispose(); + newImIconWithLevelBuilder_ = null; + } + newLiveIcon_ = null; + if (newLiveIconBuilder_ != null) { + newLiveIconBuilder_.dispose(); + newLiveIconBuilder_ = null; + } + upgradeNeedConsume_ = 0L; + nextPrivileges_ = ""; + background_ = null; + if (backgroundBuilder_ != null) { + backgroundBuilder_.dispose(); + backgroundBuilder_ = null; + } + backgroundBack_ = null; + if (backgroundBackBuilder_ != null) { + backgroundBackBuilder_.dispose(); + backgroundBackBuilder_ = null; + } + score_ = 0L; + gradeBanner_ = ""; + profileDialogBg_ = null; + if (profileDialogBgBuilder_ != null) { + profileDialogBgBuilder_.dispose(); + profileDialogBgBuilder_ = null; + } + profileDialogBgBack_ = null; + if (profileDialogBgBackBuilder_ != null) { + profileDialogBgBackBuilder_.dispose(); + profileDialogBgBackBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PayGrade_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result) { + if (gradeIconListBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0)) { + gradeIconList_ = java.util.Collections.unmodifiableList(gradeIconList_); + bitField0_ = (bitField0_ & ~0x00002000); + } + result.gradeIconList_ = gradeIconList_; + } else { + result.gradeIconList_ = gradeIconListBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.totalDiamondCount_ = totalDiamondCount_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.diamondIcon_ = diamondIconBuilder_ == null + ? diamondIcon_ + : diamondIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.icon_ = iconBuilder_ == null + ? icon_ + : iconBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.nextName_ = nextName_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.level_ = level_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.nextIcon_ = nextIconBuilder_ == null + ? nextIcon_ + : nextIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.nextDiamond_ = nextDiamond_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.nowDiamond_ = nowDiamond_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.thisGradeMinDiamond_ = thisGradeMinDiamond_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.thisGradeMaxDiamond_ = thisGradeMaxDiamond_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.payDiamondBak_ = payDiamondBak_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.gradeDescribe_ = gradeDescribe_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.screenChatType_ = screenChatType_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.imIcon_ = imIconBuilder_ == null + ? imIcon_ + : imIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.imIconWithLevel_ = imIconWithLevelBuilder_ == null + ? imIconWithLevel_ + : imIconWithLevelBuilder_.build(); + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.liveIcon_ = liveIconBuilder_ == null + ? liveIcon_ + : liveIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.newImIconWithLevel_ = newImIconWithLevelBuilder_ == null + ? newImIconWithLevel_ + : newImIconWithLevelBuilder_.build(); + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.newLiveIcon_ = newLiveIconBuilder_ == null + ? newLiveIcon_ + : newLiveIconBuilder_.build(); + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.upgradeNeedConsume_ = upgradeNeedConsume_; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.nextPrivileges_ = nextPrivileges_; + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.background_ = backgroundBuilder_ == null + ? background_ + : backgroundBuilder_.build(); + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.backgroundBack_ = backgroundBackBuilder_ == null + ? backgroundBack_ + : backgroundBackBuilder_.build(); + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.score_ = score_; + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.gradeBanner_ = gradeBanner_; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.profileDialogBg_ = profileDialogBgBuilder_ == null + ? profileDialogBg_ + : profileDialogBgBuilder_.build(); + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.profileDialogBgBack_ = profileDialogBgBackBuilder_ == null + ? profileDialogBgBack_ + : profileDialogBgBackBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance()) return this; + if (other.getTotalDiamondCount() != 0L) { + setTotalDiamondCount(other.getTotalDiamondCount()); + } + if (other.hasDiamondIcon()) { + mergeDiamondIcon(other.getDiamondIcon()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.hasIcon()) { + mergeIcon(other.getIcon()); + } + if (!other.getNextName().isEmpty()) { + nextName_ = other.nextName_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.getLevel() != 0L) { + setLevel(other.getLevel()); + } + if (other.hasNextIcon()) { + mergeNextIcon(other.getNextIcon()); + } + if (other.getNextDiamond() != 0L) { + setNextDiamond(other.getNextDiamond()); + } + if (other.getNowDiamond() != 0L) { + setNowDiamond(other.getNowDiamond()); + } + if (other.getThisGradeMinDiamond() != 0L) { + setThisGradeMinDiamond(other.getThisGradeMinDiamond()); + } + if (other.getThisGradeMaxDiamond() != 0L) { + setThisGradeMaxDiamond(other.getThisGradeMaxDiamond()); + } + if (other.getPayDiamondBak() != 0L) { + setPayDiamondBak(other.getPayDiamondBak()); + } + if (!other.getGradeDescribe().isEmpty()) { + gradeDescribe_ = other.gradeDescribe_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (gradeIconListBuilder_ == null) { + if (!other.gradeIconList_.isEmpty()) { + if (gradeIconList_.isEmpty()) { + gradeIconList_ = other.gradeIconList_; + bitField0_ = (bitField0_ & ~0x00002000); + } else { + ensureGradeIconListIsMutable(); + gradeIconList_.addAll(other.gradeIconList_); + } + onChanged(); + } + } else { + if (!other.gradeIconList_.isEmpty()) { + if (gradeIconListBuilder_.isEmpty()) { + gradeIconListBuilder_.dispose(); + gradeIconListBuilder_ = null; + gradeIconList_ = other.gradeIconList_; + bitField0_ = (bitField0_ & ~0x00002000); + gradeIconListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getGradeIconListFieldBuilder() : null; + } else { + gradeIconListBuilder_.addAllMessages(other.gradeIconList_); + } + } + } + if (other.getScreenChatType() != 0L) { + setScreenChatType(other.getScreenChatType()); + } + if (other.hasImIcon()) { + mergeImIcon(other.getImIcon()); + } + if (other.hasImIconWithLevel()) { + mergeImIconWithLevel(other.getImIconWithLevel()); + } + if (other.hasLiveIcon()) { + mergeLiveIcon(other.getLiveIcon()); + } + if (other.hasNewImIconWithLevel()) { + mergeNewImIconWithLevel(other.getNewImIconWithLevel()); + } + if (other.hasNewLiveIcon()) { + mergeNewLiveIcon(other.getNewLiveIcon()); + } + if (other.getUpgradeNeedConsume() != 0L) { + setUpgradeNeedConsume(other.getUpgradeNeedConsume()); + } + if (!other.getNextPrivileges().isEmpty()) { + nextPrivileges_ = other.nextPrivileges_; + bitField0_ |= 0x00200000; + onChanged(); + } + if (other.hasBackground()) { + mergeBackground(other.getBackground()); + } + if (other.hasBackgroundBack()) { + mergeBackgroundBack(other.getBackgroundBack()); + } + if (other.getScore() != 0L) { + setScore(other.getScore()); + } + if (!other.getGradeBanner().isEmpty()) { + gradeBanner_ = other.gradeBanner_; + bitField0_ |= 0x02000000; + onChanged(); + } + if (other.hasProfileDialogBg()) { + mergeProfileDialogBg(other.getProfileDialogBg()); + } + if (other.hasProfileDialogBgBack()) { + mergeProfileDialogBgBack(other.getProfileDialogBgBack()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + totalDiamondCount_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + input.readMessage( + getDiamondIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + nextName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + level_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + input.readMessage( + getNextIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 64: { + nextDiamond_ = input.readInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + nowDiamond_ = input.readInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: { + thisGradeMinDiamond_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 88: { + thisGradeMaxDiamond_ = input.readInt64(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 96: { + payDiamondBak_ = input.readInt64(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 106: { + gradeDescribe_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.parser(), + extensionRegistry); + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + gradeIconList_.add(m); + } else { + gradeIconListBuilder_.addMessage(m); + } + break; + } // case 114 + case 120: { + screenChatType_ = input.readInt64(); + bitField0_ |= 0x00004000; + break; + } // case 120 + case 130: { + input.readMessage( + getImIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 138: { + input.readMessage( + getImIconWithLevelFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00010000; + break; + } // case 138 + case 146: { + input.readMessage( + getLiveIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00020000; + break; + } // case 146 + case 154: { + input.readMessage( + getNewImIconWithLevelFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00040000; + break; + } // case 154 + case 162: { + input.readMessage( + getNewLiveIconFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00080000; + break; + } // case 162 + case 168: { + upgradeNeedConsume_ = input.readInt64(); + bitField0_ |= 0x00100000; + break; + } // case 168 + case 178: { + nextPrivileges_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00200000; + break; + } // case 178 + case 186: { + input.readMessage( + getBackgroundFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00400000; + break; + } // case 186 + case 194: { + input.readMessage( + getBackgroundBackFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00800000; + break; + } // case 194 + case 200: { + score_ = input.readInt64(); + bitField0_ |= 0x01000000; + break; + } // case 200 + case 8010: { + gradeBanner_ = input.readStringRequireUtf8(); + bitField0_ |= 0x02000000; + break; + } // case 8010 + case 8018: { + input.readMessage( + getProfileDialogBgFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x04000000; + break; + } // case 8018 + case 8026: { + input.readMessage( + getProfileDialogBgBackFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x08000000; + break; + } // case 8026 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long totalDiamondCount_ ; + /** + * int64 totalDiamondCount = 1; + * @return The totalDiamondCount. + */ + @java.lang.Override + public long getTotalDiamondCount() { + return totalDiamondCount_; + } + /** + * int64 totalDiamondCount = 1; + * @param value The totalDiamondCount to set. + * @return This builder for chaining. + */ + public Builder setTotalDiamondCount(long value) { + + totalDiamondCount_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int64 totalDiamondCount = 1; + * @return This builder for chaining. + */ + public Builder clearTotalDiamondCount() { + bitField0_ = (bitField0_ & ~0x00000001); + totalDiamondCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image diamondIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> diamondIconBuilder_; + /** + * .Image diamondIcon = 2; + * @return Whether the diamondIcon field is set. + */ + public boolean hasDiamondIcon() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .Image diamondIcon = 2; + * @return The diamondIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDiamondIcon() { + if (diamondIconBuilder_ == null) { + return diamondIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; + } else { + return diamondIconBuilder_.getMessage(); + } + } + /** + * .Image diamondIcon = 2; + */ + public Builder setDiamondIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (diamondIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + diamondIcon_ = value; + } else { + diamondIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .Image diamondIcon = 2; + */ + public Builder setDiamondIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (diamondIconBuilder_ == null) { + diamondIcon_ = builderForValue.build(); + } else { + diamondIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .Image diamondIcon = 2; + */ + public Builder mergeDiamondIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (diamondIconBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + diamondIcon_ != null && + diamondIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getDiamondIconBuilder().mergeFrom(value); + } else { + diamondIcon_ = value; + } + } else { + diamondIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .Image diamondIcon = 2; + */ + public Builder clearDiamondIcon() { + bitField0_ = (bitField0_ & ~0x00000002); + diamondIcon_ = null; + if (diamondIconBuilder_ != null) { + diamondIconBuilder_.dispose(); + diamondIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image diamondIcon = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getDiamondIconBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getDiamondIconFieldBuilder().getBuilder(); + } + /** + * .Image diamondIcon = 2; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDiamondIconOrBuilder() { + if (diamondIconBuilder_ != null) { + return diamondIconBuilder_.getMessageOrBuilder(); + } else { + return diamondIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : diamondIcon_; + } + } + /** + * .Image diamondIcon = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getDiamondIconFieldBuilder() { + if (diamondIconBuilder_ == null) { + diamondIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getDiamondIcon(), + getParentForChildren(), + isClean()); + diamondIcon_ = null; + } + return diamondIconBuilder_; + } + + private java.lang.Object name_ = ""; + /** + * string name = 3; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 3; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 3; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string name = 3; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string name = 3; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_; + /** + * .Image icon = 4; + * @return Whether the icon field is set. + */ + public boolean hasIcon() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .Image icon = 4; + * @return The icon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() { + if (iconBuilder_ == null) { + return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } else { + return iconBuilder_.getMessage(); + } + } + /** + * .Image icon = 4; + */ + public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + icon_ = value; + } else { + iconBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .Image icon = 4; + */ + public Builder setIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (iconBuilder_ == null) { + icon_ = builderForValue.build(); + } else { + iconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .Image icon = 4; + */ + public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (iconBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + icon_ != null && + icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getIconBuilder().mergeFrom(value); + } else { + icon_ = value; + } + } else { + iconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .Image icon = 4; + */ + public Builder clearIcon() { + bitField0_ = (bitField0_ & ~0x00000008); + icon_ = null; + if (iconBuilder_ != null) { + iconBuilder_.dispose(); + iconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image icon = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getIconFieldBuilder().getBuilder(); + } + /** + * .Image icon = 4; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() { + if (iconBuilder_ != null) { + return iconBuilder_.getMessageOrBuilder(); + } else { + return icon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_; + } + } + /** + * .Image icon = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getIconFieldBuilder() { + if (iconBuilder_ == null) { + iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getIcon(), + getParentForChildren(), + isClean()); + icon_ = null; + } + return iconBuilder_; + } + + private java.lang.Object nextName_ = ""; + /** + * string nextName = 5; + * @return The nextName. + */ + public java.lang.String getNextName() { + java.lang.Object ref = nextName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string nextName = 5; + * @return The bytes for nextName. + */ + public com.google.protobuf.ByteString + getNextNameBytes() { + java.lang.Object ref = nextName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string nextName = 5; + * @param value The nextName to set. + * @return This builder for chaining. + */ + public Builder setNextName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + nextName_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string nextName = 5; + * @return This builder for chaining. + */ + public Builder clearNextName() { + nextName_ = getDefaultInstance().getNextName(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string nextName = 5; + * @param value The bytes for nextName to set. + * @return This builder for chaining. + */ + public Builder setNextNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + nextName_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private long level_ ; + /** + * int64 level = 6; + * @return The level. + */ + @java.lang.Override + public long getLevel() { + return level_; + } + /** + * int64 level = 6; + * @param value The level to set. + * @return This builder for chaining. + */ + public Builder setLevel(long value) { + + level_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * int64 level = 6; + * @return This builder for chaining. + */ + public Builder clearLevel() { + bitField0_ = (bitField0_ & ~0x00000020); + level_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image nextIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> nextIconBuilder_; + /** + * .Image nextIcon = 7; + * @return Whether the nextIcon field is set. + */ + public boolean hasNextIcon() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .Image nextIcon = 7; + * @return The nextIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNextIcon() { + if (nextIconBuilder_ == null) { + return nextIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; + } else { + return nextIconBuilder_.getMessage(); + } + } + /** + * .Image nextIcon = 7; + */ + public Builder setNextIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (nextIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nextIcon_ = value; + } else { + nextIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image nextIcon = 7; + */ + public Builder setNextIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (nextIconBuilder_ == null) { + nextIcon_ = builderForValue.build(); + } else { + nextIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image nextIcon = 7; + */ + public Builder mergeNextIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (nextIconBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + nextIcon_ != null && + nextIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getNextIconBuilder().mergeFrom(value); + } else { + nextIcon_ = value; + } + } else { + nextIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .Image nextIcon = 7; + */ + public Builder clearNextIcon() { + bitField0_ = (bitField0_ & ~0x00000040); + nextIcon_ = null; + if (nextIconBuilder_ != null) { + nextIconBuilder_.dispose(); + nextIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image nextIcon = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNextIconBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getNextIconFieldBuilder().getBuilder(); + } + /** + * .Image nextIcon = 7; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNextIconOrBuilder() { + if (nextIconBuilder_ != null) { + return nextIconBuilder_.getMessageOrBuilder(); + } else { + return nextIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : nextIcon_; + } + } + /** + * .Image nextIcon = 7; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getNextIconFieldBuilder() { + if (nextIconBuilder_ == null) { + nextIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getNextIcon(), + getParentForChildren(), + isClean()); + nextIcon_ = null; + } + return nextIconBuilder_; + } + + private long nextDiamond_ ; + /** + * int64 nextDiamond = 8; + * @return The nextDiamond. + */ + @java.lang.Override + public long getNextDiamond() { + return nextDiamond_; + } + /** + * int64 nextDiamond = 8; + * @param value The nextDiamond to set. + * @return This builder for chaining. + */ + public Builder setNextDiamond(long value) { + + nextDiamond_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * int64 nextDiamond = 8; + * @return This builder for chaining. + */ + public Builder clearNextDiamond() { + bitField0_ = (bitField0_ & ~0x00000080); + nextDiamond_ = 0L; + onChanged(); + return this; + } + + private long nowDiamond_ ; + /** + * int64 nowDiamond = 9; + * @return The nowDiamond. + */ + @java.lang.Override + public long getNowDiamond() { + return nowDiamond_; + } + /** + * int64 nowDiamond = 9; + * @param value The nowDiamond to set. + * @return This builder for chaining. + */ + public Builder setNowDiamond(long value) { + + nowDiamond_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * int64 nowDiamond = 9; + * @return This builder for chaining. + */ + public Builder clearNowDiamond() { + bitField0_ = (bitField0_ & ~0x00000100); + nowDiamond_ = 0L; + onChanged(); + return this; + } + + private long thisGradeMinDiamond_ ; + /** + * int64 thisGradeMinDiamond = 10; + * @return The thisGradeMinDiamond. + */ + @java.lang.Override + public long getThisGradeMinDiamond() { + return thisGradeMinDiamond_; + } + /** + * int64 thisGradeMinDiamond = 10; + * @param value The thisGradeMinDiamond to set. + * @return This builder for chaining. + */ + public Builder setThisGradeMinDiamond(long value) { + + thisGradeMinDiamond_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * int64 thisGradeMinDiamond = 10; + * @return This builder for chaining. + */ + public Builder clearThisGradeMinDiamond() { + bitField0_ = (bitField0_ & ~0x00000200); + thisGradeMinDiamond_ = 0L; + onChanged(); + return this; + } + + private long thisGradeMaxDiamond_ ; + /** + * int64 thisGradeMaxDiamond = 11; + * @return The thisGradeMaxDiamond. + */ + @java.lang.Override + public long getThisGradeMaxDiamond() { + return thisGradeMaxDiamond_; + } + /** + * int64 thisGradeMaxDiamond = 11; + * @param value The thisGradeMaxDiamond to set. + * @return This builder for chaining. + */ + public Builder setThisGradeMaxDiamond(long value) { + + thisGradeMaxDiamond_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * int64 thisGradeMaxDiamond = 11; + * @return This builder for chaining. + */ + public Builder clearThisGradeMaxDiamond() { + bitField0_ = (bitField0_ & ~0x00000400); + thisGradeMaxDiamond_ = 0L; + onChanged(); + return this; + } + + private long payDiamondBak_ ; + /** + * int64 payDiamondBak = 12; + * @return The payDiamondBak. + */ + @java.lang.Override + public long getPayDiamondBak() { + return payDiamondBak_; + } + /** + * int64 payDiamondBak = 12; + * @param value The payDiamondBak to set. + * @return This builder for chaining. + */ + public Builder setPayDiamondBak(long value) { + + payDiamondBak_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * int64 payDiamondBak = 12; + * @return This builder for chaining. + */ + public Builder clearPayDiamondBak() { + bitField0_ = (bitField0_ & ~0x00000800); + payDiamondBak_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object gradeDescribe_ = ""; + /** + * string gradeDescribe = 13; + * @return The gradeDescribe. + */ + public java.lang.String getGradeDescribe() { + java.lang.Object ref = gradeDescribe_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gradeDescribe_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string gradeDescribe = 13; + * @return The bytes for gradeDescribe. + */ + public com.google.protobuf.ByteString + getGradeDescribeBytes() { + java.lang.Object ref = gradeDescribe_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gradeDescribe_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string gradeDescribe = 13; + * @param value The gradeDescribe to set. + * @return This builder for chaining. + */ + public Builder setGradeDescribe( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + gradeDescribe_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string gradeDescribe = 13; + * @return This builder for chaining. + */ + public Builder clearGradeDescribe() { + gradeDescribe_ = getDefaultInstance().getGradeDescribe(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string gradeDescribe = 13; + * @param value The bytes for gradeDescribe to set. + * @return This builder for chaining. + */ + public Builder setGradeDescribeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + gradeDescribe_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.util.List gradeIconList_ = + java.util.Collections.emptyList(); + private void ensureGradeIconListIsMutable() { + if (!((bitField0_ & 0x00002000) != 0)) { + gradeIconList_ = new java.util.ArrayList(gradeIconList_); + bitField0_ |= 0x00002000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder> gradeIconListBuilder_; + + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public java.util.List getGradeIconListList() { + if (gradeIconListBuilder_ == null) { + return java.util.Collections.unmodifiableList(gradeIconList_); + } else { + return gradeIconListBuilder_.getMessageList(); + } + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public int getGradeIconListCount() { + if (gradeIconListBuilder_ == null) { + return gradeIconList_.size(); + } else { + return gradeIconListBuilder_.getCount(); + } + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon getGradeIconList(int index) { + if (gradeIconListBuilder_ == null) { + return gradeIconList_.get(index); + } else { + return gradeIconListBuilder_.getMessage(index); + } + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder setGradeIconList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { + if (gradeIconListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGradeIconListIsMutable(); + gradeIconList_.set(index, value); + onChanged(); + } else { + gradeIconListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder setGradeIconList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + gradeIconList_.set(index, builderForValue.build()); + onChanged(); + } else { + gradeIconListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder addGradeIconList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { + if (gradeIconListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGradeIconListIsMutable(); + gradeIconList_.add(value); + onChanged(); + } else { + gradeIconListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder addGradeIconList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon value) { + if (gradeIconListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGradeIconListIsMutable(); + gradeIconList_.add(index, value); + onChanged(); + } else { + gradeIconListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder addGradeIconList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + gradeIconList_.add(builderForValue.build()); + onChanged(); + } else { + gradeIconListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder addGradeIconList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder builderForValue) { + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + gradeIconList_.add(index, builderForValue.build()); + onChanged(); + } else { + gradeIconListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder addAllGradeIconList( + java.lang.Iterable values) { + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, gradeIconList_); + onChanged(); + } else { + gradeIconListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder clearGradeIconList() { + if (gradeIconListBuilder_ == null) { + gradeIconList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + } else { + gradeIconListBuilder_.clear(); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public Builder removeGradeIconList(int index) { + if (gradeIconListBuilder_ == null) { + ensureGradeIconListIsMutable(); + gradeIconList_.remove(index); + onChanged(); + } else { + gradeIconListBuilder_.remove(index); + } + return this; + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder getGradeIconListBuilder( + int index) { + return getGradeIconListFieldBuilder().getBuilder(index); + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder getGradeIconListOrBuilder( + int index) { + if (gradeIconListBuilder_ == null) { + return gradeIconList_.get(index); } else { + return gradeIconListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public java.util.List + getGradeIconListOrBuilderList() { + if (gradeIconListBuilder_ != null) { + return gradeIconListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(gradeIconList_); + } + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder addGradeIconListBuilder() { + return getGradeIconListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()); + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder addGradeIconListBuilder( + int index) { + return getGradeIconListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.getDefaultInstance()); + } + /** + * repeated .User.PayGrade.GradeIcon gradeIconList = 14; + */ + public java.util.List + getGradeIconListBuilderList() { + return getGradeIconListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder> + getGradeIconListFieldBuilder() { + if (gradeIconListBuilder_ == null) { + gradeIconListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIcon.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.GradeIconOrBuilder>( + gradeIconList_, + ((bitField0_ & 0x00002000) != 0), + getParentForChildren(), + isClean()); + gradeIconList_ = null; + } + return gradeIconListBuilder_; + } + + private long screenChatType_ ; + /** + * int64 screenChatType = 15; + * @return The screenChatType. + */ + @java.lang.Override + public long getScreenChatType() { + return screenChatType_; + } + /** + * int64 screenChatType = 15; + * @param value The screenChatType to set. + * @return This builder for chaining. + */ + public Builder setScreenChatType(long value) { + + screenChatType_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * int64 screenChatType = 15; + * @return This builder for chaining. + */ + public Builder clearScreenChatType() { + bitField0_ = (bitField0_ & ~0x00004000); + screenChatType_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imIconBuilder_; + /** + * .Image imIcon = 16; + * @return Whether the imIcon field is set. + */ + public boolean hasImIcon() { + return ((bitField0_ & 0x00008000) != 0); + } + /** + * .Image imIcon = 16; + * @return The imIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIcon() { + if (imIconBuilder_ == null) { + return imIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; + } else { + return imIconBuilder_.getMessage(); + } + } + /** + * .Image imIcon = 16; + */ + public Builder setImIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + imIcon_ = value; + } else { + imIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Image imIcon = 16; + */ + public Builder setImIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (imIconBuilder_ == null) { + imIcon_ = builderForValue.build(); + } else { + imIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Image imIcon = 16; + */ + public Builder mergeImIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imIconBuilder_ == null) { + if (((bitField0_ & 0x00008000) != 0) && + imIcon_ != null && + imIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getImIconBuilder().mergeFrom(value); + } else { + imIcon_ = value; + } + } else { + imIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .Image imIcon = 16; + */ + public Builder clearImIcon() { + bitField0_ = (bitField0_ & ~0x00008000); + imIcon_ = null; + if (imIconBuilder_ != null) { + imIconBuilder_.dispose(); + imIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image imIcon = 16; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImIconBuilder() { + bitField0_ |= 0x00008000; + onChanged(); + return getImIconFieldBuilder().getBuilder(); + } + /** + * .Image imIcon = 16; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconOrBuilder() { + if (imIconBuilder_ != null) { + return imIconBuilder_.getMessageOrBuilder(); + } else { + return imIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIcon_; + } + } + /** + * .Image imIcon = 16; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getImIconFieldBuilder() { + if (imIconBuilder_ == null) { + imIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getImIcon(), + getParentForChildren(), + isClean()); + imIcon_ = null; + } + return imIconBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image imIconWithLevel_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imIconWithLevelBuilder_; + /** + * .Image imIconWithLevel = 17; + * @return Whether the imIconWithLevel field is set. + */ + public boolean hasImIconWithLevel() { + return ((bitField0_ & 0x00010000) != 0); + } + /** + * .Image imIconWithLevel = 17; + * @return The imIconWithLevel. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImIconWithLevel() { + if (imIconWithLevelBuilder_ == null) { + return imIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; + } else { + return imIconWithLevelBuilder_.getMessage(); + } + } + /** + * .Image imIconWithLevel = 17; + */ + public Builder setImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imIconWithLevelBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + imIconWithLevel_ = value; + } else { + imIconWithLevelBuilder_.setMessage(value); + } + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .Image imIconWithLevel = 17; + */ + public Builder setImIconWithLevel( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (imIconWithLevelBuilder_ == null) { + imIconWithLevel_ = builderForValue.build(); + } else { + imIconWithLevelBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .Image imIconWithLevel = 17; + */ + public Builder mergeImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (imIconWithLevelBuilder_ == null) { + if (((bitField0_ & 0x00010000) != 0) && + imIconWithLevel_ != null && + imIconWithLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getImIconWithLevelBuilder().mergeFrom(value); + } else { + imIconWithLevel_ = value; + } + } else { + imIconWithLevelBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .Image imIconWithLevel = 17; + */ + public Builder clearImIconWithLevel() { + bitField0_ = (bitField0_ & ~0x00010000); + imIconWithLevel_ = null; + if (imIconWithLevelBuilder_ != null) { + imIconWithLevelBuilder_.dispose(); + imIconWithLevelBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image imIconWithLevel = 17; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImIconWithLevelBuilder() { + bitField0_ |= 0x00010000; + onChanged(); + return getImIconWithLevelFieldBuilder().getBuilder(); + } + /** + * .Image imIconWithLevel = 17; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImIconWithLevelOrBuilder() { + if (imIconWithLevelBuilder_ != null) { + return imIconWithLevelBuilder_.getMessageOrBuilder(); + } else { + return imIconWithLevel_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : imIconWithLevel_; + } + } + /** + * .Image imIconWithLevel = 17; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getImIconWithLevelFieldBuilder() { + if (imIconWithLevelBuilder_ == null) { + imIconWithLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getImIconWithLevel(), + getParentForChildren(), + isClean()); + imIconWithLevel_ = null; + } + return imIconWithLevelBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image liveIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> liveIconBuilder_; + /** + * .Image liveIcon = 18; + * @return Whether the liveIcon field is set. + */ + public boolean hasLiveIcon() { + return ((bitField0_ & 0x00020000) != 0); + } + /** + * .Image liveIcon = 18; + * @return The liveIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getLiveIcon() { + if (liveIconBuilder_ == null) { + return liveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; + } else { + return liveIconBuilder_.getMessage(); + } + } + /** + * .Image liveIcon = 18; + */ + public Builder setLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (liveIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + liveIcon_ = value; + } else { + liveIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .Image liveIcon = 18; + */ + public Builder setLiveIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (liveIconBuilder_ == null) { + liveIcon_ = builderForValue.build(); + } else { + liveIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .Image liveIcon = 18; + */ + public Builder mergeLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (liveIconBuilder_ == null) { + if (((bitField0_ & 0x00020000) != 0) && + liveIcon_ != null && + liveIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getLiveIconBuilder().mergeFrom(value); + } else { + liveIcon_ = value; + } + } else { + liveIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .Image liveIcon = 18; + */ + public Builder clearLiveIcon() { + bitField0_ = (bitField0_ & ~0x00020000); + liveIcon_ = null; + if (liveIconBuilder_ != null) { + liveIconBuilder_.dispose(); + liveIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image liveIcon = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getLiveIconBuilder() { + bitField0_ |= 0x00020000; + onChanged(); + return getLiveIconFieldBuilder().getBuilder(); + } + /** + * .Image liveIcon = 18; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getLiveIconOrBuilder() { + if (liveIconBuilder_ != null) { + return liveIconBuilder_.getMessageOrBuilder(); + } else { + return liveIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : liveIcon_; + } + } + /** + * .Image liveIcon = 18; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getLiveIconFieldBuilder() { + if (liveIconBuilder_ == null) { + liveIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getLiveIcon(), + getParentForChildren(), + isClean()); + liveIcon_ = null; + } + return liveIconBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newImIconWithLevel_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newImIconWithLevelBuilder_; + /** + * .Image newImIconWithLevel = 19; + * @return Whether the newImIconWithLevel field is set. + */ + public boolean hasNewImIconWithLevel() { + return ((bitField0_ & 0x00040000) != 0); + } + /** + * .Image newImIconWithLevel = 19; + * @return The newImIconWithLevel. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewImIconWithLevel() { + if (newImIconWithLevelBuilder_ == null) { + return newImIconWithLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; + } else { + return newImIconWithLevelBuilder_.getMessage(); + } + } + /** + * .Image newImIconWithLevel = 19; + */ + public Builder setNewImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newImIconWithLevelBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + newImIconWithLevel_ = value; + } else { + newImIconWithLevelBuilder_.setMessage(value); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Image newImIconWithLevel = 19; + */ + public Builder setNewImIconWithLevel( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (newImIconWithLevelBuilder_ == null) { + newImIconWithLevel_ = builderForValue.build(); + } else { + newImIconWithLevelBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Image newImIconWithLevel = 19; + */ + public Builder mergeNewImIconWithLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newImIconWithLevelBuilder_ == null) { + if (((bitField0_ & 0x00040000) != 0) && + newImIconWithLevel_ != null && + newImIconWithLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getNewImIconWithLevelBuilder().mergeFrom(value); + } else { + newImIconWithLevel_ = value; + } + } else { + newImIconWithLevelBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .Image newImIconWithLevel = 19; + */ + public Builder clearNewImIconWithLevel() { + bitField0_ = (bitField0_ & ~0x00040000); + newImIconWithLevel_ = null; + if (newImIconWithLevelBuilder_ != null) { + newImIconWithLevelBuilder_.dispose(); + newImIconWithLevelBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image newImIconWithLevel = 19; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewImIconWithLevelBuilder() { + bitField0_ |= 0x00040000; + onChanged(); + return getNewImIconWithLevelFieldBuilder().getBuilder(); + } + /** + * .Image newImIconWithLevel = 19; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewImIconWithLevelOrBuilder() { + if (newImIconWithLevelBuilder_ != null) { + return newImIconWithLevelBuilder_.getMessageOrBuilder(); + } else { + return newImIconWithLevel_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newImIconWithLevel_; + } + } + /** + * .Image newImIconWithLevel = 19; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getNewImIconWithLevelFieldBuilder() { + if (newImIconWithLevelBuilder_ == null) { + newImIconWithLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getNewImIconWithLevel(), + getParentForChildren(), + isClean()); + newImIconWithLevel_ = null; + } + return newImIconWithLevelBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image newLiveIcon_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newLiveIconBuilder_; + /** + * .Image newLiveIcon = 20; + * @return Whether the newLiveIcon field is set. + */ + public boolean hasNewLiveIcon() { + return ((bitField0_ & 0x00080000) != 0); + } + /** + * .Image newLiveIcon = 20; + * @return The newLiveIcon. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewLiveIcon() { + if (newLiveIconBuilder_ == null) { + return newLiveIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; + } else { + return newLiveIconBuilder_.getMessage(); + } + } + /** + * .Image newLiveIcon = 20; + */ + public Builder setNewLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newLiveIconBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + newLiveIcon_ = value; + } else { + newLiveIconBuilder_.setMessage(value); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image newLiveIcon = 20; + */ + public Builder setNewLiveIcon( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (newLiveIconBuilder_ == null) { + newLiveIcon_ = builderForValue.build(); + } else { + newLiveIconBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image newLiveIcon = 20; + */ + public Builder mergeNewLiveIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newLiveIconBuilder_ == null) { + if (((bitField0_ & 0x00080000) != 0) && + newLiveIcon_ != null && + newLiveIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getNewLiveIconBuilder().mergeFrom(value); + } else { + newLiveIcon_ = value; + } + } else { + newLiveIconBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image newLiveIcon = 20; + */ + public Builder clearNewLiveIcon() { + bitField0_ = (bitField0_ & ~0x00080000); + newLiveIcon_ = null; + if (newLiveIconBuilder_ != null) { + newLiveIconBuilder_.dispose(); + newLiveIconBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image newLiveIcon = 20; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewLiveIconBuilder() { + bitField0_ |= 0x00080000; + onChanged(); + return getNewLiveIconFieldBuilder().getBuilder(); + } + /** + * .Image newLiveIcon = 20; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewLiveIconOrBuilder() { + if (newLiveIconBuilder_ != null) { + return newLiveIconBuilder_.getMessageOrBuilder(); + } else { + return newLiveIcon_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : newLiveIcon_; + } + } + /** + * .Image newLiveIcon = 20; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getNewLiveIconFieldBuilder() { + if (newLiveIconBuilder_ == null) { + newLiveIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getNewLiveIcon(), + getParentForChildren(), + isClean()); + newLiveIcon_ = null; + } + return newLiveIconBuilder_; + } + + private long upgradeNeedConsume_ ; + /** + * int64 upgradeNeedConsume = 21; + * @return The upgradeNeedConsume. + */ + @java.lang.Override + public long getUpgradeNeedConsume() { + return upgradeNeedConsume_; + } + /** + * int64 upgradeNeedConsume = 21; + * @param value The upgradeNeedConsume to set. + * @return This builder for chaining. + */ + public Builder setUpgradeNeedConsume(long value) { + + upgradeNeedConsume_ = value; + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * int64 upgradeNeedConsume = 21; + * @return This builder for chaining. + */ + public Builder clearUpgradeNeedConsume() { + bitField0_ = (bitField0_ & ~0x00100000); + upgradeNeedConsume_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object nextPrivileges_ = ""; + /** + * string nextPrivileges = 22; + * @return The nextPrivileges. + */ + public java.lang.String getNextPrivileges() { + java.lang.Object ref = nextPrivileges_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nextPrivileges_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string nextPrivileges = 22; + * @return The bytes for nextPrivileges. + */ + public com.google.protobuf.ByteString + getNextPrivilegesBytes() { + java.lang.Object ref = nextPrivileges_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nextPrivileges_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string nextPrivileges = 22; + * @param value The nextPrivileges to set. + * @return This builder for chaining. + */ + public Builder setNextPrivileges( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + nextPrivileges_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * string nextPrivileges = 22; + * @return This builder for chaining. + */ + public Builder clearNextPrivileges() { + nextPrivileges_ = getDefaultInstance().getNextPrivileges(); + bitField0_ = (bitField0_ & ~0x00200000); + onChanged(); + return this; + } + /** + * string nextPrivileges = 22; + * @param value The bytes for nextPrivileges to set. + * @return This builder for chaining. + */ + public Builder setNextPrivilegesBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + nextPrivileges_ = value; + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image background_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBuilder_; + /** + * .Image background = 23; + * @return Whether the background field is set. + */ + public boolean hasBackground() { + return ((bitField0_ & 0x00400000) != 0); + } + /** + * .Image background = 23; + * @return The background. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackground() { + if (backgroundBuilder_ == null) { + return background_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } else { + return backgroundBuilder_.getMessage(); + } + } + /** + * .Image background = 23; + */ + public Builder setBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + background_ = value; + } else { + backgroundBuilder_.setMessage(value); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .Image background = 23; + */ + public Builder setBackground( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundBuilder_ == null) { + background_ = builderForValue.build(); + } else { + backgroundBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .Image background = 23; + */ + public Builder mergeBackground(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBuilder_ == null) { + if (((bitField0_ & 0x00400000) != 0) && + background_ != null && + background_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundBuilder().mergeFrom(value); + } else { + background_ = value; + } + } else { + backgroundBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .Image background = 23; + */ + public Builder clearBackground() { + bitField0_ = (bitField0_ & ~0x00400000); + background_ = null; + if (backgroundBuilder_ != null) { + backgroundBuilder_.dispose(); + backgroundBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image background = 23; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBuilder() { + bitField0_ |= 0x00400000; + onChanged(); + return getBackgroundFieldBuilder().getBuilder(); + } + /** + * .Image background = 23; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundOrBuilder() { + if (backgroundBuilder_ != null) { + return backgroundBuilder_.getMessageOrBuilder(); + } else { + return background_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : background_; + } + } + /** + * .Image background = 23; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundFieldBuilder() { + if (backgroundBuilder_ == null) { + backgroundBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackground(), + getParentForChildren(), + isClean()); + background_ = null; + } + return backgroundBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image backgroundBack_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> backgroundBackBuilder_; + /** + * .Image backgroundBack = 24; + * @return Whether the backgroundBack field is set. + */ + public boolean hasBackgroundBack() { + return ((bitField0_ & 0x00800000) != 0); + } + /** + * .Image backgroundBack = 24; + * @return The backgroundBack. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBackgroundBack() { + if (backgroundBackBuilder_ == null) { + return backgroundBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; + } else { + return backgroundBackBuilder_.getMessage(); + } + } + /** + * .Image backgroundBack = 24; + */ + public Builder setBackgroundBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBackBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + backgroundBack_ = value; + } else { + backgroundBackBuilder_.setMessage(value); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .Image backgroundBack = 24; + */ + public Builder setBackgroundBack( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (backgroundBackBuilder_ == null) { + backgroundBack_ = builderForValue.build(); + } else { + backgroundBackBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .Image backgroundBack = 24; + */ + public Builder mergeBackgroundBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (backgroundBackBuilder_ == null) { + if (((bitField0_ & 0x00800000) != 0) && + backgroundBack_ != null && + backgroundBack_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBackgroundBackBuilder().mergeFrom(value); + } else { + backgroundBack_ = value; + } + } else { + backgroundBackBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .Image backgroundBack = 24; + */ + public Builder clearBackgroundBack() { + bitField0_ = (bitField0_ & ~0x00800000); + backgroundBack_ = null; + if (backgroundBackBuilder_ != null) { + backgroundBackBuilder_.dispose(); + backgroundBackBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image backgroundBack = 24; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBackgroundBackBuilder() { + bitField0_ |= 0x00800000; + onChanged(); + return getBackgroundBackFieldBuilder().getBuilder(); + } + /** + * .Image backgroundBack = 24; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBackgroundBackOrBuilder() { + if (backgroundBackBuilder_ != null) { + return backgroundBackBuilder_.getMessageOrBuilder(); + } else { + return backgroundBack_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : backgroundBack_; + } + } + /** + * .Image backgroundBack = 24; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBackgroundBackFieldBuilder() { + if (backgroundBackBuilder_ == null) { + backgroundBackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBackgroundBack(), + getParentForChildren(), + isClean()); + backgroundBack_ = null; + } + return backgroundBackBuilder_; + } + + private long score_ ; + /** + * int64 score = 25; + * @return The score. + */ + @java.lang.Override + public long getScore() { + return score_; + } + /** + * int64 score = 25; + * @param value The score to set. + * @return This builder for chaining. + */ + public Builder setScore(long value) { + + score_ = value; + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * int64 score = 25; + * @return This builder for chaining. + */ + public Builder clearScore() { + bitField0_ = (bitField0_ & ~0x01000000); + score_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object gradeBanner_ = ""; + /** + *
+         * GradeBuffInfo buffInfo = 26;
+         * 
+ * + * string gradeBanner = 1001; + * @return The gradeBanner. + */ + public java.lang.String getGradeBanner() { + java.lang.Object ref = gradeBanner_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gradeBanner_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+         * GradeBuffInfo buffInfo = 26;
+         * 
+ * + * string gradeBanner = 1001; + * @return The bytes for gradeBanner. + */ + public com.google.protobuf.ByteString + getGradeBannerBytes() { + java.lang.Object ref = gradeBanner_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gradeBanner_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+         * GradeBuffInfo buffInfo = 26;
+         * 
+ * + * string gradeBanner = 1001; + * @param value The gradeBanner to set. + * @return This builder for chaining. + */ + public Builder setGradeBanner( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + gradeBanner_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + /** + *
+         * GradeBuffInfo buffInfo = 26;
+         * 
+ * + * string gradeBanner = 1001; + * @return This builder for chaining. + */ + public Builder clearGradeBanner() { + gradeBanner_ = getDefaultInstance().getGradeBanner(); + bitField0_ = (bitField0_ & ~0x02000000); + onChanged(); + return this; + } + /** + *
+         * GradeBuffInfo buffInfo = 26;
+         * 
+ * + * string gradeBanner = 1001; + * @param value The bytes for gradeBanner to set. + * @return This builder for chaining. + */ + public Builder setGradeBannerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + gradeBanner_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBg_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> profileDialogBgBuilder_; + /** + * .Image profileDialogBg = 1002; + * @return Whether the profileDialogBg field is set. + */ + public boolean hasProfileDialogBg() { + return ((bitField0_ & 0x04000000) != 0); + } + /** + * .Image profileDialogBg = 1002; + * @return The profileDialogBg. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBg() { + if (profileDialogBgBuilder_ == null) { + return profileDialogBg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; + } else { + return profileDialogBgBuilder_.getMessage(); + } + } + /** + * .Image profileDialogBg = 1002; + */ + public Builder setProfileDialogBg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (profileDialogBgBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + profileDialogBg_ = value; + } else { + profileDialogBgBuilder_.setMessage(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBg = 1002; + */ + public Builder setProfileDialogBg( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (profileDialogBgBuilder_ == null) { + profileDialogBg_ = builderForValue.build(); + } else { + profileDialogBgBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBg = 1002; + */ + public Builder mergeProfileDialogBg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (profileDialogBgBuilder_ == null) { + if (((bitField0_ & 0x04000000) != 0) && + profileDialogBg_ != null && + profileDialogBg_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getProfileDialogBgBuilder().mergeFrom(value); + } else { + profileDialogBg_ = value; + } + } else { + profileDialogBgBuilder_.mergeFrom(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBg = 1002; + */ + public Builder clearProfileDialogBg() { + bitField0_ = (bitField0_ & ~0x04000000); + profileDialogBg_ = null; + if (profileDialogBgBuilder_ != null) { + profileDialogBgBuilder_.dispose(); + profileDialogBgBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image profileDialogBg = 1002; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getProfileDialogBgBuilder() { + bitField0_ |= 0x04000000; + onChanged(); + return getProfileDialogBgFieldBuilder().getBuilder(); + } + /** + * .Image profileDialogBg = 1002; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgOrBuilder() { + if (profileDialogBgBuilder_ != null) { + return profileDialogBgBuilder_.getMessageOrBuilder(); + } else { + return profileDialogBg_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBg_; + } + } + /** + * .Image profileDialogBg = 1002; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getProfileDialogBgFieldBuilder() { + if (profileDialogBgBuilder_ == null) { + profileDialogBgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getProfileDialogBg(), + getParentForChildren(), + isClean()); + profileDialogBg_ = null; + } + return profileDialogBgBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image profileDialogBgBack_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> profileDialogBgBackBuilder_; + /** + * .Image profileDialogBgBack = 1003; + * @return Whether the profileDialogBgBack field is set. + */ + public boolean hasProfileDialogBgBack() { + return ((bitField0_ & 0x08000000) != 0); + } + /** + * .Image profileDialogBgBack = 1003; + * @return The profileDialogBgBack. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getProfileDialogBgBack() { + if (profileDialogBgBackBuilder_ == null) { + return profileDialogBgBack_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; + } else { + return profileDialogBgBackBuilder_.getMessage(); + } + } + /** + * .Image profileDialogBgBack = 1003; + */ + public Builder setProfileDialogBgBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (profileDialogBgBackBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + profileDialogBgBack_ = value; + } else { + profileDialogBgBackBuilder_.setMessage(value); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBgBack = 1003; + */ + public Builder setProfileDialogBgBack( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (profileDialogBgBackBuilder_ == null) { + profileDialogBgBack_ = builderForValue.build(); + } else { + profileDialogBgBackBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBgBack = 1003; + */ + public Builder mergeProfileDialogBgBack(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (profileDialogBgBackBuilder_ == null) { + if (((bitField0_ & 0x08000000) != 0) && + profileDialogBgBack_ != null && + profileDialogBgBack_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getProfileDialogBgBackBuilder().mergeFrom(value); + } else { + profileDialogBgBack_ = value; + } + } else { + profileDialogBgBackBuilder_.mergeFrom(value); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image profileDialogBgBack = 1003; + */ + public Builder clearProfileDialogBgBack() { + bitField0_ = (bitField0_ & ~0x08000000); + profileDialogBgBack_ = null; + if (profileDialogBgBackBuilder_ != null) { + profileDialogBgBackBuilder_.dispose(); + profileDialogBgBackBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image profileDialogBgBack = 1003; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getProfileDialogBgBackBuilder() { + bitField0_ |= 0x08000000; + onChanged(); + return getProfileDialogBgBackFieldBuilder().getBuilder(); + } + /** + * .Image profileDialogBgBack = 1003; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getProfileDialogBgBackOrBuilder() { + if (profileDialogBgBackBuilder_ != null) { + return profileDialogBgBackBuilder_.getMessageOrBuilder(); + } else { + return profileDialogBgBack_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : profileDialogBgBack_; + } + } + /** + * .Image profileDialogBgBack = 1003; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getProfileDialogBgBackFieldBuilder() { + if (profileDialogBgBackBuilder_ == null) { + profileDialogBgBackBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getProfileDialogBgBack(), + getParentForChildren(), + isClean()); + profileDialogBgBack_ = null; + } + return profileDialogBgBackBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.PayGrade) + } + + // @@protoc_insertion_point(class_scope:User.PayGrade) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PayGrade parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PoiInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.PoiInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.PoiInfo} + */ + public static final class PoiInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.PoiInfo) + PoiInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use PoiInfo.newBuilder() to construct. + private PoiInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PoiInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PoiInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.PoiInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.PoiInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_PoiInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.PoiInfo) + } + + // @@protoc_insertion_point(class_scope:User.PoiInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PoiInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProfileStyleParamsOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.ProfileStyleParams) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.ProfileStyleParams} + */ + public static final class ProfileStyleParams extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.ProfileStyleParams) + ProfileStyleParamsOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProfileStyleParams.newBuilder() to construct. + private ProfileStyleParams(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProfileStyleParams() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ProfileStyleParams(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.ProfileStyleParams} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.ProfileStyleParams) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_ProfileStyleParams_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.ProfileStyleParams) + } + + // @@protoc_insertion_point(class_scope:User.ProfileStyleParams) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProfileStyleParams parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SubscribeOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.Subscribe) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.Subscribe} + */ + public static final class Subscribe extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.Subscribe) + SubscribeOrBuilder { + private static final long serialVersionUID = 0L; + // Use Subscribe.newBuilder() to construct. + private Subscribe(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Subscribe() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Subscribe(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.Subscribe} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.Subscribe) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_Subscribe_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.Subscribe) + } + + // @@protoc_insertion_point(class_scope:User.Subscribe) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Subscribe parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserAttrOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.UserAttr) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.UserAttr} + */ + public static final class UserAttr extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.UserAttr) + UserAttrOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserAttr.newBuilder() to construct. + private UserAttr(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserAttr() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserAttr(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.UserAttr} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.UserAttr) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserAttr_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.UserAttr) + } + + // @@protoc_insertion_point(class_scope:User.UserAttr) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserAttr parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserDressInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.UserDressInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.UserDressInfo} + */ + public static final class UserDressInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.UserDressInfo) + UserDressInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserDressInfo.newBuilder() to construct. + private UserDressInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserDressInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserDressInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.UserDressInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.UserDressInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserDressInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.UserDressInfo) + } + + // @@protoc_insertion_point(class_scope:User.UserDressInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserDressInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserVIPInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.UserVIPInfo) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.UserVIPInfo} + */ + public static final class UserVIPInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.UserVIPInfo) + UserVIPInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserVIPInfo.newBuilder() to construct. + private UserVIPInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserVIPInfo() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserVIPInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.UserVIPInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.UserVIPInfo) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserVIPInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.UserVIPInfo) + } + + // @@protoc_insertion_point(class_scope:User.UserVIPInfo) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserVIPInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserStatsOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.UserStats) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.UserStats} + */ + public static final class UserStats extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.UserStats) + UserStatsOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserStats.newBuilder() to construct. + private UserStats(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserStats() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserStats(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.UserStats} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.UserStats) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_UserStats_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.UserStats) + } + + // @@protoc_insertion_point(class_scope:User.UserStats) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserStats parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface XiguaParamsOrBuilder extends + // @@protoc_insertion_point(interface_extends:User.XiguaParams) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code User.XiguaParams} + */ + public static final class XiguaParams extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:User.XiguaParams) + XiguaParamsOrBuilder { + private static final long serialVersionUID = 0L; + // Use XiguaParams.newBuilder() to construct. + private XiguaParams(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private XiguaParams() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new XiguaParams(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User.XiguaParams} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User.XiguaParams) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_XiguaParams_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User.XiguaParams) + } + + // @@protoc_insertion_point(class_scope:User.XiguaParams) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public XiguaParams parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int ID_FIELD_NUMBER = 1; + private long id_ = 0L; + /** + * uint64 id = 1; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + + public static final int SHORTID_FIELD_NUMBER = 2; + private long shortId_ = 0L; + /** + * uint64 shortId = 2; + * @return The shortId. + */ + @java.lang.Override + public long getShortId() { + return shortId_; + } + + public static final int NICKNAME_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object nickname_ = ""; + /** + * string nickname = 3; + * @return The nickname. + */ + @java.lang.Override + public java.lang.String getNickname() { + java.lang.Object ref = nickname_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nickname_ = s; + return s; + } + } + /** + * string nickname = 3; + * @return The bytes for nickname. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNicknameBytes() { + java.lang.Object ref = nickname_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nickname_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int GENDER_FIELD_NUMBER = 4; + private int gender_ = 0; + /** + * uint32 gender = 4; + * @return The gender. + */ + @java.lang.Override + public int getGender() { + return gender_; + } + + public static final int SIGNATURE_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object signature_ = ""; + /** + * string signature = 5; + * @return The signature. + */ + @java.lang.Override + public java.lang.String getSignature() { + java.lang.Object ref = signature_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + signature_ = s; + return s; + } + } + /** + * string signature = 5; + * @return The bytes for signature. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSignatureBytes() { + java.lang.Object ref = signature_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + signature_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LEVEL_FIELD_NUMBER = 6; + private int level_ = 0; + /** + * uint32 level = 6; + * @return The level. + */ + @java.lang.Override + public int getLevel() { + return level_; + } + + public static final int BIRTHDAY_FIELD_NUMBER = 7; + private long birthday_ = 0L; + /** + * uint64 birthday = 7; + * @return The birthday. + */ + @java.lang.Override + public long getBirthday() { + return birthday_; + } + + public static final int TELEPHONE_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object telephone_ = ""; + /** + * string telephone = 8; + * @return The telephone. + */ + @java.lang.Override + public java.lang.String getTelephone() { + java.lang.Object ref = telephone_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + telephone_ = s; + return s; + } + } + /** + * string telephone = 8; + * @return The bytes for telephone. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTelephoneBytes() { + java.lang.Object ref = telephone_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + telephone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AVATARTHUMB_FIELD_NUMBER = 9; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarThumb_; + /** + * .Image avatarThumb = 9; + * @return Whether the avatarThumb field is set. + */ + @java.lang.Override + public boolean hasAvatarThumb() { + return avatarThumb_ != null; + } + /** + * .Image avatarThumb = 9; + * @return The avatarThumb. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb() { + return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; + } + /** + * .Image avatarThumb = 9; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder() { + return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; + } + + public static final int AVATARMEDIUM_FIELD_NUMBER = 10; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarMedium_; + /** + * .Image avatarMedium = 10; + * @return Whether the avatarMedium field is set. + */ + @java.lang.Override + public boolean hasAvatarMedium() { + return avatarMedium_ != null; + } + /** + * .Image avatarMedium = 10; + * @return The avatarMedium. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium() { + return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; + } + /** + * .Image avatarMedium = 10; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder() { + return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; + } + + public static final int AVATARLARGE_FIELD_NUMBER = 11; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarLarge_; + /** + * .Image avatarLarge = 11; + * @return Whether the avatarLarge field is set. + */ + @java.lang.Override + public boolean hasAvatarLarge() { + return avatarLarge_ != null; + } + /** + * .Image avatarLarge = 11; + * @return The avatarLarge. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge() { + return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; + } + /** + * .Image avatarLarge = 11; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder() { + return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; + } + + public static final int VERIFIED_FIELD_NUMBER = 12; + private boolean verified_ = false; + /** + * bool verified = 12; + * @return The verified. + */ + @java.lang.Override + public boolean getVerified() { + return verified_; + } + + public static final int EXPERIENCE_FIELD_NUMBER = 13; + private int experience_ = 0; + /** + * int32 experience = 13; + * @return The experience. + */ + @java.lang.Override + public int getExperience() { + return experience_; + } + + public static final int CITY_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object city_ = ""; + /** + * string city = 14; + * @return The city. + */ + @java.lang.Override + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; + } + } + /** + * string city = 14; + * @return The bytes for city. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + city_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STATUS_FIELD_NUMBER = 15; + private int status_ = 0; + /** + * int32 status = 15; + * @return The status. + */ + @java.lang.Override + public int getStatus() { + return status_; + } + + public static final int CREATETIME_FIELD_NUMBER = 16; + private long createTime_ = 0L; + /** + * int64 createTime = 16; + * @return The createTime. + */ + @java.lang.Override + public long getCreateTime() { + return createTime_; + } + + public static final int MODIFYTIME_FIELD_NUMBER = 17; + private long modifyTime_ = 0L; + /** + * int64 modifyTime = 17; + * @return The modifyTime. + */ + @java.lang.Override + public long getModifyTime() { + return modifyTime_; + } + + public static final int SECRET_FIELD_NUMBER = 18; + private int secret_ = 0; + /** + * int32 secret = 18; + * @return The secret. + */ + @java.lang.Override + public int getSecret() { + return secret_; + } + + public static final int SHAREQRCODEURI_FIELD_NUMBER = 19; + @SuppressWarnings("serial") + private volatile java.lang.Object shareQrcodeUri_ = ""; + /** + * string shareQrcodeUri = 19; + * @return The shareQrcodeUri. + */ + @java.lang.Override + public java.lang.String getShareQrcodeUri() { + java.lang.Object ref = shareQrcodeUri_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + shareQrcodeUri_ = s; + return s; + } + } + /** + * string shareQrcodeUri = 19; + * @return The bytes for shareQrcodeUri. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getShareQrcodeUriBytes() { + java.lang.Object ref = shareQrcodeUri_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + shareQrcodeUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int INCOMESHAREPERCENT_FIELD_NUMBER = 20; + private int incomeSharePercent_ = 0; + /** + * int32 incomeSharePercent = 20; + * @return The incomeSharePercent. + */ + @java.lang.Override + public int getIncomeSharePercent() { + return incomeSharePercent_; + } + + public static final int BADGEIMAGELISTLIST_FIELD_NUMBER = 21; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListList_; + /** + * .Image badgeImageListList = 21; + * @return Whether the badgeImageListList field is set. + */ + @java.lang.Override + public boolean hasBadgeImageListList() { + return badgeImageListList_ != null; + } + /** + * .Image badgeImageListList = 21; + * @return The badgeImageListList. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList() { + return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; + } + /** + * .Image badgeImageListList = 21; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder() { + return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; + } + + public static final int FOLLOWINFO_FIELD_NUMBER = 22; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo followInfo_; + /** + * .User.FollowInfo followInfo = 22; + * @return Whether the followInfo field is set. + */ + @java.lang.Override + public boolean hasFollowInfo() { + return followInfo_ != null; + } + /** + * .User.FollowInfo followInfo = 22; + * @return The followInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo() { + return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; + } + /** + * .User.FollowInfo followInfo = 22; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder() { + return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; + } + + public static final int PAYGRADE_FIELD_NUMBER = 23; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade payGrade_; + /** + * .User.PayGrade payGrade = 23; + * @return Whether the payGrade field is set. + */ + @java.lang.Override + public boolean hasPayGrade() { + return payGrade_ != null; + } + /** + * .User.PayGrade payGrade = 23; + * @return The payGrade. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade() { + return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; + } + /** + * .User.PayGrade payGrade = 23; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder() { + return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; + } + + public static final int FANSCLUB_FIELD_NUMBER = 24; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub fansClub_; + /** + * .User.FansClub fansClub = 24; + * @return Whether the fansClub field is set. + */ + @java.lang.Override + public boolean hasFansClub() { + return fansClub_ != null; + } + /** + * .User.FansClub fansClub = 24; + * @return The fansClub. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub() { + return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; + } + /** + * .User.FansClub fansClub = 24; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder() { + return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; + } + + public static final int BORDER_FIELD_NUMBER = 25; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border border_; + /** + * .User.Border border = 25; + * @return Whether the border field is set. + */ + @java.lang.Override + public boolean hasBorder() { + return border_ != null; + } + /** + * .User.Border border = 25; + * @return The border. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder() { + return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; + } + /** + * .User.Border border = 25; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder() { + return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; + } + + public static final int SPECIALID_FIELD_NUMBER = 26; + @SuppressWarnings("serial") + private volatile java.lang.Object specialId_ = ""; + /** + * string specialId = 26; + * @return The specialId. + */ + @java.lang.Override + public java.lang.String getSpecialId() { + java.lang.Object ref = specialId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + specialId_ = s; + return s; + } + } + /** + * string specialId = 26; + * @return The bytes for specialId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSpecialIdBytes() { + java.lang.Object ref = specialId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + specialId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AVATARBORDER_FIELD_NUMBER = 27; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarBorder_; + /** + * .Image avatarBorder = 27; + * @return Whether the avatarBorder field is set. + */ + @java.lang.Override + public boolean hasAvatarBorder() { + return avatarBorder_ != null; + } + /** + * .Image avatarBorder = 27; + * @return The avatarBorder. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder() { + return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; + } + /** + * .Image avatarBorder = 27; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder() { + return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; + } + + public static final int MEDAL_FIELD_NUMBER = 28; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image medal_; + /** + * .Image medal = 28; + * @return Whether the medal field is set. + */ + @java.lang.Override + public boolean hasMedal() { + return medal_ != null; + } + /** + * .Image medal = 28; + * @return The medal. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal() { + return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; + } + /** + * .Image medal = 28; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder() { + return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; + } + + public static final int REALTIMEICONSLIST_FIELD_NUMBER = 29; + @SuppressWarnings("serial") + private java.util.List realTimeIconsList_; + /** + * repeated .Image realTimeIconsList = 29; + */ + @java.lang.Override + public java.util.List getRealTimeIconsListList() { + return realTimeIconsList_; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + @java.lang.Override + public java.util.List + getRealTimeIconsListOrBuilderList() { + return realTimeIconsList_; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + @java.lang.Override + public int getRealTimeIconsListCount() { + return realTimeIconsList_.size(); + } + /** + * repeated .Image realTimeIconsList = 29; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index) { + return realTimeIconsList_.get(index); + } + /** + * repeated .Image realTimeIconsList = 29; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( + int index) { + return realTimeIconsList_.get(index); + } + + public static final int NEWREALTIMEICONSLIST_FIELD_NUMBER = 30; + @SuppressWarnings("serial") + private java.util.List newRealTimeIconsList_; + /** + * repeated .Image newRealTimeIconsList = 30; + */ + @java.lang.Override + public java.util.List getNewRealTimeIconsListList() { + return newRealTimeIconsList_; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + @java.lang.Override + public java.util.List + getNewRealTimeIconsListOrBuilderList() { + return newRealTimeIconsList_; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + @java.lang.Override + public int getNewRealTimeIconsListCount() { + return newRealTimeIconsList_.size(); + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index) { + return newRealTimeIconsList_.get(index); + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( + int index) { + return newRealTimeIconsList_.get(index); + } + + public static final int TOPVIPNO_FIELD_NUMBER = 31; + private long topVipNo_ = 0L; + /** + * int64 topVipNo = 31; + * @return The topVipNo. + */ + @java.lang.Override + public long getTopVipNo() { + return topVipNo_; + } + + public static final int USERATTR_FIELD_NUMBER = 32; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr userAttr_; + /** + * .User.UserAttr userAttr = 32; + * @return Whether the userAttr field is set. + */ + @java.lang.Override + public boolean hasUserAttr() { + return userAttr_ != null; + } + /** + * .User.UserAttr userAttr = 32; + * @return The userAttr. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr() { + return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; + } + /** + * .User.UserAttr userAttr = 32; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder() { + return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; + } + + public static final int OWNROOM_FIELD_NUMBER = 33; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom ownRoom_; + /** + * .User.OwnRoom ownRoom = 33; + * @return Whether the ownRoom field is set. + */ + @java.lang.Override + public boolean hasOwnRoom() { + return ownRoom_ != null; + } + /** + * .User.OwnRoom ownRoom = 33; + * @return The ownRoom. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom() { + return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; + } + /** + * .User.OwnRoom ownRoom = 33; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder() { + return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; + } + + public static final int PAYSCORE_FIELD_NUMBER = 34; + private long payScore_ = 0L; + /** + * int64 payScore = 34; + * @return The payScore. + */ + @java.lang.Override + public long getPayScore() { + return payScore_; + } + + public static final int TICKETCOUNT_FIELD_NUMBER = 35; + private long ticketCount_ = 0L; + /** + * int64 ticketCount = 35; + * @return The ticketCount. + */ + @java.lang.Override + public long getTicketCount() { + return ticketCount_; + } + + public static final int ANCHORINFO_FIELD_NUMBER = 36; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo anchorInfo_; + /** + * .User.AnchorInfo anchorInfo = 36; + * @return Whether the anchorInfo field is set. + */ + @java.lang.Override + public boolean hasAnchorInfo() { + return anchorInfo_ != null; + } + /** + * .User.AnchorInfo anchorInfo = 36; + * @return The anchorInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo() { + return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder() { + return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; + } + + public static final int LINKMICSTATS_FIELD_NUMBER = 37; + private int linkMicStats_ = 0; + /** + * int32 linkMicStats = 37; + * @return The linkMicStats. + */ + @java.lang.Override + public int getLinkMicStats() { + return linkMicStats_; + } + + public static final int DISPLAYID_FIELD_NUMBER = 38; + @SuppressWarnings("serial") + private volatile java.lang.Object displayId_ = ""; + /** + * string displayId = 38; + * @return The displayId. + */ + @java.lang.Override + public java.lang.String getDisplayId() { + java.lang.Object ref = displayId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayId_ = s; + return s; + } + } + /** + * string displayId = 38; + * @return The bytes for displayId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayIdBytes() { + java.lang.Object ref = displayId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int WITHCOMMERCEPERMISSION_FIELD_NUMBER = 39; + private boolean withCommercePermission_ = false; + /** + * bool withCommercePermission = 39; + * @return The withCommercePermission. + */ + @java.lang.Override + public boolean getWithCommercePermission() { + return withCommercePermission_; + } + + public static final int WITHFUSIONSHOPENTRY_FIELD_NUMBER = 40; + private boolean withFusionShopEntry_ = false; + /** + * bool withFusionShopEntry = 40; + * @return The withFusionShopEntry. + */ + @java.lang.Override + public boolean getWithFusionShopEntry() { + return withFusionShopEntry_; + } + + public static final int TOTALRECHARGEDIAMONDCOUNT_FIELD_NUMBER = 41; + private long totalRechargeDiamondCount_ = 0L; + /** + * int64 totalRechargeDiamondCount = 41; + * @return The totalRechargeDiamondCount. + */ + @java.lang.Override + public long getTotalRechargeDiamondCount() { + return totalRechargeDiamondCount_; + } + + public static final int WEBCASTANCHORLEVEL_FIELD_NUMBER = 42; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel webcastAnchorLevel_; + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return Whether the webcastAnchorLevel field is set. + */ + @java.lang.Override + public boolean hasWebcastAnchorLevel() { + return webcastAnchorLevel_ != null; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return The webcastAnchorLevel. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel() { + return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder() { + return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; + } + + public static final int VERIFIEDCONTENT_FIELD_NUMBER = 43; + @SuppressWarnings("serial") + private volatile java.lang.Object verifiedContent_ = ""; + /** + * string verifiedContent = 43; + * @return The verifiedContent. + */ + @java.lang.Override + public java.lang.String getVerifiedContent() { + java.lang.Object ref = verifiedContent_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + verifiedContent_ = s; + return s; + } + } + /** + * string verifiedContent = 43; + * @return The bytes for verifiedContent. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVerifiedContentBytes() { + java.lang.Object ref = verifiedContent_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verifiedContent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AUTHORSTATS_FIELD_NUMBER = 44; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats authorStats_; + /** + * .User.AuthorStats authorStats = 44; + * @return Whether the authorStats field is set. + */ + @java.lang.Override + public boolean hasAuthorStats() { + return authorStats_ != null; + } + /** + * .User.AuthorStats authorStats = 44; + * @return The authorStats. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats() { + return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; + } + /** + * .User.AuthorStats authorStats = 44; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder() { + return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; + } + + public static final int TOPFANSLIST_FIELD_NUMBER = 45; + @SuppressWarnings("serial") + private java.util.List topFansList_; + /** + * repeated .User topFansList = 45; + */ + @java.lang.Override + public java.util.List getTopFansListList() { + return topFansList_; + } + /** + * repeated .User topFansList = 45; + */ + @java.lang.Override + public java.util.List + getTopFansListOrBuilderList() { + return topFansList_; + } + /** + * repeated .User topFansList = 45; + */ + @java.lang.Override + public int getTopFansListCount() { + return topFansList_.size(); + } + /** + * repeated .User topFansList = 45; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index) { + return topFansList_.get(index); + } + /** + * repeated .User topFansList = 45; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( + int index) { + return topFansList_.get(index); + } + + public static final int SECUID_FIELD_NUMBER = 46; + @SuppressWarnings("serial") + private volatile java.lang.Object secUid_ = ""; + /** + * string secUid = 46; + * @return The secUid. + */ + @java.lang.Override + public java.lang.String getSecUid() { + java.lang.Object ref = secUid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + secUid_ = s; + return s; + } + } + /** + * string secUid = 46; + * @return The bytes for secUid. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSecUidBytes() { + java.lang.Object ref = secUid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + secUid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERROLE_FIELD_NUMBER = 47; + private int userRole_ = 0; + /** + * int32 userRole = 47; + * @return The userRole. + */ + @java.lang.Override + public int getUserRole() { + return userRole_; + } + + public static final int XIGUAINFO_FIELD_NUMBER = 48; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams xiguaInfo_; + /** + * .User.XiguaParams xiguaInfo = 48; + * @return Whether the xiguaInfo field is set. + */ + @java.lang.Override + public boolean hasXiguaInfo() { + return xiguaInfo_ != null; + } + /** + * .User.XiguaParams xiguaInfo = 48; + * @return The xiguaInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo() { + return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder() { + return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; + } + + public static final int ACTIVITYREWARD_FIELD_NUMBER = 49; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo activityReward_; + /** + * .User.ActivityInfo activityReward = 49; + * @return Whether the activityReward field is set. + */ + @java.lang.Override + public boolean hasActivityReward() { + return activityReward_ != null; + } + /** + * .User.ActivityInfo activityReward = 49; + * @return The activityReward. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward() { + return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; + } + /** + * .User.ActivityInfo activityReward = 49; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder() { + return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; + } + + public static final int NOBLEINFO_FIELD_NUMBER = 50; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo nobleInfo_; + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return Whether the nobleInfo field is set. + */ + @java.lang.Override + public boolean hasNobleInfo() { + return nobleInfo_ != null; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return The nobleInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo() { + return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder() { + return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; + } + + public static final int BROTHERHOODINFO_FIELD_NUMBER = 51; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo brotherhoodInfo_; + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return Whether the brotherhoodInfo field is set. + */ + @java.lang.Override + public boolean hasBrotherhoodInfo() { + return brotherhoodInfo_ != null; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return The brotherhoodInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo() { + return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder() { + return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; + } + + public static final int PERSONALCARD_FIELD_NUMBER = 52; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image personalCard_; + /** + * .Image personalCard = 52; + * @return Whether the personalCard field is set. + */ + @java.lang.Override + public boolean hasPersonalCard() { + return personalCard_ != null; + } + /** + * .Image personalCard = 52; + * @return The personalCard. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard() { + return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; + } + /** + * .Image personalCard = 52; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder() { + return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; + } + + public static final int AUTHENTICATIONINFO_FIELD_NUMBER = 53; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo authenticationInfo_; + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return Whether the authenticationInfo field is set. + */ + @java.lang.Override + public boolean hasAuthenticationInfo() { + return authenticationInfo_ != null; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return The authenticationInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo() { + return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder() { + return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; + } + + public static final int AUTHORIZATIONINFO_FIELD_NUMBER = 54; + private int authorizationInfo_ = 0; + /** + * int32 authorizationInfo = 54; + * @return The authorizationInfo. + */ + @java.lang.Override + public int getAuthorizationInfo() { + return authorizationInfo_; + } + + public static final int ADVERSARYAUTHORIZATIONINFO_FIELD_NUMBER = 55; + private int adversaryAuthorizationInfo_ = 0; + /** + * int32 adversaryAuthorizationInfo = 55; + * @return The adversaryAuthorizationInfo. + */ + @java.lang.Override + public int getAdversaryAuthorizationInfo() { + return adversaryAuthorizationInfo_; + } + + public static final int POIINFO_FIELD_NUMBER = 56; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo poiInfo_; + /** + * .User.PoiInfo poiInfo = 56; + * @return Whether the poiInfo field is set. + */ + @java.lang.Override + public boolean hasPoiInfo() { + return poiInfo_ != null; + } + /** + * .User.PoiInfo poiInfo = 56; + * @return The poiInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo() { + return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; + } + /** + * .User.PoiInfo poiInfo = 56; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder() { + return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; + } + + public static final int MEDIABADGEIMAGELISTLIST_FIELD_NUMBER = 57; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image mediaBadgeImageListList_; + /** + * .Image mediaBadgeImageListList = 57; + * @return Whether the mediaBadgeImageListList field is set. + */ + @java.lang.Override + public boolean hasMediaBadgeImageListList() { + return mediaBadgeImageListList_ != null; + } + /** + * .Image mediaBadgeImageListList = 57; + * @return The mediaBadgeImageListList. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList() { + return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; + } + /** + * .Image mediaBadgeImageListList = 57; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder() { + return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; + } + + public static final int ADVERSARYUSERSTATUS_FIELD_NUMBER = 58; + private int adversaryUserStatus_ = 0; + /** + * int32 adversaryUserStatus = 58; + * @return The adversaryUserStatus. + */ + @java.lang.Override + public int getAdversaryUserStatus() { + return adversaryUserStatus_; + } + + public static final int USERVIPINFO_FIELD_NUMBER = 59; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo userVipInfo_; + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return Whether the userVipInfo field is set. + */ + @java.lang.Override + public boolean hasUserVipInfo() { + return userVipInfo_ != null; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return The userVipInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo() { + return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder() { + return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; + } + + public static final int COMMERCEWEBCASTCONFIGIDSLIST_FIELD_NUMBER = 60; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.LongList commerceWebcastConfigIdsList_; + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return A list containing the commerceWebcastConfigIdsList. + */ + @java.lang.Override + public java.util.List + getCommerceWebcastConfigIdsListList() { + return commerceWebcastConfigIdsList_; + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return The count of commerceWebcastConfigIdsList. + */ + public int getCommerceWebcastConfigIdsListCount() { + return commerceWebcastConfigIdsList_.size(); + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param index The index of the element to return. + * @return The commerceWebcastConfigIdsList at the given index. + */ + public long getCommerceWebcastConfigIdsList(int index) { + return commerceWebcastConfigIdsList_.getLong(index); + } + private int commerceWebcastConfigIdsListMemoizedSerializedSize = -1; + + public static final int BADGEIMAGELISTV2LIST_FIELD_NUMBER = 61; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListV2List_; + /** + * .Image badgeImageListV2List = 61; + * @return Whether the badgeImageListV2List field is set. + */ + @java.lang.Override + public boolean hasBadgeImageListV2List() { + return badgeImageListV2List_ != null; + } + /** + * .Image badgeImageListV2List = 61; + * @return The badgeImageListV2List. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List() { + return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; + } + /** + * .Image badgeImageListV2List = 61; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder() { + return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; + } + + public static final int LOCATIONCITY_FIELD_NUMBER = 63; + @SuppressWarnings("serial") + private volatile java.lang.Object locationCity_ = ""; + /** + *
+     * IndustryCertification  industryCertification = 62;
+     * 
+ * + * string locationCity = 63; + * @return The locationCity. + */ + @java.lang.Override + public java.lang.String getLocationCity() { + java.lang.Object ref = locationCity_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + locationCity_ = s; + return s; + } + } + /** + *
+     * IndustryCertification  industryCertification = 62;
+     * 
+ * + * string locationCity = 63; + * @return The bytes for locationCity. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLocationCityBytes() { + java.lang.Object ref = locationCity_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + locationCity_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FANSGROUPINFO_FIELD_NUMBER = 64; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo fansGroupInfo_; + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return Whether the fansGroupInfo field is set. + */ + @java.lang.Override + public boolean hasFansGroupInfo() { + return fansGroupInfo_ != null; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return The fansGroupInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo() { + return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder() { + return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; + } + + public static final int REMARKNAME_FIELD_NUMBER = 65; + @SuppressWarnings("serial") + private volatile java.lang.Object remarkName_ = ""; + /** + * string remarkName = 65; + * @return The remarkName. + */ + @java.lang.Override + public java.lang.String getRemarkName() { + java.lang.Object ref = remarkName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + remarkName_ = s; + return s; + } + } + /** + * string remarkName = 65; + * @return The bytes for remarkName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRemarkNameBytes() { + java.lang.Object ref = remarkName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + remarkName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MYSTERYMAN_FIELD_NUMBER = 66; + private int mysteryMan_ = 0; + /** + * int32 mysteryMan = 66; + * @return The mysteryMan. + */ + @java.lang.Override + public int getMysteryMan() { + return mysteryMan_; + } + + public static final int WEBRID_FIELD_NUMBER = 67; + @SuppressWarnings("serial") + private volatile java.lang.Object webRid_ = ""; + /** + * string webRid = 67; + * @return The webRid. + */ + @java.lang.Override + public java.lang.String getWebRid() { + java.lang.Object ref = webRid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + webRid_ = s; + return s; + } + } + /** + * string webRid = 67; + * @return The bytes for webRid. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getWebRidBytes() { + java.lang.Object ref = webRid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + webRid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DESENSITIZEDNICKNAME_FIELD_NUMBER = 68; + @SuppressWarnings("serial") + private volatile java.lang.Object desensitizedNickname_ = ""; + /** + * string desensitizedNickname = 68; + * @return The desensitizedNickname. + */ + @java.lang.Override + public java.lang.String getDesensitizedNickname() { + java.lang.Object ref = desensitizedNickname_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + desensitizedNickname_ = s; + return s; + } + } + /** + * string desensitizedNickname = 68; + * @return The bytes for desensitizedNickname. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDesensitizedNicknameBytes() { + java.lang.Object ref = desensitizedNickname_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + desensitizedNickname_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int JACCREDITINFO_FIELD_NUMBER = 69; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo jAccreditInfo_; + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return Whether the jAccreditInfo field is set. + */ + @java.lang.Override + public boolean hasJAccreditInfo() { + return jAccreditInfo_ != null; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return The jAccreditInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo() { + return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder() { + return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; + } + + public static final int SUBSCRIBE_FIELD_NUMBER = 70; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe subscribe_; + /** + * .User.Subscribe subscribe = 70; + * @return Whether the subscribe field is set. + */ + @java.lang.Override + public boolean hasSubscribe() { + return subscribe_ != null; + } + /** + * .User.Subscribe subscribe = 70; + * @return The subscribe. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe() { + return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; + } + /** + * .User.Subscribe subscribe = 70; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder() { + return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; + } + + public static final int ISANONYMOUS_FIELD_NUMBER = 71; + private boolean isAnonymous_ = false; + /** + * bool isAnonymous = 71; + * @return The isAnonymous. + */ + @java.lang.Override + public boolean getIsAnonymous() { + return isAnonymous_; + } + + public static final int CONSUMEDIAMONDLEVEL_FIELD_NUMBER = 72; + private int consumeDiamondLevel_ = 0; + /** + * int32 consumeDiamondLevel = 72; + * @return The consumeDiamondLevel. + */ + @java.lang.Override + public int getConsumeDiamondLevel() { + return consumeDiamondLevel_; + } + + public static final int WEBCASTUID_FIELD_NUMBER = 73; + @SuppressWarnings("serial") + private volatile java.lang.Object webcastUid_ = ""; + /** + * string webcastUid = 73; + * @return The webcastUid. + */ + @java.lang.Override + public java.lang.String getWebcastUid() { + java.lang.Object ref = webcastUid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + webcastUid_ = s; + return s; + } + } + /** + * string webcastUid = 73; + * @return The bytes for webcastUid. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getWebcastUidBytes() { + java.lang.Object ref = webcastUid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + webcastUid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PROFILESTYLEPARAMS_FIELD_NUMBER = 74; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams profileStyleParams_; + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return Whether the profileStyleParams field is set. + */ + @java.lang.Override + public boolean hasProfileStyleParams() { + return profileStyleParams_ != null; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return The profileStyleParams. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams() { + return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder() { + return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; + } + + public static final int USERDRESSINFO_FIELD_NUMBER = 75; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo userDressInfo_; + /** + * .User.UserDressInfo userDressInfo = 75; + * @return Whether the userDressInfo field is set. + */ + @java.lang.Override + public boolean hasUserDressInfo() { + return userDressInfo_ != null; + } + /** + * .User.UserDressInfo userDressInfo = 75; + * @return The userDressInfo. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo() { + return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder() { + return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; + } + + public static final int ALLOWBELOCATED_FIELD_NUMBER = 1001; + private boolean allowBeLocated_ = false; + /** + * bool allowBeLocated = 1001; + * @return The allowBeLocated. + */ + @java.lang.Override + public boolean getAllowBeLocated() { + return allowBeLocated_; + } + + public static final int ALLOWFINDBYCONTACTS_FIELD_NUMBER = 1002; + private boolean allowFindByContacts_ = false; + /** + * bool allowFindByContacts = 1002; + * @return The allowFindByContacts. + */ + @java.lang.Override + public boolean getAllowFindByContacts() { + return allowFindByContacts_; + } + + public static final int ALLOWOTHERSDOWNLOADVIDEO_FIELD_NUMBER = 1003; + private boolean allowOthersDownloadVideo_ = false; + /** + * bool allowOthersDownloadVideo = 1003; + * @return The allowOthersDownloadVideo. + */ + @java.lang.Override + public boolean getAllowOthersDownloadVideo() { + return allowOthersDownloadVideo_; + } + + public static final int ALLOWOTHERSDOWNLOADWHENSHARINGVIDEO_FIELD_NUMBER = 1004; + private boolean allowOthersDownloadWhenSharingVideo_ = false; + /** + * bool allowOthersDownloadWhenSharingVideo = 1004; + * @return The allowOthersDownloadWhenSharingVideo. + */ + @java.lang.Override + public boolean getAllowOthersDownloadWhenSharingVideo() { + return allowOthersDownloadWhenSharingVideo_; + } + + public static final int ALLOWSHARESHOWPROFILE_FIELD_NUMBER = 1005; + private boolean allowShareShowProfile_ = false; + /** + * bool allowShareShowProfile = 1005; + * @return The allowShareShowProfile. + */ + @java.lang.Override + public boolean getAllowShareShowProfile() { + return allowShareShowProfile_; + } + + public static final int ALLOWSHOWINGOSSIP_FIELD_NUMBER = 1006; + private boolean allowShowInGossip_ = false; + /** + * bool allowShowInGossip = 1006; + * @return The allowShowInGossip. + */ + @java.lang.Override + public boolean getAllowShowInGossip() { + return allowShowInGossip_; + } + + public static final int ALLOWSHOWMYACTION_FIELD_NUMBER = 1007; + private boolean allowShowMyAction_ = false; + /** + * bool allowShowMyAction = 1007; + * @return The allowShowMyAction. + */ + @java.lang.Override + public boolean getAllowShowMyAction() { + return allowShowMyAction_; + } + + public static final int ALLOWSTRANGECOMMENT_FIELD_NUMBER = 1008; + private boolean allowStrangeComment_ = false; + /** + * bool allowStrangeComment = 1008; + * @return The allowStrangeComment. + */ + @java.lang.Override + public boolean getAllowStrangeComment() { + return allowStrangeComment_; + } + + public static final int ALLOWUNFOLLOWERCOMMENT_FIELD_NUMBER = 1009; + private boolean allowUnfollowerComment_ = false; + /** + * bool allowUnfollowerComment = 1009; + * @return The allowUnfollowerComment. + */ + @java.lang.Override + public boolean getAllowUnfollowerComment() { + return allowUnfollowerComment_; + } + + public static final int ALLOWUSELINKMIC_FIELD_NUMBER = 1010; + private boolean allowUseLinkmic_ = false; + /** + * bool allowUseLinkmic = 1010; + * @return The allowUseLinkmic. + */ + @java.lang.Override + public boolean getAllowUseLinkmic() { + return allowUseLinkmic_; + } + + public static final int ANCHORLEVEL_FIELD_NUMBER = 1011; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel anchorLevel_; + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return Whether the anchorLevel field is set. + */ + @java.lang.Override + public boolean hasAnchorLevel() { + return anchorLevel_ != null; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return The anchorLevel. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel() { + return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder() { + return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; + } + + public static final int AVATARJPG_FIELD_NUMBER = 1012; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarJpg_; + /** + * .Image avatarJpg = 1012; + * @return Whether the avatarJpg field is set. + */ + @java.lang.Override + public boolean hasAvatarJpg() { + return avatarJpg_ != null; + } + /** + * .Image avatarJpg = 1012; + * @return The avatarJpg. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg() { + return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; + } + /** + * .Image avatarJpg = 1012; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder() { + return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; + } + + public static final int BGIMGURL_FIELD_NUMBER = 1013; + @SuppressWarnings("serial") + private volatile java.lang.Object bgImgUrl_ = ""; + /** + * string bgImgUrl = 1013; + * @return The bgImgUrl. + */ + @java.lang.Override + public java.lang.String getBgImgUrl() { + java.lang.Object ref = bgImgUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bgImgUrl_ = s; + return s; + } + } + /** + * string bgImgUrl = 1013; + * @return The bytes for bgImgUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBgImgUrlBytes() { + java.lang.Object ref = bgImgUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bgImgUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BIRTHDAYDESCRIPTION_FIELD_NUMBER = 1014; + @SuppressWarnings("serial") + private volatile java.lang.Object birthdayDescription_ = ""; + /** + * string birthdayDescription = 1014; + * @return The birthdayDescription. + */ + @java.lang.Override + public java.lang.String getBirthdayDescription() { + java.lang.Object ref = birthdayDescription_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + birthdayDescription_ = s; + return s; + } + } + /** + * string birthdayDescription = 1014; + * @return The bytes for birthdayDescription. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBirthdayDescriptionBytes() { + java.lang.Object ref = birthdayDescription_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + birthdayDescription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BIRTHDAYVALID_FIELD_NUMBER = 1015; + private boolean birthdayValid_ = false; + /** + * bool birthdayValid = 1015; + * @return The birthdayValid. + */ + @java.lang.Override + public boolean getBirthdayValid() { + return birthdayValid_; + } + + public static final int BLOCKSTATUS_FIELD_NUMBER = 1016; + private int blockStatus_ = 0; + /** + * int32 blockStatus = 1016; + * @return The blockStatus. + */ + @java.lang.Override + public int getBlockStatus() { + return blockStatus_; + } + + public static final int COMMENTRESTRICT_FIELD_NUMBER = 1017; + private int commentRestrict_ = 0; + /** + * int32 commentRestrict = 1017; + * @return The commentRestrict. + */ + @java.lang.Override + public int getCommentRestrict() { + return commentRestrict_; + } + + public static final int CONSTELLATION_FIELD_NUMBER = 1018; + @SuppressWarnings("serial") + private volatile java.lang.Object constellation_ = ""; + /** + * string constellation = 1018; + * @return The constellation. + */ + @java.lang.Override + public java.lang.String getConstellation() { + java.lang.Object ref = constellation_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + constellation_ = s; + return s; + } + } + /** + * string constellation = 1018; + * @return The bytes for constellation. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getConstellationBytes() { + java.lang.Object ref = constellation_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + constellation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISABLEICHAT_FIELD_NUMBER = 1019; + private int disableIchat_ = 0; + /** + * int32 disableIchat = 1019; + * @return The disableIchat. + */ + @java.lang.Override + public int getDisableIchat() { + return disableIchat_; + } + + public static final int ENABLEICHATIMG_FIELD_NUMBER = 1020; + private long enableIchatImg_ = 0L; + /** + * int64 enableIchatImg = 1020; + * @return The enableIchatImg. + */ + @java.lang.Override + public long getEnableIchatImg() { + return enableIchatImg_; + } + + public static final int EXP_FIELD_NUMBER = 1021; + private int exp_ = 0; + /** + * int32 exp = 1021; + * @return The exp. + */ + @java.lang.Override + public int getExp() { + return exp_; + } + + public static final int FANTICKETCOUNT_FIELD_NUMBER = 1022; + private long fanTicketCount_ = 0L; + /** + * int64 fanTicketCount = 1022; + * @return The fanTicketCount. + */ + @java.lang.Override + public long getFanTicketCount() { + return fanTicketCount_; + } + + public static final int FOLDSTRANGERCHAT_FIELD_NUMBER = 1023; + private boolean foldStrangerChat_ = false; + /** + * bool foldStrangerChat = 1023; + * @return The foldStrangerChat. + */ + @java.lang.Override + public boolean getFoldStrangerChat() { + return foldStrangerChat_; + } + + public static final int FOLLOWSTATUS_FIELD_NUMBER = 1024; + private long followStatus_ = 0L; + /** + * int64 followStatus = 1024; + * @return The followStatus. + */ + @java.lang.Override + public long getFollowStatus() { + return followStatus_; + } + + public static final int HOTSOONVERIFIED_FIELD_NUMBER = 1025; + private boolean hotsoonVerified_ = false; + /** + * bool hotsoonVerified = 1025; + * @return The hotsoonVerified. + */ + @java.lang.Override + public boolean getHotsoonVerified() { + return hotsoonVerified_; + } + + public static final int HOTSOONVERIFIEDREASON_FIELD_NUMBER = 1026; + @SuppressWarnings("serial") + private volatile java.lang.Object hotsoonVerifiedReason_ = ""; + /** + * string hotsoonVerifiedReason = 1026; + * @return The hotsoonVerifiedReason. + */ + @java.lang.Override + public java.lang.String getHotsoonVerifiedReason() { + java.lang.Object ref = hotsoonVerifiedReason_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + hotsoonVerifiedReason_ = s; + return s; + } + } + /** + * string hotsoonVerifiedReason = 1026; + * @return The bytes for hotsoonVerifiedReason. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getHotsoonVerifiedReasonBytes() { + java.lang.Object ref = hotsoonVerifiedReason_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + hotsoonVerifiedReason_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ICHATRESTRICTTYPE_FIELD_NUMBER = 1027; + private int ichatRestrictType_ = 0; + /** + * int32 ichatRestrictType = 1027; + * @return The ichatRestrictType. + */ + @java.lang.Override + public int getIchatRestrictType() { + return ichatRestrictType_; + } + + public static final int IDSTR_FIELD_NUMBER = 1028; + @SuppressWarnings("serial") + private volatile java.lang.Object idStr_ = ""; + /** + * string idStr = 1028; + * @return The idStr. + */ + @java.lang.Override + public java.lang.String getIdStr() { + java.lang.Object ref = idStr_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + idStr_ = s; + return s; + } + } + /** + * string idStr = 1028; + * @return The bytes for idStr. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdStrBytes() { + java.lang.Object ref = idStr_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + idStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ISFOLLOWER_FIELD_NUMBER = 1029; + private boolean isFollower_ = false; + /** + * bool isFollower = 1029; + * @return The isFollower. + */ + @java.lang.Override + public boolean getIsFollower() { + return isFollower_; + } + + public static final int ISFOLLOWING_FIELD_NUMBER = 1030; + private boolean isFollowing_ = false; + /** + * bool isFollowing = 1030; + * @return The isFollowing. + */ + @java.lang.Override + public boolean getIsFollowing() { + return isFollowing_; + } + + public static final int NEEDPROFILEGUIDE_FIELD_NUMBER = 1031; + private boolean needProfileGuide_ = false; + /** + * bool needProfileGuide = 1031; + * @return The needProfileGuide. + */ + @java.lang.Override + public boolean getNeedProfileGuide() { + return needProfileGuide_; + } + + public static final int PAYSCORES_FIELD_NUMBER = 1032; + private long payScores_ = 0L; + /** + * int64 payScores = 1032; + * @return The payScores. + */ + @java.lang.Override + public long getPayScores() { + return payScores_; + } + + public static final int PUSHCOMMENTSTATUS_FIELD_NUMBER = 1033; + private boolean pushCommentStatus_ = false; + /** + * bool pushCommentStatus = 1033; + * @return The pushCommentStatus. + */ + @java.lang.Override + public boolean getPushCommentStatus() { + return pushCommentStatus_; + } + + public static final int PUSHDIGG_FIELD_NUMBER = 1034; + private boolean pushDigg_ = false; + /** + * bool pushDigg = 1034; + * @return The pushDigg. + */ + @java.lang.Override + public boolean getPushDigg() { + return pushDigg_; + } + + public static final int PUSHFOLLOW_FIELD_NUMBER = 1035; + private boolean pushFollow_ = false; + /** + * bool pushFollow = 1035; + * @return The pushFollow. + */ + @java.lang.Override + public boolean getPushFollow() { + return pushFollow_; + } + + public static final int PUSHFRIENDACTION_FIELD_NUMBER = 1036; + private boolean pushFriendAction_ = false; + /** + * bool pushFriendAction = 1036; + * @return The pushFriendAction. + */ + @java.lang.Override + public boolean getPushFriendAction() { + return pushFriendAction_; + } + + public static final int PUSHICHAT_FIELD_NUMBER = 1037; + private boolean pushIchat_ = false; + /** + * bool pushIchat = 1037; + * @return The pushIchat. + */ + @java.lang.Override + public boolean getPushIchat() { + return pushIchat_; + } + + public static final int PUSHSTATUS_FIELD_NUMBER = 1038; + private boolean pushStatus_ = false; + /** + * bool pushStatus = 1038; + * @return The pushStatus. + */ + @java.lang.Override + public boolean getPushStatus() { + return pushStatus_; + } + + public static final int PUSHVIDEOPOST_FIELD_NUMBER = 1039; + private boolean pushVideoPost_ = false; + /** + * bool pushVideoPost = 1039; + * @return The pushVideoPost. + */ + @java.lang.Override + public boolean getPushVideoPost() { + return pushVideoPost_; + } + + public static final int PUSHVIDEORECOMMEND_FIELD_NUMBER = 1040; + private boolean pushVideoRecommend_ = false; + /** + * bool pushVideoRecommend = 1040; + * @return The pushVideoRecommend. + */ + @java.lang.Override + public boolean getPushVideoRecommend() { + return pushVideoRecommend_; + } + + public static final int STATS_FIELD_NUMBER = 1041; + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats stats_; + /** + * .User.UserStats stats = 1041; + * @return Whether the stats field is set. + */ + @java.lang.Override + public boolean hasStats() { + return stats_ != null; + } + /** + * .User.UserStats stats = 1041; + * @return The stats. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats() { + return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; + } + /** + * .User.UserStats stats = 1041; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder() { + return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; + } + + public static final int VERIFIEDMOBILE_FIELD_NUMBER = 1042; + private boolean verifiedMobile_ = false; + /** + * bool verifiedMobile = 1042; + * @return The verifiedMobile. + */ + @java.lang.Override + public boolean getVerifiedMobile() { + return verifiedMobile_; + } + + public static final int VERIFIEDREASON_FIELD_NUMBER = 1043; + @SuppressWarnings("serial") + private volatile java.lang.Object verifiedReason_ = ""; + /** + * string verifiedReason = 1043; + * @return The verifiedReason. + */ + @java.lang.Override + public java.lang.String getVerifiedReason() { + java.lang.Object ref = verifiedReason_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + verifiedReason_ = s; + return s; + } + } + /** + * string verifiedReason = 1043; + * @return The bytes for verifiedReason. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVerifiedReasonBytes() { + java.lang.Object ref = verifiedReason_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verifiedReason_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int WITHCARMANAGEMENTPERMISSION_FIELD_NUMBER = 1044; + private boolean withCarManagementPermission_ = false; + /** + * bool withCarManagementPermission = 1044; + * @return The withCarManagementPermission. + */ + @java.lang.Override + public boolean getWithCarManagementPermission() { + return withCarManagementPermission_; + } + + public static final int AGERANGE_FIELD_NUMBER = 1045; + private int ageRange_ = 0; + /** + * int32 ageRange = 1045; + * @return The ageRange. + */ + @java.lang.Override + public int getAgeRange() { + return ageRange_; + } + + public static final int WATCHDURATIONMONTH_FIELD_NUMBER = 1046; + private long watchDurationMonth_ = 0L; + /** + * int64 watchDurationMonth = 1046; + * @return The watchDurationMonth. + */ + @java.lang.Override + public long getWatchDurationMonth() { + return watchDurationMonth_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (id_ != 0L) { + output.writeUInt64(1, id_); + } + if (shortId_ != 0L) { + output.writeUInt64(2, shortId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nickname_); + } + if (gender_ != 0) { + output.writeUInt32(4, gender_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, signature_); + } + if (level_ != 0) { + output.writeUInt32(6, level_); + } + if (birthday_ != 0L) { + output.writeUInt64(7, birthday_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, telephone_); + } + if (avatarThumb_ != null) { + output.writeMessage(9, getAvatarThumb()); + } + if (avatarMedium_ != null) { + output.writeMessage(10, getAvatarMedium()); + } + if (avatarLarge_ != null) { + output.writeMessage(11, getAvatarLarge()); + } + if (verified_ != false) { + output.writeBool(12, verified_); + } + if (experience_ != 0) { + output.writeInt32(13, experience_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 14, city_); + } + if (status_ != 0) { + output.writeInt32(15, status_); + } + if (createTime_ != 0L) { + output.writeInt64(16, createTime_); + } + if (modifyTime_ != 0L) { + output.writeInt64(17, modifyTime_); + } + if (secret_ != 0) { + output.writeInt32(18, secret_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 19, shareQrcodeUri_); + } + if (incomeSharePercent_ != 0) { + output.writeInt32(20, incomeSharePercent_); + } + if (badgeImageListList_ != null) { + output.writeMessage(21, getBadgeImageListList()); + } + if (followInfo_ != null) { + output.writeMessage(22, getFollowInfo()); + } + if (payGrade_ != null) { + output.writeMessage(23, getPayGrade()); + } + if (fansClub_ != null) { + output.writeMessage(24, getFansClub()); + } + if (border_ != null) { + output.writeMessage(25, getBorder()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 26, specialId_); + } + if (avatarBorder_ != null) { + output.writeMessage(27, getAvatarBorder()); + } + if (medal_ != null) { + output.writeMessage(28, getMedal()); + } + for (int i = 0; i < realTimeIconsList_.size(); i++) { + output.writeMessage(29, realTimeIconsList_.get(i)); + } + for (int i = 0; i < newRealTimeIconsList_.size(); i++) { + output.writeMessage(30, newRealTimeIconsList_.get(i)); + } + if (topVipNo_ != 0L) { + output.writeInt64(31, topVipNo_); + } + if (userAttr_ != null) { + output.writeMessage(32, getUserAttr()); + } + if (ownRoom_ != null) { + output.writeMessage(33, getOwnRoom()); + } + if (payScore_ != 0L) { + output.writeInt64(34, payScore_); + } + if (ticketCount_ != 0L) { + output.writeInt64(35, ticketCount_); + } + if (anchorInfo_ != null) { + output.writeMessage(36, getAnchorInfo()); + } + if (linkMicStats_ != 0) { + output.writeInt32(37, linkMicStats_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 38, displayId_); + } + if (withCommercePermission_ != false) { + output.writeBool(39, withCommercePermission_); + } + if (withFusionShopEntry_ != false) { + output.writeBool(40, withFusionShopEntry_); + } + if (totalRechargeDiamondCount_ != 0L) { + output.writeInt64(41, totalRechargeDiamondCount_); + } + if (webcastAnchorLevel_ != null) { + output.writeMessage(42, getWebcastAnchorLevel()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedContent_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 43, verifiedContent_); + } + if (authorStats_ != null) { + output.writeMessage(44, getAuthorStats()); + } + for (int i = 0; i < topFansList_.size(); i++) { + output.writeMessage(45, topFansList_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 46, secUid_); + } + if (userRole_ != 0) { + output.writeInt32(47, userRole_); + } + if (xiguaInfo_ != null) { + output.writeMessage(48, getXiguaInfo()); + } + if (activityReward_ != null) { + output.writeMessage(49, getActivityReward()); + } + if (nobleInfo_ != null) { + output.writeMessage(50, getNobleInfo()); + } + if (brotherhoodInfo_ != null) { + output.writeMessage(51, getBrotherhoodInfo()); + } + if (personalCard_ != null) { + output.writeMessage(52, getPersonalCard()); + } + if (authenticationInfo_ != null) { + output.writeMessage(53, getAuthenticationInfo()); + } + if (authorizationInfo_ != 0) { + output.writeInt32(54, authorizationInfo_); + } + if (adversaryAuthorizationInfo_ != 0) { + output.writeInt32(55, adversaryAuthorizationInfo_); + } + if (poiInfo_ != null) { + output.writeMessage(56, getPoiInfo()); + } + if (mediaBadgeImageListList_ != null) { + output.writeMessage(57, getMediaBadgeImageListList()); + } + if (adversaryUserStatus_ != 0) { + output.writeInt32(58, adversaryUserStatus_); + } + if (userVipInfo_ != null) { + output.writeMessage(59, getUserVipInfo()); + } + if (getCommerceWebcastConfigIdsListList().size() > 0) { + output.writeUInt32NoTag(482); + output.writeUInt32NoTag(commerceWebcastConfigIdsListMemoizedSerializedSize); + } + for (int i = 0; i < commerceWebcastConfigIdsList_.size(); i++) { + output.writeInt64NoTag(commerceWebcastConfigIdsList_.getLong(i)); + } + if (badgeImageListV2List_ != null) { + output.writeMessage(61, getBadgeImageListV2List()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(locationCity_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 63, locationCity_); + } + if (fansGroupInfo_ != null) { + output.writeMessage(64, getFansGroupInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 65, remarkName_); + } + if (mysteryMan_ != 0) { + output.writeInt32(66, mysteryMan_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webRid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 67, webRid_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desensitizedNickname_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 68, desensitizedNickname_); + } + if (jAccreditInfo_ != null) { + output.writeMessage(69, getJAccreditInfo()); + } + if (subscribe_ != null) { + output.writeMessage(70, getSubscribe()); + } + if (isAnonymous_ != false) { + output.writeBool(71, isAnonymous_); + } + if (consumeDiamondLevel_ != 0) { + output.writeInt32(72, consumeDiamondLevel_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webcastUid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 73, webcastUid_); + } + if (profileStyleParams_ != null) { + output.writeMessage(74, getProfileStyleParams()); + } + if (userDressInfo_ != null) { + output.writeMessage(75, getUserDressInfo()); + } + if (allowBeLocated_ != false) { + output.writeBool(1001, allowBeLocated_); + } + if (allowFindByContacts_ != false) { + output.writeBool(1002, allowFindByContacts_); + } + if (allowOthersDownloadVideo_ != false) { + output.writeBool(1003, allowOthersDownloadVideo_); + } + if (allowOthersDownloadWhenSharingVideo_ != false) { + output.writeBool(1004, allowOthersDownloadWhenSharingVideo_); + } + if (allowShareShowProfile_ != false) { + output.writeBool(1005, allowShareShowProfile_); + } + if (allowShowInGossip_ != false) { + output.writeBool(1006, allowShowInGossip_); + } + if (allowShowMyAction_ != false) { + output.writeBool(1007, allowShowMyAction_); + } + if (allowStrangeComment_ != false) { + output.writeBool(1008, allowStrangeComment_); + } + if (allowUnfollowerComment_ != false) { + output.writeBool(1009, allowUnfollowerComment_); + } + if (allowUseLinkmic_ != false) { + output.writeBool(1010, allowUseLinkmic_); + } + if (anchorLevel_ != null) { + output.writeMessage(1011, getAnchorLevel()); + } + if (avatarJpg_ != null) { + output.writeMessage(1012, getAvatarJpg()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bgImgUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1013, bgImgUrl_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthdayDescription_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1014, birthdayDescription_); + } + if (birthdayValid_ != false) { + output.writeBool(1015, birthdayValid_); + } + if (blockStatus_ != 0) { + output.writeInt32(1016, blockStatus_); + } + if (commentRestrict_ != 0) { + output.writeInt32(1017, commentRestrict_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constellation_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1018, constellation_); + } + if (disableIchat_ != 0) { + output.writeInt32(1019, disableIchat_); + } + if (enableIchatImg_ != 0L) { + output.writeInt64(1020, enableIchatImg_); + } + if (exp_ != 0) { + output.writeInt32(1021, exp_); + } + if (fanTicketCount_ != 0L) { + output.writeInt64(1022, fanTicketCount_); + } + if (foldStrangerChat_ != false) { + output.writeBool(1023, foldStrangerChat_); + } + if (followStatus_ != 0L) { + output.writeInt64(1024, followStatus_); + } + if (hotsoonVerified_ != false) { + output.writeBool(1025, hotsoonVerified_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hotsoonVerifiedReason_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1026, hotsoonVerifiedReason_); + } + if (ichatRestrictType_ != 0) { + output.writeInt32(1027, ichatRestrictType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1028, idStr_); + } + if (isFollower_ != false) { + output.writeBool(1029, isFollower_); + } + if (isFollowing_ != false) { + output.writeBool(1030, isFollowing_); + } + if (needProfileGuide_ != false) { + output.writeBool(1031, needProfileGuide_); + } + if (payScores_ != 0L) { + output.writeInt64(1032, payScores_); + } + if (pushCommentStatus_ != false) { + output.writeBool(1033, pushCommentStatus_); + } + if (pushDigg_ != false) { + output.writeBool(1034, pushDigg_); + } + if (pushFollow_ != false) { + output.writeBool(1035, pushFollow_); + } + if (pushFriendAction_ != false) { + output.writeBool(1036, pushFriendAction_); + } + if (pushIchat_ != false) { + output.writeBool(1037, pushIchat_); + } + if (pushStatus_ != false) { + output.writeBool(1038, pushStatus_); + } + if (pushVideoPost_ != false) { + output.writeBool(1039, pushVideoPost_); + } + if (pushVideoRecommend_ != false) { + output.writeBool(1040, pushVideoRecommend_); + } + if (stats_ != null) { + output.writeMessage(1041, getStats()); + } + if (verifiedMobile_ != false) { + output.writeBool(1042, verifiedMobile_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedReason_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1043, verifiedReason_); + } + if (withCarManagementPermission_ != false) { + output.writeBool(1044, withCarManagementPermission_); + } + if (ageRange_ != 0) { + output.writeInt32(1045, ageRange_); + } + if (watchDurationMonth_ != 0L) { + output.writeInt64(1046, watchDurationMonth_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (id_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, id_); + } + if (shortId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, shortId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nickname_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nickname_); + } + if (gender_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, gender_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(signature_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, signature_); + } + if (level_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(6, level_); + } + if (birthday_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(7, birthday_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(telephone_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, telephone_); + } + if (avatarThumb_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, getAvatarThumb()); + } + if (avatarMedium_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, getAvatarMedium()); + } + if (avatarLarge_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, getAvatarLarge()); + } + if (verified_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(12, verified_); + } + if (experience_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(13, experience_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(city_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, city_); + } + if (status_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(15, status_); + } + if (createTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(16, createTime_); + } + if (modifyTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(17, modifyTime_); + } + if (secret_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(18, secret_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(shareQrcodeUri_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, shareQrcodeUri_); + } + if (incomeSharePercent_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(20, incomeSharePercent_); + } + if (badgeImageListList_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, getBadgeImageListList()); + } + if (followInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, getFollowInfo()); + } + if (payGrade_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(23, getPayGrade()); + } + if (fansClub_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(24, getFansClub()); + } + if (border_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(25, getBorder()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(specialId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, specialId_); + } + if (avatarBorder_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(27, getAvatarBorder()); + } + if (medal_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(28, getMedal()); + } + for (int i = 0; i < realTimeIconsList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(29, realTimeIconsList_.get(i)); + } + for (int i = 0; i < newRealTimeIconsList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(30, newRealTimeIconsList_.get(i)); + } + if (topVipNo_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(31, topVipNo_); + } + if (userAttr_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(32, getUserAttr()); + } + if (ownRoom_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(33, getOwnRoom()); + } + if (payScore_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(34, payScore_); + } + if (ticketCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(35, ticketCount_); + } + if (anchorInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(36, getAnchorInfo()); + } + if (linkMicStats_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(37, linkMicStats_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(38, displayId_); + } + if (withCommercePermission_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(39, withCommercePermission_); + } + if (withFusionShopEntry_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(40, withFusionShopEntry_); + } + if (totalRechargeDiamondCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(41, totalRechargeDiamondCount_); + } + if (webcastAnchorLevel_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(42, getWebcastAnchorLevel()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedContent_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(43, verifiedContent_); + } + if (authorStats_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(44, getAuthorStats()); + } + for (int i = 0; i < topFansList_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(45, topFansList_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(secUid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(46, secUid_); + } + if (userRole_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(47, userRole_); + } + if (xiguaInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(48, getXiguaInfo()); + } + if (activityReward_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(49, getActivityReward()); + } + if (nobleInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(50, getNobleInfo()); + } + if (brotherhoodInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(51, getBrotherhoodInfo()); + } + if (personalCard_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(52, getPersonalCard()); + } + if (authenticationInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(53, getAuthenticationInfo()); + } + if (authorizationInfo_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(54, authorizationInfo_); + } + if (adversaryAuthorizationInfo_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(55, adversaryAuthorizationInfo_); + } + if (poiInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(56, getPoiInfo()); + } + if (mediaBadgeImageListList_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(57, getMediaBadgeImageListList()); + } + if (adversaryUserStatus_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(58, adversaryUserStatus_); + } + if (userVipInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(59, getUserVipInfo()); + } + { + int dataSize = 0; + for (int i = 0; i < commerceWebcastConfigIdsList_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeInt64SizeNoTag(commerceWebcastConfigIdsList_.getLong(i)); + } + size += dataSize; + if (!getCommerceWebcastConfigIdsListList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + commerceWebcastConfigIdsListMemoizedSerializedSize = dataSize; + } + if (badgeImageListV2List_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(61, getBadgeImageListV2List()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(locationCity_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(63, locationCity_); + } + if (fansGroupInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(64, getFansGroupInfo()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remarkName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(65, remarkName_); + } + if (mysteryMan_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(66, mysteryMan_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webRid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(67, webRid_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(desensitizedNickname_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(68, desensitizedNickname_); + } + if (jAccreditInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(69, getJAccreditInfo()); + } + if (subscribe_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(70, getSubscribe()); + } + if (isAnonymous_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(71, isAnonymous_); + } + if (consumeDiamondLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(72, consumeDiamondLevel_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(webcastUid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(73, webcastUid_); + } + if (profileStyleParams_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(74, getProfileStyleParams()); + } + if (userDressInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(75, getUserDressInfo()); + } + if (allowBeLocated_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1001, allowBeLocated_); + } + if (allowFindByContacts_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1002, allowFindByContacts_); + } + if (allowOthersDownloadVideo_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1003, allowOthersDownloadVideo_); + } + if (allowOthersDownloadWhenSharingVideo_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1004, allowOthersDownloadWhenSharingVideo_); + } + if (allowShareShowProfile_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1005, allowShareShowProfile_); + } + if (allowShowInGossip_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1006, allowShowInGossip_); + } + if (allowShowMyAction_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1007, allowShowMyAction_); + } + if (allowStrangeComment_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1008, allowStrangeComment_); + } + if (allowUnfollowerComment_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1009, allowUnfollowerComment_); + } + if (allowUseLinkmic_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1010, allowUseLinkmic_); + } + if (anchorLevel_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1011, getAnchorLevel()); + } + if (avatarJpg_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1012, getAvatarJpg()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bgImgUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1013, bgImgUrl_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(birthdayDescription_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1014, birthdayDescription_); + } + if (birthdayValid_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1015, birthdayValid_); + } + if (blockStatus_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1016, blockStatus_); + } + if (commentRestrict_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1017, commentRestrict_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constellation_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1018, constellation_); + } + if (disableIchat_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1019, disableIchat_); + } + if (enableIchatImg_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1020, enableIchatImg_); + } + if (exp_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1021, exp_); + } + if (fanTicketCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1022, fanTicketCount_); + } + if (foldStrangerChat_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1023, foldStrangerChat_); + } + if (followStatus_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1024, followStatus_); + } + if (hotsoonVerified_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1025, hotsoonVerified_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hotsoonVerifiedReason_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1026, hotsoonVerifiedReason_); + } + if (ichatRestrictType_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1027, ichatRestrictType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(idStr_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1028, idStr_); + } + if (isFollower_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1029, isFollower_); + } + if (isFollowing_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1030, isFollowing_); + } + if (needProfileGuide_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1031, needProfileGuide_); + } + if (payScores_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1032, payScores_); + } + if (pushCommentStatus_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1033, pushCommentStatus_); + } + if (pushDigg_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1034, pushDigg_); + } + if (pushFollow_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1035, pushFollow_); + } + if (pushFriendAction_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1036, pushFriendAction_); + } + if (pushIchat_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1037, pushIchat_); + } + if (pushStatus_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1038, pushStatus_); + } + if (pushVideoPost_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1039, pushVideoPost_); + } + if (pushVideoRecommend_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1040, pushVideoRecommend_); + } + if (stats_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1041, getStats()); + } + if (verifiedMobile_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1042, verifiedMobile_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedReason_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1043, verifiedReason_); + } + if (withCarManagementPermission_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1044, withCarManagementPermission_); + } + if (ageRange_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1045, ageRange_); + } + if (watchDurationMonth_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1046, watchDurationMonth_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User) obj; + + if (getId() + != other.getId()) return false; + if (getShortId() + != other.getShortId()) return false; + if (!getNickname() + .equals(other.getNickname())) return false; + if (getGender() + != other.getGender()) return false; + if (!getSignature() + .equals(other.getSignature())) return false; + if (getLevel() + != other.getLevel()) return false; + if (getBirthday() + != other.getBirthday()) return false; + if (!getTelephone() + .equals(other.getTelephone())) return false; + if (hasAvatarThumb() != other.hasAvatarThumb()) return false; + if (hasAvatarThumb()) { + if (!getAvatarThumb() + .equals(other.getAvatarThumb())) return false; + } + if (hasAvatarMedium() != other.hasAvatarMedium()) return false; + if (hasAvatarMedium()) { + if (!getAvatarMedium() + .equals(other.getAvatarMedium())) return false; + } + if (hasAvatarLarge() != other.hasAvatarLarge()) return false; + if (hasAvatarLarge()) { + if (!getAvatarLarge() + .equals(other.getAvatarLarge())) return false; + } + if (getVerified() + != other.getVerified()) return false; + if (getExperience() + != other.getExperience()) return false; + if (!getCity() + .equals(other.getCity())) return false; + if (getStatus() + != other.getStatus()) return false; + if (getCreateTime() + != other.getCreateTime()) return false; + if (getModifyTime() + != other.getModifyTime()) return false; + if (getSecret() + != other.getSecret()) return false; + if (!getShareQrcodeUri() + .equals(other.getShareQrcodeUri())) return false; + if (getIncomeSharePercent() + != other.getIncomeSharePercent()) return false; + if (hasBadgeImageListList() != other.hasBadgeImageListList()) return false; + if (hasBadgeImageListList()) { + if (!getBadgeImageListList() + .equals(other.getBadgeImageListList())) return false; + } + if (hasFollowInfo() != other.hasFollowInfo()) return false; + if (hasFollowInfo()) { + if (!getFollowInfo() + .equals(other.getFollowInfo())) return false; + } + if (hasPayGrade() != other.hasPayGrade()) return false; + if (hasPayGrade()) { + if (!getPayGrade() + .equals(other.getPayGrade())) return false; + } + if (hasFansClub() != other.hasFansClub()) return false; + if (hasFansClub()) { + if (!getFansClub() + .equals(other.getFansClub())) return false; + } + if (hasBorder() != other.hasBorder()) return false; + if (hasBorder()) { + if (!getBorder() + .equals(other.getBorder())) return false; + } + if (!getSpecialId() + .equals(other.getSpecialId())) return false; + if (hasAvatarBorder() != other.hasAvatarBorder()) return false; + if (hasAvatarBorder()) { + if (!getAvatarBorder() + .equals(other.getAvatarBorder())) return false; + } + if (hasMedal() != other.hasMedal()) return false; + if (hasMedal()) { + if (!getMedal() + .equals(other.getMedal())) return false; + } + if (!getRealTimeIconsListList() + .equals(other.getRealTimeIconsListList())) return false; + if (!getNewRealTimeIconsListList() + .equals(other.getNewRealTimeIconsListList())) return false; + if (getTopVipNo() + != other.getTopVipNo()) return false; + if (hasUserAttr() != other.hasUserAttr()) return false; + if (hasUserAttr()) { + if (!getUserAttr() + .equals(other.getUserAttr())) return false; + } + if (hasOwnRoom() != other.hasOwnRoom()) return false; + if (hasOwnRoom()) { + if (!getOwnRoom() + .equals(other.getOwnRoom())) return false; + } + if (getPayScore() + != other.getPayScore()) return false; + if (getTicketCount() + != other.getTicketCount()) return false; + if (hasAnchorInfo() != other.hasAnchorInfo()) return false; + if (hasAnchorInfo()) { + if (!getAnchorInfo() + .equals(other.getAnchorInfo())) return false; + } + if (getLinkMicStats() + != other.getLinkMicStats()) return false; + if (!getDisplayId() + .equals(other.getDisplayId())) return false; + if (getWithCommercePermission() + != other.getWithCommercePermission()) return false; + if (getWithFusionShopEntry() + != other.getWithFusionShopEntry()) return false; + if (getTotalRechargeDiamondCount() + != other.getTotalRechargeDiamondCount()) return false; + if (hasWebcastAnchorLevel() != other.hasWebcastAnchorLevel()) return false; + if (hasWebcastAnchorLevel()) { + if (!getWebcastAnchorLevel() + .equals(other.getWebcastAnchorLevel())) return false; + } + if (!getVerifiedContent() + .equals(other.getVerifiedContent())) return false; + if (hasAuthorStats() != other.hasAuthorStats()) return false; + if (hasAuthorStats()) { + if (!getAuthorStats() + .equals(other.getAuthorStats())) return false; + } + if (!getTopFansListList() + .equals(other.getTopFansListList())) return false; + if (!getSecUid() + .equals(other.getSecUid())) return false; + if (getUserRole() + != other.getUserRole()) return false; + if (hasXiguaInfo() != other.hasXiguaInfo()) return false; + if (hasXiguaInfo()) { + if (!getXiguaInfo() + .equals(other.getXiguaInfo())) return false; + } + if (hasActivityReward() != other.hasActivityReward()) return false; + if (hasActivityReward()) { + if (!getActivityReward() + .equals(other.getActivityReward())) return false; + } + if (hasNobleInfo() != other.hasNobleInfo()) return false; + if (hasNobleInfo()) { + if (!getNobleInfo() + .equals(other.getNobleInfo())) return false; + } + if (hasBrotherhoodInfo() != other.hasBrotherhoodInfo()) return false; + if (hasBrotherhoodInfo()) { + if (!getBrotherhoodInfo() + .equals(other.getBrotherhoodInfo())) return false; + } + if (hasPersonalCard() != other.hasPersonalCard()) return false; + if (hasPersonalCard()) { + if (!getPersonalCard() + .equals(other.getPersonalCard())) return false; + } + if (hasAuthenticationInfo() != other.hasAuthenticationInfo()) return false; + if (hasAuthenticationInfo()) { + if (!getAuthenticationInfo() + .equals(other.getAuthenticationInfo())) return false; + } + if (getAuthorizationInfo() + != other.getAuthorizationInfo()) return false; + if (getAdversaryAuthorizationInfo() + != other.getAdversaryAuthorizationInfo()) return false; + if (hasPoiInfo() != other.hasPoiInfo()) return false; + if (hasPoiInfo()) { + if (!getPoiInfo() + .equals(other.getPoiInfo())) return false; + } + if (hasMediaBadgeImageListList() != other.hasMediaBadgeImageListList()) return false; + if (hasMediaBadgeImageListList()) { + if (!getMediaBadgeImageListList() + .equals(other.getMediaBadgeImageListList())) return false; + } + if (getAdversaryUserStatus() + != other.getAdversaryUserStatus()) return false; + if (hasUserVipInfo() != other.hasUserVipInfo()) return false; + if (hasUserVipInfo()) { + if (!getUserVipInfo() + .equals(other.getUserVipInfo())) return false; + } + if (!getCommerceWebcastConfigIdsListList() + .equals(other.getCommerceWebcastConfigIdsListList())) return false; + if (hasBadgeImageListV2List() != other.hasBadgeImageListV2List()) return false; + if (hasBadgeImageListV2List()) { + if (!getBadgeImageListV2List() + .equals(other.getBadgeImageListV2List())) return false; + } + if (!getLocationCity() + .equals(other.getLocationCity())) return false; + if (hasFansGroupInfo() != other.hasFansGroupInfo()) return false; + if (hasFansGroupInfo()) { + if (!getFansGroupInfo() + .equals(other.getFansGroupInfo())) return false; + } + if (!getRemarkName() + .equals(other.getRemarkName())) return false; + if (getMysteryMan() + != other.getMysteryMan()) return false; + if (!getWebRid() + .equals(other.getWebRid())) return false; + if (!getDesensitizedNickname() + .equals(other.getDesensitizedNickname())) return false; + if (hasJAccreditInfo() != other.hasJAccreditInfo()) return false; + if (hasJAccreditInfo()) { + if (!getJAccreditInfo() + .equals(other.getJAccreditInfo())) return false; + } + if (hasSubscribe() != other.hasSubscribe()) return false; + if (hasSubscribe()) { + if (!getSubscribe() + .equals(other.getSubscribe())) return false; + } + if (getIsAnonymous() + != other.getIsAnonymous()) return false; + if (getConsumeDiamondLevel() + != other.getConsumeDiamondLevel()) return false; + if (!getWebcastUid() + .equals(other.getWebcastUid())) return false; + if (hasProfileStyleParams() != other.hasProfileStyleParams()) return false; + if (hasProfileStyleParams()) { + if (!getProfileStyleParams() + .equals(other.getProfileStyleParams())) return false; + } + if (hasUserDressInfo() != other.hasUserDressInfo()) return false; + if (hasUserDressInfo()) { + if (!getUserDressInfo() + .equals(other.getUserDressInfo())) return false; + } + if (getAllowBeLocated() + != other.getAllowBeLocated()) return false; + if (getAllowFindByContacts() + != other.getAllowFindByContacts()) return false; + if (getAllowOthersDownloadVideo() + != other.getAllowOthersDownloadVideo()) return false; + if (getAllowOthersDownloadWhenSharingVideo() + != other.getAllowOthersDownloadWhenSharingVideo()) return false; + if (getAllowShareShowProfile() + != other.getAllowShareShowProfile()) return false; + if (getAllowShowInGossip() + != other.getAllowShowInGossip()) return false; + if (getAllowShowMyAction() + != other.getAllowShowMyAction()) return false; + if (getAllowStrangeComment() + != other.getAllowStrangeComment()) return false; + if (getAllowUnfollowerComment() + != other.getAllowUnfollowerComment()) return false; + if (getAllowUseLinkmic() + != other.getAllowUseLinkmic()) return false; + if (hasAnchorLevel() != other.hasAnchorLevel()) return false; + if (hasAnchorLevel()) { + if (!getAnchorLevel() + .equals(other.getAnchorLevel())) return false; + } + if (hasAvatarJpg() != other.hasAvatarJpg()) return false; + if (hasAvatarJpg()) { + if (!getAvatarJpg() + .equals(other.getAvatarJpg())) return false; + } + if (!getBgImgUrl() + .equals(other.getBgImgUrl())) return false; + if (!getBirthdayDescription() + .equals(other.getBirthdayDescription())) return false; + if (getBirthdayValid() + != other.getBirthdayValid()) return false; + if (getBlockStatus() + != other.getBlockStatus()) return false; + if (getCommentRestrict() + != other.getCommentRestrict()) return false; + if (!getConstellation() + .equals(other.getConstellation())) return false; + if (getDisableIchat() + != other.getDisableIchat()) return false; + if (getEnableIchatImg() + != other.getEnableIchatImg()) return false; + if (getExp() + != other.getExp()) return false; + if (getFanTicketCount() + != other.getFanTicketCount()) return false; + if (getFoldStrangerChat() + != other.getFoldStrangerChat()) return false; + if (getFollowStatus() + != other.getFollowStatus()) return false; + if (getHotsoonVerified() + != other.getHotsoonVerified()) return false; + if (!getHotsoonVerifiedReason() + .equals(other.getHotsoonVerifiedReason())) return false; + if (getIchatRestrictType() + != other.getIchatRestrictType()) return false; + if (!getIdStr() + .equals(other.getIdStr())) return false; + if (getIsFollower() + != other.getIsFollower()) return false; + if (getIsFollowing() + != other.getIsFollowing()) return false; + if (getNeedProfileGuide() + != other.getNeedProfileGuide()) return false; + if (getPayScores() + != other.getPayScores()) return false; + if (getPushCommentStatus() + != other.getPushCommentStatus()) return false; + if (getPushDigg() + != other.getPushDigg()) return false; + if (getPushFollow() + != other.getPushFollow()) return false; + if (getPushFriendAction() + != other.getPushFriendAction()) return false; + if (getPushIchat() + != other.getPushIchat()) return false; + if (getPushStatus() + != other.getPushStatus()) return false; + if (getPushVideoPost() + != other.getPushVideoPost()) return false; + if (getPushVideoRecommend() + != other.getPushVideoRecommend()) return false; + if (hasStats() != other.hasStats()) return false; + if (hasStats()) { + if (!getStats() + .equals(other.getStats())) return false; + } + if (getVerifiedMobile() + != other.getVerifiedMobile()) return false; + if (!getVerifiedReason() + .equals(other.getVerifiedReason())) return false; + if (getWithCarManagementPermission() + != other.getWithCarManagementPermission()) return false; + if (getAgeRange() + != other.getAgeRange()) return false; + if (getWatchDurationMonth() + != other.getWatchDurationMonth()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getId()); + hash = (37 * hash) + SHORTID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getShortId()); + hash = (37 * hash) + NICKNAME_FIELD_NUMBER; + hash = (53 * hash) + getNickname().hashCode(); + hash = (37 * hash) + GENDER_FIELD_NUMBER; + hash = (53 * hash) + getGender(); + hash = (37 * hash) + SIGNATURE_FIELD_NUMBER; + hash = (53 * hash) + getSignature().hashCode(); + hash = (37 * hash) + LEVEL_FIELD_NUMBER; + hash = (53 * hash) + getLevel(); + hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getBirthday()); + hash = (37 * hash) + TELEPHONE_FIELD_NUMBER; + hash = (53 * hash) + getTelephone().hashCode(); + if (hasAvatarThumb()) { + hash = (37 * hash) + AVATARTHUMB_FIELD_NUMBER; + hash = (53 * hash) + getAvatarThumb().hashCode(); + } + if (hasAvatarMedium()) { + hash = (37 * hash) + AVATARMEDIUM_FIELD_NUMBER; + hash = (53 * hash) + getAvatarMedium().hashCode(); + } + if (hasAvatarLarge()) { + hash = (37 * hash) + AVATARLARGE_FIELD_NUMBER; + hash = (53 * hash) + getAvatarLarge().hashCode(); + } + hash = (37 * hash) + VERIFIED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getVerified()); + hash = (37 * hash) + EXPERIENCE_FIELD_NUMBER; + hash = (53 * hash) + getExperience(); + hash = (37 * hash) + CITY_FIELD_NUMBER; + hash = (53 * hash) + getCity().hashCode(); + hash = (37 * hash) + STATUS_FIELD_NUMBER; + hash = (53 * hash) + getStatus(); + hash = (37 * hash) + CREATETIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getCreateTime()); + hash = (37 * hash) + MODIFYTIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getModifyTime()); + hash = (37 * hash) + SECRET_FIELD_NUMBER; + hash = (53 * hash) + getSecret(); + hash = (37 * hash) + SHAREQRCODEURI_FIELD_NUMBER; + hash = (53 * hash) + getShareQrcodeUri().hashCode(); + hash = (37 * hash) + INCOMESHAREPERCENT_FIELD_NUMBER; + hash = (53 * hash) + getIncomeSharePercent(); + if (hasBadgeImageListList()) { + hash = (37 * hash) + BADGEIMAGELISTLIST_FIELD_NUMBER; + hash = (53 * hash) + getBadgeImageListList().hashCode(); + } + if (hasFollowInfo()) { + hash = (37 * hash) + FOLLOWINFO_FIELD_NUMBER; + hash = (53 * hash) + getFollowInfo().hashCode(); + } + if (hasPayGrade()) { + hash = (37 * hash) + PAYGRADE_FIELD_NUMBER; + hash = (53 * hash) + getPayGrade().hashCode(); + } + if (hasFansClub()) { + hash = (37 * hash) + FANSCLUB_FIELD_NUMBER; + hash = (53 * hash) + getFansClub().hashCode(); + } + if (hasBorder()) { + hash = (37 * hash) + BORDER_FIELD_NUMBER; + hash = (53 * hash) + getBorder().hashCode(); + } + hash = (37 * hash) + SPECIALID_FIELD_NUMBER; + hash = (53 * hash) + getSpecialId().hashCode(); + if (hasAvatarBorder()) { + hash = (37 * hash) + AVATARBORDER_FIELD_NUMBER; + hash = (53 * hash) + getAvatarBorder().hashCode(); + } + if (hasMedal()) { + hash = (37 * hash) + MEDAL_FIELD_NUMBER; + hash = (53 * hash) + getMedal().hashCode(); + } + if (getRealTimeIconsListCount() > 0) { + hash = (37 * hash) + REALTIMEICONSLIST_FIELD_NUMBER; + hash = (53 * hash) + getRealTimeIconsListList().hashCode(); + } + if (getNewRealTimeIconsListCount() > 0) { + hash = (37 * hash) + NEWREALTIMEICONSLIST_FIELD_NUMBER; + hash = (53 * hash) + getNewRealTimeIconsListList().hashCode(); + } + hash = (37 * hash) + TOPVIPNO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTopVipNo()); + if (hasUserAttr()) { + hash = (37 * hash) + USERATTR_FIELD_NUMBER; + hash = (53 * hash) + getUserAttr().hashCode(); + } + if (hasOwnRoom()) { + hash = (37 * hash) + OWNROOM_FIELD_NUMBER; + hash = (53 * hash) + getOwnRoom().hashCode(); + } + hash = (37 * hash) + PAYSCORE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPayScore()); + hash = (37 * hash) + TICKETCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTicketCount()); + if (hasAnchorInfo()) { + hash = (37 * hash) + ANCHORINFO_FIELD_NUMBER; + hash = (53 * hash) + getAnchorInfo().hashCode(); + } + hash = (37 * hash) + LINKMICSTATS_FIELD_NUMBER; + hash = (53 * hash) + getLinkMicStats(); + hash = (37 * hash) + DISPLAYID_FIELD_NUMBER; + hash = (53 * hash) + getDisplayId().hashCode(); + hash = (37 * hash) + WITHCOMMERCEPERMISSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getWithCommercePermission()); + hash = (37 * hash) + WITHFUSIONSHOPENTRY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getWithFusionShopEntry()); + hash = (37 * hash) + TOTALRECHARGEDIAMONDCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTotalRechargeDiamondCount()); + if (hasWebcastAnchorLevel()) { + hash = (37 * hash) + WEBCASTANCHORLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getWebcastAnchorLevel().hashCode(); + } + hash = (37 * hash) + VERIFIEDCONTENT_FIELD_NUMBER; + hash = (53 * hash) + getVerifiedContent().hashCode(); + if (hasAuthorStats()) { + hash = (37 * hash) + AUTHORSTATS_FIELD_NUMBER; + hash = (53 * hash) + getAuthorStats().hashCode(); + } + if (getTopFansListCount() > 0) { + hash = (37 * hash) + TOPFANSLIST_FIELD_NUMBER; + hash = (53 * hash) + getTopFansListList().hashCode(); + } + hash = (37 * hash) + SECUID_FIELD_NUMBER; + hash = (53 * hash) + getSecUid().hashCode(); + hash = (37 * hash) + USERROLE_FIELD_NUMBER; + hash = (53 * hash) + getUserRole(); + if (hasXiguaInfo()) { + hash = (37 * hash) + XIGUAINFO_FIELD_NUMBER; + hash = (53 * hash) + getXiguaInfo().hashCode(); + } + if (hasActivityReward()) { + hash = (37 * hash) + ACTIVITYREWARD_FIELD_NUMBER; + hash = (53 * hash) + getActivityReward().hashCode(); + } + if (hasNobleInfo()) { + hash = (37 * hash) + NOBLEINFO_FIELD_NUMBER; + hash = (53 * hash) + getNobleInfo().hashCode(); + } + if (hasBrotherhoodInfo()) { + hash = (37 * hash) + BROTHERHOODINFO_FIELD_NUMBER; + hash = (53 * hash) + getBrotherhoodInfo().hashCode(); + } + if (hasPersonalCard()) { + hash = (37 * hash) + PERSONALCARD_FIELD_NUMBER; + hash = (53 * hash) + getPersonalCard().hashCode(); + } + if (hasAuthenticationInfo()) { + hash = (37 * hash) + AUTHENTICATIONINFO_FIELD_NUMBER; + hash = (53 * hash) + getAuthenticationInfo().hashCode(); + } + hash = (37 * hash) + AUTHORIZATIONINFO_FIELD_NUMBER; + hash = (53 * hash) + getAuthorizationInfo(); + hash = (37 * hash) + ADVERSARYAUTHORIZATIONINFO_FIELD_NUMBER; + hash = (53 * hash) + getAdversaryAuthorizationInfo(); + if (hasPoiInfo()) { + hash = (37 * hash) + POIINFO_FIELD_NUMBER; + hash = (53 * hash) + getPoiInfo().hashCode(); + } + if (hasMediaBadgeImageListList()) { + hash = (37 * hash) + MEDIABADGEIMAGELISTLIST_FIELD_NUMBER; + hash = (53 * hash) + getMediaBadgeImageListList().hashCode(); + } + hash = (37 * hash) + ADVERSARYUSERSTATUS_FIELD_NUMBER; + hash = (53 * hash) + getAdversaryUserStatus(); + if (hasUserVipInfo()) { + hash = (37 * hash) + USERVIPINFO_FIELD_NUMBER; + hash = (53 * hash) + getUserVipInfo().hashCode(); + } + if (getCommerceWebcastConfigIdsListCount() > 0) { + hash = (37 * hash) + COMMERCEWEBCASTCONFIGIDSLIST_FIELD_NUMBER; + hash = (53 * hash) + getCommerceWebcastConfigIdsListList().hashCode(); + } + if (hasBadgeImageListV2List()) { + hash = (37 * hash) + BADGEIMAGELISTV2LIST_FIELD_NUMBER; + hash = (53 * hash) + getBadgeImageListV2List().hashCode(); + } + hash = (37 * hash) + LOCATIONCITY_FIELD_NUMBER; + hash = (53 * hash) + getLocationCity().hashCode(); + if (hasFansGroupInfo()) { + hash = (37 * hash) + FANSGROUPINFO_FIELD_NUMBER; + hash = (53 * hash) + getFansGroupInfo().hashCode(); + } + hash = (37 * hash) + REMARKNAME_FIELD_NUMBER; + hash = (53 * hash) + getRemarkName().hashCode(); + hash = (37 * hash) + MYSTERYMAN_FIELD_NUMBER; + hash = (53 * hash) + getMysteryMan(); + hash = (37 * hash) + WEBRID_FIELD_NUMBER; + hash = (53 * hash) + getWebRid().hashCode(); + hash = (37 * hash) + DESENSITIZEDNICKNAME_FIELD_NUMBER; + hash = (53 * hash) + getDesensitizedNickname().hashCode(); + if (hasJAccreditInfo()) { + hash = (37 * hash) + JACCREDITINFO_FIELD_NUMBER; + hash = (53 * hash) + getJAccreditInfo().hashCode(); + } + if (hasSubscribe()) { + hash = (37 * hash) + SUBSCRIBE_FIELD_NUMBER; + hash = (53 * hash) + getSubscribe().hashCode(); + } + hash = (37 * hash) + ISANONYMOUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsAnonymous()); + hash = (37 * hash) + CONSUMEDIAMONDLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getConsumeDiamondLevel(); + hash = (37 * hash) + WEBCASTUID_FIELD_NUMBER; + hash = (53 * hash) + getWebcastUid().hashCode(); + if (hasProfileStyleParams()) { + hash = (37 * hash) + PROFILESTYLEPARAMS_FIELD_NUMBER; + hash = (53 * hash) + getProfileStyleParams().hashCode(); + } + if (hasUserDressInfo()) { + hash = (37 * hash) + USERDRESSINFO_FIELD_NUMBER; + hash = (53 * hash) + getUserDressInfo().hashCode(); + } + hash = (37 * hash) + ALLOWBELOCATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowBeLocated()); + hash = (37 * hash) + ALLOWFINDBYCONTACTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowFindByContacts()); + hash = (37 * hash) + ALLOWOTHERSDOWNLOADVIDEO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowOthersDownloadVideo()); + hash = (37 * hash) + ALLOWOTHERSDOWNLOADWHENSHARINGVIDEO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowOthersDownloadWhenSharingVideo()); + hash = (37 * hash) + ALLOWSHARESHOWPROFILE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowShareShowProfile()); + hash = (37 * hash) + ALLOWSHOWINGOSSIP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowShowInGossip()); + hash = (37 * hash) + ALLOWSHOWMYACTION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowShowMyAction()); + hash = (37 * hash) + ALLOWSTRANGECOMMENT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowStrangeComment()); + hash = (37 * hash) + ALLOWUNFOLLOWERCOMMENT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowUnfollowerComment()); + hash = (37 * hash) + ALLOWUSELINKMIC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAllowUseLinkmic()); + if (hasAnchorLevel()) { + hash = (37 * hash) + ANCHORLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getAnchorLevel().hashCode(); + } + if (hasAvatarJpg()) { + hash = (37 * hash) + AVATARJPG_FIELD_NUMBER; + hash = (53 * hash) + getAvatarJpg().hashCode(); + } + hash = (37 * hash) + BGIMGURL_FIELD_NUMBER; + hash = (53 * hash) + getBgImgUrl().hashCode(); + hash = (37 * hash) + BIRTHDAYDESCRIPTION_FIELD_NUMBER; + hash = (53 * hash) + getBirthdayDescription().hashCode(); + hash = (37 * hash) + BIRTHDAYVALID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getBirthdayValid()); + hash = (37 * hash) + BLOCKSTATUS_FIELD_NUMBER; + hash = (53 * hash) + getBlockStatus(); + hash = (37 * hash) + COMMENTRESTRICT_FIELD_NUMBER; + hash = (53 * hash) + getCommentRestrict(); + hash = (37 * hash) + CONSTELLATION_FIELD_NUMBER; + hash = (53 * hash) + getConstellation().hashCode(); + hash = (37 * hash) + DISABLEICHAT_FIELD_NUMBER; + hash = (53 * hash) + getDisableIchat(); + hash = (37 * hash) + ENABLEICHATIMG_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEnableIchatImg()); + hash = (37 * hash) + EXP_FIELD_NUMBER; + hash = (53 * hash) + getExp(); + hash = (37 * hash) + FANTICKETCOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFanTicketCount()); + hash = (37 * hash) + FOLDSTRANGERCHAT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFoldStrangerChat()); + hash = (37 * hash) + FOLLOWSTATUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFollowStatus()); + hash = (37 * hash) + HOTSOONVERIFIED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getHotsoonVerified()); + hash = (37 * hash) + HOTSOONVERIFIEDREASON_FIELD_NUMBER; + hash = (53 * hash) + getHotsoonVerifiedReason().hashCode(); + hash = (37 * hash) + ICHATRESTRICTTYPE_FIELD_NUMBER; + hash = (53 * hash) + getIchatRestrictType(); + hash = (37 * hash) + IDSTR_FIELD_NUMBER; + hash = (53 * hash) + getIdStr().hashCode(); + hash = (37 * hash) + ISFOLLOWER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsFollower()); + hash = (37 * hash) + ISFOLLOWING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsFollowing()); + hash = (37 * hash) + NEEDPROFILEGUIDE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNeedProfileGuide()); + hash = (37 * hash) + PAYSCORES_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPayScores()); + hash = (37 * hash) + PUSHCOMMENTSTATUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushCommentStatus()); + hash = (37 * hash) + PUSHDIGG_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushDigg()); + hash = (37 * hash) + PUSHFOLLOW_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushFollow()); + hash = (37 * hash) + PUSHFRIENDACTION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushFriendAction()); + hash = (37 * hash) + PUSHICHAT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushIchat()); + hash = (37 * hash) + PUSHSTATUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushStatus()); + hash = (37 * hash) + PUSHVIDEOPOST_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushVideoPost()); + hash = (37 * hash) + PUSHVIDEORECOMMEND_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getPushVideoRecommend()); + if (hasStats()) { + hash = (37 * hash) + STATS_FIELD_NUMBER; + hash = (53 * hash) + getStats().hashCode(); + } + hash = (37 * hash) + VERIFIEDMOBILE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getVerifiedMobile()); + hash = (37 * hash) + VERIFIEDREASON_FIELD_NUMBER; + hash = (53 * hash) + getVerifiedReason().hashCode(); + hash = (37 * hash) + WITHCARMANAGEMENTPERMISSION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getWithCarManagementPermission()); + hash = (37 * hash) + AGERANGE_FIELD_NUMBER; + hash = (53 * hash) + getAgeRange(); + hash = (37 * hash) + WATCHDURATIONMONTH_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getWatchDurationMonth()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code User} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:User) + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bitField1_ = 0; + bitField2_ = 0; + bitField3_ = 0; + id_ = 0L; + shortId_ = 0L; + nickname_ = ""; + gender_ = 0; + signature_ = ""; + level_ = 0; + birthday_ = 0L; + telephone_ = ""; + avatarThumb_ = null; + if (avatarThumbBuilder_ != null) { + avatarThumbBuilder_.dispose(); + avatarThumbBuilder_ = null; + } + avatarMedium_ = null; + if (avatarMediumBuilder_ != null) { + avatarMediumBuilder_.dispose(); + avatarMediumBuilder_ = null; + } + avatarLarge_ = null; + if (avatarLargeBuilder_ != null) { + avatarLargeBuilder_.dispose(); + avatarLargeBuilder_ = null; + } + verified_ = false; + experience_ = 0; + city_ = ""; + status_ = 0; + createTime_ = 0L; + modifyTime_ = 0L; + secret_ = 0; + shareQrcodeUri_ = ""; + incomeSharePercent_ = 0; + badgeImageListList_ = null; + if (badgeImageListListBuilder_ != null) { + badgeImageListListBuilder_.dispose(); + badgeImageListListBuilder_ = null; + } + followInfo_ = null; + if (followInfoBuilder_ != null) { + followInfoBuilder_.dispose(); + followInfoBuilder_ = null; + } + payGrade_ = null; + if (payGradeBuilder_ != null) { + payGradeBuilder_.dispose(); + payGradeBuilder_ = null; + } + fansClub_ = null; + if (fansClubBuilder_ != null) { + fansClubBuilder_.dispose(); + fansClubBuilder_ = null; + } + border_ = null; + if (borderBuilder_ != null) { + borderBuilder_.dispose(); + borderBuilder_ = null; + } + specialId_ = ""; + avatarBorder_ = null; + if (avatarBorderBuilder_ != null) { + avatarBorderBuilder_.dispose(); + avatarBorderBuilder_ = null; + } + medal_ = null; + if (medalBuilder_ != null) { + medalBuilder_.dispose(); + medalBuilder_ = null; + } + if (realTimeIconsListBuilder_ == null) { + realTimeIconsList_ = java.util.Collections.emptyList(); + } else { + realTimeIconsList_ = null; + realTimeIconsListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x10000000); + if (newRealTimeIconsListBuilder_ == null) { + newRealTimeIconsList_ = java.util.Collections.emptyList(); + } else { + newRealTimeIconsList_ = null; + newRealTimeIconsListBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x20000000); + topVipNo_ = 0L; + userAttr_ = null; + if (userAttrBuilder_ != null) { + userAttrBuilder_.dispose(); + userAttrBuilder_ = null; + } + ownRoom_ = null; + if (ownRoomBuilder_ != null) { + ownRoomBuilder_.dispose(); + ownRoomBuilder_ = null; + } + payScore_ = 0L; + ticketCount_ = 0L; + anchorInfo_ = null; + if (anchorInfoBuilder_ != null) { + anchorInfoBuilder_.dispose(); + anchorInfoBuilder_ = null; + } + linkMicStats_ = 0; + displayId_ = ""; + withCommercePermission_ = false; + withFusionShopEntry_ = false; + totalRechargeDiamondCount_ = 0L; + webcastAnchorLevel_ = null; + if (webcastAnchorLevelBuilder_ != null) { + webcastAnchorLevelBuilder_.dispose(); + webcastAnchorLevelBuilder_ = null; + } + verifiedContent_ = ""; + authorStats_ = null; + if (authorStatsBuilder_ != null) { + authorStatsBuilder_.dispose(); + authorStatsBuilder_ = null; + } + if (topFansListBuilder_ == null) { + topFansList_ = java.util.Collections.emptyList(); + } else { + topFansList_ = null; + topFansListBuilder_.clear(); + } + bitField1_ = (bitField1_ & ~0x00001000); + secUid_ = ""; + userRole_ = 0; + xiguaInfo_ = null; + if (xiguaInfoBuilder_ != null) { + xiguaInfoBuilder_.dispose(); + xiguaInfoBuilder_ = null; + } + activityReward_ = null; + if (activityRewardBuilder_ != null) { + activityRewardBuilder_.dispose(); + activityRewardBuilder_ = null; + } + nobleInfo_ = null; + if (nobleInfoBuilder_ != null) { + nobleInfoBuilder_.dispose(); + nobleInfoBuilder_ = null; + } + brotherhoodInfo_ = null; + if (brotherhoodInfoBuilder_ != null) { + brotherhoodInfoBuilder_.dispose(); + brotherhoodInfoBuilder_ = null; + } + personalCard_ = null; + if (personalCardBuilder_ != null) { + personalCardBuilder_.dispose(); + personalCardBuilder_ = null; + } + authenticationInfo_ = null; + if (authenticationInfoBuilder_ != null) { + authenticationInfoBuilder_.dispose(); + authenticationInfoBuilder_ = null; + } + authorizationInfo_ = 0; + adversaryAuthorizationInfo_ = 0; + poiInfo_ = null; + if (poiInfoBuilder_ != null) { + poiInfoBuilder_.dispose(); + poiInfoBuilder_ = null; + } + mediaBadgeImageListList_ = null; + if (mediaBadgeImageListListBuilder_ != null) { + mediaBadgeImageListListBuilder_.dispose(); + mediaBadgeImageListListBuilder_ = null; + } + adversaryUserStatus_ = 0; + userVipInfo_ = null; + if (userVipInfoBuilder_ != null) { + userVipInfoBuilder_.dispose(); + userVipInfoBuilder_ = null; + } + commerceWebcastConfigIdsList_ = emptyLongList(); + badgeImageListV2List_ = null; + if (badgeImageListV2ListBuilder_ != null) { + badgeImageListV2ListBuilder_.dispose(); + badgeImageListV2ListBuilder_ = null; + } + locationCity_ = ""; + fansGroupInfo_ = null; + if (fansGroupInfoBuilder_ != null) { + fansGroupInfoBuilder_.dispose(); + fansGroupInfoBuilder_ = null; + } + remarkName_ = ""; + mysteryMan_ = 0; + webRid_ = ""; + desensitizedNickname_ = ""; + jAccreditInfo_ = null; + if (jAccreditInfoBuilder_ != null) { + jAccreditInfoBuilder_.dispose(); + jAccreditInfoBuilder_ = null; + } + subscribe_ = null; + if (subscribeBuilder_ != null) { + subscribeBuilder_.dispose(); + subscribeBuilder_ = null; + } + isAnonymous_ = false; + consumeDiamondLevel_ = 0; + webcastUid_ = ""; + profileStyleParams_ = null; + if (profileStyleParamsBuilder_ != null) { + profileStyleParamsBuilder_.dispose(); + profileStyleParamsBuilder_ = null; + } + userDressInfo_ = null; + if (userDressInfoBuilder_ != null) { + userDressInfoBuilder_.dispose(); + userDressInfoBuilder_ = null; + } + allowBeLocated_ = false; + allowFindByContacts_ = false; + allowOthersDownloadVideo_ = false; + allowOthersDownloadWhenSharingVideo_ = false; + allowShareShowProfile_ = false; + allowShowInGossip_ = false; + allowShowMyAction_ = false; + allowStrangeComment_ = false; + allowUnfollowerComment_ = false; + allowUseLinkmic_ = false; + anchorLevel_ = null; + if (anchorLevelBuilder_ != null) { + anchorLevelBuilder_.dispose(); + anchorLevelBuilder_ = null; + } + avatarJpg_ = null; + if (avatarJpgBuilder_ != null) { + avatarJpgBuilder_.dispose(); + avatarJpgBuilder_ = null; + } + bgImgUrl_ = ""; + birthdayDescription_ = ""; + birthdayValid_ = false; + blockStatus_ = 0; + commentRestrict_ = 0; + constellation_ = ""; + disableIchat_ = 0; + enableIchatImg_ = 0L; + exp_ = 0; + fanTicketCount_ = 0L; + foldStrangerChat_ = false; + followStatus_ = 0L; + hotsoonVerified_ = false; + hotsoonVerifiedReason_ = ""; + ichatRestrictType_ = 0; + idStr_ = ""; + isFollower_ = false; + isFollowing_ = false; + needProfileGuide_ = false; + payScores_ = 0L; + pushCommentStatus_ = false; + pushDigg_ = false; + pushFollow_ = false; + pushFriendAction_ = false; + pushIchat_ = false; + pushStatus_ = false; + pushVideoPost_ = false; + pushVideoRecommend_ = false; + stats_ = null; + if (statsBuilder_ != null) { + statsBuilder_.dispose(); + statsBuilder_ = null; + } + verifiedMobile_ = false; + verifiedReason_ = ""; + withCarManagementPermission_ = false; + ageRange_ = 0; + watchDurationMonth_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.internal_static_User_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User build() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User buildPartial() { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + if (bitField1_ != 0) { buildPartial1(result); } + if (bitField2_ != 0) { buildPartial2(result); } + if (bitField3_ != 0) { buildPartial3(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { + if (realTimeIconsListBuilder_ == null) { + if (((bitField0_ & 0x10000000) != 0)) { + realTimeIconsList_ = java.util.Collections.unmodifiableList(realTimeIconsList_); + bitField0_ = (bitField0_ & ~0x10000000); + } + result.realTimeIconsList_ = realTimeIconsList_; + } else { + result.realTimeIconsList_ = realTimeIconsListBuilder_.build(); + } + if (newRealTimeIconsListBuilder_ == null) { + if (((bitField0_ & 0x20000000) != 0)) { + newRealTimeIconsList_ = java.util.Collections.unmodifiableList(newRealTimeIconsList_); + bitField0_ = (bitField0_ & ~0x20000000); + } + result.newRealTimeIconsList_ = newRealTimeIconsList_; + } else { + result.newRealTimeIconsList_ = newRealTimeIconsListBuilder_.build(); + } + if (topFansListBuilder_ == null) { + if (((bitField1_ & 0x00001000) != 0)) { + topFansList_ = java.util.Collections.unmodifiableList(topFansList_); + bitField1_ = (bitField1_ & ~0x00001000); + } + result.topFansList_ = topFansList_; + } else { + result.topFansList_ = topFansListBuilder_.build(); + } + if (((bitField1_ & 0x08000000) != 0)) { + commerceWebcastConfigIdsList_.makeImmutable(); + bitField1_ = (bitField1_ & ~0x08000000); + } + result.commerceWebcastConfigIdsList_ = commerceWebcastConfigIdsList_; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.shortId_ = shortId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.nickname_ = nickname_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.gender_ = gender_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.signature_ = signature_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.level_ = level_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.birthday_ = birthday_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.telephone_ = telephone_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.avatarThumb_ = avatarThumbBuilder_ == null + ? avatarThumb_ + : avatarThumbBuilder_.build(); + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.avatarMedium_ = avatarMediumBuilder_ == null + ? avatarMedium_ + : avatarMediumBuilder_.build(); + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.avatarLarge_ = avatarLargeBuilder_ == null + ? avatarLarge_ + : avatarLargeBuilder_.build(); + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.verified_ = verified_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.experience_ = experience_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.city_ = city_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.status_ = status_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.createTime_ = createTime_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.modifyTime_ = modifyTime_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.secret_ = secret_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.shareQrcodeUri_ = shareQrcodeUri_; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.incomeSharePercent_ = incomeSharePercent_; + } + if (((from_bitField0_ & 0x00100000) != 0)) { + result.badgeImageListList_ = badgeImageListListBuilder_ == null + ? badgeImageListList_ + : badgeImageListListBuilder_.build(); + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.followInfo_ = followInfoBuilder_ == null + ? followInfo_ + : followInfoBuilder_.build(); + } + if (((from_bitField0_ & 0x00400000) != 0)) { + result.payGrade_ = payGradeBuilder_ == null + ? payGrade_ + : payGradeBuilder_.build(); + } + if (((from_bitField0_ & 0x00800000) != 0)) { + result.fansClub_ = fansClubBuilder_ == null + ? fansClub_ + : fansClubBuilder_.build(); + } + if (((from_bitField0_ & 0x01000000) != 0)) { + result.border_ = borderBuilder_ == null + ? border_ + : borderBuilder_.build(); + } + if (((from_bitField0_ & 0x02000000) != 0)) { + result.specialId_ = specialId_; + } + if (((from_bitField0_ & 0x04000000) != 0)) { + result.avatarBorder_ = avatarBorderBuilder_ == null + ? avatarBorder_ + : avatarBorderBuilder_.build(); + } + if (((from_bitField0_ & 0x08000000) != 0)) { + result.medal_ = medalBuilder_ == null + ? medal_ + : medalBuilder_.build(); + } + if (((from_bitField0_ & 0x40000000) != 0)) { + result.topVipNo_ = topVipNo_; + } + if (((from_bitField0_ & 0x80000000) != 0)) { + result.userAttr_ = userAttrBuilder_ == null + ? userAttr_ + : userAttrBuilder_.build(); + } + } + + private void buildPartial1(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { + int from_bitField1_ = bitField1_; + if (((from_bitField1_ & 0x00000001) != 0)) { + result.ownRoom_ = ownRoomBuilder_ == null + ? ownRoom_ + : ownRoomBuilder_.build(); + } + if (((from_bitField1_ & 0x00000002) != 0)) { + result.payScore_ = payScore_; + } + if (((from_bitField1_ & 0x00000004) != 0)) { + result.ticketCount_ = ticketCount_; + } + if (((from_bitField1_ & 0x00000008) != 0)) { + result.anchorInfo_ = anchorInfoBuilder_ == null + ? anchorInfo_ + : anchorInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x00000010) != 0)) { + result.linkMicStats_ = linkMicStats_; + } + if (((from_bitField1_ & 0x00000020) != 0)) { + result.displayId_ = displayId_; + } + if (((from_bitField1_ & 0x00000040) != 0)) { + result.withCommercePermission_ = withCommercePermission_; + } + if (((from_bitField1_ & 0x00000080) != 0)) { + result.withFusionShopEntry_ = withFusionShopEntry_; + } + if (((from_bitField1_ & 0x00000100) != 0)) { + result.totalRechargeDiamondCount_ = totalRechargeDiamondCount_; + } + if (((from_bitField1_ & 0x00000200) != 0)) { + result.webcastAnchorLevel_ = webcastAnchorLevelBuilder_ == null + ? webcastAnchorLevel_ + : webcastAnchorLevelBuilder_.build(); + } + if (((from_bitField1_ & 0x00000400) != 0)) { + result.verifiedContent_ = verifiedContent_; + } + if (((from_bitField1_ & 0x00000800) != 0)) { + result.authorStats_ = authorStatsBuilder_ == null + ? authorStats_ + : authorStatsBuilder_.build(); + } + if (((from_bitField1_ & 0x00002000) != 0)) { + result.secUid_ = secUid_; + } + if (((from_bitField1_ & 0x00004000) != 0)) { + result.userRole_ = userRole_; + } + if (((from_bitField1_ & 0x00008000) != 0)) { + result.xiguaInfo_ = xiguaInfoBuilder_ == null + ? xiguaInfo_ + : xiguaInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x00010000) != 0)) { + result.activityReward_ = activityRewardBuilder_ == null + ? activityReward_ + : activityRewardBuilder_.build(); + } + if (((from_bitField1_ & 0x00020000) != 0)) { + result.nobleInfo_ = nobleInfoBuilder_ == null + ? nobleInfo_ + : nobleInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x00040000) != 0)) { + result.brotherhoodInfo_ = brotherhoodInfoBuilder_ == null + ? brotherhoodInfo_ + : brotherhoodInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x00080000) != 0)) { + result.personalCard_ = personalCardBuilder_ == null + ? personalCard_ + : personalCardBuilder_.build(); + } + if (((from_bitField1_ & 0x00100000) != 0)) { + result.authenticationInfo_ = authenticationInfoBuilder_ == null + ? authenticationInfo_ + : authenticationInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x00200000) != 0)) { + result.authorizationInfo_ = authorizationInfo_; + } + if (((from_bitField1_ & 0x00400000) != 0)) { + result.adversaryAuthorizationInfo_ = adversaryAuthorizationInfo_; + } + if (((from_bitField1_ & 0x00800000) != 0)) { + result.poiInfo_ = poiInfoBuilder_ == null + ? poiInfo_ + : poiInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x01000000) != 0)) { + result.mediaBadgeImageListList_ = mediaBadgeImageListListBuilder_ == null + ? mediaBadgeImageListList_ + : mediaBadgeImageListListBuilder_.build(); + } + if (((from_bitField1_ & 0x02000000) != 0)) { + result.adversaryUserStatus_ = adversaryUserStatus_; + } + if (((from_bitField1_ & 0x04000000) != 0)) { + result.userVipInfo_ = userVipInfoBuilder_ == null + ? userVipInfo_ + : userVipInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x10000000) != 0)) { + result.badgeImageListV2List_ = badgeImageListV2ListBuilder_ == null + ? badgeImageListV2List_ + : badgeImageListV2ListBuilder_.build(); + } + if (((from_bitField1_ & 0x20000000) != 0)) { + result.locationCity_ = locationCity_; + } + if (((from_bitField1_ & 0x40000000) != 0)) { + result.fansGroupInfo_ = fansGroupInfoBuilder_ == null + ? fansGroupInfo_ + : fansGroupInfoBuilder_.build(); + } + if (((from_bitField1_ & 0x80000000) != 0)) { + result.remarkName_ = remarkName_; + } + } + + private void buildPartial2(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { + int from_bitField2_ = bitField2_; + if (((from_bitField2_ & 0x00000001) != 0)) { + result.mysteryMan_ = mysteryMan_; + } + if (((from_bitField2_ & 0x00000002) != 0)) { + result.webRid_ = webRid_; + } + if (((from_bitField2_ & 0x00000004) != 0)) { + result.desensitizedNickname_ = desensitizedNickname_; + } + if (((from_bitField2_ & 0x00000008) != 0)) { + result.jAccreditInfo_ = jAccreditInfoBuilder_ == null + ? jAccreditInfo_ + : jAccreditInfoBuilder_.build(); + } + if (((from_bitField2_ & 0x00000010) != 0)) { + result.subscribe_ = subscribeBuilder_ == null + ? subscribe_ + : subscribeBuilder_.build(); + } + if (((from_bitField2_ & 0x00000020) != 0)) { + result.isAnonymous_ = isAnonymous_; + } + if (((from_bitField2_ & 0x00000040) != 0)) { + result.consumeDiamondLevel_ = consumeDiamondLevel_; + } + if (((from_bitField2_ & 0x00000080) != 0)) { + result.webcastUid_ = webcastUid_; + } + if (((from_bitField2_ & 0x00000100) != 0)) { + result.profileStyleParams_ = profileStyleParamsBuilder_ == null + ? profileStyleParams_ + : profileStyleParamsBuilder_.build(); + } + if (((from_bitField2_ & 0x00000200) != 0)) { + result.userDressInfo_ = userDressInfoBuilder_ == null + ? userDressInfo_ + : userDressInfoBuilder_.build(); + } + if (((from_bitField2_ & 0x00000400) != 0)) { + result.allowBeLocated_ = allowBeLocated_; + } + if (((from_bitField2_ & 0x00000800) != 0)) { + result.allowFindByContacts_ = allowFindByContacts_; + } + if (((from_bitField2_ & 0x00001000) != 0)) { + result.allowOthersDownloadVideo_ = allowOthersDownloadVideo_; + } + if (((from_bitField2_ & 0x00002000) != 0)) { + result.allowOthersDownloadWhenSharingVideo_ = allowOthersDownloadWhenSharingVideo_; + } + if (((from_bitField2_ & 0x00004000) != 0)) { + result.allowShareShowProfile_ = allowShareShowProfile_; + } + if (((from_bitField2_ & 0x00008000) != 0)) { + result.allowShowInGossip_ = allowShowInGossip_; + } + if (((from_bitField2_ & 0x00010000) != 0)) { + result.allowShowMyAction_ = allowShowMyAction_; + } + if (((from_bitField2_ & 0x00020000) != 0)) { + result.allowStrangeComment_ = allowStrangeComment_; + } + if (((from_bitField2_ & 0x00040000) != 0)) { + result.allowUnfollowerComment_ = allowUnfollowerComment_; + } + if (((from_bitField2_ & 0x00080000) != 0)) { + result.allowUseLinkmic_ = allowUseLinkmic_; + } + if (((from_bitField2_ & 0x00100000) != 0)) { + result.anchorLevel_ = anchorLevelBuilder_ == null + ? anchorLevel_ + : anchorLevelBuilder_.build(); + } + if (((from_bitField2_ & 0x00200000) != 0)) { + result.avatarJpg_ = avatarJpgBuilder_ == null + ? avatarJpg_ + : avatarJpgBuilder_.build(); + } + if (((from_bitField2_ & 0x00400000) != 0)) { + result.bgImgUrl_ = bgImgUrl_; + } + if (((from_bitField2_ & 0x00800000) != 0)) { + result.birthdayDescription_ = birthdayDescription_; + } + if (((from_bitField2_ & 0x01000000) != 0)) { + result.birthdayValid_ = birthdayValid_; + } + if (((from_bitField2_ & 0x02000000) != 0)) { + result.blockStatus_ = blockStatus_; + } + if (((from_bitField2_ & 0x04000000) != 0)) { + result.commentRestrict_ = commentRestrict_; + } + if (((from_bitField2_ & 0x08000000) != 0)) { + result.constellation_ = constellation_; + } + if (((from_bitField2_ & 0x10000000) != 0)) { + result.disableIchat_ = disableIchat_; + } + if (((from_bitField2_ & 0x20000000) != 0)) { + result.enableIchatImg_ = enableIchatImg_; + } + if (((from_bitField2_ & 0x40000000) != 0)) { + result.exp_ = exp_; + } + if (((from_bitField2_ & 0x80000000) != 0)) { + result.fanTicketCount_ = fanTicketCount_; + } + } + + private void buildPartial3(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User result) { + int from_bitField3_ = bitField3_; + if (((from_bitField3_ & 0x00000001) != 0)) { + result.foldStrangerChat_ = foldStrangerChat_; + } + if (((from_bitField3_ & 0x00000002) != 0)) { + result.followStatus_ = followStatus_; + } + if (((from_bitField3_ & 0x00000004) != 0)) { + result.hotsoonVerified_ = hotsoonVerified_; + } + if (((from_bitField3_ & 0x00000008) != 0)) { + result.hotsoonVerifiedReason_ = hotsoonVerifiedReason_; + } + if (((from_bitField3_ & 0x00000010) != 0)) { + result.ichatRestrictType_ = ichatRestrictType_; + } + if (((from_bitField3_ & 0x00000020) != 0)) { + result.idStr_ = idStr_; + } + if (((from_bitField3_ & 0x00000040) != 0)) { + result.isFollower_ = isFollower_; + } + if (((from_bitField3_ & 0x00000080) != 0)) { + result.isFollowing_ = isFollowing_; + } + if (((from_bitField3_ & 0x00000100) != 0)) { + result.needProfileGuide_ = needProfileGuide_; + } + if (((from_bitField3_ & 0x00000200) != 0)) { + result.payScores_ = payScores_; + } + if (((from_bitField3_ & 0x00000400) != 0)) { + result.pushCommentStatus_ = pushCommentStatus_; + } + if (((from_bitField3_ & 0x00000800) != 0)) { + result.pushDigg_ = pushDigg_; + } + if (((from_bitField3_ & 0x00001000) != 0)) { + result.pushFollow_ = pushFollow_; + } + if (((from_bitField3_ & 0x00002000) != 0)) { + result.pushFriendAction_ = pushFriendAction_; + } + if (((from_bitField3_ & 0x00004000) != 0)) { + result.pushIchat_ = pushIchat_; + } + if (((from_bitField3_ & 0x00008000) != 0)) { + result.pushStatus_ = pushStatus_; + } + if (((from_bitField3_ & 0x00010000) != 0)) { + result.pushVideoPost_ = pushVideoPost_; + } + if (((from_bitField3_ & 0x00020000) != 0)) { + result.pushVideoRecommend_ = pushVideoRecommend_; + } + if (((from_bitField3_ & 0x00040000) != 0)) { + result.stats_ = statsBuilder_ == null + ? stats_ + : statsBuilder_.build(); + } + if (((from_bitField3_ & 0x00080000) != 0)) { + result.verifiedMobile_ = verifiedMobile_; + } + if (((from_bitField3_ & 0x00100000) != 0)) { + result.verifiedReason_ = verifiedReason_; + } + if (((from_bitField3_ & 0x00200000) != 0)) { + result.withCarManagementPermission_ = withCarManagementPermission_; + } + if (((from_bitField3_ & 0x00400000) != 0)) { + result.ageRange_ = ageRange_; + } + if (((from_bitField3_ & 0x00800000) != 0)) { + result.watchDurationMonth_ = watchDurationMonth_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User) { + return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User other) { + if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()) return this; + if (other.getId() != 0L) { + setId(other.getId()); + } + if (other.getShortId() != 0L) { + setShortId(other.getShortId()); + } + if (!other.getNickname().isEmpty()) { + nickname_ = other.nickname_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getGender() != 0) { + setGender(other.getGender()); + } + if (!other.getSignature().isEmpty()) { + signature_ = other.signature_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.getLevel() != 0) { + setLevel(other.getLevel()); + } + if (other.getBirthday() != 0L) { + setBirthday(other.getBirthday()); + } + if (!other.getTelephone().isEmpty()) { + telephone_ = other.telephone_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (other.hasAvatarThumb()) { + mergeAvatarThumb(other.getAvatarThumb()); + } + if (other.hasAvatarMedium()) { + mergeAvatarMedium(other.getAvatarMedium()); + } + if (other.hasAvatarLarge()) { + mergeAvatarLarge(other.getAvatarLarge()); + } + if (other.getVerified() != false) { + setVerified(other.getVerified()); + } + if (other.getExperience() != 0) { + setExperience(other.getExperience()); + } + if (!other.getCity().isEmpty()) { + city_ = other.city_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (other.getStatus() != 0) { + setStatus(other.getStatus()); + } + if (other.getCreateTime() != 0L) { + setCreateTime(other.getCreateTime()); + } + if (other.getModifyTime() != 0L) { + setModifyTime(other.getModifyTime()); + } + if (other.getSecret() != 0) { + setSecret(other.getSecret()); + } + if (!other.getShareQrcodeUri().isEmpty()) { + shareQrcodeUri_ = other.shareQrcodeUri_; + bitField0_ |= 0x00040000; + onChanged(); + } + if (other.getIncomeSharePercent() != 0) { + setIncomeSharePercent(other.getIncomeSharePercent()); + } + if (other.hasBadgeImageListList()) { + mergeBadgeImageListList(other.getBadgeImageListList()); + } + if (other.hasFollowInfo()) { + mergeFollowInfo(other.getFollowInfo()); + } + if (other.hasPayGrade()) { + mergePayGrade(other.getPayGrade()); + } + if (other.hasFansClub()) { + mergeFansClub(other.getFansClub()); + } + if (other.hasBorder()) { + mergeBorder(other.getBorder()); + } + if (!other.getSpecialId().isEmpty()) { + specialId_ = other.specialId_; + bitField0_ |= 0x02000000; + onChanged(); + } + if (other.hasAvatarBorder()) { + mergeAvatarBorder(other.getAvatarBorder()); + } + if (other.hasMedal()) { + mergeMedal(other.getMedal()); + } + if (realTimeIconsListBuilder_ == null) { + if (!other.realTimeIconsList_.isEmpty()) { + if (realTimeIconsList_.isEmpty()) { + realTimeIconsList_ = other.realTimeIconsList_; + bitField0_ = (bitField0_ & ~0x10000000); + } else { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.addAll(other.realTimeIconsList_); + } + onChanged(); + } + } else { + if (!other.realTimeIconsList_.isEmpty()) { + if (realTimeIconsListBuilder_.isEmpty()) { + realTimeIconsListBuilder_.dispose(); + realTimeIconsListBuilder_ = null; + realTimeIconsList_ = other.realTimeIconsList_; + bitField0_ = (bitField0_ & ~0x10000000); + realTimeIconsListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getRealTimeIconsListFieldBuilder() : null; + } else { + realTimeIconsListBuilder_.addAllMessages(other.realTimeIconsList_); + } + } + } + if (newRealTimeIconsListBuilder_ == null) { + if (!other.newRealTimeIconsList_.isEmpty()) { + if (newRealTimeIconsList_.isEmpty()) { + newRealTimeIconsList_ = other.newRealTimeIconsList_; + bitField0_ = (bitField0_ & ~0x20000000); + } else { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.addAll(other.newRealTimeIconsList_); + } + onChanged(); + } + } else { + if (!other.newRealTimeIconsList_.isEmpty()) { + if (newRealTimeIconsListBuilder_.isEmpty()) { + newRealTimeIconsListBuilder_.dispose(); + newRealTimeIconsListBuilder_ = null; + newRealTimeIconsList_ = other.newRealTimeIconsList_; + bitField0_ = (bitField0_ & ~0x20000000); + newRealTimeIconsListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getNewRealTimeIconsListFieldBuilder() : null; + } else { + newRealTimeIconsListBuilder_.addAllMessages(other.newRealTimeIconsList_); + } + } + } + if (other.getTopVipNo() != 0L) { + setTopVipNo(other.getTopVipNo()); + } + if (other.hasUserAttr()) { + mergeUserAttr(other.getUserAttr()); + } + if (other.hasOwnRoom()) { + mergeOwnRoom(other.getOwnRoom()); + } + if (other.getPayScore() != 0L) { + setPayScore(other.getPayScore()); + } + if (other.getTicketCount() != 0L) { + setTicketCount(other.getTicketCount()); + } + if (other.hasAnchorInfo()) { + mergeAnchorInfo(other.getAnchorInfo()); + } + if (other.getLinkMicStats() != 0) { + setLinkMicStats(other.getLinkMicStats()); + } + if (!other.getDisplayId().isEmpty()) { + displayId_ = other.displayId_; + bitField1_ |= 0x00000020; + onChanged(); + } + if (other.getWithCommercePermission() != false) { + setWithCommercePermission(other.getWithCommercePermission()); + } + if (other.getWithFusionShopEntry() != false) { + setWithFusionShopEntry(other.getWithFusionShopEntry()); + } + if (other.getTotalRechargeDiamondCount() != 0L) { + setTotalRechargeDiamondCount(other.getTotalRechargeDiamondCount()); + } + if (other.hasWebcastAnchorLevel()) { + mergeWebcastAnchorLevel(other.getWebcastAnchorLevel()); + } + if (!other.getVerifiedContent().isEmpty()) { + verifiedContent_ = other.verifiedContent_; + bitField1_ |= 0x00000400; + onChanged(); + } + if (other.hasAuthorStats()) { + mergeAuthorStats(other.getAuthorStats()); + } + if (topFansListBuilder_ == null) { + if (!other.topFansList_.isEmpty()) { + if (topFansList_.isEmpty()) { + topFansList_ = other.topFansList_; + bitField1_ = (bitField1_ & ~0x00001000); + } else { + ensureTopFansListIsMutable(); + topFansList_.addAll(other.topFansList_); + } + onChanged(); + } + } else { + if (!other.topFansList_.isEmpty()) { + if (topFansListBuilder_.isEmpty()) { + topFansListBuilder_.dispose(); + topFansListBuilder_ = null; + topFansList_ = other.topFansList_; + bitField1_ = (bitField1_ & ~0x00001000); + topFansListBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getTopFansListFieldBuilder() : null; + } else { + topFansListBuilder_.addAllMessages(other.topFansList_); + } + } + } + if (!other.getSecUid().isEmpty()) { + secUid_ = other.secUid_; + bitField1_ |= 0x00002000; + onChanged(); + } + if (other.getUserRole() != 0) { + setUserRole(other.getUserRole()); + } + if (other.hasXiguaInfo()) { + mergeXiguaInfo(other.getXiguaInfo()); + } + if (other.hasActivityReward()) { + mergeActivityReward(other.getActivityReward()); + } + if (other.hasNobleInfo()) { + mergeNobleInfo(other.getNobleInfo()); + } + if (other.hasBrotherhoodInfo()) { + mergeBrotherhoodInfo(other.getBrotherhoodInfo()); + } + if (other.hasPersonalCard()) { + mergePersonalCard(other.getPersonalCard()); + } + if (other.hasAuthenticationInfo()) { + mergeAuthenticationInfo(other.getAuthenticationInfo()); + } + if (other.getAuthorizationInfo() != 0) { + setAuthorizationInfo(other.getAuthorizationInfo()); + } + if (other.getAdversaryAuthorizationInfo() != 0) { + setAdversaryAuthorizationInfo(other.getAdversaryAuthorizationInfo()); + } + if (other.hasPoiInfo()) { + mergePoiInfo(other.getPoiInfo()); + } + if (other.hasMediaBadgeImageListList()) { + mergeMediaBadgeImageListList(other.getMediaBadgeImageListList()); + } + if (other.getAdversaryUserStatus() != 0) { + setAdversaryUserStatus(other.getAdversaryUserStatus()); + } + if (other.hasUserVipInfo()) { + mergeUserVipInfo(other.getUserVipInfo()); + } + if (!other.commerceWebcastConfigIdsList_.isEmpty()) { + if (commerceWebcastConfigIdsList_.isEmpty()) { + commerceWebcastConfigIdsList_ = other.commerceWebcastConfigIdsList_; + bitField1_ = (bitField1_ & ~0x08000000); + } else { + ensureCommerceWebcastConfigIdsListIsMutable(); + commerceWebcastConfigIdsList_.addAll(other.commerceWebcastConfigIdsList_); + } + onChanged(); + } + if (other.hasBadgeImageListV2List()) { + mergeBadgeImageListV2List(other.getBadgeImageListV2List()); + } + if (!other.getLocationCity().isEmpty()) { + locationCity_ = other.locationCity_; + bitField1_ |= 0x20000000; + onChanged(); + } + if (other.hasFansGroupInfo()) { + mergeFansGroupInfo(other.getFansGroupInfo()); + } + if (!other.getRemarkName().isEmpty()) { + remarkName_ = other.remarkName_; + bitField1_ |= 0x80000000; + onChanged(); + } + if (other.getMysteryMan() != 0) { + setMysteryMan(other.getMysteryMan()); + } + if (!other.getWebRid().isEmpty()) { + webRid_ = other.webRid_; + bitField2_ |= 0x00000002; + onChanged(); + } + if (!other.getDesensitizedNickname().isEmpty()) { + desensitizedNickname_ = other.desensitizedNickname_; + bitField2_ |= 0x00000004; + onChanged(); + } + if (other.hasJAccreditInfo()) { + mergeJAccreditInfo(other.getJAccreditInfo()); + } + if (other.hasSubscribe()) { + mergeSubscribe(other.getSubscribe()); + } + if (other.getIsAnonymous() != false) { + setIsAnonymous(other.getIsAnonymous()); + } + if (other.getConsumeDiamondLevel() != 0) { + setConsumeDiamondLevel(other.getConsumeDiamondLevel()); + } + if (!other.getWebcastUid().isEmpty()) { + webcastUid_ = other.webcastUid_; + bitField2_ |= 0x00000080; + onChanged(); + } + if (other.hasProfileStyleParams()) { + mergeProfileStyleParams(other.getProfileStyleParams()); + } + if (other.hasUserDressInfo()) { + mergeUserDressInfo(other.getUserDressInfo()); + } + if (other.getAllowBeLocated() != false) { + setAllowBeLocated(other.getAllowBeLocated()); + } + if (other.getAllowFindByContacts() != false) { + setAllowFindByContacts(other.getAllowFindByContacts()); + } + if (other.getAllowOthersDownloadVideo() != false) { + setAllowOthersDownloadVideo(other.getAllowOthersDownloadVideo()); + } + if (other.getAllowOthersDownloadWhenSharingVideo() != false) { + setAllowOthersDownloadWhenSharingVideo(other.getAllowOthersDownloadWhenSharingVideo()); + } + if (other.getAllowShareShowProfile() != false) { + setAllowShareShowProfile(other.getAllowShareShowProfile()); + } + if (other.getAllowShowInGossip() != false) { + setAllowShowInGossip(other.getAllowShowInGossip()); + } + if (other.getAllowShowMyAction() != false) { + setAllowShowMyAction(other.getAllowShowMyAction()); + } + if (other.getAllowStrangeComment() != false) { + setAllowStrangeComment(other.getAllowStrangeComment()); + } + if (other.getAllowUnfollowerComment() != false) { + setAllowUnfollowerComment(other.getAllowUnfollowerComment()); + } + if (other.getAllowUseLinkmic() != false) { + setAllowUseLinkmic(other.getAllowUseLinkmic()); + } + if (other.hasAnchorLevel()) { + mergeAnchorLevel(other.getAnchorLevel()); + } + if (other.hasAvatarJpg()) { + mergeAvatarJpg(other.getAvatarJpg()); + } + if (!other.getBgImgUrl().isEmpty()) { + bgImgUrl_ = other.bgImgUrl_; + bitField2_ |= 0x00400000; + onChanged(); + } + if (!other.getBirthdayDescription().isEmpty()) { + birthdayDescription_ = other.birthdayDescription_; + bitField2_ |= 0x00800000; + onChanged(); + } + if (other.getBirthdayValid() != false) { + setBirthdayValid(other.getBirthdayValid()); + } + if (other.getBlockStatus() != 0) { + setBlockStatus(other.getBlockStatus()); + } + if (other.getCommentRestrict() != 0) { + setCommentRestrict(other.getCommentRestrict()); + } + if (!other.getConstellation().isEmpty()) { + constellation_ = other.constellation_; + bitField2_ |= 0x08000000; + onChanged(); + } + if (other.getDisableIchat() != 0) { + setDisableIchat(other.getDisableIchat()); + } + if (other.getEnableIchatImg() != 0L) { + setEnableIchatImg(other.getEnableIchatImg()); + } + if (other.getExp() != 0) { + setExp(other.getExp()); + } + if (other.getFanTicketCount() != 0L) { + setFanTicketCount(other.getFanTicketCount()); + } + if (other.getFoldStrangerChat() != false) { + setFoldStrangerChat(other.getFoldStrangerChat()); + } + if (other.getFollowStatus() != 0L) { + setFollowStatus(other.getFollowStatus()); + } + if (other.getHotsoonVerified() != false) { + setHotsoonVerified(other.getHotsoonVerified()); + } + if (!other.getHotsoonVerifiedReason().isEmpty()) { + hotsoonVerifiedReason_ = other.hotsoonVerifiedReason_; + bitField3_ |= 0x00000008; + onChanged(); + } + if (other.getIchatRestrictType() != 0) { + setIchatRestrictType(other.getIchatRestrictType()); + } + if (!other.getIdStr().isEmpty()) { + idStr_ = other.idStr_; + bitField3_ |= 0x00000020; + onChanged(); + } + if (other.getIsFollower() != false) { + setIsFollower(other.getIsFollower()); + } + if (other.getIsFollowing() != false) { + setIsFollowing(other.getIsFollowing()); + } + if (other.getNeedProfileGuide() != false) { + setNeedProfileGuide(other.getNeedProfileGuide()); + } + if (other.getPayScores() != 0L) { + setPayScores(other.getPayScores()); + } + if (other.getPushCommentStatus() != false) { + setPushCommentStatus(other.getPushCommentStatus()); + } + if (other.getPushDigg() != false) { + setPushDigg(other.getPushDigg()); + } + if (other.getPushFollow() != false) { + setPushFollow(other.getPushFollow()); + } + if (other.getPushFriendAction() != false) { + setPushFriendAction(other.getPushFriendAction()); + } + if (other.getPushIchat() != false) { + setPushIchat(other.getPushIchat()); + } + if (other.getPushStatus() != false) { + setPushStatus(other.getPushStatus()); + } + if (other.getPushVideoPost() != false) { + setPushVideoPost(other.getPushVideoPost()); + } + if (other.getPushVideoRecommend() != false) { + setPushVideoRecommend(other.getPushVideoRecommend()); + } + if (other.hasStats()) { + mergeStats(other.getStats()); + } + if (other.getVerifiedMobile() != false) { + setVerifiedMobile(other.getVerifiedMobile()); + } + if (!other.getVerifiedReason().isEmpty()) { + verifiedReason_ = other.verifiedReason_; + bitField3_ |= 0x00100000; + onChanged(); + } + if (other.getWithCarManagementPermission() != false) { + setWithCarManagementPermission(other.getWithCarManagementPermission()); + } + if (other.getAgeRange() != 0) { + setAgeRange(other.getAgeRange()); + } + if (other.getWatchDurationMonth() != 0L) { + setWatchDurationMonth(other.getWatchDurationMonth()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + id_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + shortId_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + nickname_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + gender_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + signature_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + level_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + birthday_ = input.readUInt64(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 66: { + telephone_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: { + input.readMessage( + getAvatarThumbFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: { + input.readMessage( + getAvatarMediumFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: { + input.readMessage( + getAvatarLargeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 96: { + verified_ = input.readBool(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 104: { + experience_ = input.readInt32(); + bitField0_ |= 0x00001000; + break; + } // case 104 + case 114: { + city_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 120: { + status_ = input.readInt32(); + bitField0_ |= 0x00004000; + break; + } // case 120 + case 128: { + createTime_ = input.readInt64(); + bitField0_ |= 0x00008000; + break; + } // case 128 + case 136: { + modifyTime_ = input.readInt64(); + bitField0_ |= 0x00010000; + break; + } // case 136 + case 144: { + secret_ = input.readInt32(); + bitField0_ |= 0x00020000; + break; + } // case 144 + case 154: { + shareQrcodeUri_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00040000; + break; + } // case 154 + case 160: { + incomeSharePercent_ = input.readInt32(); + bitField0_ |= 0x00080000; + break; + } // case 160 + case 170: { + input.readMessage( + getBadgeImageListListFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00100000; + break; + } // case 170 + case 178: { + input.readMessage( + getFollowInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00200000; + break; + } // case 178 + case 186: { + input.readMessage( + getPayGradeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00400000; + break; + } // case 186 + case 194: { + input.readMessage( + getFansClubFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00800000; + break; + } // case 194 + case 202: { + input.readMessage( + getBorderFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x01000000; + break; + } // case 202 + case 210: { + specialId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x02000000; + break; + } // case 210 + case 218: { + input.readMessage( + getAvatarBorderFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x04000000; + break; + } // case 218 + case 226: { + input.readMessage( + getMedalFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x08000000; + break; + } // case 226 + case 234: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.parser(), + extensionRegistry); + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.add(m); + } else { + realTimeIconsListBuilder_.addMessage(m); + } + break; + } // case 234 + case 242: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.parser(), + extensionRegistry); + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.add(m); + } else { + newRealTimeIconsListBuilder_.addMessage(m); + } + break; + } // case 242 + case 248: { + topVipNo_ = input.readInt64(); + bitField0_ |= 0x40000000; + break; + } // case 248 + case 258: { + input.readMessage( + getUserAttrFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x80000000; + break; + } // case 258 + case 266: { + input.readMessage( + getOwnRoomFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000001; + break; + } // case 266 + case 272: { + payScore_ = input.readInt64(); + bitField1_ |= 0x00000002; + break; + } // case 272 + case 280: { + ticketCount_ = input.readInt64(); + bitField1_ |= 0x00000004; + break; + } // case 280 + case 290: { + input.readMessage( + getAnchorInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000008; + break; + } // case 290 + case 296: { + linkMicStats_ = input.readInt32(); + bitField1_ |= 0x00000010; + break; + } // case 296 + case 306: { + displayId_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00000020; + break; + } // case 306 + case 312: { + withCommercePermission_ = input.readBool(); + bitField1_ |= 0x00000040; + break; + } // case 312 + case 320: { + withFusionShopEntry_ = input.readBool(); + bitField1_ |= 0x00000080; + break; + } // case 320 + case 328: { + totalRechargeDiamondCount_ = input.readInt64(); + bitField1_ |= 0x00000100; + break; + } // case 328 + case 338: { + input.readMessage( + getWebcastAnchorLevelFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000200; + break; + } // case 338 + case 346: { + verifiedContent_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00000400; + break; + } // case 346 + case 354: { + input.readMessage( + getAuthorStatsFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00000800; + break; + } // case 354 + case 362: { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User m = + input.readMessage( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.parser(), + extensionRegistry); + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + topFansList_.add(m); + } else { + topFansListBuilder_.addMessage(m); + } + break; + } // case 362 + case 370: { + secUid_ = input.readStringRequireUtf8(); + bitField1_ |= 0x00002000; + break; + } // case 370 + case 376: { + userRole_ = input.readInt32(); + bitField1_ |= 0x00004000; + break; + } // case 376 + case 386: { + input.readMessage( + getXiguaInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00008000; + break; + } // case 386 + case 394: { + input.readMessage( + getActivityRewardFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00010000; + break; + } // case 394 + case 402: { + input.readMessage( + getNobleInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00020000; + break; + } // case 402 + case 410: { + input.readMessage( + getBrotherhoodInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00040000; + break; + } // case 410 + case 418: { + input.readMessage( + getPersonalCardFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00080000; + break; + } // case 418 + case 426: { + input.readMessage( + getAuthenticationInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00100000; + break; + } // case 426 + case 432: { + authorizationInfo_ = input.readInt32(); + bitField1_ |= 0x00200000; + break; + } // case 432 + case 440: { + adversaryAuthorizationInfo_ = input.readInt32(); + bitField1_ |= 0x00400000; + break; + } // case 440 + case 450: { + input.readMessage( + getPoiInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x00800000; + break; + } // case 450 + case 458: { + input.readMessage( + getMediaBadgeImageListListFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x01000000; + break; + } // case 458 + case 464: { + adversaryUserStatus_ = input.readInt32(); + bitField1_ |= 0x02000000; + break; + } // case 464 + case 474: { + input.readMessage( + getUserVipInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x04000000; + break; + } // case 474 + case 480: { + long v = input.readInt64(); + ensureCommerceWebcastConfigIdsListIsMutable(); + commerceWebcastConfigIdsList_.addLong(v); + break; + } // case 480 + case 482: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureCommerceWebcastConfigIdsListIsMutable(); + while (input.getBytesUntilLimit() > 0) { + commerceWebcastConfigIdsList_.addLong(input.readInt64()); + } + input.popLimit(limit); + break; + } // case 482 + case 490: { + input.readMessage( + getBadgeImageListV2ListFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x10000000; + break; + } // case 490 + case 506: { + locationCity_ = input.readStringRequireUtf8(); + bitField1_ |= 0x20000000; + break; + } // case 506 + case 514: { + input.readMessage( + getFansGroupInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField1_ |= 0x40000000; + break; + } // case 514 + case 522: { + remarkName_ = input.readStringRequireUtf8(); + bitField1_ |= 0x80000000; + break; + } // case 522 + case 528: { + mysteryMan_ = input.readInt32(); + bitField2_ |= 0x00000001; + break; + } // case 528 + case 538: { + webRid_ = input.readStringRequireUtf8(); + bitField2_ |= 0x00000002; + break; + } // case 538 + case 546: { + desensitizedNickname_ = input.readStringRequireUtf8(); + bitField2_ |= 0x00000004; + break; + } // case 546 + case 554: { + input.readMessage( + getJAccreditInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00000008; + break; + } // case 554 + case 562: { + input.readMessage( + getSubscribeFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00000010; + break; + } // case 562 + case 568: { + isAnonymous_ = input.readBool(); + bitField2_ |= 0x00000020; + break; + } // case 568 + case 576: { + consumeDiamondLevel_ = input.readInt32(); + bitField2_ |= 0x00000040; + break; + } // case 576 + case 586: { + webcastUid_ = input.readStringRequireUtf8(); + bitField2_ |= 0x00000080; + break; + } // case 586 + case 594: { + input.readMessage( + getProfileStyleParamsFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00000100; + break; + } // case 594 + case 602: { + input.readMessage( + getUserDressInfoFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00000200; + break; + } // case 602 + case 8008: { + allowBeLocated_ = input.readBool(); + bitField2_ |= 0x00000400; + break; + } // case 8008 + case 8016: { + allowFindByContacts_ = input.readBool(); + bitField2_ |= 0x00000800; + break; + } // case 8016 + case 8024: { + allowOthersDownloadVideo_ = input.readBool(); + bitField2_ |= 0x00001000; + break; + } // case 8024 + case 8032: { + allowOthersDownloadWhenSharingVideo_ = input.readBool(); + bitField2_ |= 0x00002000; + break; + } // case 8032 + case 8040: { + allowShareShowProfile_ = input.readBool(); + bitField2_ |= 0x00004000; + break; + } // case 8040 + case 8048: { + allowShowInGossip_ = input.readBool(); + bitField2_ |= 0x00008000; + break; + } // case 8048 + case 8056: { + allowShowMyAction_ = input.readBool(); + bitField2_ |= 0x00010000; + break; + } // case 8056 + case 8064: { + allowStrangeComment_ = input.readBool(); + bitField2_ |= 0x00020000; + break; + } // case 8064 + case 8072: { + allowUnfollowerComment_ = input.readBool(); + bitField2_ |= 0x00040000; + break; + } // case 8072 + case 8080: { + allowUseLinkmic_ = input.readBool(); + bitField2_ |= 0x00080000; + break; + } // case 8080 + case 8090: { + input.readMessage( + getAnchorLevelFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00100000; + break; + } // case 8090 + case 8098: { + input.readMessage( + getAvatarJpgFieldBuilder().getBuilder(), + extensionRegistry); + bitField2_ |= 0x00200000; + break; + } // case 8098 + case 8106: { + bgImgUrl_ = input.readStringRequireUtf8(); + bitField2_ |= 0x00400000; + break; + } // case 8106 + case 8114: { + birthdayDescription_ = input.readStringRequireUtf8(); + bitField2_ |= 0x00800000; + break; + } // case 8114 + case 8120: { + birthdayValid_ = input.readBool(); + bitField2_ |= 0x01000000; + break; + } // case 8120 + case 8128: { + blockStatus_ = input.readInt32(); + bitField2_ |= 0x02000000; + break; + } // case 8128 + case 8136: { + commentRestrict_ = input.readInt32(); + bitField2_ |= 0x04000000; + break; + } // case 8136 + case 8146: { + constellation_ = input.readStringRequireUtf8(); + bitField2_ |= 0x08000000; + break; + } // case 8146 + case 8152: { + disableIchat_ = input.readInt32(); + bitField2_ |= 0x10000000; + break; + } // case 8152 + case 8160: { + enableIchatImg_ = input.readInt64(); + bitField2_ |= 0x20000000; + break; + } // case 8160 + case 8168: { + exp_ = input.readInt32(); + bitField2_ |= 0x40000000; + break; + } // case 8168 + case 8176: { + fanTicketCount_ = input.readInt64(); + bitField2_ |= 0x80000000; + break; + } // case 8176 + case 8184: { + foldStrangerChat_ = input.readBool(); + bitField3_ |= 0x00000001; + break; + } // case 8184 + case 8192: { + followStatus_ = input.readInt64(); + bitField3_ |= 0x00000002; + break; + } // case 8192 + case 8200: { + hotsoonVerified_ = input.readBool(); + bitField3_ |= 0x00000004; + break; + } // case 8200 + case 8210: { + hotsoonVerifiedReason_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00000008; + break; + } // case 8210 + case 8216: { + ichatRestrictType_ = input.readInt32(); + bitField3_ |= 0x00000010; + break; + } // case 8216 + case 8226: { + idStr_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00000020; + break; + } // case 8226 + case 8232: { + isFollower_ = input.readBool(); + bitField3_ |= 0x00000040; + break; + } // case 8232 + case 8240: { + isFollowing_ = input.readBool(); + bitField3_ |= 0x00000080; + break; + } // case 8240 + case 8248: { + needProfileGuide_ = input.readBool(); + bitField3_ |= 0x00000100; + break; + } // case 8248 + case 8256: { + payScores_ = input.readInt64(); + bitField3_ |= 0x00000200; + break; + } // case 8256 + case 8264: { + pushCommentStatus_ = input.readBool(); + bitField3_ |= 0x00000400; + break; + } // case 8264 + case 8272: { + pushDigg_ = input.readBool(); + bitField3_ |= 0x00000800; + break; + } // case 8272 + case 8280: { + pushFollow_ = input.readBool(); + bitField3_ |= 0x00001000; + break; + } // case 8280 + case 8288: { + pushFriendAction_ = input.readBool(); + bitField3_ |= 0x00002000; + break; + } // case 8288 + case 8296: { + pushIchat_ = input.readBool(); + bitField3_ |= 0x00004000; + break; + } // case 8296 + case 8304: { + pushStatus_ = input.readBool(); + bitField3_ |= 0x00008000; + break; + } // case 8304 + case 8312: { + pushVideoPost_ = input.readBool(); + bitField3_ |= 0x00010000; + break; + } // case 8312 + case 8320: { + pushVideoRecommend_ = input.readBool(); + bitField3_ |= 0x00020000; + break; + } // case 8320 + case 8330: { + input.readMessage( + getStatsFieldBuilder().getBuilder(), + extensionRegistry); + bitField3_ |= 0x00040000; + break; + } // case 8330 + case 8336: { + verifiedMobile_ = input.readBool(); + bitField3_ |= 0x00080000; + break; + } // case 8336 + case 8346: { + verifiedReason_ = input.readStringRequireUtf8(); + bitField3_ |= 0x00100000; + break; + } // case 8346 + case 8352: { + withCarManagementPermission_ = input.readBool(); + bitField3_ |= 0x00200000; + break; + } // case 8352 + case 8360: { + ageRange_ = input.readInt32(); + bitField3_ |= 0x00400000; + break; + } // case 8360 + case 8368: { + watchDurationMonth_ = input.readInt64(); + bitField3_ |= 0x00800000; + break; + } // case 8368 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + private int bitField1_; + private int bitField2_; + private int bitField3_; + + private long id_ ; + /** + * uint64 id = 1; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + /** + * uint64 id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(long value) { + + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0L; + onChanged(); + return this; + } + + private long shortId_ ; + /** + * uint64 shortId = 2; + * @return The shortId. + */ + @java.lang.Override + public long getShortId() { + return shortId_; + } + /** + * uint64 shortId = 2; + * @param value The shortId to set. + * @return This builder for chaining. + */ + public Builder setShortId(long value) { + + shortId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 shortId = 2; + * @return This builder for chaining. + */ + public Builder clearShortId() { + bitField0_ = (bitField0_ & ~0x00000002); + shortId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object nickname_ = ""; + /** + * string nickname = 3; + * @return The nickname. + */ + public java.lang.String getNickname() { + java.lang.Object ref = nickname_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + nickname_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string nickname = 3; + * @return The bytes for nickname. + */ + public com.google.protobuf.ByteString + getNicknameBytes() { + java.lang.Object ref = nickname_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + nickname_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string nickname = 3; + * @param value The nickname to set. + * @return This builder for chaining. + */ + public Builder setNickname( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + nickname_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string nickname = 3; + * @return This builder for chaining. + */ + public Builder clearNickname() { + nickname_ = getDefaultInstance().getNickname(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string nickname = 3; + * @param value The bytes for nickname to set. + * @return This builder for chaining. + */ + public Builder setNicknameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + nickname_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private int gender_ ; + /** + * uint32 gender = 4; + * @return The gender. + */ + @java.lang.Override + public int getGender() { + return gender_; + } + /** + * uint32 gender = 4; + * @param value The gender to set. + * @return This builder for chaining. + */ + public Builder setGender(int value) { + + gender_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 gender = 4; + * @return This builder for chaining. + */ + public Builder clearGender() { + bitField0_ = (bitField0_ & ~0x00000008); + gender_ = 0; + onChanged(); + return this; + } + + private java.lang.Object signature_ = ""; + /** + * string signature = 5; + * @return The signature. + */ + public java.lang.String getSignature() { + java.lang.Object ref = signature_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + signature_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string signature = 5; + * @return The bytes for signature. + */ + public com.google.protobuf.ByteString + getSignatureBytes() { + java.lang.Object ref = signature_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + signature_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string signature = 5; + * @param value The signature to set. + * @return This builder for chaining. + */ + public Builder setSignature( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + signature_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string signature = 5; + * @return This builder for chaining. + */ + public Builder clearSignature() { + signature_ = getDefaultInstance().getSignature(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string signature = 5; + * @param value The bytes for signature to set. + * @return This builder for chaining. + */ + public Builder setSignatureBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + signature_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private int level_ ; + /** + * uint32 level = 6; + * @return The level. + */ + @java.lang.Override + public int getLevel() { + return level_; + } + /** + * uint32 level = 6; + * @param value The level to set. + * @return This builder for chaining. + */ + public Builder setLevel(int value) { + + level_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint32 level = 6; + * @return This builder for chaining. + */ + public Builder clearLevel() { + bitField0_ = (bitField0_ & ~0x00000020); + level_ = 0; + onChanged(); + return this; + } + + private long birthday_ ; + /** + * uint64 birthday = 7; + * @return The birthday. + */ + @java.lang.Override + public long getBirthday() { + return birthday_; + } + /** + * uint64 birthday = 7; + * @param value The birthday to set. + * @return This builder for chaining. + */ + public Builder setBirthday(long value) { + + birthday_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * uint64 birthday = 7; + * @return This builder for chaining. + */ + public Builder clearBirthday() { + bitField0_ = (bitField0_ & ~0x00000040); + birthday_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object telephone_ = ""; + /** + * string telephone = 8; + * @return The telephone. + */ + public java.lang.String getTelephone() { + java.lang.Object ref = telephone_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + telephone_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string telephone = 8; + * @return The bytes for telephone. + */ + public com.google.protobuf.ByteString + getTelephoneBytes() { + java.lang.Object ref = telephone_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + telephone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string telephone = 8; + * @param value The telephone to set. + * @return This builder for chaining. + */ + public Builder setTelephone( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + telephone_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string telephone = 8; + * @return This builder for chaining. + */ + public Builder clearTelephone() { + telephone_ = getDefaultInstance().getTelephone(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string telephone = 8; + * @param value The bytes for telephone to set. + * @return This builder for chaining. + */ + public Builder setTelephoneBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + telephone_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarThumb_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarThumbBuilder_; + /** + * .Image avatarThumb = 9; + * @return Whether the avatarThumb field is set. + */ + public boolean hasAvatarThumb() { + return ((bitField0_ & 0x00000100) != 0); + } + /** + * .Image avatarThumb = 9; + * @return The avatarThumb. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarThumb() { + if (avatarThumbBuilder_ == null) { + return avatarThumb_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; + } else { + return avatarThumbBuilder_.getMessage(); + } + } + /** + * .Image avatarThumb = 9; + */ + public Builder setAvatarThumb(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarThumbBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatarThumb_ = value; + } else { + avatarThumbBuilder_.setMessage(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .Image avatarThumb = 9; + */ + public Builder setAvatarThumb( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (avatarThumbBuilder_ == null) { + avatarThumb_ = builderForValue.build(); + } else { + avatarThumbBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .Image avatarThumb = 9; + */ + public Builder mergeAvatarThumb(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarThumbBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0) && + avatarThumb_ != null && + avatarThumb_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getAvatarThumbBuilder().mergeFrom(value); + } else { + avatarThumb_ = value; + } + } else { + avatarThumbBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .Image avatarThumb = 9; + */ + public Builder clearAvatarThumb() { + bitField0_ = (bitField0_ & ~0x00000100); + avatarThumb_ = null; + if (avatarThumbBuilder_ != null) { + avatarThumbBuilder_.dispose(); + avatarThumbBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image avatarThumb = 9; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarThumbBuilder() { + bitField0_ |= 0x00000100; + onChanged(); + return getAvatarThumbFieldBuilder().getBuilder(); + } + /** + * .Image avatarThumb = 9; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarThumbOrBuilder() { + if (avatarThumbBuilder_ != null) { + return avatarThumbBuilder_.getMessageOrBuilder(); + } else { + return avatarThumb_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarThumb_; + } + } + /** + * .Image avatarThumb = 9; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getAvatarThumbFieldBuilder() { + if (avatarThumbBuilder_ == null) { + avatarThumbBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getAvatarThumb(), + getParentForChildren(), + isClean()); + avatarThumb_ = null; + } + return avatarThumbBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarMedium_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarMediumBuilder_; + /** + * .Image avatarMedium = 10; + * @return Whether the avatarMedium field is set. + */ + public boolean hasAvatarMedium() { + return ((bitField0_ & 0x00000200) != 0); + } + /** + * .Image avatarMedium = 10; + * @return The avatarMedium. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarMedium() { + if (avatarMediumBuilder_ == null) { + return avatarMedium_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; + } else { + return avatarMediumBuilder_.getMessage(); + } + } + /** + * .Image avatarMedium = 10; + */ + public Builder setAvatarMedium(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarMediumBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatarMedium_ = value; + } else { + avatarMediumBuilder_.setMessage(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image avatarMedium = 10; + */ + public Builder setAvatarMedium( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (avatarMediumBuilder_ == null) { + avatarMedium_ = builderForValue.build(); + } else { + avatarMediumBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image avatarMedium = 10; + */ + public Builder mergeAvatarMedium(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarMediumBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0) && + avatarMedium_ != null && + avatarMedium_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getAvatarMediumBuilder().mergeFrom(value); + } else { + avatarMedium_ = value; + } + } else { + avatarMediumBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .Image avatarMedium = 10; + */ + public Builder clearAvatarMedium() { + bitField0_ = (bitField0_ & ~0x00000200); + avatarMedium_ = null; + if (avatarMediumBuilder_ != null) { + avatarMediumBuilder_.dispose(); + avatarMediumBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image avatarMedium = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarMediumBuilder() { + bitField0_ |= 0x00000200; + onChanged(); + return getAvatarMediumFieldBuilder().getBuilder(); + } + /** + * .Image avatarMedium = 10; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarMediumOrBuilder() { + if (avatarMediumBuilder_ != null) { + return avatarMediumBuilder_.getMessageOrBuilder(); + } else { + return avatarMedium_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarMedium_; + } + } + /** + * .Image avatarMedium = 10; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getAvatarMediumFieldBuilder() { + if (avatarMediumBuilder_ == null) { + avatarMediumBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getAvatarMedium(), + getParentForChildren(), + isClean()); + avatarMedium_ = null; + } + return avatarMediumBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarLarge_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarLargeBuilder_; + /** + * .Image avatarLarge = 11; + * @return Whether the avatarLarge field is set. + */ + public boolean hasAvatarLarge() { + return ((bitField0_ & 0x00000400) != 0); + } + /** + * .Image avatarLarge = 11; + * @return The avatarLarge. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarLarge() { + if (avatarLargeBuilder_ == null) { + return avatarLarge_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; + } else { + return avatarLargeBuilder_.getMessage(); + } + } + /** + * .Image avatarLarge = 11; + */ + public Builder setAvatarLarge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarLargeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatarLarge_ = value; + } else { + avatarLargeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * .Image avatarLarge = 11; + */ + public Builder setAvatarLarge( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (avatarLargeBuilder_ == null) { + avatarLarge_ = builderForValue.build(); + } else { + avatarLargeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * .Image avatarLarge = 11; + */ + public Builder mergeAvatarLarge(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarLargeBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0) && + avatarLarge_ != null && + avatarLarge_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getAvatarLargeBuilder().mergeFrom(value); + } else { + avatarLarge_ = value; + } + } else { + avatarLargeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * .Image avatarLarge = 11; + */ + public Builder clearAvatarLarge() { + bitField0_ = (bitField0_ & ~0x00000400); + avatarLarge_ = null; + if (avatarLargeBuilder_ != null) { + avatarLargeBuilder_.dispose(); + avatarLargeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image avatarLarge = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarLargeBuilder() { + bitField0_ |= 0x00000400; + onChanged(); + return getAvatarLargeFieldBuilder().getBuilder(); + } + /** + * .Image avatarLarge = 11; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarLargeOrBuilder() { + if (avatarLargeBuilder_ != null) { + return avatarLargeBuilder_.getMessageOrBuilder(); + } else { + return avatarLarge_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarLarge_; + } + } + /** + * .Image avatarLarge = 11; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getAvatarLargeFieldBuilder() { + if (avatarLargeBuilder_ == null) { + avatarLargeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getAvatarLarge(), + getParentForChildren(), + isClean()); + avatarLarge_ = null; + } + return avatarLargeBuilder_; + } + + private boolean verified_ ; + /** + * bool verified = 12; + * @return The verified. + */ + @java.lang.Override + public boolean getVerified() { + return verified_; + } + /** + * bool verified = 12; + * @param value The verified to set. + * @return This builder for chaining. + */ + public Builder setVerified(boolean value) { + + verified_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool verified = 12; + * @return This builder for chaining. + */ + public Builder clearVerified() { + bitField0_ = (bitField0_ & ~0x00000800); + verified_ = false; + onChanged(); + return this; + } + + private int experience_ ; + /** + * int32 experience = 13; + * @return The experience. + */ + @java.lang.Override + public int getExperience() { + return experience_; + } + /** + * int32 experience = 13; + * @param value The experience to set. + * @return This builder for chaining. + */ + public Builder setExperience(int value) { + + experience_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * int32 experience = 13; + * @return This builder for chaining. + */ + public Builder clearExperience() { + bitField0_ = (bitField0_ & ~0x00001000); + experience_ = 0; + onChanged(); + return this; + } + + private java.lang.Object city_ = ""; + /** + * string city = 14; + * @return The city. + */ + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string city = 14; + * @return The bytes for city. + */ + public com.google.protobuf.ByteString + getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + city_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string city = 14; + * @param value The city to set. + * @return This builder for chaining. + */ + public Builder setCity( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + city_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * string city = 14; + * @return This builder for chaining. + */ + public Builder clearCity() { + city_ = getDefaultInstance().getCity(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + /** + * string city = 14; + * @param value The bytes for city to set. + * @return This builder for chaining. + */ + public Builder setCityBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + city_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private int status_ ; + /** + * int32 status = 15; + * @return The status. + */ + @java.lang.Override + public int getStatus() { + return status_; + } + /** + * int32 status = 15; + * @param value The status to set. + * @return This builder for chaining. + */ + public Builder setStatus(int value) { + + status_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * int32 status = 15; + * @return This builder for chaining. + */ + public Builder clearStatus() { + bitField0_ = (bitField0_ & ~0x00004000); + status_ = 0; + onChanged(); + return this; + } + + private long createTime_ ; + /** + * int64 createTime = 16; + * @return The createTime. + */ + @java.lang.Override + public long getCreateTime() { + return createTime_; + } + /** + * int64 createTime = 16; + * @param value The createTime to set. + * @return This builder for chaining. + */ + public Builder setCreateTime(long value) { + + createTime_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * int64 createTime = 16; + * @return This builder for chaining. + */ + public Builder clearCreateTime() { + bitField0_ = (bitField0_ & ~0x00008000); + createTime_ = 0L; + onChanged(); + return this; + } + + private long modifyTime_ ; + /** + * int64 modifyTime = 17; + * @return The modifyTime. + */ + @java.lang.Override + public long getModifyTime() { + return modifyTime_; + } + /** + * int64 modifyTime = 17; + * @param value The modifyTime to set. + * @return This builder for chaining. + */ + public Builder setModifyTime(long value) { + + modifyTime_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * int64 modifyTime = 17; + * @return This builder for chaining. + */ + public Builder clearModifyTime() { + bitField0_ = (bitField0_ & ~0x00010000); + modifyTime_ = 0L; + onChanged(); + return this; + } + + private int secret_ ; + /** + * int32 secret = 18; + * @return The secret. + */ + @java.lang.Override + public int getSecret() { + return secret_; + } + /** + * int32 secret = 18; + * @param value The secret to set. + * @return This builder for chaining. + */ + public Builder setSecret(int value) { + + secret_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * int32 secret = 18; + * @return This builder for chaining. + */ + public Builder clearSecret() { + bitField0_ = (bitField0_ & ~0x00020000); + secret_ = 0; + onChanged(); + return this; + } + + private java.lang.Object shareQrcodeUri_ = ""; + /** + * string shareQrcodeUri = 19; + * @return The shareQrcodeUri. + */ + public java.lang.String getShareQrcodeUri() { + java.lang.Object ref = shareQrcodeUri_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + shareQrcodeUri_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string shareQrcodeUri = 19; + * @return The bytes for shareQrcodeUri. + */ + public com.google.protobuf.ByteString + getShareQrcodeUriBytes() { + java.lang.Object ref = shareQrcodeUri_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + shareQrcodeUri_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string shareQrcodeUri = 19; + * @param value The shareQrcodeUri to set. + * @return This builder for chaining. + */ + public Builder setShareQrcodeUri( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + shareQrcodeUri_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + * string shareQrcodeUri = 19; + * @return This builder for chaining. + */ + public Builder clearShareQrcodeUri() { + shareQrcodeUri_ = getDefaultInstance().getShareQrcodeUri(); + bitField0_ = (bitField0_ & ~0x00040000); + onChanged(); + return this; + } + /** + * string shareQrcodeUri = 19; + * @param value The bytes for shareQrcodeUri to set. + * @return This builder for chaining. + */ + public Builder setShareQrcodeUriBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + shareQrcodeUri_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + private int incomeSharePercent_ ; + /** + * int32 incomeSharePercent = 20; + * @return The incomeSharePercent. + */ + @java.lang.Override + public int getIncomeSharePercent() { + return incomeSharePercent_; + } + /** + * int32 incomeSharePercent = 20; + * @param value The incomeSharePercent to set. + * @return This builder for chaining. + */ + public Builder setIncomeSharePercent(int value) { + + incomeSharePercent_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * int32 incomeSharePercent = 20; + * @return This builder for chaining. + */ + public Builder clearIncomeSharePercent() { + bitField0_ = (bitField0_ & ~0x00080000); + incomeSharePercent_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListList_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> badgeImageListListBuilder_; + /** + * .Image badgeImageListList = 21; + * @return Whether the badgeImageListList field is set. + */ + public boolean hasBadgeImageListList() { + return ((bitField0_ & 0x00100000) != 0); + } + /** + * .Image badgeImageListList = 21; + * @return The badgeImageListList. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListList() { + if (badgeImageListListBuilder_ == null) { + return badgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; + } else { + return badgeImageListListBuilder_.getMessage(); + } + } + /** + * .Image badgeImageListList = 21; + */ + public Builder setBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (badgeImageListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + badgeImageListList_ = value; + } else { + badgeImageListListBuilder_.setMessage(value); + } + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .Image badgeImageListList = 21; + */ + public Builder setBadgeImageListList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (badgeImageListListBuilder_ == null) { + badgeImageListList_ = builderForValue.build(); + } else { + badgeImageListListBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .Image badgeImageListList = 21; + */ + public Builder mergeBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (badgeImageListListBuilder_ == null) { + if (((bitField0_ & 0x00100000) != 0) && + badgeImageListList_ != null && + badgeImageListList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBadgeImageListListBuilder().mergeFrom(value); + } else { + badgeImageListList_ = value; + } + } else { + badgeImageListListBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .Image badgeImageListList = 21; + */ + public Builder clearBadgeImageListList() { + bitField0_ = (bitField0_ & ~0x00100000); + badgeImageListList_ = null; + if (badgeImageListListBuilder_ != null) { + badgeImageListListBuilder_.dispose(); + badgeImageListListBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image badgeImageListList = 21; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBadgeImageListListBuilder() { + bitField0_ |= 0x00100000; + onChanged(); + return getBadgeImageListListFieldBuilder().getBuilder(); + } + /** + * .Image badgeImageListList = 21; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListListOrBuilder() { + if (badgeImageListListBuilder_ != null) { + return badgeImageListListBuilder_.getMessageOrBuilder(); + } else { + return badgeImageListList_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListList_; + } + } + /** + * .Image badgeImageListList = 21; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBadgeImageListListFieldBuilder() { + if (badgeImageListListBuilder_ == null) { + badgeImageListListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBadgeImageListList(), + getParentForChildren(), + isClean()); + badgeImageListList_ = null; + } + return badgeImageListListBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo followInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder> followInfoBuilder_; + /** + * .User.FollowInfo followInfo = 22; + * @return Whether the followInfo field is set. + */ + public boolean hasFollowInfo() { + return ((bitField0_ & 0x00200000) != 0); + } + /** + * .User.FollowInfo followInfo = 22; + * @return The followInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo getFollowInfo() { + if (followInfoBuilder_ == null) { + return followInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; + } else { + return followInfoBuilder_.getMessage(); + } + } + /** + * .User.FollowInfo followInfo = 22; + */ + public Builder setFollowInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo value) { + if (followInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + followInfo_ = value; + } else { + followInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .User.FollowInfo followInfo = 22; + */ + public Builder setFollowInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder builderForValue) { + if (followInfoBuilder_ == null) { + followInfo_ = builderForValue.build(); + } else { + followInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .User.FollowInfo followInfo = 22; + */ + public Builder mergeFollowInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo value) { + if (followInfoBuilder_ == null) { + if (((bitField0_ & 0x00200000) != 0) && + followInfo_ != null && + followInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance()) { + getFollowInfoBuilder().mergeFrom(value); + } else { + followInfo_ = value; + } + } else { + followInfoBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .User.FollowInfo followInfo = 22; + */ + public Builder clearFollowInfo() { + bitField0_ = (bitField0_ & ~0x00200000); + followInfo_ = null; + if (followInfoBuilder_ != null) { + followInfoBuilder_.dispose(); + followInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.FollowInfo followInfo = 22; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder getFollowInfoBuilder() { + bitField0_ |= 0x00200000; + onChanged(); + return getFollowInfoFieldBuilder().getBuilder(); + } + /** + * .User.FollowInfo followInfo = 22; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder getFollowInfoOrBuilder() { + if (followInfoBuilder_ != null) { + return followInfoBuilder_.getMessageOrBuilder(); + } else { + return followInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.getDefaultInstance() : followInfo_; + } + } + /** + * .User.FollowInfo followInfo = 22; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder> + getFollowInfoFieldBuilder() { + if (followInfoBuilder_ == null) { + followInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FollowInfoOrBuilder>( + getFollowInfo(), + getParentForChildren(), + isClean()); + followInfo_ = null; + } + return followInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade payGrade_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder> payGradeBuilder_; + /** + * .User.PayGrade payGrade = 23; + * @return Whether the payGrade field is set. + */ + public boolean hasPayGrade() { + return ((bitField0_ & 0x00400000) != 0); + } + /** + * .User.PayGrade payGrade = 23; + * @return The payGrade. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade getPayGrade() { + if (payGradeBuilder_ == null) { + return payGrade_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; + } else { + return payGradeBuilder_.getMessage(); + } + } + /** + * .User.PayGrade payGrade = 23; + */ + public Builder setPayGrade(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade value) { + if (payGradeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + payGrade_ = value; + } else { + payGradeBuilder_.setMessage(value); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .User.PayGrade payGrade = 23; + */ + public Builder setPayGrade( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder builderForValue) { + if (payGradeBuilder_ == null) { + payGrade_ = builderForValue.build(); + } else { + payGradeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .User.PayGrade payGrade = 23; + */ + public Builder mergePayGrade(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade value) { + if (payGradeBuilder_ == null) { + if (((bitField0_ & 0x00400000) != 0) && + payGrade_ != null && + payGrade_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance()) { + getPayGradeBuilder().mergeFrom(value); + } else { + payGrade_ = value; + } + } else { + payGradeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00400000; + onChanged(); + return this; + } + /** + * .User.PayGrade payGrade = 23; + */ + public Builder clearPayGrade() { + bitField0_ = (bitField0_ & ~0x00400000); + payGrade_ = null; + if (payGradeBuilder_ != null) { + payGradeBuilder_.dispose(); + payGradeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.PayGrade payGrade = 23; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder getPayGradeBuilder() { + bitField0_ |= 0x00400000; + onChanged(); + return getPayGradeFieldBuilder().getBuilder(); + } + /** + * .User.PayGrade payGrade = 23; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder getPayGradeOrBuilder() { + if (payGradeBuilder_ != null) { + return payGradeBuilder_.getMessageOrBuilder(); + } else { + return payGrade_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.getDefaultInstance() : payGrade_; + } + } + /** + * .User.PayGrade payGrade = 23; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder> + getPayGradeFieldBuilder() { + if (payGradeBuilder_ == null) { + payGradeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGrade.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PayGradeOrBuilder>( + getPayGrade(), + getParentForChildren(), + isClean()); + payGrade_ = null; + } + return payGradeBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub fansClub_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder> fansClubBuilder_; + /** + * .User.FansClub fansClub = 24; + * @return Whether the fansClub field is set. + */ + public boolean hasFansClub() { + return ((bitField0_ & 0x00800000) != 0); + } + /** + * .User.FansClub fansClub = 24; + * @return The fansClub. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub getFansClub() { + if (fansClubBuilder_ == null) { + return fansClub_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; + } else { + return fansClubBuilder_.getMessage(); + } + } + /** + * .User.FansClub fansClub = 24; + */ + public Builder setFansClub(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub value) { + if (fansClubBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + fansClub_ = value; + } else { + fansClubBuilder_.setMessage(value); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.FansClub fansClub = 24; + */ + public Builder setFansClub( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder builderForValue) { + if (fansClubBuilder_ == null) { + fansClub_ = builderForValue.build(); + } else { + fansClubBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.FansClub fansClub = 24; + */ + public Builder mergeFansClub(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub value) { + if (fansClubBuilder_ == null) { + if (((bitField0_ & 0x00800000) != 0) && + fansClub_ != null && + fansClub_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance()) { + getFansClubBuilder().mergeFrom(value); + } else { + fansClub_ = value; + } + } else { + fansClubBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.FansClub fansClub = 24; + */ + public Builder clearFansClub() { + bitField0_ = (bitField0_ & ~0x00800000); + fansClub_ = null; + if (fansClubBuilder_ != null) { + fansClubBuilder_.dispose(); + fansClubBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.FansClub fansClub = 24; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder getFansClubBuilder() { + bitField0_ |= 0x00800000; + onChanged(); + return getFansClubFieldBuilder().getBuilder(); + } + /** + * .User.FansClub fansClub = 24; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder getFansClubOrBuilder() { + if (fansClubBuilder_ != null) { + return fansClubBuilder_.getMessageOrBuilder(); + } else { + return fansClub_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.getDefaultInstance() : fansClub_; + } + } + /** + * .User.FansClub fansClub = 24; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder> + getFansClubFieldBuilder() { + if (fansClubBuilder_ == null) { + fansClubBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClub.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansClubOrBuilder>( + getFansClub(), + getParentForChildren(), + isClean()); + fansClub_ = null; + } + return fansClubBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border border_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder> borderBuilder_; + /** + * .User.Border border = 25; + * @return Whether the border field is set. + */ + public boolean hasBorder() { + return ((bitField0_ & 0x01000000) != 0); + } + /** + * .User.Border border = 25; + * @return The border. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border getBorder() { + if (borderBuilder_ == null) { + return border_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; + } else { + return borderBuilder_.getMessage(); + } + } + /** + * .User.Border border = 25; + */ + public Builder setBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border value) { + if (borderBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + border_ = value; + } else { + borderBuilder_.setMessage(value); + } + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .User.Border border = 25; + */ + public Builder setBorder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder builderForValue) { + if (borderBuilder_ == null) { + border_ = builderForValue.build(); + } else { + borderBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .User.Border border = 25; + */ + public Builder mergeBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border value) { + if (borderBuilder_ == null) { + if (((bitField0_ & 0x01000000) != 0) && + border_ != null && + border_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance()) { + getBorderBuilder().mergeFrom(value); + } else { + border_ = value; + } + } else { + borderBuilder_.mergeFrom(value); + } + bitField0_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .User.Border border = 25; + */ + public Builder clearBorder() { + bitField0_ = (bitField0_ & ~0x01000000); + border_ = null; + if (borderBuilder_ != null) { + borderBuilder_.dispose(); + borderBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.Border border = 25; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder getBorderBuilder() { + bitField0_ |= 0x01000000; + onChanged(); + return getBorderFieldBuilder().getBuilder(); + } + /** + * .User.Border border = 25; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder getBorderOrBuilder() { + if (borderBuilder_ != null) { + return borderBuilder_.getMessageOrBuilder(); + } else { + return border_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.getDefaultInstance() : border_; + } + } + /** + * .User.Border border = 25; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder> + getBorderFieldBuilder() { + if (borderBuilder_ == null) { + borderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Border.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BorderOrBuilder>( + getBorder(), + getParentForChildren(), + isClean()); + border_ = null; + } + return borderBuilder_; + } + + private java.lang.Object specialId_ = ""; + /** + * string specialId = 26; + * @return The specialId. + */ + public java.lang.String getSpecialId() { + java.lang.Object ref = specialId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + specialId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string specialId = 26; + * @return The bytes for specialId. + */ + public com.google.protobuf.ByteString + getSpecialIdBytes() { + java.lang.Object ref = specialId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + specialId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string specialId = 26; + * @param value The specialId to set. + * @return This builder for chaining. + */ + public Builder setSpecialId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + specialId_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + /** + * string specialId = 26; + * @return This builder for chaining. + */ + public Builder clearSpecialId() { + specialId_ = getDefaultInstance().getSpecialId(); + bitField0_ = (bitField0_ & ~0x02000000); + onChanged(); + return this; + } + /** + * string specialId = 26; + * @param value The bytes for specialId to set. + * @return This builder for chaining. + */ + public Builder setSpecialIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + specialId_ = value; + bitField0_ |= 0x02000000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarBorder_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarBorderBuilder_; + /** + * .Image avatarBorder = 27; + * @return Whether the avatarBorder field is set. + */ + public boolean hasAvatarBorder() { + return ((bitField0_ & 0x04000000) != 0); + } + /** + * .Image avatarBorder = 27; + * @return The avatarBorder. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarBorder() { + if (avatarBorderBuilder_ == null) { + return avatarBorder_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; + } else { + return avatarBorderBuilder_.getMessage(); + } + } + /** + * .Image avatarBorder = 27; + */ + public Builder setAvatarBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarBorderBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatarBorder_ = value; + } else { + avatarBorderBuilder_.setMessage(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image avatarBorder = 27; + */ + public Builder setAvatarBorder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (avatarBorderBuilder_ == null) { + avatarBorder_ = builderForValue.build(); + } else { + avatarBorderBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image avatarBorder = 27; + */ + public Builder mergeAvatarBorder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarBorderBuilder_ == null) { + if (((bitField0_ & 0x04000000) != 0) && + avatarBorder_ != null && + avatarBorder_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getAvatarBorderBuilder().mergeFrom(value); + } else { + avatarBorder_ = value; + } + } else { + avatarBorderBuilder_.mergeFrom(value); + } + bitField0_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .Image avatarBorder = 27; + */ + public Builder clearAvatarBorder() { + bitField0_ = (bitField0_ & ~0x04000000); + avatarBorder_ = null; + if (avatarBorderBuilder_ != null) { + avatarBorderBuilder_.dispose(); + avatarBorderBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image avatarBorder = 27; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarBorderBuilder() { + bitField0_ |= 0x04000000; + onChanged(); + return getAvatarBorderFieldBuilder().getBuilder(); + } + /** + * .Image avatarBorder = 27; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarBorderOrBuilder() { + if (avatarBorderBuilder_ != null) { + return avatarBorderBuilder_.getMessageOrBuilder(); + } else { + return avatarBorder_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarBorder_; + } + } + /** + * .Image avatarBorder = 27; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getAvatarBorderFieldBuilder() { + if (avatarBorderBuilder_ == null) { + avatarBorderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getAvatarBorder(), + getParentForChildren(), + isClean()); + avatarBorder_ = null; + } + return avatarBorderBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image medal_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> medalBuilder_; + /** + * .Image medal = 28; + * @return Whether the medal field is set. + */ + public boolean hasMedal() { + return ((bitField0_ & 0x08000000) != 0); + } + /** + * .Image medal = 28; + * @return The medal. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMedal() { + if (medalBuilder_ == null) { + return medal_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; + } else { + return medalBuilder_.getMessage(); + } + } + /** + * .Image medal = 28; + */ + public Builder setMedal(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (medalBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + medal_ = value; + } else { + medalBuilder_.setMessage(value); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image medal = 28; + */ + public Builder setMedal( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (medalBuilder_ == null) { + medal_ = builderForValue.build(); + } else { + medalBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image medal = 28; + */ + public Builder mergeMedal(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (medalBuilder_ == null) { + if (((bitField0_ & 0x08000000) != 0) && + medal_ != null && + medal_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getMedalBuilder().mergeFrom(value); + } else { + medal_ = value; + } + } else { + medalBuilder_.mergeFrom(value); + } + bitField0_ |= 0x08000000; + onChanged(); + return this; + } + /** + * .Image medal = 28; + */ + public Builder clearMedal() { + bitField0_ = (bitField0_ & ~0x08000000); + medal_ = null; + if (medalBuilder_ != null) { + medalBuilder_.dispose(); + medalBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image medal = 28; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getMedalBuilder() { + bitField0_ |= 0x08000000; + onChanged(); + return getMedalFieldBuilder().getBuilder(); + } + /** + * .Image medal = 28; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMedalOrBuilder() { + if (medalBuilder_ != null) { + return medalBuilder_.getMessageOrBuilder(); + } else { + return medal_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : medal_; + } + } + /** + * .Image medal = 28; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getMedalFieldBuilder() { + if (medalBuilder_ == null) { + medalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getMedal(), + getParentForChildren(), + isClean()); + medal_ = null; + } + return medalBuilder_; + } + + private java.util.List realTimeIconsList_ = + java.util.Collections.emptyList(); + private void ensureRealTimeIconsListIsMutable() { + if (!((bitField0_ & 0x10000000) != 0)) { + realTimeIconsList_ = new java.util.ArrayList(realTimeIconsList_); + bitField0_ |= 0x10000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> realTimeIconsListBuilder_; + + /** + * repeated .Image realTimeIconsList = 29; + */ + public java.util.List getRealTimeIconsListList() { + if (realTimeIconsListBuilder_ == null) { + return java.util.Collections.unmodifiableList(realTimeIconsList_); + } else { + return realTimeIconsListBuilder_.getMessageList(); + } + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public int getRealTimeIconsListCount() { + if (realTimeIconsListBuilder_ == null) { + return realTimeIconsList_.size(); + } else { + return realTimeIconsListBuilder_.getCount(); + } + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getRealTimeIconsList(int index) { + if (realTimeIconsListBuilder_ == null) { + return realTimeIconsList_.get(index); + } else { + return realTimeIconsListBuilder_.getMessage(index); + } + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder setRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (realTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.set(index, value); + onChanged(); + } else { + realTimeIconsListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder setRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.set(index, builderForValue.build()); + onChanged(); + } else { + realTimeIconsListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder addRealTimeIconsList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (realTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.add(value); + onChanged(); + } else { + realTimeIconsListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder addRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (realTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.add(index, value); + onChanged(); + } else { + realTimeIconsListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder addRealTimeIconsList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.add(builderForValue.build()); + onChanged(); + } else { + realTimeIconsListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder addRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.add(index, builderForValue.build()); + onChanged(); + } else { + realTimeIconsListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder addAllRealTimeIconsList( + java.lang.Iterable values) { + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, realTimeIconsList_); + onChanged(); + } else { + realTimeIconsListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder clearRealTimeIconsList() { + if (realTimeIconsListBuilder_ == null) { + realTimeIconsList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x10000000); + onChanged(); + } else { + realTimeIconsListBuilder_.clear(); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public Builder removeRealTimeIconsList(int index) { + if (realTimeIconsListBuilder_ == null) { + ensureRealTimeIconsListIsMutable(); + realTimeIconsList_.remove(index); + onChanged(); + } else { + realTimeIconsListBuilder_.remove(index); + } + return this; + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getRealTimeIconsListBuilder( + int index) { + return getRealTimeIconsListFieldBuilder().getBuilder(index); + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getRealTimeIconsListOrBuilder( + int index) { + if (realTimeIconsListBuilder_ == null) { + return realTimeIconsList_.get(index); } else { + return realTimeIconsListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public java.util.List + getRealTimeIconsListOrBuilderList() { + if (realTimeIconsListBuilder_ != null) { + return realTimeIconsListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(realTimeIconsList_); + } + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addRealTimeIconsListBuilder() { + return getRealTimeIconsListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addRealTimeIconsListBuilder( + int index) { + return getRealTimeIconsListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); + } + /** + * repeated .Image realTimeIconsList = 29; + */ + public java.util.List + getRealTimeIconsListBuilderList() { + return getRealTimeIconsListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getRealTimeIconsListFieldBuilder() { + if (realTimeIconsListBuilder_ == null) { + realTimeIconsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + realTimeIconsList_, + ((bitField0_ & 0x10000000) != 0), + getParentForChildren(), + isClean()); + realTimeIconsList_ = null; + } + return realTimeIconsListBuilder_; + } + + private java.util.List newRealTimeIconsList_ = + java.util.Collections.emptyList(); + private void ensureNewRealTimeIconsListIsMutable() { + if (!((bitField0_ & 0x20000000) != 0)) { + newRealTimeIconsList_ = new java.util.ArrayList(newRealTimeIconsList_); + bitField0_ |= 0x20000000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> newRealTimeIconsListBuilder_; + + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public java.util.List getNewRealTimeIconsListList() { + if (newRealTimeIconsListBuilder_ == null) { + return java.util.Collections.unmodifiableList(newRealTimeIconsList_); + } else { + return newRealTimeIconsListBuilder_.getMessageList(); + } + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public int getNewRealTimeIconsListCount() { + if (newRealTimeIconsListBuilder_ == null) { + return newRealTimeIconsList_.size(); + } else { + return newRealTimeIconsListBuilder_.getCount(); + } + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getNewRealTimeIconsList(int index) { + if (newRealTimeIconsListBuilder_ == null) { + return newRealTimeIconsList_.get(index); + } else { + return newRealTimeIconsListBuilder_.getMessage(index); + } + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder setNewRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newRealTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.set(index, value); + onChanged(); + } else { + newRealTimeIconsListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder setNewRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.set(index, builderForValue.build()); + onChanged(); + } else { + newRealTimeIconsListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder addNewRealTimeIconsList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newRealTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.add(value); + onChanged(); + } else { + newRealTimeIconsListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder addNewRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (newRealTimeIconsListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.add(index, value); + onChanged(); + } else { + newRealTimeIconsListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder addNewRealTimeIconsList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.add(builderForValue.build()); + onChanged(); + } else { + newRealTimeIconsListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder addNewRealTimeIconsList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.add(index, builderForValue.build()); + onChanged(); + } else { + newRealTimeIconsListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder addAllNewRealTimeIconsList( + java.lang.Iterable values) { + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, newRealTimeIconsList_); + onChanged(); + } else { + newRealTimeIconsListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder clearNewRealTimeIconsList() { + if (newRealTimeIconsListBuilder_ == null) { + newRealTimeIconsList_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x20000000); + onChanged(); + } else { + newRealTimeIconsListBuilder_.clear(); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public Builder removeNewRealTimeIconsList(int index) { + if (newRealTimeIconsListBuilder_ == null) { + ensureNewRealTimeIconsListIsMutable(); + newRealTimeIconsList_.remove(index); + onChanged(); + } else { + newRealTimeIconsListBuilder_.remove(index); + } + return this; + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getNewRealTimeIconsListBuilder( + int index) { + return getNewRealTimeIconsListFieldBuilder().getBuilder(index); + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getNewRealTimeIconsListOrBuilder( + int index) { + if (newRealTimeIconsListBuilder_ == null) { + return newRealTimeIconsList_.get(index); } else { + return newRealTimeIconsListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public java.util.List + getNewRealTimeIconsListOrBuilderList() { + if (newRealTimeIconsListBuilder_ != null) { + return newRealTimeIconsListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(newRealTimeIconsList_); + } + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addNewRealTimeIconsListBuilder() { + return getNewRealTimeIconsListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder addNewRealTimeIconsListBuilder( + int index) { + return getNewRealTimeIconsListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()); + } + /** + * repeated .Image newRealTimeIconsList = 30; + */ + public java.util.List + getNewRealTimeIconsListBuilderList() { + return getNewRealTimeIconsListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getNewRealTimeIconsListFieldBuilder() { + if (newRealTimeIconsListBuilder_ == null) { + newRealTimeIconsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + newRealTimeIconsList_, + ((bitField0_ & 0x20000000) != 0), + getParentForChildren(), + isClean()); + newRealTimeIconsList_ = null; + } + return newRealTimeIconsListBuilder_; + } + + private long topVipNo_ ; + /** + * int64 topVipNo = 31; + * @return The topVipNo. + */ + @java.lang.Override + public long getTopVipNo() { + return topVipNo_; + } + /** + * int64 topVipNo = 31; + * @param value The topVipNo to set. + * @return This builder for chaining. + */ + public Builder setTopVipNo(long value) { + + topVipNo_ = value; + bitField0_ |= 0x40000000; + onChanged(); + return this; + } + /** + * int64 topVipNo = 31; + * @return This builder for chaining. + */ + public Builder clearTopVipNo() { + bitField0_ = (bitField0_ & ~0x40000000); + topVipNo_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr userAttr_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder> userAttrBuilder_; + /** + * .User.UserAttr userAttr = 32; + * @return Whether the userAttr field is set. + */ + public boolean hasUserAttr() { + return ((bitField0_ & 0x80000000) != 0); + } + /** + * .User.UserAttr userAttr = 32; + * @return The userAttr. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr getUserAttr() { + if (userAttrBuilder_ == null) { + return userAttr_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; + } else { + return userAttrBuilder_.getMessage(); + } + } + /** + * .User.UserAttr userAttr = 32; + */ + public Builder setUserAttr(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr value) { + if (userAttrBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + userAttr_ = value; + } else { + userAttrBuilder_.setMessage(value); + } + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + /** + * .User.UserAttr userAttr = 32; + */ + public Builder setUserAttr( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder builderForValue) { + if (userAttrBuilder_ == null) { + userAttr_ = builderForValue.build(); + } else { + userAttrBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + /** + * .User.UserAttr userAttr = 32; + */ + public Builder mergeUserAttr(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr value) { + if (userAttrBuilder_ == null) { + if (((bitField0_ & 0x80000000) != 0) && + userAttr_ != null && + userAttr_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance()) { + getUserAttrBuilder().mergeFrom(value); + } else { + userAttr_ = value; + } + } else { + userAttrBuilder_.mergeFrom(value); + } + bitField0_ |= 0x80000000; + onChanged(); + return this; + } + /** + * .User.UserAttr userAttr = 32; + */ + public Builder clearUserAttr() { + bitField0_ = (bitField0_ & ~0x80000000); + userAttr_ = null; + if (userAttrBuilder_ != null) { + userAttrBuilder_.dispose(); + userAttrBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.UserAttr userAttr = 32; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder getUserAttrBuilder() { + bitField0_ |= 0x80000000; + onChanged(); + return getUserAttrFieldBuilder().getBuilder(); + } + /** + * .User.UserAttr userAttr = 32; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder getUserAttrOrBuilder() { + if (userAttrBuilder_ != null) { + return userAttrBuilder_.getMessageOrBuilder(); + } else { + return userAttr_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.getDefaultInstance() : userAttr_; + } + } + /** + * .User.UserAttr userAttr = 32; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder> + getUserAttrFieldBuilder() { + if (userAttrBuilder_ == null) { + userAttrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttr.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserAttrOrBuilder>( + getUserAttr(), + getParentForChildren(), + isClean()); + userAttr_ = null; + } + return userAttrBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom ownRoom_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder> ownRoomBuilder_; + /** + * .User.OwnRoom ownRoom = 33; + * @return Whether the ownRoom field is set. + */ + public boolean hasOwnRoom() { + return ((bitField1_ & 0x00000001) != 0); + } + /** + * .User.OwnRoom ownRoom = 33; + * @return The ownRoom. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom getOwnRoom() { + if (ownRoomBuilder_ == null) { + return ownRoom_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; + } else { + return ownRoomBuilder_.getMessage(); + } + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public Builder setOwnRoom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom value) { + if (ownRoomBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ownRoom_ = value; + } else { + ownRoomBuilder_.setMessage(value); + } + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public Builder setOwnRoom( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder builderForValue) { + if (ownRoomBuilder_ == null) { + ownRoom_ = builderForValue.build(); + } else { + ownRoomBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public Builder mergeOwnRoom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom value) { + if (ownRoomBuilder_ == null) { + if (((bitField1_ & 0x00000001) != 0) && + ownRoom_ != null && + ownRoom_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance()) { + getOwnRoomBuilder().mergeFrom(value); + } else { + ownRoom_ = value; + } + } else { + ownRoomBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public Builder clearOwnRoom() { + bitField1_ = (bitField1_ & ~0x00000001); + ownRoom_ = null; + if (ownRoomBuilder_ != null) { + ownRoomBuilder_.dispose(); + ownRoomBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder getOwnRoomBuilder() { + bitField1_ |= 0x00000001; + onChanged(); + return getOwnRoomFieldBuilder().getBuilder(); + } + /** + * .User.OwnRoom ownRoom = 33; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder getOwnRoomOrBuilder() { + if (ownRoomBuilder_ != null) { + return ownRoomBuilder_.getMessageOrBuilder(); + } else { + return ownRoom_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.getDefaultInstance() : ownRoom_; + } + } + /** + * .User.OwnRoom ownRoom = 33; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder> + getOwnRoomFieldBuilder() { + if (ownRoomBuilder_ == null) { + ownRoomBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoom.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.OwnRoomOrBuilder>( + getOwnRoom(), + getParentForChildren(), + isClean()); + ownRoom_ = null; + } + return ownRoomBuilder_; + } + + private long payScore_ ; + /** + * int64 payScore = 34; + * @return The payScore. + */ + @java.lang.Override + public long getPayScore() { + return payScore_; + } + /** + * int64 payScore = 34; + * @param value The payScore to set. + * @return This builder for chaining. + */ + public Builder setPayScore(long value) { + + payScore_ = value; + bitField1_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 payScore = 34; + * @return This builder for chaining. + */ + public Builder clearPayScore() { + bitField1_ = (bitField1_ & ~0x00000002); + payScore_ = 0L; + onChanged(); + return this; + } + + private long ticketCount_ ; + /** + * int64 ticketCount = 35; + * @return The ticketCount. + */ + @java.lang.Override + public long getTicketCount() { + return ticketCount_; + } + /** + * int64 ticketCount = 35; + * @param value The ticketCount to set. + * @return This builder for chaining. + */ + public Builder setTicketCount(long value) { + + ticketCount_ = value; + bitField1_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int64 ticketCount = 35; + * @return This builder for chaining. + */ + public Builder clearTicketCount() { + bitField1_ = (bitField1_ & ~0x00000004); + ticketCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo anchorInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder> anchorInfoBuilder_; + /** + * .User.AnchorInfo anchorInfo = 36; + * @return Whether the anchorInfo field is set. + */ + public boolean hasAnchorInfo() { + return ((bitField1_ & 0x00000008) != 0); + } + /** + * .User.AnchorInfo anchorInfo = 36; + * @return The anchorInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo getAnchorInfo() { + if (anchorInfoBuilder_ == null) { + return anchorInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; + } else { + return anchorInfoBuilder_.getMessage(); + } + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public Builder setAnchorInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo value) { + if (anchorInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + anchorInfo_ = value; + } else { + anchorInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public Builder setAnchorInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder builderForValue) { + if (anchorInfoBuilder_ == null) { + anchorInfo_ = builderForValue.build(); + } else { + anchorInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public Builder mergeAnchorInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo value) { + if (anchorInfoBuilder_ == null) { + if (((bitField1_ & 0x00000008) != 0) && + anchorInfo_ != null && + anchorInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance()) { + getAnchorInfoBuilder().mergeFrom(value); + } else { + anchorInfo_ = value; + } + } else { + anchorInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public Builder clearAnchorInfo() { + bitField1_ = (bitField1_ & ~0x00000008); + anchorInfo_ = null; + if (anchorInfoBuilder_ != null) { + anchorInfoBuilder_.dispose(); + anchorInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder getAnchorInfoBuilder() { + bitField1_ |= 0x00000008; + onChanged(); + return getAnchorInfoFieldBuilder().getBuilder(); + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder getAnchorInfoOrBuilder() { + if (anchorInfoBuilder_ != null) { + return anchorInfoBuilder_.getMessageOrBuilder(); + } else { + return anchorInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.getDefaultInstance() : anchorInfo_; + } + } + /** + * .User.AnchorInfo anchorInfo = 36; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder> + getAnchorInfoFieldBuilder() { + if (anchorInfoBuilder_ == null) { + anchorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorInfoOrBuilder>( + getAnchorInfo(), + getParentForChildren(), + isClean()); + anchorInfo_ = null; + } + return anchorInfoBuilder_; + } + + private int linkMicStats_ ; + /** + * int32 linkMicStats = 37; + * @return The linkMicStats. + */ + @java.lang.Override + public int getLinkMicStats() { + return linkMicStats_; + } + /** + * int32 linkMicStats = 37; + * @param value The linkMicStats to set. + * @return This builder for chaining. + */ + public Builder setLinkMicStats(int value) { + + linkMicStats_ = value; + bitField1_ |= 0x00000010; + onChanged(); + return this; + } + /** + * int32 linkMicStats = 37; + * @return This builder for chaining. + */ + public Builder clearLinkMicStats() { + bitField1_ = (bitField1_ & ~0x00000010); + linkMicStats_ = 0; + onChanged(); + return this; + } + + private java.lang.Object displayId_ = ""; + /** + * string displayId = 38; + * @return The displayId. + */ + public java.lang.String getDisplayId() { + java.lang.Object ref = displayId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string displayId = 38; + * @return The bytes for displayId. + */ + public com.google.protobuf.ByteString + getDisplayIdBytes() { + java.lang.Object ref = displayId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string displayId = 38; + * @param value The displayId to set. + * @return This builder for chaining. + */ + public Builder setDisplayId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayId_ = value; + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string displayId = 38; + * @return This builder for chaining. + */ + public Builder clearDisplayId() { + displayId_ = getDefaultInstance().getDisplayId(); + bitField1_ = (bitField1_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string displayId = 38; + * @param value The bytes for displayId to set. + * @return This builder for chaining. + */ + public Builder setDisplayIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayId_ = value; + bitField1_ |= 0x00000020; + onChanged(); + return this; + } + + private boolean withCommercePermission_ ; + /** + * bool withCommercePermission = 39; + * @return The withCommercePermission. + */ + @java.lang.Override + public boolean getWithCommercePermission() { + return withCommercePermission_; + } + /** + * bool withCommercePermission = 39; + * @param value The withCommercePermission to set. + * @return This builder for chaining. + */ + public Builder setWithCommercePermission(boolean value) { + + withCommercePermission_ = value; + bitField1_ |= 0x00000040; + onChanged(); + return this; + } + /** + * bool withCommercePermission = 39; + * @return This builder for chaining. + */ + public Builder clearWithCommercePermission() { + bitField1_ = (bitField1_ & ~0x00000040); + withCommercePermission_ = false; + onChanged(); + return this; + } + + private boolean withFusionShopEntry_ ; + /** + * bool withFusionShopEntry = 40; + * @return The withFusionShopEntry. + */ + @java.lang.Override + public boolean getWithFusionShopEntry() { + return withFusionShopEntry_; + } + /** + * bool withFusionShopEntry = 40; + * @param value The withFusionShopEntry to set. + * @return This builder for chaining. + */ + public Builder setWithFusionShopEntry(boolean value) { + + withFusionShopEntry_ = value; + bitField1_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bool withFusionShopEntry = 40; + * @return This builder for chaining. + */ + public Builder clearWithFusionShopEntry() { + bitField1_ = (bitField1_ & ~0x00000080); + withFusionShopEntry_ = false; + onChanged(); + return this; + } + + private long totalRechargeDiamondCount_ ; + /** + * int64 totalRechargeDiamondCount = 41; + * @return The totalRechargeDiamondCount. + */ + @java.lang.Override + public long getTotalRechargeDiamondCount() { + return totalRechargeDiamondCount_; + } + /** + * int64 totalRechargeDiamondCount = 41; + * @param value The totalRechargeDiamondCount to set. + * @return This builder for chaining. + */ + public Builder setTotalRechargeDiamondCount(long value) { + + totalRechargeDiamondCount_ = value; + bitField1_ |= 0x00000100; + onChanged(); + return this; + } + /** + * int64 totalRechargeDiamondCount = 41; + * @return This builder for chaining. + */ + public Builder clearTotalRechargeDiamondCount() { + bitField1_ = (bitField1_ & ~0x00000100); + totalRechargeDiamondCount_ = 0L; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel webcastAnchorLevel_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> webcastAnchorLevelBuilder_; + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return Whether the webcastAnchorLevel field is set. + */ + public boolean hasWebcastAnchorLevel() { + return ((bitField1_ & 0x00000200) != 0); + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + * @return The webcastAnchorLevel. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getWebcastAnchorLevel() { + if (webcastAnchorLevelBuilder_ == null) { + return webcastAnchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; + } else { + return webcastAnchorLevelBuilder_.getMessage(); + } + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public Builder setWebcastAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { + if (webcastAnchorLevelBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + webcastAnchorLevel_ = value; + } else { + webcastAnchorLevelBuilder_.setMessage(value); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public Builder setWebcastAnchorLevel( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder builderForValue) { + if (webcastAnchorLevelBuilder_ == null) { + webcastAnchorLevel_ = builderForValue.build(); + } else { + webcastAnchorLevelBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public Builder mergeWebcastAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { + if (webcastAnchorLevelBuilder_ == null) { + if (((bitField1_ & 0x00000200) != 0) && + webcastAnchorLevel_ != null && + webcastAnchorLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) { + getWebcastAnchorLevelBuilder().mergeFrom(value); + } else { + webcastAnchorLevel_ = value; + } + } else { + webcastAnchorLevelBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public Builder clearWebcastAnchorLevel() { + bitField1_ = (bitField1_ & ~0x00000200); + webcastAnchorLevel_ = null; + if (webcastAnchorLevelBuilder_ != null) { + webcastAnchorLevelBuilder_.dispose(); + webcastAnchorLevelBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder getWebcastAnchorLevelBuilder() { + bitField1_ |= 0x00000200; + onChanged(); + return getWebcastAnchorLevelFieldBuilder().getBuilder(); + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getWebcastAnchorLevelOrBuilder() { + if (webcastAnchorLevelBuilder_ != null) { + return webcastAnchorLevelBuilder_.getMessageOrBuilder(); + } else { + return webcastAnchorLevel_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : webcastAnchorLevel_; + } + } + /** + * .User.AnchorLevel webcastAnchorLevel = 42; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> + getWebcastAnchorLevelFieldBuilder() { + if (webcastAnchorLevelBuilder_ == null) { + webcastAnchorLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder>( + getWebcastAnchorLevel(), + getParentForChildren(), + isClean()); + webcastAnchorLevel_ = null; + } + return webcastAnchorLevelBuilder_; + } + + private java.lang.Object verifiedContent_ = ""; + /** + * string verifiedContent = 43; + * @return The verifiedContent. + */ + public java.lang.String getVerifiedContent() { + java.lang.Object ref = verifiedContent_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + verifiedContent_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string verifiedContent = 43; + * @return The bytes for verifiedContent. + */ + public com.google.protobuf.ByteString + getVerifiedContentBytes() { + java.lang.Object ref = verifiedContent_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verifiedContent_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string verifiedContent = 43; + * @param value The verifiedContent to set. + * @return This builder for chaining. + */ + public Builder setVerifiedContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + verifiedContent_ = value; + bitField1_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string verifiedContent = 43; + * @return This builder for chaining. + */ + public Builder clearVerifiedContent() { + verifiedContent_ = getDefaultInstance().getVerifiedContent(); + bitField1_ = (bitField1_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string verifiedContent = 43; + * @param value The bytes for verifiedContent to set. + * @return This builder for chaining. + */ + public Builder setVerifiedContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + verifiedContent_ = value; + bitField1_ |= 0x00000400; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats authorStats_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder> authorStatsBuilder_; + /** + * .User.AuthorStats authorStats = 44; + * @return Whether the authorStats field is set. + */ + public boolean hasAuthorStats() { + return ((bitField1_ & 0x00000800) != 0); + } + /** + * .User.AuthorStats authorStats = 44; + * @return The authorStats. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats getAuthorStats() { + if (authorStatsBuilder_ == null) { + return authorStats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; + } else { + return authorStatsBuilder_.getMessage(); + } + } + /** + * .User.AuthorStats authorStats = 44; + */ + public Builder setAuthorStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats value) { + if (authorStatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + authorStats_ = value; + } else { + authorStatsBuilder_.setMessage(value); + } + bitField1_ |= 0x00000800; + onChanged(); + return this; + } + /** + * .User.AuthorStats authorStats = 44; + */ + public Builder setAuthorStats( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder builderForValue) { + if (authorStatsBuilder_ == null) { + authorStats_ = builderForValue.build(); + } else { + authorStatsBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00000800; + onChanged(); + return this; + } + /** + * .User.AuthorStats authorStats = 44; + */ + public Builder mergeAuthorStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats value) { + if (authorStatsBuilder_ == null) { + if (((bitField1_ & 0x00000800) != 0) && + authorStats_ != null && + authorStats_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance()) { + getAuthorStatsBuilder().mergeFrom(value); + } else { + authorStats_ = value; + } + } else { + authorStatsBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00000800; + onChanged(); + return this; + } + /** + * .User.AuthorStats authorStats = 44; + */ + public Builder clearAuthorStats() { + bitField1_ = (bitField1_ & ~0x00000800); + authorStats_ = null; + if (authorStatsBuilder_ != null) { + authorStatsBuilder_.dispose(); + authorStatsBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.AuthorStats authorStats = 44; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder getAuthorStatsBuilder() { + bitField1_ |= 0x00000800; + onChanged(); + return getAuthorStatsFieldBuilder().getBuilder(); + } + /** + * .User.AuthorStats authorStats = 44; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder getAuthorStatsOrBuilder() { + if (authorStatsBuilder_ != null) { + return authorStatsBuilder_.getMessageOrBuilder(); + } else { + return authorStats_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.getDefaultInstance() : authorStats_; + } + } + /** + * .User.AuthorStats authorStats = 44; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder> + getAuthorStatsFieldBuilder() { + if (authorStatsBuilder_ == null) { + authorStatsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthorStatsOrBuilder>( + getAuthorStats(), + getParentForChildren(), + isClean()); + authorStats_ = null; + } + return authorStatsBuilder_; + } + + private java.util.List topFansList_ = + java.util.Collections.emptyList(); + private void ensureTopFansListIsMutable() { + if (!((bitField1_ & 0x00001000) != 0)) { + topFansList_ = new java.util.ArrayList(topFansList_); + bitField1_ |= 0x00001000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> topFansListBuilder_; + + /** + * repeated .User topFansList = 45; + */ + public java.util.List getTopFansListList() { + if (topFansListBuilder_ == null) { + return java.util.Collections.unmodifiableList(topFansList_); + } else { + return topFansListBuilder_.getMessageList(); + } + } + /** + * repeated .User topFansList = 45; + */ + public int getTopFansListCount() { + if (topFansListBuilder_ == null) { + return topFansList_.size(); + } else { + return topFansListBuilder_.getCount(); + } + } + /** + * repeated .User topFansList = 45; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getTopFansList(int index) { + if (topFansListBuilder_ == null) { + return topFansList_.get(index); + } else { + return topFansListBuilder_.getMessage(index); + } + } + /** + * repeated .User topFansList = 45; + */ + public Builder setTopFansList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (topFansListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopFansListIsMutable(); + topFansList_.set(index, value); + onChanged(); + } else { + topFansListBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder setTopFansList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + topFansList_.set(index, builderForValue.build()); + onChanged(); + } else { + topFansListBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder addTopFansList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (topFansListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopFansListIsMutable(); + topFansList_.add(value); + onChanged(); + } else { + topFansListBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder addTopFansList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User value) { + if (topFansListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTopFansListIsMutable(); + topFansList_.add(index, value); + onChanged(); + } else { + topFansListBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder addTopFansList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + topFansList_.add(builderForValue.build()); + onChanged(); + } else { + topFansListBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder addTopFansList( + int index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder builderForValue) { + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + topFansList_.add(index, builderForValue.build()); + onChanged(); + } else { + topFansListBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder addAllTopFansList( + java.lang.Iterable values) { + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, topFansList_); + onChanged(); + } else { + topFansListBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder clearTopFansList() { + if (topFansListBuilder_ == null) { + topFansList_ = java.util.Collections.emptyList(); + bitField1_ = (bitField1_ & ~0x00001000); + onChanged(); + } else { + topFansListBuilder_.clear(); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public Builder removeTopFansList(int index) { + if (topFansListBuilder_ == null) { + ensureTopFansListIsMutable(); + topFansList_.remove(index); + onChanged(); + } else { + topFansListBuilder_.remove(index); + } + return this; + } + /** + * repeated .User topFansList = 45; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder getTopFansListBuilder( + int index) { + return getTopFansListFieldBuilder().getBuilder(index); + } + /** + * repeated .User topFansList = 45; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder getTopFansListOrBuilder( + int index) { + if (topFansListBuilder_ == null) { + return topFansList_.get(index); } else { + return topFansListBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .User topFansList = 45; + */ + public java.util.List + getTopFansListOrBuilderList() { + if (topFansListBuilder_ != null) { + return topFansListBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(topFansList_); + } + } + /** + * repeated .User topFansList = 45; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder addTopFansListBuilder() { + return getTopFansListFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()); + } + /** + * repeated .User topFansList = 45; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder addTopFansListBuilder( + int index) { + return getTopFansListFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.getDefaultInstance()); + } + /** + * repeated .User topFansList = 45; + */ + public java.util.List + getTopFansListBuilderList() { + return getTopFansListFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder> + getTopFansListFieldBuilder() { + if (topFansListBuilder_ == null) { + topFansListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.UserOrBuilder>( + topFansList_, + ((bitField1_ & 0x00001000) != 0), + getParentForChildren(), + isClean()); + topFansList_ = null; + } + return topFansListBuilder_; + } + + private java.lang.Object secUid_ = ""; + /** + * string secUid = 46; + * @return The secUid. + */ + public java.lang.String getSecUid() { + java.lang.Object ref = secUid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + secUid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string secUid = 46; + * @return The bytes for secUid. + */ + public com.google.protobuf.ByteString + getSecUidBytes() { + java.lang.Object ref = secUid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + secUid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string secUid = 46; + * @param value The secUid to set. + * @return This builder for chaining. + */ + public Builder setSecUid( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + secUid_ = value; + bitField1_ |= 0x00002000; + onChanged(); + return this; + } + /** + * string secUid = 46; + * @return This builder for chaining. + */ + public Builder clearSecUid() { + secUid_ = getDefaultInstance().getSecUid(); + bitField1_ = (bitField1_ & ~0x00002000); + onChanged(); + return this; + } + /** + * string secUid = 46; + * @param value The bytes for secUid to set. + * @return This builder for chaining. + */ + public Builder setSecUidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + secUid_ = value; + bitField1_ |= 0x00002000; + onChanged(); + return this; + } + + private int userRole_ ; + /** + * int32 userRole = 47; + * @return The userRole. + */ + @java.lang.Override + public int getUserRole() { + return userRole_; + } + /** + * int32 userRole = 47; + * @param value The userRole to set. + * @return This builder for chaining. + */ + public Builder setUserRole(int value) { + + userRole_ = value; + bitField1_ |= 0x00004000; + onChanged(); + return this; + } + /** + * int32 userRole = 47; + * @return This builder for chaining. + */ + public Builder clearUserRole() { + bitField1_ = (bitField1_ & ~0x00004000); + userRole_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams xiguaInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder> xiguaInfoBuilder_; + /** + * .User.XiguaParams xiguaInfo = 48; + * @return Whether the xiguaInfo field is set. + */ + public boolean hasXiguaInfo() { + return ((bitField1_ & 0x00008000) != 0); + } + /** + * .User.XiguaParams xiguaInfo = 48; + * @return The xiguaInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams getXiguaInfo() { + if (xiguaInfoBuilder_ == null) { + return xiguaInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; + } else { + return xiguaInfoBuilder_.getMessage(); + } + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public Builder setXiguaInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams value) { + if (xiguaInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + xiguaInfo_ = value; + } else { + xiguaInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public Builder setXiguaInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder builderForValue) { + if (xiguaInfoBuilder_ == null) { + xiguaInfo_ = builderForValue.build(); + } else { + xiguaInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public Builder mergeXiguaInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams value) { + if (xiguaInfoBuilder_ == null) { + if (((bitField1_ & 0x00008000) != 0) && + xiguaInfo_ != null && + xiguaInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance()) { + getXiguaInfoBuilder().mergeFrom(value); + } else { + xiguaInfo_ = value; + } + } else { + xiguaInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00008000; + onChanged(); + return this; + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public Builder clearXiguaInfo() { + bitField1_ = (bitField1_ & ~0x00008000); + xiguaInfo_ = null; + if (xiguaInfoBuilder_ != null) { + xiguaInfoBuilder_.dispose(); + xiguaInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder getXiguaInfoBuilder() { + bitField1_ |= 0x00008000; + onChanged(); + return getXiguaInfoFieldBuilder().getBuilder(); + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder getXiguaInfoOrBuilder() { + if (xiguaInfoBuilder_ != null) { + return xiguaInfoBuilder_.getMessageOrBuilder(); + } else { + return xiguaInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.getDefaultInstance() : xiguaInfo_; + } + } + /** + * .User.XiguaParams xiguaInfo = 48; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder> + getXiguaInfoFieldBuilder() { + if (xiguaInfoBuilder_ == null) { + xiguaInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.XiguaParamsOrBuilder>( + getXiguaInfo(), + getParentForChildren(), + isClean()); + xiguaInfo_ = null; + } + return xiguaInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo activityReward_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder> activityRewardBuilder_; + /** + * .User.ActivityInfo activityReward = 49; + * @return Whether the activityReward field is set. + */ + public boolean hasActivityReward() { + return ((bitField1_ & 0x00010000) != 0); + } + /** + * .User.ActivityInfo activityReward = 49; + * @return The activityReward. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo getActivityReward() { + if (activityRewardBuilder_ == null) { + return activityReward_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; + } else { + return activityRewardBuilder_.getMessage(); + } + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public Builder setActivityReward(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo value) { + if (activityRewardBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + activityReward_ = value; + } else { + activityRewardBuilder_.setMessage(value); + } + bitField1_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public Builder setActivityReward( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder builderForValue) { + if (activityRewardBuilder_ == null) { + activityReward_ = builderForValue.build(); + } else { + activityRewardBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public Builder mergeActivityReward(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo value) { + if (activityRewardBuilder_ == null) { + if (((bitField1_ & 0x00010000) != 0) && + activityReward_ != null && + activityReward_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance()) { + getActivityRewardBuilder().mergeFrom(value); + } else { + activityReward_ = value; + } + } else { + activityRewardBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00010000; + onChanged(); + return this; + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public Builder clearActivityReward() { + bitField1_ = (bitField1_ & ~0x00010000); + activityReward_ = null; + if (activityRewardBuilder_ != null) { + activityRewardBuilder_.dispose(); + activityRewardBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder getActivityRewardBuilder() { + bitField1_ |= 0x00010000; + onChanged(); + return getActivityRewardFieldBuilder().getBuilder(); + } + /** + * .User.ActivityInfo activityReward = 49; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder getActivityRewardOrBuilder() { + if (activityRewardBuilder_ != null) { + return activityRewardBuilder_.getMessageOrBuilder(); + } else { + return activityReward_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.getDefaultInstance() : activityReward_; + } + } + /** + * .User.ActivityInfo activityReward = 49; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder> + getActivityRewardFieldBuilder() { + if (activityRewardBuilder_ == null) { + activityRewardBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ActivityInfoOrBuilder>( + getActivityReward(), + getParentForChildren(), + isClean()); + activityReward_ = null; + } + return activityRewardBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo nobleInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder> nobleInfoBuilder_; + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return Whether the nobleInfo field is set. + */ + public boolean hasNobleInfo() { + return ((bitField1_ & 0x00020000) != 0); + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + * @return The nobleInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo getNobleInfo() { + if (nobleInfoBuilder_ == null) { + return nobleInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; + } else { + return nobleInfoBuilder_.getMessage(); + } + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public Builder setNobleInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo value) { + if (nobleInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nobleInfo_ = value; + } else { + nobleInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public Builder setNobleInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder builderForValue) { + if (nobleInfoBuilder_ == null) { + nobleInfo_ = builderForValue.build(); + } else { + nobleInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public Builder mergeNobleInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo value) { + if (nobleInfoBuilder_ == null) { + if (((bitField1_ & 0x00020000) != 0) && + nobleInfo_ != null && + nobleInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance()) { + getNobleInfoBuilder().mergeFrom(value); + } else { + nobleInfo_ = value; + } + } else { + nobleInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00020000; + onChanged(); + return this; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public Builder clearNobleInfo() { + bitField1_ = (bitField1_ & ~0x00020000); + nobleInfo_ = null; + if (nobleInfoBuilder_ != null) { + nobleInfoBuilder_.dispose(); + nobleInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder getNobleInfoBuilder() { + bitField1_ |= 0x00020000; + onChanged(); + return getNobleInfoFieldBuilder().getBuilder(); + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder getNobleInfoOrBuilder() { + if (nobleInfoBuilder_ != null) { + return nobleInfoBuilder_.getMessageOrBuilder(); + } else { + return nobleInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.getDefaultInstance() : nobleInfo_; + } + } + /** + * .User.NobleLevelInfo nobleInfo = 50; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder> + getNobleInfoFieldBuilder() { + if (nobleInfoBuilder_ == null) { + nobleInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.NobleLevelInfoOrBuilder>( + getNobleInfo(), + getParentForChildren(), + isClean()); + nobleInfo_ = null; + } + return nobleInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo brotherhoodInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder> brotherhoodInfoBuilder_; + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return Whether the brotherhoodInfo field is set. + */ + public boolean hasBrotherhoodInfo() { + return ((bitField1_ & 0x00040000) != 0); + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + * @return The brotherhoodInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo getBrotherhoodInfo() { + if (brotherhoodInfoBuilder_ == null) { + return brotherhoodInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; + } else { + return brotherhoodInfoBuilder_.getMessage(); + } + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public Builder setBrotherhoodInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo value) { + if (brotherhoodInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + brotherhoodInfo_ = value; + } else { + brotherhoodInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public Builder setBrotherhoodInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder builderForValue) { + if (brotherhoodInfoBuilder_ == null) { + brotherhoodInfo_ = builderForValue.build(); + } else { + brotherhoodInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public Builder mergeBrotherhoodInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo value) { + if (brotherhoodInfoBuilder_ == null) { + if (((bitField1_ & 0x00040000) != 0) && + brotherhoodInfo_ != null && + brotherhoodInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance()) { + getBrotherhoodInfoBuilder().mergeFrom(value); + } else { + brotherhoodInfo_ = value; + } + } else { + brotherhoodInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public Builder clearBrotherhoodInfo() { + bitField1_ = (bitField1_ & ~0x00040000); + brotherhoodInfo_ = null; + if (brotherhoodInfoBuilder_ != null) { + brotherhoodInfoBuilder_.dispose(); + brotherhoodInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder getBrotherhoodInfoBuilder() { + bitField1_ |= 0x00040000; + onChanged(); + return getBrotherhoodInfoFieldBuilder().getBuilder(); + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder getBrotherhoodInfoOrBuilder() { + if (brotherhoodInfoBuilder_ != null) { + return brotherhoodInfoBuilder_.getMessageOrBuilder(); + } else { + return brotherhoodInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.getDefaultInstance() : brotherhoodInfo_; + } + } + /** + * .User.BrotherhoodInfo brotherhoodInfo = 51; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder> + getBrotherhoodInfoFieldBuilder() { + if (brotherhoodInfoBuilder_ == null) { + brotherhoodInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.BrotherhoodInfoOrBuilder>( + getBrotherhoodInfo(), + getParentForChildren(), + isClean()); + brotherhoodInfo_ = null; + } + return brotherhoodInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image personalCard_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> personalCardBuilder_; + /** + * .Image personalCard = 52; + * @return Whether the personalCard field is set. + */ + public boolean hasPersonalCard() { + return ((bitField1_ & 0x00080000) != 0); + } + /** + * .Image personalCard = 52; + * @return The personalCard. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getPersonalCard() { + if (personalCardBuilder_ == null) { + return personalCard_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; + } else { + return personalCardBuilder_.getMessage(); + } + } + /** + * .Image personalCard = 52; + */ + public Builder setPersonalCard(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (personalCardBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + personalCard_ = value; + } else { + personalCardBuilder_.setMessage(value); + } + bitField1_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image personalCard = 52; + */ + public Builder setPersonalCard( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (personalCardBuilder_ == null) { + personalCard_ = builderForValue.build(); + } else { + personalCardBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image personalCard = 52; + */ + public Builder mergePersonalCard(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (personalCardBuilder_ == null) { + if (((bitField1_ & 0x00080000) != 0) && + personalCard_ != null && + personalCard_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getPersonalCardBuilder().mergeFrom(value); + } else { + personalCard_ = value; + } + } else { + personalCardBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00080000; + onChanged(); + return this; + } + /** + * .Image personalCard = 52; + */ + public Builder clearPersonalCard() { + bitField1_ = (bitField1_ & ~0x00080000); + personalCard_ = null; + if (personalCardBuilder_ != null) { + personalCardBuilder_.dispose(); + personalCardBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image personalCard = 52; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getPersonalCardBuilder() { + bitField1_ |= 0x00080000; + onChanged(); + return getPersonalCardFieldBuilder().getBuilder(); + } + /** + * .Image personalCard = 52; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getPersonalCardOrBuilder() { + if (personalCardBuilder_ != null) { + return personalCardBuilder_.getMessageOrBuilder(); + } else { + return personalCard_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : personalCard_; + } + } + /** + * .Image personalCard = 52; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getPersonalCardFieldBuilder() { + if (personalCardBuilder_ == null) { + personalCardBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getPersonalCard(), + getParentForChildren(), + isClean()); + personalCard_ = null; + } + return personalCardBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo authenticationInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder> authenticationInfoBuilder_; + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return Whether the authenticationInfo field is set. + */ + public boolean hasAuthenticationInfo() { + return ((bitField1_ & 0x00100000) != 0); + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + * @return The authenticationInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo getAuthenticationInfo() { + if (authenticationInfoBuilder_ == null) { + return authenticationInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; + } else { + return authenticationInfoBuilder_.getMessage(); + } + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public Builder setAuthenticationInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo value) { + if (authenticationInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + authenticationInfo_ = value; + } else { + authenticationInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public Builder setAuthenticationInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder builderForValue) { + if (authenticationInfoBuilder_ == null) { + authenticationInfo_ = builderForValue.build(); + } else { + authenticationInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public Builder mergeAuthenticationInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo value) { + if (authenticationInfoBuilder_ == null) { + if (((bitField1_ & 0x00100000) != 0) && + authenticationInfo_ != null && + authenticationInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance()) { + getAuthenticationInfoBuilder().mergeFrom(value); + } else { + authenticationInfo_ = value; + } + } else { + authenticationInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public Builder clearAuthenticationInfo() { + bitField1_ = (bitField1_ & ~0x00100000); + authenticationInfo_ = null; + if (authenticationInfoBuilder_ != null) { + authenticationInfoBuilder_.dispose(); + authenticationInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder getAuthenticationInfoBuilder() { + bitField1_ |= 0x00100000; + onChanged(); + return getAuthenticationInfoFieldBuilder().getBuilder(); + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder getAuthenticationInfoOrBuilder() { + if (authenticationInfoBuilder_ != null) { + return authenticationInfoBuilder_.getMessageOrBuilder(); + } else { + return authenticationInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.getDefaultInstance() : authenticationInfo_; + } + } + /** + * .User.AuthenticationInfo authenticationInfo = 53; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder> + getAuthenticationInfoFieldBuilder() { + if (authenticationInfoBuilder_ == null) { + authenticationInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AuthenticationInfoOrBuilder>( + getAuthenticationInfo(), + getParentForChildren(), + isClean()); + authenticationInfo_ = null; + } + return authenticationInfoBuilder_; + } + + private int authorizationInfo_ ; + /** + * int32 authorizationInfo = 54; + * @return The authorizationInfo. + */ + @java.lang.Override + public int getAuthorizationInfo() { + return authorizationInfo_; + } + /** + * int32 authorizationInfo = 54; + * @param value The authorizationInfo to set. + * @return This builder for chaining. + */ + public Builder setAuthorizationInfo(int value) { + + authorizationInfo_ = value; + bitField1_ |= 0x00200000; + onChanged(); + return this; + } + /** + * int32 authorizationInfo = 54; + * @return This builder for chaining. + */ + public Builder clearAuthorizationInfo() { + bitField1_ = (bitField1_ & ~0x00200000); + authorizationInfo_ = 0; + onChanged(); + return this; + } + + private int adversaryAuthorizationInfo_ ; + /** + * int32 adversaryAuthorizationInfo = 55; + * @return The adversaryAuthorizationInfo. + */ + @java.lang.Override + public int getAdversaryAuthorizationInfo() { + return adversaryAuthorizationInfo_; + } + /** + * int32 adversaryAuthorizationInfo = 55; + * @param value The adversaryAuthorizationInfo to set. + * @return This builder for chaining. + */ + public Builder setAdversaryAuthorizationInfo(int value) { + + adversaryAuthorizationInfo_ = value; + bitField1_ |= 0x00400000; + onChanged(); + return this; + } + /** + * int32 adversaryAuthorizationInfo = 55; + * @return This builder for chaining. + */ + public Builder clearAdversaryAuthorizationInfo() { + bitField1_ = (bitField1_ & ~0x00400000); + adversaryAuthorizationInfo_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo poiInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder> poiInfoBuilder_; + /** + * .User.PoiInfo poiInfo = 56; + * @return Whether the poiInfo field is set. + */ + public boolean hasPoiInfo() { + return ((bitField1_ & 0x00800000) != 0); + } + /** + * .User.PoiInfo poiInfo = 56; + * @return The poiInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo getPoiInfo() { + if (poiInfoBuilder_ == null) { + return poiInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; + } else { + return poiInfoBuilder_.getMessage(); + } + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public Builder setPoiInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo value) { + if (poiInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + poiInfo_ = value; + } else { + poiInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public Builder setPoiInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder builderForValue) { + if (poiInfoBuilder_ == null) { + poiInfo_ = builderForValue.build(); + } else { + poiInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public Builder mergePoiInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo value) { + if (poiInfoBuilder_ == null) { + if (((bitField1_ & 0x00800000) != 0) && + poiInfo_ != null && + poiInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance()) { + getPoiInfoBuilder().mergeFrom(value); + } else { + poiInfo_ = value; + } + } else { + poiInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x00800000; + onChanged(); + return this; + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public Builder clearPoiInfo() { + bitField1_ = (bitField1_ & ~0x00800000); + poiInfo_ = null; + if (poiInfoBuilder_ != null) { + poiInfoBuilder_.dispose(); + poiInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder getPoiInfoBuilder() { + bitField1_ |= 0x00800000; + onChanged(); + return getPoiInfoFieldBuilder().getBuilder(); + } + /** + * .User.PoiInfo poiInfo = 56; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder getPoiInfoOrBuilder() { + if (poiInfoBuilder_ != null) { + return poiInfoBuilder_.getMessageOrBuilder(); + } else { + return poiInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.getDefaultInstance() : poiInfo_; + } + } + /** + * .User.PoiInfo poiInfo = 56; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder> + getPoiInfoFieldBuilder() { + if (poiInfoBuilder_ == null) { + poiInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.PoiInfoOrBuilder>( + getPoiInfo(), + getParentForChildren(), + isClean()); + poiInfo_ = null; + } + return poiInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image mediaBadgeImageListList_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> mediaBadgeImageListListBuilder_; + /** + * .Image mediaBadgeImageListList = 57; + * @return Whether the mediaBadgeImageListList field is set. + */ + public boolean hasMediaBadgeImageListList() { + return ((bitField1_ & 0x01000000) != 0); + } + /** + * .Image mediaBadgeImageListList = 57; + * @return The mediaBadgeImageListList. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getMediaBadgeImageListList() { + if (mediaBadgeImageListListBuilder_ == null) { + return mediaBadgeImageListList_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; + } else { + return mediaBadgeImageListListBuilder_.getMessage(); + } + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public Builder setMediaBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (mediaBadgeImageListListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mediaBadgeImageListList_ = value; + } else { + mediaBadgeImageListListBuilder_.setMessage(value); + } + bitField1_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public Builder setMediaBadgeImageListList( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (mediaBadgeImageListListBuilder_ == null) { + mediaBadgeImageListList_ = builderForValue.build(); + } else { + mediaBadgeImageListListBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public Builder mergeMediaBadgeImageListList(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (mediaBadgeImageListListBuilder_ == null) { + if (((bitField1_ & 0x01000000) != 0) && + mediaBadgeImageListList_ != null && + mediaBadgeImageListList_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getMediaBadgeImageListListBuilder().mergeFrom(value); + } else { + mediaBadgeImageListList_ = value; + } + } else { + mediaBadgeImageListListBuilder_.mergeFrom(value); + } + bitField1_ |= 0x01000000; + onChanged(); + return this; + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public Builder clearMediaBadgeImageListList() { + bitField1_ = (bitField1_ & ~0x01000000); + mediaBadgeImageListList_ = null; + if (mediaBadgeImageListListBuilder_ != null) { + mediaBadgeImageListListBuilder_.dispose(); + mediaBadgeImageListListBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getMediaBadgeImageListListBuilder() { + bitField1_ |= 0x01000000; + onChanged(); + return getMediaBadgeImageListListFieldBuilder().getBuilder(); + } + /** + * .Image mediaBadgeImageListList = 57; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getMediaBadgeImageListListOrBuilder() { + if (mediaBadgeImageListListBuilder_ != null) { + return mediaBadgeImageListListBuilder_.getMessageOrBuilder(); + } else { + return mediaBadgeImageListList_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : mediaBadgeImageListList_; + } + } + /** + * .Image mediaBadgeImageListList = 57; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getMediaBadgeImageListListFieldBuilder() { + if (mediaBadgeImageListListBuilder_ == null) { + mediaBadgeImageListListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getMediaBadgeImageListList(), + getParentForChildren(), + isClean()); + mediaBadgeImageListList_ = null; + } + return mediaBadgeImageListListBuilder_; + } + + private int adversaryUserStatus_ ; + /** + * int32 adversaryUserStatus = 58; + * @return The adversaryUserStatus. + */ + @java.lang.Override + public int getAdversaryUserStatus() { + return adversaryUserStatus_; + } + /** + * int32 adversaryUserStatus = 58; + * @param value The adversaryUserStatus to set. + * @return This builder for chaining. + */ + public Builder setAdversaryUserStatus(int value) { + + adversaryUserStatus_ = value; + bitField1_ |= 0x02000000; + onChanged(); + return this; + } + /** + * int32 adversaryUserStatus = 58; + * @return This builder for chaining. + */ + public Builder clearAdversaryUserStatus() { + bitField1_ = (bitField1_ & ~0x02000000); + adversaryUserStatus_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo userVipInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder> userVipInfoBuilder_; + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return Whether the userVipInfo field is set. + */ + public boolean hasUserVipInfo() { + return ((bitField1_ & 0x04000000) != 0); + } + /** + * .User.UserVIPInfo userVipInfo = 59; + * @return The userVipInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo getUserVipInfo() { + if (userVipInfoBuilder_ == null) { + return userVipInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; + } else { + return userVipInfoBuilder_.getMessage(); + } + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public Builder setUserVipInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo value) { + if (userVipInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + userVipInfo_ = value; + } else { + userVipInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public Builder setUserVipInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder builderForValue) { + if (userVipInfoBuilder_ == null) { + userVipInfo_ = builderForValue.build(); + } else { + userVipInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public Builder mergeUserVipInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo value) { + if (userVipInfoBuilder_ == null) { + if (((bitField1_ & 0x04000000) != 0) && + userVipInfo_ != null && + userVipInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance()) { + getUserVipInfoBuilder().mergeFrom(value); + } else { + userVipInfo_ = value; + } + } else { + userVipInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x04000000; + onChanged(); + return this; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public Builder clearUserVipInfo() { + bitField1_ = (bitField1_ & ~0x04000000); + userVipInfo_ = null; + if (userVipInfoBuilder_ != null) { + userVipInfoBuilder_.dispose(); + userVipInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder getUserVipInfoBuilder() { + bitField1_ |= 0x04000000; + onChanged(); + return getUserVipInfoFieldBuilder().getBuilder(); + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder getUserVipInfoOrBuilder() { + if (userVipInfoBuilder_ != null) { + return userVipInfoBuilder_.getMessageOrBuilder(); + } else { + return userVipInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.getDefaultInstance() : userVipInfo_; + } + } + /** + * .User.UserVIPInfo userVipInfo = 59; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder> + getUserVipInfoFieldBuilder() { + if (userVipInfoBuilder_ == null) { + userVipInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserVIPInfoOrBuilder>( + getUserVipInfo(), + getParentForChildren(), + isClean()); + userVipInfo_ = null; + } + return userVipInfoBuilder_; + } + + private com.google.protobuf.Internal.LongList commerceWebcastConfigIdsList_ = emptyLongList(); + private void ensureCommerceWebcastConfigIdsListIsMutable() { + if (!((bitField1_ & 0x08000000) != 0)) { + commerceWebcastConfigIdsList_ = mutableCopy(commerceWebcastConfigIdsList_); + bitField1_ |= 0x08000000; + } + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return A list containing the commerceWebcastConfigIdsList. + */ + public java.util.List + getCommerceWebcastConfigIdsListList() { + return ((bitField1_ & 0x08000000) != 0) ? + java.util.Collections.unmodifiableList(commerceWebcastConfigIdsList_) : commerceWebcastConfigIdsList_; + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return The count of commerceWebcastConfigIdsList. + */ + public int getCommerceWebcastConfigIdsListCount() { + return commerceWebcastConfigIdsList_.size(); + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param index The index of the element to return. + * @return The commerceWebcastConfigIdsList at the given index. + */ + public long getCommerceWebcastConfigIdsList(int index) { + return commerceWebcastConfigIdsList_.getLong(index); + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param index The index to set the value at. + * @param value The commerceWebcastConfigIdsList to set. + * @return This builder for chaining. + */ + public Builder setCommerceWebcastConfigIdsList( + int index, long value) { + + ensureCommerceWebcastConfigIdsListIsMutable(); + commerceWebcastConfigIdsList_.setLong(index, value); + onChanged(); + return this; + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param value The commerceWebcastConfigIdsList to add. + * @return This builder for chaining. + */ + public Builder addCommerceWebcastConfigIdsList(long value) { + + ensureCommerceWebcastConfigIdsListIsMutable(); + commerceWebcastConfigIdsList_.addLong(value); + onChanged(); + return this; + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @param values The commerceWebcastConfigIdsList to add. + * @return This builder for chaining. + */ + public Builder addAllCommerceWebcastConfigIdsList( + java.lang.Iterable values) { + ensureCommerceWebcastConfigIdsListIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, commerceWebcastConfigIdsList_); + onChanged(); + return this; + } + /** + * repeated int64 commerceWebcastConfigIdsList = 60; + * @return This builder for chaining. + */ + public Builder clearCommerceWebcastConfigIdsList() { + commerceWebcastConfigIdsList_ = emptyLongList(); + bitField1_ = (bitField1_ & ~0x08000000); + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image badgeImageListV2List_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> badgeImageListV2ListBuilder_; + /** + * .Image badgeImageListV2List = 61; + * @return Whether the badgeImageListV2List field is set. + */ + public boolean hasBadgeImageListV2List() { + return ((bitField1_ & 0x10000000) != 0); + } + /** + * .Image badgeImageListV2List = 61; + * @return The badgeImageListV2List. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getBadgeImageListV2List() { + if (badgeImageListV2ListBuilder_ == null) { + return badgeImageListV2List_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; + } else { + return badgeImageListV2ListBuilder_.getMessage(); + } + } + /** + * .Image badgeImageListV2List = 61; + */ + public Builder setBadgeImageListV2List(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (badgeImageListV2ListBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + badgeImageListV2List_ = value; + } else { + badgeImageListV2ListBuilder_.setMessage(value); + } + bitField1_ |= 0x10000000; + onChanged(); + return this; + } + /** + * .Image badgeImageListV2List = 61; + */ + public Builder setBadgeImageListV2List( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (badgeImageListV2ListBuilder_ == null) { + badgeImageListV2List_ = builderForValue.build(); + } else { + badgeImageListV2ListBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x10000000; + onChanged(); + return this; + } + /** + * .Image badgeImageListV2List = 61; + */ + public Builder mergeBadgeImageListV2List(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (badgeImageListV2ListBuilder_ == null) { + if (((bitField1_ & 0x10000000) != 0) && + badgeImageListV2List_ != null && + badgeImageListV2List_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getBadgeImageListV2ListBuilder().mergeFrom(value); + } else { + badgeImageListV2List_ = value; + } + } else { + badgeImageListV2ListBuilder_.mergeFrom(value); + } + bitField1_ |= 0x10000000; + onChanged(); + return this; + } + /** + * .Image badgeImageListV2List = 61; + */ + public Builder clearBadgeImageListV2List() { + bitField1_ = (bitField1_ & ~0x10000000); + badgeImageListV2List_ = null; + if (badgeImageListV2ListBuilder_ != null) { + badgeImageListV2ListBuilder_.dispose(); + badgeImageListV2ListBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image badgeImageListV2List = 61; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getBadgeImageListV2ListBuilder() { + bitField1_ |= 0x10000000; + onChanged(); + return getBadgeImageListV2ListFieldBuilder().getBuilder(); + } + /** + * .Image badgeImageListV2List = 61; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getBadgeImageListV2ListOrBuilder() { + if (badgeImageListV2ListBuilder_ != null) { + return badgeImageListV2ListBuilder_.getMessageOrBuilder(); + } else { + return badgeImageListV2List_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : badgeImageListV2List_; + } + } + /** + * .Image badgeImageListV2List = 61; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getBadgeImageListV2ListFieldBuilder() { + if (badgeImageListV2ListBuilder_ == null) { + badgeImageListV2ListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getBadgeImageListV2List(), + getParentForChildren(), + isClean()); + badgeImageListV2List_ = null; + } + return badgeImageListV2ListBuilder_; + } + + private java.lang.Object locationCity_ = ""; + /** + *
+       * IndustryCertification  industryCertification = 62;
+       * 
+ * + * string locationCity = 63; + * @return The locationCity. + */ + public java.lang.String getLocationCity() { + java.lang.Object ref = locationCity_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + locationCity_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * IndustryCertification  industryCertification = 62;
+       * 
+ * + * string locationCity = 63; + * @return The bytes for locationCity. + */ + public com.google.protobuf.ByteString + getLocationCityBytes() { + java.lang.Object ref = locationCity_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + locationCity_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * IndustryCertification  industryCertification = 62;
+       * 
+ * + * string locationCity = 63; + * @param value The locationCity to set. + * @return This builder for chaining. + */ + public Builder setLocationCity( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + locationCity_ = value; + bitField1_ |= 0x20000000; + onChanged(); + return this; + } + /** + *
+       * IndustryCertification  industryCertification = 62;
+       * 
+ * + * string locationCity = 63; + * @return This builder for chaining. + */ + public Builder clearLocationCity() { + locationCity_ = getDefaultInstance().getLocationCity(); + bitField1_ = (bitField1_ & ~0x20000000); + onChanged(); + return this; + } + /** + *
+       * IndustryCertification  industryCertification = 62;
+       * 
+ * + * string locationCity = 63; + * @param value The bytes for locationCity to set. + * @return This builder for chaining. + */ + public Builder setLocationCityBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + locationCity_ = value; + bitField1_ |= 0x20000000; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo fansGroupInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder> fansGroupInfoBuilder_; + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return Whether the fansGroupInfo field is set. + */ + public boolean hasFansGroupInfo() { + return ((bitField1_ & 0x40000000) != 0); + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + * @return The fansGroupInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo getFansGroupInfo() { + if (fansGroupInfoBuilder_ == null) { + return fansGroupInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; + } else { + return fansGroupInfoBuilder_.getMessage(); + } + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public Builder setFansGroupInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo value) { + if (fansGroupInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + fansGroupInfo_ = value; + } else { + fansGroupInfoBuilder_.setMessage(value); + } + bitField1_ |= 0x40000000; + onChanged(); + return this; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public Builder setFansGroupInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder builderForValue) { + if (fansGroupInfoBuilder_ == null) { + fansGroupInfo_ = builderForValue.build(); + } else { + fansGroupInfoBuilder_.setMessage(builderForValue.build()); + } + bitField1_ |= 0x40000000; + onChanged(); + return this; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public Builder mergeFansGroupInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo value) { + if (fansGroupInfoBuilder_ == null) { + if (((bitField1_ & 0x40000000) != 0) && + fansGroupInfo_ != null && + fansGroupInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance()) { + getFansGroupInfoBuilder().mergeFrom(value); + } else { + fansGroupInfo_ = value; + } + } else { + fansGroupInfoBuilder_.mergeFrom(value); + } + bitField1_ |= 0x40000000; + onChanged(); + return this; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public Builder clearFansGroupInfo() { + bitField1_ = (bitField1_ & ~0x40000000); + fansGroupInfo_ = null; + if (fansGroupInfoBuilder_ != null) { + fansGroupInfoBuilder_.dispose(); + fansGroupInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder getFansGroupInfoBuilder() { + bitField1_ |= 0x40000000; + onChanged(); + return getFansGroupInfoFieldBuilder().getBuilder(); + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder getFansGroupInfoOrBuilder() { + if (fansGroupInfoBuilder_ != null) { + return fansGroupInfoBuilder_.getMessageOrBuilder(); + } else { + return fansGroupInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.getDefaultInstance() : fansGroupInfo_; + } + } + /** + * .User.FansGroupInfo fansGroupInfo = 64; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder> + getFansGroupInfoFieldBuilder() { + if (fansGroupInfoBuilder_ == null) { + fansGroupInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.FansGroupInfoOrBuilder>( + getFansGroupInfo(), + getParentForChildren(), + isClean()); + fansGroupInfo_ = null; + } + return fansGroupInfoBuilder_; + } + + private java.lang.Object remarkName_ = ""; + /** + * string remarkName = 65; + * @return The remarkName. + */ + public java.lang.String getRemarkName() { + java.lang.Object ref = remarkName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + remarkName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string remarkName = 65; + * @return The bytes for remarkName. + */ + public com.google.protobuf.ByteString + getRemarkNameBytes() { + java.lang.Object ref = remarkName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + remarkName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string remarkName = 65; + * @param value The remarkName to set. + * @return This builder for chaining. + */ + public Builder setRemarkName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + remarkName_ = value; + bitField1_ |= 0x80000000; + onChanged(); + return this; + } + /** + * string remarkName = 65; + * @return This builder for chaining. + */ + public Builder clearRemarkName() { + remarkName_ = getDefaultInstance().getRemarkName(); + bitField1_ = (bitField1_ & ~0x80000000); + onChanged(); + return this; + } + /** + * string remarkName = 65; + * @param value The bytes for remarkName to set. + * @return This builder for chaining. + */ + public Builder setRemarkNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + remarkName_ = value; + bitField1_ |= 0x80000000; + onChanged(); + return this; + } + + private int mysteryMan_ ; + /** + * int32 mysteryMan = 66; + * @return The mysteryMan. + */ + @java.lang.Override + public int getMysteryMan() { + return mysteryMan_; + } + /** + * int32 mysteryMan = 66; + * @param value The mysteryMan to set. + * @return This builder for chaining. + */ + public Builder setMysteryMan(int value) { + + mysteryMan_ = value; + bitField2_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 mysteryMan = 66; + * @return This builder for chaining. + */ + public Builder clearMysteryMan() { + bitField2_ = (bitField2_ & ~0x00000001); + mysteryMan_ = 0; + onChanged(); + return this; + } + + private java.lang.Object webRid_ = ""; + /** + * string webRid = 67; + * @return The webRid. + */ + public java.lang.String getWebRid() { + java.lang.Object ref = webRid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + webRid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string webRid = 67; + * @return The bytes for webRid. + */ + public com.google.protobuf.ByteString + getWebRidBytes() { + java.lang.Object ref = webRid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + webRid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string webRid = 67; + * @param value The webRid to set. + * @return This builder for chaining. + */ + public Builder setWebRid( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + webRid_ = value; + bitField2_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string webRid = 67; + * @return This builder for chaining. + */ + public Builder clearWebRid() { + webRid_ = getDefaultInstance().getWebRid(); + bitField2_ = (bitField2_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string webRid = 67; + * @param value The bytes for webRid to set. + * @return This builder for chaining. + */ + public Builder setWebRidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + webRid_ = value; + bitField2_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object desensitizedNickname_ = ""; + /** + * string desensitizedNickname = 68; + * @return The desensitizedNickname. + */ + public java.lang.String getDesensitizedNickname() { + java.lang.Object ref = desensitizedNickname_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + desensitizedNickname_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string desensitizedNickname = 68; + * @return The bytes for desensitizedNickname. + */ + public com.google.protobuf.ByteString + getDesensitizedNicknameBytes() { + java.lang.Object ref = desensitizedNickname_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + desensitizedNickname_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string desensitizedNickname = 68; + * @param value The desensitizedNickname to set. + * @return This builder for chaining. + */ + public Builder setDesensitizedNickname( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + desensitizedNickname_ = value; + bitField2_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string desensitizedNickname = 68; + * @return This builder for chaining. + */ + public Builder clearDesensitizedNickname() { + desensitizedNickname_ = getDefaultInstance().getDesensitizedNickname(); + bitField2_ = (bitField2_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string desensitizedNickname = 68; + * @param value The bytes for desensitizedNickname to set. + * @return This builder for chaining. + */ + public Builder setDesensitizedNicknameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + desensitizedNickname_ = value; + bitField2_ |= 0x00000004; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo jAccreditInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder> jAccreditInfoBuilder_; + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return Whether the jAccreditInfo field is set. + */ + public boolean hasJAccreditInfo() { + return ((bitField2_ & 0x00000008) != 0); + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + * @return The jAccreditInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo getJAccreditInfo() { + if (jAccreditInfoBuilder_ == null) { + return jAccreditInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; + } else { + return jAccreditInfoBuilder_.getMessage(); + } + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public Builder setJAccreditInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo value) { + if (jAccreditInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + jAccreditInfo_ = value; + } else { + jAccreditInfoBuilder_.setMessage(value); + } + bitField2_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public Builder setJAccreditInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder builderForValue) { + if (jAccreditInfoBuilder_ == null) { + jAccreditInfo_ = builderForValue.build(); + } else { + jAccreditInfoBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public Builder mergeJAccreditInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo value) { + if (jAccreditInfoBuilder_ == null) { + if (((bitField2_ & 0x00000008) != 0) && + jAccreditInfo_ != null && + jAccreditInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance()) { + getJAccreditInfoBuilder().mergeFrom(value); + } else { + jAccreditInfo_ = value; + } + } else { + jAccreditInfoBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public Builder clearJAccreditInfo() { + bitField2_ = (bitField2_ & ~0x00000008); + jAccreditInfo_ = null; + if (jAccreditInfoBuilder_ != null) { + jAccreditInfoBuilder_.dispose(); + jAccreditInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder getJAccreditInfoBuilder() { + bitField2_ |= 0x00000008; + onChanged(); + return getJAccreditInfoFieldBuilder().getBuilder(); + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder getJAccreditInfoOrBuilder() { + if (jAccreditInfoBuilder_ != null) { + return jAccreditInfoBuilder_.getMessageOrBuilder(); + } else { + return jAccreditInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.getDefaultInstance() : jAccreditInfo_; + } + } + /** + * .User.JAccreditInfo jAccreditInfo = 69; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder> + getJAccreditInfoFieldBuilder() { + if (jAccreditInfoBuilder_ == null) { + jAccreditInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.JAccreditInfoOrBuilder>( + getJAccreditInfo(), + getParentForChildren(), + isClean()); + jAccreditInfo_ = null; + } + return jAccreditInfoBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe subscribe_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder> subscribeBuilder_; + /** + * .User.Subscribe subscribe = 70; + * @return Whether the subscribe field is set. + */ + public boolean hasSubscribe() { + return ((bitField2_ & 0x00000010) != 0); + } + /** + * .User.Subscribe subscribe = 70; + * @return The subscribe. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe getSubscribe() { + if (subscribeBuilder_ == null) { + return subscribe_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; + } else { + return subscribeBuilder_.getMessage(); + } + } + /** + * .User.Subscribe subscribe = 70; + */ + public Builder setSubscribe(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe value) { + if (subscribeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + subscribe_ = value; + } else { + subscribeBuilder_.setMessage(value); + } + bitField2_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User.Subscribe subscribe = 70; + */ + public Builder setSubscribe( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder builderForValue) { + if (subscribeBuilder_ == null) { + subscribe_ = builderForValue.build(); + } else { + subscribeBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User.Subscribe subscribe = 70; + */ + public Builder mergeSubscribe(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe value) { + if (subscribeBuilder_ == null) { + if (((bitField2_ & 0x00000010) != 0) && + subscribe_ != null && + subscribe_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance()) { + getSubscribeBuilder().mergeFrom(value); + } else { + subscribe_ = value; + } + } else { + subscribeBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .User.Subscribe subscribe = 70; + */ + public Builder clearSubscribe() { + bitField2_ = (bitField2_ & ~0x00000010); + subscribe_ = null; + if (subscribeBuilder_ != null) { + subscribeBuilder_.dispose(); + subscribeBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.Subscribe subscribe = 70; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder getSubscribeBuilder() { + bitField2_ |= 0x00000010; + onChanged(); + return getSubscribeFieldBuilder().getBuilder(); + } + /** + * .User.Subscribe subscribe = 70; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder getSubscribeOrBuilder() { + if (subscribeBuilder_ != null) { + return subscribeBuilder_.getMessageOrBuilder(); + } else { + return subscribe_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.getDefaultInstance() : subscribe_; + } + } + /** + * .User.Subscribe subscribe = 70; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder> + getSubscribeFieldBuilder() { + if (subscribeBuilder_ == null) { + subscribeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.Subscribe.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.SubscribeOrBuilder>( + getSubscribe(), + getParentForChildren(), + isClean()); + subscribe_ = null; + } + return subscribeBuilder_; + } + + private boolean isAnonymous_ ; + /** + * bool isAnonymous = 71; + * @return The isAnonymous. + */ + @java.lang.Override + public boolean getIsAnonymous() { + return isAnonymous_; + } + /** + * bool isAnonymous = 71; + * @param value The isAnonymous to set. + * @return This builder for chaining. + */ + public Builder setIsAnonymous(boolean value) { + + isAnonymous_ = value; + bitField2_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool isAnonymous = 71; + * @return This builder for chaining. + */ + public Builder clearIsAnonymous() { + bitField2_ = (bitField2_ & ~0x00000020); + isAnonymous_ = false; + onChanged(); + return this; + } + + private int consumeDiamondLevel_ ; + /** + * int32 consumeDiamondLevel = 72; + * @return The consumeDiamondLevel. + */ + @java.lang.Override + public int getConsumeDiamondLevel() { + return consumeDiamondLevel_; + } + /** + * int32 consumeDiamondLevel = 72; + * @param value The consumeDiamondLevel to set. + * @return This builder for chaining. + */ + public Builder setConsumeDiamondLevel(int value) { + + consumeDiamondLevel_ = value; + bitField2_ |= 0x00000040; + onChanged(); + return this; + } + /** + * int32 consumeDiamondLevel = 72; + * @return This builder for chaining. + */ + public Builder clearConsumeDiamondLevel() { + bitField2_ = (bitField2_ & ~0x00000040); + consumeDiamondLevel_ = 0; + onChanged(); + return this; + } + + private java.lang.Object webcastUid_ = ""; + /** + * string webcastUid = 73; + * @return The webcastUid. + */ + public java.lang.String getWebcastUid() { + java.lang.Object ref = webcastUid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + webcastUid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string webcastUid = 73; + * @return The bytes for webcastUid. + */ + public com.google.protobuf.ByteString + getWebcastUidBytes() { + java.lang.Object ref = webcastUid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + webcastUid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string webcastUid = 73; + * @param value The webcastUid to set. + * @return This builder for chaining. + */ + public Builder setWebcastUid( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + webcastUid_ = value; + bitField2_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string webcastUid = 73; + * @return This builder for chaining. + */ + public Builder clearWebcastUid() { + webcastUid_ = getDefaultInstance().getWebcastUid(); + bitField2_ = (bitField2_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string webcastUid = 73; + * @param value The bytes for webcastUid to set. + * @return This builder for chaining. + */ + public Builder setWebcastUidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + webcastUid_ = value; + bitField2_ |= 0x00000080; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams profileStyleParams_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder> profileStyleParamsBuilder_; + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return Whether the profileStyleParams field is set. + */ + public boolean hasProfileStyleParams() { + return ((bitField2_ & 0x00000100) != 0); + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + * @return The profileStyleParams. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams getProfileStyleParams() { + if (profileStyleParamsBuilder_ == null) { + return profileStyleParams_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; + } else { + return profileStyleParamsBuilder_.getMessage(); + } + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public Builder setProfileStyleParams(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams value) { + if (profileStyleParamsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + profileStyleParams_ = value; + } else { + profileStyleParamsBuilder_.setMessage(value); + } + bitField2_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public Builder setProfileStyleParams( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder builderForValue) { + if (profileStyleParamsBuilder_ == null) { + profileStyleParams_ = builderForValue.build(); + } else { + profileStyleParamsBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public Builder mergeProfileStyleParams(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams value) { + if (profileStyleParamsBuilder_ == null) { + if (((bitField2_ & 0x00000100) != 0) && + profileStyleParams_ != null && + profileStyleParams_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance()) { + getProfileStyleParamsBuilder().mergeFrom(value); + } else { + profileStyleParams_ = value; + } + } else { + profileStyleParamsBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00000100; + onChanged(); + return this; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public Builder clearProfileStyleParams() { + bitField2_ = (bitField2_ & ~0x00000100); + profileStyleParams_ = null; + if (profileStyleParamsBuilder_ != null) { + profileStyleParamsBuilder_.dispose(); + profileStyleParamsBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder getProfileStyleParamsBuilder() { + bitField2_ |= 0x00000100; + onChanged(); + return getProfileStyleParamsFieldBuilder().getBuilder(); + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder getProfileStyleParamsOrBuilder() { + if (profileStyleParamsBuilder_ != null) { + return profileStyleParamsBuilder_.getMessageOrBuilder(); + } else { + return profileStyleParams_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.getDefaultInstance() : profileStyleParams_; + } + } + /** + * .User.ProfileStyleParams profileStyleParams = 74; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder> + getProfileStyleParamsFieldBuilder() { + if (profileStyleParamsBuilder_ == null) { + profileStyleParamsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParams.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.ProfileStyleParamsOrBuilder>( + getProfileStyleParams(), + getParentForChildren(), + isClean()); + profileStyleParams_ = null; + } + return profileStyleParamsBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo userDressInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder> userDressInfoBuilder_; + /** + * .User.UserDressInfo userDressInfo = 75; + * @return Whether the userDressInfo field is set. + */ + public boolean hasUserDressInfo() { + return ((bitField2_ & 0x00000200) != 0); + } + /** + * .User.UserDressInfo userDressInfo = 75; + * @return The userDressInfo. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo getUserDressInfo() { + if (userDressInfoBuilder_ == null) { + return userDressInfo_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; + } else { + return userDressInfoBuilder_.getMessage(); + } + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public Builder setUserDressInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo value) { + if (userDressInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + userDressInfo_ = value; + } else { + userDressInfoBuilder_.setMessage(value); + } + bitField2_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public Builder setUserDressInfo( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder builderForValue) { + if (userDressInfoBuilder_ == null) { + userDressInfo_ = builderForValue.build(); + } else { + userDressInfoBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public Builder mergeUserDressInfo(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo value) { + if (userDressInfoBuilder_ == null) { + if (((bitField2_ & 0x00000200) != 0) && + userDressInfo_ != null && + userDressInfo_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance()) { + getUserDressInfoBuilder().mergeFrom(value); + } else { + userDressInfo_ = value; + } + } else { + userDressInfoBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public Builder clearUserDressInfo() { + bitField2_ = (bitField2_ & ~0x00000200); + userDressInfo_ = null; + if (userDressInfoBuilder_ != null) { + userDressInfoBuilder_.dispose(); + userDressInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder getUserDressInfoBuilder() { + bitField2_ |= 0x00000200; + onChanged(); + return getUserDressInfoFieldBuilder().getBuilder(); + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder getUserDressInfoOrBuilder() { + if (userDressInfoBuilder_ != null) { + return userDressInfoBuilder_.getMessageOrBuilder(); + } else { + return userDressInfo_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.getDefaultInstance() : userDressInfo_; + } + } + /** + * .User.UserDressInfo userDressInfo = 75; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder> + getUserDressInfoFieldBuilder() { + if (userDressInfoBuilder_ == null) { + userDressInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfo.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserDressInfoOrBuilder>( + getUserDressInfo(), + getParentForChildren(), + isClean()); + userDressInfo_ = null; + } + return userDressInfoBuilder_; + } + + private boolean allowBeLocated_ ; + /** + * bool allowBeLocated = 1001; + * @return The allowBeLocated. + */ + @java.lang.Override + public boolean getAllowBeLocated() { + return allowBeLocated_; + } + /** + * bool allowBeLocated = 1001; + * @param value The allowBeLocated to set. + * @return This builder for chaining. + */ + public Builder setAllowBeLocated(boolean value) { + + allowBeLocated_ = value; + bitField2_ |= 0x00000400; + onChanged(); + return this; + } + /** + * bool allowBeLocated = 1001; + * @return This builder for chaining. + */ + public Builder clearAllowBeLocated() { + bitField2_ = (bitField2_ & ~0x00000400); + allowBeLocated_ = false; + onChanged(); + return this; + } + + private boolean allowFindByContacts_ ; + /** + * bool allowFindByContacts = 1002; + * @return The allowFindByContacts. + */ + @java.lang.Override + public boolean getAllowFindByContacts() { + return allowFindByContacts_; + } + /** + * bool allowFindByContacts = 1002; + * @param value The allowFindByContacts to set. + * @return This builder for chaining. + */ + public Builder setAllowFindByContacts(boolean value) { + + allowFindByContacts_ = value; + bitField2_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool allowFindByContacts = 1002; + * @return This builder for chaining. + */ + public Builder clearAllowFindByContacts() { + bitField2_ = (bitField2_ & ~0x00000800); + allowFindByContacts_ = false; + onChanged(); + return this; + } + + private boolean allowOthersDownloadVideo_ ; + /** + * bool allowOthersDownloadVideo = 1003; + * @return The allowOthersDownloadVideo. + */ + @java.lang.Override + public boolean getAllowOthersDownloadVideo() { + return allowOthersDownloadVideo_; + } + /** + * bool allowOthersDownloadVideo = 1003; + * @param value The allowOthersDownloadVideo to set. + * @return This builder for chaining. + */ + public Builder setAllowOthersDownloadVideo(boolean value) { + + allowOthersDownloadVideo_ = value; + bitField2_ |= 0x00001000; + onChanged(); + return this; + } + /** + * bool allowOthersDownloadVideo = 1003; + * @return This builder for chaining. + */ + public Builder clearAllowOthersDownloadVideo() { + bitField2_ = (bitField2_ & ~0x00001000); + allowOthersDownloadVideo_ = false; + onChanged(); + return this; + } + + private boolean allowOthersDownloadWhenSharingVideo_ ; + /** + * bool allowOthersDownloadWhenSharingVideo = 1004; + * @return The allowOthersDownloadWhenSharingVideo. + */ + @java.lang.Override + public boolean getAllowOthersDownloadWhenSharingVideo() { + return allowOthersDownloadWhenSharingVideo_; + } + /** + * bool allowOthersDownloadWhenSharingVideo = 1004; + * @param value The allowOthersDownloadWhenSharingVideo to set. + * @return This builder for chaining. + */ + public Builder setAllowOthersDownloadWhenSharingVideo(boolean value) { + + allowOthersDownloadWhenSharingVideo_ = value; + bitField2_ |= 0x00002000; + onChanged(); + return this; + } + /** + * bool allowOthersDownloadWhenSharingVideo = 1004; + * @return This builder for chaining. + */ + public Builder clearAllowOthersDownloadWhenSharingVideo() { + bitField2_ = (bitField2_ & ~0x00002000); + allowOthersDownloadWhenSharingVideo_ = false; + onChanged(); + return this; + } + + private boolean allowShareShowProfile_ ; + /** + * bool allowShareShowProfile = 1005; + * @return The allowShareShowProfile. + */ + @java.lang.Override + public boolean getAllowShareShowProfile() { + return allowShareShowProfile_; + } + /** + * bool allowShareShowProfile = 1005; + * @param value The allowShareShowProfile to set. + * @return This builder for chaining. + */ + public Builder setAllowShareShowProfile(boolean value) { + + allowShareShowProfile_ = value; + bitField2_ |= 0x00004000; + onChanged(); + return this; + } + /** + * bool allowShareShowProfile = 1005; + * @return This builder for chaining. + */ + public Builder clearAllowShareShowProfile() { + bitField2_ = (bitField2_ & ~0x00004000); + allowShareShowProfile_ = false; + onChanged(); + return this; + } + + private boolean allowShowInGossip_ ; + /** + * bool allowShowInGossip = 1006; + * @return The allowShowInGossip. + */ + @java.lang.Override + public boolean getAllowShowInGossip() { + return allowShowInGossip_; + } + /** + * bool allowShowInGossip = 1006; + * @param value The allowShowInGossip to set. + * @return This builder for chaining. + */ + public Builder setAllowShowInGossip(boolean value) { + + allowShowInGossip_ = value; + bitField2_ |= 0x00008000; + onChanged(); + return this; + } + /** + * bool allowShowInGossip = 1006; + * @return This builder for chaining. + */ + public Builder clearAllowShowInGossip() { + bitField2_ = (bitField2_ & ~0x00008000); + allowShowInGossip_ = false; + onChanged(); + return this; + } + + private boolean allowShowMyAction_ ; + /** + * bool allowShowMyAction = 1007; + * @return The allowShowMyAction. + */ + @java.lang.Override + public boolean getAllowShowMyAction() { + return allowShowMyAction_; + } + /** + * bool allowShowMyAction = 1007; + * @param value The allowShowMyAction to set. + * @return This builder for chaining. + */ + public Builder setAllowShowMyAction(boolean value) { + + allowShowMyAction_ = value; + bitField2_ |= 0x00010000; + onChanged(); + return this; + } + /** + * bool allowShowMyAction = 1007; + * @return This builder for chaining. + */ + public Builder clearAllowShowMyAction() { + bitField2_ = (bitField2_ & ~0x00010000); + allowShowMyAction_ = false; + onChanged(); + return this; + } + + private boolean allowStrangeComment_ ; + /** + * bool allowStrangeComment = 1008; + * @return The allowStrangeComment. + */ + @java.lang.Override + public boolean getAllowStrangeComment() { + return allowStrangeComment_; + } + /** + * bool allowStrangeComment = 1008; + * @param value The allowStrangeComment to set. + * @return This builder for chaining. + */ + public Builder setAllowStrangeComment(boolean value) { + + allowStrangeComment_ = value; + bitField2_ |= 0x00020000; + onChanged(); + return this; + } + /** + * bool allowStrangeComment = 1008; + * @return This builder for chaining. + */ + public Builder clearAllowStrangeComment() { + bitField2_ = (bitField2_ & ~0x00020000); + allowStrangeComment_ = false; + onChanged(); + return this; + } + + private boolean allowUnfollowerComment_ ; + /** + * bool allowUnfollowerComment = 1009; + * @return The allowUnfollowerComment. + */ + @java.lang.Override + public boolean getAllowUnfollowerComment() { + return allowUnfollowerComment_; + } + /** + * bool allowUnfollowerComment = 1009; + * @param value The allowUnfollowerComment to set. + * @return This builder for chaining. + */ + public Builder setAllowUnfollowerComment(boolean value) { + + allowUnfollowerComment_ = value; + bitField2_ |= 0x00040000; + onChanged(); + return this; + } + /** + * bool allowUnfollowerComment = 1009; + * @return This builder for chaining. + */ + public Builder clearAllowUnfollowerComment() { + bitField2_ = (bitField2_ & ~0x00040000); + allowUnfollowerComment_ = false; + onChanged(); + return this; + } + + private boolean allowUseLinkmic_ ; + /** + * bool allowUseLinkmic = 1010; + * @return The allowUseLinkmic. + */ + @java.lang.Override + public boolean getAllowUseLinkmic() { + return allowUseLinkmic_; + } + /** + * bool allowUseLinkmic = 1010; + * @param value The allowUseLinkmic to set. + * @return This builder for chaining. + */ + public Builder setAllowUseLinkmic(boolean value) { + + allowUseLinkmic_ = value; + bitField2_ |= 0x00080000; + onChanged(); + return this; + } + /** + * bool allowUseLinkmic = 1010; + * @return This builder for chaining. + */ + public Builder clearAllowUseLinkmic() { + bitField2_ = (bitField2_ & ~0x00080000); + allowUseLinkmic_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel anchorLevel_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> anchorLevelBuilder_; + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return Whether the anchorLevel field is set. + */ + public boolean hasAnchorLevel() { + return ((bitField2_ & 0x00100000) != 0); + } + /** + * .User.AnchorLevel anchorLevel = 1011; + * @return The anchorLevel. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel getAnchorLevel() { + if (anchorLevelBuilder_ == null) { + return anchorLevel_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; + } else { + return anchorLevelBuilder_.getMessage(); + } + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public Builder setAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { + if (anchorLevelBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + anchorLevel_ = value; + } else { + anchorLevelBuilder_.setMessage(value); + } + bitField2_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public Builder setAnchorLevel( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder builderForValue) { + if (anchorLevelBuilder_ == null) { + anchorLevel_ = builderForValue.build(); + } else { + anchorLevelBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public Builder mergeAnchorLevel(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel value) { + if (anchorLevelBuilder_ == null) { + if (((bitField2_ & 0x00100000) != 0) && + anchorLevel_ != null && + anchorLevel_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance()) { + getAnchorLevelBuilder().mergeFrom(value); + } else { + anchorLevel_ = value; + } + } else { + anchorLevelBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public Builder clearAnchorLevel() { + bitField2_ = (bitField2_ & ~0x00100000); + anchorLevel_ = null; + if (anchorLevelBuilder_ != null) { + anchorLevelBuilder_.dispose(); + anchorLevelBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder getAnchorLevelBuilder() { + bitField2_ |= 0x00100000; + onChanged(); + return getAnchorLevelFieldBuilder().getBuilder(); + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder getAnchorLevelOrBuilder() { + if (anchorLevelBuilder_ != null) { + return anchorLevelBuilder_.getMessageOrBuilder(); + } else { + return anchorLevel_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.getDefaultInstance() : anchorLevel_; + } + } + /** + * .User.AnchorLevel anchorLevel = 1011; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder> + getAnchorLevelFieldBuilder() { + if (anchorLevelBuilder_ == null) { + anchorLevelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevel.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.AnchorLevelOrBuilder>( + getAnchorLevel(), + getParentForChildren(), + isClean()); + anchorLevel_ = null; + } + return anchorLevelBuilder_; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image avatarJpg_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> avatarJpgBuilder_; + /** + * .Image avatarJpg = 1012; + * @return Whether the avatarJpg field is set. + */ + public boolean hasAvatarJpg() { + return ((bitField2_ & 0x00200000) != 0); + } + /** + * .Image avatarJpg = 1012; + * @return The avatarJpg. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getAvatarJpg() { + if (avatarJpgBuilder_ == null) { + return avatarJpg_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; + } else { + return avatarJpgBuilder_.getMessage(); + } + } + /** + * .Image avatarJpg = 1012; + */ + public Builder setAvatarJpg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarJpgBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + avatarJpg_ = value; + } else { + avatarJpgBuilder_.setMessage(value); + } + bitField2_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .Image avatarJpg = 1012; + */ + public Builder setAvatarJpg( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) { + if (avatarJpgBuilder_ == null) { + avatarJpg_ = builderForValue.build(); + } else { + avatarJpgBuilder_.setMessage(builderForValue.build()); + } + bitField2_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .Image avatarJpg = 1012; + */ + public Builder mergeAvatarJpg(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) { + if (avatarJpgBuilder_ == null) { + if (((bitField2_ & 0x00200000) != 0) && + avatarJpg_ != null && + avatarJpg_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) { + getAvatarJpgBuilder().mergeFrom(value); + } else { + avatarJpg_ = value; + } + } else { + avatarJpgBuilder_.mergeFrom(value); + } + bitField2_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .Image avatarJpg = 1012; + */ + public Builder clearAvatarJpg() { + bitField2_ = (bitField2_ & ~0x00200000); + avatarJpg_ = null; + if (avatarJpgBuilder_ != null) { + avatarJpgBuilder_.dispose(); + avatarJpgBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .Image avatarJpg = 1012; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getAvatarJpgBuilder() { + bitField2_ |= 0x00200000; + onChanged(); + return getAvatarJpgFieldBuilder().getBuilder(); + } + /** + * .Image avatarJpg = 1012; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getAvatarJpgOrBuilder() { + if (avatarJpgBuilder_ != null) { + return avatarJpgBuilder_.getMessageOrBuilder(); + } else { + return avatarJpg_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : avatarJpg_; + } + } + /** + * .Image avatarJpg = 1012; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> + getAvatarJpgFieldBuilder() { + if (avatarJpgBuilder_ == null) { + avatarJpgBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>( + getAvatarJpg(), + getParentForChildren(), + isClean()); + avatarJpg_ = null; + } + return avatarJpgBuilder_; + } + + private java.lang.Object bgImgUrl_ = ""; + /** + * string bgImgUrl = 1013; + * @return The bgImgUrl. + */ + public java.lang.String getBgImgUrl() { + java.lang.Object ref = bgImgUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bgImgUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string bgImgUrl = 1013; + * @return The bytes for bgImgUrl. + */ + public com.google.protobuf.ByteString + getBgImgUrlBytes() { + java.lang.Object ref = bgImgUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bgImgUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string bgImgUrl = 1013; + * @param value The bgImgUrl to set. + * @return This builder for chaining. + */ + public Builder setBgImgUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + bgImgUrl_ = value; + bitField2_ |= 0x00400000; + onChanged(); + return this; + } + /** + * string bgImgUrl = 1013; + * @return This builder for chaining. + */ + public Builder clearBgImgUrl() { + bgImgUrl_ = getDefaultInstance().getBgImgUrl(); + bitField2_ = (bitField2_ & ~0x00400000); + onChanged(); + return this; + } + /** + * string bgImgUrl = 1013; + * @param value The bytes for bgImgUrl to set. + * @return This builder for chaining. + */ + public Builder setBgImgUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + bgImgUrl_ = value; + bitField2_ |= 0x00400000; + onChanged(); + return this; + } + + private java.lang.Object birthdayDescription_ = ""; + /** + * string birthdayDescription = 1014; + * @return The birthdayDescription. + */ + public java.lang.String getBirthdayDescription() { + java.lang.Object ref = birthdayDescription_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + birthdayDescription_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string birthdayDescription = 1014; + * @return The bytes for birthdayDescription. + */ + public com.google.protobuf.ByteString + getBirthdayDescriptionBytes() { + java.lang.Object ref = birthdayDescription_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + birthdayDescription_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string birthdayDescription = 1014; + * @param value The birthdayDescription to set. + * @return This builder for chaining. + */ + public Builder setBirthdayDescription( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + birthdayDescription_ = value; + bitField2_ |= 0x00800000; + onChanged(); + return this; + } + /** + * string birthdayDescription = 1014; + * @return This builder for chaining. + */ + public Builder clearBirthdayDescription() { + birthdayDescription_ = getDefaultInstance().getBirthdayDescription(); + bitField2_ = (bitField2_ & ~0x00800000); + onChanged(); + return this; + } + /** + * string birthdayDescription = 1014; + * @param value The bytes for birthdayDescription to set. + * @return This builder for chaining. + */ + public Builder setBirthdayDescriptionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + birthdayDescription_ = value; + bitField2_ |= 0x00800000; + onChanged(); + return this; + } + + private boolean birthdayValid_ ; + /** + * bool birthdayValid = 1015; + * @return The birthdayValid. + */ + @java.lang.Override + public boolean getBirthdayValid() { + return birthdayValid_; + } + /** + * bool birthdayValid = 1015; + * @param value The birthdayValid to set. + * @return This builder for chaining. + */ + public Builder setBirthdayValid(boolean value) { + + birthdayValid_ = value; + bitField2_ |= 0x01000000; + onChanged(); + return this; + } + /** + * bool birthdayValid = 1015; + * @return This builder for chaining. + */ + public Builder clearBirthdayValid() { + bitField2_ = (bitField2_ & ~0x01000000); + birthdayValid_ = false; + onChanged(); + return this; + } + + private int blockStatus_ ; + /** + * int32 blockStatus = 1016; + * @return The blockStatus. + */ + @java.lang.Override + public int getBlockStatus() { + return blockStatus_; + } + /** + * int32 blockStatus = 1016; + * @param value The blockStatus to set. + * @return This builder for chaining. + */ + public Builder setBlockStatus(int value) { + + blockStatus_ = value; + bitField2_ |= 0x02000000; + onChanged(); + return this; + } + /** + * int32 blockStatus = 1016; + * @return This builder for chaining. + */ + public Builder clearBlockStatus() { + bitField2_ = (bitField2_ & ~0x02000000); + blockStatus_ = 0; + onChanged(); + return this; + } + + private int commentRestrict_ ; + /** + * int32 commentRestrict = 1017; + * @return The commentRestrict. + */ + @java.lang.Override + public int getCommentRestrict() { + return commentRestrict_; + } + /** + * int32 commentRestrict = 1017; + * @param value The commentRestrict to set. + * @return This builder for chaining. + */ + public Builder setCommentRestrict(int value) { + + commentRestrict_ = value; + bitField2_ |= 0x04000000; + onChanged(); + return this; + } + /** + * int32 commentRestrict = 1017; + * @return This builder for chaining. + */ + public Builder clearCommentRestrict() { + bitField2_ = (bitField2_ & ~0x04000000); + commentRestrict_ = 0; + onChanged(); + return this; + } + + private java.lang.Object constellation_ = ""; + /** + * string constellation = 1018; + * @return The constellation. + */ + public java.lang.String getConstellation() { + java.lang.Object ref = constellation_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + constellation_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string constellation = 1018; + * @return The bytes for constellation. + */ + public com.google.protobuf.ByteString + getConstellationBytes() { + java.lang.Object ref = constellation_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + constellation_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string constellation = 1018; + * @param value The constellation to set. + * @return This builder for chaining. + */ + public Builder setConstellation( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + constellation_ = value; + bitField2_ |= 0x08000000; + onChanged(); + return this; + } + /** + * string constellation = 1018; + * @return This builder for chaining. + */ + public Builder clearConstellation() { + constellation_ = getDefaultInstance().getConstellation(); + bitField2_ = (bitField2_ & ~0x08000000); + onChanged(); + return this; + } + /** + * string constellation = 1018; + * @param value The bytes for constellation to set. + * @return This builder for chaining. + */ + public Builder setConstellationBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + constellation_ = value; + bitField2_ |= 0x08000000; + onChanged(); + return this; + } + + private int disableIchat_ ; + /** + * int32 disableIchat = 1019; + * @return The disableIchat. + */ + @java.lang.Override + public int getDisableIchat() { + return disableIchat_; + } + /** + * int32 disableIchat = 1019; + * @param value The disableIchat to set. + * @return This builder for chaining. + */ + public Builder setDisableIchat(int value) { + + disableIchat_ = value; + bitField2_ |= 0x10000000; + onChanged(); + return this; + } + /** + * int32 disableIchat = 1019; + * @return This builder for chaining. + */ + public Builder clearDisableIchat() { + bitField2_ = (bitField2_ & ~0x10000000); + disableIchat_ = 0; + onChanged(); + return this; + } + + private long enableIchatImg_ ; + /** + * int64 enableIchatImg = 1020; + * @return The enableIchatImg. + */ + @java.lang.Override + public long getEnableIchatImg() { + return enableIchatImg_; + } + /** + * int64 enableIchatImg = 1020; + * @param value The enableIchatImg to set. + * @return This builder for chaining. + */ + public Builder setEnableIchatImg(long value) { + + enableIchatImg_ = value; + bitField2_ |= 0x20000000; + onChanged(); + return this; + } + /** + * int64 enableIchatImg = 1020; + * @return This builder for chaining. + */ + public Builder clearEnableIchatImg() { + bitField2_ = (bitField2_ & ~0x20000000); + enableIchatImg_ = 0L; + onChanged(); + return this; + } + + private int exp_ ; + /** + * int32 exp = 1021; + * @return The exp. + */ + @java.lang.Override + public int getExp() { + return exp_; + } + /** + * int32 exp = 1021; + * @param value The exp to set. + * @return This builder for chaining. + */ + public Builder setExp(int value) { + + exp_ = value; + bitField2_ |= 0x40000000; + onChanged(); + return this; + } + /** + * int32 exp = 1021; + * @return This builder for chaining. + */ + public Builder clearExp() { + bitField2_ = (bitField2_ & ~0x40000000); + exp_ = 0; + onChanged(); + return this; + } + + private long fanTicketCount_ ; + /** + * int64 fanTicketCount = 1022; + * @return The fanTicketCount. + */ + @java.lang.Override + public long getFanTicketCount() { + return fanTicketCount_; + } + /** + * int64 fanTicketCount = 1022; + * @param value The fanTicketCount to set. + * @return This builder for chaining. + */ + public Builder setFanTicketCount(long value) { + + fanTicketCount_ = value; + bitField2_ |= 0x80000000; + onChanged(); + return this; + } + /** + * int64 fanTicketCount = 1022; + * @return This builder for chaining. + */ + public Builder clearFanTicketCount() { + bitField2_ = (bitField2_ & ~0x80000000); + fanTicketCount_ = 0L; + onChanged(); + return this; + } + + private boolean foldStrangerChat_ ; + /** + * bool foldStrangerChat = 1023; + * @return The foldStrangerChat. + */ + @java.lang.Override + public boolean getFoldStrangerChat() { + return foldStrangerChat_; + } + /** + * bool foldStrangerChat = 1023; + * @param value The foldStrangerChat to set. + * @return This builder for chaining. + */ + public Builder setFoldStrangerChat(boolean value) { + + foldStrangerChat_ = value; + bitField3_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool foldStrangerChat = 1023; + * @return This builder for chaining. + */ + public Builder clearFoldStrangerChat() { + bitField3_ = (bitField3_ & ~0x00000001); + foldStrangerChat_ = false; + onChanged(); + return this; + } + + private long followStatus_ ; + /** + * int64 followStatus = 1024; + * @return The followStatus. + */ + @java.lang.Override + public long getFollowStatus() { + return followStatus_; + } + /** + * int64 followStatus = 1024; + * @param value The followStatus to set. + * @return This builder for chaining. + */ + public Builder setFollowStatus(long value) { + + followStatus_ = value; + bitField3_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 followStatus = 1024; + * @return This builder for chaining. + */ + public Builder clearFollowStatus() { + bitField3_ = (bitField3_ & ~0x00000002); + followStatus_ = 0L; + onChanged(); + return this; + } + + private boolean hotsoonVerified_ ; + /** + * bool hotsoonVerified = 1025; + * @return The hotsoonVerified. + */ + @java.lang.Override + public boolean getHotsoonVerified() { + return hotsoonVerified_; + } + /** + * bool hotsoonVerified = 1025; + * @param value The hotsoonVerified to set. + * @return This builder for chaining. + */ + public Builder setHotsoonVerified(boolean value) { + + hotsoonVerified_ = value; + bitField3_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool hotsoonVerified = 1025; + * @return This builder for chaining. + */ + public Builder clearHotsoonVerified() { + bitField3_ = (bitField3_ & ~0x00000004); + hotsoonVerified_ = false; + onChanged(); + return this; + } + + private java.lang.Object hotsoonVerifiedReason_ = ""; + /** + * string hotsoonVerifiedReason = 1026; + * @return The hotsoonVerifiedReason. + */ + public java.lang.String getHotsoonVerifiedReason() { + java.lang.Object ref = hotsoonVerifiedReason_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + hotsoonVerifiedReason_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string hotsoonVerifiedReason = 1026; + * @return The bytes for hotsoonVerifiedReason. + */ + public com.google.protobuf.ByteString + getHotsoonVerifiedReasonBytes() { + java.lang.Object ref = hotsoonVerifiedReason_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + hotsoonVerifiedReason_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string hotsoonVerifiedReason = 1026; + * @param value The hotsoonVerifiedReason to set. + * @return This builder for chaining. + */ + public Builder setHotsoonVerifiedReason( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + hotsoonVerifiedReason_ = value; + bitField3_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string hotsoonVerifiedReason = 1026; + * @return This builder for chaining. + */ + public Builder clearHotsoonVerifiedReason() { + hotsoonVerifiedReason_ = getDefaultInstance().getHotsoonVerifiedReason(); + bitField3_ = (bitField3_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string hotsoonVerifiedReason = 1026; + * @param value The bytes for hotsoonVerifiedReason to set. + * @return This builder for chaining. + */ + public Builder setHotsoonVerifiedReasonBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + hotsoonVerifiedReason_ = value; + bitField3_ |= 0x00000008; + onChanged(); + return this; + } + + private int ichatRestrictType_ ; + /** + * int32 ichatRestrictType = 1027; + * @return The ichatRestrictType. + */ + @java.lang.Override + public int getIchatRestrictType() { + return ichatRestrictType_; + } + /** + * int32 ichatRestrictType = 1027; + * @param value The ichatRestrictType to set. + * @return This builder for chaining. + */ + public Builder setIchatRestrictType(int value) { + + ichatRestrictType_ = value; + bitField3_ |= 0x00000010; + onChanged(); + return this; + } + /** + * int32 ichatRestrictType = 1027; + * @return This builder for chaining. + */ + public Builder clearIchatRestrictType() { + bitField3_ = (bitField3_ & ~0x00000010); + ichatRestrictType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object idStr_ = ""; + /** + * string idStr = 1028; + * @return The idStr. + */ + public java.lang.String getIdStr() { + java.lang.Object ref = idStr_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + idStr_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string idStr = 1028; + * @return The bytes for idStr. + */ + public com.google.protobuf.ByteString + getIdStrBytes() { + java.lang.Object ref = idStr_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + idStr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string idStr = 1028; + * @param value The idStr to set. + * @return This builder for chaining. + */ + public Builder setIdStr( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + idStr_ = value; + bitField3_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string idStr = 1028; + * @return This builder for chaining. + */ + public Builder clearIdStr() { + idStr_ = getDefaultInstance().getIdStr(); + bitField3_ = (bitField3_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string idStr = 1028; + * @param value The bytes for idStr to set. + * @return This builder for chaining. + */ + public Builder setIdStrBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + idStr_ = value; + bitField3_ |= 0x00000020; + onChanged(); + return this; + } + + private boolean isFollower_ ; + /** + * bool isFollower = 1029; + * @return The isFollower. + */ + @java.lang.Override + public boolean getIsFollower() { + return isFollower_; + } + /** + * bool isFollower = 1029; + * @param value The isFollower to set. + * @return This builder for chaining. + */ + public Builder setIsFollower(boolean value) { + + isFollower_ = value; + bitField3_ |= 0x00000040; + onChanged(); + return this; + } + /** + * bool isFollower = 1029; + * @return This builder for chaining. + */ + public Builder clearIsFollower() { + bitField3_ = (bitField3_ & ~0x00000040); + isFollower_ = false; + onChanged(); + return this; + } + + private boolean isFollowing_ ; + /** + * bool isFollowing = 1030; + * @return The isFollowing. + */ + @java.lang.Override + public boolean getIsFollowing() { + return isFollowing_; + } + /** + * bool isFollowing = 1030; + * @param value The isFollowing to set. + * @return This builder for chaining. + */ + public Builder setIsFollowing(boolean value) { + + isFollowing_ = value; + bitField3_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bool isFollowing = 1030; + * @return This builder for chaining. + */ + public Builder clearIsFollowing() { + bitField3_ = (bitField3_ & ~0x00000080); + isFollowing_ = false; + onChanged(); + return this; + } + + private boolean needProfileGuide_ ; + /** + * bool needProfileGuide = 1031; + * @return The needProfileGuide. + */ + @java.lang.Override + public boolean getNeedProfileGuide() { + return needProfileGuide_; + } + /** + * bool needProfileGuide = 1031; + * @param value The needProfileGuide to set. + * @return This builder for chaining. + */ + public Builder setNeedProfileGuide(boolean value) { + + needProfileGuide_ = value; + bitField3_ |= 0x00000100; + onChanged(); + return this; + } + /** + * bool needProfileGuide = 1031; + * @return This builder for chaining. + */ + public Builder clearNeedProfileGuide() { + bitField3_ = (bitField3_ & ~0x00000100); + needProfileGuide_ = false; + onChanged(); + return this; + } + + private long payScores_ ; + /** + * int64 payScores = 1032; + * @return The payScores. + */ + @java.lang.Override + public long getPayScores() { + return payScores_; + } + /** + * int64 payScores = 1032; + * @param value The payScores to set. + * @return This builder for chaining. + */ + public Builder setPayScores(long value) { + + payScores_ = value; + bitField3_ |= 0x00000200; + onChanged(); + return this; + } + /** + * int64 payScores = 1032; + * @return This builder for chaining. + */ + public Builder clearPayScores() { + bitField3_ = (bitField3_ & ~0x00000200); + payScores_ = 0L; + onChanged(); + return this; + } + + private boolean pushCommentStatus_ ; + /** + * bool pushCommentStatus = 1033; + * @return The pushCommentStatus. + */ + @java.lang.Override + public boolean getPushCommentStatus() { + return pushCommentStatus_; + } + /** + * bool pushCommentStatus = 1033; + * @param value The pushCommentStatus to set. + * @return This builder for chaining. + */ + public Builder setPushCommentStatus(boolean value) { + + pushCommentStatus_ = value; + bitField3_ |= 0x00000400; + onChanged(); + return this; + } + /** + * bool pushCommentStatus = 1033; + * @return This builder for chaining. + */ + public Builder clearPushCommentStatus() { + bitField3_ = (bitField3_ & ~0x00000400); + pushCommentStatus_ = false; + onChanged(); + return this; + } + + private boolean pushDigg_ ; + /** + * bool pushDigg = 1034; + * @return The pushDigg. + */ + @java.lang.Override + public boolean getPushDigg() { + return pushDigg_; + } + /** + * bool pushDigg = 1034; + * @param value The pushDigg to set. + * @return This builder for chaining. + */ + public Builder setPushDigg(boolean value) { + + pushDigg_ = value; + bitField3_ |= 0x00000800; + onChanged(); + return this; + } + /** + * bool pushDigg = 1034; + * @return This builder for chaining. + */ + public Builder clearPushDigg() { + bitField3_ = (bitField3_ & ~0x00000800); + pushDigg_ = false; + onChanged(); + return this; + } + + private boolean pushFollow_ ; + /** + * bool pushFollow = 1035; + * @return The pushFollow. + */ + @java.lang.Override + public boolean getPushFollow() { + return pushFollow_; + } + /** + * bool pushFollow = 1035; + * @param value The pushFollow to set. + * @return This builder for chaining. + */ + public Builder setPushFollow(boolean value) { + + pushFollow_ = value; + bitField3_ |= 0x00001000; + onChanged(); + return this; + } + /** + * bool pushFollow = 1035; + * @return This builder for chaining. + */ + public Builder clearPushFollow() { + bitField3_ = (bitField3_ & ~0x00001000); + pushFollow_ = false; + onChanged(); + return this; + } + + private boolean pushFriendAction_ ; + /** + * bool pushFriendAction = 1036; + * @return The pushFriendAction. + */ + @java.lang.Override + public boolean getPushFriendAction() { + return pushFriendAction_; + } + /** + * bool pushFriendAction = 1036; + * @param value The pushFriendAction to set. + * @return This builder for chaining. + */ + public Builder setPushFriendAction(boolean value) { + + pushFriendAction_ = value; + bitField3_ |= 0x00002000; + onChanged(); + return this; + } + /** + * bool pushFriendAction = 1036; + * @return This builder for chaining. + */ + public Builder clearPushFriendAction() { + bitField3_ = (bitField3_ & ~0x00002000); + pushFriendAction_ = false; + onChanged(); + return this; + } + + private boolean pushIchat_ ; + /** + * bool pushIchat = 1037; + * @return The pushIchat. + */ + @java.lang.Override + public boolean getPushIchat() { + return pushIchat_; + } + /** + * bool pushIchat = 1037; + * @param value The pushIchat to set. + * @return This builder for chaining. + */ + public Builder setPushIchat(boolean value) { + + pushIchat_ = value; + bitField3_ |= 0x00004000; + onChanged(); + return this; + } + /** + * bool pushIchat = 1037; + * @return This builder for chaining. + */ + public Builder clearPushIchat() { + bitField3_ = (bitField3_ & ~0x00004000); + pushIchat_ = false; + onChanged(); + return this; + } + + private boolean pushStatus_ ; + /** + * bool pushStatus = 1038; + * @return The pushStatus. + */ + @java.lang.Override + public boolean getPushStatus() { + return pushStatus_; + } + /** + * bool pushStatus = 1038; + * @param value The pushStatus to set. + * @return This builder for chaining. + */ + public Builder setPushStatus(boolean value) { + + pushStatus_ = value; + bitField3_ |= 0x00008000; + onChanged(); + return this; + } + /** + * bool pushStatus = 1038; + * @return This builder for chaining. + */ + public Builder clearPushStatus() { + bitField3_ = (bitField3_ & ~0x00008000); + pushStatus_ = false; + onChanged(); + return this; + } + + private boolean pushVideoPost_ ; + /** + * bool pushVideoPost = 1039; + * @return The pushVideoPost. + */ + @java.lang.Override + public boolean getPushVideoPost() { + return pushVideoPost_; + } + /** + * bool pushVideoPost = 1039; + * @param value The pushVideoPost to set. + * @return This builder for chaining. + */ + public Builder setPushVideoPost(boolean value) { + + pushVideoPost_ = value; + bitField3_ |= 0x00010000; + onChanged(); + return this; + } + /** + * bool pushVideoPost = 1039; + * @return This builder for chaining. + */ + public Builder clearPushVideoPost() { + bitField3_ = (bitField3_ & ~0x00010000); + pushVideoPost_ = false; + onChanged(); + return this; + } + + private boolean pushVideoRecommend_ ; + /** + * bool pushVideoRecommend = 1040; + * @return The pushVideoRecommend. + */ + @java.lang.Override + public boolean getPushVideoRecommend() { + return pushVideoRecommend_; + } + /** + * bool pushVideoRecommend = 1040; + * @param value The pushVideoRecommend to set. + * @return This builder for chaining. + */ + public Builder setPushVideoRecommend(boolean value) { + + pushVideoRecommend_ = value; + bitField3_ |= 0x00020000; + onChanged(); + return this; + } + /** + * bool pushVideoRecommend = 1040; + * @return This builder for chaining. + */ + public Builder clearPushVideoRecommend() { + bitField3_ = (bitField3_ & ~0x00020000); + pushVideoRecommend_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats stats_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder> statsBuilder_; + /** + * .User.UserStats stats = 1041; + * @return Whether the stats field is set. + */ + public boolean hasStats() { + return ((bitField3_ & 0x00040000) != 0); + } + /** + * .User.UserStats stats = 1041; + * @return The stats. + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats getStats() { + if (statsBuilder_ == null) { + return stats_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; + } else { + return statsBuilder_.getMessage(); + } + } + /** + * .User.UserStats stats = 1041; + */ + public Builder setStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats value) { + if (statsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + stats_ = value; + } else { + statsBuilder_.setMessage(value); + } + bitField3_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.UserStats stats = 1041; + */ + public Builder setStats( + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder builderForValue) { + if (statsBuilder_ == null) { + stats_ = builderForValue.build(); + } else { + statsBuilder_.setMessage(builderForValue.build()); + } + bitField3_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.UserStats stats = 1041; + */ + public Builder mergeStats(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats value) { + if (statsBuilder_ == null) { + if (((bitField3_ & 0x00040000) != 0) && + stats_ != null && + stats_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance()) { + getStatsBuilder().mergeFrom(value); + } else { + stats_ = value; + } + } else { + statsBuilder_.mergeFrom(value); + } + bitField3_ |= 0x00040000; + onChanged(); + return this; + } + /** + * .User.UserStats stats = 1041; + */ + public Builder clearStats() { + bitField3_ = (bitField3_ & ~0x00040000); + stats_ = null; + if (statsBuilder_ != null) { + statsBuilder_.dispose(); + statsBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .User.UserStats stats = 1041; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder getStatsBuilder() { + bitField3_ |= 0x00040000; + onChanged(); + return getStatsFieldBuilder().getBuilder(); + } + /** + * .User.UserStats stats = 1041; + */ + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder getStatsOrBuilder() { + if (statsBuilder_ != null) { + return statsBuilder_.getMessageOrBuilder(); + } else { + return stats_ == null ? + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.getDefaultInstance() : stats_; + } + } + /** + * .User.UserStats stats = 1041; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder> + getStatsFieldBuilder() { + if (statsBuilder_ == null) { + statsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStats.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User.UserStatsOrBuilder>( + getStats(), + getParentForChildren(), + isClean()); + stats_ = null; + } + return statsBuilder_; + } + + private boolean verifiedMobile_ ; + /** + * bool verifiedMobile = 1042; + * @return The verifiedMobile. + */ + @java.lang.Override + public boolean getVerifiedMobile() { + return verifiedMobile_; + } + /** + * bool verifiedMobile = 1042; + * @param value The verifiedMobile to set. + * @return This builder for chaining. + */ + public Builder setVerifiedMobile(boolean value) { + + verifiedMobile_ = value; + bitField3_ |= 0x00080000; + onChanged(); + return this; + } + /** + * bool verifiedMobile = 1042; + * @return This builder for chaining. + */ + public Builder clearVerifiedMobile() { + bitField3_ = (bitField3_ & ~0x00080000); + verifiedMobile_ = false; + onChanged(); + return this; + } + + private java.lang.Object verifiedReason_ = ""; + /** + * string verifiedReason = 1043; + * @return The verifiedReason. + */ + public java.lang.String getVerifiedReason() { + java.lang.Object ref = verifiedReason_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + verifiedReason_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string verifiedReason = 1043; + * @return The bytes for verifiedReason. + */ + public com.google.protobuf.ByteString + getVerifiedReasonBytes() { + java.lang.Object ref = verifiedReason_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + verifiedReason_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string verifiedReason = 1043; + * @param value The verifiedReason to set. + * @return This builder for chaining. + */ + public Builder setVerifiedReason( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + verifiedReason_ = value; + bitField3_ |= 0x00100000; + onChanged(); + return this; + } + /** + * string verifiedReason = 1043; + * @return This builder for chaining. + */ + public Builder clearVerifiedReason() { + verifiedReason_ = getDefaultInstance().getVerifiedReason(); + bitField3_ = (bitField3_ & ~0x00100000); + onChanged(); + return this; + } + /** + * string verifiedReason = 1043; + * @param value The bytes for verifiedReason to set. + * @return This builder for chaining. + */ + public Builder setVerifiedReasonBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + verifiedReason_ = value; + bitField3_ |= 0x00100000; + onChanged(); + return this; + } + + private boolean withCarManagementPermission_ ; + /** + * bool withCarManagementPermission = 1044; + * @return The withCarManagementPermission. + */ + @java.lang.Override + public boolean getWithCarManagementPermission() { + return withCarManagementPermission_; + } + /** + * bool withCarManagementPermission = 1044; + * @param value The withCarManagementPermission to set. + * @return This builder for chaining. + */ + public Builder setWithCarManagementPermission(boolean value) { + + withCarManagementPermission_ = value; + bitField3_ |= 0x00200000; + onChanged(); + return this; + } + /** + * bool withCarManagementPermission = 1044; + * @return This builder for chaining. + */ + public Builder clearWithCarManagementPermission() { + bitField3_ = (bitField3_ & ~0x00200000); + withCarManagementPermission_ = false; + onChanged(); + return this; + } + + private int ageRange_ ; + /** + * int32 ageRange = 1045; + * @return The ageRange. + */ + @java.lang.Override + public int getAgeRange() { + return ageRange_; + } + /** + * int32 ageRange = 1045; + * @param value The ageRange to set. + * @return This builder for chaining. + */ + public Builder setAgeRange(int value) { + + ageRange_ = value; + bitField3_ |= 0x00400000; + onChanged(); + return this; + } + /** + * int32 ageRange = 1045; + * @return This builder for chaining. + */ + public Builder clearAgeRange() { + bitField3_ = (bitField3_ & ~0x00400000); + ageRange_ = 0; + onChanged(); + return this; + } + + private long watchDurationMonth_ ; + /** + * int64 watchDurationMonth = 1046; + * @return The watchDurationMonth. + */ + @java.lang.Override + public long getWatchDurationMonth() { + return watchDurationMonth_; + } + /** + * int64 watchDurationMonth = 1046; + * @param value The watchDurationMonth to set. + * @return This builder for chaining. + */ + public Builder setWatchDurationMonth(long value) { + + watchDurationMonth_ = value; + bitField3_ |= 0x00800000; + onChanged(); + return this; + } + /** + * int64 watchDurationMonth = 1046; + * @return This builder for chaining. + */ + public Builder clearWatchDurationMonth() { + bitField3_ = (bitField3_ & ~0x00800000); + watchDurationMonth_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:User) + } + + // @@protoc_insertion_point(class_scope:User) + private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User(); + } + + public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public User parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.UserOuterClass.User getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_ActivityInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_ActivityInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_AnchorInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_AnchorInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_AnchorLevel_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_AnchorLevel_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_AuthenticationInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_AuthenticationInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_AuthorStats_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_AuthorStats_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_Border_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_Border_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_BrotherhoodInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_BrotherhoodInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansClub_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansClub_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansClub_PreferDataEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansClub_PreferDataEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansClub_FansClubData_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansClub_FansClubData_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansClub_FansClubData_UserBadge_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FansGroupInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FansGroupInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_FollowInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_FollowInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_JAccreditInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_JAccreditInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_NobleLevelInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_NobleLevelInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_OwnRoom_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_OwnRoom_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_PayGrade_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_PayGrade_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_PayGrade_GradeIcon_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_PayGrade_GradeIcon_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_PoiInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_PoiInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_ProfileStyleParams_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_ProfileStyleParams_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_Subscribe_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_Subscribe_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_UserAttr_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_UserAttr_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_UserDressInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_UserDressInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_UserVIPInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_UserVIPInfo_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_UserStats_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_UserStats_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_User_XiguaParams_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_User_XiguaParams_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\nUser.proto\032\013Image.proto\"\366\'\n\004User\022\n\n\002id" + + "\030\001 \001(\004\022\017\n\007shortId\030\002 \001(\004\022\020\n\010nickname\030\003 \001(" + + "\t\022\016\n\006gender\030\004 \001(\r\022\021\n\tsignature\030\005 \001(\t\022\r\n\005" + + "level\030\006 \001(\r\022\020\n\010birthday\030\007 \001(\004\022\021\n\ttelepho" + + "ne\030\010 \001(\t\022\033\n\013avatarThumb\030\t \001(\0132\006.Image\022\034\n" + + "\014avatarMedium\030\n \001(\0132\006.Image\022\033\n\013avatarLar" + + "ge\030\013 \001(\0132\006.Image\022\020\n\010verified\030\014 \001(\010\022\022\n\nex" + + "perience\030\r \001(\005\022\014\n\004city\030\016 \001(\t\022\016\n\006status\030\017" + + " \001(\005\022\022\n\ncreateTime\030\020 \001(\003\022\022\n\nmodifyTime\030\021" + + " \001(\003\022\016\n\006secret\030\022 \001(\005\022\026\n\016shareQrcodeUri\030\023" + + " \001(\t\022\032\n\022incomeSharePercent\030\024 \001(\005\022\"\n\022badg" + + "eImageListList\030\025 \001(\0132\006.Image\022$\n\nfollowIn" + + "fo\030\026 \001(\0132\020.User.FollowInfo\022 \n\010payGrade\030\027" + + " \001(\0132\016.User.PayGrade\022 \n\010fansClub\030\030 \001(\0132\016" + + ".User.FansClub\022\034\n\006border\030\031 \001(\0132\014.User.Bo" + + "rder\022\021\n\tspecialId\030\032 \001(\t\022\034\n\014avatarBorder\030" + + "\033 \001(\0132\006.Image\022\025\n\005medal\030\034 \001(\0132\006.Image\022!\n\021" + + "realTimeIconsList\030\035 \003(\0132\006.Image\022$\n\024newRe" + + "alTimeIconsList\030\036 \003(\0132\006.Image\022\020\n\010topVipN" + + "o\030\037 \001(\003\022 \n\010userAttr\030 \001(\0132\016.User.UserAtt" + + "r\022\036\n\007ownRoom\030! \001(\0132\r.User.OwnRoom\022\020\n\010pay" + + "Score\030\" \001(\003\022\023\n\013ticketCount\030# \001(\003\022$\n\nanch" + + "orInfo\030$ \001(\0132\020.User.AnchorInfo\022\024\n\014linkMi" + + "cStats\030% \001(\005\022\021\n\tdisplayId\030& \001(\t\022\036\n\026withC" + + "ommercePermission\030\' \001(\010\022\033\n\023withFusionSho" + + "pEntry\030( \001(\010\022!\n\031totalRechargeDiamondCoun" + + "t\030) \001(\003\022-\n\022webcastAnchorLevel\030* \001(\0132\021.Us" + + "er.AnchorLevel\022\027\n\017verifiedContent\030+ \001(\t\022" + + "&\n\013authorStats\030, \001(\0132\021.User.AuthorStats\022" + + "\032\n\013topFansList\030- \003(\0132\005.User\022\016\n\006secUid\030. " + + "\001(\t\022\020\n\010userRole\030/ \001(\005\022$\n\txiguaInfo\0300 \001(\013" + + "2\021.User.XiguaParams\022*\n\016activityReward\0301 " + + "\001(\0132\022.User.ActivityInfo\022\'\n\tnobleInfo\0302 \001" + + "(\0132\024.User.NobleLevelInfo\022.\n\017brotherhoodI" + + "nfo\0303 \001(\0132\025.User.BrotherhoodInfo\022\034\n\014pers" + + "onalCard\0304 \001(\0132\006.Image\0224\n\022authentication" + + "Info\0305 \001(\0132\030.User.AuthenticationInfo\022\031\n\021" + + "authorizationInfo\0306 \001(\005\022\"\n\032adversaryAuth" + + "orizationInfo\0307 \001(\005\022\036\n\007poiInfo\0308 \001(\0132\r.U" + + "ser.PoiInfo\022\'\n\027mediaBadgeImageListList\0309" + + " \001(\0132\006.Image\022\033\n\023adversaryUserStatus\030: \001(" + + "\005\022&\n\013userVipInfo\030; \001(\0132\021.User.UserVIPInf" + + "o\022$\n\034commerceWebcastConfigIdsList\030< \003(\003\022" + + "$\n\024badgeImageListV2List\030= \001(\0132\006.Image\022\024\n" + + "\014locationCity\030? \001(\t\022*\n\rfansGroupInfo\030@ \001" + + "(\0132\023.User.FansGroupInfo\022\022\n\nremarkName\030A " + + "\001(\t\022\022\n\nmysteryMan\030B \001(\005\022\016\n\006webRid\030C \001(\t\022" + + "\034\n\024desensitizedNickname\030D \001(\t\022*\n\rjAccred" + + "itInfo\030E \001(\0132\023.User.JAccreditInfo\022\"\n\tsub" + + "scribe\030F \001(\0132\017.User.Subscribe\022\023\n\013isAnony" + + "mous\030G \001(\010\022\033\n\023consumeDiamondLevel\030H \001(\005\022" + + "\022\n\nwebcastUid\030I \001(\t\0224\n\022profileStyleParam" + + "s\030J \001(\0132\030.User.ProfileStyleParams\022*\n\ruse" + + "rDressInfo\030K \001(\0132\023.User.UserDressInfo\022\027\n" + + "\016allowBeLocated\030\351\007 \001(\010\022\034\n\023allowFindByCon" + + "tacts\030\352\007 \001(\010\022!\n\030allowOthersDownloadVideo" + + "\030\353\007 \001(\010\022,\n#allowOthersDownloadWhenSharin" + + "gVideo\030\354\007 \001(\010\022\036\n\025allowShareShowProfile\030\355" + + "\007 \001(\010\022\032\n\021allowShowInGossip\030\356\007 \001(\010\022\032\n\021all" + + "owShowMyAction\030\357\007 \001(\010\022\034\n\023allowStrangeCom" + + "ment\030\360\007 \001(\010\022\037\n\026allowUnfollowerComment\030\361\007" + + " \001(\010\022\030\n\017allowUseLinkmic\030\362\007 \001(\010\022\'\n\013anchor" + + "Level\030\363\007 \001(\0132\021.User.AnchorLevel\022\032\n\tavata" + + "rJpg\030\364\007 \001(\0132\006.Image\022\021\n\010bgImgUrl\030\365\007 \001(\t\022\034" + + "\n\023birthdayDescription\030\366\007 \001(\t\022\026\n\rbirthday" + + "Valid\030\367\007 \001(\010\022\024\n\013blockStatus\030\370\007 \001(\005\022\030\n\017co" + + "mmentRestrict\030\371\007 \001(\005\022\026\n\rconstellation\030\372\007" + + " \001(\t\022\025\n\014disableIchat\030\373\007 \001(\005\022\027\n\016enableIch" + + "atImg\030\374\007 \001(\003\022\014\n\003exp\030\375\007 \001(\005\022\027\n\016fanTicketC" + + "ount\030\376\007 \001(\003\022\031\n\020foldStrangerChat\030\377\007 \001(\010\022\025" + + "\n\014followStatus\030\200\010 \001(\003\022\030\n\017hotsoonVerified" + + "\030\201\010 \001(\010\022\036\n\025hotsoonVerifiedReason\030\202\010 \001(\t\022" + + "\032\n\021ichatRestrictType\030\203\010 \001(\005\022\016\n\005idStr\030\204\010 " + + "\001(\t\022\023\n\nisFollower\030\205\010 \001(\010\022\024\n\013isFollowing\030" + + "\206\010 \001(\010\022\031\n\020needProfileGuide\030\207\010 \001(\010\022\022\n\tpay" + + "Scores\030\210\010 \001(\003\022\032\n\021pushCommentStatus\030\211\010 \001(" + + "\010\022\021\n\010pushDigg\030\212\010 \001(\010\022\023\n\npushFollow\030\213\010 \001(" + + "\010\022\031\n\020pushFriendAction\030\214\010 \001(\010\022\022\n\tpushIcha" + + "t\030\215\010 \001(\010\022\023\n\npushStatus\030\216\010 \001(\010\022\026\n\rpushVid" + + "eoPost\030\217\010 \001(\010\022\033\n\022pushVideoRecommend\030\220\010 \001" + + "(\010\022\037\n\005stats\030\221\010 \001(\0132\017.User.UserStats\022\027\n\016v" + + "erifiedMobile\030\222\010 \001(\010\022\027\n\016verifiedReason\030\223" + + "\010 \001(\t\022$\n\033withCarManagementPermission\030\224\010 " + + "\001(\010\022\021\n\010ageRange\030\225\010 \001(\005\022\033\n\022watchDurationM" + + "onth\030\226\010 \001(\003\032\016\n\014ActivityInfo\032\014\n\nAnchorInf" + + "o\032\r\n\013AnchorLevel\032\024\n\022AuthenticationInfo\032\r" + + "\n\013AuthorStats\032\010\n\006Border\032\021\n\017BrotherhoodIn" + + "fo\032\375\003\n\010FansClub\022)\n\004data\030\001 \001(\0132\033.User.Fan" + + "sClub.FansClubData\0222\n\npreferData\030\002 \003(\0132\036" + + ".User.FansClub.PreferDataEntry\032N\n\017Prefer" + + "DataEntry\022\013\n\003key\030\001 \001(\005\022*\n\005value\030\002 \001(\0132\033." + + "User.FansClub.FansClubData:\0028\001\032\301\002\n\014FansC" + + "lubData\022\020\n\010clubName\030\001 \001(\t\022\r\n\005level\030\002 \001(\005" + + "\022\032\n\022userFansClubStatus\030\003 \001(\005\0224\n\005badge\030\004 " + + "\001(\0132%.User.FansClub.FansClubData.UserBad" + + "ge\022\030\n\020availableGiftIds\030\005 \003(\003\022\020\n\010anchorId" + + "\030\006 \001(\003\032\221\001\n\tUserBadge\022?\n\005icons\030\001 \003(\01320.Us" + + "er.FansClub.FansClubData.UserBadge.Icons" + + "Entry\022\r\n\005title\030\002 \001(\t\0324\n\nIconsEntry\022\013\n\003ke" + + "y\030\001 \001(\005\022\025\n\005value\030\002 \001(\0132\006.Image:\0028\001\032\017\n\rFa" + + "nsGroupInfo\032y\n\nFollowInfo\022\026\n\016followingCo" + + "unt\030\001 \001(\003\022\025\n\rfollowerCount\030\002 \001(\003\022\024\n\014foll" + + "owStatus\030\003 \001(\003\022\022\n\npushStatus\030\004 \001(\003\022\022\n\nre" + + "markName\030\005 \001(\t\032\017\n\rJAccreditInfo\032\020\n\016Noble" + + "LevelInfo\032\t\n\007OwnRoom\032\305\006\n\010PayGrade\022\031\n\021tot" + + "alDiamondCount\030\001 \001(\003\022\033\n\013diamondIcon\030\002 \001(" + + "\0132\006.Image\022\014\n\004name\030\003 \001(\t\022\024\n\004icon\030\004 \001(\0132\006." + + "Image\022\020\n\010nextName\030\005 \001(\t\022\r\n\005level\030\006 \001(\003\022\030" + + "\n\010nextIcon\030\007 \001(\0132\006.Image\022\023\n\013nextDiamond\030" + + "\010 \001(\003\022\022\n\nnowDiamond\030\t \001(\003\022\033\n\023thisGradeMi" + + "nDiamond\030\n \001(\003\022\033\n\023thisGradeMaxDiamond\030\013 " + + "\001(\003\022\025\n\rpayDiamondBak\030\014 \001(\003\022\025\n\rgradeDescr" + + "ibe\030\r \001(\t\022/\n\rgradeIconList\030\016 \003(\0132\030.User." + + "PayGrade.GradeIcon\022\026\n\016screenChatType\030\017 \001" + + "(\003\022\026\n\006imIcon\030\020 \001(\0132\006.Image\022\037\n\017imIconWith" + + "Level\030\021 \001(\0132\006.Image\022\030\n\010liveIcon\030\022 \001(\0132\006." + + "Image\022\"\n\022newImIconWithLevel\030\023 \001(\0132\006.Imag" + + "e\022\033\n\013newLiveIcon\030\024 \001(\0132\006.Image\022\032\n\022upgrad" + + "eNeedConsume\030\025 \001(\003\022\026\n\016nextPrivileges\030\026 \001" + + "(\t\022\032\n\nbackground\030\027 \001(\0132\006.Image\022\036\n\016backgr" + + "oundBack\030\030 \001(\0132\006.Image\022\r\n\005score\030\031 \001(\003\022\024\n" + + "\013gradeBanner\030\351\007 \001(\t\022 \n\017profileDialogBg\030\352" + + "\007 \001(\0132\006.Image\022$\n\023profileDialogBgBack\030\353\007 " + + "\001(\0132\006.Image\032W\n\tGradeIcon\022\024\n\004icon\030\001 \001(\0132\006" + + ".Image\022\023\n\013iconDiamond\030\002 \001(\003\022\r\n\005level\030\003 \001" + + "(\003\022\020\n\010levelStr\030\004 \001(\t\032\t\n\007PoiInfo\032\024\n\022Profi" + + "leStyleParams\032\013\n\tSubscribe\032\n\n\010UserAttr\032\017" + + "\n\rUserDressInfo\032\r\n\013UserVIPInfo\032\013\n\tUserSt" + + "ats\032\r\n\013XiguaParamsB8\n6tech.ordinaryroad." + + "live.chat.client.douyin.protobuf.dtob\006pr" + + "oto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(), + }); + internal_static_User_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_User_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_descriptor, + new java.lang.String[] { "Id", "ShortId", "Nickname", "Gender", "Signature", "Level", "Birthday", "Telephone", "AvatarThumb", "AvatarMedium", "AvatarLarge", "Verified", "Experience", "City", "Status", "CreateTime", "ModifyTime", "Secret", "ShareQrcodeUri", "IncomeSharePercent", "BadgeImageListList", "FollowInfo", "PayGrade", "FansClub", "Border", "SpecialId", "AvatarBorder", "Medal", "RealTimeIconsList", "NewRealTimeIconsList", "TopVipNo", "UserAttr", "OwnRoom", "PayScore", "TicketCount", "AnchorInfo", "LinkMicStats", "DisplayId", "WithCommercePermission", "WithFusionShopEntry", "TotalRechargeDiamondCount", "WebcastAnchorLevel", "VerifiedContent", "AuthorStats", "TopFansList", "SecUid", "UserRole", "XiguaInfo", "ActivityReward", "NobleInfo", "BrotherhoodInfo", "PersonalCard", "AuthenticationInfo", "AuthorizationInfo", "AdversaryAuthorizationInfo", "PoiInfo", "MediaBadgeImageListList", "AdversaryUserStatus", "UserVipInfo", "CommerceWebcastConfigIdsList", "BadgeImageListV2List", "LocationCity", "FansGroupInfo", "RemarkName", "MysteryMan", "WebRid", "DesensitizedNickname", "JAccreditInfo", "Subscribe", "IsAnonymous", "ConsumeDiamondLevel", "WebcastUid", "ProfileStyleParams", "UserDressInfo", "AllowBeLocated", "AllowFindByContacts", "AllowOthersDownloadVideo", "AllowOthersDownloadWhenSharingVideo", "AllowShareShowProfile", "AllowShowInGossip", "AllowShowMyAction", "AllowStrangeComment", "AllowUnfollowerComment", "AllowUseLinkmic", "AnchorLevel", "AvatarJpg", "BgImgUrl", "BirthdayDescription", "BirthdayValid", "BlockStatus", "CommentRestrict", "Constellation", "DisableIchat", "EnableIchatImg", "Exp", "FanTicketCount", "FoldStrangerChat", "FollowStatus", "HotsoonVerified", "HotsoonVerifiedReason", "IchatRestrictType", "IdStr", "IsFollower", "IsFollowing", "NeedProfileGuide", "PayScores", "PushCommentStatus", "PushDigg", "PushFollow", "PushFriendAction", "PushIchat", "PushStatus", "PushVideoPost", "PushVideoRecommend", "Stats", "VerifiedMobile", "VerifiedReason", "WithCarManagementPermission", "AgeRange", "WatchDurationMonth", }); + internal_static_User_ActivityInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(0); + internal_static_User_ActivityInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_ActivityInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_AnchorInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(1); + internal_static_User_AnchorInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_AnchorInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_AnchorLevel_descriptor = + internal_static_User_descriptor.getNestedTypes().get(2); + internal_static_User_AnchorLevel_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_AnchorLevel_descriptor, + new java.lang.String[] { }); + internal_static_User_AuthenticationInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(3); + internal_static_User_AuthenticationInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_AuthenticationInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_AuthorStats_descriptor = + internal_static_User_descriptor.getNestedTypes().get(4); + internal_static_User_AuthorStats_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_AuthorStats_descriptor, + new java.lang.String[] { }); + internal_static_User_Border_descriptor = + internal_static_User_descriptor.getNestedTypes().get(5); + internal_static_User_Border_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_Border_descriptor, + new java.lang.String[] { }); + internal_static_User_BrotherhoodInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(6); + internal_static_User_BrotherhoodInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_BrotherhoodInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_FansClub_descriptor = + internal_static_User_descriptor.getNestedTypes().get(7); + internal_static_User_FansClub_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansClub_descriptor, + new java.lang.String[] { "Data", "PreferData", }); + internal_static_User_FansClub_PreferDataEntry_descriptor = + internal_static_User_FansClub_descriptor.getNestedTypes().get(0); + internal_static_User_FansClub_PreferDataEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansClub_PreferDataEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_User_FansClub_FansClubData_descriptor = + internal_static_User_FansClub_descriptor.getNestedTypes().get(1); + internal_static_User_FansClub_FansClubData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansClub_FansClubData_descriptor, + new java.lang.String[] { "ClubName", "Level", "UserFansClubStatus", "Badge", "AvailableGiftIds", "AnchorId", }); + internal_static_User_FansClub_FansClubData_UserBadge_descriptor = + internal_static_User_FansClub_FansClubData_descriptor.getNestedTypes().get(0); + internal_static_User_FansClub_FansClubData_UserBadge_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansClub_FansClubData_UserBadge_descriptor, + new java.lang.String[] { "Icons", "Title", }); + internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor = + internal_static_User_FansClub_FansClubData_UserBadge_descriptor.getNestedTypes().get(0); + internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansClub_FansClubData_UserBadge_IconsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_User_FansGroupInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(8); + internal_static_User_FansGroupInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FansGroupInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_FollowInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(9); + internal_static_User_FollowInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_FollowInfo_descriptor, + new java.lang.String[] { "FollowingCount", "FollowerCount", "FollowStatus", "PushStatus", "RemarkName", }); + internal_static_User_JAccreditInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(10); + internal_static_User_JAccreditInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_JAccreditInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_NobleLevelInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(11); + internal_static_User_NobleLevelInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_NobleLevelInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_OwnRoom_descriptor = + internal_static_User_descriptor.getNestedTypes().get(12); + internal_static_User_OwnRoom_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_OwnRoom_descriptor, + new java.lang.String[] { }); + internal_static_User_PayGrade_descriptor = + internal_static_User_descriptor.getNestedTypes().get(13); + internal_static_User_PayGrade_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_PayGrade_descriptor, + new java.lang.String[] { "TotalDiamondCount", "DiamondIcon", "Name", "Icon", "NextName", "Level", "NextIcon", "NextDiamond", "NowDiamond", "ThisGradeMinDiamond", "ThisGradeMaxDiamond", "PayDiamondBak", "GradeDescribe", "GradeIconList", "ScreenChatType", "ImIcon", "ImIconWithLevel", "LiveIcon", "NewImIconWithLevel", "NewLiveIcon", "UpgradeNeedConsume", "NextPrivileges", "Background", "BackgroundBack", "Score", "GradeBanner", "ProfileDialogBg", "ProfileDialogBgBack", }); + internal_static_User_PayGrade_GradeIcon_descriptor = + internal_static_User_PayGrade_descriptor.getNestedTypes().get(0); + internal_static_User_PayGrade_GradeIcon_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_PayGrade_GradeIcon_descriptor, + new java.lang.String[] { "Icon", "IconDiamond", "Level", "LevelStr", }); + internal_static_User_PoiInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(14); + internal_static_User_PoiInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_PoiInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_ProfileStyleParams_descriptor = + internal_static_User_descriptor.getNestedTypes().get(15); + internal_static_User_ProfileStyleParams_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_ProfileStyleParams_descriptor, + new java.lang.String[] { }); + internal_static_User_Subscribe_descriptor = + internal_static_User_descriptor.getNestedTypes().get(16); + internal_static_User_Subscribe_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_Subscribe_descriptor, + new java.lang.String[] { }); + internal_static_User_UserAttr_descriptor = + internal_static_User_descriptor.getNestedTypes().get(17); + internal_static_User_UserAttr_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_UserAttr_descriptor, + new java.lang.String[] { }); + internal_static_User_UserDressInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(18); + internal_static_User_UserDressInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_UserDressInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_UserVIPInfo_descriptor = + internal_static_User_descriptor.getNestedTypes().get(19); + internal_static_User_UserVIPInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_UserVIPInfo_descriptor, + new java.lang.String[] { }); + internal_static_User_UserStats_descriptor = + internal_static_User_descriptor.getNestedTypes().get(20); + internal_static_User_UserStats_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_UserStats_descriptor, + new java.lang.String[] { }); + internal_static_User_XiguaParams_descriptor = + internal_static_User_descriptor.getNestedTypes().get(21); + internal_static_User_XiguaParams_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_User_XiguaParams_descriptor, + new java.lang.String[] { }); + tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto new file mode 100644 index 00000000..a09a395b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Common.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; +import "User.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message Common { + string method = 1; + uint64 msgId = 2; + uint64 roomId = 3; + uint64 createTime = 4; + uint32 monitor = 5; + bool isShowMsg = 6; + string describe = 7; + // DisplayText displayText = 8; + uint64 foldType = 9; + uint64 anchorFoldType = 10; + uint64 priorityScore = 11; + string logId = 12; + string msgProcessFilterK = 13; + string msgProcessFilterV = 14; + User user = 15; + // Room room = 16; + uint64 anchorFoldTypeV2 = 17; + uint64 processAtSeiTimeMs = 18; + uint64 randomDispatchMs = 19; + bool isDispatch = 20; + uint32 channelId = 21; + uint64 diffSei2absSecond = 22; + uint64 anchorFoldDuration = 23; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto new file mode 100644 index 00000000..de0b28a5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/DoubleLikeDetail.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message DoubleLikeDetail { + bool doubleFlag = 1; + uint32 seqId = 2; + uint32 renewalsNum = 3; + uint32 triggersNum = 4; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto new file mode 100644 index 00000000..3b8db33a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftIMPriority.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message GiftIMPriority { + repeated uint64 queue_sizes_list = 1; + uint64 self_queue_priority = 2; + uint64 priority = 3; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto new file mode 100644 index 00000000..3031acca --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/GiftStruct.proto @@ -0,0 +1,66 @@ +syntax = "proto3"; +import "Image.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message GiftStruct { + Image image = 1; + string describe = 2; + bool notify = 3; + uint64 duration = 4; + uint64 id = 5; + // GiftStructFansClubInfo fansclubInfo = 6; + bool for_linkmic = 7; + bool doodle = 8; + bool for_fansclub = 9; + bool combo = 10; + uint32 type = 11; + uint32 diamond_count = 12; + bool is_displayed_on_panel = 13; + uint64 primary_effect_id = 14; + Image gift_label_icon = 15; + string name = 16; + string region = 17; + string manual = 18; + bool for_custom = 19; + map specialEffectsMap = 20; + Image icon = 21; + uint32 action_type = 22; + int32 watermelonSeeds = 23; + string goldEffect = 24; + // repeated LuckyMoneyGiftMeta subs = 25; + int64 goldenBeans = 26; + int64 honorLevel = 27; + int32 itemType = 28; + string schemeUrl = 29; + // GiftPanelOperation giftOperation = 30; + string eventName = 31; + int64 nobleLevel = 32; + string guideUrl = 33; + bool punishMedicine = 34; + bool forPortal = 35; + string businessText = 36; + bool cnyGift = 37; + int64 appId = 38; + int64 vipLevel = 39; + bool isGray = 40; + string graySchemeUrl = 41; + int64 giftScene = 42; + // GiftBanner giftBanner = 43; + repeated string triggerWords = 44; + // repeated GiftBuffInfo giftBuffInfos = 45; + bool forFirstRecharge = 46; + Image dynamicImgForSelected = 47; + int32 afterSendAction = 48; + int64 giftOfflineTime = 49; + string topBarText = 50; + Image topRightAvatar = 51; + string bannerSchemeUrl = 52; + bool isLocked = 53; + int64 reqExtraType = 54; + repeated int64 assetIds = 55; + // GiftPreviewInfo giftPreviewInfo = 56; + // GiftTip giftTip = 57; + int32 needSweepLightCount = 58; + // repeated GiftGroupInfo groupInfo = 59; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto new file mode 100644 index 00000000..1f487296 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Image.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message Image { + repeated string urlListList = 1; + string uri = 2; + int64 height = 3; + int64 width = 4; + string avgColor = 5; + int32 imageType = 6; + string openWebUrl = 7; + Content content = 8; + bool isAnimated = 9; + repeated NinePatchSetting flexSettingListList = 10; + repeated NinePatchSetting textSettingListList = 11; + + message Content { + string name = 1; + string fontColor = 2; + int64 level = 3; + string alternativeText = 4; + } + + message NinePatchSetting{ + + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto new file mode 100644 index 00000000..5caa0e47 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PatternRef.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message PatternRef { + string key = 1; + string default_pattern = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto new file mode 100644 index 00000000..01358fd1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/PublicAreaCommon.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "Image.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message PublicAreaCommon { + Image user_label = 1; + uint64 user_consume_in_room = 2; + uint64 user_send_gift_cnt_in_room = 3; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto new file mode 100644 index 00000000..60f985cf --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/Text.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +import "TextFormat.proto"; +import "TextPiece.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message Text { + string key = 1; + string default_patter = 2; + TextFormat default_format = 3; + TextPiece pieces_list = 4; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto new file mode 100644 index 00000000..662e1682 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffect.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +import "TextEffectDetail.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextEffect { + TextEffectDetail portrait = 1; + TextEffectDetail landscape = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto new file mode 100644 index 00000000..6d1146a4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextEffectDetail.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +import "Image.proto"; +import "Text.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextEffectDetail { + Text text = 1; + uint32 text_font_size = 2; + Image background = 3; + uint32 start = 4; + uint32 duration = 5; + uint32 x = 6; + uint32 y = 7; + uint32 width = 8; + uint32 height = 9; + uint32 shadow_dx = 10; + uint32 shadow_dy = 11; + uint32 shadow_radius = 12; + string shadow_color = 13; + string stroke_color = 14; + uint32 stroke_width = 15; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto new file mode 100644 index 00000000..8ca8ab55 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextFormat.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextFormat { + string color = 1; + bool bold = 2; + bool italic = 3; + uint32 weight = 4; + uint32 italic_angle = 5; + uint32 font_size = 6; + bool use_heigh_light_color = 7; + bool use_remote_clor = 8; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto new file mode 100644 index 00000000..e76d1ce4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiece.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; +import "TextFormat.proto"; +import "TextPieceImage.proto"; +import "TextPiecePatternRef.proto"; +import "TextPieceHeart.proto"; +import "TextPieceGift.proto"; +import "TextPieceUser.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPiece { + bool type = 1; + TextFormat format = 2; + string string_value = 3; + TextPieceUser user_value = 4; + TextPieceGift gift_value = 5; + TextPieceHeart heart_value = 6; + TextPiecePatternRef pattern_ref_value = 7; + TextPieceImage image_value = 8; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto new file mode 100644 index 00000000..5ed59e23 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceGift.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +import "PatternRef.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPieceGift { + uint64 gift_id = 1; + PatternRef name_ref = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto new file mode 100644 index 00000000..6528fd14 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceHeart.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPieceHeart { + string color = 1; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto new file mode 100644 index 00000000..6f507145 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceImage.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +import "Image.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPieceImage { + Image image = 1; + float scaling_rate = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto new file mode 100644 index 00000000..c3a51aa9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPiecePatternRef.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPiecePatternRef { + string key = 1; + string default_pattern = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto new file mode 100644 index 00000000..c46ae9ad --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/TextPieceUser.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +import "User.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message TextPieceUser { + User user = 1; + bool with_colon = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto new file mode 100644 index 00000000..4a296841 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/User.proto @@ -0,0 +1,272 @@ +syntax = "proto3"; +import "Image.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf.dto"; + +message User { + uint64 id = 1; + uint64 shortId = 2; + string nickname = 3; + uint32 gender = 4; + string signature = 5; + uint32 level = 6; + uint64 birthday = 7; + string telephone = 8; + Image avatarThumb = 9; + Image avatarMedium = 10; + Image avatarLarge = 11; + bool verified = 12; + int32 experience = 13; + string city = 14; + int32 status = 15; + int64 createTime = 16; + int64 modifyTime = 17; + int32 secret = 18; + string shareQrcodeUri = 19; + int32 incomeSharePercent = 20; + Image badgeImageListList = 21; + FollowInfo followInfo = 22; + PayGrade payGrade = 23; + FansClub fansClub = 24; + Border border = 25; + string specialId = 26; + Image avatarBorder = 27; + Image medal = 28; + repeated Image realTimeIconsList = 29; + repeated Image newRealTimeIconsList = 30; + int64 topVipNo = 31; + UserAttr userAttr = 32; + OwnRoom ownRoom = 33; + int64 payScore = 34; + int64 ticketCount = 35; + AnchorInfo anchorInfo = 36; + int32 linkMicStats = 37; + string displayId = 38; + bool withCommercePermission = 39; + bool withFusionShopEntry = 40; + int64 totalRechargeDiamondCount = 41; + AnchorLevel webcastAnchorLevel = 42; + string verifiedContent = 43; + AuthorStats authorStats = 44; + repeated User topFansList = 45; + string secUid = 46; + int32 userRole = 47; + XiguaParams xiguaInfo = 48; + ActivityInfo activityReward = 49; + NobleLevelInfo nobleInfo = 50; + BrotherhoodInfo brotherhoodInfo = 51; + Image personalCard = 52; + AuthenticationInfo authenticationInfo = 53; + int32 authorizationInfo = 54; + int32 adversaryAuthorizationInfo = 55; + PoiInfo poiInfo = 56; + Image mediaBadgeImageListList = 57; + int32 adversaryUserStatus = 58; + UserVIPInfo userVipInfo = 59; + repeated int64 commerceWebcastConfigIdsList = 60; + Image badgeImageListV2List = 61; + // IndustryCertification industryCertification = 62; + string locationCity = 63; + FansGroupInfo fansGroupInfo = 64; + string remarkName = 65; + int32 mysteryMan = 66; + string webRid = 67; + string desensitizedNickname = 68; + JAccreditInfo jAccreditInfo = 69; + Subscribe subscribe = 70; + bool isAnonymous = 71; + int32 consumeDiamondLevel = 72; + string webcastUid = 73; + ProfileStyleParams profileStyleParams = 74; + UserDressInfo userDressInfo = 75; + bool allowBeLocated = 1001; + bool allowFindByContacts = 1002; + bool allowOthersDownloadVideo = 1003; + bool allowOthersDownloadWhenSharingVideo = 1004; + bool allowShareShowProfile = 1005; + bool allowShowInGossip = 1006; + bool allowShowMyAction = 1007; + bool allowStrangeComment = 1008; + bool allowUnfollowerComment = 1009; + bool allowUseLinkmic = 1010; + AnchorLevel anchorLevel = 1011; + Image avatarJpg = 1012; + string bgImgUrl = 1013; + string birthdayDescription = 1014; + bool birthdayValid = 1015; + int32 blockStatus = 1016; + int32 commentRestrict = 1017; + string constellation = 1018; + int32 disableIchat = 1019; + int64 enableIchatImg = 1020; + int32 exp = 1021; + int64 fanTicketCount = 1022; + bool foldStrangerChat = 1023; + int64 followStatus = 1024; + bool hotsoonVerified = 1025; + string hotsoonVerifiedReason = 1026; + int32 ichatRestrictType = 1027; + string idStr = 1028; + bool isFollower = 1029; + bool isFollowing = 1030; + bool needProfileGuide = 1031; + int64 payScores = 1032; + bool pushCommentStatus = 1033; + bool pushDigg = 1034; + bool pushFollow = 1035; + bool pushFriendAction = 1036; + bool pushIchat = 1037; + bool pushStatus = 1038; + bool pushVideoPost = 1039; + bool pushVideoRecommend = 1040; + UserStats stats = 1041; + bool verifiedMobile = 1042; + string verifiedReason = 1043; + bool withCarManagementPermission = 1044; + int32 ageRange = 1045; + int64 watchDurationMonth = 1046; + + message ActivityInfo{ + + } + + message AnchorInfo { + + } + + message AnchorLevel{ + + } + + message AuthenticationInfo{ + + } + + message AuthorStats{ + + } + + message Border{ + + } + + message BrotherhoodInfo{ + + } + + message FansClub { + FansClubData data = 1; + map preferData = 2; + + message FansClubData { + string clubName = 1; + int32 level = 2; + int32 userFansClubStatus = 3; + UserBadge badge = 4; + repeated int64 availableGiftIds = 5; + int64 anchorId = 6; + + message UserBadge { + map icons = 1; + string title = 2; + } + + } + } + + message FansGroupInfo{ + + } + + message FollowInfo { + int64 followingCount = 1; + int64 followerCount = 2; + int64 followStatus = 3; + int64 pushStatus = 4; + string remarkName = 5; + } + + message JAccreditInfo{ + + } + + message NobleLevelInfo{ + + } + + message OwnRoom { + + } + + message PayGrade { + int64 totalDiamondCount = 1; + Image diamondIcon = 2; + string name = 3; + Image icon = 4; + string nextName = 5; + int64 level = 6; + Image nextIcon = 7; + int64 nextDiamond = 8; + int64 nowDiamond = 9; + int64 thisGradeMinDiamond = 10; + int64 thisGradeMaxDiamond = 11; + int64 payDiamondBak = 12; + string gradeDescribe = 13; + repeated GradeIcon gradeIconList = 14; + int64 screenChatType = 15; + Image imIcon = 16; + Image imIconWithLevel = 17; + Image liveIcon = 18; + Image newImIconWithLevel = 19; + Image newLiveIcon = 20; + int64 upgradeNeedConsume = 21; + string nextPrivileges = 22; + Image background = 23; + Image backgroundBack = 24; + int64 score = 25; + // GradeBuffInfo buffInfo = 26; + string gradeBanner = 1001; + Image profileDialogBg = 1002; + Image profileDialogBgBack = 1003; + + message GradeIcon{ + Image icon = 1; + int64 iconDiamond = 2; + int64 level = 3; + string levelStr = 4; + } + + } + + message PoiInfo{ + + } + + message ProfileStyleParams{ + + } + + message Subscribe{ + + } + + message UserAttr{ + + } + + message UserDressInfo{ + + } + + message UserVIPInfo { + + } + + message UserStats{ + + } + + message XiguaParams{ + + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto new file mode 100644 index 00000000..41a71eb4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_cmd_msg.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "Douyin_cmd_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_cmd_msg { + string method = 1; + bytes payload = 2; + int64 msg_id = 3; + int32 msg_type = 4; + int64 offset = 5; + bool need_wrds_store = 6; + int64 wrds_version = 7; + string wrds_sub_key = 8; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto new file mode 100644 index 00000000..4866a3b4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_chat_message_msg.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +import "Common.proto"; +import "User.proto"; +import "Image.proto"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "Douyin_webcast_chat_message_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_webcast_chat_message_msg { + Common common = 1; + User user = 2; + string content = 3; + bool visible_to_sender = 4; + Image background_image = 5; + string full_screen_text_color = 6; + Image background_image_v2 = 7; + // PublicAreaCommon public_area_common = 9; + Image gift_image = 10; + uint64 agree_msg_id = 11; + uint32 priority_level = 12; + // LandscapeAreaCommon landscape_area_common = 13; + uint64 event_time = 15; + bool send_review = 16; + bool from_intercom = 17; + bool intercom_hide_user_card = 18; + // repeated string chatTagsList = 19; + string chat_by = 20; + uint32 individual_chat_priority = 21; + // Text rtf_content = 22 ; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto new file mode 100644 index 00000000..fcd1d786 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_gift_message_msg.proto @@ -0,0 +1,52 @@ +syntax = "proto3"; +import "Common.proto"; +import "User.proto"; +import "TextEffect.proto"; +import "Text.proto"; +import "GiftIMPriority.proto"; +import "GiftStruct.proto"; +import "PublicAreaCommon.proto"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "Douyin_webcast_gift_message_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_webcast_gift_message_msg { + Common common = 1; + uint64 long_gift_id = 2; + uint64 fan_ticket_count = 3; + uint64 group_count = 4; + uint64 repeat_count = 5; + uint64 combo_count = 6; + User user = 7; + User to_user = 8 ; + uint32 repeat_end = 9 ; + TextEffect text_effect = 10 ; + uint64 group_id = 11 ; + uint64 income_taskgifts = 12 ; + uint64 room_fan_ticket_count = 13 ; + GiftIMPriority priority = 14 ; + GiftStruct gift = 15 ; + string log_id = 16 ; + uint64 send_type = 17 ; + PublicAreaCommon public_area_common = 18 ; + Text tray_display_text = 19 ; + uint64 banned_display_effects = 20 ; + // GiftTrayInfo trayInfo = 21; + // AssetEffectMixInfo assetEffectMixInfo = 22; + bool display_for_self = 25; + string interact_gift_info = 26; + string diy_item_info = 27; + repeated uint64 min_asset_set_list = 28; + uint64 total_count = 29; + uint32 client_gift_source = 30; + // AnchorGiftData anchorGift = 31; + repeated uint64 to_user_ids_list = 32; + uint64 send_timet = 33; + uint64 force_display_effectst = 34; + string trace_id = 35; + uint64 effect_display_ts = 36; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto new file mode 100644 index 00000000..2a617397 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_like_message_msg.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +import "Common.proto"; +import "User.proto"; +import "DoubleLikeDetail.proto"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "douyin_webcast_like_message_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_webcast_like_message_msg { + Common common = 1; + uint64 count = 2; + uint64 total = 3; + uint64 color = 4; + User user = 5; + string icon = 6; + DoubleLikeDetail doubleLikeDetail = 7; + // DisplayControlInfo displayControlInfo = 8; + uint64 linkmicGuestUid = 9; + string scene = 10; + // PicoDisplayInfo picoDisplayInfo = 11; + // = 12; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto new file mode 100644 index 00000000..f892a74c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_webcast_member_message_msg.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; +import "Common.proto"; +import "User.proto"; +import "Image.proto"; +import "Text.proto"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "Douyin_webcast_member_message_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_webcast_member_message_msg { + Common common = 1; + User user = 2; + uint64 memberCount = 3; + User operator = 4; + bool isSetToAdmin = 5; + bool isTopUser = 6; + int64 rankScore = 7; + int64 topUserNo = 8; + int64 enterType = 9; + int64 action = 10; + string actionDescription = 11; + int64 userId = 12; + // EffectConfig effectConfig = 13; + string popStr = 14; + // EffectConfig enterEffectConfig = 15; + Image backgroundImage = 16; + Image backgroundImageV2 = 17; + Text anchorDisplayText = 18; + // PublicAreaCommon publicAreaCommon = 19; + int64 userEnterTipType = 20; + int64 anchorEnterTipType = 21; + map buriedPointMap = 22; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto new file mode 100644 index 00000000..fe01e9ab --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "Douyin_websocket_frameProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +message douyin_websocket_frame { + uint64 seq_id = 1; + uint64 log_id = 2; + uint64 service = 3; + uint64 method = 4; + map headers_list = 5; + string payload_encoding = 6; + string payload_type = 7; + bytes payload = 8; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto new file mode 100644 index 00000000..808bb2fb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/main/resources/proto/douyin_websocket_frame_msg.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package tech.ordinaryroad.live.chat.client.douyin.protobuf; + +option java_package = "tech.ordinaryroad.live.chat.client.douyin.protobuf"; +option java_outer_classname = "douyin_websocket_frame_msgProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +import "douyin_cmd_msg.proto"; + +message douyin_websocket_frame_msg { + repeated douyin_cmd_msg messages_list = 1; + string cursor = 2; + uint64 fetch_interval = 3; + uint64 now = 4; + string internal_ext = 5; + uint32 fetch_type = 6; + map route_params = 7; + uint64 heartbeat_duration = 8; + bool need_ack = 9; + string push_server = 10; + string live_cursor = 11; + bool history_no_more = 12; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java new file mode 100644 index 00000000..fe217bcc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/api/DouyinApisTest.java @@ -0,0 +1,15 @@ +package tech.ordinaryroad.live.chat.client.douyin.api; + +import org.junit.jupiter.api.Test; + +/** + * @author mjz + * @date 2024/1/3 + */ +class DouyinApisTest { + + @Test + void roomInit() { + DouyinApis.roomInit("886419461662"); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java new file mode 100644 index 00000000..a80ec93d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyin/src/test/java/tech/ordinaryroad/live/chat/client/douyin/client/DouyinLiveChatClientTest.java @@ -0,0 +1,93 @@ +package tech.ordinaryroad.live.chat.client.douyin.client; + +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyin.constant.DouyinCmdEnum; +import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinGiftMsg; +import tech.ordinaryroad.live.chat.client.douyin.msg.DouyinLikeMsg; +import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler; + +/** + * @author mjz + * @date 2024/1/2 + */ +@Slf4j +class DouyinLiveChatClientTest { + + static Object lock = new Object(); + DouyinLiveChatClient client; + + @Test + void example() throws InterruptedException { + String cookie = System.getenv("cookie"); + log.error("cookie: {}", cookie); + DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder() + // TODO 浏览器Cookie + .cookie(cookie) + .roomId("renyixu1989") + .roomId("567789235524") + .roomId("166163409118") + .roomId("722266687616") + .roomId("o333") + .roomId("qilongmusic") + .roomId("yimei20210922") + .build(); + + client = new DouyinLiveChatClient(config, new IDouyinMsgListener() { + @Override + public void onMsg(IMsg msg) { + // log.debug("收到{}消息 {}", msg.getClass(), msg); + } + + @Override + public void onCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { + // log.debug("收到CMD消息{} {}", cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(DouyinCmdEnum cmd, ICmdMsg cmdMsg) { + log.debug("收到其他CMD消息 {}", cmd); + } + + @Override + public void onUnknownCmd(String cmdString, IMsg msg) { + log.debug("收到未知CMD消息 {}", cmdString); + } + + @Override + public void onDanmuMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinDanmuMsg msg) { + log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinGiftMsg msg) { + log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); + } + + @Override + public void onLikeMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinLikeMsg msg) { + log.info("{} 收到点赞 [{}] {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + + @Override + public void onEnterRoomMsg(DouyinBinaryFrameHandler binaryFrameHandler, DouyinEnterRoomMsg msg) { + log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + }); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md new file mode 100644 index 00000000..0b71bda0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/README.md @@ -0,0 +1,52 @@ +### 序列化 + +#### 序列化基本数据类型 + +1. escape(key) +2. escape(value) +3. key@=value/ + +#### 序列化Map + +1. escape(key) +2. value for each + 1. escape(key) + 2. escape(value) + 3. escape(key@=value/) +3. escape(value) +4. key@=value/ + +### 反序列化 + +#### 反序列化基本数据类型 + +1. spilt("/"): + type@=chatmsg + +2. split("@="): + 1. key: unescape(key) = el + 2. unescape(value).endsWith("/") = false + 2.1 value = chatmsg + +#### 反序列化Map + +1. spilt("/"): + el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS + +2. split("@="): + 1. key: unescape = el + 2. unescape(value).endsWith("/") = true + eid@A=1/etp@A=1/sc@A=1/ + 1. split("/") + eid@A=1 + etp@A=1 + sc@A=1 + 2. unescape: + eid@=1 + etp@=1 + sc@=1 + 3. for each + 1. split("@=") + 2. unescape(key) + 3. unescape(value) + 4. value: map \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml new file mode 100644 index 00000000..d051f935 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/pom.xml @@ -0,0 +1,61 @@ + + + + 4.0.0 + + org.ruoyi + live-chat-clients + ${revision} + ../pom.xml + + jar + + live-chat-client-douyu + live-chat-client-douyu + + + UTF-8 + + + + + org.ruoyi + live-chat-client-servers-netty-client + + + + ch.qos.logback + logback-classic + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java new file mode 100644 index 00000000..32c53664 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApis.java @@ -0,0 +1,196 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.api; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.crypto.digest.MD5; +import cn.hutool.http.*; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.Cleanup; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; + +import java.util.List; +import java.util.Map; + +/** + * API简易版 + * + * @author mjz + * @date 2023/5/5 + */ +@Slf4j +public class DouyuApis { + + public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + public static final String PATTERN_BODY_ROOM_ID = "\\$ROOM\\.room_id\\D+(\\d+)"; + public static final String KEY_REDIRECT_LOCATION_RID = "rid"; + public static final String KEY_COOKIE_DY_DID = "dy_did"; + public static final String KEY_COOKIE_ACF_UID = "acf_uid"; + public static final String KEY_COOKIE_ACF_STK = "acf_stk"; + public static final String KEY_COOKIE_ACF_LTKID = "acf_ltkid"; + public static final String API_AVATAR = "https://apic.douyucdn.cn/upload/"; + // https://webconf.douyucdn.cn/resource/common/gift/flash/gift_effect.json + // https://webconf.douyucdn.cn/resource/common/gift/common_config_v2.json + // https://webconf.douyucdn.cn/resource/common/prop_gift_list/prop_gift_config.json + // 用PID查询礼物信息:https://gift.douyucdn.cn/api/prop/v1/web/single?pid= + // 查询房间礼物列表:https://gift.douyucdn.cn/api/gift/v3/web/list?rid= + public static final String API_GIFT_LIST = "https://gift.douyucdn.cn/api/gift/v3/web/list?rid="; + public static final String API_PROP_SINGLE = "https://gift.douyucdn.cn/api/prop/v1/web/single?pid="; + public static final String API_AVATAR_PREFIX_SMALL = "_small.jpg"; + public static final String API_AVATAR_PREFIX_MIDDLE = "_middle.jpg"; + public static final String API_AVATAR_PREFIX_BIG = "_big.jpg"; + + public static String getAvatarUrl(List list, String prefix) { + if (CollUtil.isEmpty(list) || list.size() < 3) { + return StrUtil.EMPTY; + } + return API_AVATAR + CollUtil.join(list, "/") + prefix; + } + + public static String getSmallAvatarUrl(List list) { + return getAvatarUrl(list, API_AVATAR_PREFIX_SMALL); + } + + public static long getRealRoomId(long roomId, String cookie) { + String realRoomIdString = null; + @Cleanup + HttpResponse execute = createGetRequest("https://www.douyu.com/" + roomId, cookie).execute(); + if (execute.getStatus() == HttpStatus.HTTP_NOT_FOUND) { + throw new BaseException("获取" + roomId + "真实房间ID失败"); + } + if (HttpStatus.isRedirected(execute.getStatus())) { + String location = execute.header(Header.LOCATION); + Map paramMap = HttpUtil.decodeParamMap(location, null); + if (paramMap.containsKey(KEY_REDIRECT_LOCATION_RID)) { + realRoomIdString = paramMap.get(KEY_REDIRECT_LOCATION_RID); + } + } + if (StrUtil.isBlank(realRoomIdString)) { + String body = execute.body(); + String matchString = ReUtil.get(PATTERN_BODY_ROOM_ID, body, 1); + if (StrUtil.isNotBlank(matchString)) { + realRoomIdString = matchString; + } + } + long realRoomId = roomId; + if (!StrUtil.isBlank(realRoomIdString)) { + try { + realRoomId = NumberUtil.parseLong(realRoomIdString); + } catch (Exception e) { + throw new BaseException("获取" + roomId + "真实房间ID失败"); + } + } + return realRoomId; + } + + public static long getRealRoomId(long roomId) { + return getRealRoomId(roomId, null); + } + + public static JsonNode getServerInfo(long roomId, String cookie) { + @Cleanup + HttpResponse execute = createPostRequest("https://www.douyu.com/lapi/live/gateway/web/" + roomId + "?isH5=1", cookie).execute(); + return responseInterceptor(execute.body()); + } + + public static JsonNode getServerInfo(long roomId) { + return getServerInfo(roomId, null); + } + + public static String getRandomWssUri(long roomId) { + JsonNode serverInfo = getServerInfo(roomId); + JsonNode wss = serverInfo.get("wss"); + JsonNode jsonNode = wss.get(RandomUtil.randomInt(0, wss.size())); + return "wss://" + jsonNode.get("domain").asText() + ":" + jsonNode.get("port").asInt(); + } + + public static JsonNode getGiftList(long roomId) { + @Cleanup + HttpResponse execute = createGetRequest(API_GIFT_LIST + roomId, null).execute(); + return responseInterceptor(execute.body()); + } + + @SneakyThrows + public static GiftPropSingle getGiftPropSingleByPid(String pid) { + @Cleanup + HttpResponse execute = createGetRequest(API_PROP_SINGLE + pid, null).execute(); + JsonNode jsonNode = responseInterceptor(execute.body()); + return BaseMsg.OBJECT_MAPPER.readValue(jsonNode.toString(), GiftPropSingle.class); + } + + public static final String vk_secret = "r5*^5;}2#${XF[h+;'./.Q'1;,-]f'p["; + + /** + * 参考: 斗鱼关注人数爬取 ── 字体反爬的攻与防 + * + * @param currentTimeSecs + * @param did + * @return + */ + public static String generateVk(long currentTimeSecs, String did) { + return MD5.create().digestHex(currentTimeSecs + vk_secret + did); + } + + public static String generateVk(String did) { + return generateVk(OrLocalDateTimeUtil.zonedCurrentTimeSecs(), did); + } + + public static HttpRequest createGetRequest(String url, String cookie) { + return HttpUtil.createGet(url) + .cookie(cookie); + } + + public static HttpRequest createPostRequest(String url, String cookie) { + return HttpUtil.createPost(url) + .cookie(cookie); + } + + private static JsonNode responseInterceptor(String responseString) { + try { + JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); + int code = jsonNode.get("error").asInt(); + if (code == 0) { + // 成功 + return jsonNode.get("data"); + } else { + throw new BaseException(jsonNode.get("msg").asText()); + } + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java new file mode 100644 index 00000000..a780acaf --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuDanmuLiveChatClient.java @@ -0,0 +1,117 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.client; + +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.LoginresMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; + +import java.util.List; + +/** + * 直播间弹幕客户端{@link DouyuClientModeEnum#DANMU} + * + * @author mjz + * @date 2023/8/20 + */ +@Slf4j +public class DouyuDanmuLiveChatClient extends BaseDouyuLiveChatClient implements IDouyuMsgListener { + + public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(DouyuClientModeEnum.DANMU, config, msgListeners, connectionListener, workerGroup); + addMsgListener(DouyuDanmuLiveChatClient.this); + } + + public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(DouyuClientModeEnum.DANMU, config, msgListener, connectionListener, workerGroup); + addMsgListener(DouyuDanmuLiveChatClient.this); + } + + public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { + this(config, msgListener, null); + } + + public DouyuDanmuLiveChatClient(DouyuLiveChatClientConfig config) { + this(config, null); + } + + @Override + public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + return new DouyuConnectionHandler(DouyuClientModeEnum.DANMU, + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), + DouyuDanmuLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public DouyuBinaryFrameHandler initBinaryFrameHandler() { + return new DouyuBinaryFrameHandler(msgListeners, DouyuDanmuLiveChatClient.this); + } + + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + if (msg instanceof LoginresMsg) { + // 1 type@=joingroup/rid@=4615502/gid@=1/ + send(getWebSocketFrameFactory(getConfig().getRoomId()).createJoingroup(), () -> { + // 2 type@=mrkl/ + send(getWebSocketFrameFactory(getConfig().getRoomId()).createHeartbeat(), () -> { + // 3 type@=sub/mt@=dayrk/ + send(getWebSocketFrameFactory(getConfig().getRoomId()).createSub()); + }); + }); + } + } + + @Override + public boolean removeMsgListener(IDouyuMsgListener msgListener) { + if (msgListener == DouyuDanmuLiveChatClient.this) { + return false; + } + return super.removeMsgListener(msgListener); + } + + @Override + public void removeAllMsgListeners() { + super.removeAllMsgListeners(); + addMsgListener(DouyuDanmuLiveChatClient.this); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java new file mode 100644 index 00000000..4e183a14 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClient.java @@ -0,0 +1,268 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.client; + +import cn.hutool.cache.impl.TimedCache; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.core.util.RandomUtil; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.MsgrepeaterproxylistMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 直播间弹幕客户端 + * + * @author mjz + * @date 2023/8/20 + */ +@Slf4j +public class DouyuLiveChatClient extends DouyuWsLiveChatClient implements IDouyuMsgListener { + + /** + * 通用礼物缓存,过期时间1天 + * pid,Info + */ + public static final TimedCache giftMap = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); + /** + * 房间礼物缓存,过期时间1天 + * realRoomId,(giftId,Info) + */ + public static final TimedCache> roomGiftMap = new TimedCache<>(TimeUnit.DAYS.toMillis(1), new HashMap<>()); + private final DouyuWsLiveChatClient proxyClient = this; + private DouyuDanmuLiveChatClient danmuClient = null; + private DouyuConnectionHandler connectionHandler; + /** + * 统一管理Ws、Danmu的连接状态 + */ + private final IDouyuConnectionListener connectionListener; + + public DouyuLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, msgListeners, null, workerGroup); + this.connectionListener = connectionListener; + } + + public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, msgListener, null, workerGroup); + this.connectionListener = connectionListener; + } + + public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public DouyuLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { + this(config, msgListener, null); + } + + public DouyuLiveChatClient(DouyuLiveChatClientConfig config) { + this(config, null); + } + + @Override + public void init() { + super.init(); + + // 初始化房间礼物列表 + Map map = new HashMap<>(); + DouyuApis.getGiftList(getConfig().getRoomId()) + .get("giftList") + .forEach(jsonNode -> { + try { + GiftListInfo giftListInfo = BaseMsg.OBJECT_MAPPER.readValue(jsonNode.toString(), GiftListInfo.class); + map.put(String.valueOf(giftListInfo.getId()), giftListInfo); + } catch (Exception e) { + if (log.isDebugEnabled()) { + log.debug("获取房间礼物列表异常", e); + } + // ignore + } + }); + roomGiftMap.put(String.valueOf(DouyuApis.getRealRoomId(getConfig().getRoomId())), map); + } + + @Override + public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + this.connectionHandler = super.initConnectionHandler(super.clientConnectionListener); + return connectionHandler; + } + + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + super.onMsg(binaryFrameHandler, msg); + if (msg instanceof MsgrepeaterproxylistMsg) { + MsgrepeaterproxylistMsg msgrepeaterproxylistMsg = (MsgrepeaterproxylistMsg) msg; + List> list = msgrepeaterproxylistMsg.getList(); + if (list.isEmpty()) { + log.error("弹幕服务器列表为空"); + if (connectionListener != null) { + connectionListener.onConnectFailed(connectionHandler); + } + disconnect(); + } else { + // 初始化danmuClient + int randomIndex = RandomUtil.randomInt(0, list.size()); + Map randomMap = list.get(randomIndex); + DouyuLiveChatClientConfig danmuClientConfig = BeanUtil.toBean(getConfig(), DouyuLiveChatClientConfig.class, CopyOptions.create().ignoreNullValue()); + danmuClientConfig.setWebsocketUri(String.format("wss://%s:%s/", randomMap.get("ip"), randomMap.get("port"))); + destroyDanmuClient(); + this.danmuClient = new DouyuDanmuLiveChatClient(danmuClientConfig, new IDouyuMsgListener() { + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onMsg(binaryFrameHandler, msg)); + } + + @Override + public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(binaryFrameHandler, msg)); + } + + @Override + public void onGiftMsg(DouyuBinaryFrameHandler binaryFrameHandler, DgbMsg msg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(binaryFrameHandler, msg)); + } + + @Override + public void onEnterRoomMsg(DouyuBinaryFrameHandler binaryFrameHandler, UenterMsg uenterMsg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(binaryFrameHandler, uenterMsg)); + } + + @Override + public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, ICmdMsg cmdMsg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(binaryFrameHandler, cmd, cmdMsg)); + } + + @Override + public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, ICmdMsg cmdMsg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg)); + } + + @Override + public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, IMsg msg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(binaryFrameHandler, cmdString, msg)); + } + + @Override + public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onCmdMsg(binaryFrameHandler, cmd, cmdMsg)); + } + + @Override + public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg)); + } + + @Override + public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, BaseMsg msg) { + proxyClient.iteratorMsgListeners(msgListener -> msgListener.onUnknownCmd(binaryFrameHandler, cmdString, msg)); + } + }, new IDouyuConnectionListener() { + @Override + public void onConnected(DouyuConnectionHandler connectionHandler) { + if (connectionListener != null) { + connectionListener.onConnected(connectionHandler); + } + } + + @Override + public void onConnectFailed(DouyuConnectionHandler connectionHandler) { + if (connectionListener != null) { + connectionListener.onConnectFailed(connectionHandler); + } + } + + @Override + public void onDisconnected(DouyuConnectionHandler connectionHandler) { + if (connectionListener != null) { + connectionListener.onDisconnected(connectionHandler); + } + } + }); + this.danmuClient.addStatusChangeListener(evt -> { + ClientStatusEnums newStatus = (ClientStatusEnums) evt.getNewValue(); + switch (newStatus) { + case CONNECTED: + case RECONNECTING: + case CONNECT_FAILED: + case DISCONNECTED: + case CONNECTING: { + super.setStatus(newStatus); + break; + } + default: { + // ignore + } + } + + }); + this.danmuClient.connect(); + } + } + } + + @Override + protected void setStatus(ClientStatusEnums status) { + if (status == ClientStatusEnums.CONNECTED) { + return; + } + super.setStatus(status); + } + + @Override + public void destroy() { + destroyDanmuClient(); + super.destroy(); + } + + private void destroyDanmuClient() { + if (danmuClient != null) { + danmuClient.destroy(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java new file mode 100644 index 00000000..e6d50621 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuWsLiveChatClient.java @@ -0,0 +1,116 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.client; + +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.LoginresMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; + +import java.util.List; + +/** + * 直播间弹幕客户端{@link DouyuClientModeEnum#WS} + * + * @author mjz + * @date 2023/8/20 + */ +@Slf4j +public class DouyuWsLiveChatClient extends BaseDouyuLiveChatClient implements IDouyuMsgListener { + + public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(DouyuClientModeEnum.WS, config, msgListeners, connectionListener, workerGroup); + addMsgListener(DouyuWsLiveChatClient.this); + } + + public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(DouyuClientModeEnum.WS, config, msgListener, connectionListener, workerGroup); + addMsgListener(DouyuWsLiveChatClient.this); + } + + public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { + this(config, msgListener, null); + } + + public DouyuWsLiveChatClient(DouyuLiveChatClientConfig config) { + this(config, null); + } + + @Override + protected String getWebSocketUriString() { + return DouyuApis.getRandomWssUri(getConfig().getRoomId()); + } + + @Override + public DouyuConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + return new DouyuConnectionHandler(DouyuClientModeEnum.WS, + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), + DouyuWsLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public DouyuBinaryFrameHandler initBinaryFrameHandler() { + return new DouyuBinaryFrameHandler(msgListeners, DouyuWsLiveChatClient.this); + } + + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + if (msg instanceof LoginresMsg) { + send(getWebSocketFrameFactory(getConfig().getRoomId()).createKeeplive(getConfig().getCookie())); + } + } + + @Override + public boolean removeMsgListener(IDouyuMsgListener msgListener) { + if (msgListener == DouyuWsLiveChatClient.this) { + return false; + } + return super.removeMsgListener(msgListener); + } + + @Override + public void removeAllMsgListeners() { + super.removeAllMsgListeners(); + addMsgListener(DouyuWsLiveChatClient.this); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java new file mode 100644 index 00000000..799eab2f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/client/base/BaseDouyuLiveChatClient.java @@ -0,0 +1,139 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.client.base; + +import cn.hutool.core.collection.CollUtil; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory.DouyuWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; + +import java.util.List; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2023/9/15 + */ +@Slf4j +public abstract class BaseDouyuLiveChatClient extends BaseNettyClient< + DouyuLiveChatClientConfig, + DouyuCmdEnum, + IDouyuMsg, + IDouyuMsgListener, + DouyuConnectionHandler, + DouyuBinaryFrameHandler + > { + + private final DouyuClientModeEnum mode; + + public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, List msgListeners, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + this.mode = mode; + addMsgListeners(msgListeners); + + // 初始化 + this.init(); + } + + public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + this.mode = mode; + addMsgListener(msgListener); + + // 初始化 + this.init(); + } + + public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener, IDouyuConnectionListener connectionListener) { + this(mode, config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config, IDouyuMsgListener msgListener) { + this(mode, config, msgListener, null, new NioEventLoopGroup()); + } + + public BaseDouyuLiveChatClient(DouyuClientModeEnum mode, DouyuLiveChatClientConfig config) { + this(mode, config, CollUtil.newArrayList(), null, new NioEventLoopGroup()); + } + + @Override + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + if (!checkCanSendDanmu()) { + return; + } + if (mode == DouyuClientModeEnum.WS && danmu instanceof String) { + String msg = (String) danmu; + if (log.isDebugEnabled()) { + log.debug("{} douyu发送弹幕 {}", getConfig().getRoomId(), danmu); + } + + WebSocketFrame webSocketFrame = null; + try { + webSocketFrame = getWebSocketFrameFactory(getConfig().getRoomId()).createDanmu(msg, getConfig().getCookie()); + } catch (Exception e) { + log.error("douyu弹幕包创建失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (webSocketFrame == null) { + return; + } + + send(webSocketFrame, () -> { + if (log.isDebugEnabled()) { + log.debug("douyu弹幕发送成功 {}", danmu); + } + if (success != null) { + success.run(); + } + finishSendDanmu(); + }, throwable -> { + log.error("douyu弹幕发送失败", throwable); + if (failed != null) { + failed.accept(throwable); + } + }); + } else { + super.sendDanmu(danmu); + } + } + + protected static DouyuWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { + return DouyuWebSocketFrameFactory.getInstance(roomId); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java new file mode 100644 index 00000000..685cd8d5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/config/DouyuLiveChatClientConfig.java @@ -0,0 +1,69 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.config; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatNumberUtil; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; + +/** + * Douyu直播间弹幕客户端配置 + * + * @author mjz + * @date 2023/8/21 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public class DouyuLiveChatClientConfig extends BaseNettyClientConfig { + + @Builder.Default + private String ver = "20220825"; + + @Builder.Default + private String aver = "218101901"; + + @Override + public Long getRoomId() { + return OrLiveChatNumberUtil.parseLong(super.getRoomId()); + } + + public void setVer(String ver) { + String oldValue = this.ver; + this.ver = ver; + super.propertyChangeSupport.firePropertyChange("ver", oldValue, ver); + } + + public void setAver(String aver) { + String oldValue = this.aver; + this.aver = aver; + super.propertyChangeSupport.firePropertyChange("aver", oldValue, aver); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java new file mode 100644 index 00000000..dbdc8b22 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuClientModeEnum.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.constant; + +/** + * @author mjz + * @date 2023/9/15 + */ +public enum DouyuClientModeEnum { + /** + * 发送弹幕,获取可用的Danmu服务器链接 + */ + WS, + /** + * 接收直播间弹幕 + */ + DANMU, +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java new file mode 100644 index 00000000..9078fcda --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/constant/DouyuCmdEnum.java @@ -0,0 +1,199 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import tech.ordinaryroad.live.chat.client.douyu.msg.*; + +/** + * 文档 + * + * @author mjz + * @date 2023/1/6 + */ +@Getter +@AllArgsConstructor +@RequiredArgsConstructor +public enum DouyuCmdEnum { + /** + * 登录请求消息 + *
{@code
+     * type@=loginreq/roomid@=7750753/dfl@=/username@=visitor10424697/uid@=1168052601/ver@=20220825/aver@=218101901/ct@=0/
+     * type@=loginreq/roomid@=58839/aid@=yihanTest/token@=4c8421535f9639d8c1ad35d1fa421f36/time@=1574850339/auth@=45619bb990e6b76db06a66d5a8a446d7/
+     * }
+ */ + loginreq(LoginreqMsg.class), + /** + * 登录响应消息 + *
{@code
+     * type@=loginres/userid@=1168052601/roomgroup@=0/pg@=0/sessionid@=0/username@=/nickname@=/live_stat@=0/is_illegal@=0/ill_ct@=/ill_ts@=0/now@=0/ps@=0/es@=0/it@=0/its@=0/npv@=0/best_dlev@=0/cur_lev@=0/nrc@=964715377/ih@=0/sid@=76494/sahf@=0/sceneid@=0/newrg@=0/regts@=0/ip@=112.43.93.229/rn@=0/rct@=0/
+     * type@=loginresp/msg@=ok/rid@=77614265/
+     * }
+ */ + loginres(LoginresMsg.class), + /** + * 入组 + * type@=joingroup/rid@=59872/aid@=yourapplicaitonID/token@=4c8421535f9639d8c1ad35d1fa421f36/time@=1574850339/auth@=xxxxxxxxxxxx/ + * Auth 生成方式为 md5({secret}_{aid}_{time}_{token}), secret为aid对应的秘钥 + */ + joingroup(JoingroupMsg.class), + /** + * 客户端旧版心跳、心跳回复 + *
{@code
+     * type@=keeplive/tick@=1439802131/
+     * }
+ */ + keeplive(KeepliveMsg.class), + /** + * 客户端新版心跳、心跳回复 + *
{@code
+     * type@=mrkl/
+     * }
+ */ + mrkl, + /** + * 订阅贵族排行变动 + * type@=sub/mt@=online_vip_list/ + */ + sub(SubMsg.class), + subres, + noble_num_info, + oni, + postLogin, + /** + * 弹幕 + * type@=chatmsg/rid@=7750753/uid@=549977/nn@=一闪一闪亮品品/txt@=冷门歌手哎,声音独特哎/cid@=044c3bf3074b483275a44e0000000000/ic@=avatar@Sdefault@S08/level@=29/sahf@=0/nl@=7/cst@=1693107871294/bnn@=/bl@=0/brid@=0/hc@=/lk@=/dms@=8/pdg@=26/pdk@=86/ext@=/ + * type@=chatmsg/rid@=58839/ct@=8/hashid@=9LA18ePx4dqW/nn@=test/txt@=666/cid@=1111/ic@=icon/sahf@=0/level@=1/nl@=0/nc@=0/cmt@=0/gt@=0/col@=0/rg@=0/pg@=0/dlv@=0/dc@=0/bdlv@=0/gatin@=0/ chtin@=0/repin@=0/bnn@=test/bl@=0/brid@=58839/hc@=0/ol@=0/rev@=0/hl@=0/ifs@=0/p2p@=0/el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS/ + */ + chatmsg(ChatmsgMsg.class), + pingreq, + /** + * 登出 + * type@=logout/ + */ + logout, + /** + * 登录响应 + * type@=loginresp/msg@=ok/rid@=77614265/ + */ + loginresp, + /** + * 礼物 + * type@=dgb/gfid@=1/gs@=59872/gfcnt@=1/hashid@=1/rid@=1/nn@=someone/level@=1/dw@=1/ + */ + dgb(DgbMsg.class), + /** + * 用户进房通知消息 + * type@=uenter/rid@=1/ uid@=1/nn@=someone/str@=1/level@=1/el@=eid@AA=1@ASetp@AA=1@ASsc@AA=1@AS@S/ + */ + uenter(UenterMsg.class), + /** + * 房间开关播提醒 + * type@=rss/rid@=1/ss@=1/code@=1/rt@=0/notify@=1/endtime@=1/ + */ + rss, + /** + * 超级弹幕消息 + * type@=ssd/rid@=1/trid@=1/content@=test/cli tp@=1/url@=test_url/jmptp@=1/ + */ + ssd, + /** + * 房间内礼物广播 + * type@=spbc/rid@=1/gfid@=1/sn@=name/dn@=name/gn@=1/gc@=1/gb@=1/es@=1/ eid@=1/ + */ + spbc, + /** + * 房间宝箱消息 + * type@=tsgs/rid@=1/gid@=1/gfid@=1/sn@=name/dn@=name/gn@=1/gc@=1/gb@=1/es@=1/gfid@=1/eid@=1/ + */ + tsgs, + /** + * 房间内 top10 变化消息 + * type@=rankup/uid@=1/rn@=3/rid@=1/rkt@=1/gid@=-9999/rt@=0/ nk@=test/sz@=3/drid@=1/bt@=1/ + */ + rankup, + /** + * 主播离开提醒 + * type@=al/rid@=10111/aid@=3044114/ + */ + al, + /** + * 主播回来继续直播提醒 + * type@=ab/rid@=10111/gid@=-9999/aid@=3044114/ + */ + ab, + /** + * 用户等级提升消息 + * type@=upgrade/rid@=1/gid@=-9999/uid@=12001/nn@=test/level@=3/ic@=icon/ + */ + upgrade, + /** + * 主播等级提升广播 + * type@=upbc/rid@=1/gid@=-9999/lev@=20/pu@=0/ + */ + upbc, + /** + * 禁言操作结果 + * type@=newblackres/rid@=1/gid@=-9999/ret@=0/otype@=2/sid@=10002/did@=10003/snic@=stest/dnic@=dtest/endtime@=1501920157/ + */ + newblackres, + /** + * 徽章等级提升通知 + * type@=blab/rid@=1/gid@=-9999/uid@=10002/nn@=test/lbl@=2/bl@=3/ba@=1/bnn@=ttt/ + */ + blab, + /** + * 用户分享了直播间通知 + * type@=srres/rid@=1/gid@=-9999/uid@=12001/nickname@=test/exp@=3/ + */ + srres, + /** + * 栏目排行榜变更通知 + * type@=rri/rid@=1/rn@=cate_rank/cate_id@=5/uid@=10005/sc@=100 00/idx@=10/bcr@=1/ibc@=1/an@=test/rktype@=1/tag_id@=1200/gif t_id@=100/ + */ + rri, + mapkb(MapkbMsg.class), + /** + * 发送弹幕 + */ + chatmessage(ChatmessageMsg.class), + h5ckreq(H5ckreqMsg.class), + h5gkcreq(H5gkcreqMsg.class), + h5cs(H5csMsg.class), + msgrepeaterproxylist(MsgrepeaterproxylistMsg.class), + ; + + private Class tClass; + + public static DouyuCmdEnum getByString(String cmd) { + try { + return DouyuCmdEnum.valueOf(cmd); + } catch (Exception e) { + return null; + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java new file mode 100644 index 00000000..cc3d33da --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuConnectionListener.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.listener; + + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; + +/** + * 连接回调 + * + * @author mjz + * @date 2023/8/21 + */ +public interface IDouyuConnectionListener extends IBaseConnectionListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java new file mode 100644 index 00000000..782c884e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/listener/IDouyuMsgListener.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IEnterRoomMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; + +/** + * @author mjz + * @date 2023/1/7 + */ +public interface IDouyuMsgListener extends IBaseMsgListener, + IDanmuMsgListener, + IGiftMsgListener, + IEnterRoomMsgListener { +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java new file mode 100644 index 00000000..1e801cee --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmessageMsg.java @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import cn.hutool.core.util.RandomUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/9/7 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ChatmessageMsg extends BaseDouyuCmdMsg { + + private String pe = "0"; + /** + * 弹幕内容 + */ + private String content; + private String col = "0"; + /** + * Cookie中的dy_did + */ + private String dy; + /** + * Cookie中的acf_uid + */ + private String sender; + private String ifs = "0"; + private String nc = "0"; + private String dat = "0"; + private String rev = "0"; + /** + * 当前时间戳(秒) + */ + private String tts; + private String admzq = "0"; + /** + * tts往后加几秒的时间戳(毫秒) + */ + private String cst; + + public ChatmessageMsg(String content, String dy, String sender) { + this.content = content; + this.dy = dy; + this.sender = sender; + this.tts = String.valueOf(OrLocalDateTimeUtil.zonedCurrentTimeSecs()); + this.cst = String.valueOf(OrLocalDateTimeUtil.zonedCurrentTimeMillis() + RandomUtil.randomLong(8000, 10000)); + } + + @Override + public String getType() { + return DouyuCmdEnum.chatmessage.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java new file mode 100644 index 00000000..052954e3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/ChatmsgMsg.java @@ -0,0 +1,125 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +import java.util.List; + +/** + *
{@code
+ * {
+ * 	"type": "chatmsg",
+ * 	"cmdEnum": "chatmsg",
+ * 	"cmd": "chatmsg",
+ * 	"nn": "宋老二929",
+ * 	"ext": null,
+ * 	"bnn": null,
+ * 	"level": "1",
+ * 	"cst": "1693213418102",
+ * 	"brid": "0",
+ * 	"bl": "0",
+ * 	"dms": "5",
+ * 	"rid": "3168536",
+ * 	"uid": "396023456",
+ * 	"txt": "666",
+ * 	"pdg": "47",
+ * 	"pdk": "89",
+ * 	"sahf": "0",
+ * 	"ic": ["avatar_v3", "202101", "45daf5ceb475414293e3da4559552655"],
+ * 	"hb": ["2719"],
+ * 	"hc": null,
+ * 	"cid": "0b37e26cccd54f7c4d73590000000000",
+ * 	"lk": null
+ * }
+ * }
+ * + * @author mjz + * @date 2023/8/28 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ChatmsgMsg extends BaseDouyuCmdMsg implements IDanmuMsg { + + private String nn; + private String ext; + private String bnn; + private String level; + private String cst; + private String brid; + private byte bl; + private String dms; + private long rid; + private String uid; + private String txt; + private String pdg; + private String pdk; + private String sahf; + private List ic; + private List hb; + private String hc; + private String cid; + private JsonNode lk; + + @Override + public String getType() { + return DouyuCmdEnum.chatmsg.name(); + } + + @Override + public String getBadgeName() { + return this.bnn; + } + + @Override + public byte getBadgeLevel() { + return this.bl; + } + + @Override + public String getUsername() { + return this.nn; + } + + @Override + public String getUserAvatar() { + return DouyuApis.getSmallAvatarUrl(ic); + } + + @Override + public String getContent() { + return this.txt; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java new file mode 100644 index 00000000..a8c54164 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DgbMsg.java @@ -0,0 +1,233 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; + +import java.util.List; + +/** + * 收到礼物消息 + *
{@code
+ * {
+ * 	"type": "dgb",
+ * 	"nn": "用户名",
+ * 	"eid": "0",
+ * 	"bst": "32",
+ * 	"brid": "0",
+ * 	"pma": "186963537",
+ * 	"bnid": "1",
+ * 	"gfid": "824",
+ * 	"bl": "0",
+ * 	"pid": "268",
+ * 	"rid": "290935",
+ * 	"mss": "186963457",
+ * 	"bcst": "2",
+ * 	"uid": "用户id",
+ * 	"receive_uid": "接受用户id",
+ * 	"ic": ["avatar_v3", "201912", "d031765fbe764a49887083bcf200da0b"],
+ * 	"from": "2",
+ * 	"gpf": "1",
+ * 	"bnl": "1",
+ * 	"ce": "1",
+ * 	"bnn": null,
+ * 	"receive_nn": "接受用户用户名",
+ * 	"level": "43",
+ * 	"bcnt": "1",
+ * 	"gs": "0",
+ * 	"hits": "249",
+ * 	"gfcnt": "249",
+ * 	"ct": "0",
+ * 	"pfm": "27585",
+ * 	"sahf": "0",
+ * 	"hc": null,
+ * 	"fc": "0",
+ * 	"eic": "0"
+ * }
+ * }
+ * + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DgbMsg extends BaseDouyuCmdMsg implements IGiftMsg { + + /** + * 用户名 + */ + private String nn; + private String eid; + private String bst; + private String brid; + private String pma; + private String bnid; + private long gfid; + private byte bl; + private String pid; + private String rid; + private String mss; + private String bcst; + /** + * 用户id + */ + private String uid; + /** + * 收礼物用户id + */ + private long receive_uid; + private List ic; + private String from; + private String gpf; + private String bnl; + private String ce; + private String bnn; + /** + * 收礼物用户名 + */ + private String receive_nn; + private String level; + private String bcnt; + private String gs; + /** + * 连击 + */ + private String hits; + /** + * 礼物个数 + */ + private int gfcnt; + private String ct; + private String pfm; + private String sahf; + private String hc; + private String fc; + private String eic; + private String bsfl; + private String skinid; + + // region 额外属性 + private GiftPropSingle giftInfo = GiftPropSingle.DEFAULT_GIFT; + private GiftListInfo roomGiftInfo = GiftListInfo.DEFAULT_GIFT; + // endregion + + @Override + public String getType() { + return DouyuCmdEnum.dgb.name(); + } + + @Override + public String getBadgeName() { + return this.bnn; + } + + @Override + public byte getBadgeLevel() { + return this.bl; + } + + @Override + public String getUsername() { + return this.nn; + } + + @Override + public String getUserAvatar() { + return DouyuApis.getSmallAvatarUrl(ic); + } + + @Override + public String getGiftName() { + if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT) { + return this.roomGiftInfo.getName(); + } + + if (this.giftInfo == null) { + return "未知礼物"; + } + + return this.giftInfo.getName(); + } + + @Override + public String getGiftImg() { + if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT && this.roomGiftInfo.getBasicInfo() != null) { + return this.roomGiftInfo.getPicUrlPrefix() + this.roomGiftInfo.getBasicInfo().getChatPic(); + } + + if (this.giftInfo == null) { + return ""; + } + + return this.giftInfo.getPicUrlPrefix() + this.giftInfo.getChatPic(); + } + + @Override + public String getGiftId() { + return Long.toString(this.gfid); + } + + @Override + public int getGiftCount() { + return this.gfcnt; + } + + /** + * 100 => 1鱼翅 + */ + @Override + public int getGiftPrice() { + if (this.roomGiftInfo != null && this.roomGiftInfo != GiftListInfo.DEFAULT_GIFT && this.roomGiftInfo.getPriceInfo() != null) { + return this.roomGiftInfo.getPriceInfo().getPrice(); + } + + if (this.giftInfo == null) { + return -1; + } + + return this.giftInfo.getPrice(); + } + + @Override + public String getReceiveUid() { + return Long.toString(this.receive_uid); + } + + @Override + public String getReceiveUsername() { + return this.receive_nn; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java new file mode 100644 index 00000000..dcef8803 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/DouyuCmdMsg.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * type@=chatmsg/rid@=7750753/uid@=549977/nn@=一闪一闪亮品品/txt@=冷门歌手哎,声音独特哎/cid@=044c3bf3074b483275a44e0000000000/ic@=avatar@Sdefault@S08/level@=29/sahf@=0/nl@=7/cst@=1693107871294/bnn@=/bl@=0/brid@=0/hc@=/lk@=/dms@=8/pdg@=26/pdk@=86/ext@=/ + * + * @see tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil#getDouyuMsgClassByType(DouyuCmdEnum, short) + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DouyuCmdMsg extends BaseDouyuCmdMsg { + + private String tick; + + private String res; + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java new file mode 100644 index 00000000..3736591c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5ckreqMsg.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class H5ckreqMsg extends BaseDouyuCmdMsg { + + private String rid; + private String ti; + + @Override + public String getType() { + return DouyuCmdEnum.h5ckreq.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java new file mode 100644 index 00000000..29b0957a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5csMsg.java @@ -0,0 +1,50 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class H5csMsg extends BaseDouyuCmdMsg { + + private String result; + + @Override + public String getType() { + return DouyuCmdEnum.h5cs.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java new file mode 100644 index 00000000..7e5a8b9f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/H5gkcreqMsg.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class H5gkcreqMsg extends BaseDouyuCmdMsg { + + private String rid; + private String ti; + + @Override + public String getType() { + return DouyuCmdEnum.h5gkcreq.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java new file mode 100644 index 00000000..934e9531 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatMsg.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +public class HeartbeatMsg extends BaseDouyuCmdMsg { + + @Override + public String getType() { + return DouyuCmdEnum.mrkl.name(); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java new file mode 100644 index 00000000..37eaa904 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/HeartbeatReplyMsg.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/1/6 + */ +public class HeartbeatReplyMsg extends BaseDouyuCmdMsg { + + @Override + public String getType() { + return DouyuCmdEnum.mrkl.name(); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java new file mode 100644 index 00000000..9d2694f2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/JoingroupMsg.java @@ -0,0 +1,52 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/8/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class JoingroupMsg extends BaseDouyuCmdMsg { + + private long rid; + private long gid = -9999; + + @Override + public String getType() { + return DouyuCmdEnum.joingroup.name(); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java new file mode 100644 index 00000000..e7a0ff39 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/KeepliveMsg.java @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + *
{@code
+ * type@=keeplive/vbw@=0/cdn@=hs-h5/tick@=1694099389/kd@=da9c384371b4552ac94e1237d2596262/
+ * }
+ * + * @author mjz + * @date 2023/9/7 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class KeepliveMsg extends BaseDouyuCmdMsg { + + private String vbw = "0"; + private String cnd; + private long tick = OrLocalDateTimeUtil.zonedCurrentTimeSecs(); + private String kd = ""; + + public KeepliveMsg(String cnd) { + this.cnd = cnd; + } + + @Override + public String getType() { + return DouyuCmdEnum.keeplive.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java new file mode 100644 index 00000000..f180e8ce --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginreqMsg.java @@ -0,0 +1,107 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.util.OrLocalDateTimeUtil; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +import java.util.Arrays; +import java.util.List; + +/** + * @author mjz + * @date 2023/8/27 + */ +@Getter +@Setter +@RequiredArgsConstructor +public class LoginreqMsg extends BaseDouyuCmdMsg { + + public static List SHOULD_IGNORE_NEW_LOGIN_PROPERTIES = Arrays.asList("roomid", "dfl", "username", "uid", "ver", "aver", "ct", "type"); + public static List SHOULD_IGNORE_OLD_LOGIN_PROPERTIES = Arrays.asList("type", "roomid", "dfl", "username", "password", "ltkid", "biz", "stk", "devid", "ct", "pt", "cvr", "tvr", "apd", "rt", "vk", "ver", "aver", "dmbt", "dmbv"); + + private long roomid; + private String dfl; + private String username; + private long uid; + private String ver; + private String aver; + private int ct = 0; + + private String password; + /** + * Cookie中的acf_ltkid + */ + private String ltkid; + private String biz; + /** + * Cookie中的acf_stk + */ + private String stk; + /** + * Cookie中的dy_did + */ + private String devid; + private String pt = "2"; + private String cvr = "0"; + private String tvr = "7"; + private String apd = ""; + private long rt = OrLocalDateTimeUtil.zonedCurrentTimeSecs(); + private String vk; + private String dmbt = "chrome"; + private String dmbv = "116"; + + public LoginreqMsg(long roomid, String dfl, String username, long uid, String ver, String aver) { + this.roomid = roomid; + this.dfl = dfl; + this.username = username; + this.uid = uid; + this.ver = ver; + this.aver = aver; + } + + public LoginreqMsg(long roomid, String dfl, String username, String ver, String aver, String ltkid, String biz, String stk, String devid) { + this.roomid = roomid; + this.dfl = dfl; + this.username = username; + this.ver = ver; + this.aver = aver; + this.ltkid = ltkid; + this.biz = biz; + this.stk = stk; + this.devid = devid; + this.vk = DouyuApis.generateVk(devid); + } + + @Override + public String getType() { + return DouyuCmdEnum.loginreq.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java new file mode 100644 index 00000000..8db0f3cc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/LoginresMsg.java @@ -0,0 +1,77 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/8/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LoginresMsg extends BaseDouyuCmdMsg { + + private long userid; + private int roomgroup; + private int pg; + private long sessionid; + private String username; + private String nickname; + private int live_stat; + private boolean is_illegal; + private String ill_ct; + private String ill_ts; + private String now; + private String ps; + private String es; + private String it; + private String its; + private String npv; + private String best_dlev; + private String cur_lev; + private String nrc; + private String ih; + private String sid; + private String sahf; + private String sceneid; + private String newrg; + private String regts; + private String ip; + private String rn; + private String rct; + + @Override + public String getType() { + return DouyuCmdEnum.loginres.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java new file mode 100644 index 00000000..e81b7649 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MapkbMsg.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +import java.util.List; + +/** + * @author mjz + * @date 2023/8/28 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MapkbMsg extends BaseDouyuCmdMsg { + + private long pk_time; + private List teams; + + @Override + public String getType() { + return DouyuCmdEnum.mapkb.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java new file mode 100644 index 00000000..0bfdb5f2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/MsgrepeaterproxylistMsg.java @@ -0,0 +1,96 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +import java.util.List; +import java.util.Map; + +/** + * @author mjz + * @date 2023/9/8 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MsgrepeaterproxylistMsg extends BaseDouyuCmdMsg { + + private String rid; + + /** + *
{@code
+     * [{
+     * 	"nr": "0",
+     * 	"port": "8501",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }, {
+     * 	"nr": "0",
+     * 	"port": "8502",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }, {
+     * 	"nr": "0",
+     * 	"port": "8503",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }, {
+     * 	"nr": "0",
+     * 	"port": "8504",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }, {
+     * 	"nr": "0",
+     * 	"port": "8505",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }, {
+     * 	"nr": "0",
+     * 	"port": "8506",
+     * 	"ip": "danmuproxy.douyu.com",
+     * 	"id": "0",
+     * 	"ml": "10000"
+     * }]
+     * }
+ */ + private List> list; + + @Override + public String getType() { + return DouyuCmdEnum.msgrepeaterproxylist.name(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java new file mode 100644 index 00000000..c642c28f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/SubMsg.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +/** + * @author mjz + * @date 2023/8/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SubMsg extends BaseDouyuCmdMsg { + + private String mt = "dayrk"; + + @Override + public String getType() { + return DouyuCmdEnum.sub.name(); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java new file mode 100644 index 00000000..91b6b2e4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/UenterMsg.java @@ -0,0 +1,78 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; + +import java.util.List; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UenterMsg extends BaseDouyuCmdMsg implements IEnterRoomMsg { + + private String nn; + private long uid; + private int level; + private String sahf; + private List ic; + private String rid; + + @Override + public String getBadgeName() { + return null; + } + + @Override + public byte getBadgeLevel() { + return 0; + } + + @Override + public String getUid() { + return Long.toString(uid); + } + + @Override + public String getUsername() { + return nn; + } + + @Override + public String getUserAvatar() { + return DouyuApis.getSmallAvatarUrl(ic); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java new file mode 100644 index 00000000..90e7478e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/BaseDouyuCmdMsg.java @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg.base; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; + +/** + * @author mjz + * @date 2023/1/6 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseDouyuCmdMsg extends BaseCmdMsg implements IDouyuMsg { + + private String type; + + @Override + public String getCmd() { + return type; + } + + @Override + public void setCmd(String cmd) { + type = cmd; + } + + @Override + public DouyuCmdEnum getCmdEnum() { + return DouyuCmdEnum.getByString(type); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java new file mode 100644 index 00000000..dac7d08d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/base/IDouyuMsg.java @@ -0,0 +1,36 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +/** + * @author mjz + * @date 2023/8/26 + */ +public interface IDouyuMsg extends IMsg { + + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java new file mode 100644 index 00000000..03f2ee3e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftListInfo.java @@ -0,0 +1,136 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package tech.ordinaryroad.live.chat.client.douyu.msg.dto; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GiftListInfo { + + public static final GiftListInfo DEFAULT_GIFT = new GiftListInfo(); + + private BasicInfo basicInfo; + private JsonNode batchInfo; + private int batchInfoFlag; + private int countLimit; + private int defaultSkinId; + private int donateStatus; + private JsonNode effectInfo; + private int effectStatus; + private int endTime; + private JsonNode growthInfo; + private long hitInterval; + private int id; + private int isBatchLimited; + private int isFace; + private String name = "未知礼物"; + private String picUrlPrefix; + private PriceInfo priceInfo = new PriceInfo(); + private int showStatus; + private List skinIds; + private int startTime; + private List tabIds; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + + @Data + public static class BasicInfo { + private String bizTag; + private String borderColor; + private String chatPic; + private String culture; + private String desc1; + private String desc2; + private String focusPic; + private String giftPic; + private int giftType; + private int guardLevel; + private String sendPic; + private String subscriptColor; + private String subscriptText; + private String webSubscriptBigPic; + private String webSubscriptSmallPic; + private String webSubscriptText; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } + + @Data + public static class PriceInfo { + private int price = -1; + private String priceType; + private int returnNum; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java new file mode 100644 index 00000000..64e3e28f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropInfo.java @@ -0,0 +1,99 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package tech.ordinaryroad.live.chat.client.douyu.msg.dto; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GiftPropInfo { + + public static final GiftPropInfo DEFAULT_GIFT = new GiftPropInfo(); + + private String name = "未知礼物"; + private String bimg; + private String himg; + private String cimg; + private int stay_time; + private int show_combo; + private String batch_preset; + private List hit; + private int type; + private int style; + private int pc; + private int ry; + private int ef; + private int effect; + private int is_syn_fs; + private int is_stay; + private String drgb; + private String urgb; + private String grgb; + private String brgb; + private String small_effect_icon; + private String big_effect_icon; + private String effect_icon; + private String gift_icon; + private String gift_open_icon; + private int bonus; + private String web_flash; + private String hit_interval; + private int devote; + private int attack; + private int exp; + private int active_type; + private String pc_full_icon; + private String pc_full_bg_icon; + private int pc_show_combo; + private String pc_urgb; + private String pc_grgb; + private int index; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java new file mode 100644 index 00000000..de9ebe67 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/msg/dto/GiftPropSingle.java @@ -0,0 +1,97 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package tech.ordinaryroad.live.chat.client.douyu.msg.dto; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.databind.JsonNode; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GiftPropSingle { + + public static final GiftPropSingle DEFAULT_GIFT = new GiftPropSingle(); + + // key,value + private JsonNode batchInfo; + private String bizTag; + private String borderColor; + private String chatPic; + private int count; + private String description; + private String description2; + private int devote; + // key,value + private JsonNode effectInfo; + private int exp; + private int expiry; + private String focusPic; + private int hitInterval; + private long id; + private int intimate; + private String intro; + private int isClick; + private int isFace; + private int isValuable; + private int level; + private int levelTime; + private int met; + private String name = "未知礼物"; + private String picUrlPrefix; + private int price = -1; + private int priceType; + private String propPic; + private int propType; + private int returnNum; + private String sendPic; + private String subscriptColor; + private String subscriptText; + private String webSubscriptBigPic; + private String webSubscriptSmallPic; + private String webSubscriptText; + + /** + * 未知属性都放在这 + */ + private final Map unknownProperties = new HashMap<>(); + + @JsonAnyGetter + public Map getUnknownProperties() { + return unknownProperties; + } + + @JsonAnySetter + public void setOther(String key, JsonNode value) { + this.unknownProperties.put(key, value); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java new file mode 100644 index 00000000..6293b94e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/AuthWebSocketFrame.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.frame; + +import io.netty.buffer.ByteBuf; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class AuthWebSocketFrame extends BaseDouyuWebSocketFrame { + + public AuthWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java new file mode 100644 index 00000000..1dd882eb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/HeartbeatWebSocketFrame.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.frame; + +import io.netty.buffer.ByteBuf; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class HeartbeatWebSocketFrame extends BaseDouyuWebSocketFrame { + + public HeartbeatWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java new file mode 100644 index 00000000..43e88af2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/KeepliveWebSocketFrame.java @@ -0,0 +1,40 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.frame; + +import io.netty.buffer.ByteBuf; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.base.BaseDouyuWebSocketFrame; + +/** + * @author mjz + * @date 2023/9/8 + */ +public class KeepliveWebSocketFrame extends BaseDouyuWebSocketFrame { + + public KeepliveWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java new file mode 100644 index 00000000..da484fed --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/base/BaseDouyuWebSocketFrame.java @@ -0,0 +1,39 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.frame.base; + +import io.netty.buffer.ByteBuf; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; + +/** + * @author mjz + * @date 2023/8/27 + */ +public abstract class BaseDouyuWebSocketFrame extends BinaryWebSocketFrame { + + public BaseDouyuWebSocketFrame(ByteBuf byteBuf) { + super(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java new file mode 100644 index 00000000..64bf90b0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/frame/factory/DouyuWebSocketFrameFactory.java @@ -0,0 +1,181 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory; + +import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.*; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.AuthWebSocketFrame; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.HeartbeatWebSocketFrame; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.KeepliveWebSocketFrame; +import tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class DouyuWebSocketFrameFactory { + + private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); + /** + * 浏览器地址中的房间id,暂不支持短id + */ + private final long roomId; + private volatile static HeartbeatMsg heartbeatMsg; + + public DouyuWebSocketFrameFactory(long roomId) { + this.roomId = roomId; + } + + public synchronized static DouyuWebSocketFrameFactory getInstance(long roomId) { + return CACHE.computeIfAbsent(roomId, aLong -> new DouyuWebSocketFrameFactory(roomId)); + } + + /** + * 创建认证包 + * + * @param mode {@link DouyuClientModeEnum#DANMU}, {@link DouyuClientModeEnum#WS} + * @param ver {@link DouyuLiveChatClientConfig#getVer()} + * @param aver {@link DouyuLiveChatClientConfig#getAver()} + * @param cookie 浏览器Cookie,发送弹幕时必传 + * @return AuthWebSocketFrame + */ + public AuthWebSocketFrame createAuth(DouyuClientModeEnum mode, String ver, String aver, String cookie) { + try { + // type@=loginreq/roomid@=7750753/dfl@=/username@=visitor10424697/uid@=1168052601/ver@=20220825/aver@=218101901/ct@=0/ + LoginreqMsg loginreqMsg; + long realRoomId = DouyuApis.getRealRoomId(roomId); + long uid; + String username; + Map cookieMap = OrLiveChatCookieUtil.parseCookieString(cookie); + + if (cookieMap.isEmpty()) { + // 视为未登录 + if (mode == DouyuClientModeEnum.DANMU) { + uid = RandomUtil.randomLong(10000000, 19999999); + username = "visitor" + RandomUtil.randomLong(10000000, 19999999); + loginreqMsg = new LoginreqMsg(realRoomId, "", username, uid, ver, aver); + return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_NEW_LOGIN_PROPERTIES)); + } else { + loginreqMsg = new LoginreqMsg(realRoomId, "", "", ver, aver, "", "", "", UUID.fastUUID().toString(true)); + return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_OLD_LOGIN_PROPERTIES)); + } + } + // 视为登录 + else { + String acfUid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_UID, () -> { + throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_UID); + }); + uid = NumberUtil.parseLong(acfUid); + username = acfUid; + String dfl = "sn@A=105@Sss@A=1"; + if (mode == DouyuClientModeEnum.DANMU) { + loginreqMsg = new LoginreqMsg(realRoomId, dfl, username, uid, ver, aver); + return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_NEW_LOGIN_PROPERTIES)); + } else { + String acfLtkid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_LTKID, () -> { + throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_LTKID); + }); + String acfStk = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_ACF_STK, () -> { + throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_ACF_STK); + }); + String dyDid = OrLiveChatCookieUtil.getCookieByName(cookieMap, DouyuApis.KEY_COOKIE_DY_DID, () -> { + throw new BaseException("Cookie中缺少字段" + DouyuApis.KEY_COOKIE_DY_DID); + }); + loginreqMsg = new LoginreqMsg(realRoomId, dfl, username, ver, aver, acfLtkid, "1", acfStk, dyDid); + return new AuthWebSocketFrame(DouyuCodecUtil.encode(loginreqMsg, LoginreqMsg.SHOULD_IGNORE_OLD_LOGIN_PROPERTIES)); + } + } + } catch (Exception e) { + throw new BaseException(String.format("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s", roomId, e.getMessage())); + } + } + + public AuthWebSocketFrame createAuth(DouyuClientModeEnum mode, String ver, String aver) { + return this.createAuth(mode, ver, aver, null); + } + + public HeartbeatWebSocketFrame createHeartbeat() { + return new HeartbeatWebSocketFrame(DouyuCodecUtil.encode(this.getHeartbeatMsg())); + } + + public KeepliveWebSocketFrame createKeeplive(String cookie) { + return new KeepliveWebSocketFrame(DouyuCodecUtil.encode(this.getKeepliveMsg(StrUtil.isNotBlank(cookie) ? "hs-h5" : ""))); + } + + /** + * 心跳包单例模式 + * + * @return HeartbeatWebSocketFrame + */ + public HeartbeatMsg getHeartbeatMsg() { + if (heartbeatMsg == null) { + synchronized (DouyuWebSocketFrameFactory.this) { + if (heartbeatMsg == null) { + heartbeatMsg = new HeartbeatMsg(); + } + } + } + return heartbeatMsg; + } + + private BaseDouyuCmdMsg getKeepliveMsg(String cnd) { + return new KeepliveMsg(cnd); + } + + public WebSocketFrame createJoingroup() { + JoingroupMsg joingroupMsg = new JoingroupMsg(); + joingroupMsg.setRid(roomId); + return new BinaryWebSocketFrame(DouyuCodecUtil.encode(joingroupMsg)); + } + + public WebSocketFrame createSub() { + return new BinaryWebSocketFrame(DouyuCodecUtil.encode(new SubMsg())); + } + + public WebSocketFrame createDanmu(String msg, String cookie) { + String dyDid = OrLiveChatCookieUtil.getCookieByName(cookie, DouyuApis.KEY_COOKIE_DY_DID, () -> { + throw new BaseException("cookie中缺少参数" + DouyuApis.KEY_COOKIE_DY_DID); + }); + String acfUid = OrLiveChatCookieUtil.getCookieByName(cookie, DouyuApis.KEY_COOKIE_ACF_UID, () -> { + throw new BaseException("cookie中缺少参数" + DouyuApis.KEY_COOKIE_ACF_UID); + }); + ChatmessageMsg chatmessageMsg = new ChatmessageMsg(msg, dyDid, acfUid); + return new BinaryWebSocketFrame(DouyuCodecUtil.encode(chatmessageMsg)); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java new file mode 100644 index 00000000..f7d3e551 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuBinaryFrameHandler.java @@ -0,0 +1,98 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.handler; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; +import tech.ordinaryroad.live.chat.client.douyu.util.DouyuCodecUtil; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; + +import java.util.List; + + +/** + * 消息处理器 + * + * @author mjz + * @date 2023/1/4 + */ +@Slf4j +@ChannelHandler.Sharable +public class DouyuBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { + + public DouyuBinaryFrameHandler(List msgListeners, BaseDouyuLiveChatClient client) { + super(msgListeners, client); + } + + public DouyuBinaryFrameHandler(List msgListeners, long roomId) { + super(msgListeners, roomId); + } + + @Override + public void onCmdMsg(DouyuCmdEnum cmd, ICmdMsg cmdMsg) { + if (super.msgListeners.isEmpty()) { + return; + } + + switch (cmd) { + case chatmsg: { + iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(DouyuBinaryFrameHandler.this, (ChatmsgMsg) cmdMsg)); + break; + } + case dgb: { + iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(DouyuBinaryFrameHandler.this, (DgbMsg) cmdMsg)); + break; + } + case uenter: { + iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(DouyuBinaryFrameHandler.this, (UenterMsg) cmdMsg)); + break; + } + default: { + if (!(cmdMsg instanceof DouyuCmdMsg)) { + if (log.isDebugEnabled()) { + log.debug("非DouyuCmdMsg {}", cmdMsg.getClass()); + } + return; + } + iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(DouyuBinaryFrameHandler.this, cmd, cmdMsg)); + } + } + } + + @Override + protected List decode(ByteBuf byteBuf) { + return DouyuCodecUtil.decode(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java new file mode 100644 index 00000000..e878c2b7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/netty/handler/DouyuConnectionHandler.java @@ -0,0 +1,173 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.netty.handler; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.client.base.BaseDouyuLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuClientModeEnum; +import tech.ordinaryroad.live.chat.client.douyu.netty.frame.factory.DouyuWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; + + +/** + * 连接处理器 + * + * @author mjz + * @date 2023/8/21 + */ +@Slf4j +@ChannelHandler.Sharable +public class DouyuConnectionHandler extends BaseNettyClientConnectionHandler { + + @Getter + private final DouyuClientModeEnum mode; + /** + * 以ClientConfig为主 + */ + private final long roomId; + /** + * 以ClientConfig为主 + */ + private final String ver; + /** + * 以ClientConfig为主 + */ + private final String aver; + /** + * 以ClientConfig为主 + */ + private String cookie; + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, BaseDouyuLiveChatClient client, IBaseConnectionListener listener) { + super(handshaker, client, listener); + this.mode = mode; + this.roomId = client.getConfig().getRoomId(); + this.ver = client.getConfig().getVer(); + this.aver = client.getConfig().getAver(); + this.cookie = client.getConfig().getCookie(); + } + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, BaseDouyuLiveChatClient client) { + this(mode, handshaker, client, null); + } + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, IBaseConnectionListener listener, String cookie) { + super(handshaker, listener); + this.mode = mode; + this.roomId = roomId; + this.ver = ver; + this.aver = aver; + this.cookie = cookie; + } + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, IBaseConnectionListener listener) { + this(mode, handshaker, roomId, ver, aver, listener, null); + } + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver, String cookie) { + this(mode, handshaker, roomId, ver, aver, null, cookie); + } + + public DouyuConnectionHandler(DouyuClientModeEnum mode, WebSocketClientHandshaker handshaker, long roomId, String ver, String aver) { + this(mode, handshaker, roomId, ver, aver, null, null); + } + + @Override + protected void sendHeartbeat(ChannelHandlerContext ctx) { + if (log.isDebugEnabled()) { + log.debug("发送心跳包"); + } + WebSocketFrame webSocketFrame; + if (mode == DouyuClientModeEnum.DANMU) { + webSocketFrame = getWebSocketFrameFactory(getRoomId()).createHeartbeat(); + } else { + webSocketFrame = getWebSocketFrameFactory(getRoomId()).createKeeplive(getCookie()); + } + ctx.writeAndFlush(webSocketFrame).addListener((ChannelFutureListener) future -> { + if (future.isSuccess()) { + if (log.isDebugEnabled()) { + log.debug("心跳包发送完成"); + } + } else { + log.error("心跳包发送失败", future.cause()); + } + }); + } + + @Override + public void sendAuthRequest(Channel channel) { + if (log.isDebugEnabled()) { + log.debug("发送认证包"); + } + channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(mode, getVer(), getAver(), getCookie())); + } + + private DouyuWebSocketFrameFactory getWebSocketFrameFactory(long roomId) { + return DouyuWebSocketFrameFactory.getInstance(roomId); + } + + public long getRoomId() { + return client != null ? client.getConfig().getRoomId() : roomId; + } + + private String getVer() { + return client != null ? client.getConfig().getVer() : ver; + } + + private String getAver() { + return client != null ? client.getConfig().getAver() : aver; + } + + private String getCookie() { + return client != null ? client.getConfig().getCookie() : cookie; + } + + @Override + protected long getHeartbeatPeriod() { + if (client == null) { + return DouyuLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; + } else { + return client.getConfig().getHeartbeatPeriod(); + } + } + + @Override + protected long getHeartbeatInitialDelay() { + if (client == null) { + return DouyuLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; + } else { + return client.getConfig().getHeartbeatInitialDelay(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java new file mode 100644 index 00000000..dad8a581 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/main/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtil.java @@ -0,0 +1,329 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.util; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatReflectUtil; +import tech.ordinaryroad.live.chat.client.douyu.api.DouyuApis; +import tech.ordinaryroad.live.chat.client.douyu.client.DouyuLiveChatClient; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.HeartbeatMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.HeartbeatReplyMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftListInfo; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.util.*; + +/** + * 参考:https://open.douyu.com/source/api/63 + * + * @author mjz + * @date 2023/1/6 + */ +@Slf4j +public class DouyuCodecUtil { + + public static final String[] IGNORE_PROPERTIES = {"OBJECT_MAPPER", "unknownProperties"}; + /** + * 以SHOULD_IGNORE开头的成员变量将不会序列化 + */ + public static final String SHOULD_IGNORE_PROPERTIES_PREFIX = "SHOULD_IGNORE"; + + public static final short MSG_TYPE_SEND = 689; + public static final short MSG_TYPE_RECEIVE = 690; + public static final short FRAME_HEADER_LENGTH = 8; + + public static ByteBuf encode(BaseDouyuCmdMsg msg, List containProperties) { + ByteBuf out = Unpooled.buffer(FRAME_HEADER_LENGTH); + String bodyDouyuSttString = StrUtil.nullToEmpty(toDouyuSttString(msg, containProperties)) + SUFFIX; + byte[] bodyBytes = bodyDouyuSttString.getBytes(StandardCharsets.UTF_8); + int length = bodyBytes.length + FRAME_HEADER_LENGTH; + out.writeIntLE(length); + out.writeIntLE(length); + out.writeShortLE(MSG_TYPE_SEND); + out.writeByte(0); + out.writeByte(0); + out.writeBytes(bodyBytes); + return out; + } + + public static ByteBuf encode(BaseDouyuCmdMsg msg) { + return encode(msg, null); + } + + public static List decode(ByteBuf in) { + List msgList = new ArrayList<>(); + Queue pendingByteBuf = new LinkedList<>(); + + do { + Optional msg = doDecode(in, pendingByteBuf); + msg.ifPresent(msgList::add); + in = pendingByteBuf.poll(); + } while (in != null); + + return msgList; + } + + /** + * 执行解码操作 + * + * @param in handler收到的一条消息 + * @param pendingByteBuf 用于存放未读取完的ByteBuf + * @return Optional 何时为空值:不支持的{@link DouyuCmdEnum},{@link #parseDouyuSttString(String, short)}反序列化失败 + */ + private static Optional doDecode(ByteBuf in, Queue pendingByteBuf) { + int length = in.readIntLE(); + in.readIntLE(); + // MSG_TYPE_RECEIVE + short msgType = in.readShortLE(); + if (msgType != MSG_TYPE_RECEIVE) { + log.error("decode消息类型 非 收到的消息"); + } + in.readByte(); + in.readByte(); + int contentLength = length - FRAME_HEADER_LENGTH; + byte[] inputBytes = new byte[contentLength]; + in.readBytes(inputBytes); + if (in.readableBytes() != 0) { + // log.error("in.readableBytes() {}", in.readableBytes()); + pendingByteBuf.offer(in); + } + + String bodyDouyuSttString = new String(inputBytes, 0, inputBytes.length - 1); + return Optional.ofNullable(parseDouyuSttString(bodyDouyuSttString, msgType)); + } + + public static final String SPLITTER = "@="; + public static final String END = "/"; + public static final String SUFFIX = "\0"; + + /** + *
{@code @S/ -> @AS@S}
+ * + * @param string + * @return + */ + public static String escape(String string) { +// return string == null ? StrUtil.EMPTY : (string.replaceAll("/", "@S").replaceAll("@", "@A")); + return string == null ? StrUtil.EMPTY : (string.replaceAll("@", "@A").replaceAll("/", "@S")); + } + + /** + *
{@code @AS@S -> @S/}
+ * + * @param string + * @return + */ + public static String unescape(String string) { + return string == null ? StrUtil.EMPTY : (string.replaceAll("@S", "/").replaceAll("@A", "@")); + } + + public static String toDouyuSttString(Object object, List containProperties) { + StringBuffer sb = new StringBuffer(); + if (object instanceof IDouyuMsg) { + Class objectClass = object.getClass(); + Field[] fields = ReflectUtil.getFields(objectClass, field -> { + String name = field.getName(); + if (CollUtil.isNotEmpty(containProperties)) { + return containProperties.contains(name); + } else { + return !name.startsWith(SHOULD_IGNORE_PROPERTIES_PREFIX) && !ArrayUtil.contains(IGNORE_PROPERTIES, name); + } + }); + for (Field field : fields) { + String key = field.getName(); + Method method = OrLiveChatReflectUtil.getGetterMethod(objectClass, key); + Object value = ReflectUtil.invoke(object, method); + String douyuSttString = toDouyuSttString(value, containProperties); + String escape = escape(douyuSttString); + sb.append(escape(key)) + .append(SPLITTER) + .append(escape) + .append(END); + } + } else { + if (object instanceof Iterable) { + Iterable iterable = (Iterable) object; + StringBuffer iterableStringBuffer = new StringBuffer(); + for (Object o : iterable) { + String douyuSttString = toDouyuSttString(o, containProperties); + String escape = escape(douyuSttString); + iterableStringBuffer.append(escape) + .append(END); + } + sb.append((iterableStringBuffer.toString())); + } else if (object instanceof Map) { + Map map = (Map) object; + StringBuffer mapStringBuffer = new StringBuffer(); + map.forEach((mapKey, mapValue) -> { + mapStringBuffer.append(escape(StrUtil.toStringOrNull(mapKey))) + .append(SPLITTER) + .append(escape(toDouyuSttString(mapValue, containProperties))) + .append(END); + }); + sb.append((mapStringBuffer.toString())); + } else { + sb.append((StrUtil.nullToEmpty(StrUtil.toStringOrNull(object)))); + } + } + return sb.toString(); + } + + public static String toDouyuSttString(Object object) { + return toDouyuSttString(object, null); + } + + public static IDouyuMsg parseDouyuSttString(String string, short msgType) { + Map stringObjectMap = parseDouyuSttStringToMap(string); + String type = (String) stringObjectMap.get("type"); + DouyuCmdEnum cmdEnum = DouyuCmdEnum.getByString(type); + + Class msgClass = getDouyuMsgClassByType(cmdEnum, msgType); + if (msgClass == null) { + // TODO 不支持的cmdEnum + if (log.isWarnEnabled()) { + log.warn("暂不支持 cmdEnum {}, msgType {}", cmdEnum, msgType); + } + return null; + } + + IDouyuMsg t = ReflectUtil.newInstance(msgClass); + stringObjectMap.forEach((key, value) -> { + Field field = ReflectUtil.getField(t.getClass(), key); + // 未知key + if (field == null) { + // Object -> JsonNode + ((BaseDouyuCmdMsg) t).getUnknownProperties().put(key, BaseDouyuCmdMsg.OBJECT_MAPPER.valueToTree(value)); + // log.debug("未知key {} {},已存放于unknownProperties中", msgClass, key); + } else { + ReflectUtil.setFieldValue(t, field, value); + } + }); + + // 礼物消息设置礼物信息字段 + if (t instanceof DgbMsg) { + DgbMsg msg = (DgbMsg) t; + String pid = msg.getPid(); + // 通用礼物 + if (StrUtil.isNotBlank(pid)) { + GiftPropSingle giftSingle = DouyuLiveChatClient.giftMap.get(pid, () -> { + GiftPropSingle gift = GiftPropSingle.DEFAULT_GIFT; + try { + gift = DouyuApis.getGiftPropSingleByPid(pid); + } catch (Exception e) { + log.error("礼物信息获取失败, pid=" + pid, e); + } + return gift; + }); + msg.setGiftInfo(giftSingle); + } + // 房间礼物 + else { + String realRoomId = msg.getRid(); + if (DouyuLiveChatClient.roomGiftMap.containsKey(realRoomId)) { + Map stringGiftListInfoMap = DouyuLiveChatClient.roomGiftMap.get(realRoomId); + msg.setRoomGiftInfo(stringGiftListInfoMap.getOrDefault(String.valueOf(msg.getGfid()), GiftListInfo.DEFAULT_GIFT)); + } + } + } + + return t; + } + + public static Object parseDouyuSttStringToObject(String value) { + Object valueObject; + if (StrUtil.isBlank(value)) { + return null; + } + if (value.contains(SPLITTER) && value.contains(END)) { + // log.debug("map valueObject {}", value); + valueObject = parseDouyuSttStringToMap(value); + } + // List + else if (!value.contains(SPLITTER) && value.contains(END)) { + // log.debug("list valueObject {}", value); + List list = new ArrayList<>(); + for (String s : value.split(END)) { + list.add(parseDouyuSttStringToObject(unescape(s))); + } + valueObject = list; + } + // String + else { + valueObject = value; + } + return valueObject; + } + + public static Map parseDouyuSttStringToMap(String string) { + Map stringObjectMap = new HashMap<>(); + for (String s : string.split(END)) { + String[] entry = s.split(SPLITTER); + String key = unescape(entry[0]); + String value = unescape(ArrayUtil.get(entry, 1)); + Object valueObject = parseDouyuSttStringToObject(value); + stringObjectMap.put(key, valueObject); + } + return stringObjectMap; + } + + public static Class getDouyuMsgClassByType(DouyuCmdEnum douyuCmdEnum, short msgType) { + if (douyuCmdEnum == null) { + return (Class) DouyuCmdMsg.class; + } + + Class msgClass; + Class tClass = douyuCmdEnum.getTClass(); + if (tClass == null) { + if (douyuCmdEnum == DouyuCmdEnum.mrkl) { + if (msgType == MSG_TYPE_RECEIVE) { + msgClass = HeartbeatReplyMsg.class; + } else if (msgType == MSG_TYPE_SEND) { + msgClass = HeartbeatMsg.class; + } else { + msgClass = null; + } + } else { + msgClass = DouyuCmdMsg.class; + } + } else { + msgClass = tClass; + } + return (Class) msgClass; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java new file mode 100644 index 00000000..cf828401 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/api/DouyuApisTest.java @@ -0,0 +1,30 @@ +package tech.ordinaryroad.live.chat.client.douyu.api; + +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.douyu.msg.dto.GiftPropSingle; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * @author mjz + * @date 2023/8/30 + */ +class DouyuApisTest { + + @Test + void getRealRoomId() { + assertEquals(2947432, DouyuApis.getRealRoomId(92000)); + assertEquals(3168536, DouyuApis.getRealRoomId(3168536)); + assertEquals(290935, DouyuApis.getRealRoomId(22222)); + assertEquals(290935, DouyuApis.getRealRoomId(290935)); + assertEquals(520, DouyuApis.getRealRoomId(520)); + assertThrows(RuntimeException.class, () -> DouyuApis.getRealRoomId(-1)); + } + + @Test + void getGiftInfo() { + GiftPropSingle giftByPid = DouyuApis.getGiftPropSingleByPid("4"); + assertEquals("赞", giftByPid.getName()); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java new file mode 100644 index 00000000..7919ad15 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatChoice.java @@ -0,0 +1,31 @@ +package tech.ordinaryroad.live.chat.client.douyu.client; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述: + * + * @author https:www.unfbx.com + * @since 2023-03-02 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class ChatChoice implements Serializable { + private long index; + /** + * 请求参数stream为true返回是delta + */ + @JsonProperty("delta") + private Message delta; + /** + * 请求参数stream为false返回是message + */ + @JsonProperty("message") + private Message message; + @JsonProperty("finish_reason") + private String finishReason; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java new file mode 100644 index 00000000..3134d4ee --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/ChatCompletionResponse.java @@ -0,0 +1,24 @@ +package tech.ordinaryroad.live.chat.client.douyu.client; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 描述: chat答案类 + * + * @author https:www.unfbx.com + * 2023-03-02 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class ChatCompletionResponse implements Serializable { + private String id; + private String object; + private long created; + private String model; + private List choices; + private Usage usage; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java new file mode 100644 index 00000000..56cc6d0e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java @@ -0,0 +1,410 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.douyu.client; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.util.internal.StringUtil; +import lombok.extern.slf4j.Slf4j; +import okhttp3.*; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseCmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.douyu.config.DouyuLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.douyu.constant.DouyuCmdEnum; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuConnectionListener; +import tech.ordinaryroad.live.chat.client.douyu.listener.IDouyuMsgListener; +import tech.ordinaryroad.live.chat.client.douyu.msg.ChatmsgMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.DgbMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.UenterMsg; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.douyu.netty.handler.DouyuConnectionHandler; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.IOException; +import java.util.Objects; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * @author mjz + * @date 2023/8/26 + */ +@Slf4j +class DouyuLiveChatClientTest implements IDouyuConnectionListener, IDouyuMsgListener { + + static Object lock = new Object(); + DouyuLiveChatClient client; + + private final OkHttpClient okClient = new OkHttpClient(); + private static final String API_KEY = "sk-xxxxxx"; + private static final String URL = "https://api.pandarobot.chat/v1/chat/completions"; + + private final Lock reentrantLock = new ReentrantLock(); + private boolean isProcessing = false; + + + public String getChatGptResponse(String prompt){ + if (!reentrantLock.tryLock()) { + // 如果无法立即获得锁,直接返回空字符串 + log.info("自动回复:我还没准备好"); + return ""; + } + try { + if (isProcessing) { + log.info("自动回复:我还没准备好"); + // 如果已经在处理中,直接返回 + return ""; + } + isProcessing = true; + // 你的原始代码逻辑 + RequestBody body = RequestBody.create(MediaType.get("application/json; charset=utf-8"), + "{\"model\": \"gpt-4-0125-preview\", \"messages\": [{\"role\": \"system\", \"content\": \"扮演一个充满机智和幽默感的斗鱼直播弹幕助手,你的任务是用不超过30字的诙谐小段子来回复直播间用户的评论。你的回复应该机智幽默,不夸张能引发笑声,同时也要和谐适应直播间的气氛。当你收到用户的评论时,迅速给出一个既幽默又贴切的回复。例如:评论: 今天的直播怎么样?回复: 好看得让人忘记摸鱼,专心变成鱼粉!\"}, {\"role\": \"user\", \"content\": \"" + prompt + "\"}]}"); + Request request = new Request.Builder() + .url(URL) + .post(body) + .addHeader("Authorization", "Bearer " + API_KEY) + .build(); + + long startTime = System.currentTimeMillis(); // 获取开始时间的毫秒数 + System.out.println("执行前......."); + Thread.sleep(3000); + System.out.println("执行后......."); + long endTime = System.currentTimeMillis(); // 获取结束时间的毫秒数 + long timeDiff = endTime - startTime; // 计算时间差 + System.out.println("执行时间 " + timeDiff / 1000 + " 秒。"); + + try (Response response = okClient.newCall(request).execute()) { + if (response.body() != null) { + ObjectMapper mapper = new ObjectMapper(); + ChatCompletionResponse completionResponse = mapper.readValue(response.body().string(), ChatCompletionResponse.class); + return completionResponse.getChoices().get(0).getMessage().getContent(); + } + } catch (Exception e) { + log.info("调用出错了{}",e.getMessage()); + } + return ""; + } catch (InterruptedException e) { + throw new RuntimeException(e); + } finally { + isProcessing = false; + reentrantLock.unlock(); + } + } + + @Test + void example() throws InterruptedException { + String cookie = "dy_did=621fbe7a636002f6e6cc42eb00091701; acf_did=621fbe7a636002f6e6cc42eb00091701; dy_teen_mode=%7B%22uid%22%3A%22145703733%22%2C%22status%22%3A0%2C%22birthday%22%3A%22%22%2C%22password%22%3A%22%22%7D; dy_did=621fbe7a636002f6e6cc42eb00091701; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1706978160,1707033428,1707109487; PHPSESSID=1orrfq0m0gfrbd58slgh6shqc7; acf_auth=c22dT%2BYJG1xQ3ZuNrfxYNS06lnIjzNl%2F58xziUwyAsNedpJWvbEtIBh%2Bq%2F%2FYxo%2FFYAp9aQr4i4iYqTp2kYdb7n2JNUFBwGEBgZ8GiGS6O%2FR0CNLy8kQ2iVw; dy_auth=d0d0Ps%2FEOPWjXoPGMenITKuiBIC7wTua3heP19LVKzOZ8qibQpmTA9Hpyx%2FdxtDei1Db6KUWkzq1fEC0BLSZVSUbDkuv%2FX%2F%2B0pMu1kgXnk%2FUzQ%2BhV3EiRf8; wan_auth37wan=f0a9656c2e00K9uFDlpgnTfrv3m8aZoYB0WQTWxGSrSccCMd9LUiEUD2oYpJ%2F5Oe5uD2tVpaUA69sGzlTAtl9p3uLSSqgrvH%2F8sy1gWyyrS4fxotQSU; acf_uid=145703733; acf_username=145703733; acf_nickname=%E5%9B%BE%E5%85%94%E5%85%94%E7%9A%84%E5%85%94%E5%85%94%E5%9B%BE; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favanew%2Fface%2F201706%2F25%2F21%2F82973545fd6b770fe03175783ffbc3d5_; acf_ct=0; acf_ltkid=28814433; acf_biz=1; acf_stk=1213d18dc8e6b5b1; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1707141953"; + DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() + // TODO 修改房间id(支持短id) + .roomId(7828414) + .cookie(cookie) + .build(); + + client = new DouyuLiveChatClient(config, new IDouyuMsgListener() { + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + IDouyuMsgListener.super.onMsg(binaryFrameHandler, msg); + // log.debug("{} 收到{}消息 {}", binaryFrameHandler.getRoomId(), msg.getClass(), msg); + } + + @Override + public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { + if(Integer.parseInt(msg.getLevel())>5){ + String chatGptResponse = getChatGptResponse(msg.getContent()); + log.info("自动回复:"+ "@"+msg.getUsername()+": "+chatGptResponse); + if(!Objects.equals(chatGptResponse, "")){ + client.sendDanmu("@"+msg.getUsername()+": "+chatGptResponse); + } + } + log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(DouyuBinaryFrameHandler binaryFrameHandler, DgbMsg msg) { + IDouyuMsgListener.super.onGiftMsg(binaryFrameHandler, msg); + // log.info("{} 收到礼物 {} {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); + } + + @Override + public void onEnterRoomMsg(UenterMsg msg) { +// if(msg.getLevel()>20){ +// String chatGptResponse = getChatGptResponse(msg.getUsername()+"加入了直播间,请你帮忙编写简短有创意的欢迎语"); +// if(!Objects.equals(chatGptResponse, "")){ +// client.sendDanmu(chatGptResponse); +// } +// } + log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + + @Override + public void onCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { + IDouyuMsgListener.super.onCmdMsg(binaryFrameHandler, cmd, cmdMsg); + //log.info("{} 收到CMD消息{} {}", binaryFrameHandler.getRoomId(), cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(DouyuBinaryFrameHandler binaryFrameHandler, DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { + IDouyuMsgListener.super.onOtherCmdMsg(binaryFrameHandler, cmd, cmdMsg); + + // log.debug("{} 收到其他CMD消息 {}", binaryFrameHandler.getRoomId(), cmd); + } + + @Override + public void onUnknownCmd(DouyuBinaryFrameHandler binaryFrameHandler, String cmdString, BaseMsg msg) { + IDouyuMsgListener.super.onUnknownCmd(binaryFrameHandler, cmdString, msg); + + // log.debug("{} 收到未知CMD消息 {}", binaryFrameHandler.getRoomId(), cmdString); + } + }, new IDouyuConnectionListener() { + @Override + public void onConnected(DouyuConnectionHandler connectionHandler) { + log.info("{} onConnected", connectionHandler.getRoomId()); + } + + @Override + public void onConnectFailed(DouyuConnectionHandler connectionHandler) { + log.info("{} onConnectFailed", connectionHandler.getRoomId()); + } + + @Override + public void onDisconnected(DouyuConnectionHandler connectionHandler) { + log.info("{} onDisconnected", connectionHandler.getRoomId()); + } + }); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void multipyListeners() throws InterruptedException { + DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() + // TODO 修改房间id(支持短id) + .roomId(74751) + .build(); + + client = new DouyuLiveChatClient(config, null, this); + client.addMsgListener(new IDouyuMsgListener() { + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + log.info("listener 1 onMsg {}", msg); + } + }); + IDouyuMsgListener msgListener2 = new IDouyuMsgListener() { + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + log.info("listener 2 onMsg {}", msg); + } + }; + client.addMsgListener(msgListener2); + AtomicBoolean removed = new AtomicBoolean(false); + client.addMsgListener(new IDouyuMsgListener() { + @Override + public void onMsg(DouyuBinaryFrameHandler binaryFrameHandler, IMsg msg) { + log.info("listener 3 onMsg {}", msg); + if (!removed.get()) { + log.warn("remove listener 2 by listener 3"); + removed.set(client.removeMsgListener(msgListener2)); + } + } + }); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void multiplyClient() throws InterruptedException { + DouyuLiveChatClientConfig config1 = DouyuLiveChatClientConfig.builder().roomId(890074).build(); + DouyuLiveChatClient client1 = new DouyuLiveChatClient(config1, DouyuLiveChatClientTest.this, DouyuLiveChatClientTest.this); + + DouyuLiveChatClientConfig config2 = DouyuLiveChatClientConfig.builder().roomId(718133).build(); + DouyuLiveChatClient client2 = new DouyuLiveChatClient(config2, DouyuLiveChatClientTest.this, DouyuLiveChatClientTest.this); + + client1.connect(() -> { + log.warn("client1 connect successfully, start connecting client2"); + client2.connect(() -> { + log.warn("client2 connect successfully"); + }); + }); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void sendDanmu() throws InterruptedException { + String cookie = "dy_did=621fbe7a636002f6e6cc42eb00091701; acf_did=621fbe7a636002f6e6cc42eb00091701; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1706978160; PHPSESSID=5mg98bkoens5bsg7da6ooj74b7; acf_auth=2a246MCoU1hPn940VxZrs0wQVc8tY96s6rHocobTmUJF8XKjoxWmv51PLf1V4T5g8QiEAyy6u%2BHQfC%2FTNkJudUVdEowNqAF81eaUzHvo5i1MIXBRbDXYXwY; dy_auth=d066mz7%2BE83QjmEJfujfi%2FyOuib9Y2qfBcK7pINX6Gde4HGRaiWZxhNXkqdbLU1aV%2FXaQ0wbkyxV0DddiF9jBc4tMpCMjvi4a1C6EJTfpLHvMmaGBKlI%2FlQ; wan_auth37wan=b747c445309bcOqiaMF72xt346irN4v%2Fhi%2BgabHCNxe812jm9rR8kGws8cdJlsn0C6jxsVKY6We5xWlrjHKesoD2%2B0Av52%2FWzIxaZKT0f30GASOJz58; acf_uid=145703733; acf_username=145703733; acf_nickname=%E5%9B%BE%E5%85%94%E5%85%94%E7%9A%84%E5%85%94%E5%85%94%E5%9B%BE; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_avatar=https%3A%2F%2Fapic.douyucdn.cn%2Fupload%2Favanew%2Fface%2F201706%2F25%2F21%2F82973545fd6b770fe03175783ffbc3d5_; acf_ct=0; acf_ltkid=28814429; acf_biz=1; acf_stk=0fad5f2454193f86; dy_teen_mode=%7B%22uid%22%3A%22145703733%22%2C%22status%22%3A0%2C%22birthday%22%3A%22%22%2C%22password%22%3A%22%22%7D; dy_did=621fbe7a636002f6e6cc42eb00091701; acf_ccn=5ba506efe2d8a939cf09f8597c7d8030; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1706978671"; + // log.error("cookie: {}", cookie); + DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() + .cookie(cookie) + // TODO 修改弹幕发送最短时间间隔,默认3s + .minSendDanmuPeriod(10 * 1000) + // TODO 修改房间id(支持短id) + .roomId(4624967) + .build(); + DouyuWsLiveChatClient client = new DouyuWsLiveChatClient(config, new IDouyuMsgListener() { + @Override + public void onMsg(IMsg msg) { + IDouyuMsgListener.super.onMsg(msg); + +// log.debug("收到消息 {}", msg.getClass()); + } + + @Override + public void onCmdMsg(DouyuCmdEnum cmd, BaseCmdMsg cmdMsg) { + log.debug("收到CMD消息 {} {}", cmd, cmdMsg); + } + + @Override + public void onEnterRoomMsg(UenterMsg msg) { + log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + @Override + public void onUnknownCmd(String cmdString, BaseMsg msg) { + IDouyuMsgListener.super.onUnknownCmd(cmdString, msg); + + log.debug("收到未知CMD消息 {} {}", cmdString, msg); + } + }, new IDouyuConnectionListener() { + @Override + public void onConnected(DouyuConnectionHandler connectionHandler) { + log.error("{} onConnected", connectionHandler.getRoomId()); + } + + @Override + public void onConnectFailed(DouyuConnectionHandler connectionHandler) { + log.error("{} onConnectFailed", connectionHandler.getRoomId()); + } + + @Override + public void onDisconnected(DouyuConnectionHandler connectionHandler) { + log.error("{} onDisconnected", connectionHandler.getRoomId()); + } + }, new NioEventLoopGroup()); + client.connect(() -> { + client.sendDanmu("主播真好看"); + }); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void createAuthFrameFailedAndDisconnect() throws InterruptedException { + DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() + // TODO 修改房间id(支持短id) + .autoReconnect(false) + .cookie("12323232'123'213'2'13'2") + .roomId(22222) + .build(); + + client = new DouyuLiveChatClient(config, this, this); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void autoReconnect() throws InterruptedException { + DouyuLiveChatClientConfig config = DouyuLiveChatClientConfig.builder() + // TODO 修改房间id(支持短id) + .autoReconnect(true) + .cookie("12323232'123'213'2'13'2") +// .websocketUri("wss://sa.asd.asd:12") + .roomId(22222) + .build(); + + client = new DouyuLiveChatClient(config, this, this); + client.addStatusChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Object oldStatus = evt.getOldValue(); + Object newStatus = evt.getNewValue(); + log.error("{} => {}", oldStatus, newStatus); + } + }); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Override + public void onConnected(DouyuConnectionHandler connectionHandler) { + log.info("{} onConnected", connectionHandler.getRoomId()); + } + + @Override + public void onConnectFailed(DouyuConnectionHandler connectionHandler) { + log.info("{} onConnectFailed", connectionHandler.getRoomId()); + } + + @Override + public void onDisconnected(DouyuConnectionHandler connectionHandler) { + log.info("{} onDisconnected", connectionHandler.getRoomId()); + } + + @Override + public void onDanmuMsg(DouyuBinaryFrameHandler binaryFrameHandler, ChatmsgMsg msg) { + IDouyuMsgListener.super.onDanmuMsg(binaryFrameHandler, msg); + + log.info("{} 收到弹幕 {}({}):{}", binaryFrameHandler.getRoomId(), msg.getNn(), msg.getUid(), msg.getTxt()); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java new file mode 100644 index 00000000..7ab7d80b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Message.java @@ -0,0 +1,104 @@ +package tech.ordinaryroad.live.chat.client.douyu.client; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +import java.io.Serializable; + +/** + * 描述: + * + * @author https:www.unfbx.com + * @since 2023-03-02 + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Message implements Serializable { + + /** + * 目前支持四个中角色参考官网,进行情景输入: + * https://platform.openai.com/docs/guides/chat/introduction + */ + private String role; + + private String content; + + private String name; + + public static Builder builder() { + return new Builder(); + } + + /** + * 构造函数 + * + * @param role 角色 + * @param content 描述主题信息 + * @param name name + */ + public Message(String role, String content, String name) { + this.role = role; + this.content = content; + this.name = name; + } + + public Message() { + } + + private Message(Builder builder) { + setRole(builder.role); + setContent(builder.content); + setName(builder.name); + } + + + @Getter + @AllArgsConstructor + public enum Role { + + SYSTEM("system"), + USER("user"), + ASSISTANT("assistant"), + FUNCTION("function"), + ; + private String name; + } + + public static final class Builder { + private String role; + private String content; + private String name; + + public Builder() { + } + + public Builder role(Role role) { + this.role = role.getName(); + return this; + } + + public Builder role(String role) { + this.role = role; + return this; + } + + public Builder content(String content) { + this.content = content; + return this; + } + + public Builder name(String name) { + this.name = name; + return this; + } + + + public Message build() { + return new Message(this); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java new file mode 100644 index 00000000..5595bc08 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/Usage.java @@ -0,0 +1,24 @@ +package tech.ordinaryroad.live.chat.client.douyu.client; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述: + * + * @author https:www.unfbx.com + * 2023-02-15 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class Usage implements Serializable { + @JsonProperty("prompt_tokens") + private long promptTokens; + @JsonProperty("completion_tokens") + private long completionTokens; + @JsonProperty("total_tokens") + private long totalTokens; +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java new file mode 100644 index 00000000..b4d72604 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java @@ -0,0 +1,102 @@ +package tech.ordinaryroad.live.chat.client.douyu.util; + +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.BaseDouyuCmdMsg; +import tech.ordinaryroad.live.chat.client.douyu.msg.base.IDouyuMsg; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +/** + * @author mjz + * @date 2023/8/27 + */ +class DouyuCodecUtilTest { + + @Test + void test() { + String loginres = "type@=loginres/userid@=1235403446/roomgroup@=0/pg@=0/sessionid@=0/username@=/nickname@=/live_stat@=0/is_illegal@=0/ill_ct@=/ill_ts@=0/now@=0/ps@=0/es@=0/it@=0/its@=0/npv@=0/best_dlev@=0/cur_lev@=0/nrc@=2785047409/ih@=0/sid@=72256/sahf@=0/sceneid@=0/newrg@=0/regts@=0/ip@=112.43.93.229/rn@=0/rct@=0/"; + String pingreq = "type@=pingreq/tick@=1693128084471/"; + String mrkl = "type@=mrkl/"; + String subres = "type@=subres/res@=0/"; + String mapkb = "type@=mapkb/cmd@=3/rid@=5515841/pk_time@=600/lt@=156/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/members@=rid@AA=5515841@ASuid@AA=219585944@ASnick@AA=喵小莎@ASicon@AA=avatar_v3@AAS202303@AAS4cab38d935004acfab53f77a730c9d42@ASstatus@AA=0@ASsc@AA=100000@AStime@AA=1693127363@ASteam@AA=3@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8733064@ASuid@AA=364378905@ASnick@AA=阿允唱情歌@ASicon@AA=avatar_v3@AAS202008@AAS31b239d8af174462b5e0a2990c70b818@ASstatus@AA=0@ASsc@AA=600000@AStime@AA=1693127527@ASteam@AA=6@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=10673032@ASuid@AA=442218984@ASnick@AA=果酱Broly@ASicon@AA=avatar_v3@AAS202306@AASf7d61a0ea3bb4c179af7b5e24f94953e@ASstatus@AA=0@ASsc@AA=200@AStime@AA=1693127347@ASteam@AA=1@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=533813@ASuid@AA=36922190@ASnick@AA=正直博@ASicon@AA=avatar_v3@AAS202212@AAS4e340983996f43b991ffa50af7b956f6@ASstatus@AA=0@ASsc@AA=302000@AStime@AA=1693127348@ASteam@AA=2@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8031896@ASuid@AA=243111494@ASnick@AA=青榎@ASicon@AA=avatar_v3@AAS202305@AAS8bd800d3bb8d4e16884dcb3e3f77b038@ASstatus@AA=0@ASsc@AA=456000@AStime@AA=1693127393@ASteam@AA=4@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=7009686@ASuid@AA=299482114@ASnick@AA=紫薇同学@ASicon@AA=avatar_v3@AAS202302@AASb67044b78b494b0896fd6738bc2d5b7b@ASstatus@AA=0@ASsc@AA=660000@AStime@AA=1693127424@ASteam@AA=5@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@S/subcmd@=0/pkm@=0/rlt@=0/"; + String pdrinfo = "giftId@=23518/total@=total@A=3@Snum@A=0@Sfin@A=0@S/actStatus@=1/time@=1693158017596/type@=pdrinfo/dayFin@=0/list@=1@A=total@AAA=6@AASnum@AAA=6@AASpid@AAA=2682@AASfin@AAA=1@AAS@AStotal@AAA=600@AASnum@AAA=336@AASpid@AAA=2680@AASfin@AAA=0@AAS@AS@S100@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2685@AASfin@AAA=0@AAS@AStotal@AAA=100@AASnum@AAA=5@AASpid@AAA=2682@AASfin@AAA=0@AAS@AS@S10@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2683@AASfin@AAA=0@AAS@AStotal@AAA=80@AASnum@AAA=35@AASpid@AAA=2681@AASfin@AAA=0@AAS@AS@S/"; + + Map map = new HashMap<>(); + map.put("loginres", loginres); + map.put("pingreq", pingreq); + map.put("mrkl", mrkl); + map.put("subres", subres); + map.put("mapkb", mapkb); + map.put("pdrinfo", pdrinfo); + + map.forEach((string, string2) -> { + BaseDouyuCmdMsg baseDouyuCmdMsg = (BaseDouyuCmdMsg) DouyuCodecUtil.parseDouyuSttString(string2, DouyuCodecUtil.MSG_TYPE_RECEIVE); + assertNotNull(baseDouyuCmdMsg); + String cmd = baseDouyuCmdMsg.getCmd(); + assertEquals(string, cmd); + }); + } + + @Test + void decodeTest() { + String mapkb = "type@=mapkb/cmd@=3/rid@=5515841/pk_time@=600/lt@=156/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/members@=rid@AA=5515841@ASuid@AA=219585944@ASnick@AA=喵小莎@ASicon@AA=avatar_v3@AAS202303@AAS4cab38d935004acfab53f77a730c9d42@ASstatus@AA=0@ASsc@AA=100000@AStime@AA=1693127363@ASteam@AA=3@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8733064@ASuid@AA=364378905@ASnick@AA=阿允唱情歌@ASicon@AA=avatar_v3@AAS202008@AAS31b239d8af174462b5e0a2990c70b818@ASstatus@AA=0@ASsc@AA=600000@AStime@AA=1693127527@ASteam@AA=6@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=10673032@ASuid@AA=442218984@ASnick@AA=果酱Broly@ASicon@AA=avatar_v3@AAS202306@AASf7d61a0ea3bb4c179af7b5e24f94953e@ASstatus@AA=0@ASsc@AA=200@AStime@AA=1693127347@ASteam@AA=1@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=533813@ASuid@AA=36922190@ASnick@AA=正直博@ASicon@AA=avatar_v3@AAS202212@AAS4e340983996f43b991ffa50af7b956f6@ASstatus@AA=0@ASsc@AA=302000@AStime@AA=1693127348@ASteam@AA=2@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=8031896@ASuid@AA=243111494@ASnick@AA=青榎@ASicon@AA=avatar_v3@AAS202305@AAS8bd800d3bb8d4e16884dcb3e3f77b038@ASstatus@AA=0@ASsc@AA=456000@AStime@AA=1693127393@ASteam@AA=4@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@Srid@AA=7009686@ASuid@AA=299482114@ASnick@AA=紫薇同学@ASicon@AA=avatar_v3@AAS202302@AASb67044b78b494b0896fd6738bc2d5b7b@ASstatus@AA=0@ASsc@AA=660000@AStime@AA=1693127424@ASteam@AA=5@ASgroup_no@AA=0@ASmd@AA=0@AShvsc@AA=0@ASct@AA=0@AS@S/subcmd@=0/pkm@=0/rlt@=0/"; + Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(mapkb); + assertNotNull(stringObjectMap); + stringObjectMap.forEach((string, o) -> { + System.out.println(string); + }); + } + + @Test + void decodeTest2() { + String pdrinfo = "giftId@=23518/total@=total@A=3@Snum@A=0@Sfin@A=0@S/actStatus@=1/time@=1693158017596/type@=pdrinfo/dayFin@=0/list@=1@A=total@AAA=6@AASnum@AAA=6@AASpid@AAA=2682@AASfin@AAA=1@AAS@AStotal@AAA=600@AASnum@AAA=336@AASpid@AAA=2680@AASfin@AAA=0@AAS@AS@S100@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2685@AASfin@AAA=0@AAS@AStotal@AAA=100@AASnum@AAA=5@AASpid@AAA=2682@AASfin@AAA=0@AAS@AS@S10@A=total@AAA=2@AASnum@AAA=0@AASpid@AAA=2683@AASfin@AAA=0@AAS@AStotal@AAA=80@AASnum@AAA=35@AASpid@AAA=2681@AASfin@AAA=0@AAS@AS@S/"; + Map stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(pdrinfo); + assertNotNull(stringObjectMap); + stringObjectMap.forEach((string, o) -> { + System.out.println(string); + }); + } + + @Test + void toDouyuSttStringTest() { + String douyuSttString = DouyuCodecUtil.toDouyuSttString(new HashMap() {{ + put("key1", "value1"); + put("key2", 2); + put("key3", new ArrayList>() {{ + add(new HashMap() {{ + put("11", 11); + put("12", 12); + }}); + add(new HashMap() {{ + put("21", 21); + put("22", 22); + }}); + }}); + }}); + System.out.println(douyuSttString); + assertEquals("key1@=value1/key2@=2/key3@=11@AA=11@AS12@AA=12@AS@S22@AA=22@AS21@AA=21@AS@S/".length(), douyuSttString.length()); + } + + @Test + void codecTest() { + String mapkb = "type@=mapkb/pk_time@=600/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/"; + IDouyuMsg iDouyuMsg = DouyuCodecUtil.parseDouyuSttString(mapkb, DouyuCodecUtil.MSG_TYPE_RECEIVE); + String douyuSttString = DouyuCodecUtil.toDouyuSttString(iDouyuMsg); + System.out.println(mapkb); + System.out.println(douyuSttString); + assertEquals(mapkb.length(), douyuSttString.length()); + IDouyuMsg douyuSttStringMsg = DouyuCodecUtil.parseDouyuSttString(douyuSttString, DouyuCodecUtil.MSG_TYPE_RECEIVE); + assertNotNull(douyuSttStringMsg); + } + + @Test + void unescape() { + String unescape = DouyuCodecUtil.unescape("team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S"); + System.out.println(unescape); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml new file mode 100644 index 00000000..ff7529a5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/pom.xml @@ -0,0 +1,66 @@ + + + + 4.0.0 + + org.ruoyi + live-chat-clients + ${revision} + ../pom.xml + + jar + + live-chat-client-huya + live-chat-client-huya + + + UTF-8 + + + + + org.ruoyi + live-chat-client-servers-netty-client + + + + com.tencent.tars + tars-core + + + + ch.qos.logback + logback-classic + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java new file mode 100644 index 00000000..bd891301 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApis.java @@ -0,0 +1,83 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.api; + +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpStatus; +import cn.hutool.http.HttpUtil; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import lombok.Cleanup; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; + +import java.util.HashMap; +import java.util.Map; + +import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; + +/** + * API简易版 + *
+ * vplayerUI.js + *
+ * taf-signal.global.0.0.4.prod.js + * + * @author mjz + * @date 2023/9/5 + */ +@Slf4j +public class HuyaApis { + + // TODO TimedCache + public static final Map GIFT_ITEMS = new HashMap<>(); + + public static JsonNode roomInit(Object roomId) { + @Cleanup + HttpResponse response = createGetRequest("https://www.huya.com/" + roomId, null).execute(); + if (response.getStatus() != HttpStatus.HTTP_OK) { + throw new BaseException("获取" + roomId + "真实房间ID失败"); + } + String body = response.body(); + String lSubChannelId = ReUtil.getGroup1("\"lp\"\\D+(\\d+)", body); + String lChannelId = ReUtil.getGroup1("\"lp\"\\D+(\\d+)", body); + String lYyid = ReUtil.getGroup1("\"yyid\"\\D+(\\d+)", body); + ObjectNode objectNode = OBJECT_MAPPER.createObjectNode(); + objectNode.put("lSubChannelId", StrUtil.emptyToDefault(lSubChannelId, "0")); + objectNode.put("lChannelId", StrUtil.emptyToDefault(lChannelId, "0")); + objectNode.put("lYyid", lYyid); + return objectNode; + } + + public static HttpRequest createGetRequest(String url, String cookies) { + return HttpUtil.createGet(url) + .cookie(cookies); + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java new file mode 100644 index 00000000..ecad0b3c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClient.java @@ -0,0 +1,148 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.client; + +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; +import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaConnectionListener; +import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; +import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaConnectionHandler; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; + +import java.util.List; +import java.util.function.Consumer; + +/** + * 虎牙直播间弹幕客户端 + * + * @author mjz + * @date 2023/8/20 + */ +@Slf4j +public class HuyaLiveChatClient extends BaseNettyClient< + HuyaLiveChatClientConfig, + HuyaCmdEnum, + IHuyaMsg, + IHuyaMsgListener, + HuyaConnectionHandler, + HuyaBinaryFrameHandler> { + + public HuyaLiveChatClient(HuyaLiveChatClientConfig config, List msgListeners, IHuyaConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListeners(msgListeners); + + // 初始化 + this.init(); + } + + public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener, IHuyaConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListener(msgListener); + + // 初始化 + this.init(); + } + + public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener, IHuyaConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public HuyaLiveChatClient(HuyaLiveChatClientConfig config, IHuyaMsgListener msgListener) { + this(config, msgListener, null, new NioEventLoopGroup()); + } + + public HuyaLiveChatClient(HuyaLiveChatClientConfig config) { + this(config, null); + } + + + @Override + public HuyaConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + return new HuyaConnectionHandler( + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), + HuyaLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public HuyaBinaryFrameHandler initBinaryFrameHandler() { + return new HuyaBinaryFrameHandler(super.msgListeners, HuyaLiveChatClient.this); + } + + @Override + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + if (!checkCanSendDanmu()) { + return; + } + + if (danmu instanceof String) { + String msg = (String) danmu; + if (log.isDebugEnabled()) { + log.debug("{} huya发送弹幕 {}", getConfig().getRoomId(), danmu); + } + + WebSocketFrame webSocketFrame = null; + try { + webSocketFrame = HuyaWebSocketFrameFactory.getInstance(getConfig().getRoomId()).createSendMessageReq(msg, getConfig().getVer(), getConfig().getCookie()); + } catch (Exception e) { + log.error("huya弹幕包创建失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (webSocketFrame == null) { + return; + } + + send(webSocketFrame, () -> { + if (log.isDebugEnabled()) { + log.debug("huya弹幕发送成功 {}", danmu); + } + if (success != null) { + success.run(); + } + finishSendDanmu(); + }, throwable -> { + log.error("huya弹幕发送失败", throwable); + if (failed != null) { + failed.accept(throwable); + } + }); + } else { + super.sendDanmu(danmu); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java new file mode 100644 index 00000000..176bc74d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/config/HuyaLiveChatClientConfig.java @@ -0,0 +1,84 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.config; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; + +/** + * 直播间弹幕客户端配置 + * + * @author mjz + * @date 2023/9/5 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public class HuyaLiveChatClientConfig extends BaseNettyClientConfig { + + public static final String VER = "2309271152"; + + @Builder.Default +// private String websocketUri = "wss://wsapi.huya.com:443"; + private String websocketUri = "wss://cdnws.api.huya.com:443"; + + @Builder.Default + private int aggregatorMaxContentLength = 64 * 1024 * 1024; + + @Builder.Default + private int maxFramePayloadLength = 64 * 1024 * 1024; + + @Builder.Default + private String ver = VER; + + @Builder.Default + private String exp = "15547.23738,16582.25335,32083.50834"; + + @Builder.Default + private String appSrc = "HUYA&ZH&2052"; + + public void setVer(String ver) { + String oldValue = this.ver; + this.ver = ver; + super.propertyChangeSupport.firePropertyChange("ver", oldValue, ver); + } + + public void setExp(String exp) { + String oldValue = this.exp; + this.exp = exp; + super.propertyChangeSupport.firePropertyChange("exp", oldValue, exp); + } + + public void setAppSrc(String appSrc) { + String oldValue = this.appSrc; + this.appSrc = appSrc; + super.propertyChangeSupport.firePropertyChange("appSrc", oldValue, appSrc); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java new file mode 100644 index 00000000..48ddedfc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaClientTemplateTypeEnum.java @@ -0,0 +1,58 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaClientTemplateTypeEnum { + + TPL_PC(64), + TPL_WEB(32), + TPL_JIEDAI(16), + TPL_TEXAS(8), + TPL_MATCH(4), + TPL_HUYAAPP(2), + TPL_MIRROR(1), + ; + + private final int code; + + public static HuyaClientTemplateTypeEnum getByCode(int code) { + for (HuyaClientTemplateTypeEnum value : values()) { + if (value.getCode() == code) { + return value; + } + } + return null; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java new file mode 100644 index 00000000..e47b2c26 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaCmdEnum.java @@ -0,0 +1,206 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaCmdEnum { + + NobleNotice(1001), + // NobleEnterNotice(1002), + NobleEnterNotice(1005), + NobleLevelNotice(1006), + MessageNotice(1400), + // ExpressionEmoticonNotice(1420), + ExpressionEmoticonNotice(1422), + OpenEmojiTrialNotice(1441), + SubscribeInfoNotify(3104), + PublicMessageAreaGuideWindow(6074), + // WeekStarPropsIds(6100), + WeekStarPropsIdsTab(6102), + /** + * https://dev.huya.com/docs/miniapp/dev/scenario/vip-event/ + */ + VipEnterBanner(6110), + VipBarListStatInfo(6211), + EnterPushInfo(6200), + GameAdvertisement(6201), + ViewerListRsp(6203), + VipBarListRsp(6210), + UserWeekRankScoreInfo(6219), + WeekRankListRsp(6220), + WeekRankEnterBanner(6221), + FansSupportListRsp(6223), + FansRankListRsp(6230), + BadgeInfo(6231), + BadgeScoreChanged(6232), + FansInfoNotice(6233), + UserGiftNotice(6234), + WeekStarPropsIds(6235), + SuperFansExtendInfo(6245), + TrialFansBadgeScoreChanged(6246), + GuardianCountChangedNotice(6249), + GiftBarRsp(6250), + GrandCeremonyChampionPresenter(6260), + LotteryAnnounce(6289), + NewsTicker(6290), + SendItemSubBroadcastPacket(6501), + SendItemNoticeWordBroadcastPacket(6502), + ShowScreenSkinNotify(6640), + HideScreenSkinNotify(6641), + ActivetyBarrageNotice(6650), + BannerNotice(6291), + // OnTVPanel(6294), + OnTVPanel(6295), + OnTVData(6296), + OnTVEndNotice(6297), + OnTVBarrageNotice(6298), + CheckRoomStatus(6340), + SendItemNoticeGameBroadcastPacket(6507), + SendItemActivityNoticeBroadcastPacket(6508), + SendItemOtherBroadcastPacket(6514), + GiftStatusNotify(6515), + ActivitySpecialNoticeBroadcastPacket(6540), + UserDIYMountsChanged(6575), + ObtainDecoNotify(6590), + TreasureResultBroadcastPacket(6602), + TreasureUpdateNotice(6604), + TreasureLotteryResultNoticePacket(6605), + TreasureBoxPanel(6606), + TreasureBoxBigAwardNotice(6607), + ItemLotterySubNotice(6616), + ItemLotteryGameNotice(6617), + FansBadgeLevelUpNotice(6710), + FansPromoteNotice(6711), + ActCommPanelChangeNotify(6647), + MatchRaffleResultNotice(7055), + BatchGameInfoNotice(7500), + GameInfoChangeNotice(7501), + EndHistoryGameNotice(7502), + GameSettlementNotice(7503), + PresenterEndGameNotice(7504), + // PresenterLevelNotice(7708), + PresenterLevelNotice(7709), + EffectsConfChangeNoticeMsg(7772), + BeginLiveNotice(8000), + EndLiveNotice(8001), + StreamSettingNotice(8002), + LiveInfoChangedNotice(8004), + AttendeeCountNotice(8006), + ReplayPresenterInLiveNotify(9010), + RoomAuditWarningNotice(10039), + AuditorEnterLiveNotice(10040), + AuditorRoleChangeNotice(10041), + GetRoomAuditConfRsp(10042), + UserConsumePrivilegeChangeNotice(10047), + LinkMicStatusChangeNotice(42008), + InterveneCountRsp(44000), + UserLevelUpgradeNotice(1000106), + PushUserLevelTaskCompleteNotice(1130055), + GuardianPresenterInfoNotice(1020001), + SupportCampInfoRsp(1025300), + UserSupportCampRsp(1025301), + UserSupportEffectRsp(1025302), + WSRedirect(1025305), + HuYaUdbNotify(10220051), + infoBody(10220053), + UnionAuthPushMsg(10220054), + RMessageNotify(1025000), + PushPresenterAdNotice(1025493), + RoomAdInfo(1025504), + // PushAdInfo(1025562), +// PushAdInfo(1025564), + PushAdInfo(1025566), + // AdExtServer.PushOfflineInfo(1025569), + WSP2POpenNotify(1025307), + WSP2PCloseNotify(1025308), + LiveMeetingSyncNotice(1025601), + MakeFriendsPKInfo(1025604), + LiveRoomTransferNotice(1025605), + GetPugcVipListRsp(1025800), + PugcVipInfo(1025801), + StreamChangeNotice(100000), + PayLiveRoomNotice(1033001), + MatchEndNotice(1034001), + LiveRoomProfileChangedNotice(1035400), + ACOrderInfo(1060003), + // WEBACT.Message(108e4), + MultiPKNotice(1090007), + MultiPKPanelInfo(1090009), + AiBarrageDetectNotify(1100003), + FloatMomentNotice(1130050), + FloatBallNotice(1130052), + VoiceMuteJsonInfo(1200000), + PixelateInfo(1200001), + // MpsDeliverData(1210000), + MpsDeliverData(1220000), + ActivityMsgRsp(1010003), + // Message(1040000), + Message(1040002), + LiveEventMessage(1040003), + LiveViewLimitChangeNotice(1035100), + PrivilegeRenewalNotice(1035101), + MatchRecLiveInfo(1029001), + GetBattleTeamInfoRsp(1029002), + // MatchGuess.MatchCmdColorNotify(1025312), + GameStatusInfo(1130003), + MatchPlaybackPointNotice(1150001), + PushFaceDirectorCurrentProgram(1130070), + JoinSplitScreenNotice(1500001), + LeaveSplitScreenNotice(1500002), + GameLivePromoteNotify(1800009), + MotorcadeGatherBeginNotice(2000001), + MotorcadeGatherEndNotice(2000002), + MotorcadeGatherResponseNotice(2000003), + MotorcadeActivityPanel(2000041), + MessageRichTextNotice(2001231), + MultiVideoSyncNotice(2400001), + PassParcelChangeNotify(2400002), + MatchLiveCommentorChangeNotify(2400020), + MessageEasterEggNotice(2001203), + MessageEasterEggToastNotice(2001202), + UserFollowStrollIconNotice(2410001), + UserFollowStrollBarrageNotice(2410002), +// LiveMatch.MatchLiveRoomRecMsg(2500406), + ; + + private final long code; + + public static HuyaCmdEnum getByCode(long code) { + for (HuyaCmdEnum value : HuyaCmdEnum.values()) { + if (value.code == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java new file mode 100644 index 00000000..834af679 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationAppTypeEnum.java @@ -0,0 +1,88 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaDecorationAppTypeEnum { + + kDecorationAppTypeCommon(100), + kDecorationAppTypeContentBubble(5000), + kDecorationAppTypeContentBubbleNew(5001), + kDecorationAppTypeEffectsMessenger(5002), + kDecorationAppTypeMsgInterConnect(5010), + kDecorationAppTypeMsgLocation(5011), + kDecorationAppTypeChannel(10000), + kDecorationAppTypeGuildAdmin(10090), + kDecorationAppTypeAdmin(10100), + kDecorationAppTypeDaiyanClub(10150), + kDecorationAppTypeNoble(10200), + KDecorationAppTypeGuildVip(10210), + kDecorationAppTypeGuard(10300), + kDecorationAppTypeDiamondUser_V2(10310), + kDecorationAppTypeTeamMedalV2(10350), + kDecorationAppTypeTrialFans(10399), + kDecorationAppTypeFans(10400), + kDecorationAppTypeWatchTogetherVip(10425), + kDecorationAppTypeTeamMedal(10450), + kDecorationAppTypeVIP(10500), + kDecorationAppTypeUserProfile(10560), + kDecorationAppTyperPurpleDiamond(10600), + kDecorationAppTypeStamp(10700), + KDecorationAppTypeNobleEmoticon(10800), + KDecorationAppTypeAnotherAi(10801), + KDecorationAppTypePresenter(10900), + KDecorationAppTypeFirstRecharge(11000), + kDecorationAppTypeCheckRoom(11100), + kDecorationAppTypeTWatch(11101), + kDecorationAppTypeEasterEgg(11102), + kDecorationAppTypeRepeatMessengeFilter(11103), + kDecorationAppTypeEasterEggCounter(11104), + kDecorationAppTypeACOrderIntimacy(12001), + kDecorationAppTypeSuperWord(13000), + kDecorationAppTypeDiamondUser(14000), + kDecorationAppTypeRedBag(15000), + kDecorationAppTypeUsrAvatarDeco(100009), + kDecorationAppTypeUsrBeautyId(100100), + ; + + private final int code; + + public static HuyaDecorationAppTypeEnum getByCode(int code) { + for (HuyaDecorationAppTypeEnum value : values()) { + if (value.getCode() == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java new file mode 100644 index 00000000..3e1318bd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaDecorationViewTypeEnum.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaDecorationViewTypeEnum { + + kDecorationViewTypeCustomized(0), + kDecorationViewTypeText(1), + kDecorationViewTypeIcon(2), + kDecorationViewTypeSuperWord(4), + ; + + private final int code; + + public static HuyaDecorationViewTypeEnum getByCode(int code) { + for (HuyaDecorationViewTypeEnum value : values()) { + if (value.getCode() == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java new file mode 100644 index 00000000..830c6f46 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaGenderEnum.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaGenderEnum { + + MALE(0), + FEMALE(1), + ; + private final int code; + + public static HuyaGenderEnum getByCode(int code) { + for (HuyaGenderEnum value : values()) { + if (value.getCode() == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java new file mode 100644 index 00000000..ce93ab6a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaLiveSource.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaLiveSource { + + PC_YY(0), + PC_HUYA(1), + MOBILE_HUYA(2), + WEB_HUYA(3), + ; + + private final int code; + + public static HuyaLiveSource getByCode(int code){ + for (HuyaLiveSource value : values()) { + if (value.getCode()==code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java new file mode 100644 index 00000000..dca59798 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaOperationEnum.java @@ -0,0 +1,97 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaOperationEnum { + EWSCmd_NULL(0), + EWSCmd_RegisterReq(1), + EWSCmd_RegisterRsp(2), + EWSCmd_WupReq(3), + EWSCmd_WupRsp(4), + EWSCmdC2S_HeartBeat(5), + EWSCmdS2C_HeartBeatAck(6), + EWSCmdS2C_MsgPushReq(7), + EWSCmdC2S_DeregisterReq(8), + EWSCmdS2C_DeRegisterRsp(9), + EWSCmdC2S_VerifyCookieReq(10), + EWSCmdS2C_VerifyCookieRsp(11), + EWSCmdC2S_VerifyHuyaTokenReq(12), + EWSCmdS2C_VerifyHuyaTokenRsp(13), + EWSCmdC2S_UNVerifyReq(14), + EWSCmdS2C_UNVerifyRsp(15), + EWSCmdC2S_RegisterGroupReq(16), + EWSCmdS2C_RegisterGroupRsp(17), + EWSCmdC2S_UnRegisterGroupReq(18), + EWSCmdS2C_UnRegisterGroupRsp(19), + EWSCmdC2S_HeartBeatReq(20), + EWSCmdS2C_HeartBeatRsp(21), + EWSCmdS2C_MsgPushReq_V2(22), + EWSCmdC2S_UpdateUserExpsReq(23), + EWSCmdS2C_UpdateUserExpsRsp(24), + EWSCmdC2S_WSHistoryMsgReq(25), + EWSCmdS2C_WSHistoryMsgRsp(26), + EWSCmdS2C_EnterP2P(27), + EWSCmdS2C_EnterP2PAck(28), + EWSCmdS2C_ExitP2P(29), + EWSCmdS2C_ExitP2PAck(30), + EWSCmdC2S_SyncGroupReq(31), + EWSCmdS2C_SyncGroupRsp(32), + EWSCmdC2S_UpdateUserInfoReq(33), + EWSCmdS2C_UpdateUserInfoRsp(34), + EWSCmdC2S_MsgAckReq(35), + EWSCmdS2C_MsgAckRsp(36), + EWSCmdC2S_CloudGameReq(37), + EWSCmdS2C_CloudGamePush(38), + EWSCmdS2C_CloudGameRsp(39), + EWSCmdS2C_RpcReq(40), + EWSCmdC2S_RpcRsp(41), + EWSCmdS2C_RpcRspRsp(42), + EWSCmdC2S_GetStunPortReq(101), + EWSCmdS2C_GetStunPortRsp(102), + EWSCmdC2S_WebRTCOfferReq(103), + EWSCmdS2C_WebRTCOfferRsp(104), + EWSCmdC2S_SignalUpgradeReq(105), + EWSCmdS2C_SignalUpgradeRsp(106), + ; + private final int code; + + public static HuyaOperationEnum getByCode(int code) { + for (HuyaOperationEnum value : HuyaOperationEnum.values()) { + if (value.code == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java new file mode 100644 index 00000000..3696532e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaStreamLineTypeEnum.java @@ -0,0 +1,62 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaStreamLineTypeEnum { + + STREAM_LINE_OLD_YY(0), + STREAM_LINE_WS(1), + STREAM_LINE_NEW_YY(2), + STREAM_LINE_AL(3), + STREAM_LINE_HUYA(4), + STREAM_LINE_TX(5), + STREAM_LINE_CDN(8), + STREAM_LINE_HW(6), + STREAM_LINE_BD(7), + STREAM_LINE_GG(9), + STREAM_LINE_CF(10), + STREAM_LINE_QUICK_HUYA(99), + ; + + private final int code; + + public static HuyaStreamLineTypeEnum getByCode(int code) { + for (HuyaStreamLineTypeEnum value : values()) { + if (value.getCode() == code) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java new file mode 100644 index 00000000..c7e9906e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/constant/HuyaWupFunctionEnum.java @@ -0,0 +1,59 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.constant; + +import cn.hutool.core.util.StrUtil; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@RequiredArgsConstructor +public enum HuyaWupFunctionEnum { + + doLaunch, + speak, + getPropsList, + OnUserHeartBeat, + getLivingInfo, + sendMessage, + ; + + public static HuyaWupFunctionEnum getByName(String name) { + if (StrUtil.isBlank(name)) { + return null; + } + + for (HuyaWupFunctionEnum value : values()) { + if (value.name().equals(name)) { + return value; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java new file mode 100644 index 00000000..caa46741 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaConnectionListener.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.listener; + + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaConnectionHandler; + +/** + * 连接回调 + * + * @author mjz + * @date 2023/9/5 + */ +public interface IHuyaConnectionListener extends IBaseConnectionListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java new file mode 100644 index 00000000..48e656db --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/listener/IHuyaMsgListener.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IEnterRoomMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.MessageNoticeMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.SendItemSubBroadcastPacketMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.VipEnterBannerMsg; +import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; + +/** + * @author mjz + * @date 2023/9/5 + */ +public interface IHuyaMsgListener extends IBaseMsgListener, + IDanmuMsgListener, + IGiftMsgListener, + IEnterRoomMsgListener { +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java new file mode 100644 index 00000000..9a924f36 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/BaseWup.java @@ -0,0 +1,138 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.support.TarsMethodInfo; +import com.qq.tars.protocol.util.TarsHelper; +import com.qq.tars.rpc.protocol.tars.TarsServantRequest; +import com.qq.tars.rpc.protocol.tup.UniAttribute; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufUtil; +import io.netty.buffer.Unpooled; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseWup extends BaseHuyaMsg { + + private TarsServantRequest tarsServantRequest = new TarsServantRequest(null) {{ + setMethodInfo(new TarsMethodInfo()); + }}; + private UniAttribute uniAttribute = new UniAttribute(); + + public BaseWup(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { +// os.write(this.tarsServantRequest.getVersion(), 1); + os.write(TarsHelper.VERSION3, 1); + os.write(this.tarsServantRequest.getPacketType(), 2); + os.write(this.tarsServantRequest.getMessageType(), 3); + os.write(this.tarsServantRequest.getRequestId(), 4); + os.write(this.tarsServantRequest.getServantName(), 5); + os.write(this.tarsServantRequest.getFunctionName(), 6); + os.write(this.uniAttribute.encode(), 7); + os.write(this.tarsServantRequest.getTimeout(), 8); + os.write(this.tarsServantRequest.getContext(), 9); + os.write(this.tarsServantRequest.getStatus(), 10); + } + + @Override + public void readFrom(TarsInputStream is) { + this.tarsServantRequest.setVersion(is.read(this.tarsServantRequest.getVersion(), 1, false)); + this.tarsServantRequest.setPacketType(is.read(this.tarsServantRequest.getPacketType(), 2, false)); + this.tarsServantRequest.setMessageType(is.read(this.tarsServantRequest.getMessageType(), 3, false)); + this.tarsServantRequest.setRequestId(is.read(this.tarsServantRequest.getRequestId(), 4, false)); + this.tarsServantRequest.setServantName(is.read(this.tarsServantRequest.getServantName(), 5, false)); + this.tarsServantRequest.setFunctionName(is.read(this.tarsServantRequest.getFunctionName(), 6, false)); + this.uniAttribute.decode(is.read(new byte[]{}, 7, false)); + this.tarsServantRequest.setTimeout(is.read(this.tarsServantRequest.getTimeout(), 8, false)); + this.tarsServantRequest.setContext(is.readMap(this.tarsServantRequest.getContext(), 9, false)); + this.tarsServantRequest.setStatus(is.readMap(this.tarsServantRequest.getStatus(), 10, false)); + } + + public byte[] encode() { + TarsOutputStream wupTarsOutputStream = new TarsOutputStream(); + this.writeTo(wupTarsOutputStream); + + ByteBuf buffer = Unpooled.buffer(); + buffer.writeInt(4 + wupTarsOutputStream.getByteBuffer().position()); + buffer.writeBytes(wupTarsOutputStream.toByteArray()); + + return ByteBufUtil.getBytes(buffer); + } + + public void decode(byte[] bytes) { + ByteBuf byteBuf = Unpooled.wrappedBuffer(bytes); + int size = byteBuf.readInt(); + if (size < 4) { + return; + } + + bytes = new byte[byteBuf.readableBytes()]; + byteBuf.readBytes(bytes); + this.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(bytes)); + } + + @Override + public String toString() { + Map map = new HashMap<>(); + map.put("version", this.tarsServantRequest.getVersion()); + map.put("packetType", this.tarsServantRequest.getPacketType()); + map.put("messageType", this.tarsServantRequest.getMessageType()); + map.put("requestId", this.tarsServantRequest.getRequestId()); + map.put("servantName", this.tarsServantRequest.getServantName()); + map.put("functionName", this.tarsServantRequest.getFunctionName()); + map.put("timeout", this.tarsServantRequest.getTimeout()); + map.put("context", this.tarsServantRequest.getContext()); + map.put("status", this.tarsServantRequest.getStatus()); + try { + return BaseMsg.OBJECT_MAPPER.writeValueAsString(map); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java new file mode 100644 index 00000000..75e55e6f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/ConnectParaInfo.java @@ -0,0 +1,105 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/9/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ConnectParaInfo extends TarsStructBase { + + private long lUid = 0; + private String sGuid = ""; + private String sUA = ""; + private String sAppSrc = ""; + private String sMid = ""; + private String sExp = ""; + private int iTokenType = 0; + private String sToken = ""; + private String sCookie = ""; + private String sTraceId = ""; + private Map mCustomHeaders = new HashMap() {{ + put("", ""); + }}; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sGuid, 1); + os.write(this.sUA, 2); + os.write(this.sAppSrc, 3); + os.write(this.sMid, 4); + os.write(this.sExp, 5); + os.write(this.iTokenType, 6); + os.write(this.sToken, 7); + os.write(this.sCookie, 8); + os.write(this.sTraceId, 9); + os.write(this.mCustomHeaders, 10); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.sGuid = is.read(this.sGuid, 1, false); + this.sUA = is.read(this.sUA, 2, false); + this.sAppSrc = is.read(this.sAppSrc, 3, false); + this.sMid = is.read(this.sMid, 4, false); + this.sExp = is.read(this.sExp, 5, false); + this.iTokenType = is.read(this.iTokenType, 6, false); + this.sToken = is.read(this.sToken, 7, false); + this.sCookie = is.read(this.sCookie, 8, false); + this.sTraceId = is.read(this.sTraceId, 9, false); + this.mCustomHeaders = is.readMap(this.mCustomHeaders, 10, false); + } + + public static ConnectParaInfo newWSConnectParaInfo(String ver, String sExp, String appSrc) { + ConnectParaInfo wsConnectParaInfo = new ConnectParaInfo(); +// wsConnectParaInfo.sGuid = UUID.fastUUID().toString(true); + + wsConnectParaInfo.sUA = String.format("webh5&%s&websocket", ver); + wsConnectParaInfo.sAppSrc = appSrc; + wsConnectParaInfo.sExp = sExp; + wsConnectParaInfo.mCustomHeaders = new HashMap() {{ + put("HUYA_NET", "0"); + put("HUYA_VSDKUA", wsConnectParaInfo.sUA); + }}; + return wsConnectParaInfo; + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java new file mode 100644 index 00000000..71ed2cc9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/LiveLaunchRsp.java @@ -0,0 +1,78 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.LiveProxyValue; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LiveLaunchRsp extends BaseHuyaMsg { + + private String sGuid = ""; + private int iTime; + private List vProxyList = CollUtil.newArrayList(new LiveProxyValue()); + private int eAccess; + private String sClientIp = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sGuid, 0); + os.write(this.iTime, 1); + os.write(this.vProxyList, 2); + os.write(this.eAccess, 3); + os.write(this.sClientIp, 4); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sGuid = is.read(this.sGuid, 0, false); + this.iTime = is.read(this.iTime, 1, false); + this.vProxyList = is.readArray(this.vProxyList, 2, false); + this.eAccess = is.read(this.eAccess, 3, false); + this.sClientIp = is.read(this.sClientIp, 4, false); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmd_WupRsp; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java new file mode 100644 index 00000000..a0178e5a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/MessageNoticeMsg.java @@ -0,0 +1,197 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; +import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; + +import java.util.List; +import java.util.Optional; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MessageNoticeMsg extends BaseHuyaMsg implements IDanmuMsg { + + private SenderInfo tUserInfo = new SenderInfo(); + private long lTid; + private long lSid; + private String sContent = ""; + private int iShowMode; + private ContentFormat tFormat = new ContentFormat(); + private BulletFormat tBulletFormat = new BulletFormat(); + private int iTermType; + private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); + private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); + private List vAtSomeone = CollUtil.newArrayList(new UidNickName()); + private long lPid; + private List vBulletPrefix = CollUtil.newArrayList(new DecorationInfo()); + private String sIconUrl = ""; + private int iType; + private List vBulletSuffix = CollUtil.newArrayList(new DecorationInfo()); + private List vTagInfo = CollUtil.newArrayList(new MessageTagInfo()); + private SendMessageFormat tSenceFormat = new SendMessageFormat(); + private MessageContentExpand tContentExpand = new MessageContentExpand(); + private int iMessageMode; + + // region 额外属性 + private BadgeInfo badgeInfo; + // endregion + + public MessageNoticeMsg(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tUserInfo, 0); + os.write(this.lTid, 1); + os.write(this.lSid, 2); + os.write(this.sContent, 3); + os.write(this.iShowMode, 4); + os.write(this.tFormat, 5); + os.write(this.tBulletFormat, 6); + os.write(this.iTermType, 7); + os.write(this.vDecorationPrefix, 8); + os.write(this.vDecorationSuffix, 9); + os.write(this.vAtSomeone, 10); + os.write(this.lPid, 11); + os.write(this.vBulletPrefix, 12); + os.write(this.sIconUrl, 13); + os.write(this.iType, 14); + os.write(this.vBulletSuffix, 15); + os.write(this.vTagInfo, 16); + os.write(this.tSenceFormat, 17); + os.write(this.tContentExpand, 18); + os.write(this.iMessageMode, 19); + } + + @Override + public void readFrom(TarsInputStream is) { + this.tUserInfo = (SenderInfo) is.directRead(this.tUserInfo, 0, true); + this.lTid = is.read(this.lTid, 1, true); + this.lSid = is.read(this.lSid, 2, true); + this.sContent = is.readString(3, true); + this.iShowMode = is.read(this.iShowMode, 4, true); + this.tFormat = (ContentFormat) is.directRead(this.tFormat, 5, true); + this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 6, true); + this.iTermType = is.read(this.iTermType, 7, true); + this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 8, true); + this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 9, true); + this.vAtSomeone = is.readArray(this.vAtSomeone, 10, true); + this.lPid = is.read(this.lPid, 11, true); + this.vBulletPrefix = is.readArray(this.vBulletPrefix, 12, false); + this.sIconUrl = is.read(this.sIconUrl, 13, false); + this.iType = is.read(this.iType, 14, false); + this.vBulletSuffix = is.readArray(this.vBulletSuffix, 15, false); + this.vTagInfo = is.readArray(this.vTagInfo, 16, false); + this.tSenceFormat = (SendMessageFormat) is.directRead(this.tSenceFormat, 17, false); + this.tContentExpand = (MessageContentExpand) is.directRead(this.tContentExpand, 18, false); + this.iMessageMode = is.read(this.iMessageMode, 19, false); + + // 解析额外属性 + for (DecorationInfo decorationPrefix : vDecorationPrefix) { + Optional optional = HuyaCodecUtil.decodeDecorationInfo(decorationPrefix); + if (optional.isPresent()) { + TarsStructBase tarsStructBase = optional.get(); + if (tarsStructBase instanceof BadgeInfo) { + this.badgeInfo = (BadgeInfo) tarsStructBase; + break; + } + } + } + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; + } + + @Override + public String getBadgeName() { + if (this.badgeInfo == null) { + return ""; + } + + return this.badgeInfo.getSBadgeName(); + } + + @Override + public byte getBadgeLevel() { + if (this.badgeInfo == null) { + return 0; + } + + return (byte) this.badgeInfo.getIBadgeLevel(); + } + + @Override + public String getUid() { + if (this.tUserInfo == null) { + return null; + } + + return Long.toString(this.tUserInfo.getLUid()); + } + + @Override + public String getUsername() { + if (this.tUserInfo == null) { + return ""; + } + + return this.tUserInfo.getSNickName(); + } + + @Override + public String getUserAvatar() { + if (this.tUserInfo == null) { + return ""; + } + + return this.tUserInfo.getSAvatarUrl(); + } + + @Override + public String getContent() { + return this.sContent; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java new file mode 100644 index 00000000..9008d882 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage.java @@ -0,0 +1,84 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaCmdMsg; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PushMessage extends BaseHuyaCmdMsg { + + private int ePushType; + private byte[] dataBytes; + private int iProtocolType; + private String sGroupId = ""; + private long lMsgId; + private int iMsgTag; + + public PushMessage(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.ePushType, 0); + os.write(super.getLUri(), 1); + os.write(this.dataBytes, 2); + os.write(this.iProtocolType, 3); + os.write(this.sGroupId, 4); + os.write(this.lMsgId, 5); + os.write(this.iMsgTag, 6); + + } + + @Override + public void readFrom(TarsInputStream is) { + this.ePushType = is.read(this.ePushType, 0, true); + super.setLUri(is.read(super.getLUri(), 1, true)); + this.dataBytes = is.read(this.dataBytes, 2, true); + this.iProtocolType = is.read(this.iProtocolType, 3, true); + this.sGroupId = is.read(this.sGroupId, 4, true); + this.lMsgId = is.read(this.lMsgId, 5, true); + this.iMsgTag = is.read(this.iMsgTag, 6, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java new file mode 100644 index 00000000..a9aa3b16 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/PushMessage_V2.java @@ -0,0 +1,73 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgItem; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PushMessage_V2 extends BaseHuyaMsg { + + private String sGroupId; + private List vMsgItem = CollUtil.newArrayList(new MsgItem()); + + public PushMessage_V2(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sGroupId, 0); + os.write(this.vMsgItem, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sGroupId = is.read(this.sGroupId, 0, true); + this.vMsgItem = is.readArray(this.vMsgItem, 1, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java new file mode 100644 index 00000000..1060ae58 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterGroupRsp.java @@ -0,0 +1,72 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class RegisterGroupRsp extends BaseHuyaMsg { + + private int iResCode; + private List vSupportP2PGroupId = CollUtil.newArrayList(""); + + public RegisterGroupRsp(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iResCode, 0); + os.write(this.vSupportP2PGroupId, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iResCode = is.read(this.iResCode, 0, true); + this.vSupportP2PGroupId = is.readArray(this.vSupportP2PGroupId, 1, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_RegisterGroupRsp; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java new file mode 100644 index 00000000..20ab1b03 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/RegisterRsp.java @@ -0,0 +1,75 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class RegisterRsp extends BaseHuyaMsg { + + private int iResCode; + private long lRequestId; + private String sMessage = ""; + private String sBCConnHost = ""; + + public RegisterRsp(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iResCode, 0); + os.write(this.lRequestId, 1); + os.write(this.sMessage, 2); + os.write(this.sBCConnHost, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iResCode = is.read(this.iResCode, 0, true); + this.lRequestId = is.read(this.lRequestId, 1, true); + this.sMessage = is.read(this.sMessage, 2, true); + this.sBCConnHost = is.read(this.sBCConnHost, 3, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmd_RegisterRsp; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java new file mode 100644 index 00000000..0fd03757 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/SendItemSubBroadcastPacketMsg.java @@ -0,0 +1,283 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; +import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; + +import java.util.List; +import java.util.Optional; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SendItemSubBroadcastPacketMsg extends BaseHuyaMsg implements IGiftMsg { + + private int iItemType; + private String strPayId = ""; + private int iItemCount; + private long lPresenterUid; + private long lSenderUid; + private String sPresenterNick = ""; + private String sSenderNick = ""; + private String sSendContent = ""; + private int iItemCountByGroup; + private int iItemGroup; + private int iSuperPupleLevel; + private int iComboScore; + private int iDisplayInfo; + private int iEffectType; + private String iSenderIcon = ""; + private String iPresenterIcon = ""; + private int iTemplateType; + private String sExpand = ""; + private boolean bBusi; + private int iColorEffectType; + private String sPropsName = ""; + private short iAccpet = 0; + private short iEventType = 0; + private UserIdentityInfo userInfo = new UserIdentityInfo(); + private long lRoomId = 0; + private long lHomeOwnerUid = 0; + // private int streamerInfo = new D.StreamerNode; + private int iPayType = -1; + private int iNobleLevel = 0; + private NobleLevelInfo tNobleLevel = new NobleLevelInfo(); + private ItemEffectInfo tEffectInfo = new ItemEffectInfo(); + private List vExUid = CollUtil.newArrayList(-1L); + private int iComboStatus = 0; + private int iPidColorType = 0; + private int iMultiSend = 0; + private int iVFanLevel = 0; + private int iUpgradeLevel = 0; + private String sCustomText = ""; + private DIYBigGiftEffect tDIYEffect = new DIYBigGiftEffect(); + private long lComboSeqId = 0; + private long lPayTotal = 0; +// private int vBizData = new V.Vector(new D.ItemEffectBizData); + + // region 额外属性 + private BadgeInfo badgeInfo; + private PropsItem propsItem = PropsItem.DEFAULT; + // endregion + + public SendItemSubBroadcastPacketMsg(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iItemType, 0); + os.write(this.strPayId, 1); + os.write(this.iItemCount, 2); + os.write(this.lPresenterUid, 3); + os.write(this.lSenderUid, 4); + os.write(this.sPresenterNick, 5); + os.write(this.sSenderNick, 6); + os.write(this.sSendContent, 7); + os.write(this.iItemCountByGroup, 8); + os.write(this.iItemGroup, 9); + os.write(this.iSuperPupleLevel, 10); + os.write(this.iComboScore, 11); + os.write(this.iDisplayInfo, 12); + os.write(this.iEffectType, 13); + os.write(this.iSenderIcon, 14); + os.write(this.iPresenterIcon, 15); + os.write(this.iTemplateType, 16); + os.write(this.sExpand, 17); + os.write(this.bBusi, 18); + os.write(this.iColorEffectType, 19); + os.write(this.sPropsName, 20); + os.write(this.iAccpet, 21); + os.write(this.iEventType, 22); + os.write(this.userInfo, 23); + os.write(this.lRoomId, 24); + os.write(this.lHomeOwnerUid, 25); +// os.write(this.streamerInfo, 26); + os.write(this.iPayType, 27); + os.write(this.iNobleLevel, 28); + os.write(this.tNobleLevel, 29); + os.write(this.tEffectInfo, 30); + os.write(this.vExUid, 31); + os.write(this.iComboStatus, 32); + os.write(this.iPidColorType, 33); + os.write(this.iMultiSend, 34); + os.write(this.iVFanLevel, 35); + os.write(this.iUpgradeLevel, 36); + os.write(this.sCustomText, 37); + os.write(this.tDIYEffect, 38); + os.write(this.lComboSeqId, 39); + os.write(this.lPayTotal, 41); +// os.write(this.vBizData, 42); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iItemType = is.read(this.iItemType, 0, true); + this.strPayId = is.read(this.strPayId, 1, true); + this.iItemCount = is.read(this.iItemCount, 2, true); + this.lPresenterUid = is.read(this.lPresenterUid, 3, true); + this.lSenderUid = is.read(this.lSenderUid, 4, true); + this.sPresenterNick = is.read(this.sPresenterNick, 5, true); + this.sSenderNick = is.read(this.sSenderNick, 6, true); + this.sSendContent = is.read(this.sSendContent, 7, true); + this.iItemCountByGroup = is.read(this.iItemCountByGroup, 8, true); + this.iItemGroup = is.read(this.iItemGroup, 9, true); + this.iSuperPupleLevel = is.read(this.iSuperPupleLevel, 10, true); + this.iComboScore = is.read(this.iComboScore, 11, true); + this.iDisplayInfo = is.read(this.iDisplayInfo, 12, true); + this.iEffectType = is.read(this.iEffectType, 13, true); + this.iSenderIcon = is.read(this.iSenderIcon, 14, true); + this.iPresenterIcon = is.read(this.iPresenterIcon, 15, true); + this.iTemplateType = is.read(this.iTemplateType, 16, true); + this.sExpand = is.read(this.sExpand, 17, true); + this.bBusi = is.read(this.bBusi, 18, true); + this.iColorEffectType = is.read(this.iColorEffectType, 19, true); + this.sPropsName = is.read(this.sPropsName, 20, true); + this.iAccpet = is.read(this.iAccpet, 21, true); + this.iEventType = is.read(this.iEventType, 22, true); + this.userInfo = (UserIdentityInfo) is.directRead(this.userInfo, 23, true); + this.lRoomId = is.read(this.lRoomId, 24, true); + this.lHomeOwnerUid = is.read(this.lHomeOwnerUid, 25, true); +// this.streamerInfo = is.read(this.streamerInfo, 26, true); + this.iPayType = is.read(this.iPayType, 27, true); + this.iNobleLevel = is.read(this.iNobleLevel, 28, true); + this.tNobleLevel = (NobleLevelInfo) is.directRead(this.tNobleLevel, 29, true); + this.tEffectInfo = (ItemEffectInfo) is.directRead(this.tEffectInfo, 30, true); + this.vExUid = is.readArray(this.vExUid, 31, true); + this.iComboStatus = is.read(this.iComboStatus, 32, true); + this.iPidColorType = is.read(this.iPidColorType, 33, true); + this.iMultiSend = is.read(this.iMultiSend, 34, true); + this.iVFanLevel = is.read(this.iVFanLevel, 35, true); + this.iUpgradeLevel = is.read(this.iUpgradeLevel, 36, true); + this.sCustomText = is.read(this.sCustomText, 37, true); + this.tDIYEffect = (DIYBigGiftEffect) is.directRead(this.tDIYEffect, 38, true); + this.lComboSeqId = is.read(this.lComboSeqId, 39, true); + this.lPayTotal = is.read(this.lPayTotal, 41, true); +// this.vBizData = is.read(this.vBizData, 42, true); + + // 解析额外属性 + for (DecorationInfo decorationPrefix : userInfo.getVDecorationPrefix()) { + Optional optional = HuyaCodecUtil.decodeDecorationInfo(decorationPrefix); + if (optional.isPresent()) { + TarsStructBase tarsStructBase = optional.get(); + if (tarsStructBase instanceof BadgeInfo) { + this.badgeInfo = (BadgeInfo) tarsStructBase; + break; + } + } + } + } + + @Override + public String getUid() { + return Long.toString(this.lSenderUid); + } + + @Override + public String getUsername() { + return this.sSenderNick; + } + + @Override + public String getUserAvatar() { + return this.iSenderIcon; + } + + @Override + public String getGiftName() { + return this.sPropsName; + } + + @Override + public String getGiftImg() { + if (this.propsItem == null) { + return ""; + } + + List vPropsIdentity = this.propsItem.getVPropsIdentity(); + if (vPropsIdentity.isEmpty()) { + return ""; + } + + PropsIdentity propsIdentity = vPropsIdentity.get(0); + String sPropsWeb = propsIdentity.getSPropsWeb(); + if (StrUtil.isBlank(sPropsWeb)) { + return ""; + } + + return sPropsWeb.substring(0, sPropsWeb.indexOf("&")); + } + + @Override + public String getGiftId() { + return Long.toString(this.iItemType); + } + + @Override + public int getGiftCount() { + return this.iItemCount; + } + + /** + * 100 对应 1虎牙币 + */ + @Override + public int getGiftPrice() { + return (int) (this.lPayTotal / this.iItemCount); + } + + @Override + public String getReceiveUid() { + return Long.toString(this.lPresenterUid); + } + + @Override + public String getReceiveUsername() { + return this.sPresenterNick; + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java new file mode 100644 index 00000000..b8ef2ab3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/UserInfo.java @@ -0,0 +1,88 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserInfo extends TarsStructBase { + + private long lUid = 0; + private boolean bAnonymous = true; + private String sGuid = ""; + private String sToken = ""; + private long lTid = 0; + private long lSid = 0; + private long lGroupId = 0; + private long lGroupType = 0; + private String sAppId = ""; + private String sUA = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.bAnonymous, 1); + os.write(this.sGuid, 2); + os.write(this.sToken, 3); + os.write(this.lTid, 4); + os.write(this.lSid, 5); + os.write(this.lGroupId, 6); + os.write(this.lGroupType, 7); + os.write(this.sAppId, 8); + os.write(this.sUA, 9); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, true); + this.bAnonymous = is.read(this.bAnonymous, 1, true); + this.sGuid = is.read(this.sGuid, 2, true); + this.sToken = is.read(this.sToken, 3, true); + this.lTid = is.read(this.lTid, 4, true); + this.lSid = is.read(this.lSid, 5, true); + this.lGroupId = is.read(this.lGroupId, 6, true); + this.lGroupType = is.read(this.lGroupType, 7, true); + this.sAppId = is.read(this.sAppId, 8, true); + this.sUA = is.read(this.sUA, 9, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java new file mode 100644 index 00000000..c080d6e6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VerifyCookieRsp.java @@ -0,0 +1,66 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class VerifyCookieRsp extends BaseHuyaMsg { + + private int iValidate; + + public VerifyCookieRsp(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(0, this.iValidate); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iValidate = is.read(this.iValidate, 0, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_VerifyCookieRsp; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java new file mode 100644 index 00000000..7fbfe949 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/VipEnterBannerMsg.java @@ -0,0 +1,144 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IEnterRoomMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; + +import java.util.List; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class VipEnterBannerMsg extends BaseHuyaMsg implements IEnterRoomMsg { + + private long lUid; + private String sNickName = ""; + private long lPid; + private NobleInfo tNobleInfo = new NobleInfo(); + private GuardInfo tGuardInfo = new GuardInfo(); + private WeekRankInfo tWeekRankInfo = new WeekRankInfo(); + private String sLogoURL = ""; + private boolean bFromNearby; + private String sLocation = ""; + private DecorationInfoRsp tDecorationInfo = new DecorationInfoRsp(); + private WeekRankInfo tWeekHeartStirRankInfo = new WeekRankInfo(); + private WeekRankInfo tWeekHeartBlockRankInfo = new WeekRankInfo(); + private int iMasterRank; + private ACEnterBanner tACInfo = new ACEnterBanner(); + private List vCommEnterBanner = CollUtil.newArrayList(new CommEnterBanner()); + private UserRidePetInfo tRidePetInfo = new UserRidePetInfo(); + + public VipEnterBannerMsg(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sNickName, 1); + os.write(this.lPid, 2); + os.write(this.tNobleInfo, 3); + os.write(this.tGuardInfo, 4); + os.write(this.tWeekRankInfo, 5); + os.write(this.sLogoURL, 6); + os.write(this.bFromNearby, 7); + os.write(this.sLocation, 8); + os.write(this.tDecorationInfo, 9); + os.write(this.tWeekHeartStirRankInfo, 10); + os.write(this.tWeekHeartBlockRankInfo, 11); + os.write(this.iMasterRank, 12); + os.write(this.tACInfo, 13); + os.write(this.vCommEnterBanner, 14); + os.write(this.tRidePetInfo, 15); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.sNickName = is.read(this.sNickName, 1, false); + this.lPid = is.read(this.lPid, 2, false); + this.tNobleInfo = (NobleInfo) is.directRead(this.tNobleInfo, 3, false); + this.tGuardInfo = (GuardInfo) is.directRead(this.tGuardInfo, 4, false); + this.tWeekRankInfo = (WeekRankInfo) is.directRead(this.tWeekRankInfo, 5, false); + this.sLogoURL = is.read(this.sLogoURL, 6, false); + this.bFromNearby = is.read(this.bFromNearby, 7, false); + this.sLocation = is.read(this.sLocation, 8, false); + this.tDecorationInfo = (DecorationInfoRsp) is.directRead(this.tDecorationInfo, 9, false); + this.tWeekHeartStirRankInfo = (WeekRankInfo) is.directRead(this.tWeekHeartStirRankInfo, 10, false); + this.tWeekHeartBlockRankInfo = (WeekRankInfo) is.directRead(this.tWeekHeartBlockRankInfo, 11, false); + this.iMasterRank = is.read(this.iMasterRank, 12, false); + this.tACInfo = (ACEnterBanner) is.directRead(this.tACInfo, 13, false); + this.vCommEnterBanner = is.readArray(this.vCommEnterBanner, 14, false); + this.tRidePetInfo = (UserRidePetInfo) is.directRead(this.tRidePetInfo, 15, false); + } + + @Override + public String getBadgeName() { + // TODO + return null; + } + + @Override + public byte getBadgeLevel() { + // TODO + return 0; + } + + @Override + public String getUid() { + return Long.toString(lUid); + } + + @Override + public String getUsername() { + return sNickName; + } + + @Override + public String getUserAvatar() { + // TODO + return IEnterRoomMsg.super.getUserAvatar(); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java new file mode 100644 index 00000000..6c71ae5b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WebSocketCommand.java @@ -0,0 +1,84 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaMsg; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class WebSocketCommand extends BaseHuyaMsg { + + private int operation; + private byte[] vData; + private long lRequestId; + private String traceId = ""; + private int iEncryptType; + private long lTime; + private String sMD5 = ""; + + public WebSocketCommand(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.operation, 0); + os.write(this.vData, 1); + os.write(this.lRequestId, 2); + os.write(this.traceId, 3); + os.write(this.iEncryptType, 4); + os.write(this.lTime, 5); + os.write(this.sMD5, 6); + } + + @Override + public void readFrom(TarsInputStream is) { + this.operation = is.read(this.operation, 0, true); + this.vData = is.read(this.vData, 1, true); + this.lRequestId = is.read(this.lRequestId, 2, true); + this.traceId = is.read(this.traceId, 3, true); + this.iEncryptType = is.read(this.iEncryptType, 4, true); + this.lTime = is.read(this.lTime, 5, true); + this.sMD5 = is.read(this.sMD5, 6, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.getByCode(operation); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java new file mode 100644 index 00000000..443866c5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/WupRsp.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg; + +import lombok.NoArgsConstructor; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; + +/** + * @author mjz + * @date 2023/10/3 + */ +@NoArgsConstructor +public class WupRsp extends BaseWup { + + public WupRsp(byte[] vData) { + super.decode(vData); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmd_WupRsp; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java new file mode 100644 index 00000000..2b5c1cff --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaCmdMsg.java @@ -0,0 +1,79 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.base; + +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public abstract class BaseHuyaCmdMsg extends TarsStructBase implements IHuyaCmdMsg { + + private long lUri; + + @Override + public String getCmd() { + return StrUtil.nullToEmpty(StrUtil.toStringOrNull(this.lUri)); + } + + @Override + public void setCmd(String cmd) { + this.lUri = NumberUtil.parseLong(cmd); + } + + @Override + public HuyaCmdEnum getCmdEnum() { + return HuyaCmdEnum.getByCode(this.lUri); + } + + @Override + public TarsStructBase newInit() { + return this; + } + + @Override + public String toString() { + try { + return BaseMsg.OBJECT_MAPPER.writeValueAsString(this); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java new file mode 100644 index 00000000..b0dd169f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/BaseHuyaMsg.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.base; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.qq.tars.protocol.tars.TarsStructBase; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg; + +/** + * @author mjz + * @date 2023/10/2 + */ +public abstract class BaseHuyaMsg extends TarsStructBase implements IHuyaMsg { + + @Override + public TarsStructBase newInit() { + return this; + } + + @Override + public String toString() { + try { + return BaseMsg.OBJECT_MAPPER.writeValueAsString(this); + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java new file mode 100644 index 00000000..41ab6e20 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaCmdMsg.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; + +/** + * @author mjz + * @date 2023/10/2 + */ +public interface IHuyaCmdMsg extends IHuyaMsg, ICmdMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java new file mode 100644 index 00000000..0fc8aa0e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/base/IHuyaMsg.java @@ -0,0 +1,38 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.base; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; + +/** + * @author mjz + * @date 2023/8/26 + */ +public interface IHuyaMsg extends IMsg { + @JsonIgnore + HuyaOperationEnum getOperationEnum(); +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java new file mode 100644 index 00000000..e9076757 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ACEnterBanner.java @@ -0,0 +1,70 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ACEnterBanner extends TarsStructBase { + + private int iWeekHeartStirRank; + private int iWeekHeartBlockRank; + private int iMasterRank; + private int iACWeekRank; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iWeekHeartStirRank, 0); + os.write(this.iWeekHeartBlockRank, 1); + os.write(this.iMasterRank, 2); + os.write(this.iACWeekRank, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + is.read(this.iWeekHeartStirRank, 0, false); + is.read(this.iWeekHeartBlockRank, 1, false); + is.read(this.iMasterRank, 2, false); + is.read(this.iACWeekRank, 3, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java new file mode 100644 index 00000000..e9233b0b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BadgeInfo.java @@ -0,0 +1,119 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class BadgeInfo extends TarsStructBase { + + private long lUid; + private long lBadgeId; + private String sPresenterNickName = ""; + private String sBadgeName = ""; + private int iBadgeLevel; + private int iRank; + private int iScore; + private int iNextScore; + private int iQuotaUsed; + private int iQuota; + private long lQuotaTS; + private long lOpenTS; + private int iVFlag; + private String sVLogo = ""; + private PresenterChannelInfo tChannelInfo = new PresenterChannelInfo(); + private String sPresenterLogo = ""; + private long lVExpiredTS; + private int iBadgeType; + private FaithInfo tFaithInfo = new FaithInfo(); + private SuperFansInfo tSuperFansInfo = new SuperFansInfo(); + private int iBaseQuota; + private long lVConsumRank; + private int iCustomBadgeFlag; + private int iAgingDays; + private int iDayScore; + private CustomBadgeDynamicExternal tExternal = new CustomBadgeDynamicExternal(); + private int iExtinguished; + private int iExtinguishDays; + private int iBadgeCate; + private int iLiveFlag; + + @Override + public void writeTo(TarsOutputStream os) { + + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.lBadgeId = is.read(this.lBadgeId, 1, false); + this.sPresenterNickName = is.read(this.sPresenterNickName, 2, false); + this.sBadgeName = is.read(this.sBadgeName, 3, false); + this.iBadgeLevel = is.read(this.iBadgeLevel, 4, false); + this.iRank = is.read(this.iRank, 5, false); + this.iScore = is.read(this.iScore, 6, false); + this.iNextScore = is.read(this.iNextScore, 7, false); + this.iQuotaUsed = is.read(this.iQuotaUsed, 8, false); + this.iQuota = is.read(this.iQuota, 9, false); + this.lQuotaTS = is.read(this.lQuotaTS, 10, false); + this.lOpenTS = is.read(this.lOpenTS, 11, false); + this.iVFlag = is.read(this.iVFlag, 12, false); + this.sVLogo = is.read(this.sVLogo, 13, false); + this.tChannelInfo = (PresenterChannelInfo) is.directRead(this.tChannelInfo, 14, false); + this.sPresenterLogo = is.read(this.sPresenterLogo, 15, false); + this.lVExpiredTS = is.read(this.lVExpiredTS, 16, false); + this.iBadgeType = is.read(this.iBadgeType, 17, false); + this.tFaithInfo = (FaithInfo) is.directRead(this.tFaithInfo, 18, false); + this.tSuperFansInfo = (SuperFansInfo) is.directRead(this.tSuperFansInfo, 19, false); + this.iBaseQuota = is.read(this.iBaseQuota, 20, false); + this.lVConsumRank = is.read(this.lVConsumRank, 21, false); + this.iCustomBadgeFlag = is.read(this.iCustomBadgeFlag, 22, false); + this.iAgingDays = is.read(this.iAgingDays, 23, false); + this.iDayScore = is.read(this.iDayScore, 24, false); + this.tExternal = (CustomBadgeDynamicExternal) is.directRead(this.tExternal, 25, false); + this.iExtinguished = is.read(this.iExtinguished, 26, false); + this.iExtinguishDays = is.read(this.iExtinguishDays, 27, false); + this.iBadgeCate = is.read(this.iBadgeCate, 28, false); + this.iLiveFlag = is.read(this.iLiveFlag, 29, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java new file mode 100644 index 00000000..61fabb2f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletBorderGroundFormat.java @@ -0,0 +1,85 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class BulletBorderGroundFormat extends TarsStructBase { + + private int iEnableUse; + private int iBorderThickness; + private int iBorderColour = -1; + private int iBorderDiaphaneity = 100; + private int iGroundColour = -1; + private int iGroundColourDiaphaneity = 100; + private String sAvatarDecorationUrl = ""; + private int iFontColor = -1; + private int iTerminalFlag = -1; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iEnableUse, 0); + os.write(this.iBorderThickness, 1); + os.write(this.iBorderColour, 2); + os.write(this.iBorderDiaphaneity, 3); + os.write(this.iGroundColour, 4); + os.write(this.iGroundColourDiaphaneity, 5); + os.write(this.sAvatarDecorationUrl, 6); + os.write(this.iFontColor, 7); + os.write(this.iTerminalFlag, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iEnableUse = is.read(this.iEnableUse, 0, false); + this.iBorderThickness = is.read(this.iBorderThickness, 1, false); + this.iBorderColour = is.read(this.iBorderColour, 2, false); + this.iBorderDiaphaneity = is.read(this.iBorderDiaphaneity, 3, false); + this.iGroundColour = is.read(this.iGroundColour, 4, false); + this.iGroundColourDiaphaneity = is.read(this.iGroundColourDiaphaneity, 5, false); + this.sAvatarDecorationUrl = is.read(this.sAvatarDecorationUrl, 6, false); + this.iFontColor = is.read(this.iFontColor, 7, false); + this.iTerminalFlag = is.read(this.iTerminalFlag, 8, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java new file mode 100644 index 00000000..5f81da9f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/BulletFormat.java @@ -0,0 +1,89 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class BulletFormat extends TarsStructBase { + + private int iFontColor = -1; + private int iFontSize = 4; + private int iTextSpeed = 0; + private int iTransitionType = 1; + private int iPopupStyle = 0; + private BulletBorderGroundFormat tBorderGroundFormat = new BulletBorderGroundFormat(); + private List vGraduatedColor = CollUtil.newArrayList(0); + private int iAvatarFlag = 0; + private int iAvatarTerminalFlag = -1; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iFontColor, 0); + os.write(this.iFontSize, 1); + os.write(this.iTextSpeed, 2); + os.write(this.iTransitionType, 3); + os.write(this.iPopupStyle, 4); + os.write(this.tBorderGroundFormat, 5); + os.write(this.vGraduatedColor, 6); + os.write(this.iAvatarFlag, 7); + os.write(this.iAvatarTerminalFlag, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iFontColor = is.read(this.iFontColor, 0, false); + this.iFontSize = is.read(this.iFontSize, 1, false); + this.iTextSpeed = is.read(this.iTextSpeed, 2, false); + this.iTransitionType = is.read(this.iTransitionType, 3, false); + this.iPopupStyle = is.read(this.iPopupStyle, 4, false); + this.tBorderGroundFormat = (BulletBorderGroundFormat) is.directRead(this.tBorderGroundFormat, 5, false); + this.vGraduatedColor = is.readArray(this.vGraduatedColor, 6, false); + this.iAvatarFlag = is.read(this.iAvatarFlag, 7, false); + this.iAvatarTerminalFlag = is.read(this.iAvatarTerminalFlag, 8, false); + + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java new file mode 100644 index 00000000..4bb796a8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ChannelPair.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ChannelPair extends TarsStructBase { + + private long lTid; + private long lSid; + private long lPid; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lTid, 0); + os.write(this.lSid, 1); + os.write(this.lPid, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lTid = is.read(this.lTid, 0, false); + this.lSid = is.read(this.lSid, 1, false); + this.lPid = is.read(this.lPid, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java new file mode 100644 index 00000000..900178d4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CommEnterBanner.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class CommEnterBanner extends TarsStructBase { + + private int iBannerUri; + private int iViewType; + private byte[] vData; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iBannerUri, 0); + os.write(this.iViewType, 1); + os.write(this.vData, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iBannerUri = is.read(this.iBannerUri, 0, false); + this.iViewType = is.read(this.iViewType, 1, false); + this.vData = is.read(this.vData, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java new file mode 100644 index 00000000..594baf1c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ContentFormat.java @@ -0,0 +1,76 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ContentFormat extends TarsStructBase { + + private int iFontColor = -1; + private int iFontSize = 4; + private int iPopupStyle = 0; + private int iNickNameFontColor = -1; + private int iDarkFontColor = -1; + private int iDarkNickNameFontColor = -1; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iFontColor, 0); + os.write(this.iFontSize, 1); + os.write(this.iPopupStyle, 2); + os.write(this.iNickNameFontColor, 3); + os.write(this.iDarkFontColor, 4); + os.write(this.iDarkNickNameFontColor, 5); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iFontColor = is.read(this.iFontColor, 0, false); + this.iFontSize = is.read(this.iFontSize, 1, false); + this.iPopupStyle = is.read(this.iPopupStyle, 2, false); + this.iNickNameFontColor = is.read(this.iNickNameFontColor, 3, false); + this.iDarkFontColor = is.read(this.iDarkFontColor, 4, false); + this.iDarkNickNameFontColor = is.read(this.iDarkNickNameFontColor, 5, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java new file mode 100644 index 00000000..bb8d5aae --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/CustomBadgeDynamicExternal.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class CustomBadgeDynamicExternal extends TarsStructBase { + + private String sFloorExter = ""; + private int iFansIdentity; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sFloorExter, 0); + os.write(this.iFansIdentity, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sFloorExter = is.read(this.sFloorExter, 0, false); + this.iFansIdentity = is.read(this.iFansIdentity, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java new file mode 100644 index 00000000..b93da5ab --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DIYBigGiftEffect.java @@ -0,0 +1,70 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DIYBigGiftEffect extends TarsStructBase { + + private String sResourceUrl = ""; + private String sResourceAttr = ""; + private String sWebResourceUrl = ""; + private String sPCResourceUrl = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sResourceUrl, 0); + os.write(this.sResourceAttr, 1); + os.write(this.sWebResourceUrl, 2); + os.write(this.sPCResourceUrl, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sResourceUrl = is.read(this.sResourceUrl, 0, false); + this.sResourceAttr = is.read(this.sResourceAttr, 1, false); + this.sWebResourceUrl = is.read(this.sWebResourceUrl, 2, false); + this.sPCResourceUrl = is.read(this.sPCResourceUrl, 3, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java new file mode 100644 index 00000000..747518db --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfo.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DecorationInfo extends TarsStructBase { + + private int iAppId = 0; + private int iViewType = 0; + private byte[] vData; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iAppId, 0); + os.write(this.iViewType, 1); + os.write(this.vData, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iAppId = is.read(this.iAppId, 0, true); + this.iViewType = is.read(this.iViewType, 1, true); + this.vData = is.read(this.vData, 2, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java new file mode 100644 index 00000000..9c93cc42 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DecorationInfoRsp.java @@ -0,0 +1,88 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DecorationInfoRsp extends TarsStructBase { + + private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); + private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); + private ContentFormat tFormat = new ContentFormat(); + private BulletFormat tBulletFormat = new BulletFormat(); + private List vForwardChannels = CollUtil.newArrayList(new ChannelPair()); + private int iModifyMask; + private List vBulletPrefix = CollUtil.newArrayList(new DecorationInfo()); + private SenderInfo tUserInfo = new SenderInfo(); + private List vBulletSuffix = CollUtil.newArrayList(new DecorationInfo()); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.vDecorationPrefix, 0); + os.write(this.vDecorationSuffix, 1); + os.write(this.tFormat, 2); + os.write(this.tBulletFormat, 3); + os.write(this.vForwardChannels, 4); + os.write(this.iModifyMask, 5); + os.write(this.vBulletPrefix, 6); + os.write(this.tUserInfo, 7); + os.write(this.vBulletSuffix, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 0, false); + this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 1, false); + this.tFormat = (ContentFormat) is.directRead(this.tFormat, 2, false); + this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 3, false); + this.vForwardChannels = is.readArray(this.vForwardChannels, 4, false); + this.iModifyMask = is.read(this.iModifyMask, 5, false); + this.vBulletPrefix = is.readArray(this.vBulletPrefix, 6, false); + this.tUserInfo = (SenderInfo) is.directRead(this.tUserInfo, 7, false); + this.vBulletSuffix = is.readArray(this.vBulletSuffix, 8, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java new file mode 100644 index 00000000..8e8d93b0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DeviceInfo.java @@ -0,0 +1,73 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DeviceInfo extends TarsStructBase { + + private String sIMEI = ""; + private String sAPN = ""; + private String sNetType = ""; + private String sDeviceId = ""; + private String sMId = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sIMEI, 0); + os.write(this.sAPN, 1); + os.write(this.sNetType, 2); + os.write(this.sDeviceId, 3); + os.write(this.sMId, 4); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sIMEI = is.read(this.sIMEI, 0, false); + this.sAPN = is.read(this.sAPN, 1, false); + this.sNetType = is.read(this.sNetType, 2, false); + this.sDeviceId = is.read(this.sDeviceId, 3, false); + this.sMId = is.read(this.sMId, 4, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java new file mode 100644 index 00000000..1a23b3f8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/DisplayInfo.java @@ -0,0 +1,91 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class DisplayInfo extends TarsStructBase { + + private int iMarqueeScopeMin = 0; + private int iMarqueeScopeMax = 0; + private int iCurrentVideoNum = 0; + private int iCurrentVideoMin = 0; + private int iCurrentVideoMax = 0; + private int iAllVideoNum = 0; + private int iAllVideoMin = 0; + private int iAllVideoMax = 0; + private int iCurrentScreenNum = 0; + private int iCurrentScreenMin = 0; + private int iCurrentScreenMax = 0; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iMarqueeScopeMin, 1); + os.write(this.iMarqueeScopeMax, 2); + os.write(this.iCurrentVideoNum, 3); + os.write(this.iCurrentVideoMin, 4); + os.write(this.iCurrentVideoMax, 5); + os.write(this.iAllVideoNum, 6); + os.write(this.iAllVideoMin, 7); + os.write(this.iAllVideoMax, 8); + os.write(this.iCurrentScreenNum, 9); + os.write(this.iCurrentScreenMin, 10); + os.write(this.iCurrentScreenMax, 11); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iMarqueeScopeMin = is.read(this.iMarqueeScopeMin, 1, true); + this.iMarqueeScopeMax = is.read(this.iMarqueeScopeMax, 2, true); + this.iCurrentVideoNum = is.read(this.iCurrentVideoNum, 3, true); + this.iCurrentVideoMin = is.read(this.iCurrentVideoMin, 4, true); + this.iCurrentVideoMax = is.read(this.iCurrentVideoMax, 5, true); + this.iAllVideoNum = is.read(this.iAllVideoNum, 6, true); + this.iAllVideoMin = is.read(this.iAllVideoMin, 7, true); + this.iAllVideoMax = is.read(this.iAllVideoMax, 8, true); + this.iCurrentScreenNum = is.read(this.iCurrentScreenNum, 9, true); + this.iCurrentScreenMin = is.read(this.iCurrentScreenMin, 10, true); + this.iCurrentScreenMax = is.read(this.iCurrentScreenMax, 11, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java new file mode 100644 index 00000000..1faa752e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithInfo.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class FaithInfo extends TarsStructBase { + + private String sFaithName = ""; + private List vPresenter = CollUtil.newArrayList(new FaithPresenter()); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sFaithName, 0); + os.write(this.vPresenter, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sFaithName = is.read(this.sFaithName, 0, false); + this.vPresenter = is.readArray(this.vPresenter, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java new file mode 100644 index 00000000..ad78b3db --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/FaithPresenter.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class FaithPresenter extends TarsStructBase { + + private long lPid; + private String sLogo = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lPid, 0); + os.write(this.sLogo, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lPid = is.read(this.lPid, 0, false); + this.sLogo = is.read(this.sLogo, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java new file mode 100644 index 00000000..badff469 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/GuardInfo.java @@ -0,0 +1,94 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GuardInfo extends TarsStructBase { + + private long lUid; + private long lPid; + private int iGuardLevel; + private long lEndTime; + private String sAttr = ""; + private String sIcon = ""; + private int iGuardType; + private long lStartTime; + private long lCommemorateDay; + private int iAccompanyDay; + private String sNewAttr = ""; + private String sEnterText = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.lPid, 1); + os.write(this.iGuardLevel, 2); + os.write(this.lEndTime, 3); + os.write(this.sAttr, 4); + os.write(this.sIcon, 5); + os.write(this.iGuardType, 6); + os.write(this.lStartTime, 7); + os.write(this.lCommemorateDay, 8); + os.write(this.iAccompanyDay, 9); + os.write(this.sNewAttr, 10); + os.write(this.sEnterText, 11); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.lPid = is.read(this.lPid, 1, false); + this.iGuardLevel = is.read(this.iGuardLevel, 2, false); + this.lEndTime = is.read(this.lEndTime, 3, false); + this.sAttr = is.read(this.sAttr, 4, false); + this.sIcon = is.read(this.sIcon, 5, false); + this.iGuardType = is.read(this.iGuardType, 6, false); + this.lStartTime = is.read(this.lStartTime, 7, false); + this.lCommemorateDay = is.read(this.lCommemorateDay, 8, false); + this.iAccompanyDay = is.read(this.iAccompanyDay, 9, false); + this.sNewAttr = is.read(this.sNewAttr, 10, false); + this.sEnterText = is.read(this.sEnterText, 11, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java new file mode 100644 index 00000000..4a4478ff --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/ItemEffectInfo.java @@ -0,0 +1,70 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class ItemEffectInfo extends TarsStructBase { + + private int iPriceLevel; + private int iStreamDuration; + private int iShowType; + private int iStreamId; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iPriceLevel, 0); + os.write(this.iStreamDuration, 1); + os.write(this.iShowType, 2); + os.write(this.iStreamId, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iPriceLevel = is.read(this.iPriceLevel, 0, false); + this.iStreamDuration = is.read(this.iStreamDuration, 1, false); + this.iShowType = is.read(this.iShowType, 2, false); + this.iStreamId = is.read(this.iStreamId, 3, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java new file mode 100644 index 00000000..b7b9b839 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveAppUAEx.java @@ -0,0 +1,73 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LiveAppUAEx extends TarsStructBase { + + private String sIMEI = ""; + private String sAPN = ""; + private String sNetType = ""; + private String sDeviceId = ""; + private String sMId = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sIMEI, 1); + os.write(this.sAPN, 2); + os.write(this.sNetType, 3); + os.write(this.sDeviceId, 4); + os.write(this.sMId, 5); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sIMEI = is.read(this.sIMEI, 1, false); + this.sAPN = is.read(this.sAPN, 2, false); + this.sNetType = is.read(this.sNetType, 3, false); + this.sDeviceId = is.read(this.sDeviceId, 4, false); + this.sMId = is.read(this.sMId, 5, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java new file mode 100644 index 00000000..619eb18a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveProxyValue.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LiveProxyValue extends TarsStructBase { + + private int eProxyType; + private List sProxy = CollUtil.newArrayList(""); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.eProxyType, 0); + os.write(this.sProxy, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.eProxyType = is.read(this.eProxyType, 0, false); + this.sProxy = is.readArray(this.sProxy, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java new file mode 100644 index 00000000..b6595a2d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/LiveUserbase.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LiveUserbase extends TarsStructBase { + + private int eSource; + private int eType; + private LiveAppUAEx tUAEx = new LiveAppUAEx(); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.eSource, 0); + os.write(this.eType, 1); + os.write(this.tUAEx, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.eSource = is.read(this.eSource, 0, false); + this.eType = is.read(this.eType, 1, false); + this.tUAEx = (LiveAppUAEx) is.directRead(this.tUAEx, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java new file mode 100644 index 00000000..4afd6c58 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageContentExpand.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MessageContentExpand extends TarsStructBase { + + private int iAppId = 0; + private String sToast = ""; + private byte[] vData; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iAppId, 0); + os.write(this.sToast, 1); + os.write(this.vData, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iAppId = is.read(this.iAppId, 0, false); + this.sToast = is.read(this.sToast, 1, false); + this.vData = is.read(this.vData, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java new file mode 100644 index 00000000..bb8c0e72 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MessageTagInfo.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MessageTagInfo extends TarsStructBase { + + private int iAppId = 0; + private String sTag = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iAppId, 0); + os.write(this.sTag, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iAppId = is.read(this.iAppId, 0, false); + this.sTag = is.read(this.sTag, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java new file mode 100644 index 00000000..22f85aa4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgItem.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.base.BaseHuyaCmdMsg; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MsgItem extends BaseHuyaCmdMsg { + + private byte[] sMsg; + private long lMsgId; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(super.getLUri(), 0); + os.write(this.sMsg, 1); + os.write(this.lMsgId, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + super.setLUri(is.read(super.getLUri(), 0, true)); + this.sMsg = is.read(this.sMsg, 1, true); + this.lMsgId = is.read(this.lMsgId, 2, true); + } + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmdS2C_MsgPushReq_V2; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java new file mode 100644 index 00000000..d4d229ed --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/MsgStatInfo.java @@ -0,0 +1,70 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class MsgStatInfo extends TarsStructBase { + + private Map> mSignalPushUriCount = new HashMap<>(); + private Map> mP2pPushUriCount = new HashMap<>(); + private int iSupportAckMsgStat; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.mSignalPushUriCount, 0); + os.write(this.mP2pPushUriCount, 1); + os.write(this.iSupportAckMsgStat, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + this.mSignalPushUriCount = is.readMap(this.mSignalPushUriCount, 0, false); + this.mP2pPushUriCount = is.readMap(this.mP2pPushUriCount, 1, false); + this.iSupportAckMsgStat = is.read(this.iSupportAckMsgStat, 3, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java new file mode 100644 index 00000000..db8adc1f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleInfo.java @@ -0,0 +1,94 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class NobleInfo extends TarsStructBase { + + private long lUid; + private long lPid; + private long lValidDate; + private String sNobleName = ""; + private int iNobleLevel; + private int iNoblePet; + private int iNobleStatus; + private int iNobleType; + private int iRemainDays; + private NobleLevelAttr tLevelAttr = new NobleLevelAttr(); + private NoblePetAttr tPetAttr = new NoblePetAttr(); + private long lOpenTime; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.lPid, 1); + os.write(this.lValidDate, 2); + os.write(this.sNobleName, 3); + os.write(this.iNobleLevel, 4); + os.write(this.iNoblePet, 5); + os.write(this.iNobleStatus, 6); + os.write(this.iNobleType, 7); + os.write(this.iRemainDays, 8); + os.write(this.tLevelAttr, 9); + os.write(this.tPetAttr, 10); + os.write(this.lOpenTime, 11); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.lPid = is.read(this.lPid, 1, false); + this.lValidDate = is.read(this.lValidDate, 2, false); + this.sNobleName = is.read(this.sNobleName, 3, false); + this.iNobleLevel = is.read(this.iNobleLevel, 4, false); + this.iNoblePet = is.read(this.iNoblePet, 5, false); + this.iNobleStatus = is.read(this.iNobleStatus, 6, false); + this.iNobleType = is.read(this.iNobleType, 7, false); + this.iRemainDays = is.read(this.iRemainDays, 8, false); + this.tLevelAttr = (NobleLevelAttr) is.directRead(this.tLevelAttr, 9, false); + this.tPetAttr = (NoblePetAttr) is.directRead(this.tPetAttr, 10, false); + this.lOpenTime = is.read(this.lOpenTime, 11, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java new file mode 100644 index 00000000..e9199afe --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelAttr.java @@ -0,0 +1,79 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class NobleLevelAttr extends TarsStructBase { + + private int iAttrType; + private long lValidDate; + private int iAttrStatus; + private int iProgress; + private int iTask; + private int iRemainDays; + private String sReserve = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iAttrType, 0); + os.write(this.lValidDate, 1); + os.write(this.iAttrStatus, 2); + os.write(this.iProgress, 3); + os.write(this.iTask, 4); + os.write(this.iRemainDays, 5); + os.write(this.sReserve, 6); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iAttrType = is.read(this.iAttrType, 0, false); + this.lValidDate = is.read(this.lValidDate, 1, false); + this.iAttrStatus = is.read(this.iAttrStatus, 2, false); + this.iProgress = is.read(this.iProgress, 3, false); + this.iTask = is.read(this.iTask, 4, false); + this.iRemainDays = is.read(this.iRemainDays, 5, false); + this.sReserve = is.read(this.sReserve, 6, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java new file mode 100644 index 00000000..0555b658 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NobleLevelInfo.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class NobleLevelInfo extends TarsStructBase { + + private int iNobleLevel; + private int iAttrType; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iNobleLevel, 0); + os.write(this.iAttrType, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iNobleLevel = is.read(this.iNobleLevel, 0, true); + this.iAttrType = is.read(this.iAttrType, 1, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java new file mode 100644 index 00000000..a9d26187 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/NoblePetAttr.java @@ -0,0 +1,77 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class NoblePetAttr extends TarsStructBase { + + private int iPetId; + private String sPetName = ""; + private String sPetAction = ""; + private int iFrame; + private int iBeginTime; + private int iEndTime; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iPetId, 0); + os.write(this.sPetName, 1); + os.write(this.sPetAction, 2); + os.write(this.iFrame, 3); + os.write(this.iBeginTime, 4); + os.write(this.iEndTime, 5); + + } + + @Override + public void readFrom(TarsInputStream is) { + this.iPetId = is.read(this.iPetId, 0, false); + this.sPetName = is.read(this.sPetName, 1, false); + this.sPetAction = is.read(this.sPetAction, 2, false); + this.iFrame = is.read(this.iFrame, 3, false); + this.iBeginTime = is.read(this.iBeginTime, 4, false); + this.iEndTime = is.read(this.iEndTime, 5, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java new file mode 100644 index 00000000..0204bcab --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PresenterChannelInfo.java @@ -0,0 +1,82 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PresenterChannelInfo extends TarsStructBase { + + private long lYYId; + private long lTid; + private long lSid; + private int iSourceType; + private int iScreenType; + private long lUid; + private int iGameId; + private int iRoomId; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lYYId, 0); + os.write(this.lTid, 1); + os.write(this.lSid, 3); + os.write(this.iSourceType, 4); + os.write(this.iScreenType, 5); + os.write(this.lUid, 6); + os.write(this.iGameId, 7); + os.write(this.iRoomId, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lYYId = is.read(this.lYYId, 0, false); + this.lTid = is.read(this.lTid, 1, false); + this.lSid = is.read(this.lSid, 3, false); + this.iSourceType = is.read(this.iSourceType, 4, false); + this.iScreenType = is.read(this.iScreenType, 5, false); + this.lUid = is.read(this.lUid, 6, false); + this.iGameId = is.read(this.iGameId, 7, false); + this.iRoomId = is.read(this.iRoomId, 8, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java new file mode 100644 index 00000000..d017b796 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropView.java @@ -0,0 +1,70 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PropView extends TarsStructBase { + + private int id = 0; + private String name = ""; + private Map uids = new HashMap() {{ + put(-1L, (short) -1); + }}; + private String tips = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.id, 0); + os.write(this.name, 1); + os.write(this.uids, 2); + os.write(this.tips, 3); + } + + @Override + public void readFrom(TarsInputStream is) { + this.id = is.read(this.id, 0, true); + this.name = is.read(this.name, 1, true); + this.uids = is.readMap(this.uids, 2, true); + this.tips = is.read(this.tips, 3, true); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java new file mode 100644 index 00000000..ee1dba6a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsIdentity.java @@ -0,0 +1,125 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PropsIdentity extends TarsStructBase { + + private int iPropsIdType = 0; + private String sPropsPic18 = ""; + private String sPropsPic24 = ""; + private String sPropsPicGif = ""; + private String sPropsBannerResource = ""; + private String sPropsBannerSize = ""; + private String sPropsBannerMaxTime = ""; + private String sPropsChatBannerResource = ""; + private String sPropsChatBannerSize = ""; + private String sPropsChatBannerMaxTime = ""; + private int iPropsChatBannerPos = 0; + private int iPropsChatBannerIsCombo = 0; + private String sPropsRollContent = ""; + private int iPropsBannerAnimationstyle = 0; + private String sPropFaceu = ""; + private String sPropH5Resource = ""; + private String sPropsWeb = ""; + private int sWitch = 0; + private String sCornerMark = ""; + private int iPropViewId = 0; + private String sPropStreamerResource = ""; + private short iStreamerFrameRate = 0; + private String sPropsPic108 = ""; + private String sPcBannerResource = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iPropsIdType, 1); + os.write(this.sPropsPic18, 2); + os.write(this.sPropsPic24, 3); + os.write(this.sPropsPicGif, 4); + os.write(this.sPropsBannerResource, 5); + os.write(this.sPropsBannerSize, 6); + os.write(this.sPropsBannerMaxTime, 7); + os.write(this.sPropsChatBannerResource, 8); + os.write(this.sPropsChatBannerSize, 9); + os.write(this.sPropsChatBannerMaxTime, 10); + os.write(this.iPropsChatBannerPos, 11); + os.write(this.iPropsChatBannerIsCombo, 12); + os.write(this.sPropsRollContent, 13); + os.write(this.iPropsBannerAnimationstyle, 14); + os.write(this.sPropFaceu, 15); + os.write(this.sPropH5Resource, 16); + os.write(this.sPropsWeb, 17); + os.write(this.sWitch, 18); + os.write(this.sCornerMark, 19); + os.write(this.iPropViewId, 20); + os.write(this.sPropStreamerResource, 21); + os.write(this.iStreamerFrameRate, 22); + os.write(this.sPropsPic108, 23); + os.write(this.sPcBannerResource, 24); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iPropsIdType = is.read(this.iPropsIdType, 1, true); + this.sPropsPic18 = is.read(this.sPropsPic18, 2, true); + this.sPropsPic24 = is.read(this.sPropsPic24, 3, true); + this.sPropsPicGif = is.read(this.sPropsPicGif, 4, true); + this.sPropsBannerResource = is.read(this.sPropsBannerResource, 5, true); + this.sPropsBannerSize = is.read(this.sPropsBannerSize, 6, true); + this.sPropsBannerMaxTime = is.read(this.sPropsBannerMaxTime, 7, true); + this.sPropsChatBannerResource = is.read(this.sPropsChatBannerResource, 8, true); + this.sPropsChatBannerSize = is.read(this.sPropsChatBannerSize, 9, true); + this.sPropsChatBannerMaxTime = is.read(this.sPropsChatBannerMaxTime, 10, true); + this.iPropsChatBannerPos = is.read(this.iPropsChatBannerPos, 11, true); + this.iPropsChatBannerIsCombo = is.read(this.iPropsChatBannerIsCombo, 12, true); + this.sPropsRollContent = is.read(this.sPropsRollContent, 13, true); + this.iPropsBannerAnimationstyle = is.read(this.iPropsBannerAnimationstyle, 14, true); + this.sPropFaceu = is.read(this.sPropFaceu, 15, true); + this.sPropH5Resource = is.read(this.sPropH5Resource, 16, true); + this.sPropsWeb = is.read(this.sPropsWeb, 17, true); + this.sWitch = is.read(this.sWitch, 18, true); + this.sCornerMark = is.read(this.sCornerMark, 19, true); + this.iPropViewId = is.read(this.iPropViewId, 20, true); + this.sPropStreamerResource = is.read(this.sPropStreamerResource, 21, true); + this.iStreamerFrameRate = is.read(this.iStreamerFrameRate, 22, true); + this.sPropsPic108 = is.read(this.sPropsPic108, 23, true); + this.sPcBannerResource = is.read(this.sPcBannerResource, 24, true); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java new file mode 100644 index 00000000..0c53ad40 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/PropsItem.java @@ -0,0 +1,181 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class PropsItem extends TarsStructBase { + + public static final PropsItem DEFAULT = new PropsItem() {{ + setSPropsName("未知礼物"); + setIPropsYb(-1); + }}; + + private int iPropsId = 0; + private String sPropsName = ""; + private int iPropsYb = 0; + private int iPropsGreenBean = 0; + private int iPropsWhiteBean = 0; + private int iPropsGoldenBean = 0; + private int iPropsRed = 0; + private int iPropsPopular = 0; + private int iPropsExpendNum = -1; + private int iPropsFansValue = -1; + private List vPropsNum = new ArrayList() {{ + add(-1); + }}; + private int iPropsMaxNum = 0; + private int iPropsBatterFlag = 0; + private List vPropsChannel = new ArrayList() {{ + add(-1); + }}; + private String sPropsToolTip = ""; + private List vPropsIdentity = new ArrayList() {{ + add(new PropsIdentity()); + }}; + private int iPropsWeights = 0; + private int iPropsLevel = 0; + private DisplayInfo tDisplayInfo = new DisplayInfo(); + private SpecialInfo tSpecialInfo = new SpecialInfo(); + private int iPropsGrade = 0; + private int iPropsGroupNum = 0; + private String sPropsCommBannerResource = ""; + private String sPropsOwnBannerResource = ""; + private int iPropsShowFlag = 0; + private int iTemplateType = 0; + private int iShelfStatus = 0; + private String sAndroidLogo = ""; + private String sIpadLogo = ""; + private String sIphoneLogo = ""; + private String sPropsCommBannerResourceEx = ""; + private String sPropsOwnBannerResourceEx = ""; + private List vPresenterUid = new ArrayList() {{ + add(-1L); + }}; + private List vPropView = new ArrayList() {{ + add(new PropView()); + }}; + private short iFaceUSwitch = 0; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iPropsId, 1); + os.write(this.sPropsName, 2); + os.write(this.iPropsYb, 3); + os.write(this.iPropsGreenBean, 4); + os.write(this.iPropsWhiteBean, 5); + os.write(this.iPropsGoldenBean, 6); + os.write(this.iPropsRed, 7); + os.write(this.iPropsPopular, 8); + os.write(this.iPropsExpendNum, 9); + os.write(this.iPropsFansValue, 10); + os.write(this.vPropsNum, 11); + os.write(this.iPropsMaxNum, 12); + os.write(this.iPropsBatterFlag, 13); + os.write(this.vPropsChannel, 14); + os.write(this.sPropsToolTip, 15); + os.write(this.vPropsIdentity, 16); + os.write(this.iPropsWeights, 17); + os.write(this.iPropsLevel, 18); + os.write(this.tDisplayInfo, 19); + os.write(this.tSpecialInfo, 20); + os.write(this.iPropsGrade, 21); + os.write(this.iPropsGroupNum, 22); + os.write(this.sPropsCommBannerResource, 23); + os.write(this.sPropsOwnBannerResource, 24); + os.write(this.iPropsShowFlag, 25); + os.write(this.iTemplateType, 26); + os.write(this.iShelfStatus, 27); + os.write(this.sAndroidLogo, 28); + os.write(this.sIpadLogo, 29); + os.write(this.sIphoneLogo, 30); + os.write(this.sPropsCommBannerResourceEx, 31); + os.write(this.sPropsOwnBannerResourceEx, 32); + os.write(this.vPresenterUid, 33); + os.write(this.vPropView, 34); + os.write(this.iFaceUSwitch, 35); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iPropsId = is.read(this.iPropsId, 1, true); + this.sPropsName = is.read(this.sPropsName, 2, true); + this.iPropsYb = is.read(this.iPropsYb, 3, true); + this.iPropsGreenBean = is.read(this.iPropsGreenBean, 4, true); + this.iPropsWhiteBean = is.read(this.iPropsWhiteBean, 5, true); + this.iPropsGoldenBean = is.read(this.iPropsGoldenBean, 6, true); + this.iPropsRed = is.read(this.iPropsRed, 7, true); + this.iPropsPopular = is.read(this.iPropsPopular, 8, true); + this.iPropsExpendNum = is.read(this.iPropsExpendNum, 9, true); + this.iPropsFansValue = is.read(this.iPropsFansValue, 10, true); + this.vPropsNum = is.readArray(this.vPropsNum, 11, true); + this.iPropsMaxNum = is.read(this.iPropsMaxNum, 12, true); + this.iPropsBatterFlag = is.read(this.iPropsBatterFlag, 13, true); + this.vPropsChannel = is.readArray(this.vPropsChannel, 14, true); + this.sPropsToolTip = is.read(this.sPropsToolTip, 15, true); + this.vPropsIdentity = is.readArray(this.vPropsIdentity, 16, true); + this.iPropsWeights = is.read(this.iPropsWeights, 17, true); + this.iPropsLevel = is.read(this.iPropsLevel, 18, true); + this.tDisplayInfo = (DisplayInfo) is.directRead(this.tDisplayInfo, 19, true); + this.tSpecialInfo = (SpecialInfo) is.directRead(this.tSpecialInfo, 20, true); + this.iPropsGrade = is.read(this.iPropsGrade, 21, true); + this.iPropsGroupNum = is.read(this.iPropsGroupNum, 22, true); + this.sPropsCommBannerResource = is.read(this.sPropsCommBannerResource, 23, true); + this.sPropsOwnBannerResource = is.read(this.sPropsOwnBannerResource, 24, true); + this.iPropsShowFlag = is.read(this.iPropsShowFlag, 25, true); + this.iTemplateType = is.read(this.iTemplateType, 26, true); + this.iShelfStatus = is.read(this.iShelfStatus, 27, true); + this.sAndroidLogo = is.read(this.sAndroidLogo, 28, true); + this.sIpadLogo = is.read(this.sIpadLogo, 29, true); + this.sIphoneLogo = is.read(this.sIphoneLogo, 30, true); + this.sPropsCommBannerResourceEx = is.read(this.sPropsCommBannerResourceEx, 31, true); + this.sPropsOwnBannerResourceEx = is.read(this.sPropsOwnBannerResourceEx, 32, true); + this.vPresenterUid = is.readArray(this.vPresenterUid, 33, true); + this.vPropView = is.readArray(this.vPropView, 34, true); + this.iFaceUSwitch = is.read(this.iFaceUSwitch, 35, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java new file mode 100644 index 00000000..a35a6863 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SendMessageFormat.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SendMessageFormat extends TarsStructBase { + + private int iSenceType; + private long lFormatId; + private long lSizeTemplateId; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iSenceType, 0); + os.write(this.lFormatId, 1); + os.write(this.lSizeTemplateId, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iSenceType = is.read(this.iSenceType, 0, false); + this.lFormatId = is.read(this.lFormatId, 1, false); + this.lSizeTemplateId = is.read(this.lSizeTemplateId, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java new file mode 100644 index 00000000..79ef4a58 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SenderInfo.java @@ -0,0 +1,85 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SenderInfo extends TarsStructBase { + + private long lUid; + private long lImid; + private String sNickName = ""; + private int iGender; + private String sAvatarUrl; + private int iNobleLevel; + private NobleLevelInfo tNobleLevelInfo = new NobleLevelInfo(); + private String sGuid; + private String sHuYaUA; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.lImid, 1); + os.write(this.sNickName, 2); + os.write(this.iGender, 3); + os.write(this.sAvatarUrl, 4); + os.write(this.iNobleLevel, 5); + os.write(this.tNobleLevelInfo, 6); + os.write(this.sGuid, 7); + os.write(this.sHuYaUA, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, true); + this.lImid = is.read(this.lImid, 1, true); + this.sNickName = is.read(this.sNickName, 2, true); + this.iGender = is.read(this.iGender, 3, true); + this.sAvatarUrl = is.read(this.sAvatarUrl, 4, true); + this.iNobleLevel = is.read(this.iNobleLevel, 5, true); + this.tNobleLevelInfo = (NobleLevelInfo) is.directRead(this.tNobleLevelInfo, 6, true); + this.sGuid = is.read(this.sGuid, 7, true); + this.sHuYaUA = is.read(this.sHuYaUA, 8, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java new file mode 100644 index 00000000..055914c3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SpecialInfo.java @@ -0,0 +1,91 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SpecialInfo extends TarsStructBase { + + private int iFirstSingle = 0; + private int iFirstGroup = 0; + private String sFirstTips = ""; + private int iSecondSingle = 0; + private int iSecondGroup = 0; + private String sSecondTips = ""; + private int iThirdSingle = 0; + private int iThirdGroup = 0; + private String sThirdTips = ""; + private int iWorldSingle = 0; + private int iWorldGroup = 0; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.iFirstSingle, 1); + os.write(this.iFirstGroup, 2); + os.write(this.sFirstTips, 3); + os.write(this.iSecondSingle, 4); + os.write(this.iSecondGroup, 5); + os.write(this.sSecondTips, 6); + os.write(this.iThirdSingle, 7); + os.write(this.iThirdGroup, 8); + os.write(this.sThirdTips, 9); + os.write(this.iWorldSingle, 10); + os.write(this.iWorldGroup, 11); + } + + @Override + public void readFrom(TarsInputStream is) { + this.iFirstSingle = is.read(this.iFirstSingle, 1, true); + this.iFirstGroup = is.read(this.iFirstGroup, 2, true); + this.sFirstTips = is.read(this.sFirstTips, 3, true); + this.iSecondSingle = is.read(this.iSecondSingle, 4, true); + this.iSecondGroup = is.read(this.iSecondGroup, 5, true); + this.sSecondTips = is.read(this.sSecondTips, 6, true); + this.iThirdSingle = is.read(this.iThirdSingle, 7, true); + this.iThirdGroup = is.read(this.iThirdGroup, 8, true); + this.sThirdTips = is.read(this.sThirdTips, 9, true); + this.iWorldSingle = is.read(this.iWorldSingle, 10, true); + this.iWorldGroup = is.read(this.iWorldGroup, 11, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java new file mode 100644 index 00000000..cd1bd7af --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/SuperFansInfo.java @@ -0,0 +1,76 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SuperFansInfo extends TarsStructBase { + + private long lSFExpiredTS; + private int iSFFlag; + private long lSFAnnualTS; + private int iSFVariety; + private long lOpenTS; + private long lMemoryDay; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lSFExpiredTS, 0); + os.write(this.iSFFlag, 1); + os.write(this.lSFAnnualTS, 2); + os.write(this.iSFVariety, 3); + os.write(this.lOpenTS, 4); + os.write(this.lMemoryDay, 5); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lSFExpiredTS = is.read(this.lSFExpiredTS, 0, false); + this.iSFFlag = is.read(this.iSFFlag, 1, false); + this.lSFAnnualTS = is.read(this.lSFAnnualTS, 2, false); + this.iSFVariety = is.read(this.iSFVariety, 3, false); + this.lOpenTS = is.read(this.lOpenTS, 4, false); + this.lMemoryDay = is.read(this.lMemoryDay, 5, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java new file mode 100644 index 00000000..8f36cc1f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UidNickName.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UidNickName extends TarsStructBase { + + private long lUid = 0; + private String sNickName = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sNickName, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, true); + this.sNickName = is.read(this.sNickName, 1, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java new file mode 100644 index 00000000..56faee89 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserId.java @@ -0,0 +1,80 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserId extends TarsStructBase { + + private long lUid; + private String sGuid = ""; + private String sToken = ""; + private String sHuYaUA = ""; + private String sCookie = ""; + private int iTokenType; + private String sDeviceInfo = ""; + + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sGuid, 1); + os.write(this.sToken, 2); + os.write(this.sHuYaUA, 3); + os.write(this.sCookie, 4); + os.write(this.iTokenType, 5); + os.write(this.sDeviceInfo, 6); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, true); + this.sGuid = is.read(this.sGuid, 1, true); + this.sToken = is.read(this.sToken, 2, true); + this.sHuYaUA = is.read(this.sHuYaUA, 3, true); + this.sCookie = is.read(this.sCookie, 4, true); + this.iTokenType = is.read(this.iTokenType, 5, true); + this.sDeviceInfo = is.read(this.sDeviceInfo, 6, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java new file mode 100644 index 00000000..813943d9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserIdentityInfo.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/10 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserIdentityInfo extends TarsStructBase { + + private List vDecorationPrefix = CollUtil.newArrayList(new DecorationInfo()); + private List vDecorationSuffix = CollUtil.newArrayList(new DecorationInfo()); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.vDecorationPrefix, 0); + os.write(this.vDecorationSuffix, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.vDecorationPrefix = is.readArray(this.vDecorationPrefix, 0, false); + this.vDecorationSuffix = is.readArray(this.vDecorationSuffix, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java new file mode 100644 index 00000000..f74bb5a9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/UserRidePetInfo.java @@ -0,0 +1,94 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserRidePetInfo extends TarsStructBase { + + private long lPetId; + private String sPetName = ""; + private String sPetAction = ""; + private int iPetFlag; + private int iWeight; + private int iRideFlag; + private long lBeginTs; + private long lEndTs; + private int iSourceType; + private int iPetType; + private Map mPetDetail = new HashMap<>(); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lPetId, 0); + os.write(this.sPetName, 1); + os.write(this.sPetAction, 2); + os.write(this.iPetFlag, 3); + os.write(this.iWeight, 4); + os.write(this.iRideFlag, 5); + os.write(this.lBeginTs, 6); + os.write(this.lEndTs, 7); + os.write(this.iSourceType, 8); + os.write(this.iPetType, 9); + os.write(this.mPetDetail, 10); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lPetId = is.read(this.lPetId, 0, false); + this.sPetName = is.read(this.sPetName, 1, false); + this.sPetAction = is.read(this.sPetAction, 2, false); + this.iPetFlag = is.read(this.iPetFlag, 3, false); + this.iWeight = is.read(this.iWeight, 4, false); + this.iRideFlag = is.read(this.iRideFlag, 5, false); + this.lBeginTs = is.read(this.lBeginTs, 6, false); + this.lEndTs = is.read(this.lEndTs, 7, false); + this.iSourceType = is.read(this.iSourceType, 8, false); + this.iPetType = is.read(this.iPetType, 9, false); + this.mPetDetail = is.readMap(this.mPetDetail, 10, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java new file mode 100644 index 00000000..501273d6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/dto/WeekRankInfo.java @@ -0,0 +1,64 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.dto; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/12/27 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class WeekRankInfo extends TarsStructBase { + + private long lUid; + private int iRank; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.iRank, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.iRank = is.read(this.iRank, 1, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java new file mode 100644 index 00000000..81a7b3cb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetLivingInfoReq.java @@ -0,0 +1,86 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GetLivingInfoReq extends TarsStructBase { + + private UserId tId = new UserId(); + private long lTopSid; + private long lSubSid; + private long lPresenterUid; + private String sTraceSource = ""; + private String sPassword = ""; + private long iRoomId; + private int iFreeFlowFlag; + private int iIpStack; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tId, 0); + os.write(this.lTopSid, 1); + os.write(this.lSubSid, 2); + os.write(this.lPresenterUid, 3); + os.write(this.sTraceSource, 4); + os.write(this.sPassword, 5); + os.write(this.iRoomId, 6); + os.write(this.iFreeFlowFlag, 7); + os.write(this.iIpStack, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.tId = (UserId) is.directRead(this.tId, 0, false); + this.lTopSid = is.read(this.lTopSid, 1, false); + this.lSubSid = is.read(this.lSubSid, 2, false); + this.lPresenterUid = is.read(this.lPresenterUid, 3, false); + this.sTraceSource = is.read(this.sTraceSource, 4, false); + this.sPassword = is.read(this.sPassword, 5, false); + this.iRoomId = is.read(this.iRoomId, 6, false); + this.iFreeFlowFlag = is.read(this.iFreeFlowFlag, 7, false); + this.iIpStack = is.read(this.iIpStack, 8, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java new file mode 100644 index 00000000..e619dc3d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListReq.java @@ -0,0 +1,83 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GetPropsListReq extends TarsStructBase { + + private UserId tUserId = new UserId(); + private String sMd5 = ""; + private int iTemplateType; + private String sVersion = ""; + private int iAppId; + private long lPresenterUid; + private long lSid; + private long lSubSid; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tUserId, 1); + os.write(this.sMd5, 2); + os.write(this.iTemplateType, 3); + os.write(this.sVersion, 4); + os.write(this.iAppId, 5); + os.write(this.lPresenterUid, 6); + os.write(this.lSid, 7); + os.write(this.lSubSid, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + is.read(this.tUserId, 1, true); + is.read(this.sMd5, 2, true); + is.read(this.iTemplateType, 3, true); + is.read(this.sVersion, 4, true); + is.read(this.iAppId, 5, true); + is.read(this.lPresenterUid, 6, true); + is.read(this.lSid, 7, true); + is.read(this.lSubSid, 8, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java new file mode 100644 index 00000000..afc55ed9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/GetPropsListRsp.java @@ -0,0 +1,79 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author mjz + * @date 2023/10/3 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class GetPropsListRsp extends TarsStructBase { + + private List vPropsItemList = new ArrayList() {{ + add(new PropsItem()); + }}; + private String sMd5 = ""; + private short iNewEffectSwitch = 0; + private short iMirrorRoomShowNum = 0; + private short iGameRoomShowNum = 0; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.vPropsItemList, 1); + os.write(this.sMd5, 2); + os.write(this.iNewEffectSwitch, 3); + os.write(this.iMirrorRoomShowNum, 4); + os.write(this.iGameRoomShowNum, 5); + } + + @Override + public void readFrom(TarsInputStream is) { + this.vPropsItemList = is.readArray(this.vPropsItemList, 1, true); + this.sMd5 = is.read(this.sMd5, 2, true); + this.iNewEffectSwitch = is.read(this.iNewEffectSwitch, 3, true); + this.iMirrorRoomShowNum = is.read(this.iMirrorRoomShowNum, 4, true); + this.iGameRoomShowNum = is.read(this.iGameRoomShowNum, 5, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java new file mode 100644 index 00000000..eaad9830 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LaunchReq.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.DeviceInfo; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LaunchReq extends TarsStructBase { + + private long lUid; + private String sGuid = ""; + private String sUA = ""; + private String sAppSrc = ""; + private DeviceInfo tDeviceInfo = new DeviceInfo(); + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sGuid, 1); + os.write(this.sUA, 2); + os.write(this.sAppSrc, 3); + os.write(this.tDeviceInfo, 4); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, false); + this.sGuid = is.read(this.sGuid, 1, false); + this.sUA = is.read(this.sUA, 2, false); + this.sAppSrc = is.read(this.sAppSrc, 3, false); + this.tDeviceInfo = (DeviceInfo) is.directRead(this.tDeviceInfo, 4, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java new file mode 100644 index 00000000..1c4ccd89 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/LiveLaunchReq.java @@ -0,0 +1,69 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.LiveUserbase; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class LiveLaunchReq extends TarsStructBase { + + private UserId tId = new UserId(); + private LiveUserbase tLiveUB = new LiveUserbase(); + private boolean bSupportDomain; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tId, 0); + os.write(this.tLiveUB, 1); + os.write(this.bSupportDomain, 2); + } + + @Override + public void readFrom(TarsInputStream is) { + this.tId = (UserId) is.directRead(this.tId, 0, false); + this.tLiveUB = (LiveUserbase) is.directRead(this.tLiveUB, 1, false); + this.bSupportDomain = is.read(this.bSupportDomain, 2, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java new file mode 100644 index 00000000..bcb5b24f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/RegisterGroupReq.java @@ -0,0 +1,67 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class RegisterGroupReq extends TarsStructBase { + + private List vGroupId = CollUtil.newArrayList(""); + private String sToken = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.vGroupId, 0); + os.write(this.sToken, 1); + } + + @Override + public void readFrom(TarsInputStream is) { + this.vGroupId = is.readArray(this.vGroupId, 0, true); + this.sToken = is.read(this.sToken, 1, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java new file mode 100644 index 00000000..d21ebbd3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/SendMessageReq.java @@ -0,0 +1,99 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import cn.hutool.core.collection.CollUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.*; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class SendMessageReq extends TarsStructBase { + + private UserId tUserId = new UserId(); + private long lTid; + private long lSid; + private String sContent = ""; + private int iShowMode; + private ContentFormat tFormat = new ContentFormat(); + private BulletFormat tBulletFormat = new BulletFormat(); + private List vAtSomeone; + private long lPid; + private List vTagInfo = CollUtil.newArrayList(new MessageTagInfo()); + private SendMessageFormat tSenceFormat = new SendMessageFormat(); + private int iMessageMode; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tUserId, 0); + os.write(this.lTid, 1); + os.write(this.lSid, 2); + os.write(this.sContent, 3); + os.write(this.iShowMode, 4); + os.write(this.tFormat, 5); + os.write(this.tBulletFormat, 6); + os.write(this.vAtSomeone, 7); + os.write(this.lPid, 8); + os.write(this.vTagInfo, 9); + os.write(this.tSenceFormat, 10); + os.write(this.iMessageMode, 11); + + } + + @Override + public void readFrom(TarsInputStream is) { + this.tUserId = (UserId) is.directRead(this.tUserId, 0, false); + this.lTid = is.read(this.lTid, 1, false); + this.lSid = is.read(this.lSid, 2, false); + this.sContent = is.read(this.sContent, 3, false); + this.iShowMode = is.read(this.iShowMode, 4, false); + this.tFormat = (ContentFormat) is.directRead(this.tFormat, 5, false); + this.tBulletFormat = (BulletFormat) is.directRead(this.tBulletFormat, 6, false); + this.vAtSomeone = is.readArray(this.vAtSomeone, 7, false); + this.lPid = is.read(this.lPid, 8, false); + this.vTagInfo = is.readArray(this.vTagInfo, 9, false); + this.tSenceFormat = (SendMessageFormat) is.directRead(this.tSenceFormat, 10, false); + this.iMessageMode = is.read(this.iMessageMode, 11, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java new file mode 100644 index 00000000..0a621f93 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UpdateUserInfoReq.java @@ -0,0 +1,87 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgStatInfo; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UpdateUserInfoReq extends TarsStructBase { + + private String sAppSrc = ""; + private String sGuid = ""; + private int iReportMsgIdRatio; + private int iSupportAck; + private MsgStatInfo tWSMsgStatInfo = new MsgStatInfo(); + private Map mCustomHeader = new HashMap<>(); + private int iMsgDegradeLevel; + + public UpdateUserInfoReq(TarsInputStream is) { + this.readFrom(is); + } + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.sAppSrc, 0); + os.write(this.sGuid, 1); + os.write(this.iReportMsgIdRatio, 2); + os.write(this.iSupportAck, 3); + os.write(this.tWSMsgStatInfo, 6); + os.write(this.mCustomHeader, 7); + os.write(this.iMsgDegradeLevel, 8); + } + + @Override + public void readFrom(TarsInputStream is) { + this.sAppSrc = is.read(this.sAppSrc, 0, true); + this.sGuid = is.read(this.sGuid, 1, true); + this.iReportMsgIdRatio = is.read(this.iReportMsgIdRatio, 2, true); + this.iSupportAck = is.read(this.iSupportAck, 3, true); + this.tWSMsgStatInfo = (MsgStatInfo) is.directRead(this.tWSMsgStatInfo, 6, true); + this.mCustomHeader = is.readStringMap( 7, true); + this.iMsgDegradeLevel = is.read(this.iMsgDegradeLevel, 8, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java new file mode 100644 index 00000000..a0293665 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/UserHeartBeatReq.java @@ -0,0 +1,90 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; + +/** + * @author mjz + * @date 2023/10/2 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UserHeartBeatReq extends TarsStructBase { + + private UserId tId = new UserId(); + private long lTid; + private long lSid; + private long lPid; + private boolean bWatchVideo; + private int eLineType; + private int iFps; + private int iAttendee; + private int iBandwidth; + private int iLastHeartElapseTime; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.tId, 0); + os.write(this.lTid, 1); + os.write(this.lSid, 2); + os.write(this.lPid, 4); + os.write(this.bWatchVideo, 5); + os.write(this.eLineType, 6); + os.write(this.iFps, 7); + os.write(this.iAttendee, 8); + os.write(this.iBandwidth, 9); + os.write(this.iLastHeartElapseTime, 10); + + } + + @Override + public void readFrom(TarsInputStream is) { + this.tId = (UserId) is.directRead(this.tId, 0, false); + this.lTid = is.read(this.lTid, 1, false); + this.lSid = is.read(this.lSid, 2, false); + this.lPid = is.read(this.lPid, 4, false); + this.bWatchVideo = is.read(this.bWatchVideo, 5, false); + this.eLineType = is.read(this.eLineType, 6, false); + this.iFps = is.read(this.iFps, 7, false); + this.iAttendee = is.read(this.iAttendee, 8, false); + this.iBandwidth = is.read(this.iBandwidth, 9, false); + this.iLastHeartElapseTime = is.read(this.iLastHeartElapseTime, 10, false); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java new file mode 100644 index 00000000..cea49ccd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/VerifyCookieReq.java @@ -0,0 +1,76 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsOutputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @author mjz + * @date 2023/10/5 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class VerifyCookieReq extends TarsStructBase { + + private long lUid; + private String sUA = ""; + private String sCookie = ""; + private String sGuid = ""; + private int bAutoRegisterUid; + private String sAppSrc = ""; + + @Override + public void writeTo(TarsOutputStream os) { + os.write(this.lUid, 0); + os.write(this.sUA, 1); + os.write(this.sCookie, 2); + os.write(this.sGuid, 3); + os.write(this.bAutoRegisterUid, 4); + os.write(this.sAppSrc, 5); + } + + @Override + public void readFrom(TarsInputStream is) { + this.lUid = is.read(this.lUid, 0, true); + this.sUA = is.read(this.sUA, 1, true); + this.sCookie = is.read(this.sCookie, 2, true); + this.sGuid = is.read(this.sGuid, 3, true); + this.bAutoRegisterUid = is.read(this.bAutoRegisterUid, 4, true); + this.sAppSrc = is.read(this.sAppSrc, 5, true); + } + + @Override + public TarsStructBase newInit() { + return this; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java new file mode 100644 index 00000000..90fe256f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/msg/req/WupReq.java @@ -0,0 +1,42 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.msg.req; + +import lombok.NoArgsConstructor; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.BaseWup; + +/** + * @author mjz + * @date 2023/10/3 + */ +@NoArgsConstructor +public class WupReq extends BaseWup { + + @Override + public HuyaOperationEnum getOperationEnum() { + return HuyaOperationEnum.EWSCmd_WupReq; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java new file mode 100644 index 00000000..2c21b346 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/frame/factory/HuyaWebSocketFrameFactory.java @@ -0,0 +1,271 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.netty.frame.factory; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.databind.JsonNode; +import io.netty.buffer.Unpooled; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; +import tech.ordinaryroad.live.chat.client.huya.api.HuyaApis; +import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaClientTemplateTypeEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaLiveSource; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.WebSocketCommand; +import tech.ordinaryroad.live.chat.client.huya.msg.req.*; +import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; + +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author mjz + * @date 2023/1/5 + */ +public class HuyaWebSocketFrameFactory { + + private static final ConcurrentHashMap CACHE = new ConcurrentHashMap<>(); + public static final String KEY_COOKIE_GUID = "guid"; + public static final String KEY_COOKIE_YYUID = "yyuid"; + + /** + * 浏览器地址中的房间id,支持短id + */ + private final Object roomId; + private final JsonNode roomInfo; + private volatile static byte[] heartbeatMsg; + private volatile static byte[] giftListReqMsg; + + public HuyaWebSocketFrameFactory(Object roomId) { + this.roomId = roomId; + this.roomInfo = HuyaApis.roomInit(roomId); + } + + public synchronized static HuyaWebSocketFrameFactory getInstance(Object roomId) { + return CACHE.computeIfAbsent(roomId, aLong -> new HuyaWebSocketFrameFactory(roomId)); + } + + /** + * 创建弹幕包 + * + * @param msg 弹幕内容 + * @param ver {@link HuyaLiveChatClientConfig#getVer()} + * @param cookie {@link HuyaLiveChatClientConfig#getCookie()} ()} + * @return BinaryWebSocketFrame + */ + public BinaryWebSocketFrame createSendMessageReq(String msg, String ver, String cookie) { + String yyuid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_YYUID, () -> { + throw new BaseException("cookie中缺少参数" + KEY_COOKIE_YYUID); + }); + String guid = OrLiveChatCookieUtil.getCookieByName(cookie, KEY_COOKIE_GUID, () -> { + throw new BaseException("cookie中缺少参数" + KEY_COOKIE_GUID); + }); + SendMessageReq sendMessageReq = new SendMessageReq(); + sendMessageReq.getTUserId().setLUid(NumberUtil.parseLong(yyuid)); + sendMessageReq.getTUserId().setSGuid(guid); + sendMessageReq.getTUserId().setSHuYaUA("webh5&" + ver + "&websocket"); + sendMessageReq.getTUserId().setSCookie(cookie); + sendMessageReq.getTUserId().setSDeviceInfo("chrome"); + sendMessageReq.setSContent(msg); + sendMessageReq.setLPid(roomInfo.get("lChannelId").asLong()); + + WupReq wupReq = new WupReq(); + wupReq.getTarsServantRequest().setServantName("liveui"); + wupReq.getTarsServantRequest().setFunctionName("sendMessage"); + wupReq.getUniAttribute().put("tReq", sendMessageReq); + + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); + webSocketCommand.setVData(wupReq.encode()); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + /** + * 创建认证包 + * 1. doLaunch + * 2. registerGroup + * 3. updateUserInfo + * + * @return AuthWebSocketFrame + */ + public BinaryWebSocketFrame createAuth(String ver, String cookie) { + // sFuncName + // getLivingInfo, huyaliveui + // getPresenterLiveScheduleInfo, presenterui + // doLaunch, liveui + // chat:1724691, live:1724691 + // getWebdbUserInfo, liveui + // OnUserHeartBeat, onlineuif +// try { +// UserInfo wsUserInfo = new UserInfo(); +// wsUserInfo.setLUid(roomInfo.get("lYyid").asLong()); +// wsUserInfo.setBAnonymous(roomInfo.get("lYyid").asLong() == 0); +// wsUserInfo.setLTid(roomInfo.get("lChannelId").asLong()); +// wsUserInfo.setLSid(roomInfo.get("lSubChannelId").asLong()); +// wsUserInfo.setLGroupId(roomInfo.get("lYyid").asLong()); +// wsUserInfo.setLGroupType(3); +// wsUserInfo.setSAppId(""); +// wsUserInfo.setSUA("webh5&%s&websocket".formatted(HuyaLiveChatClientConfig.VER)); +// +// WebSocketCommand webSocketCommand = new WebSocketCommand(); +// webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_RegisterReq.getCode()); +// webSocketCommand.setVData(wsUserInfo.toByteArray()); +// return new AuthWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); +// } catch (Exception e) { +// throw new BaseException("认证包创建失败,请检查房间号是否正确。roomId: %d, msg: %s".formatted(roomId, e.getMessage())); +// } + return createLiveLaunchReq(ver, cookie); + } + + public BinaryWebSocketFrame createGetLivingInfoReq(String ver, String cookie) { + GetLivingInfoReq getLivingInfoReq = new GetLivingInfoReq(); +// getLivingInfoReq.getTId().setSGuid("0a7dca72a3ce1b654001dd2ade2ae857"); + getLivingInfoReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); + getLivingInfoReq.getTId().setSDeviceInfo("chrome"); + getLivingInfoReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); +// getLivingInfoReq.getTId().setSCookie("vplayer_sbanner_1724691_1724691=1; SoundValue=0.50; alphaValue=0.80; game_did=R24J2g0mBzvdXJf7a9nheSl3zIci2BOp0-t; isInLiveRoom=true; guid=0a7dca72a3ce1b654001dd2ade2ae857; __yamid_tt1=0.8029935065011269; __yamid_new=CA75D4CD5C100001165B82B52140C900; guid=0a7dca72a3ce1b654001dd2ade2ae857; udb_guiddata=af5dbdbf76254a6e8a0a293ccae9b688; udb_deviceid=w_761623483861815296; udb_passdata=3; __yasmid=0.8029935065011269; _yasids=__rootsid%3DCA767045C1100001EC5A145C1E90FE00; Hm_lvt_51700b6c722f5bb4cf39906a596ea41f=1696473760,1696476745,1696483565,1696484212; Hm_lpvt_51700b6c722f5bb4cf39906a596ea41f=1696484212; huya_ua=webh5&0.0.1&activity; _rep_cnt=2; sdid=0UnHUgv0/qmfD4KAKlwzhqX98QrnPCcck6fN494iawS5Kmymgreu89o7gYta/QvQsBDeSeSRp4/grQ5fEuFAYrL59coAKuxuukiwgTLjfjEDWVkn9LtfFJw/Qo4kgKr8OZHDqNnuwg612sGyflFn1dkUeZYTToCzzl4GCHq7MUDahxGuPR8mUddfImFtjccs1; huya_flash_rep_cnt=74; huya_web_rep_cnt=125; rep_cnt=44"); + getLivingInfoReq.setLPresenterUid(roomInfo.get("lChannelId").asLong()); + + WupReq wupReq = new WupReq(); + wupReq.getTarsServantRequest().setServantName("huyaliveui"); + wupReq.getTarsServantRequest().setFunctionName("getLivingInfo"); + wupReq.getUniAttribute().put("tReq", getLivingInfoReq); + + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); + webSocketCommand.setVData(wupReq.encode()); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + public BinaryWebSocketFrame createLiveLaunchReq(String ver, String cookie) { + LiveLaunchReq liveLaunchReq = new LiveLaunchReq(); + liveLaunchReq.setBSupportDomain(true); +// liveLaunchReq.getTId().setSGuid(UUID.fastUUID().toString(true)); + liveLaunchReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); + liveLaunchReq.getTId().setSDeviceInfo("chrome"); + liveLaunchReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); + liveLaunchReq.getTLiveUB().setESource(HuyaLiveSource.WEB_HUYA.getCode()); + + WupReq wupReq = new WupReq(); + wupReq.getTarsServantRequest().setServantName("liveui"); + wupReq.getTarsServantRequest().setFunctionName("doLaunch"); + wupReq.getUniAttribute().put("tReq", liveLaunchReq); + + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); + webSocketCommand.setVData(wupReq.encode()); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + public BinaryWebSocketFrame createRegisterGroupReq() { + String lYyid = roomInfo.get("lChannelId").asText(); + + RegisterGroupReq registerGroupReq = new RegisterGroupReq(); + registerGroupReq.setVGroupId(CollUtil.newArrayList("live:" + lYyid, "chat:" + lYyid)); + + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_RegisterGroupReq.getCode()); + webSocketCommand.setVData(registerGroupReq.toByteArray()); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + public BinaryWebSocketFrame createUpdateUserInfoReq() { + UpdateUserInfoReq updateUserInfoReq = new UpdateUserInfoReq(); + updateUserInfoReq.setSAppSrc("HUYA&ZH&2052"); + updateUserInfoReq.getTWSMsgStatInfo().setISupportAckMsgStat(1); + + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_UpdateUserInfoReq.getCode()); + webSocketCommand.setVData(updateUserInfoReq.toByteArray()); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + /** + * 创建获取礼物列表请求包 + * + * @return BinaryWebSocketFrame + */ + public BinaryWebSocketFrame createGiftListReq(String ver) { + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmd_WupReq.getCode()); + webSocketCommand.setVData(this.getGiftListReqMsg(ver)); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + public BinaryWebSocketFrame createHeartbeat(String ver, String cookie) { + WebSocketCommand webSocketCommand = new WebSocketCommand(); + webSocketCommand.setOperation(HuyaOperationEnum.EWSCmdC2S_HeartBeatReq.getCode()); + webSocketCommand.setVData(this.getHeartbeatMsg(ver, cookie)); + return new BinaryWebSocketFrame(Unpooled.wrappedBuffer(webSocketCommand.toByteArray())); + } + + /** + * 心跳包单例模式 + */ + public byte[] getHeartbeatMsg(String ver, String cookie) { + if (heartbeatMsg == null) { + synchronized (HuyaWebSocketFrameFactory.this) { + if (heartbeatMsg == null) { + UserHeartBeatReq userHeartBeatReq = new UserHeartBeatReq(); +// userHeartBeatReq.getTId().setSGuid(""); + userHeartBeatReq.getTId().setSHuYaUA("webh5&" + ver + "&websocket"); + userHeartBeatReq.getTId().setSDeviceInfo("chrome"); + userHeartBeatReq.getTId().setSCookie(StrUtil.nullToEmpty(cookie)); +// userHeartBeatReq.setLSid(roomInfo.get("lSubChannelId").asLong()); + userHeartBeatReq.setLPid(roomInfo.get("lChannelId").asLong()); +// userHeartBeatReq.setELineType(HuyaStreamLineTypeEnum.STREAM_LINE_WS.getCode()); + userHeartBeatReq.setELineType(-1); + + heartbeatMsg = HuyaCodecUtil.encode("onlineui", HuyaWupFunctionEnum.OnUserHeartBeat, userHeartBeatReq); + } + } + } + return heartbeatMsg; + } + + /** + * 礼物列表请求包单例模式 + */ + public byte[] getGiftListReqMsg(String ver) { + if (giftListReqMsg == null) { + synchronized (HuyaWebSocketFrameFactory.this) { + if (giftListReqMsg == null) { + GetPropsListReq getPropsListReq = new GetPropsListReq(); + getPropsListReq.getTUserId().setLUid(roomInfo.get("lYyid").asLong()); + getPropsListReq.getTUserId().setSHuYaUA("webh5&" + ver + "&websocket"); + getPropsListReq.setITemplateType(HuyaClientTemplateTypeEnum.TPL_MIRROR.getCode()); + + giftListReqMsg = HuyaCodecUtil.encode("PropsUIServer", HuyaWupFunctionEnum.getPropsList, getPropsListReq); + } + } + } + return giftListReqMsg; + } + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java new file mode 100644 index 00000000..81a4f436 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaBinaryFrameHandler.java @@ -0,0 +1,199 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.netty.handler; + +import com.qq.tars.protocol.tars.TarsInputStream; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.huya.api.HuyaApis; +import tech.ordinaryroad.live.chat.client.huya.client.HuyaLiveChatClient; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; +import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; +import tech.ordinaryroad.live.chat.client.huya.msg.*; +import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.MsgItem; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.PropsItem; +import tech.ordinaryroad.live.chat.client.huya.msg.req.GetPropsListRsp; +import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.huya.util.HuyaCodecUtil; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; + +import java.util.List; + + +/** + * 消息处理器 + * + * @author mjz + * @date 2023/9/5 + */ +@Slf4j +@ChannelHandler.Sharable +public class HuyaBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { + + /** + * 以ClientConfig为主 + */ + private final String ver; + private ChannelHandlerContext channelHandlerContext; + + public HuyaBinaryFrameHandler(List iHuyaMsgListeners, HuyaLiveChatClient client, long roomId) { + super(iHuyaMsgListeners, client, roomId); + this.ver = client.getConfig().getVer(); + } + + public HuyaBinaryFrameHandler(List iHuyaMsgListeners, HuyaLiveChatClient client) { + super(iHuyaMsgListeners, client); + this.ver = client.getConfig().getVer(); + } + + public HuyaBinaryFrameHandler(List iHuyaMsgListeners, long roomId, String ver) { + super(iHuyaMsgListeners, roomId); + this.ver = ver; + } + + @Override + public void handlerAdded(ChannelHandlerContext ctx) throws Exception { + super.handlerAdded(ctx); + channelHandlerContext = ctx; + } + + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + super.handlerRemoved(ctx); + channelHandlerContext = null; + } + + @Override + public void onMsg(IMsg msg) { + IHuyaMsg iHuyaMsg = (IHuyaMsg) msg; + HuyaOperationEnum operationEnum = iHuyaMsg.getOperationEnum(); + if (operationEnum == HuyaOperationEnum.EWSCmdS2C_RegisterGroupRsp) { +// channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createUpdateUserInfoReq()); + // 获取礼物列表 +// if (channelHandlerContext == null) { +// log.error("channelHandlerContext is null, cannot get gift list"); +// return; +// } +// if (log.isDebugEnabled()) { +// log.debug("获取礼物列表"); +// } + channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createGiftListReq(getVer())); + } else if (operationEnum == HuyaOperationEnum.EWSCmd_WupRsp) { + WupRsp wupRsp = (WupRsp) msg; + String functionName = wupRsp.getTarsServantRequest().getFunctionName(); + HuyaWupFunctionEnum wupFunctionEnum = HuyaWupFunctionEnum.getByName(functionName); + if (wupFunctionEnum == null) { + if (log.isWarnEnabled()) { + log.warn("未知 function {}", functionName); + } + return; + } + + switch (wupFunctionEnum) { + case doLaunch: { +// LiveLaunchRsp liveLaunchRsp = new LiveLaunchRsp(); +// liveLaunchRsp = wupRsp.getUniAttribute().getByClass("tRsp", liveLaunchRsp); + channelHandlerContext.writeAndFlush(HuyaWebSocketFrameFactory.getInstance(getRoomId()).createRegisterGroupReq()); + break; + } + case getPropsList: { + GetPropsListRsp getPropsListRsp = new GetPropsListRsp(); + getPropsListRsp = wupRsp.getUniAttribute().getByClass("tRsp", getPropsListRsp); + for (PropsItem propsItem : getPropsListRsp.getVPropsItemList()) { + HuyaApis.GIFT_ITEMS.put(propsItem.getIPropsId(), propsItem); + } + break; + } + default: { + if (log.isDebugEnabled()) { + log.debug("暂不支持 function {}", wupFunctionEnum); + } + } + } + } else { + // ignore + } + } + + @Override + public void onCmdMsg(HuyaCmdEnum cmd, ICmdMsg cmdMsg) { + if (super.msgListeners.isEmpty()) { + return; + } + + byte[] dataBytes; + if (cmdMsg instanceof PushMessage) { + PushMessage pushMessage = (PushMessage) cmdMsg; + dataBytes = pushMessage.getDataBytes(); + } else if (cmdMsg instanceof MsgItem) { + MsgItem msgItem = (MsgItem) cmdMsg; + dataBytes = msgItem.getSMsg(); + } else { + if (log.isDebugEnabled()) { + log.debug("非HuyaCmdMsg {}", cmdMsg.getClass()); + } + return; + } + TarsInputStream tarsInputStream = HuyaCodecUtil.newUtf8TarsInputStream(dataBytes); + + switch (cmd) { + case MessageNotice: { + MessageNoticeMsg messageNoticeMsg = new MessageNoticeMsg(tarsInputStream); + iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(HuyaBinaryFrameHandler.this, messageNoticeMsg)); + break; + } + case SendItemSubBroadcastPacket: { + SendItemSubBroadcastPacketMsg sendItemSubBroadcastPacketMsg = new SendItemSubBroadcastPacketMsg(tarsInputStream); + sendItemSubBroadcastPacketMsg.setPropsItem(HuyaApis.GIFT_ITEMS.getOrDefault(sendItemSubBroadcastPacketMsg.getIItemType(), PropsItem.DEFAULT)); + iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(HuyaBinaryFrameHandler.this, sendItemSubBroadcastPacketMsg)); + break; + } + case VipEnterBanner: { + VipEnterBannerMsg vipEnterBannerMsg = new VipEnterBannerMsg(tarsInputStream); + iteratorMsgListeners(msgListener -> msgListener.onEnterRoomMsg(HuyaBinaryFrameHandler.this, vipEnterBannerMsg)); + break; + } + default: { + iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(HuyaBinaryFrameHandler.this, cmd, cmdMsg)); + } + } + } + + public String getVer() { + return client != null ? client.getConfig().getVer() : ver; + } + + @Override + protected List decode(ByteBuf byteBuf) { + return HuyaCodecUtil.decode(byteBuf); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java new file mode 100644 index 00000000..ad052fcd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/netty/handler/HuyaConnectionHandler.java @@ -0,0 +1,152 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.netty.handler; + +import io.netty.channel.Channel; +import io.netty.channel.ChannelFutureListener; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.huya.client.HuyaLiveChatClient; +import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.huya.netty.frame.factory.HuyaWebSocketFrameFactory; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; + + +/** + * 连接处理器 + * + * @author mjz + * @date 2023/8/21 + */ +@Slf4j +@ChannelHandler.Sharable +public class HuyaConnectionHandler extends BaseNettyClientConnectionHandler { + + /** + * 以ClientConfig为主 + */ + private final Object roomId; + /** + * 以ClientConfig为主 + */ + private final String ver; + /** + * 以ClientConfig为主 + */ + private String cookie; + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, HuyaLiveChatClient client, IBaseConnectionListener listener) { + super(handshaker, client, listener); + this.roomId = client.getConfig().getRoomId(); + this.ver = client.getConfig().getVer(); + this.cookie = client.getConfig().getCookie(); + } + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, HuyaLiveChatClient client) { + this(handshaker, client, null); + } + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, IBaseConnectionListener listener, String cookie) { + super(handshaker, listener); + this.roomId = roomId; + this.ver = ver; + this.cookie = cookie; + } + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, IBaseConnectionListener listener) { + this(handshaker, roomId, ver, listener, null); + } + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver, String cookie) { + this(handshaker, roomId, ver, null, cookie); + } + + public HuyaConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, String ver) { + this(handshaker, roomId, ver, null, null); + } + + @Override + protected void sendHeartbeat(ChannelHandlerContext ctx) { + if (log.isDebugEnabled()) { + log.debug("发送心跳包"); + } + ctx.writeAndFlush( + getWebSocketFrameFactory(getRoomId()).createHeartbeat(getVer(), getCookie()) + ).addListener((ChannelFutureListener) future -> { + if (future.isSuccess()) { + if (log.isDebugEnabled()) { + log.debug("心跳包发送完成"); + } + } else { + log.error("心跳包发送失败", future.cause()); + } + }); + } + + private static HuyaWebSocketFrameFactory getWebSocketFrameFactory(Object roomId) { + return HuyaWebSocketFrameFactory.getInstance(roomId); + } + + @Override + public void sendAuthRequest(Channel channel) { + if (log.isDebugEnabled()) { + log.debug("发送认证包"); + } + channel.writeAndFlush(getWebSocketFrameFactory(getRoomId()).createAuth(getVer(), getCookie())); + } + + public Object getRoomId() { + return client != null ? client.getConfig().getRoomId() : roomId; + } + + public String getVer() { + return client != null ? client.getConfig().getVer() : ver; + } + + private String getCookie() { + return client != null ? client.getConfig().getCookie() : cookie; + } + + @Override + protected long getHeartbeatPeriod() { + if (client == null) { + return HuyaLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; + } else { + return client.getConfig().getHeartbeatPeriod(); + } + } + + @Override + protected long getHeartbeatInitialDelay() { + if (client == null) { + return HuyaLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; + } else { + return client.getConfig().getHeartbeatInitialDelay(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java new file mode 100644 index 00000000..e5b479ea --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/main/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtil.java @@ -0,0 +1,167 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.util; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ByteUtil; +import com.qq.tars.protocol.tars.TarsInputStream; +import com.qq.tars.protocol.tars.TarsStructBase; +import io.netty.buffer.ByteBuf; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaDecorationAppTypeEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaDecorationViewTypeEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaOperationEnum; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaWupFunctionEnum; +import tech.ordinaryroad.live.chat.client.huya.msg.*; +import tech.ordinaryroad.live.chat.client.huya.msg.base.IHuyaMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.BadgeInfo; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.DecorationInfo; +import tech.ordinaryroad.live.chat.client.huya.msg.req.WupReq; + +import java.nio.charset.StandardCharsets; +import java.util.*; + +/** + * @author mjz + * @date 2023/9/5 + */ +@Slf4j +public class HuyaCodecUtil { + + public static List decode(ByteBuf in) { + List msgList = new ArrayList<>(); + Queue pendingByteBuf = new LinkedList<>(); + + do { + msgList.addAll(doDecode(in, pendingByteBuf)); + in = pendingByteBuf.poll(); + } while (in != null); + + return msgList; + } + + /** + * 执行解码操作,有压缩则先解压,解压后可能得到多条消息 + * + * @param in handler收到的一条消息 + * @param pendingByteBuf 用于存放未读取完的ByteBuf + */ + private static List doDecode(ByteBuf in, Queue pendingByteBuf) { + byte[] bytes = new byte[in.readableBytes()]; + in.readBytes(bytes); + + WebSocketCommand webSocketCommand = new WebSocketCommand(newUtf8TarsInputStream(bytes)); + HuyaOperationEnum operationEnum = webSocketCommand.getOperationEnum(); + if (operationEnum == null) { + throw new BaseException(String.format("未知operation: %d", webSocketCommand.getOperation())); + } + + switch (operationEnum) { + case EWSCmd_RegisterRsp: { + return Collections.singletonList(new RegisterRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); + } + case EWSCmdS2C_RegisterGroupRsp: { + return Collections.singletonList(new RegisterGroupRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); + } + case EWSCmd_WupRsp: { + return Collections.singletonList(new WupRsp(webSocketCommand.getVData())); + } + case EWSCmdS2C_MsgPushReq: { + return Collections.singletonList(new PushMessage(newUtf8TarsInputStream(webSocketCommand.getVData()))); + } + case EWSCmdS2C_VerifyCookieRsp: { + return Collections.singletonList(new VerifyCookieRsp(newUtf8TarsInputStream(webSocketCommand.getVData()))); + } + case EWSCmdS2C_MsgPushReq_V2: { + PushMessage_V2 pushMessageV2 = new PushMessage_V2(newUtf8TarsInputStream(webSocketCommand.getVData())); + return pushMessageV2.getVMsgItem(); + } + default: { + return Collections.singletonList(webSocketCommand); + } + } + } + + public static byte[] encode(String servantName, HuyaWupFunctionEnum function, TarsStructBase req) { + WupReq wupReq = new WupReq(); + wupReq.getTarsServantRequest().setServantName(servantName); + wupReq.getTarsServantRequest().setFunctionName(function.name()); + wupReq.getUniAttribute().put("tReq", req); + return wupReq.encode(); + } + + public static TarsInputStream newUtf8TarsInputStream(byte[] bytes) { + TarsInputStream tarsInputStream = new TarsInputStream(bytes); + tarsInputStream.setServerEncoding(StandardCharsets.UTF_8.name()); + return tarsInputStream; + } + + public static Optional decodeDecorationInfo(DecorationInfo decorationInfo) { + int iViewType = decorationInfo.getIViewType(); + HuyaDecorationViewTypeEnum huyaDecorationViewTypeEnum = HuyaDecorationViewTypeEnum.getByCode(iViewType); + if (huyaDecorationViewTypeEnum == null) { + return Optional.empty(); + } + + switch (huyaDecorationViewTypeEnum) { + case kDecorationViewTypeCustomized: { + int iAppId = decorationInfo.getIAppId(); + HuyaDecorationAppTypeEnum huyaDecorationAppTypeEnum = HuyaDecorationAppTypeEnum.getByCode(iAppId); + if (huyaDecorationAppTypeEnum == null) { + return Optional.empty(); + } + + switch (huyaDecorationAppTypeEnum) { + case kDecorationAppTypeFans: { + BadgeInfo badgeInfo = new BadgeInfo(); + badgeInfo.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(decorationInfo.getVData())); + return Optional.of(badgeInfo); + } + default: { + return Optional.empty(); + } + } + } + default: { + return Optional.empty(); + } + } + } + + public static String ab2str(byte[] bytes) { + char[] chars = new char[bytes.length]; + for (int i = 0; i < bytes.length; i++) { + int unsignedInt = ByteUtil.byteToUnsignedInt(bytes[i]); + chars[i] = (char) unsignedInt; + } + return ArrayUtil.join(chars, ""); + } + + public static String btoa(String string) { + return Base64.encode(string); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java new file mode 100644 index 00000000..3de00e25 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/api/HuyaApisTest.java @@ -0,0 +1,20 @@ +package tech.ordinaryroad.live.chat.client.huya.api; + +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +/** + * @author mjz + * @date 2023/10/1 + */ +class HuyaApisTest { + + @Test + void roomInit() { + assertEquals(HuyaApis.roomInit(189201).size(), 3); + assertThrows(BaseException.class, () -> HuyaApis.roomInit(-1)); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java new file mode 100644 index 00000000..e8b83892 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/client/HuyaLiveChatClientTest.java @@ -0,0 +1,150 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.huya.client; + +import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.huya.config.HuyaLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.huya.constant.HuyaCmdEnum; +import tech.ordinaryroad.live.chat.client.huya.listener.IHuyaMsgListener; +import tech.ordinaryroad.live.chat.client.huya.msg.MessageNoticeMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.SendItemSubBroadcastPacketMsg; +import tech.ordinaryroad.live.chat.client.huya.msg.VipEnterBannerMsg; +import tech.ordinaryroad.live.chat.client.huya.netty.handler.HuyaBinaryFrameHandler; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * @author mjz + * @date 2023/9/5 + */ +@Slf4j +class HuyaLiveChatClientTest { + + static Object lock = new Object(); + HuyaLiveChatClient client; + + @Test + void example() throws InterruptedException { + HuyaLiveChatClientConfig config = HuyaLiveChatClientConfig.builder() + .roomId(353322) + .roomId(390001) + .roomId(527988) + .roomId(1995) + .roomId(116) + // bagea + .roomId(189201) + .build(); + + client = new HuyaLiveChatClient(config, new IHuyaMsgListener() { + @Override + public void onDanmuMsg(HuyaBinaryFrameHandler binaryFrameHandler, MessageNoticeMsg msg) { + log.info("{} 收到弹幕 {} {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(HuyaBinaryFrameHandler binaryFrameHandler, SendItemSubBroadcastPacketMsg msg) { + long lPayTotal = msg.getLPayTotal(); + if (lPayTotal != 0) { + int giftPrice = msg.getGiftPrice(); + } + log.info("{} 收到礼物 {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); + } + + @Override + public void onEnterRoomMsg(HuyaBinaryFrameHandler binaryFrameHandler, VipEnterBannerMsg msg) { + // 虎牙目前只支持监听VIP用户的入房消息 + log.info("{} {}({}) 进入直播间", msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + + @Override + public void onMsg(HuyaBinaryFrameHandler binaryFrameHandler, IMsg msg) { + log.debug("{} 收到{}消息 {}", binaryFrameHandler.getRoomId(), msg.getClass(), msg); + } + + @Override + public void onCmdMsg(HuyaBinaryFrameHandler binaryFrameHandler, HuyaCmdEnum cmd, ICmdMsg cmdMsg) { + log.info("{} 收到CMD消息{} {}", binaryFrameHandler.getRoomId(), cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(HuyaBinaryFrameHandler binaryFrameHandler, HuyaCmdEnum cmd, ICmdMsg cmdMsg) { + log.debug("{} 收到其他CMD消息 {}", binaryFrameHandler.getRoomId(), cmd); + } + + @Override + public void onUnknownCmd(HuyaBinaryFrameHandler binaryFrameHandler, String cmdString, IMsg msg) { + log.debug("{} 收到未知CMD消息 {}", binaryFrameHandler.getRoomId(), cmdString); + } + }); + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void sendDanmuTest() throws InterruptedException { + String cookie = System.getenv("cookie"); + assertTrue(StrUtil.isNotBlank(cookie)); + log.error("cookie: {}", cookie); + + HuyaLiveChatClientConfig config = HuyaLiveChatClientConfig.builder() + .cookie(cookie) + .roomId(189201) + .build(); + + client = new HuyaLiveChatClient(config); + client.connect(() -> { + String danmu = "66666" + RandomUtil.randomNumber(); + log.info("连接成功,5s后发送弹幕{}", danmu); + ThreadUtil.sleep(5000); + client.sendDanmu(danmu); + }); + client.addMsgListener(new IHuyaMsgListener() { + @Override + public void onMsg(IMsg msg) { + log.info("收到消息{}", msg); + } + }); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java new file mode 100644 index 00000000..aabfed7e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java @@ -0,0 +1,99 @@ +package tech.ordinaryroad.live.chat.client.huya.util; + +import cn.hutool.core.codec.Base64; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.huya.msg.ConnectParaInfo; +import tech.ordinaryroad.live.chat.client.huya.msg.LiveLaunchRsp; +import tech.ordinaryroad.live.chat.client.huya.msg.WebSocketCommand; +import tech.ordinaryroad.live.chat.client.huya.msg.WupRsp; +import tech.ordinaryroad.live.chat.client.huya.msg.dto.UserId; +import tech.ordinaryroad.live.chat.client.huya.msg.req.*; + +import java.util.List; + +/** + * @author mjz + * @date 2023/10/3 + */ +class HuyaCodecUtilTest { + + private String ver = "2309271152"; + private String exp = "15547.23738,16582.25335,32083.50834"; + private String appSrc = "HUYA&ZH&2052"; + + @Test + void ab2str() { + ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc); + byte[] byteArray = wsConnectParaInfo.toByteArray(); + String s = HuyaCodecUtil.ab2str(byteArray); + System.out.println(s); + } + + @Test + void btoa() { + ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc); + byte[] byteArray = wsConnectParaInfo.toByteArray(); + String s = HuyaCodecUtil.ab2str(byteArray); + + String btoa = HuyaCodecUtil.btoa(s); + System.out.println(btoa); + } + + @Test + void decodeHeartbeatTest() { + byte[] decode = Base64.decode("AAMdAAEEKAAABCgQAyw8QAFWCG9ubGluZXVpZg9PblVzZXJIZWFydEJlYXR9AAED+QgAAQYEdFJlcR0AAQPrCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0MDk0MjAsMTY5NjQxMTgwNiwxNjk2NDczNzYwLDE2OTY0NzY3NDU7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjY5MjcwM0IwMDAwMTNGRkJCRkVBNjY4Nzk5RDA7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ3Njg4MDsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mzsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxU1drU1d3a3RzZXhQSWNsTnQzUGJ3TVFha1dOTmZrMlc4KzFkNlFNZzVZYnU1bC9GcDRpaHRUTDdCd0Q2bTQ0MENHUUNkU0htZW1kOUNNLzVKRVZkanJXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NTc7IHJlcF9jbnQ9NDA7IGh1eWFfd2ViX3JlcF9jbnQ9MTY2XGYGY2hyb21lCxwsQgAaURNcYP98jJysC4yYDKgMLDYlYTgzMDdmMWM0YzRmNGVmMDphODMwN2YxYzRjNGY0ZWYwOjA6MExcZiAyYmZlZjAzNmEwMzBkOTgyN2ZjYmQwMmU5ZmM0NzY1OQ=="); + WupReq wupReq = new WupReq(); + wupReq.decode(decode); + UserHeartBeatReq userHeartBeatReq = new UserHeartBeatReq(); + userHeartBeatReq = wupReq.getUniAttribute().getByClass("tReq", userHeartBeatReq); + long lPid = userHeartBeatReq.getLPid(); + } + + @Test + void decodeRegisterGroupReq() { + byte[] decode = Base64.decode("ABAdAAAhCQACBgxsaXZlOjE3MjQ2OTEGDGNoYXQ6MTcyNDY5MRYAIAE2AExcZgA="); + WebSocketCommand webSocketCommand = new WebSocketCommand(HuyaCodecUtil.newUtf8TarsInputStream(decode)); + byte[] vData = webSocketCommand.getVData(); + RegisterGroupReq registerGroupReq = new RegisterGroupReq(); + registerGroupReq.readFrom(HuyaCodecUtil.newUtf8TarsInputStream(vData)); + List vGroupId = registerGroupReq.getVGroupId(); + } + + @Test + void decodeLiveLaunchReq() { + byte[] decode = Base64.decode("AAMdAAEEJAAABCQQAyw8QARWBmxpdmV1aWYIZG9MYXVuY2h9AAED/ggAAQYEdFJlcR0AAQPwCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0MDk0MjAsMTY5NjQxMTgwNiwxNjk2NDczNzYwLDE2OTY0NzY3NDU7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjY5MjcwM0IwMDAwMTNGRkJCRkVBNjY4Nzk5RDA7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ3Njg4MDsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mzsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxU1drU1d3a3RzZXhQSWNsTnQzUGJ3TVFha1dOTmZrMlc4KzFkNlFNZzVZYnU1bC9GcDRpaHRUTDdCd0Q2bTQ0MENHUUNkU0htZW1kOUNNLzVKRVZkanJXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NTc7IHJlcF9jbnQ9NDA7IGh1eWFfd2ViX3JlcF9jbnQ9MTY2XGYGY2hyb21lCxoAAxwqFgAmADYARgBWAAsLIAELjJgMqAwsNiU5N2Q5NzQ4NTYyMzdiMWZiOjk3ZDk3NDg1NjIzN2IxZmI6MDowTFxmIGU2OTYzZjMwMTRmYzZlY2U2M2ExNmU3ZTlhMzMzOWVl"); + WupReq wupReq = new WupReq(); + wupReq.decode(decode); + LiveLaunchReq liveLaunchReq = new LiveLaunchReq(); + liveLaunchReq = wupReq.getUniAttribute().getByClass("tReq", liveLaunchReq); + UserId tId = liveLaunchReq.getTId(); + System.out.println(wupReq.getTarsServantRequest().getVersion()); + } + + @Test + void decodeLiveLaunchRsp() { + byte[] decode = Base64.decode("AAQdAAECXAAAAlwQAyw8QARWBmxpdmV1aWYIZG9MYXVuY2h9AAECNggAAgYAHQAAAQwGBHRSc3AdAAECIQoGIDBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3EmUeNXopAAUKAAEZAAQGETExMS4xOS4yMzkuMTExOjgwBhAxMTEuMTkuMjI1LjIzOjgwBhAxMTEuNjMuMTgwLjk4OjgwBhExMTEuNjMuMTgwLjEwMDo4MAsKAAUZAAQGFzZmMTNlZjZmLXdzLnZhLmh1eWEuY29tBhc2ZjEzZTExNy13cy52YS5odXlhLmNvbQYXNmYzZmI0NjItd3MudmEuaHV5YS5jb20GFzZmM2ZiNDY0LXdzLnZhLmh1eWEuY29tCwoABhkABAYRMTExLjE5LjIzOS4xMTE6ODAGEDExMS4xOS4yMjUuMjM6ODAGEDExMS42My4xODAuOTg6ODAGETExMS42My4xODAuMTAwOjgwCwoABxkABAYRMTExLjE5LjIzOS4xMTE6ODAGEDExMS4xOS4yMjUuMjM6ODAGEDExMS42My4xODAuOTg6ODAGETExMS42My4xODAuMTAwOjgwCwoACRkACAYOMTIwLjE5NS4xNTguNDYGDzExMy4xMDcuMjM2LjE5NQYMMTQuMTcuMTA5LjY2Bg8xMDMuMjI3LjEyMS4xMDAGDzExNS4yMzguMTg5LjIyNQYPMTgzLjIzMi4xMzYuMTMwBg4yMjEuMjI4Ljc5LjIyNQYMNjAuMjE3LjI1MC4xCzxGDTExMi40My45Mi4xMTgLjJgMqAwsNiU5N2Q5NzQ4NTYyMzdiMWZiOjk3ZDk3NDg1NjIzN2IxZmI6MDowTFxmAA=="); + WupRsp wupRsp = new WupRsp(); + wupRsp.decode(decode); + LiveLaunchRsp liveLaunchRsp = new LiveLaunchRsp(); + liveLaunchRsp = wupRsp.getUniAttribute().getByClass("tRsp", liveLaunchRsp); + int eAccess = liveLaunchRsp.getEAccess(); + } + + @Test + void decodeGetLivingInfoReq() { + byte[] decode = Base64.decode("AAMdAAEEKAAABCgQAyw8QAFWCmh1eWFsaXZldWlmDWdldExpdmluZ0luZm99AAED+QgAAQYEdFJlcR0AAQPrCgoMFiAwYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NyYANhp3ZWJoNSYyMzA5MjcxMTUyJndlYnNvY2tldEcAAAOKdnBsYXllcl9zYmFubmVyXzE3MjQ2OTFfMTcyNDY5MT0xOyBTb3VuZFZhbHVlPTAuNTA7IGFscGhhVmFsdWU9MC44MDsgZ2FtZV9kaWQ9UjI0SjJnMG1CenZkWEpmN2E5bmhlU2wzekljaTJCT3AwLXQ7IGlzSW5MaXZlUm9vbT10cnVlOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyBfX3lhbWlkX3R0MT0wLjgwMjk5MzUwNjUwMTEyNjk7IF9feWFtaWRfbmV3PUNBNzVENENENUMxMDAwMDExNjVCODJCNTIxNDBDOTAwOyBndWlkPTBhN2RjYTcyYTNjZTFiNjU0MDAxZGQyYWRlMmFlODU3OyB1ZGJfZ3VpZGRhdGE9YWY1ZGJkYmY3NjI1NGE2ZThhMGEyOTNjY2FlOWI2ODg7IHVkYl9kZXZpY2VpZD13Xzc2MTYyMzQ4Mzg2MTgxNTI5NjsgdWRiX3Bhc3NkYXRhPTM7IF9feWFzbWlkPTAuODAyOTkzNTA2NTAxMTI2OTsgX3lhc2lkcz1fX3Jvb3RzaWQlM0RDQTc2NzA0NUMxMTAwMDAxRUM1QTE0NUMxRTkwRkUwMDsgSG1fbHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0NzM3NjAsMTY5NjQ3Njc0NSwxNjk2NDgzNTY1LDE2OTY0ODQyMTI7IEhtX2xwdnRfNTE3MDBiNmM3MjJmNWJiNGNmMzk5MDZhNTk2ZWE0MWY9MTY5NjQ4NDIxMjsgaHV5YV91YT13ZWJoNSYwLjAuMSZhY3Rpdml0eTsgX3JlcF9jbnQ9Mjsgc2RpZD0wVW5IVWd2MC9xbWZENEtBS2x3emhxWDk4UXJuUENjY2s2Zk40OTRpYXdTNUtteW1ncmV1ODlvN2dZdGEvUXZRc0JEZVNlU1JwNC9nclE1ZkV1RkFZckw1OWNvQUt1eHV1a2l3Z1RMamZqRURXVmtuOUx0ZkZKdy9RbzRrZ0tyOE9aSERxTm51d2c2MTJzR3lmbEZuMWRrVWVaWVRUb0N6emw0R0NIcTdNVURhaHhHdVBSOG1VZGRmSW1GdGpjY3MxOyBodXlhX2ZsYXNoX3JlcF9jbnQ9NzQ7IGh1eWFfd2ViX3JlcF9jbnQ9MTI1OyByZXBfY250PTQ0XGYGY2hyb21lCxwsMgAaURNGAFYAbHyMC4yYDKgMLDYlZTcxMDQ2OTExYzk2N2JjNDplNzEwNDY5MTFjOTY3YmM0OjA6MExcZiBjNTRlM2NkYmIyNGJjYzcyYmU1MjU5NTY4ZGVmY2Q1Ng=="); + WupReq wupReq = new WupReq(); + wupReq.decode(decode); + GetLivingInfoReq getLivingInfoReq = new GetLivingInfoReq(); + getLivingInfoReq = wupReq.getUniAttribute().getByClass("tReq", getLivingInfoReq); + + byte[] decode2 = Base64.decode("AAAEJxwsPEABVgpodXlhbGl2ZXVpZg1nZXRMaXZpbmdJbmZvfQABA/kIAAEGBHRSZXEdAAED6woKDBYgMGE3ZGNhNzJhM2NlMWI2NTQwMDFkZDJhZGUyYWU4NTcmADYad2ViaDUmMjMwOTI3MTE1MiZ3ZWJzb2NrZXRHAAADinZwbGF5ZXJfc2Jhbm5lcl8xNzI0NjkxXzE3MjQ2OTE9MTsgU291bmRWYWx1ZT0wLjUwOyBhbHBoYVZhbHVlPTAuODA7IGdhbWVfZGlkPVIyNEoyZzBtQnp2ZFhKZjdhOW5oZVNsM3pJY2kyQk9wMC10OyBpc0luTGl2ZVJvb209dHJ1ZTsgZ3VpZD0wYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NzsgX195YW1pZF90dDE9MC44MDI5OTM1MDY1MDExMjY5OyBfX3lhbWlkX25ldz1DQTc1RDRDRDVDMTAwMDAxMTY1QjgyQjUyMTQwQzkwMDsgZ3VpZD0wYTdkY2E3MmEzY2UxYjY1NDAwMWRkMmFkZTJhZTg1NzsgdWRiX2d1aWRkYXRhPWFmNWRiZGJmNzYyNTRhNmU4YTBhMjkzY2NhZTliNjg4OyB1ZGJfZGV2aWNlaWQ9d183NjE2MjM0ODM4NjE4MTUyOTY7IHVkYl9wYXNzZGF0YT0zOyBfX3lhc21pZD0wLjgwMjk5MzUwNjUwMTEyNjk7IF95YXNpZHM9X19yb290c2lkJTNEQ0E3NjcwNDVDMTEwMDAwMUVDNUExNDVDMUU5MEZFMDA7IEhtX2x2dF81MTcwMGI2YzcyMmY1YmI0Y2YzOTkwNmE1OTZlYTQxZj0xNjk2NDczNzYwLDE2OTY0NzY3NDUsMTY5NjQ4MzU2NSwxNjk2NDg0MjEyOyBIbV9scHZ0XzUxNzAwYjZjNzIyZjViYjRjZjM5OTA2YTU5NmVhNDFmPTE2OTY0ODQyMTI7IGh1eWFfdWE9d2ViaDUmMC4wLjEmYWN0aXZpdHk7IF9yZXBfY250PTI7IHNkaWQ9MFVuSFVndjAvcW1mRDRLQUtsd3pocVg5OFFyblBDY2NrNmZONDk0aWF3UzVLbXltZ3JldTg5bzdnWXRhL1F2UXNCRGVTZVNScDQvZ3JRNWZFdUZBWXJMNTljb0FLdXh1dWtpd2dUTGpmakVEV1ZrbjlMdGZGSncvUW80a2dLcjhPWkhEcU5udXdnNjEyc0d5ZmxGbjFka1VlWllUVG9DenpsNEdDSHE3TVVEYWh4R3VQUjhtVWRkZkltRnRqY2NzMTsgaHV5YV9mbGFzaF9yZXBfY250PTc0OyBodXlhX3dlYl9yZXBfY250PTEyNTsgcmVwX2NudD00NFxmBmNocm9tZQscLDIAGlETRgBWAGx8jAuMmAyoDA=="); + WupReq wupReq2 = new WupReq(); + wupReq2.decode(decode2); + GetLivingInfoReq getLivingInfoReq2 = new GetLivingInfoReq(); + getLivingInfoReq2 = wupReq2.getUniAttribute().getByClass("tReq", getLivingInfoReq2); + + UserId tId = getLivingInfoReq.getTId(); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml new file mode 100644 index 00000000..5522cffd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/pom.xml @@ -0,0 +1,42 @@ + + 4.0.0 + + org.ruoyi + live-chat-clients + ${revision} + ../pom.xml + + jar + + live-chat-client-kuaishou + live-chat-client-kuaishou + + + UTF-8 + + + + + org.ruoyi + live-chat-client-servers-netty-client + + + + com.google.protobuf + protobuf-java-util + + + + ch.qos.logback + logback-classic + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java new file mode 100644 index 00000000..7809fda8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/ClientModeExample.java @@ -0,0 +1,99 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou; + +import cn.hutool.core.util.RandomUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; +import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; +import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +public class ClientModeExample { + static Logger log = LoggerFactory.getLogger(ClientModeExample.class); + + public static void main(String[] args) { + // 1. 创建配置 + KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() + // TODO 浏览器Cookie + .cookie("did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; kuaishou.live.bfb1s=7206d814e5c089a58c910ed8bf52ace5; clientid=3; did=web_6c4ac2a8ef8855d35df4d564baeaa8e8; client_key=65890b29; kpn=GAME_ZONE; userId=3941614875; kuaishou.live.web_st=ChRrdWFpc2hvdS5saXZlLndlYi5zdBKgAbRhgemDxM_Z_lBn7EZ_-5unvtslsh7ci5VY_eg80qqjxy5yb7oBFrdcWSPlz6jMIBz9h_yoLzATE3ngj2WawpxvbJhmq0EnRYIHv308kTBmg4KN2JQf7w2mfrsp1vusFbZ3NkfsEO4PrGQfX0L6mJRbgXeBqyz4tUM5O0q2Jte_NzWkaOnezvIGRAG8Y6yA1dxGUmiA9syTrPrdnSOzZvAaEoJNhwQ4OUDtgURWN6k9Xgm8PSIgAfV-ZvahtgaYhopZno6OuS2pkaFZjrz4ymoEZ1DSnj0oBTAB; kuaishou.live.web_ph=a287be6ab01dce264c0554eed94c2d6ac991; userId=3941614875") + // TODO 直播间id(支持短id) + .roomId("tianci666") + .build(); + + // 2. 创建Client并传入配置、添加消息回调 + KuaishouLiveChatClient client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { + @Override + public void onMsg(IMsg msg) { + log.debug("收到{}消息 {}", msg.getClass(), msg); + } + + @Override + public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { + log.debug("收到CMD消息{} {}", cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { + log.debug("收到其他CMD消息 {}", cmd); + } + + @Override + public void onUnknownCmd(String cmdString, IMsg msg) { + log.debug("收到未知CMD消息 {}", cmdString); + } + + @Override + public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { + log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { + log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({}) mergeKey:{},comboCount:{}, batchSize:{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice(), msg.getMsg().getMergeKey(), msg.getMsg().getComboCount(), msg.getMsg().getBatchSize()); + } + }); + // 3. 开始监听直播间 + client.connect(); + + // 客户端连接状态回调 + client.addStatusChangeListener(evt -> { + if (evt.getNewValue().equals(ClientStatusEnums.CONNECTED)) { + // TODO 要发送的弹幕内容,请注意控制发送频率;框架内置支持设置发送弹幕的最少时间间隔,小于时将忽略该次发送 + client.sendDanmu("666666" + RandomUtil.randomNumbers(1)); + } + }); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java new file mode 100644 index 00000000..114f6970 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApis.java @@ -0,0 +1,235 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.api; + +import cn.hutool.cache.impl.TimedCache; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ReUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; +import cn.hutool.http.*; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import lombok.*; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.util.OrLiveChatCookieUtil; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; + +import static tech.ordinaryroad.live.chat.client.commons.base.msg.BaseMsg.OBJECT_MAPPER; + +/** + * @author mjz + * @date 2024/1/5 + */ +public class KuaishouApis { + + /** + * 接口返回结果缓存 + * {@link #KEY_RESULT_CACHE_GIFT_ITEMS}:所有礼物信息 + */ + public static final TimedCache> RESULT_CACHE = new TimedCache<>(TimeUnit.DAYS.toMillis(1)); + public static final String KEY_RESULT_CACHE_GIFT_ITEMS = "GIFT_ITEMS"; + + public static final String PATTERN_LIVE_STREAM_ID = "\"liveStream\":\\{\"id\":\"([\\w\\d-_]+)\""; + public static final String USER_AGENT = GlobalHeaders.INSTANCE.header(Header.USER_AGENT).replace("Hutool", ""); + + public static RoomInitResult roomInit(Object roomId, String cookie) { + @Cleanup + HttpResponse response = createGetRequest("https://live.kuaishou.com/u/" + roomId, cookie) + .execute(); + + if (StrUtil.isBlank(cookie)) { + cookie = OrLiveChatCookieUtil.toString(response.getCookies()); + } + + String body = response.body(); + String liveStreamId = ReUtil.getGroup1(PATTERN_LIVE_STREAM_ID, body); + JsonNode websocketinfo = websocketinfo(roomId, liveStreamId, cookie); + if (!websocketinfo.has("token")) { + throwExceptionWithTip("主播未开播,token获取失败 " + websocketinfo); + } + ArrayNode websocketUrls = websocketinfo.withArray("websocketUrls"); + ArrayList websocketUrlList = CollUtil.newArrayList(); + for (JsonNode websocketUrl : websocketUrls) { + websocketUrlList.add(websocketUrl.asText()); + } + return RoomInitResult.builder() + .token(websocketinfo.required("token").asText()) + .websocketUrls(websocketUrlList) + .liveStreamId(liveStreamId) + .build(); + } + + public static RoomInitResult roomInit(Object roomId) { + return roomInit(roomId, null); + } + + public static JsonNode websocketinfo(Object roomId, String liveStreamId, String cookie) { + if (StrUtil.isBlank(liveStreamId)) { + throwExceptionWithTip("主播未开播,liveStreamId为空"); + } + @Cleanup + HttpResponse response = createGetRequest("https://live.kuaishou.com/live_api/liveroom/websocketinfo?liveStreamId=" + liveStreamId, cookie) + .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) + .execute(); + return responseInterceptor(response.body()); + } + + public static Map allgifts() { + Map map = new HashMap<>(); + @Cleanup + HttpResponse response = createGetRequest("https://live.kuaishou.com/live_api/emoji/allgifts", null).execute(); + JsonNode jsonNode = responseInterceptor(response.body()); + jsonNode.fields().forEachRemaining(new Consumer>() { + @Override + public void accept(Map.Entry stringJsonNodeEntry) { + map.put(stringJsonNodeEntry.getKey(), OBJECT_MAPPER.convertValue(stringJsonNodeEntry.getValue(), GiftInfo.class)); + } + }); + return map; + } + + /** + * 根据礼物ID获取礼物信息 + * + * @param id 礼物ID + * @return 礼物信息 + */ + public static GiftInfo getGiftInfoById(String id) { + if (!RESULT_CACHE.containsKey(KEY_RESULT_CACHE_GIFT_ITEMS)) { + RESULT_CACHE.put(KEY_RESULT_CACHE_GIFT_ITEMS, allgifts()); + } + return RESULT_CACHE.get(KEY_RESULT_CACHE_GIFT_ITEMS).get(id); + } + + @SneakyThrows + public static JsonNode sendComment(String cookie, Object roomId, SendCommentRequest request) { + @Cleanup + HttpResponse response = createPostRequest("https://live.kuaishou.com/live_api/liveroom/sendComment", cookie) + .body(OBJECT_MAPPER.writeValueAsString(request), ContentType.JSON.getValue()) + .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) + .execute(); + return responseInterceptor(response.body()); + } + + @SneakyThrows + public static JsonNode clickLike(String cookie, Object roomId, String liveStreamId, int count) { + @Cleanup + HttpResponse response = createPostRequest("https://live.kuaishou.com/live_api/liveroom/like", cookie) + .body(OBJECT_MAPPER.createObjectNode() + .put("liveStreamId", liveStreamId) + .put("count", count) + .toString(), ContentType.JSON.getValue() + ) + .header(Header.ORIGIN, "https://live.kuaishou.com") + .header(Header.REFERER, "https://live.kuaishou.com/u/" + roomId) + .execute(); + return responseInterceptor(response.body()); + } + + public static HttpRequest createRequest(Method method, String url, String cookie) { + return HttpUtil.createRequest(method, url) + .cookie(cookie) + .header(Header.HOST, URLUtil.url(url).getHost()) + .header(Header.USER_AGENT, USER_AGENT); + } + + public static HttpRequest createGetRequest(String url, String cookie) { + return createRequest(Method.GET, url, cookie); + } + + public static HttpRequest createPostRequest(String url, String cookie) { + return createRequest(Method.POST, url, cookie); + } + + private static JsonNode responseInterceptor(String responseString) { + try { + JsonNode jsonNode = OBJECT_MAPPER.readTree(responseString); + JsonNode data = jsonNode.required("data"); + if (data.has("result")) { + int result = data.get("result").asInt(); + if (result != 1) { + String message = ""; + switch (result) { + case 2: { + message = "请求过快,请稍后重试"; + break; + } + case 400002: { + message = "需要进行验证"; + break; + } + default: { + message = ""; + } + } + throwExceptionWithTip("接口访问失败:" + message + ",返回结果:" + jsonNode); + } + } + return data; + } catch (JsonProcessingException e) { + throw new BaseException(e); + } + } + + private static void throwExceptionWithTip(String message) { + throw new BaseException("『可能已触发滑块验证,建议配置Cookie或打开浏览器进行滑块验证后重试』" + message); + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class SendCommentRequest { + private String liveStreamId; + private String content; + private String color; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class RoomInitResult { + private String token; + private String liveStreamId; + private List websocketUrls; + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class GiftInfo { + private String giftName; + private String giftUrl; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java new file mode 100644 index 00000000..7c52bdc4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClient.java @@ -0,0 +1,201 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.client; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.RandomUtil; +import com.fasterxml.jackson.databind.JsonNode; +import io.netty.channel.EventLoopGroup; +import io.netty.channel.nio.NioEventLoopGroup; +import io.netty.handler.codec.http.DefaultHttpHeaders; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshakerFactory; +import io.netty.handler.codec.http.websocketx.WebSocketVersion; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; +import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouConnectionListener; +import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouConnectionHandler; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; +import tech.ordinaryroad.live.chat.client.servers.netty.client.base.BaseNettyClient; + +import java.util.List; +import java.util.function.Consumer; + +/** + * @author mjz + * @date 2024/1/5 + */ +@Slf4j +public class KuaishouLiveChatClient extends BaseNettyClient< + KuaishouLiveChatClientConfig, + PayloadTypeOuterClass.PayloadType, + IKuaishouMsg, + IKuaishouMsgListener, + KuaishouConnectionHandler, + KuaishouBinaryFrameHandler> { + + @Getter + KuaishouApis.RoomInitResult roomInitResult = new KuaishouApis.RoomInitResult(); + + public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, List msgListeners, IKuaishouConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListeners(msgListeners); + + // 初始化 + this.init(); + } + + public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener, IKuaishouConnectionListener connectionListener, EventLoopGroup workerGroup) { + super(config, workerGroup, connectionListener); + addMsgListener(msgListener); + + // 初始化 + this.init(); + } + + public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener, IKuaishouConnectionListener connectionListener) { + this(config, msgListener, connectionListener, new NioEventLoopGroup()); + } + + public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config, IKuaishouMsgListener msgListener) { + this(config, msgListener, null, new NioEventLoopGroup()); + } + + public KuaishouLiveChatClient(KuaishouLiveChatClientConfig config) { + this(config, null); + } + + @Override + public void init() { + roomInitResult = KuaishouApis.roomInit(getConfig().getRoomId(), getConfig().getCookie()); + super.init(); + } + + @Override + protected String getWebSocketUriString() { + List websocketUrls = roomInitResult.getWebsocketUrls(); + return CollUtil.get(websocketUrls, RandomUtil.randomInt(0, websocketUrls.size())); + } + + @Override + public KuaishouConnectionHandler initConnectionHandler(IBaseConnectionListener clientConnectionListener) { + return new KuaishouConnectionHandler( + WebSocketClientHandshakerFactory.newHandshaker(getWebsocketUri(), WebSocketVersion.V13, null, true, new DefaultHttpHeaders(), getConfig().getMaxFramePayloadLength()), + KuaishouLiveChatClient.this, clientConnectionListener + ); + } + + @Override + public KuaishouBinaryFrameHandler initBinaryFrameHandler() { + return new KuaishouBinaryFrameHandler(super.msgListeners, KuaishouLiveChatClient.this); + } + + @Override + public void sendDanmu(Object danmu, Runnable success, Consumer failed) { + if (!checkCanSendDanmu()) { + return; + } + if (danmu instanceof String) { + String msg = (String) danmu; + try { + if (log.isDebugEnabled()) { + log.debug("{} kuaishou发送弹幕 {}", getConfig().getRoomId(), danmu); + } + + boolean sendSuccess = false; + try { + KuaishouApis.sendComment(getConfig().getCookie(), + getConfig().getRoomId(), + KuaishouApis.SendCommentRequest.builder() + .liveStreamId(roomInitResult.getLiveStreamId()) + .content(msg) + .build() + ); + sendSuccess = true; + } catch (Exception e) { + log.error("kuaishou弹幕发送失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (!sendSuccess) { + return; + } + + if (log.isDebugEnabled()) { + log.debug("kuaishou弹幕发送成功 {}", danmu); + } + if (success != null) { + success.run(); + } + finishSendDanmu(); + } catch (Exception e) { + log.error("kuaishou弹幕发送失败", e); + if (failed != null) { + failed.accept(e); + } + } + } else { + super.sendDanmu(danmu, success, failed); + } + } + + @Override + public void clickLike(int count, Runnable success, Consumer failed) { + if (count <= 0) { + throw new BaseException("点赞次数必须大于0"); + } + + boolean successfullyClicked = false; + try { + JsonNode jsonNode = KuaishouApis.clickLike(getConfig().getCookie(), getConfig().getRoomId(), roomInitResult.getLiveStreamId(), count); + if (jsonNode.asBoolean()) { + successfullyClicked = true; + } + } catch (Exception e) { + log.error("kuaishou为直播间点赞失败", e); + if (failed != null) { + failed.accept(e); + } + } + if (!successfullyClicked) { + return; + } + + if (log.isDebugEnabled()) { + log.debug("kuaishou为直播间点赞成功"); + } + if (success != null) { + success.run(); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java new file mode 100644 index 00000000..d46ad215 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/config/KuaishouLiveChatClientConfig.java @@ -0,0 +1,47 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.config; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import tech.ordinaryroad.live.chat.client.servers.netty.client.config.BaseNettyClientConfig; + +/** + * @author mjz + * @date 2024/1/5 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder(toBuilder = true) +public class KuaishouLiveChatClientConfig extends BaseNettyClientConfig { + + @Builder.Default + private long heartbeatPeriod = 20; + +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java new file mode 100644 index 00000000..56a73428 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouConnectionListener.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouConnectionHandler; + +/** + * @author mjz + * @date 2024/1/5 + */ +public interface IKuaishouConnectionListener extends IBaseConnectionListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java new file mode 100644 index 00000000..d280e060 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/listener/IKuaishouMsgListener.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.listener; + +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IDanmuMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IGiftMsgListener; +import tech.ordinaryroad.live.chat.client.commons.base.listener.ILikeMsgListener; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; + +/** + * @author mjz + * @date 2024/1/5 + */ +public interface IKuaishouMsgListener extends IBaseMsgListener, + IDanmuMsgListener, + IGiftMsgListener, + ILikeMsgListener { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java new file mode 100644 index 00000000..fe4dabdb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouDanmuMsg.java @@ -0,0 +1,100 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.msg; + +import com.google.protobuf.ByteString; +import com.google.protobuf.UnknownFieldSet; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IDanmuMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass; + +import java.util.List; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class KuaishouDanmuMsg implements IKuaishouMsg, IDanmuMsg { + + private WebCommentFeedOuterClass.WebCommentFeed msg; + + @Override + public String getBadgeName() { + String badgeName = null; + try { + UnknownFieldSet.Field field21 = msg.getSenderState().getUnknownFields().asMap().get(21); + List lengthDelimitedList = field21.getLengthDelimitedList(); + if (!lengthDelimitedList.isEmpty()) { + UnknownFieldSet.Field field21_1 = UnknownFieldSet.parseFrom( + lengthDelimitedList.size() > 1 ? lengthDelimitedList.get(1) : lengthDelimitedList.get(0) + ).getField(1); + List lengthDelimitedList1 = field21_1.getLengthDelimitedList(); + if (!lengthDelimitedList1.isEmpty()) { + UnknownFieldSet.Field field21_1_4 = UnknownFieldSet.parseFrom((lengthDelimitedList1.get(0))).getField(4); + List lengthDelimitedList2 = field21_1_4.getLengthDelimitedList(); + if (!lengthDelimitedList2.isEmpty()) { + badgeName = lengthDelimitedList2.get(0).toStringUtf8(); + } + } + } + } catch (Exception e) { + // ignore + } + return badgeName; + } + + @Override + public byte getBadgeLevel() { + return (byte) msg.getSenderState().getLiveFansGroupState().getIntimacyLevel(); + } + + @Override + public String getUid() { + return msg.getUser().getPrincipalId(); + } + + @Override + public String getUsername() { + return msg.getUser().getUserName(); + } + + @Override + public String getUserAvatar() { + return msg.getUser().getHeadUrl(); + } + + @Override + public String getContent() { + return msg.getContent(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java new file mode 100644 index 00000000..5ac39d94 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouGiftMsg.java @@ -0,0 +1,108 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IGiftMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class KuaishouGiftMsg implements IKuaishouMsg, IGiftMsg { + + private WebGiftFeedOuterClass.WebGiftFeed msg; + + @Override + public String getBadgeName() { + return IGiftMsg.super.getBadgeName(); + } + + @Override + public byte getBadgeLevel() { + return IGiftMsg.super.getBadgeLevel(); + } + + @Override + public String getUid() { + return msg.getUser().getPrincipalId(); + } + + @Override + public String getUsername() { + return msg.getUser().getUserName(); + } + + @Override + public String getUserAvatar() { + return msg.getUser().getHeadUrl(); + } + + @Override + public String getGiftName() { + return KuaishouApis.getGiftInfoById(this.getGiftId()).getGiftName(); + } + + @Override + public String getGiftImg() { + return KuaishouApis.getGiftInfoById(this.getGiftId()).getGiftUrl(); + } + + @Override + public String getGiftId() { + return Integer.toString(msg.getIntGiftId()); + } + + @Override + public int getGiftCount() { + // TODO 礼物个数?网页上只显示赠送了什么东西,不显示个数,只会显示连击 + return 0; + } + + @Override + public int getGiftPrice() { + return 0; + } + + @Override + public String getReceiveUid() { + return null; + } + + @Override + public String getReceiveUsername() { + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java new file mode 100644 index 00000000..01bcefb6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/KuaishouLikeMsg.java @@ -0,0 +1,61 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.msg; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ILikeMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass; + +/** + * @author mjz + * @date 2024/1/9 + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class KuaishouLikeMsg implements IKuaishouMsg, ILikeMsg { + + private WebLikeFeedOuterClass.WebLikeFeed msg; + + @Override + public String getUid() { + return msg.getUser().getPrincipalId(); + } + + @Override + public String getUsername() { + return msg.getUser().getUserName(); + } + + @Override + public String getUserAvatar() { + return msg.getUser().getHeadUrl(); + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java new file mode 100644 index 00000000..eaaa8bc6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouCmdMsg.java @@ -0,0 +1,35 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; + +/** + * @author mjz + * @date 2024/1/5 + */ +public interface IKuaishouCmdMsg extends IKuaishouMsg, ICmdMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java new file mode 100644 index 00000000..12ae6cdf --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/msg/base/IKuaishouMsg.java @@ -0,0 +1,34 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.msg.base; + +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; + +/** + * @author mjz + * @date 2024/1/5 + */ +public interface IKuaishouMsg extends IMsg { +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java new file mode 100644 index 00000000..d6bcb6dc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouBinaryFrameHandler.java @@ -0,0 +1,127 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.netty.handler; + +import cn.hutool.core.util.ZipUtil; +import com.google.protobuf.ByteString; +import com.google.protobuf.InvalidProtocolBufferException; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.exception.BaseException; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; +import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.*; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientBinaryFrameHandler; + +import java.util.Collections; +import java.util.List; + +/** + * @author mjz + * @date 2024/1/5 + */ +@Slf4j +@ChannelHandler.Sharable +public class KuaishouBinaryFrameHandler extends BaseNettyClientBinaryFrameHandler { + + public KuaishouBinaryFrameHandler(List iKuaishouMsgListeners, KuaishouLiveChatClient client) { + super(iKuaishouMsgListeners, client); + } + + public KuaishouBinaryFrameHandler(List iKuaishouMsgListeners, long roomId) { + super(iKuaishouMsgListeners, roomId); + } + + @SneakyThrows + @Override + public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { + if (super.msgListeners.isEmpty()) { + return; + } + + SocketMessageOuterClass.SocketMessage socketMessage = (SocketMessageOuterClass.SocketMessage) cmdMsg; + ByteString payloadByteString = socketMessage.getPayload(); + switch (socketMessage.getPayloadType()) { + case SC_FEED_PUSH: { + SCWebFeedPushOuterClass.SCWebFeedPush scWebFeedPush = SCWebFeedPushOuterClass.SCWebFeedPush.parseFrom(payloadByteString); + if (scWebFeedPush.getCommentFeedsCount() > 0) { + for (WebCommentFeedOuterClass.WebCommentFeed webCommentFeed : scWebFeedPush.getCommentFeedsList()) { + iteratorMsgListeners(msgListener -> msgListener.onDanmuMsg(KuaishouBinaryFrameHandler.this, new KuaishouDanmuMsg(webCommentFeed))); + } + } + if (scWebFeedPush.getGiftFeedsCount() > 0) { + for (WebGiftFeedOuterClass.WebGiftFeed webGiftFeed : scWebFeedPush.getGiftFeedsList()) { + iteratorMsgListeners(msgListener -> msgListener.onGiftMsg(KuaishouBinaryFrameHandler.this, new KuaishouGiftMsg(webGiftFeed))); + } + } + if (scWebFeedPush.getLikeFeedsCount() > 0) { + for (WebLikeFeedOuterClass.WebLikeFeed webLikeFeed : scWebFeedPush.getLikeFeedsList()) { + iteratorMsgListeners(msgListener -> msgListener.onLikeMsg(KuaishouBinaryFrameHandler.this, new KuaishouLikeMsg(webLikeFeed))); + } + } + break; + } + default: { + iteratorMsgListeners(msgListener -> msgListener.onOtherCmdMsg(KuaishouBinaryFrameHandler.this, cmd, socketMessage)); + } + } + } + + @Override + protected List decode(ByteBuf byteBuf) { + try { + SocketMessageOuterClass.SocketMessage socketMessage = SocketMessageOuterClass.SocketMessage.parseFrom(byteBuf.nioBuffer()); + SocketMessageOuterClass.SocketMessage.CompressionType compressionType = socketMessage.getCompressionType(); + ByteString payloadByteString = socketMessage.getPayload(); + byte[] payload; + switch (compressionType) { + case NONE: { + payload = payloadByteString.toByteArray(); + break; + } + case GZIP: { + payload = ZipUtil.unGzip(payloadByteString.newInput()); + break; + } + default: { + if (log.isWarnEnabled()) { + log.warn("暂不支持的压缩方式 " + compressionType); + } + return Collections.emptyList(); + } + } + return Collections.singletonList(socketMessage.toBuilder().setPayload(ByteString.copyFrom(payload)).build()); + } catch (InvalidProtocolBufferException e) { + throw new BaseException(e); + } + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java new file mode 100644 index 00000000..977710dc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/netty/handler/KuaishouConnectionHandler.java @@ -0,0 +1,158 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package tech.ordinaryroad.live.chat.client.kuaishou.netty.handler; + +import cn.hutool.core.util.RandomUtil; +import io.netty.buffer.Unpooled; +import io.netty.channel.Channel; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; +import io.netty.handler.codec.http.websocketx.WebSocketClientHandshaker; +import lombok.extern.slf4j.Slf4j; +import tech.ordinaryroad.live.chat.client.commons.base.listener.IBaseConnectionListener; +import tech.ordinaryroad.live.chat.client.kuaishou.api.KuaishouApis; +import tech.ordinaryroad.live.chat.client.kuaishou.client.KuaishouLiveChatClient; +import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass; +import tech.ordinaryroad.live.chat.client.servers.netty.client.handler.BaseNettyClientConnectionHandler; + +/** + * @author mjz + * @date 2024/1/5 + */ +@Slf4j +@ChannelHandler.Sharable +public class KuaishouConnectionHandler extends BaseNettyClientConnectionHandler { + + /** + * 以ClientConfig为主 + */ + private final Object roomId; + /** + * 以ClientConfig为主 + */ + private String cookie; + private final KuaishouApis.RoomInitResult roomInitResult; + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouLiveChatClient client, IBaseConnectionListener listener) { + super(handshaker, client, listener); + this.roomId = client.getConfig().getRoomId(); + this.cookie = client.getConfig().getCookie(); + this.roomInitResult = client.getRoomInitResult(); + } + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouLiveChatClient client) { + this(handshaker, client, null); + } + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, IBaseConnectionListener listener, String cookie) { + super(handshaker, listener); + this.roomId = roomId; + this.cookie = cookie; + this.roomInitResult = roomInitResult; + } + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, IBaseConnectionListener listener) { + this(handshaker, roomId, roomInitResult, listener, null); + } + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, long roomId, KuaishouApis.RoomInitResult roomInitResult, String cookie) { + this(handshaker, roomId, roomInitResult, null, cookie); + } + + public KuaishouConnectionHandler(WebSocketClientHandshaker handshaker, KuaishouApis.RoomInitResult roomInitResult, long roomId) { + this(handshaker, roomId, roomInitResult, null, null); + } + + @Override + protected void sendHeartbeat(ChannelHandlerContext ctx) { + ctx.writeAndFlush( + new BinaryWebSocketFrame( + Unpooled.wrappedBuffer(SocketMessageOuterClass.SocketMessage.newBuilder() + .setPayloadType(PayloadTypeOuterClass.PayloadType.CS_HEARTBEAT) + .setPayload( + CSHeartbeatOuterClass.CSHeartbeat.newBuilder() + .setTimestamp(System.currentTimeMillis()) + .build() + .toByteString() + ) + .build() + .toByteArray() + ) + ) + ); + } + + @Override + public void sendAuthRequest(Channel channel) { + channel.writeAndFlush( + new BinaryWebSocketFrame( + Unpooled.wrappedBuffer(SocketMessageOuterClass.SocketMessage.newBuilder() + .setPayloadType(PayloadTypeOuterClass.PayloadType.CS_ENTER_ROOM) + .setPayload( + CSWebEnterRoomOuterClass.CSWebEnterRoom.newBuilder() + .setToken(roomInitResult.getToken()) + .setLiveStreamId(roomInitResult.getLiveStreamId()) + .setPageId(RandomUtil.randomString(16) + System.currentTimeMillis()) + .build() + .toByteString() + ) + .build() + .toByteArray() + ) + ) + ); + } + + @Override + protected long getHeartbeatPeriod() { + if (client == null) { + return KuaishouLiveChatClientConfig.DEFAULT_HEARTBEAT_PERIOD; + } else { + return client.getConfig().getHeartbeatPeriod(); + } + } + + @Override + protected long getHeartbeatInitialDelay() { + if (client == null) { + return KuaishouLiveChatClientConfig.DEFAULT_HEARTBEAT_INITIAL_DELAY; + } else { + return client.getConfig().getHeartbeatInitialDelay(); + } + } + + public Object getRoomId() { + return client != null ? client.getConfig().getRoomId() : roomId; + } + + private String getCookie() { + return client != null ? client.getConfig().getCookie() : cookie; + } +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java new file mode 100644 index 00000000..7030eae1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/AuditAudienceMaskOuterClass.java @@ -0,0 +1,1155 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: AuditAudienceMask.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class AuditAudienceMaskOuterClass { + private AuditAudienceMaskOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface AuditAudienceMaskOrBuilder extends + // @@protoc_insertion_point(interface_extends:AuditAudienceMask) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + java.util.List + getIconCdnNodeViewList(); + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index); + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + int getIconCdnNodeViewCount(); + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + java.util.List + getIconCdnNodeViewOrBuilderList(); + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( + int index); + + /** + * string title = 2; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 2; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + + /** + * string detail = 3; + * @return The detail. + */ + java.lang.String getDetail(); + /** + * string detail = 3; + * @return The bytes for detail. + */ + com.google.protobuf.ByteString + getDetailBytes(); + } + /** + * Protobuf type {@code AuditAudienceMask} + */ + public static final class AuditAudienceMask extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:AuditAudienceMask) + AuditAudienceMaskOrBuilder { + private static final long serialVersionUID = 0L; + // Use AuditAudienceMask.newBuilder() to construct. + private AuditAudienceMask(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AuditAudienceMask() { + iconCdnNodeView_ = java.util.Collections.emptyList(); + title_ = ""; + detail_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AuditAudienceMask(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder.class); + } + + public static final int ICONCDNNODEVIEW_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List iconCdnNodeView_; + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + @java.lang.Override + public java.util.List getIconCdnNodeViewList() { + return iconCdnNodeView_; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + @java.lang.Override + public java.util.List + getIconCdnNodeViewOrBuilderList() { + return iconCdnNodeView_; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + @java.lang.Override + public int getIconCdnNodeViewCount() { + return iconCdnNodeView_.size(); + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index) { + return iconCdnNodeView_.get(index); + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( + int index) { + return iconCdnNodeView_.get(index); + } + + public static final int TITLE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + /** + * string title = 2; + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } + } + /** + * string title = 2; + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DETAIL_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object detail_ = ""; + /** + * string detail = 3; + * @return The detail. + */ + @java.lang.Override + public java.lang.String getDetail() { + java.lang.Object ref = detail_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + detail_ = s; + return s; + } + } + /** + * string detail = 3; + * @return The bytes for detail. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDetailBytes() { + java.lang.Object ref = detail_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + detail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < iconCdnNodeView_.size(); i++) { + output.writeMessage(1, iconCdnNodeView_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(detail_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, detail_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < iconCdnNodeView_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, iconCdnNodeView_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(title_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, title_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(detail_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, detail_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask) obj; + + if (!getIconCdnNodeViewList() + .equals(other.getIconCdnNodeViewList())) return false; + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getDetail() + .equals(other.getDetail())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getIconCdnNodeViewCount() > 0) { + hash = (37 * hash) + ICONCDNNODEVIEW_FIELD_NUMBER; + hash = (53 * hash) + getIconCdnNodeViewList().hashCode(); + } + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (37 * hash) + DETAIL_FIELD_NUMBER; + hash = (53 * hash) + getDetail().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code AuditAudienceMask} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:AuditAudienceMask) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (iconCdnNodeViewBuilder_ == null) { + iconCdnNodeView_ = java.util.Collections.emptyList(); + } else { + iconCdnNodeView_ = null; + iconCdnNodeViewBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + title_ = ""; + detail_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.internal_static_AuditAudienceMask_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result) { + if (iconCdnNodeViewBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + iconCdnNodeView_ = java.util.Collections.unmodifiableList(iconCdnNodeView_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.iconCdnNodeView_ = iconCdnNodeView_; + } else { + result.iconCdnNodeView_ = iconCdnNodeViewBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.title_ = title_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.detail_ = detail_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance()) return this; + if (iconCdnNodeViewBuilder_ == null) { + if (!other.iconCdnNodeView_.isEmpty()) { + if (iconCdnNodeView_.isEmpty()) { + iconCdnNodeView_ = other.iconCdnNodeView_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.addAll(other.iconCdnNodeView_); + } + onChanged(); + } + } else { + if (!other.iconCdnNodeView_.isEmpty()) { + if (iconCdnNodeViewBuilder_.isEmpty()) { + iconCdnNodeViewBuilder_.dispose(); + iconCdnNodeViewBuilder_ = null; + iconCdnNodeView_ = other.iconCdnNodeView_; + bitField0_ = (bitField0_ & ~0x00000001); + iconCdnNodeViewBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getIconCdnNodeViewFieldBuilder() : null; + } else { + iconCdnNodeViewBuilder_.addAllMessages(other.iconCdnNodeView_); + } + } + } + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getDetail().isEmpty()) { + detail_ = other.detail_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.parser(), + extensionRegistry); + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.add(m); + } else { + iconCdnNodeViewBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + detail_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List iconCdnNodeView_ = + java.util.Collections.emptyList(); + private void ensureIconCdnNodeViewIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + iconCdnNodeView_ = new java.util.ArrayList(iconCdnNodeView_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder> iconCdnNodeViewBuilder_; + + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public java.util.List getIconCdnNodeViewList() { + if (iconCdnNodeViewBuilder_ == null) { + return java.util.Collections.unmodifiableList(iconCdnNodeView_); + } else { + return iconCdnNodeViewBuilder_.getMessageList(); + } + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public int getIconCdnNodeViewCount() { + if (iconCdnNodeViewBuilder_ == null) { + return iconCdnNodeView_.size(); + } else { + return iconCdnNodeViewBuilder_.getCount(); + } + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getIconCdnNodeView(int index) { + if (iconCdnNodeViewBuilder_ == null) { + return iconCdnNodeView_.get(index); + } else { + return iconCdnNodeViewBuilder_.getMessage(index); + } + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder setIconCdnNodeView( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { + if (iconCdnNodeViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.set(index, value); + onChanged(); + } else { + iconCdnNodeViewBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder setIconCdnNodeView( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.set(index, builderForValue.build()); + onChanged(); + } else { + iconCdnNodeViewBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder addIconCdnNodeView(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { + if (iconCdnNodeViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.add(value); + onChanged(); + } else { + iconCdnNodeViewBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder addIconCdnNodeView( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView value) { + if (iconCdnNodeViewBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.add(index, value); + onChanged(); + } else { + iconCdnNodeViewBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder addIconCdnNodeView( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.add(builderForValue.build()); + onChanged(); + } else { + iconCdnNodeViewBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder addIconCdnNodeView( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder builderForValue) { + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.add(index, builderForValue.build()); + onChanged(); + } else { + iconCdnNodeViewBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder addAllIconCdnNodeView( + java.lang.Iterable values) { + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, iconCdnNodeView_); + onChanged(); + } else { + iconCdnNodeViewBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder clearIconCdnNodeView() { + if (iconCdnNodeViewBuilder_ == null) { + iconCdnNodeView_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + iconCdnNodeViewBuilder_.clear(); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public Builder removeIconCdnNodeView(int index) { + if (iconCdnNodeViewBuilder_ == null) { + ensureIconCdnNodeViewIsMutable(); + iconCdnNodeView_.remove(index); + onChanged(); + } else { + iconCdnNodeViewBuilder_.remove(index); + } + return this; + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder getIconCdnNodeViewBuilder( + int index) { + return getIconCdnNodeViewFieldBuilder().getBuilder(index); + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder getIconCdnNodeViewOrBuilder( + int index) { + if (iconCdnNodeViewBuilder_ == null) { + return iconCdnNodeView_.get(index); } else { + return iconCdnNodeViewBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public java.util.List + getIconCdnNodeViewOrBuilderList() { + if (iconCdnNodeViewBuilder_ != null) { + return iconCdnNodeViewBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(iconCdnNodeView_); + } + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder addIconCdnNodeViewBuilder() { + return getIconCdnNodeViewFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()); + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder addIconCdnNodeViewBuilder( + int index) { + return getIconCdnNodeViewFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()); + } + /** + * repeated .LiveCdnNodeView iconCdnNodeView = 1; + */ + public java.util.List + getIconCdnNodeViewBuilderList() { + return getIconCdnNodeViewFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder> + getIconCdnNodeViewFieldBuilder() { + if (iconCdnNodeViewBuilder_ == null) { + iconCdnNodeViewBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder>( + iconCdnNodeView_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + iconCdnNodeView_ = null; + } + return iconCdnNodeViewBuilder_; + } + + private java.lang.Object title_ = ""; + /** + * string title = 2; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 2; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 2; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string title = 2; + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string title = 2; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object detail_ = ""; + /** + * string detail = 3; + * @return The detail. + */ + public java.lang.String getDetail() { + java.lang.Object ref = detail_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + detail_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string detail = 3; + * @return The bytes for detail. + */ + public com.google.protobuf.ByteString + getDetailBytes() { + java.lang.Object ref = detail_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + detail_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string detail = 3; + * @param value The detail to set. + * @return This builder for chaining. + */ + public Builder setDetail( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + detail_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string detail = 3; + * @return This builder for chaining. + */ + public Builder clearDetail() { + detail_ = getDefaultInstance().getDetail(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string detail = 3; + * @param value The bytes for detail to set. + * @return This builder for chaining. + */ + public Builder setDetailBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + detail_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:AuditAudienceMask) + } + + // @@protoc_insertion_point(class_scope:AuditAudienceMask) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuditAudienceMask parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_AuditAudienceMask_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_AuditAudienceMask_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\027AuditAudienceMask.proto\032\025LiveCdnNodeVi" + + "ew.proto\"]\n\021AuditAudienceMask\022)\n\017iconCdn" + + "NodeView\030\001 \003(\0132\020.LiveCdnNodeView\022\r\n\005titl" + + "e\030\002 \001(\t\022\016\n\006detail\030\003 \001(\tB6\n4tech.ordinary" + + "road.live.chat.client.kuaishou.protobufb" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.getDescriptor(), + }); + internal_static_AuditAudienceMask_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_AuditAudienceMask_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_AuditAudienceMask_descriptor, + new java.lang.String[] { "IconCdnNodeView", "Title", "Detail", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java new file mode 100644 index 00000000..d1727084 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSErrorOuterClass.java @@ -0,0 +1,548 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSError.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSErrorOuterClass { + private CSErrorOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSError) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 code = 1; + * @return The code. + */ + int getCode(); + } + /** + * Protobuf type {@code CSError} + */ + public static final class CSError extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSError) + CSErrorOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSError.newBuilder() to construct. + private CSError(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSError() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSError(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + private int code_ = 0; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (code_ != 0) { + output.writeUInt32(1, code_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, code_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError) obj; + + if (getCode() + != other.getCode()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSError) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.internal_static_CSError_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError.getDefaultInstance()) return this; + if (other.getCode() != 0) { + setCode(other.getCode()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + code_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int code_ ; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + /** + * uint32 code = 1; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(int value) { + + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + bitField0_ = (bitField0_ & ~0x00000001); + code_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSError) + } + + // @@protoc_insertion_point(class_scope:CSError) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSErrorOuterClass.CSError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSError_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSError_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rCSError.proto\"\027\n\007CSError\022\014\n\004code\030\001 \001(\r" + + "B6\n4tech.ordinaryroad.live.chat.client.k" + + "uaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSError_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSError_descriptor, + new java.lang.String[] { "Code", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java new file mode 100644 index 00000000..635a5777 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSHeartbeatOuterClass.java @@ -0,0 +1,549 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSHeartbeat.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSHeartbeatOuterClass { + private CSHeartbeatOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSHeartbeatOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSHeartbeat) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + long getTimestamp(); + } + /** + * Protobuf type {@code CSHeartbeat} + */ + public static final class CSHeartbeat extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSHeartbeat) + CSHeartbeatOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSHeartbeat.newBuilder() to construct. + private CSHeartbeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSHeartbeat() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSHeartbeat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.Builder.class); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private long timestamp_ = 0L; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestamp_ != 0L) { + output.writeUInt64(1, timestamp_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, timestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat) obj; + + if (getTimestamp() + != other.getTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSHeartbeat} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSHeartbeat) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.internal_static_CSHeartbeat_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat.getDefaultInstance()) return this; + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestamp_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long timestamp_ ; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + * uint64 timestamp = 1; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSHeartbeat) + } + + // @@protoc_insertion_point(class_scope:CSHeartbeat) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSHeartbeat parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSHeartbeatOuterClass.CSHeartbeat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSHeartbeat_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSHeartbeat_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021CSHeartbeat.proto\" \n\013CSHeartbeat\022\021\n\tti" + + "mestamp\030\001 \001(\004B6\n4tech.ordinaryroad.live." + + "chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSHeartbeat_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSHeartbeat_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSHeartbeat_descriptor, + new java.lang.String[] { "Timestamp", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java new file mode 100644 index 00000000..1062bdc4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSPingOuterClass.java @@ -0,0 +1,1029 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSPing.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSPingOuterClass { + private CSPingOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSPingOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSPing) + com.google.protobuf.MessageOrBuilder { + + /** + * string echoData = 1; + * @return The echoData. + */ + java.lang.String getEchoData(); + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + com.google.protobuf.ByteString + getEchoDataBytes(); + + /** + * .ClientId clientId = 2; + * @return The enum numeric value on the wire for clientId. + */ + int getClientIdValue(); + /** + * .ClientId clientId = 2; + * @return The clientId. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId(); + + /** + * string deviceId = 3; + * @return The deviceId. + */ + java.lang.String getDeviceId(); + /** + * string deviceId = 3; + * @return The bytes for deviceId. + */ + com.google.protobuf.ByteString + getDeviceIdBytes(); + + /** + * string appVer = 4; + * @return The appVer. + */ + java.lang.String getAppVer(); + /** + * string appVer = 4; + * @return The bytes for appVer. + */ + com.google.protobuf.ByteString + getAppVerBytes(); + } + /** + * Protobuf type {@code CSPing} + */ + public static final class CSPing extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSPing) + CSPingOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSPing.newBuilder() to construct. + private CSPing(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSPing() { + echoData_ = ""; + clientId_ = 0; + deviceId_ = ""; + appVer_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSPing(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.Builder.class); + } + + public static final int ECHODATA_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object echoData_ = ""; + /** + * string echoData = 1; + * @return The echoData. + */ + @java.lang.Override + public java.lang.String getEchoData() { + java.lang.Object ref = echoData_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + echoData_ = s; + return s; + } + } + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEchoDataBytes() { + java.lang.Object ref = echoData_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + echoData_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CLIENTID_FIELD_NUMBER = 2; + private int clientId_ = 0; + /** + * .ClientId clientId = 2; + * @return The enum numeric value on the wire for clientId. + */ + @java.lang.Override public int getClientIdValue() { + return clientId_; + } + /** + * .ClientId clientId = 2; + * @return The clientId. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.forNumber(clientId_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.UNRECOGNIZED : result; + } + + public static final int DEVICEID_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceId_ = ""; + /** + * string deviceId = 3; + * @return The deviceId. + */ + @java.lang.Override + public java.lang.String getDeviceId() { + java.lang.Object ref = deviceId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceId_ = s; + return s; + } + } + /** + * string deviceId = 3; + * @return The bytes for deviceId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceIdBytes() { + java.lang.Object ref = deviceId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int APPVER_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object appVer_ = ""; + /** + * string appVer = 4; + * @return The appVer. + */ + @java.lang.Override + public java.lang.String getAppVer() { + java.lang.Object ref = appVer_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appVer_ = s; + return s; + } + } + /** + * string appVer = 4; + * @return The bytes for appVer. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAppVerBytes() { + java.lang.Object ref = appVer_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appVer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, echoData_); + } + if (clientId_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.NONE.getNumber()) { + output.writeEnum(2, clientId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appVer_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, appVer_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, echoData_); + } + if (clientId_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.NONE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, clientId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(appVer_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, appVer_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing) obj; + + if (!getEchoData() + .equals(other.getEchoData())) return false; + if (clientId_ != other.clientId_) return false; + if (!getDeviceId() + .equals(other.getDeviceId())) return false; + if (!getAppVer() + .equals(other.getAppVer())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ECHODATA_FIELD_NUMBER; + hash = (53 * hash) + getEchoData().hashCode(); + hash = (37 * hash) + CLIENTID_FIELD_NUMBER; + hash = (53 * hash) + clientId_; + hash = (37 * hash) + DEVICEID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + hash = (37 * hash) + APPVER_FIELD_NUMBER; + hash = (53 * hash) + getAppVer().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSPing} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSPing) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + echoData_ = ""; + clientId_ = 0; + deviceId_ = ""; + appVer_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.internal_static_CSPing_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.echoData_ = echoData_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.clientId_ = clientId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceId_ = deviceId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.appVer_ = appVer_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing.getDefaultInstance()) return this; + if (!other.getEchoData().isEmpty()) { + echoData_ = other.echoData_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.clientId_ != 0) { + setClientIdValue(other.getClientIdValue()); + } + if (!other.getDeviceId().isEmpty()) { + deviceId_ = other.deviceId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getAppVer().isEmpty()) { + appVer_ = other.appVer_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + echoData_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + clientId_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + deviceId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + appVer_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object echoData_ = ""; + /** + * string echoData = 1; + * @return The echoData. + */ + public java.lang.String getEchoData() { + java.lang.Object ref = echoData_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + echoData_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + public com.google.protobuf.ByteString + getEchoDataBytes() { + java.lang.Object ref = echoData_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + echoData_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string echoData = 1; + * @param value The echoData to set. + * @return This builder for chaining. + */ + public Builder setEchoData( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + echoData_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string echoData = 1; + * @return This builder for chaining. + */ + public Builder clearEchoData() { + echoData_ = getDefaultInstance().getEchoData(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string echoData = 1; + * @param value The bytes for echoData to set. + * @return This builder for chaining. + */ + public Builder setEchoDataBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + echoData_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int clientId_ = 0; + /** + * .ClientId clientId = 2; + * @return The enum numeric value on the wire for clientId. + */ + @java.lang.Override public int getClientIdValue() { + return clientId_; + } + /** + * .ClientId clientId = 2; + * @param value The enum numeric value on the wire for clientId to set. + * @return This builder for chaining. + */ + public Builder setClientIdValue(int value) { + clientId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .ClientId clientId = 2; + * @return The clientId. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId getClientId() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.forNumber(clientId_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId.UNRECOGNIZED : result; + } + /** + * .ClientId clientId = 2; + * @param value The clientId to set. + * @return This builder for chaining. + */ + public Builder setClientId(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.ClientId value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + clientId_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .ClientId clientId = 2; + * @return This builder for chaining. + */ + public Builder clearClientId() { + bitField0_ = (bitField0_ & ~0x00000002); + clientId_ = 0; + onChanged(); + return this; + } + + private java.lang.Object deviceId_ = ""; + /** + * string deviceId = 3; + * @return The deviceId. + */ + public java.lang.String getDeviceId() { + java.lang.Object ref = deviceId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deviceId = 3; + * @return The bytes for deviceId. + */ + public com.google.protobuf.ByteString + getDeviceIdBytes() { + java.lang.Object ref = deviceId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deviceId = 3; + * @param value The deviceId to set. + * @return This builder for chaining. + */ + public Builder setDeviceId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string deviceId = 3; + * @return This builder for chaining. + */ + public Builder clearDeviceId() { + deviceId_ = getDefaultInstance().getDeviceId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string deviceId = 3; + * @param value The bytes for deviceId to set. + * @return This builder for chaining. + */ + public Builder setDeviceIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object appVer_ = ""; + /** + * string appVer = 4; + * @return The appVer. + */ + public java.lang.String getAppVer() { + java.lang.Object ref = appVer_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appVer_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string appVer = 4; + * @return The bytes for appVer. + */ + public com.google.protobuf.ByteString + getAppVerBytes() { + java.lang.Object ref = appVer_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appVer_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string appVer = 4; + * @param value The appVer to set. + * @return This builder for chaining. + */ + public Builder setAppVer( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + appVer_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string appVer = 4; + * @return This builder for chaining. + */ + public Builder clearAppVer() { + appVer_ = getDefaultInstance().getAppVer(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string appVer = 4; + * @param value The bytes for appVer to set. + * @return This builder for chaining. + */ + public Builder setAppVerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + appVer_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSPing) + } + + // @@protoc_insertion_point(class_scope:CSPing) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSPing parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSPingOuterClass.CSPing getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSPing_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSPing_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014CSPing.proto\032\016ClientId.proto\"Y\n\006CSPing" + + "\022\020\n\010echoData\030\001 \001(\t\022\033\n\010clientId\030\002 \001(\0162\t.C" + + "lientId\022\020\n\010deviceId\030\003 \001(\t\022\016\n\006appVer\030\004 \001(" + + "\tB6\n4tech.ordinaryroad.live.chat.client." + + "kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor(), + }); + internal_static_CSPing_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSPing_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSPing_descriptor, + new java.lang.String[] { "EchoData", "ClientId", "DeviceId", "AppVer", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java new file mode 100644 index 00000000..8a6b1558 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebEnterRoomOuterClass.java @@ -0,0 +1,1363 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSWebEnterRoom.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSWebEnterRoomOuterClass { + private CSWebEnterRoomOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSWebEnterRoomOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSWebEnterRoom) + com.google.protobuf.MessageOrBuilder { + + /** + * string token = 1; + * @return The token. + */ + java.lang.String getToken(); + /** + * string token = 1; + * @return The bytes for token. + */ + com.google.protobuf.ByteString + getTokenBytes(); + + /** + * string liveStreamId = 2; + * @return The liveStreamId. + */ + java.lang.String getLiveStreamId(); + /** + * string liveStreamId = 2; + * @return The bytes for liveStreamId. + */ + com.google.protobuf.ByteString + getLiveStreamIdBytes(); + + /** + * uint32 reconnectCount = 3; + * @return The reconnectCount. + */ + int getReconnectCount(); + + /** + * uint32 lastErrorCode = 4; + * @return The lastErrorCode. + */ + int getLastErrorCode(); + + /** + * string expTag = 5; + * @return The expTag. + */ + java.lang.String getExpTag(); + /** + * string expTag = 5; + * @return The bytes for expTag. + */ + com.google.protobuf.ByteString + getExpTagBytes(); + + /** + * string attach = 6; + * @return The attach. + */ + java.lang.String getAttach(); + /** + * string attach = 6; + * @return The bytes for attach. + */ + com.google.protobuf.ByteString + getAttachBytes(); + + /** + * string pageId = 7; + * @return The pageId. + */ + java.lang.String getPageId(); + /** + * string pageId = 7; + * @return The bytes for pageId. + */ + com.google.protobuf.ByteString + getPageIdBytes(); + } + /** + * Protobuf type {@code CSWebEnterRoom} + */ + public static final class CSWebEnterRoom extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSWebEnterRoom) + CSWebEnterRoomOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSWebEnterRoom.newBuilder() to construct. + private CSWebEnterRoom(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSWebEnterRoom() { + token_ = ""; + liveStreamId_ = ""; + expTag_ = ""; + attach_ = ""; + pageId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSWebEnterRoom(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.Builder.class); + } + + public static final int TOKEN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object token_ = ""; + /** + * string token = 1; + * @return The token. + */ + @java.lang.Override + public java.lang.String getToken() { + java.lang.Object ref = token_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + token_ = s; + return s; + } + } + /** + * string token = 1; + * @return The bytes for token. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTokenBytes() { + java.lang.Object ref = token_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + token_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LIVESTREAMID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object liveStreamId_ = ""; + /** + * string liveStreamId = 2; + * @return The liveStreamId. + */ + @java.lang.Override + public java.lang.String getLiveStreamId() { + java.lang.Object ref = liveStreamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + liveStreamId_ = s; + return s; + } + } + /** + * string liveStreamId = 2; + * @return The bytes for liveStreamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLiveStreamIdBytes() { + java.lang.Object ref = liveStreamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + liveStreamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RECONNECTCOUNT_FIELD_NUMBER = 3; + private int reconnectCount_ = 0; + /** + * uint32 reconnectCount = 3; + * @return The reconnectCount. + */ + @java.lang.Override + public int getReconnectCount() { + return reconnectCount_; + } + + public static final int LASTERRORCODE_FIELD_NUMBER = 4; + private int lastErrorCode_ = 0; + /** + * uint32 lastErrorCode = 4; + * @return The lastErrorCode. + */ + @java.lang.Override + public int getLastErrorCode() { + return lastErrorCode_; + } + + public static final int EXPTAG_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object expTag_ = ""; + /** + * string expTag = 5; + * @return The expTag. + */ + @java.lang.Override + public java.lang.String getExpTag() { + java.lang.Object ref = expTag_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expTag_ = s; + return s; + } + } + /** + * string expTag = 5; + * @return The bytes for expTag. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExpTagBytes() { + java.lang.Object ref = expTag_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expTag_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ATTACH_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object attach_ = ""; + /** + * string attach = 6; + * @return The attach. + */ + @java.lang.Override + public java.lang.String getAttach() { + java.lang.Object ref = attach_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + attach_ = s; + return s; + } + } + /** + * string attach = 6; + * @return The bytes for attach. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAttachBytes() { + java.lang.Object ref = attach_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + attach_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAGEID_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object pageId_ = ""; + /** + * string pageId = 7; + * @return The pageId. + */ + @java.lang.Override + public java.lang.String getPageId() { + java.lang.Object ref = pageId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageId_ = s; + return s; + } + } + /** + * string pageId = 7; + * @return The bytes for pageId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPageIdBytes() { + java.lang.Object ref = pageId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pageId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, token_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveStreamId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, liveStreamId_); + } + if (reconnectCount_ != 0) { + output.writeUInt32(3, reconnectCount_); + } + if (lastErrorCode_ != 0) { + output.writeUInt32(4, lastErrorCode_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expTag_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, expTag_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attach_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, attach_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, pageId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(token_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, token_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(liveStreamId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, liveStreamId_); + } + if (reconnectCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, reconnectCount_); + } + if (lastErrorCode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, lastErrorCode_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(expTag_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, expTag_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attach_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, attach_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, pageId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom) obj; + + if (!getToken() + .equals(other.getToken())) return false; + if (!getLiveStreamId() + .equals(other.getLiveStreamId())) return false; + if (getReconnectCount() + != other.getReconnectCount()) return false; + if (getLastErrorCode() + != other.getLastErrorCode()) return false; + if (!getExpTag() + .equals(other.getExpTag())) return false; + if (!getAttach() + .equals(other.getAttach())) return false; + if (!getPageId() + .equals(other.getPageId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TOKEN_FIELD_NUMBER; + hash = (53 * hash) + getToken().hashCode(); + hash = (37 * hash) + LIVESTREAMID_FIELD_NUMBER; + hash = (53 * hash) + getLiveStreamId().hashCode(); + hash = (37 * hash) + RECONNECTCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getReconnectCount(); + hash = (37 * hash) + LASTERRORCODE_FIELD_NUMBER; + hash = (53 * hash) + getLastErrorCode(); + hash = (37 * hash) + EXPTAG_FIELD_NUMBER; + hash = (53 * hash) + getExpTag().hashCode(); + hash = (37 * hash) + ATTACH_FIELD_NUMBER; + hash = (53 * hash) + getAttach().hashCode(); + hash = (37 * hash) + PAGEID_FIELD_NUMBER; + hash = (53 * hash) + getPageId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSWebEnterRoom} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSWebEnterRoom) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoomOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + token_ = ""; + liveStreamId_ = ""; + reconnectCount_ = 0; + lastErrorCode_ = 0; + expTag_ = ""; + attach_ = ""; + pageId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.internal_static_CSWebEnterRoom_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.token_ = token_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.liveStreamId_ = liveStreamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.reconnectCount_ = reconnectCount_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.lastErrorCode_ = lastErrorCode_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.expTag_ = expTag_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.attach_ = attach_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.pageId_ = pageId_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom.getDefaultInstance()) return this; + if (!other.getToken().isEmpty()) { + token_ = other.token_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getLiveStreamId().isEmpty()) { + liveStreamId_ = other.liveStreamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getReconnectCount() != 0) { + setReconnectCount(other.getReconnectCount()); + } + if (other.getLastErrorCode() != 0) { + setLastErrorCode(other.getLastErrorCode()); + } + if (!other.getExpTag().isEmpty()) { + expTag_ = other.expTag_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (!other.getAttach().isEmpty()) { + attach_ = other.attach_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getPageId().isEmpty()) { + pageId_ = other.pageId_; + bitField0_ |= 0x00000040; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + token_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + liveStreamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + reconnectCount_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + lastErrorCode_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + expTag_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + attach_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + pageId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object token_ = ""; + /** + * string token = 1; + * @return The token. + */ + public java.lang.String getToken() { + java.lang.Object ref = token_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + token_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string token = 1; + * @return The bytes for token. + */ + public com.google.protobuf.ByteString + getTokenBytes() { + java.lang.Object ref = token_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + token_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string token = 1; + * @param value The token to set. + * @return This builder for chaining. + */ + public Builder setToken( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + token_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string token = 1; + * @return This builder for chaining. + */ + public Builder clearToken() { + token_ = getDefaultInstance().getToken(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string token = 1; + * @param value The bytes for token to set. + * @return This builder for chaining. + */ + public Builder setTokenBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + token_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object liveStreamId_ = ""; + /** + * string liveStreamId = 2; + * @return The liveStreamId. + */ + public java.lang.String getLiveStreamId() { + java.lang.Object ref = liveStreamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + liveStreamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string liveStreamId = 2; + * @return The bytes for liveStreamId. + */ + public com.google.protobuf.ByteString + getLiveStreamIdBytes() { + java.lang.Object ref = liveStreamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + liveStreamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string liveStreamId = 2; + * @param value The liveStreamId to set. + * @return This builder for chaining. + */ + public Builder setLiveStreamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + liveStreamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string liveStreamId = 2; + * @return This builder for chaining. + */ + public Builder clearLiveStreamId() { + liveStreamId_ = getDefaultInstance().getLiveStreamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string liveStreamId = 2; + * @param value The bytes for liveStreamId to set. + * @return This builder for chaining. + */ + public Builder setLiveStreamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + liveStreamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int reconnectCount_ ; + /** + * uint32 reconnectCount = 3; + * @return The reconnectCount. + */ + @java.lang.Override + public int getReconnectCount() { + return reconnectCount_; + } + /** + * uint32 reconnectCount = 3; + * @param value The reconnectCount to set. + * @return This builder for chaining. + */ + public Builder setReconnectCount(int value) { + + reconnectCount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint32 reconnectCount = 3; + * @return This builder for chaining. + */ + public Builder clearReconnectCount() { + bitField0_ = (bitField0_ & ~0x00000004); + reconnectCount_ = 0; + onChanged(); + return this; + } + + private int lastErrorCode_ ; + /** + * uint32 lastErrorCode = 4; + * @return The lastErrorCode. + */ + @java.lang.Override + public int getLastErrorCode() { + return lastErrorCode_; + } + /** + * uint32 lastErrorCode = 4; + * @param value The lastErrorCode to set. + * @return This builder for chaining. + */ + public Builder setLastErrorCode(int value) { + + lastErrorCode_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 lastErrorCode = 4; + * @return This builder for chaining. + */ + public Builder clearLastErrorCode() { + bitField0_ = (bitField0_ & ~0x00000008); + lastErrorCode_ = 0; + onChanged(); + return this; + } + + private java.lang.Object expTag_ = ""; + /** + * string expTag = 5; + * @return The expTag. + */ + public java.lang.String getExpTag() { + java.lang.Object ref = expTag_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expTag_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string expTag = 5; + * @return The bytes for expTag. + */ + public com.google.protobuf.ByteString + getExpTagBytes() { + java.lang.Object ref = expTag_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expTag_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string expTag = 5; + * @param value The expTag to set. + * @return This builder for chaining. + */ + public Builder setExpTag( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + expTag_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string expTag = 5; + * @return This builder for chaining. + */ + public Builder clearExpTag() { + expTag_ = getDefaultInstance().getExpTag(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string expTag = 5; + * @param value The bytes for expTag to set. + * @return This builder for chaining. + */ + public Builder setExpTagBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + expTag_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object attach_ = ""; + /** + * string attach = 6; + * @return The attach. + */ + public java.lang.String getAttach() { + java.lang.Object ref = attach_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + attach_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string attach = 6; + * @return The bytes for attach. + */ + public com.google.protobuf.ByteString + getAttachBytes() { + java.lang.Object ref = attach_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + attach_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string attach = 6; + * @param value The attach to set. + * @return This builder for chaining. + */ + public Builder setAttach( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + attach_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string attach = 6; + * @return This builder for chaining. + */ + public Builder clearAttach() { + attach_ = getDefaultInstance().getAttach(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string attach = 6; + * @param value The bytes for attach to set. + * @return This builder for chaining. + */ + public Builder setAttachBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + attach_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object pageId_ = ""; + /** + * string pageId = 7; + * @return The pageId. + */ + public java.lang.String getPageId() { + java.lang.Object ref = pageId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pageId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pageId = 7; + * @return The bytes for pageId. + */ + public com.google.protobuf.ByteString + getPageIdBytes() { + java.lang.Object ref = pageId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pageId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pageId = 7; + * @param value The pageId to set. + * @return This builder for chaining. + */ + public Builder setPageId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pageId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string pageId = 7; + * @return This builder for chaining. + */ + public Builder clearPageId() { + pageId_ = getDefaultInstance().getPageId(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string pageId = 7; + * @param value The bytes for pageId to set. + * @return This builder for chaining. + */ + public Builder setPageIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pageId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSWebEnterRoom) + } + + // @@protoc_insertion_point(class_scope:CSWebEnterRoom) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSWebEnterRoom parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebEnterRoomOuterClass.CSWebEnterRoom getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSWebEnterRoom_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSWebEnterRoom_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024CSWebEnterRoom.proto\"\224\001\n\016CSWebEnterRoo" + + "m\022\r\n\005token\030\001 \001(\t\022\024\n\014liveStreamId\030\002 \001(\t\022\026" + + "\n\016reconnectCount\030\003 \001(\r\022\025\n\rlastErrorCode\030" + + "\004 \001(\r\022\016\n\006expTag\030\005 \001(\t\022\016\n\006attach\030\006 \001(\t\022\016\n" + + "\006pageId\030\007 \001(\tB6\n4tech.ordinaryroad.live." + + "chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSWebEnterRoom_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSWebEnterRoom_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSWebEnterRoom_descriptor, + new java.lang.String[] { "Token", "LiveStreamId", "ReconnectCount", "LastErrorCode", "ExpTag", "Attach", "PageId", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java new file mode 100644 index 00000000..7eacbd52 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebErrorOuterClass.java @@ -0,0 +1,697 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSWebError.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSWebErrorOuterClass { + private CSWebErrorOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSWebErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSWebError) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 code = 1; + * @return The code. + */ + int getCode(); + + /** + * string msg = 2; + * @return The msg. + */ + java.lang.String getMsg(); + /** + * string msg = 2; + * @return The bytes for msg. + */ + com.google.protobuf.ByteString + getMsgBytes(); + } + /** + * Protobuf type {@code CSWebError} + */ + public static final class CSWebError extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSWebError) + CSWebErrorOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSWebError.newBuilder() to construct. + private CSWebError(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSWebError() { + msg_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSWebError(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + private int code_ = 0; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + + public static final int MSG_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + @java.lang.Override + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (code_ != 0) { + output.writeUInt32(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError) obj; + + if (getCode() + != other.getCode()) return false; + if (!getMsg() + .equals(other.getMsg())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + hash = (37 * hash) + MSG_FIELD_NUMBER; + hash = (53 * hash) + getMsg().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSWebError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSWebError) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = 0; + msg_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.internal_static_CSWebError_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.msg_ = msg_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError.getDefaultInstance()) return this; + if (other.getCode() != 0) { + setCode(other.getCode()); + } + if (!other.getMsg().isEmpty()) { + msg_ = other.msg_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + code_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + msg_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int code_ ; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + /** + * uint32 code = 1; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(int value) { + + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + bitField0_ = (bitField0_ & ~0x00000001); + code_ = 0; + onChanged(); + return this; + } + + private java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msg = 2; + * @param value The msg to set. + * @return This builder for chaining. + */ + public Builder setMsg( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string msg = 2; + * @return This builder for chaining. + */ + public Builder clearMsg() { + msg_ = getDefaultInstance().getMsg(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string msg = 2; + * @param value The bytes for msg to set. + * @return This builder for chaining. + */ + public Builder setMsgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSWebError) + } + + // @@protoc_insertion_point(class_scope:CSWebError) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSWebError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebErrorOuterClass.CSWebError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSWebError_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSWebError_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020CSWebError.proto\"\'\n\nCSWebError\022\014\n\004code" + + "\030\001 \001(\r\022\013\n\003msg\030\002 \001(\tB6\n4tech.ordinaryroad" + + ".live.chat.client.kuaishou.protobufb\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSWebError_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSWebError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSWebError_descriptor, + new java.lang.String[] { "Code", "Msg", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java new file mode 100644 index 00000000..f2c5d4e9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebHeartbeatOuterClass.java @@ -0,0 +1,550 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSWebHeartbeat.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSWebHeartbeatOuterClass { + private CSWebHeartbeatOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSWebHeartbeatOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSWebHeartbeat) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + long getTimestamp(); + } + /** + * Protobuf type {@code CSWebHeartbeat} + */ + public static final class CSWebHeartbeat extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSWebHeartbeat) + CSWebHeartbeatOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSWebHeartbeat.newBuilder() to construct. + private CSWebHeartbeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSWebHeartbeat() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSWebHeartbeat(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.Builder.class); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private long timestamp_ = 0L; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestamp_ != 0L) { + output.writeUInt64(1, timestamp_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, timestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat) obj; + + if (getTimestamp() + != other.getTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSWebHeartbeat} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSWebHeartbeat) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.internal_static_CSWebHeartbeat_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat.getDefaultInstance()) return this; + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestamp_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long timestamp_ ; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + * uint64 timestamp = 1; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSWebHeartbeat) + } + + // @@protoc_insertion_point(class_scope:CSWebHeartbeat) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSWebHeartbeat parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebHeartbeatOuterClass.CSWebHeartbeat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSWebHeartbeat_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSWebHeartbeat_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024CSWebHeartbeat.proto\"#\n\016CSWebHeartbeat" + + "\022\021\n\ttimestamp\030\001 \001(\004B6\n4tech.ordinaryroad" + + ".live.chat.client.kuaishou.protobufb\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSWebHeartbeat_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSWebHeartbeat_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSWebHeartbeat_descriptor, + new java.lang.String[] { "Timestamp", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java new file mode 100644 index 00000000..ebd72e51 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserExitOuterClass.java @@ -0,0 +1,549 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSWebUserExit.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSWebUserExitOuterClass { + private CSWebUserExitOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSWebUserExitOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSWebUserExit) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + } + /** + * Protobuf type {@code CSWebUserExit} + */ + public static final class CSWebUserExit extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSWebUserExit) + CSWebUserExitOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSWebUserExit.newBuilder() to construct. + private CSWebUserExit(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSWebUserExit() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSWebUserExit(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit) obj; + + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSWebUserExit} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSWebUserExit) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExitOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.internal_static_CSWebUserExit_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSWebUserExit) + } + + // @@protoc_insertion_point(class_scope:CSWebUserExit) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSWebUserExit parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserExitOuterClass.CSWebUserExit getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSWebUserExit_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSWebUserExit_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023CSWebUserExit.proto\"\035\n\rCSWebUserExit\022\014" + + "\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.live.c" + + "hat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_CSWebUserExit_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSWebUserExit_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSWebUserExit_descriptor, + new java.lang.String[] { "Time", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java new file mode 100644 index 00000000..a5527f18 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/CSWebUserPauseOuterClass.java @@ -0,0 +1,658 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: CSWebUserPause.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class CSWebUserPauseOuterClass { + private CSWebUserPauseOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface CSWebUserPauseOrBuilder extends + // @@protoc_insertion_point(interface_extends:CSWebUserPause) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + + /** + * .WebUserPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + int getPauseTypeValue(); + /** + * .WebUserPauseType pauseType = 2; + * @return The pauseType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType(); + } + /** + * Protobuf type {@code CSWebUserPause} + */ + public static final class CSWebUserPause extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:CSWebUserPause) + CSWebUserPauseOrBuilder { + private static final long serialVersionUID = 0L; + // Use CSWebUserPause.newBuilder() to construct. + private CSWebUserPause(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private CSWebUserPause() { + pauseType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new CSWebUserPause(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int PAUSETYPE_FIELD_NUMBER = 2; + private int pauseType_ = 0; + /** + * .WebUserPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + @java.lang.Override public int getPauseTypeValue() { + return pauseType_; + } + /** + * .WebUserPauseType pauseType = 2; + * @return The pauseType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.forNumber(pauseType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNKNOWN_USER_PAUSE_TYPE.getNumber()) { + output.writeEnum(2, pauseType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNKNOWN_USER_PAUSE_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, pauseType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause) obj; + + if (getTime() + != other.getTime()) return false; + if (pauseType_ != other.pauseType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + PAUSETYPE_FIELD_NUMBER; + hash = (53 * hash) + pauseType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code CSWebUserPause} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:CSWebUserPause) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPauseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + pauseType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.internal_static_CSWebUserPause_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.pauseType_ = pauseType_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (other.pauseType_ != 0) { + setPauseTypeValue(other.getPauseTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + pauseType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + + private int pauseType_ = 0; + /** + * .WebUserPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + @java.lang.Override public int getPauseTypeValue() { + return pauseType_; + } + /** + * .WebUserPauseType pauseType = 2; + * @param value The enum numeric value on the wire for pauseType to set. + * @return This builder for chaining. + */ + public Builder setPauseTypeValue(int value) { + pauseType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .WebUserPauseType pauseType = 2; + * @return The pauseType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType getPauseType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.forNumber(pauseType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType.UNRECOGNIZED : result; + } + /** + * .WebUserPauseType pauseType = 2; + * @param value The pauseType to set. + * @return This builder for chaining. + */ + public Builder setPauseType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.WebUserPauseType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + pauseType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebUserPauseType pauseType = 2; + * @return This builder for chaining. + */ + public Builder clearPauseType() { + bitField0_ = (bitField0_ & ~0x00000002); + pauseType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:CSWebUserPause) + } + + // @@protoc_insertion_point(class_scope:CSWebUserPause) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CSWebUserPause parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.CSWebUserPauseOuterClass.CSWebUserPause getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_CSWebUserPause_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_CSWebUserPause_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024CSWebUserPause.proto\032\026WebUserPauseType" + + ".proto\"D\n\016CSWebUserPause\022\014\n\004time\030\001 \001(\004\022$" + + "\n\tpauseType\030\002 \001(\0162\021.WebUserPauseTypeB6\n4" + + "tech.ordinaryroad.live.chat.client.kuais" + + "hou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor(), + }); + internal_static_CSWebUserPause_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_CSWebUserPause_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_CSWebUserPause_descriptor, + new java.lang.String[] { "Time", "PauseType", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java new file mode 100644 index 00000000..41434dea --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ClientIdOuterClass.java @@ -0,0 +1,216 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ClientId.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class ClientIdOuterClass { + private ClientIdOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code ClientId} + */ + public enum ClientId + implements com.google.protobuf.ProtocolMessageEnum { + /** + * NONE = 0; + */ + NONE(0), + /** + * IPHONE = 1; + */ + IPHONE(1), + /** + * ANDROID = 2; + */ + ANDROID(2), + /** + * WEB = 3; + */ + WEB(3), + /** + * PC = 6; + */ + PC(6), + /** + * IPHONE_LIVE_MATE = 8; + */ + IPHONE_LIVE_MATE(8), + /** + * ANDROID_LIVE_MATE = 9; + */ + ANDROID_LIVE_MATE(9), + UNRECOGNIZED(-1), + ; + + /** + * NONE = 0; + */ + public static final int NONE_VALUE = 0; + /** + * IPHONE = 1; + */ + public static final int IPHONE_VALUE = 1; + /** + * ANDROID = 2; + */ + public static final int ANDROID_VALUE = 2; + /** + * WEB = 3; + */ + public static final int WEB_VALUE = 3; + /** + * PC = 6; + */ + public static final int PC_VALUE = 6; + /** + * IPHONE_LIVE_MATE = 8; + */ + public static final int IPHONE_LIVE_MATE_VALUE = 8; + /** + * ANDROID_LIVE_MATE = 9; + */ + public static final int ANDROID_LIVE_MATE_VALUE = 9; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ClientId valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ClientId forNumber(int value) { + switch (value) { + case 0: return NONE; + case 1: return IPHONE; + case 2: return ANDROID; + case 3: return WEB; + case 6: return PC; + case 8: return IPHONE_LIVE_MATE; + case 9: return ANDROID_LIVE_MATE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ClientId> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ClientId findValueByNumber(int number) { + return ClientId.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ClientIdOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final ClientId[] VALUES = values(); + + public static ClientId valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ClientId(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:ClientId) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\016ClientId.proto*k\n\010ClientId\022\010\n\004NONE\020\000\022\n" + + "\n\006IPHONE\020\001\022\013\n\007ANDROID\020\002\022\007\n\003WEB\020\003\022\006\n\002PC\020\006" + + "\022\024\n\020IPHONE_LIVE_MATE\020\010\022\025\n\021ANDROID_LIVE_M" + + "ATE\020\tB6\n4tech.ordinaryroad.live.chat.cli" + + "ent.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java new file mode 100644 index 00000000..f73716d1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchItemOuterClass.java @@ -0,0 +1,658 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ConfigSwitchItem.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class ConfigSwitchItemOuterClass { + private ConfigSwitchItemOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface ConfigSwitchItemOrBuilder extends + // @@protoc_insertion_point(interface_extends:ConfigSwitchItem) + com.google.protobuf.MessageOrBuilder { + + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The enum numeric value on the wire for configSwitchType. + */ + int getConfigSwitchTypeValue(); + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The configSwitchType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType(); + + /** + * bool value = 2; + * @return The value. + */ + boolean getValue(); + } + /** + * Protobuf type {@code ConfigSwitchItem} + */ + public static final class ConfigSwitchItem extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ConfigSwitchItem) + ConfigSwitchItemOrBuilder { + private static final long serialVersionUID = 0L; + // Use ConfigSwitchItem.newBuilder() to construct. + private ConfigSwitchItem(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ConfigSwitchItem() { + configSwitchType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ConfigSwitchItem(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder.class); + } + + public static final int CONFIGSWITCHTYPE_FIELD_NUMBER = 1; + private int configSwitchType_ = 0; + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The enum numeric value on the wire for configSwitchType. + */ + @java.lang.Override public int getConfigSwitchTypeValue() { + return configSwitchType_; + } + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The configSwitchType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.forNumber(configSwitchType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNRECOGNIZED : result; + } + + public static final int VALUE_FIELD_NUMBER = 2; + private boolean value_ = false; + /** + * bool value = 2; + * @return The value. + */ + @java.lang.Override + public boolean getValue() { + return value_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (configSwitchType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNKNOWN.getNumber()) { + output.writeEnum(1, configSwitchType_); + } + if (value_ != false) { + output.writeBool(2, value_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (configSwitchType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, configSwitchType_); + } + if (value_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, value_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem) obj; + + if (configSwitchType_ != other.configSwitchType_) return false; + if (getValue() + != other.getValue()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONFIGSWITCHTYPE_FIELD_NUMBER; + hash = (53 * hash) + configSwitchType_; + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getValue()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ConfigSwitchItem} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ConfigSwitchItem) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + configSwitchType_ = 0; + value_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.internal_static_ConfigSwitchItem_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.configSwitchType_ = configSwitchType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.value_ = value_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()) return this; + if (other.configSwitchType_ != 0) { + setConfigSwitchTypeValue(other.getConfigSwitchTypeValue()); + } + if (other.getValue() != false) { + setValue(other.getValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + configSwitchType_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + value_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int configSwitchType_ = 0; + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The enum numeric value on the wire for configSwitchType. + */ + @java.lang.Override public int getConfigSwitchTypeValue() { + return configSwitchType_; + } + /** + * .ConfigSwitchType configSwitchType = 1; + * @param value The enum numeric value on the wire for configSwitchType to set. + * @return This builder for chaining. + */ + public Builder setConfigSwitchTypeValue(int value) { + configSwitchType_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .ConfigSwitchType configSwitchType = 1; + * @return The configSwitchType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType getConfigSwitchType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.forNumber(configSwitchType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType.UNRECOGNIZED : result; + } + /** + * .ConfigSwitchType configSwitchType = 1; + * @param value The configSwitchType to set. + * @return This builder for chaining. + */ + public Builder setConfigSwitchType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.ConfigSwitchType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + configSwitchType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .ConfigSwitchType configSwitchType = 1; + * @return This builder for chaining. + */ + public Builder clearConfigSwitchType() { + bitField0_ = (bitField0_ & ~0x00000001); + configSwitchType_ = 0; + onChanged(); + return this; + } + + private boolean value_ ; + /** + * bool value = 2; + * @return The value. + */ + @java.lang.Override + public boolean getValue() { + return value_; + } + /** + * bool value = 2; + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(boolean value) { + + value_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool value = 2; + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000002); + value_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:ConfigSwitchItem) + } + + // @@protoc_insertion_point(class_scope:ConfigSwitchItem) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ConfigSwitchItem parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ConfigSwitchItem_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ConfigSwitchItem_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026ConfigSwitchItem.proto\032\026ConfigSwitchTy" + + "pe.proto\"N\n\020ConfigSwitchItem\022+\n\020configSw" + + "itchType\030\001 \001(\0162\021.ConfigSwitchType\022\r\n\005val" + + "ue\030\002 \001(\010B6\n4tech.ordinaryroad.live.chat." + + "client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor(), + }); + internal_static_ConfigSwitchItem_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_ConfigSwitchItem_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_ConfigSwitchItem_descriptor, + new java.lang.String[] { "ConfigSwitchType", "Value", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java new file mode 100644 index 00000000..0a53ef22 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/ConfigSwitchTypeOuterClass.java @@ -0,0 +1,180 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: ConfigSwitchType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class ConfigSwitchTypeOuterClass { + private ConfigSwitchTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code ConfigSwitchType} + */ + public enum ConfigSwitchType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + * HIDE_BARRAGE = 1; + */ + HIDE_BARRAGE(1), + /** + * HIDE_SPECIAL_EFFECT = 2; + */ + HIDE_SPECIAL_EFFECT(2), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * HIDE_BARRAGE = 1; + */ + public static final int HIDE_BARRAGE_VALUE = 1; + /** + * HIDE_SPECIAL_EFFECT = 2; + */ + public static final int HIDE_SPECIAL_EFFECT_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConfigSwitchType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ConfigSwitchType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN; + case 1: return HIDE_BARRAGE; + case 2: return HIDE_SPECIAL_EFFECT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ConfigSwitchType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ConfigSwitchType findValueByNumber(int number) { + return ConfigSwitchType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final ConfigSwitchType[] VALUES = values(); + + public static ConfigSwitchType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ConfigSwitchType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:ConfigSwitchType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026ConfigSwitchType.proto*J\n\020ConfigSwitch" + + "Type\022\013\n\007UNKNOWN\020\000\022\020\n\014HIDE_BARRAGE\020\001\022\027\n\023H" + + "IDE_SPECIAL_EFFECT\020\002B6\n4tech.ordinaryroa" + + "d.live.chat.client.kuaishou.protobufb\006pr" + + "oto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java new file mode 100644 index 00000000..318cd1d5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/GzoneNameplateOuterClass.java @@ -0,0 +1,1079 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: GzoneNameplate.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class GzoneNameplateOuterClass { + private GzoneNameplateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface GzoneNameplateOrBuilder extends + // @@protoc_insertion_point(interface_extends:GzoneNameplate) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 id = 1; + * @return The id. + */ + long getId(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + * repeated .PicUrl urls = 3; + */ + java.util.List + getUrlsList(); + /** + * repeated .PicUrl urls = 3; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index); + /** + * repeated .PicUrl urls = 3; + */ + int getUrlsCount(); + /** + * repeated .PicUrl urls = 3; + */ + java.util.List + getUrlsOrBuilderList(); + /** + * repeated .PicUrl urls = 3; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( + int index); + } + /** + * Protobuf type {@code GzoneNameplate} + */ + public static final class GzoneNameplate extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:GzoneNameplate) + GzoneNameplateOrBuilder { + private static final long serialVersionUID = 0L; + // Use GzoneNameplate.newBuilder() to construct. + private GzoneNameplate(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private GzoneNameplate() { + name_ = ""; + urls_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GzoneNameplate(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + private long id_ = 0L; + /** + * int64 id = 1; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + + public static final int NAME_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int URLS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private java.util.List urls_; + /** + * repeated .PicUrl urls = 3; + */ + @java.lang.Override + public java.util.List getUrlsList() { + return urls_; + } + /** + * repeated .PicUrl urls = 3; + */ + @java.lang.Override + public java.util.List + getUrlsOrBuilderList() { + return urls_; + } + /** + * repeated .PicUrl urls = 3; + */ + @java.lang.Override + public int getUrlsCount() { + return urls_.size(); + } + /** + * repeated .PicUrl urls = 3; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index) { + return urls_.get(index); + } + /** + * repeated .PicUrl urls = 3; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( + int index) { + return urls_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (id_ != 0L) { + output.writeInt64(1, id_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + for (int i = 0; i < urls_.size(); i++) { + output.writeMessage(3, urls_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (id_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, id_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + for (int i = 0; i < urls_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, urls_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate) obj; + + if (getId() + != other.getId()) return false; + if (!getName() + .equals(other.getName())) return false; + if (!getUrlsList() + .equals(other.getUrlsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getId()); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (getUrlsCount() > 0) { + hash = (37 * hash) + URLS_FIELD_NUMBER; + hash = (53 * hash) + getUrlsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code GzoneNameplate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:GzoneNameplate) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = 0L; + name_ = ""; + if (urlsBuilder_ == null) { + urls_ = java.util.Collections.emptyList(); + } else { + urls_ = null; + urlsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.internal_static_GzoneNameplate_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result) { + if (urlsBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + urls_ = java.util.Collections.unmodifiableList(urls_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.urls_ = urls_; + } else { + result.urls_ = urlsBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance()) return this; + if (other.getId() != 0L) { + setId(other.getId()); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (urlsBuilder_ == null) { + if (!other.urls_.isEmpty()) { + if (urls_.isEmpty()) { + urls_ = other.urls_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureUrlsIsMutable(); + urls_.addAll(other.urls_); + } + onChanged(); + } + } else { + if (!other.urls_.isEmpty()) { + if (urlsBuilder_.isEmpty()) { + urlsBuilder_.dispose(); + urlsBuilder_ = null; + urls_ = other.urls_; + bitField0_ = (bitField0_ & ~0x00000004); + urlsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getUrlsFieldBuilder() : null; + } else { + urlsBuilder_.addAllMessages(other.urls_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + id_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), + extensionRegistry); + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + urls_.add(m); + } else { + urlsBuilder_.addMessage(m); + } + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long id_ ; + /** + * int64 id = 1; + * @return The id. + */ + @java.lang.Override + public long getId() { + return id_; + } + /** + * int64 id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(long value) { + + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int64 id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object name_ = ""; + /** + * string name = 2; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name = 2; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string name = 2; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List urls_ = + java.util.Collections.emptyList(); + private void ensureUrlsIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + urls_ = new java.util.ArrayList(urls_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> urlsBuilder_; + + /** + * repeated .PicUrl urls = 3; + */ + public java.util.List getUrlsList() { + if (urlsBuilder_ == null) { + return java.util.Collections.unmodifiableList(urls_); + } else { + return urlsBuilder_.getMessageList(); + } + } + /** + * repeated .PicUrl urls = 3; + */ + public int getUrlsCount() { + if (urlsBuilder_ == null) { + return urls_.size(); + } else { + return urlsBuilder_.getCount(); + } + } + /** + * repeated .PicUrl urls = 3; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getUrls(int index) { + if (urlsBuilder_ == null) { + return urls_.get(index); + } else { + return urlsBuilder_.getMessage(index); + } + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder setUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (urlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.set(index, value); + onChanged(); + } else { + urlsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder setUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + urls_.set(index, builderForValue.build()); + onChanged(); + } else { + urlsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder addUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (urlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(value); + onChanged(); + } else { + urlsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder addUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (urlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureUrlsIsMutable(); + urls_.add(index, value); + onChanged(); + } else { + urlsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder addUrls( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + urls_.add(builderForValue.build()); + onChanged(); + } else { + urlsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder addUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + urls_.add(index, builderForValue.build()); + onChanged(); + } else { + urlsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder addAllUrls( + java.lang.Iterable values) { + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, urls_); + onChanged(); + } else { + urlsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder clearUrls() { + if (urlsBuilder_ == null) { + urls_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + urlsBuilder_.clear(); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public Builder removeUrls(int index) { + if (urlsBuilder_ == null) { + ensureUrlsIsMutable(); + urls_.remove(index); + onChanged(); + } else { + urlsBuilder_.remove(index); + } + return this; + } + /** + * repeated .PicUrl urls = 3; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getUrlsBuilder( + int index) { + return getUrlsFieldBuilder().getBuilder(index); + } + /** + * repeated .PicUrl urls = 3; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getUrlsOrBuilder( + int index) { + if (urlsBuilder_ == null) { + return urls_.get(index); } else { + return urlsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .PicUrl urls = 3; + */ + public java.util.List + getUrlsOrBuilderList() { + if (urlsBuilder_ != null) { + return urlsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(urls_); + } + } + /** + * repeated .PicUrl urls = 3; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addUrlsBuilder() { + return getUrlsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl urls = 3; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addUrlsBuilder( + int index) { + return getUrlsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl urls = 3; + */ + public java.util.List + getUrlsBuilderList() { + return getUrlsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> + getUrlsFieldBuilder() { + if (urlsBuilder_ == null) { + urlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( + urls_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + urls_ = null; + } + return urlsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:GzoneNameplate) + } + + // @@protoc_insertion_point(class_scope:GzoneNameplate) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GzoneNameplate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GzoneNameplate_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_GzoneNameplate_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024GzoneNameplate.proto\032\014PicUrl.proto\"A\n\016" + + "GzoneNameplate\022\n\n\002id\030\001 \001(\003\022\014\n\004name\030\002 \001(\t" + + "\022\025\n\004urls\030\003 \003(\0132\007.PicUrlB6\n4tech.ordinary" + + "road.live.chat.client.kuaishou.protobufb" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(), + }); + internal_static_GzoneNameplate_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_GzoneNameplate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_GzoneNameplate_descriptor, + new java.lang.String[] { "Id", "Name", "Urls", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java new file mode 100644 index 00000000..b5f94ecb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveAudienceStateOuterClass.java @@ -0,0 +1,1541 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: LiveAudienceState.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class LiveAudienceStateOuterClass { + private LiveAudienceStateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface LiveAudienceStateOrBuilder extends + // @@protoc_insertion_point(interface_extends:LiveAudienceState) + com.google.protobuf.MessageOrBuilder { + + /** + * bool isFromFansTop = 1; + * @return The isFromFansTop. + */ + boolean getIsFromFansTop(); + + /** + * bool isKoi = 2; + * @return The isKoi. + */ + boolean getIsKoi(); + + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The enum numeric value on the wire for assistantType. + */ + int getAssistantTypeValue(); + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The assistantType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType(); + + /** + * uint32 fansGroupIntimacyLevel = 4; + * @return The fansGroupIntimacyLevel. + */ + int getFansGroupIntimacyLevel(); + + /** + * .GzoneNameplate nameplate = 5; + * @return Whether the nameplate field is set. + */ + boolean hasNameplate(); + /** + * .GzoneNameplate nameplate = 5; + * @return The nameplate. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate(); + /** + * .GzoneNameplate nameplate = 5; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder(); + + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return Whether the liveFansGroupState field is set. + */ + boolean hasLiveFansGroupState(); + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return The liveFansGroupState. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState(); + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder(); + + /** + * uint32 wealthGrade = 7; + * @return The wealthGrade. + */ + int getWealthGrade(); + + /** + * string badgeKey = 8; + * @return The badgeKey. + */ + java.lang.String getBadgeKey(); + /** + * string badgeKey = 8; + * @return The bytes for badgeKey. + */ + com.google.protobuf.ByteString + getBadgeKeyBytes(); + } + /** + * Protobuf type {@code LiveAudienceState} + */ + public static final class LiveAudienceState extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:LiveAudienceState) + LiveAudienceStateOrBuilder { + private static final long serialVersionUID = 0L; + // Use LiveAudienceState.newBuilder() to construct. + private LiveAudienceState(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private LiveAudienceState() { + assistantType_ = 0; + badgeKey_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new LiveAudienceState(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder.class); + } + + /** + * Protobuf enum {@code LiveAudienceState.AssistantType} + */ + public enum AssistantType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_ASSISTANT_TYPE = 0; + */ + UNKNOWN_ASSISTANT_TYPE(0), + /** + * SUPER = 1; + */ + SUPER(1), + /** + * JUNIOR = 2; + */ + JUNIOR(2), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_ASSISTANT_TYPE = 0; + */ + public static final int UNKNOWN_ASSISTANT_TYPE_VALUE = 0; + /** + * SUPER = 1; + */ + public static final int SUPER_VALUE = 1; + /** + * JUNIOR = 2; + */ + public static final int JUNIOR_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AssistantType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AssistantType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_ASSISTANT_TYPE; + case 1: return SUPER; + case 2: return JUNIOR; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + AssistantType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public AssistantType findValueByNumber(int number) { + return AssistantType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDescriptor().getEnumTypes().get(0); + } + + private static final AssistantType[] VALUES = values(); + + public static AssistantType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private AssistantType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:LiveAudienceState.AssistantType) + } + + public static final int ISFROMFANSTOP_FIELD_NUMBER = 1; + private boolean isFromFansTop_ = false; + /** + * bool isFromFansTop = 1; + * @return The isFromFansTop. + */ + @java.lang.Override + public boolean getIsFromFansTop() { + return isFromFansTop_; + } + + public static final int ISKOI_FIELD_NUMBER = 2; + private boolean isKoi_ = false; + /** + * bool isKoi = 2; + * @return The isKoi. + */ + @java.lang.Override + public boolean getIsKoi() { + return isKoi_; + } + + public static final int ASSISTANTTYPE_FIELD_NUMBER = 3; + private int assistantType_ = 0; + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The enum numeric value on the wire for assistantType. + */ + @java.lang.Override public int getAssistantTypeValue() { + return assistantType_; + } + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The assistantType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.forNumber(assistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNRECOGNIZED : result; + } + + public static final int FANSGROUPINTIMACYLEVEL_FIELD_NUMBER = 4; + private int fansGroupIntimacyLevel_ = 0; + /** + * uint32 fansGroupIntimacyLevel = 4; + * @return The fansGroupIntimacyLevel. + */ + @java.lang.Override + public int getFansGroupIntimacyLevel() { + return fansGroupIntimacyLevel_; + } + + public static final int NAMEPLATE_FIELD_NUMBER = 5; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate nameplate_; + /** + * .GzoneNameplate nameplate = 5; + * @return Whether the nameplate field is set. + */ + @java.lang.Override + public boolean hasNameplate() { + return nameplate_ != null; + } + /** + * .GzoneNameplate nameplate = 5; + * @return The nameplate. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate() { + return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; + } + /** + * .GzoneNameplate nameplate = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder() { + return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; + } + + public static final int LIVEFANSGROUPSTATE_FIELD_NUMBER = 6; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState liveFansGroupState_; + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return Whether the liveFansGroupState field is set. + */ + @java.lang.Override + public boolean hasLiveFansGroupState() { + return liveFansGroupState_ != null; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return The liveFansGroupState. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState() { + return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder() { + return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; + } + + public static final int WEALTHGRADE_FIELD_NUMBER = 7; + private int wealthGrade_ = 0; + /** + * uint32 wealthGrade = 7; + * @return The wealthGrade. + */ + @java.lang.Override + public int getWealthGrade() { + return wealthGrade_; + } + + public static final int BADGEKEY_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object badgeKey_ = ""; + /** + * string badgeKey = 8; + * @return The badgeKey. + */ + @java.lang.Override + public java.lang.String getBadgeKey() { + java.lang.Object ref = badgeKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + badgeKey_ = s; + return s; + } + } + /** + * string badgeKey = 8; + * @return The bytes for badgeKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBadgeKeyBytes() { + java.lang.Object ref = badgeKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + badgeKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (isFromFansTop_ != false) { + output.writeBool(1, isFromFansTop_); + } + if (isKoi_ != false) { + output.writeBool(2, isKoi_); + } + if (assistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + output.writeEnum(3, assistantType_); + } + if (fansGroupIntimacyLevel_ != 0) { + output.writeUInt32(4, fansGroupIntimacyLevel_); + } + if (nameplate_ != null) { + output.writeMessage(5, getNameplate()); + } + if (liveFansGroupState_ != null) { + output.writeMessage(6, getLiveFansGroupState()); + } + if (wealthGrade_ != 0) { + output.writeUInt32(7, wealthGrade_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(badgeKey_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 8, badgeKey_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (isFromFansTop_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, isFromFansTop_); + } + if (isKoi_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, isKoi_); + } + if (assistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, assistantType_); + } + if (fansGroupIntimacyLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, fansGroupIntimacyLevel_); + } + if (nameplate_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getNameplate()); + } + if (liveFansGroupState_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getLiveFansGroupState()); + } + if (wealthGrade_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(7, wealthGrade_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(badgeKey_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, badgeKey_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState) obj; + + if (getIsFromFansTop() + != other.getIsFromFansTop()) return false; + if (getIsKoi() + != other.getIsKoi()) return false; + if (assistantType_ != other.assistantType_) return false; + if (getFansGroupIntimacyLevel() + != other.getFansGroupIntimacyLevel()) return false; + if (hasNameplate() != other.hasNameplate()) return false; + if (hasNameplate()) { + if (!getNameplate() + .equals(other.getNameplate())) return false; + } + if (hasLiveFansGroupState() != other.hasLiveFansGroupState()) return false; + if (hasLiveFansGroupState()) { + if (!getLiveFansGroupState() + .equals(other.getLiveFansGroupState())) return false; + } + if (getWealthGrade() + != other.getWealthGrade()) return false; + if (!getBadgeKey() + .equals(other.getBadgeKey())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ISFROMFANSTOP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsFromFansTop()); + hash = (37 * hash) + ISKOI_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getIsKoi()); + hash = (37 * hash) + ASSISTANTTYPE_FIELD_NUMBER; + hash = (53 * hash) + assistantType_; + hash = (37 * hash) + FANSGROUPINTIMACYLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getFansGroupIntimacyLevel(); + if (hasNameplate()) { + hash = (37 * hash) + NAMEPLATE_FIELD_NUMBER; + hash = (53 * hash) + getNameplate().hashCode(); + } + if (hasLiveFansGroupState()) { + hash = (37 * hash) + LIVEFANSGROUPSTATE_FIELD_NUMBER; + hash = (53 * hash) + getLiveFansGroupState().hashCode(); + } + hash = (37 * hash) + WEALTHGRADE_FIELD_NUMBER; + hash = (53 * hash) + getWealthGrade(); + hash = (37 * hash) + BADGEKEY_FIELD_NUMBER; + hash = (53 * hash) + getBadgeKey().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code LiveAudienceState} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:LiveAudienceState) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + isFromFansTop_ = false; + isKoi_ = false; + assistantType_ = 0; + fansGroupIntimacyLevel_ = 0; + nameplate_ = null; + if (nameplateBuilder_ != null) { + nameplateBuilder_.dispose(); + nameplateBuilder_ = null; + } + liveFansGroupState_ = null; + if (liveFansGroupStateBuilder_ != null) { + liveFansGroupStateBuilder_.dispose(); + liveFansGroupStateBuilder_ = null; + } + wealthGrade_ = 0; + badgeKey_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.internal_static_LiveAudienceState_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.isFromFansTop_ = isFromFansTop_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.isKoi_ = isKoi_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.assistantType_ = assistantType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.fansGroupIntimacyLevel_ = fansGroupIntimacyLevel_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.nameplate_ = nameplateBuilder_ == null + ? nameplate_ + : nameplateBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.liveFansGroupState_ = liveFansGroupStateBuilder_ == null + ? liveFansGroupState_ + : liveFansGroupStateBuilder_.build(); + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.wealthGrade_ = wealthGrade_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.badgeKey_ = badgeKey_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance()) return this; + if (other.getIsFromFansTop() != false) { + setIsFromFansTop(other.getIsFromFansTop()); + } + if (other.getIsKoi() != false) { + setIsKoi(other.getIsKoi()); + } + if (other.assistantType_ != 0) { + setAssistantTypeValue(other.getAssistantTypeValue()); + } + if (other.getFansGroupIntimacyLevel() != 0) { + setFansGroupIntimacyLevel(other.getFansGroupIntimacyLevel()); + } + if (other.hasNameplate()) { + mergeNameplate(other.getNameplate()); + } + if (other.hasLiveFansGroupState()) { + mergeLiveFansGroupState(other.getLiveFansGroupState()); + } + if (other.getWealthGrade() != 0) { + setWealthGrade(other.getWealthGrade()); + } + if (!other.getBadgeKey().isEmpty()) { + badgeKey_ = other.badgeKey_; + bitField0_ |= 0x00000080; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + isFromFansTop_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + isKoi_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + assistantType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + fansGroupIntimacyLevel_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + input.readMessage( + getNameplateFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + input.readMessage( + getLiveFansGroupStateFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 56: { + wealthGrade_ = input.readUInt32(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 66: { + badgeKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean isFromFansTop_ ; + /** + * bool isFromFansTop = 1; + * @return The isFromFansTop. + */ + @java.lang.Override + public boolean getIsFromFansTop() { + return isFromFansTop_; + } + /** + * bool isFromFansTop = 1; + * @param value The isFromFansTop to set. + * @return This builder for chaining. + */ + public Builder setIsFromFansTop(boolean value) { + + isFromFansTop_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool isFromFansTop = 1; + * @return This builder for chaining. + */ + public Builder clearIsFromFansTop() { + bitField0_ = (bitField0_ & ~0x00000001); + isFromFansTop_ = false; + onChanged(); + return this; + } + + private boolean isKoi_ ; + /** + * bool isKoi = 2; + * @return The isKoi. + */ + @java.lang.Override + public boolean getIsKoi() { + return isKoi_; + } + /** + * bool isKoi = 2; + * @param value The isKoi to set. + * @return This builder for chaining. + */ + public Builder setIsKoi(boolean value) { + + isKoi_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool isKoi = 2; + * @return This builder for chaining. + */ + public Builder clearIsKoi() { + bitField0_ = (bitField0_ & ~0x00000002); + isKoi_ = false; + onChanged(); + return this; + } + + private int assistantType_ = 0; + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The enum numeric value on the wire for assistantType. + */ + @java.lang.Override public int getAssistantTypeValue() { + return assistantType_; + } + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @param value The enum numeric value on the wire for assistantType to set. + * @return This builder for chaining. + */ + public Builder setAssistantTypeValue(int value) { + assistantType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return The assistantType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType getAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.forNumber(assistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType.UNRECOGNIZED : result; + } + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @param value The assistantType to set. + * @return This builder for chaining. + */ + public Builder setAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.AssistantType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + assistantType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .LiveAudienceState.AssistantType assistantType = 3; + * @return This builder for chaining. + */ + public Builder clearAssistantType() { + bitField0_ = (bitField0_ & ~0x00000004); + assistantType_ = 0; + onChanged(); + return this; + } + + private int fansGroupIntimacyLevel_ ; + /** + * uint32 fansGroupIntimacyLevel = 4; + * @return The fansGroupIntimacyLevel. + */ + @java.lang.Override + public int getFansGroupIntimacyLevel() { + return fansGroupIntimacyLevel_; + } + /** + * uint32 fansGroupIntimacyLevel = 4; + * @param value The fansGroupIntimacyLevel to set. + * @return This builder for chaining. + */ + public Builder setFansGroupIntimacyLevel(int value) { + + fansGroupIntimacyLevel_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 fansGroupIntimacyLevel = 4; + * @return This builder for chaining. + */ + public Builder clearFansGroupIntimacyLevel() { + bitField0_ = (bitField0_ & ~0x00000008); + fansGroupIntimacyLevel_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate nameplate_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder> nameplateBuilder_; + /** + * .GzoneNameplate nameplate = 5; + * @return Whether the nameplate field is set. + */ + public boolean hasNameplate() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .GzoneNameplate nameplate = 5; + * @return The nameplate. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate getNameplate() { + if (nameplateBuilder_ == null) { + return nameplate_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; + } else { + return nameplateBuilder_.getMessage(); + } + } + /** + * .GzoneNameplate nameplate = 5; + */ + public Builder setNameplate(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate value) { + if (nameplateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + nameplate_ = value; + } else { + nameplateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .GzoneNameplate nameplate = 5; + */ + public Builder setNameplate( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder builderForValue) { + if (nameplateBuilder_ == null) { + nameplate_ = builderForValue.build(); + } else { + nameplateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .GzoneNameplate nameplate = 5; + */ + public Builder mergeNameplate(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate value) { + if (nameplateBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + nameplate_ != null && + nameplate_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance()) { + getNameplateBuilder().mergeFrom(value); + } else { + nameplate_ = value; + } + } else { + nameplateBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .GzoneNameplate nameplate = 5; + */ + public Builder clearNameplate() { + bitField0_ = (bitField0_ & ~0x00000010); + nameplate_ = null; + if (nameplateBuilder_ != null) { + nameplateBuilder_.dispose(); + nameplateBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .GzoneNameplate nameplate = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder getNameplateBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getNameplateFieldBuilder().getBuilder(); + } + /** + * .GzoneNameplate nameplate = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder getNameplateOrBuilder() { + if (nameplateBuilder_ != null) { + return nameplateBuilder_.getMessageOrBuilder(); + } else { + return nameplate_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.getDefaultInstance() : nameplate_; + } + } + /** + * .GzoneNameplate nameplate = 5; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder> + getNameplateFieldBuilder() { + if (nameplateBuilder_ == null) { + nameplateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplate.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.GzoneNameplateOrBuilder>( + getNameplate(), + getParentForChildren(), + isClean()); + nameplate_ = null; + } + return nameplateBuilder_; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState liveFansGroupState_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder> liveFansGroupStateBuilder_; + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return Whether the liveFansGroupState field is set. + */ + public boolean hasLiveFansGroupState() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + * @return The liveFansGroupState. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getLiveFansGroupState() { + if (liveFansGroupStateBuilder_ == null) { + return liveFansGroupState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; + } else { + return liveFansGroupStateBuilder_.getMessage(); + } + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public Builder setLiveFansGroupState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState value) { + if (liveFansGroupStateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + liveFansGroupState_ = value; + } else { + liveFansGroupStateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public Builder setLiveFansGroupState( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder builderForValue) { + if (liveFansGroupStateBuilder_ == null) { + liveFansGroupState_ = builderForValue.build(); + } else { + liveFansGroupStateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public Builder mergeLiveFansGroupState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState value) { + if (liveFansGroupStateBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + liveFansGroupState_ != null && + liveFansGroupState_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance()) { + getLiveFansGroupStateBuilder().mergeFrom(value); + } else { + liveFansGroupState_ = value; + } + } else { + liveFansGroupStateBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public Builder clearLiveFansGroupState() { + bitField0_ = (bitField0_ & ~0x00000020); + liveFansGroupState_ = null; + if (liveFansGroupStateBuilder_ != null) { + liveFansGroupStateBuilder_.dispose(); + liveFansGroupStateBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder getLiveFansGroupStateBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getLiveFansGroupStateFieldBuilder().getBuilder(); + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder getLiveFansGroupStateOrBuilder() { + if (liveFansGroupStateBuilder_ != null) { + return liveFansGroupStateBuilder_.getMessageOrBuilder(); + } else { + return liveFansGroupState_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance() : liveFansGroupState_; + } + } + /** + * .LiveFansGroupState liveFansGroupState = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder> + getLiveFansGroupStateFieldBuilder() { + if (liveFansGroupStateBuilder_ == null) { + liveFansGroupStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder>( + getLiveFansGroupState(), + getParentForChildren(), + isClean()); + liveFansGroupState_ = null; + } + return liveFansGroupStateBuilder_; + } + + private int wealthGrade_ ; + /** + * uint32 wealthGrade = 7; + * @return The wealthGrade. + */ + @java.lang.Override + public int getWealthGrade() { + return wealthGrade_; + } + /** + * uint32 wealthGrade = 7; + * @param value The wealthGrade to set. + * @return This builder for chaining. + */ + public Builder setWealthGrade(int value) { + + wealthGrade_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * uint32 wealthGrade = 7; + * @return This builder for chaining. + */ + public Builder clearWealthGrade() { + bitField0_ = (bitField0_ & ~0x00000040); + wealthGrade_ = 0; + onChanged(); + return this; + } + + private java.lang.Object badgeKey_ = ""; + /** + * string badgeKey = 8; + * @return The badgeKey. + */ + public java.lang.String getBadgeKey() { + java.lang.Object ref = badgeKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + badgeKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string badgeKey = 8; + * @return The bytes for badgeKey. + */ + public com.google.protobuf.ByteString + getBadgeKeyBytes() { + java.lang.Object ref = badgeKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + badgeKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string badgeKey = 8; + * @param value The badgeKey to set. + * @return This builder for chaining. + */ + public Builder setBadgeKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + badgeKey_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string badgeKey = 8; + * @return This builder for chaining. + */ + public Builder clearBadgeKey() { + badgeKey_ = getDefaultInstance().getBadgeKey(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string badgeKey = 8; + * @param value The bytes for badgeKey to set. + * @return This builder for chaining. + */ + public Builder setBadgeKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + badgeKey_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:LiveAudienceState) + } + + // @@protoc_insertion_point(class_scope:LiveAudienceState) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public LiveAudienceState parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_LiveAudienceState_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_LiveAudienceState_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\027LiveAudienceState.proto\032\024GzoneNameplat" + + "e.proto\032\030LiveFansGroupState.proto\"\322\002\n\021Li" + + "veAudienceState\022\025\n\risFromFansTop\030\001 \001(\010\022\r" + + "\n\005isKoi\030\002 \001(\010\0227\n\rassistantType\030\003 \001(\0162 .L" + + "iveAudienceState.AssistantType\022\036\n\026fansGr" + + "oupIntimacyLevel\030\004 \001(\r\022\"\n\tnameplate\030\005 \001(" + + "\0132\017.GzoneNameplate\022/\n\022liveFansGroupState" + + "\030\006 \001(\0132\023.LiveFansGroupState\022\023\n\013wealthGra" + + "de\030\007 \001(\r\022\020\n\010badgeKey\030\010 \001(\t\"B\n\rAssistantT" + + "ype\022\032\n\026UNKNOWN_ASSISTANT_TYPE\020\000\022\t\n\005SUPER" + + "\020\001\022\n\n\006JUNIOR\020\002B6\n4tech.ordinaryroad.live" + + ".chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.getDescriptor(), + }); + internal_static_LiveAudienceState_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_LiveAudienceState_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_LiveAudienceState_descriptor, + new java.lang.String[] { "IsFromFansTop", "IsKoi", "AssistantType", "FansGroupIntimacyLevel", "Nameplate", "LiveFansGroupState", "WealthGrade", "BadgeKey", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.GzoneNameplateOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java new file mode 100644 index 00000000..683bf82e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveCdnNodeViewOuterClass.java @@ -0,0 +1,846 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: LiveCdnNodeView.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class LiveCdnNodeViewOuterClass { + private LiveCdnNodeViewOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface LiveCdnNodeViewOrBuilder extends + // @@protoc_insertion_point(interface_extends:LiveCdnNodeView) + com.google.protobuf.MessageOrBuilder { + + /** + * string cdn = 1; + * @return The cdn. + */ + java.lang.String getCdn(); + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + com.google.protobuf.ByteString + getCdnBytes(); + + /** + * string url = 2; + * @return The url. + */ + java.lang.String getUrl(); + /** + * string url = 2; + * @return The bytes for url. + */ + com.google.protobuf.ByteString + getUrlBytes(); + + /** + * bool freeTraffic = 3; + * @return The freeTraffic. + */ + boolean getFreeTraffic(); + } + /** + * Protobuf type {@code LiveCdnNodeView} + */ + public static final class LiveCdnNodeView extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:LiveCdnNodeView) + LiveCdnNodeViewOrBuilder { + private static final long serialVersionUID = 0L; + // Use LiveCdnNodeView.newBuilder() to construct. + private LiveCdnNodeView(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private LiveCdnNodeView() { + cdn_ = ""; + url_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new LiveCdnNodeView(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder.class); + } + + public static final int CDN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object cdn_ = ""; + /** + * string cdn = 1; + * @return The cdn. + */ + @java.lang.Override + public java.lang.String getCdn() { + java.lang.Object ref = cdn_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cdn_ = s; + return s; + } + } + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCdnBytes() { + java.lang.Object ref = cdn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cdn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int URL_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object url_ = ""; + /** + * string url = 2; + * @return The url. + */ + @java.lang.Override + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + url_ = s; + return s; + } + } + /** + * string url = 2; + * @return The bytes for url. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FREETRAFFIC_FIELD_NUMBER = 3; + private boolean freeTraffic_ = false; + /** + * bool freeTraffic = 3; + * @return The freeTraffic. + */ + @java.lang.Override + public boolean getFreeTraffic() { + return freeTraffic_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cdn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_); + } + if (freeTraffic_ != false) { + output.writeBool(3, freeTraffic_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cdn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_); + } + if (freeTraffic_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, freeTraffic_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView) obj; + + if (!getCdn() + .equals(other.getCdn())) return false; + if (!getUrl() + .equals(other.getUrl())) return false; + if (getFreeTraffic() + != other.getFreeTraffic()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CDN_FIELD_NUMBER; + hash = (53 * hash) + getCdn().hashCode(); + hash = (37 * hash) + URL_FIELD_NUMBER; + hash = (53 * hash) + getUrl().hashCode(); + hash = (37 * hash) + FREETRAFFIC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFreeTraffic()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code LiveCdnNodeView} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:LiveCdnNodeView) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeViewOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + cdn_ = ""; + url_ = ""; + freeTraffic_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.internal_static_LiveCdnNodeView_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.cdn_ = cdn_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.url_ = url_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.freeTraffic_ = freeTraffic_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView.getDefaultInstance()) return this; + if (!other.getCdn().isEmpty()) { + cdn_ = other.cdn_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getUrl().isEmpty()) { + url_ = other.url_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getFreeTraffic() != false) { + setFreeTraffic(other.getFreeTraffic()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + cdn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + url_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + freeTraffic_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object cdn_ = ""; + /** + * string cdn = 1; + * @return The cdn. + */ + public java.lang.String getCdn() { + java.lang.Object ref = cdn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cdn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + public com.google.protobuf.ByteString + getCdnBytes() { + java.lang.Object ref = cdn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cdn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string cdn = 1; + * @param value The cdn to set. + * @return This builder for chaining. + */ + public Builder setCdn( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + cdn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string cdn = 1; + * @return This builder for chaining. + */ + public Builder clearCdn() { + cdn_ = getDefaultInstance().getCdn(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string cdn = 1; + * @param value The bytes for cdn to set. + * @return This builder for chaining. + */ + public Builder setCdnBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + cdn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object url_ = ""; + /** + * string url = 2; + * @return The url. + */ + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + url_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string url = 2; + * @return The bytes for url. + */ + public com.google.protobuf.ByteString + getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string url = 2; + * @param value The url to set. + * @return This builder for chaining. + */ + public Builder setUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + url_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string url = 2; + * @return This builder for chaining. + */ + public Builder clearUrl() { + url_ = getDefaultInstance().getUrl(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string url = 2; + * @param value The bytes for url to set. + * @return This builder for chaining. + */ + public Builder setUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + url_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private boolean freeTraffic_ ; + /** + * bool freeTraffic = 3; + * @return The freeTraffic. + */ + @java.lang.Override + public boolean getFreeTraffic() { + return freeTraffic_; + } + /** + * bool freeTraffic = 3; + * @param value The freeTraffic to set. + * @return This builder for chaining. + */ + public Builder setFreeTraffic(boolean value) { + + freeTraffic_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool freeTraffic = 3; + * @return This builder for chaining. + */ + public Builder clearFreeTraffic() { + bitField0_ = (bitField0_ & ~0x00000004); + freeTraffic_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:LiveCdnNodeView) + } + + // @@protoc_insertion_point(class_scope:LiveCdnNodeView) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public LiveCdnNodeView parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveCdnNodeViewOuterClass.LiveCdnNodeView getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_LiveCdnNodeView_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_LiveCdnNodeView_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\025LiveCdnNodeView.proto\"@\n\017LiveCdnNodeVi" + + "ew\022\013\n\003cdn\030\001 \001(\t\022\013\n\003url\030\002 \001(\t\022\023\n\013freeTraf" + + "fic\030\003 \001(\010B6\n4tech.ordinaryroad.live.chat" + + ".client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_LiveCdnNodeView_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_LiveCdnNodeView_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_LiveCdnNodeView_descriptor, + new java.lang.String[] { "Cdn", "Url", "FreeTraffic", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java new file mode 100644 index 00000000..6ba076fa --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/LiveFansGroupStateOuterClass.java @@ -0,0 +1,622 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: LiveFansGroupState.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class LiveFansGroupStateOuterClass { + private LiveFansGroupStateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface LiveFansGroupStateOrBuilder extends + // @@protoc_insertion_point(interface_extends:LiveFansGroupState) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 intimacyLevel = 1; + * @return The intimacyLevel. + */ + int getIntimacyLevel(); + + /** + * uint32 enterRoomSpecialEffect = 2; + * @return The enterRoomSpecialEffect. + */ + int getEnterRoomSpecialEffect(); + } + /** + * Protobuf type {@code LiveFansGroupState} + */ + public static final class LiveFansGroupState extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:LiveFansGroupState) + LiveFansGroupStateOrBuilder { + private static final long serialVersionUID = 0L; + // Use LiveFansGroupState.newBuilder() to construct. + private LiveFansGroupState(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private LiveFansGroupState() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new LiveFansGroupState(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder.class); + } + + public static final int INTIMACYLEVEL_FIELD_NUMBER = 1; + private int intimacyLevel_ = 0; + /** + * uint32 intimacyLevel = 1; + * @return The intimacyLevel. + */ + @java.lang.Override + public int getIntimacyLevel() { + return intimacyLevel_; + } + + public static final int ENTERROOMSPECIALEFFECT_FIELD_NUMBER = 2; + private int enterRoomSpecialEffect_ = 0; + /** + * uint32 enterRoomSpecialEffect = 2; + * @return The enterRoomSpecialEffect. + */ + @java.lang.Override + public int getEnterRoomSpecialEffect() { + return enterRoomSpecialEffect_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (intimacyLevel_ != 0) { + output.writeUInt32(1, intimacyLevel_); + } + if (enterRoomSpecialEffect_ != 0) { + output.writeUInt32(2, enterRoomSpecialEffect_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (intimacyLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, intimacyLevel_); + } + if (enterRoomSpecialEffect_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, enterRoomSpecialEffect_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState) obj; + + if (getIntimacyLevel() + != other.getIntimacyLevel()) return false; + if (getEnterRoomSpecialEffect() + != other.getEnterRoomSpecialEffect()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + INTIMACYLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getIntimacyLevel(); + hash = (37 * hash) + ENTERROOMSPECIALEFFECT_FIELD_NUMBER; + hash = (53 * hash) + getEnterRoomSpecialEffect(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code LiveFansGroupState} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:LiveFansGroupState) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupStateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + intimacyLevel_ = 0; + enterRoomSpecialEffect_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.internal_static_LiveFansGroupState_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.intimacyLevel_ = intimacyLevel_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.enterRoomSpecialEffect_ = enterRoomSpecialEffect_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState.getDefaultInstance()) return this; + if (other.getIntimacyLevel() != 0) { + setIntimacyLevel(other.getIntimacyLevel()); + } + if (other.getEnterRoomSpecialEffect() != 0) { + setEnterRoomSpecialEffect(other.getEnterRoomSpecialEffect()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + intimacyLevel_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + enterRoomSpecialEffect_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int intimacyLevel_ ; + /** + * uint32 intimacyLevel = 1; + * @return The intimacyLevel. + */ + @java.lang.Override + public int getIntimacyLevel() { + return intimacyLevel_; + } + /** + * uint32 intimacyLevel = 1; + * @param value The intimacyLevel to set. + * @return This builder for chaining. + */ + public Builder setIntimacyLevel(int value) { + + intimacyLevel_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 intimacyLevel = 1; + * @return This builder for chaining. + */ + public Builder clearIntimacyLevel() { + bitField0_ = (bitField0_ & ~0x00000001); + intimacyLevel_ = 0; + onChanged(); + return this; + } + + private int enterRoomSpecialEffect_ ; + /** + * uint32 enterRoomSpecialEffect = 2; + * @return The enterRoomSpecialEffect. + */ + @java.lang.Override + public int getEnterRoomSpecialEffect() { + return enterRoomSpecialEffect_; + } + /** + * uint32 enterRoomSpecialEffect = 2; + * @param value The enterRoomSpecialEffect to set. + * @return This builder for chaining. + */ + public Builder setEnterRoomSpecialEffect(int value) { + + enterRoomSpecialEffect_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint32 enterRoomSpecialEffect = 2; + * @return This builder for chaining. + */ + public Builder clearEnterRoomSpecialEffect() { + bitField0_ = (bitField0_ & ~0x00000002); + enterRoomSpecialEffect_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:LiveFansGroupState) + } + + // @@protoc_insertion_point(class_scope:LiveFansGroupState) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public LiveFansGroupState parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveFansGroupStateOuterClass.LiveFansGroupState getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_LiveFansGroupState_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_LiveFansGroupState_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\030LiveFansGroupState.proto\"K\n\022LiveFansGr" + + "oupState\022\025\n\rintimacyLevel\030\001 \001(\r\022\036\n\026enter" + + "RoomSpecialEffect\030\002 \001(\rB6\n4tech.ordinary" + + "road.live.chat.client.kuaishou.protobufb" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_LiveFansGroupState_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_LiveFansGroupState_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_LiveFansGroupState_descriptor, + new java.lang.String[] { "IntimacyLevel", "EnterRoomSpecialEffect", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java new file mode 100644 index 00000000..73bc328a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PSHostInfoOuterClass.java @@ -0,0 +1,697 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PSHostInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class PSHostInfoOuterClass { + private PSHostInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface PSHostInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:PSHostInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * string ip = 1; + * @return The ip. + */ + java.lang.String getIp(); + /** + * string ip = 1; + * @return The bytes for ip. + */ + com.google.protobuf.ByteString + getIpBytes(); + + /** + * int32 port = 2; + * @return The port. + */ + int getPort(); + } + /** + * Protobuf type {@code PSHostInfo} + */ + public static final class PSHostInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:PSHostInfo) + PSHostInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use PSHostInfo.newBuilder() to construct. + private PSHostInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PSHostInfo() { + ip_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PSHostInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.Builder.class); + } + + public static final int IP_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object ip_ = ""; + /** + * string ip = 1; + * @return The ip. + */ + @java.lang.Override + public java.lang.String getIp() { + java.lang.Object ref = ip_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ip_ = s; + return s; + } + } + /** + * string ip = 1; + * @return The bytes for ip. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIpBytes() { + java.lang.Object ref = ip_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ip_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PORT_FIELD_NUMBER = 2; + private int port_ = 0; + /** + * int32 port = 2; + * @return The port. + */ + @java.lang.Override + public int getPort() { + return port_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_); + } + if (port_ != 0) { + output.writeInt32(2, port_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_); + } + if (port_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, port_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo) obj; + + if (!getIp() + .equals(other.getIp())) return false; + if (getPort() + != other.getPort()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + IP_FIELD_NUMBER; + hash = (53 * hash) + getIp().hashCode(); + hash = (37 * hash) + PORT_FIELD_NUMBER; + hash = (53 * hash) + getPort(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code PSHostInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:PSHostInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + ip_ = ""; + port_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.internal_static_PSHostInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ip_ = ip_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.port_ = port_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo.getDefaultInstance()) return this; + if (!other.getIp().isEmpty()) { + ip_ = other.ip_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getPort() != 0) { + setPort(other.getPort()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + ip_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + port_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object ip_ = ""; + /** + * string ip = 1; + * @return The ip. + */ + public java.lang.String getIp() { + java.lang.Object ref = ip_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ip_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ip = 1; + * @return The bytes for ip. + */ + public com.google.protobuf.ByteString + getIpBytes() { + java.lang.Object ref = ip_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ip_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ip = 1; + * @param value The ip to set. + * @return This builder for chaining. + */ + public Builder setIp( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ip_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string ip = 1; + * @return This builder for chaining. + */ + public Builder clearIp() { + ip_ = getDefaultInstance().getIp(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string ip = 1; + * @param value The bytes for ip to set. + * @return This builder for chaining. + */ + public Builder setIpBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ip_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int port_ ; + /** + * int32 port = 2; + * @return The port. + */ + @java.lang.Override + public int getPort() { + return port_; + } + /** + * int32 port = 2; + * @param value The port to set. + * @return This builder for chaining. + */ + public Builder setPort(int value) { + + port_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int32 port = 2; + * @return This builder for chaining. + */ + public Builder clearPort() { + bitField0_ = (bitField0_ & ~0x00000002); + port_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:PSHostInfo) + } + + // @@protoc_insertion_point(class_scope:PSHostInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PSHostInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PSHostInfoOuterClass.PSHostInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_PSHostInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_PSHostInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020PSHostInfo.proto\"&\n\nPSHostInfo\022\n\n\002ip\030\001" + + " \001(\t\022\014\n\004port\030\002 \001(\005B6\n4tech.ordinaryroad." + + "live.chat.client.kuaishou.protobufb\006prot" + + "o3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_PSHostInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_PSHostInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_PSHostInfo_descriptor, + new java.lang.String[] { "Ip", "Port", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java new file mode 100644 index 00000000..5711bf4c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PayloadTypeOuterClass.java @@ -0,0 +1,708 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PayloadType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class PayloadTypeOuterClass { + private PayloadTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code PayloadType} + */ + public enum PayloadType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + * CS_HEARTBEAT = 1; + */ + CS_HEARTBEAT(1), + /** + * CS_ERROR = 3; + */ + CS_ERROR(3), + /** + * CS_PING = 4; + */ + CS_PING(4), + /** + * PS_HOST_INFO = 51; + */ + PS_HOST_INFO(51), + /** + * SC_HEARTBEAT_ACK = 101; + */ + SC_HEARTBEAT_ACK(101), + /** + * SC_ECHO = 102; + */ + SC_ECHO(102), + /** + * SC_ERROR = 103; + */ + SC_ERROR(103), + /** + * SC_PING_ACK = 104; + */ + SC_PING_ACK(104), + /** + * SC_INFO = 105; + */ + SC_INFO(105), + /** + * CS_ENTER_ROOM = 200; + */ + CS_ENTER_ROOM(200), + /** + * CS_USER_PAUSE = 201; + */ + CS_USER_PAUSE(201), + /** + * CS_USER_EXIT = 202; + */ + CS_USER_EXIT(202), + /** + * CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; + */ + CS_AUTHOR_PUSH_TRAFFIC_ZERO(203), + /** + * CS_HORSE_RACING = 204; + */ + CS_HORSE_RACING(204), + /** + * CS_RACE_LOSE = 205; + */ + CS_RACE_LOSE(205), + /** + * CS_VOIP_SIGNAL = 206; + */ + CS_VOIP_SIGNAL(206), + /** + * SC_ENTER_ROOM_ACK = 300; + */ + SC_ENTER_ROOM_ACK(300), + /** + * SC_AUTHOR_PAUSE = 301; + */ + SC_AUTHOR_PAUSE(301), + /** + * SC_AUTHOR_RESUME = 302; + */ + SC_AUTHOR_RESUME(302), + /** + * SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; + */ + SC_AUTHOR_PUSH_TRAFFIC_ZERO(303), + /** + * SC_AUTHOR_HEARTBEAT_MISS = 304; + */ + SC_AUTHOR_HEARTBEAT_MISS(304), + /** + * SC_PIP_STARTED = 305; + */ + SC_PIP_STARTED(305), + /** + * SC_PIP_ENDED = 306; + */ + SC_PIP_ENDED(306), + /** + * SC_HORSE_RACING_ACK = 307; + */ + SC_HORSE_RACING_ACK(307), + /** + * SC_VOIP_SIGNAL = 308; + */ + SC_VOIP_SIGNAL(308), + /** + * SC_FEED_PUSH = 310; + */ + SC_FEED_PUSH(310), + /** + * SC_ASSISTANT_STATUS = 311; + */ + SC_ASSISTANT_STATUS(311), + /** + * SC_REFRESH_WALLET = 312; + */ + SC_REFRESH_WALLET(312), + /** + * SC_LIVE_CHAT_CALL = 320; + */ + SC_LIVE_CHAT_CALL(320), + /** + * SC_LIVE_CHAT_CALL_ACCEPTED = 321; + */ + SC_LIVE_CHAT_CALL_ACCEPTED(321), + /** + * SC_LIVE_CHAT_CALL_REJECTED = 322; + */ + SC_LIVE_CHAT_CALL_REJECTED(322), + /** + * SC_LIVE_CHAT_READY = 323; + */ + SC_LIVE_CHAT_READY(323), + /** + * SC_LIVE_CHAT_GUEST_END = 324; + */ + SC_LIVE_CHAT_GUEST_END(324), + /** + * SC_LIVE_CHAT_ENDED = 325; + */ + SC_LIVE_CHAT_ENDED(325), + /** + * SC_RENDERING_MAGIC_FACE_DISABLE = 326; + */ + SC_RENDERING_MAGIC_FACE_DISABLE(326), + /** + * SC_RENDERING_MAGIC_FACE_ENABLE = 327; + */ + SC_RENDERING_MAGIC_FACE_ENABLE(327), + /** + * SC_RED_PACK_FEED = 330; + */ + SC_RED_PACK_FEED(330), + /** + * SC_LIVE_WATCHING_LIST = 340; + */ + SC_LIVE_WATCHING_LIST(340), + /** + * SC_LIVE_QUIZ_QUESTION_ASKED = 350; + */ + SC_LIVE_QUIZ_QUESTION_ASKED(350), + /** + * SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; + */ + SC_LIVE_QUIZ_QUESTION_REVIEWED(351), + /** + * SC_LIVE_QUIZ_SYNC = 352; + */ + SC_LIVE_QUIZ_SYNC(352), + /** + * SC_LIVE_QUIZ_ENDED = 353; + */ + SC_LIVE_QUIZ_ENDED(353), + /** + * SC_LIVE_QUIZ_WINNERS = 354; + */ + SC_LIVE_QUIZ_WINNERS(354), + /** + * SC_SUSPECTED_VIOLATION = 355; + */ + SC_SUSPECTED_VIOLATION(355), + /** + * SC_SHOP_OPENED = 360; + */ + SC_SHOP_OPENED(360), + /** + * SC_SHOP_CLOSED = 361; + */ + SC_SHOP_CLOSED(361), + /** + * SC_GUESS_OPENED = 370; + */ + SC_GUESS_OPENED(370), + /** + * SC_GUESS_CLOSED = 371; + */ + SC_GUESS_CLOSED(371), + /** + * SC_PK_INVITATION = 380; + */ + SC_PK_INVITATION(380), + /** + * SC_PK_STATISTIC = 381; + */ + SC_PK_STATISTIC(381), + /** + * SC_RIDDLE_OPENED = 390; + */ + SC_RIDDLE_OPENED(390), + /** + * SC_RIDDLE_CLOESED = 391; + */ + SC_RIDDLE_CLOESED(391), + /** + * SC_RIDE_CHANGED = 412; + */ + SC_RIDE_CHANGED(412), + /** + * SC_BET_CHANGED = 441; + */ + SC_BET_CHANGED(441), + /** + * SC_BET_CLOSED = 442; + */ + SC_BET_CLOSED(442), + /** + * SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; + */ + SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE(645), + /** + * SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; + */ + SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE(758), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * CS_HEARTBEAT = 1; + */ + public static final int CS_HEARTBEAT_VALUE = 1; + /** + * CS_ERROR = 3; + */ + public static final int CS_ERROR_VALUE = 3; + /** + * CS_PING = 4; + */ + public static final int CS_PING_VALUE = 4; + /** + * PS_HOST_INFO = 51; + */ + public static final int PS_HOST_INFO_VALUE = 51; + /** + * SC_HEARTBEAT_ACK = 101; + */ + public static final int SC_HEARTBEAT_ACK_VALUE = 101; + /** + * SC_ECHO = 102; + */ + public static final int SC_ECHO_VALUE = 102; + /** + * SC_ERROR = 103; + */ + public static final int SC_ERROR_VALUE = 103; + /** + * SC_PING_ACK = 104; + */ + public static final int SC_PING_ACK_VALUE = 104; + /** + * SC_INFO = 105; + */ + public static final int SC_INFO_VALUE = 105; + /** + * CS_ENTER_ROOM = 200; + */ + public static final int CS_ENTER_ROOM_VALUE = 200; + /** + * CS_USER_PAUSE = 201; + */ + public static final int CS_USER_PAUSE_VALUE = 201; + /** + * CS_USER_EXIT = 202; + */ + public static final int CS_USER_EXIT_VALUE = 202; + /** + * CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; + */ + public static final int CS_AUTHOR_PUSH_TRAFFIC_ZERO_VALUE = 203; + /** + * CS_HORSE_RACING = 204; + */ + public static final int CS_HORSE_RACING_VALUE = 204; + /** + * CS_RACE_LOSE = 205; + */ + public static final int CS_RACE_LOSE_VALUE = 205; + /** + * CS_VOIP_SIGNAL = 206; + */ + public static final int CS_VOIP_SIGNAL_VALUE = 206; + /** + * SC_ENTER_ROOM_ACK = 300; + */ + public static final int SC_ENTER_ROOM_ACK_VALUE = 300; + /** + * SC_AUTHOR_PAUSE = 301; + */ + public static final int SC_AUTHOR_PAUSE_VALUE = 301; + /** + * SC_AUTHOR_RESUME = 302; + */ + public static final int SC_AUTHOR_RESUME_VALUE = 302; + /** + * SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; + */ + public static final int SC_AUTHOR_PUSH_TRAFFIC_ZERO_VALUE = 303; + /** + * SC_AUTHOR_HEARTBEAT_MISS = 304; + */ + public static final int SC_AUTHOR_HEARTBEAT_MISS_VALUE = 304; + /** + * SC_PIP_STARTED = 305; + */ + public static final int SC_PIP_STARTED_VALUE = 305; + /** + * SC_PIP_ENDED = 306; + */ + public static final int SC_PIP_ENDED_VALUE = 306; + /** + * SC_HORSE_RACING_ACK = 307; + */ + public static final int SC_HORSE_RACING_ACK_VALUE = 307; + /** + * SC_VOIP_SIGNAL = 308; + */ + public static final int SC_VOIP_SIGNAL_VALUE = 308; + /** + * SC_FEED_PUSH = 310; + */ + public static final int SC_FEED_PUSH_VALUE = 310; + /** + * SC_ASSISTANT_STATUS = 311; + */ + public static final int SC_ASSISTANT_STATUS_VALUE = 311; + /** + * SC_REFRESH_WALLET = 312; + */ + public static final int SC_REFRESH_WALLET_VALUE = 312; + /** + * SC_LIVE_CHAT_CALL = 320; + */ + public static final int SC_LIVE_CHAT_CALL_VALUE = 320; + /** + * SC_LIVE_CHAT_CALL_ACCEPTED = 321; + */ + public static final int SC_LIVE_CHAT_CALL_ACCEPTED_VALUE = 321; + /** + * SC_LIVE_CHAT_CALL_REJECTED = 322; + */ + public static final int SC_LIVE_CHAT_CALL_REJECTED_VALUE = 322; + /** + * SC_LIVE_CHAT_READY = 323; + */ + public static final int SC_LIVE_CHAT_READY_VALUE = 323; + /** + * SC_LIVE_CHAT_GUEST_END = 324; + */ + public static final int SC_LIVE_CHAT_GUEST_END_VALUE = 324; + /** + * SC_LIVE_CHAT_ENDED = 325; + */ + public static final int SC_LIVE_CHAT_ENDED_VALUE = 325; + /** + * SC_RENDERING_MAGIC_FACE_DISABLE = 326; + */ + public static final int SC_RENDERING_MAGIC_FACE_DISABLE_VALUE = 326; + /** + * SC_RENDERING_MAGIC_FACE_ENABLE = 327; + */ + public static final int SC_RENDERING_MAGIC_FACE_ENABLE_VALUE = 327; + /** + * SC_RED_PACK_FEED = 330; + */ + public static final int SC_RED_PACK_FEED_VALUE = 330; + /** + * SC_LIVE_WATCHING_LIST = 340; + */ + public static final int SC_LIVE_WATCHING_LIST_VALUE = 340; + /** + * SC_LIVE_QUIZ_QUESTION_ASKED = 350; + */ + public static final int SC_LIVE_QUIZ_QUESTION_ASKED_VALUE = 350; + /** + * SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; + */ + public static final int SC_LIVE_QUIZ_QUESTION_REVIEWED_VALUE = 351; + /** + * SC_LIVE_QUIZ_SYNC = 352; + */ + public static final int SC_LIVE_QUIZ_SYNC_VALUE = 352; + /** + * SC_LIVE_QUIZ_ENDED = 353; + */ + public static final int SC_LIVE_QUIZ_ENDED_VALUE = 353; + /** + * SC_LIVE_QUIZ_WINNERS = 354; + */ + public static final int SC_LIVE_QUIZ_WINNERS_VALUE = 354; + /** + * SC_SUSPECTED_VIOLATION = 355; + */ + public static final int SC_SUSPECTED_VIOLATION_VALUE = 355; + /** + * SC_SHOP_OPENED = 360; + */ + public static final int SC_SHOP_OPENED_VALUE = 360; + /** + * SC_SHOP_CLOSED = 361; + */ + public static final int SC_SHOP_CLOSED_VALUE = 361; + /** + * SC_GUESS_OPENED = 370; + */ + public static final int SC_GUESS_OPENED_VALUE = 370; + /** + * SC_GUESS_CLOSED = 371; + */ + public static final int SC_GUESS_CLOSED_VALUE = 371; + /** + * SC_PK_INVITATION = 380; + */ + public static final int SC_PK_INVITATION_VALUE = 380; + /** + * SC_PK_STATISTIC = 381; + */ + public static final int SC_PK_STATISTIC_VALUE = 381; + /** + * SC_RIDDLE_OPENED = 390; + */ + public static final int SC_RIDDLE_OPENED_VALUE = 390; + /** + * SC_RIDDLE_CLOESED = 391; + */ + public static final int SC_RIDDLE_CLOESED_VALUE = 391; + /** + * SC_RIDE_CHANGED = 412; + */ + public static final int SC_RIDE_CHANGED_VALUE = 412; + /** + * SC_BET_CHANGED = 441; + */ + public static final int SC_BET_CHANGED_VALUE = 441; + /** + * SC_BET_CLOSED = 442; + */ + public static final int SC_BET_CLOSED_VALUE = 442; + /** + * SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; + */ + public static final int SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE_VALUE = 645; + /** + * SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; + */ + public static final int SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE_VALUE = 758; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static PayloadType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static PayloadType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN; + case 1: return CS_HEARTBEAT; + case 3: return CS_ERROR; + case 4: return CS_PING; + case 51: return PS_HOST_INFO; + case 101: return SC_HEARTBEAT_ACK; + case 102: return SC_ECHO; + case 103: return SC_ERROR; + case 104: return SC_PING_ACK; + case 105: return SC_INFO; + case 200: return CS_ENTER_ROOM; + case 201: return CS_USER_PAUSE; + case 202: return CS_USER_EXIT; + case 203: return CS_AUTHOR_PUSH_TRAFFIC_ZERO; + case 204: return CS_HORSE_RACING; + case 205: return CS_RACE_LOSE; + case 206: return CS_VOIP_SIGNAL; + case 300: return SC_ENTER_ROOM_ACK; + case 301: return SC_AUTHOR_PAUSE; + case 302: return SC_AUTHOR_RESUME; + case 303: return SC_AUTHOR_PUSH_TRAFFIC_ZERO; + case 304: return SC_AUTHOR_HEARTBEAT_MISS; + case 305: return SC_PIP_STARTED; + case 306: return SC_PIP_ENDED; + case 307: return SC_HORSE_RACING_ACK; + case 308: return SC_VOIP_SIGNAL; + case 310: return SC_FEED_PUSH; + case 311: return SC_ASSISTANT_STATUS; + case 312: return SC_REFRESH_WALLET; + case 320: return SC_LIVE_CHAT_CALL; + case 321: return SC_LIVE_CHAT_CALL_ACCEPTED; + case 322: return SC_LIVE_CHAT_CALL_REJECTED; + case 323: return SC_LIVE_CHAT_READY; + case 324: return SC_LIVE_CHAT_GUEST_END; + case 325: return SC_LIVE_CHAT_ENDED; + case 326: return SC_RENDERING_MAGIC_FACE_DISABLE; + case 327: return SC_RENDERING_MAGIC_FACE_ENABLE; + case 330: return SC_RED_PACK_FEED; + case 340: return SC_LIVE_WATCHING_LIST; + case 350: return SC_LIVE_QUIZ_QUESTION_ASKED; + case 351: return SC_LIVE_QUIZ_QUESTION_REVIEWED; + case 352: return SC_LIVE_QUIZ_SYNC; + case 353: return SC_LIVE_QUIZ_ENDED; + case 354: return SC_LIVE_QUIZ_WINNERS; + case 355: return SC_SUSPECTED_VIOLATION; + case 360: return SC_SHOP_OPENED; + case 361: return SC_SHOP_CLOSED; + case 370: return SC_GUESS_OPENED; + case 371: return SC_GUESS_CLOSED; + case 380: return SC_PK_INVITATION; + case 381: return SC_PK_STATISTIC; + case 390: return SC_RIDDLE_OPENED; + case 391: return SC_RIDDLE_CLOESED; + case 412: return SC_RIDE_CHANGED; + case 441: return SC_BET_CHANGED; + case 442: return SC_BET_CLOSED; + case 645: return SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE; + case 758: return SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + PayloadType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public PayloadType findValueByNumber(int number) { + return PayloadType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final PayloadType[] VALUES = values(); + + public static PayloadType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private PayloadType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:PayloadType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021PayloadType.proto*\213\013\n\013PayloadType\022\013\n\007U" + + "NKNOWN\020\000\022\020\n\014CS_HEARTBEAT\020\001\022\014\n\010CS_ERROR\020\003" + + "\022\013\n\007CS_PING\020\004\022\020\n\014PS_HOST_INFO\0203\022\024\n\020SC_HE" + + "ARTBEAT_ACK\020e\022\013\n\007SC_ECHO\020f\022\014\n\010SC_ERROR\020g" + + "\022\017\n\013SC_PING_ACK\020h\022\013\n\007SC_INFO\020i\022\022\n\rCS_ENT" + + "ER_ROOM\020\310\001\022\022\n\rCS_USER_PAUSE\020\311\001\022\021\n\014CS_USE" + + "R_EXIT\020\312\001\022 \n\033CS_AUTHOR_PUSH_TRAFFIC_ZERO" + + "\020\313\001\022\024\n\017CS_HORSE_RACING\020\314\001\022\021\n\014CS_RACE_LOS" + + "E\020\315\001\022\023\n\016CS_VOIP_SIGNAL\020\316\001\022\026\n\021SC_ENTER_RO" + + "OM_ACK\020\254\002\022\024\n\017SC_AUTHOR_PAUSE\020\255\002\022\025\n\020SC_AU" + + "THOR_RESUME\020\256\002\022 \n\033SC_AUTHOR_PUSH_TRAFFIC" + + "_ZERO\020\257\002\022\035\n\030SC_AUTHOR_HEARTBEAT_MISS\020\260\002\022" + + "\023\n\016SC_PIP_STARTED\020\261\002\022\021\n\014SC_PIP_ENDED\020\262\002\022" + + "\030\n\023SC_HORSE_RACING_ACK\020\263\002\022\023\n\016SC_VOIP_SIG" + + "NAL\020\264\002\022\021\n\014SC_FEED_PUSH\020\266\002\022\030\n\023SC_ASSISTAN" + + "T_STATUS\020\267\002\022\026\n\021SC_REFRESH_WALLET\020\270\002\022\026\n\021S" + + "C_LIVE_CHAT_CALL\020\300\002\022\037\n\032SC_LIVE_CHAT_CALL" + + "_ACCEPTED\020\301\002\022\037\n\032SC_LIVE_CHAT_CALL_REJECT" + + "ED\020\302\002\022\027\n\022SC_LIVE_CHAT_READY\020\303\002\022\033\n\026SC_LIV" + + "E_CHAT_GUEST_END\020\304\002\022\027\n\022SC_LIVE_CHAT_ENDE" + + "D\020\305\002\022$\n\037SC_RENDERING_MAGIC_FACE_DISABLE\020" + + "\306\002\022#\n\036SC_RENDERING_MAGIC_FACE_ENABLE\020\307\002\022" + + "\025\n\020SC_RED_PACK_FEED\020\312\002\022\032\n\025SC_LIVE_WATCHI" + + "NG_LIST\020\324\002\022 \n\033SC_LIVE_QUIZ_QUESTION_ASKE" + + "D\020\336\002\022#\n\036SC_LIVE_QUIZ_QUESTION_REVIEWED\020\337" + + "\002\022\026\n\021SC_LIVE_QUIZ_SYNC\020\340\002\022\027\n\022SC_LIVE_QUI" + + "Z_ENDED\020\341\002\022\031\n\024SC_LIVE_QUIZ_WINNERS\020\342\002\022\033\n" + + "\026SC_SUSPECTED_VIOLATION\020\343\002\022\023\n\016SC_SHOP_OP" + + "ENED\020\350\002\022\023\n\016SC_SHOP_CLOSED\020\351\002\022\024\n\017SC_GUESS" + + "_OPENED\020\362\002\022\024\n\017SC_GUESS_CLOSED\020\363\002\022\025\n\020SC_P" + + "K_INVITATION\020\374\002\022\024\n\017SC_PK_STATISTIC\020\375\002\022\025\n" + + "\020SC_RIDDLE_OPENED\020\206\003\022\026\n\021SC_RIDDLE_CLOESE" + + "D\020\207\003\022\024\n\017SC_RIDE_CHANGED\020\234\003\022\023\n\016SC_BET_CHA" + + "NGED\020\271\003\022\022\n\rSC_BET_CLOSED\020\272\003\022)\n$SC_LIVE_S" + + "PECIAL_ACCOUNT_CONFIG_STATE\020\205\005\0221\n,SC_LIV" + + "E_WARNING_MASK_STATUS_CHANGED_AUDIENCE\020\366" + + "\005B6\n4tech.ordinaryroad.live.chat.client." + + "kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java new file mode 100644 index 00000000..935c3bbe --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/PicUrlOuterClass.java @@ -0,0 +1,1069 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: PicUrl.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class PicUrlOuterClass { + private PicUrlOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface PicUrlOrBuilder extends + // @@protoc_insertion_point(interface_extends:PicUrl) + com.google.protobuf.MessageOrBuilder { + + /** + * string cdn = 1; + * @return The cdn. + */ + java.lang.String getCdn(); + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + com.google.protobuf.ByteString + getCdnBytes(); + + /** + * string url = 2; + * @return The url. + */ + java.lang.String getUrl(); + /** + * string url = 2; + * @return The bytes for url. + */ + com.google.protobuf.ByteString + getUrlBytes(); + + /** + * string urlPattern = 3; + * @return The urlPattern. + */ + java.lang.String getUrlPattern(); + /** + * string urlPattern = 3; + * @return The bytes for urlPattern. + */ + com.google.protobuf.ByteString + getUrlPatternBytes(); + + /** + * string ip = 4; + * @return The ip. + */ + java.lang.String getIp(); + /** + * string ip = 4; + * @return The bytes for ip. + */ + com.google.protobuf.ByteString + getIpBytes(); + } + /** + * Protobuf type {@code PicUrl} + */ + public static final class PicUrl extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:PicUrl) + PicUrlOrBuilder { + private static final long serialVersionUID = 0L; + // Use PicUrl.newBuilder() to construct. + private PicUrl(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PicUrl() { + cdn_ = ""; + url_ = ""; + urlPattern_ = ""; + ip_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PicUrl(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder.class); + } + + public static final int CDN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object cdn_ = ""; + /** + * string cdn = 1; + * @return The cdn. + */ + @java.lang.Override + public java.lang.String getCdn() { + java.lang.Object ref = cdn_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cdn_ = s; + return s; + } + } + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCdnBytes() { + java.lang.Object ref = cdn_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cdn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int URL_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object url_ = ""; + /** + * string url = 2; + * @return The url. + */ + @java.lang.Override + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + url_ = s; + return s; + } + } + /** + * string url = 2; + * @return The bytes for url. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int URLPATTERN_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object urlPattern_ = ""; + /** + * string urlPattern = 3; + * @return The urlPattern. + */ + @java.lang.Override + public java.lang.String getUrlPattern() { + java.lang.Object ref = urlPattern_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + urlPattern_ = s; + return s; + } + } + /** + * string urlPattern = 3; + * @return The bytes for urlPattern. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUrlPatternBytes() { + java.lang.Object ref = urlPattern_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + urlPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IP_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object ip_ = ""; + /** + * string ip = 4; + * @return The ip. + */ + @java.lang.Override + public java.lang.String getIp() { + java.lang.Object ref = ip_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ip_ = s; + return s; + } + } + /** + * string ip = 4; + * @return The bytes for ip. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIpBytes() { + java.lang.Object ref = ip_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ip_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, cdn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, url_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(urlPattern_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, urlPattern_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, ip_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cdn_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, cdn_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, url_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(urlPattern_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, urlPattern_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ip_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, ip_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl) obj; + + if (!getCdn() + .equals(other.getCdn())) return false; + if (!getUrl() + .equals(other.getUrl())) return false; + if (!getUrlPattern() + .equals(other.getUrlPattern())) return false; + if (!getIp() + .equals(other.getIp())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CDN_FIELD_NUMBER; + hash = (53 * hash) + getCdn().hashCode(); + hash = (37 * hash) + URL_FIELD_NUMBER; + hash = (53 * hash) + getUrl().hashCode(); + hash = (37 * hash) + URLPATTERN_FIELD_NUMBER; + hash = (53 * hash) + getUrlPattern().hashCode(); + hash = (37 * hash) + IP_FIELD_NUMBER; + hash = (53 * hash) + getIp().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code PicUrl} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:PicUrl) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + cdn_ = ""; + url_ = ""; + urlPattern_ = ""; + ip_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.internal_static_PicUrl_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.cdn_ = cdn_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.url_ = url_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.urlPattern_ = urlPattern_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.ip_ = ip_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()) return this; + if (!other.getCdn().isEmpty()) { + cdn_ = other.cdn_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getUrl().isEmpty()) { + url_ = other.url_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getUrlPattern().isEmpty()) { + urlPattern_ = other.urlPattern_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getIp().isEmpty()) { + ip_ = other.ip_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + cdn_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + url_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + urlPattern_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + ip_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object cdn_ = ""; + /** + * string cdn = 1; + * @return The cdn. + */ + public java.lang.String getCdn() { + java.lang.Object ref = cdn_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + cdn_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string cdn = 1; + * @return The bytes for cdn. + */ + public com.google.protobuf.ByteString + getCdnBytes() { + java.lang.Object ref = cdn_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + cdn_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string cdn = 1; + * @param value The cdn to set. + * @return This builder for chaining. + */ + public Builder setCdn( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + cdn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string cdn = 1; + * @return This builder for chaining. + */ + public Builder clearCdn() { + cdn_ = getDefaultInstance().getCdn(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string cdn = 1; + * @param value The bytes for cdn to set. + * @return This builder for chaining. + */ + public Builder setCdnBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + cdn_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object url_ = ""; + /** + * string url = 2; + * @return The url. + */ + public java.lang.String getUrl() { + java.lang.Object ref = url_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + url_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string url = 2; + * @return The bytes for url. + */ + public com.google.protobuf.ByteString + getUrlBytes() { + java.lang.Object ref = url_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + url_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string url = 2; + * @param value The url to set. + * @return This builder for chaining. + */ + public Builder setUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + url_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string url = 2; + * @return This builder for chaining. + */ + public Builder clearUrl() { + url_ = getDefaultInstance().getUrl(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string url = 2; + * @param value The bytes for url to set. + * @return This builder for chaining. + */ + public Builder setUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + url_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object urlPattern_ = ""; + /** + * string urlPattern = 3; + * @return The urlPattern. + */ + public java.lang.String getUrlPattern() { + java.lang.Object ref = urlPattern_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + urlPattern_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string urlPattern = 3; + * @return The bytes for urlPattern. + */ + public com.google.protobuf.ByteString + getUrlPatternBytes() { + java.lang.Object ref = urlPattern_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + urlPattern_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string urlPattern = 3; + * @param value The urlPattern to set. + * @return This builder for chaining. + */ + public Builder setUrlPattern( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + urlPattern_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string urlPattern = 3; + * @return This builder for chaining. + */ + public Builder clearUrlPattern() { + urlPattern_ = getDefaultInstance().getUrlPattern(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string urlPattern = 3; + * @param value The bytes for urlPattern to set. + * @return This builder for chaining. + */ + public Builder setUrlPatternBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + urlPattern_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object ip_ = ""; + /** + * string ip = 4; + * @return The ip. + */ + public java.lang.String getIp() { + java.lang.Object ref = ip_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ip_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ip = 4; + * @return The bytes for ip. + */ + public com.google.protobuf.ByteString + getIpBytes() { + java.lang.Object ref = ip_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ip_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ip = 4; + * @param value The ip to set. + * @return This builder for chaining. + */ + public Builder setIp( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ip_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string ip = 4; + * @return This builder for chaining. + */ + public Builder clearIp() { + ip_ = getDefaultInstance().getIp(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string ip = 4; + * @param value The bytes for ip to set. + * @return This builder for chaining. + */ + public Builder setIpBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ip_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:PicUrl) + } + + // @@protoc_insertion_point(class_scope:PicUrl) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PicUrl parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_PicUrl_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_PicUrl_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014PicUrl.proto\"B\n\006PicUrl\022\013\n\003cdn\030\001 \001(\t\022\013\n" + + "\003url\030\002 \001(\t\022\022\n\nurlPattern\030\003 \001(\t\022\n\n\002ip\030\004 \001" + + "(\tB6\n4tech.ordinaryroad.live.chat.client" + + ".kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_PicUrl_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_PicUrl_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_PicUrl_descriptor, + new java.lang.String[] { "Cdn", "Url", "UrlPattern", "Ip", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java new file mode 100644 index 00000000..c39aa9cb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCEchoOuterClass.java @@ -0,0 +1,624 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCEcho.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCEchoOuterClass { + private SCEchoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCEchoOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCEcho) + com.google.protobuf.MessageOrBuilder { + + /** + * string content = 1; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 1; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + } + /** + * Protobuf type {@code SCEcho} + */ + public static final class SCEcho extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCEcho) + SCEchoOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCEcho.newBuilder() to construct. + private SCEcho(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCEcho() { + content_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCEcho(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.Builder.class); + } + + public static final int CONTENT_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + /** + * string content = 1; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 1; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, content_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, content_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho) obj; + + if (!getContent() + .equals(other.getContent())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCEcho} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCEcho) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEchoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + content_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.internal_static_SCEcho_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.content_ = content_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho.getDefaultInstance()) return this; + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object content_ = ""; + /** + * string content = 1; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 1; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 1; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + content_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string content = 1; + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string content = 1; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCEcho) + } + + // @@protoc_insertion_point(class_scope:SCEcho) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCEcho parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCEchoOuterClass.SCEcho getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCEcho_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCEcho_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014SCEcho.proto\"\031\n\006SCEcho\022\017\n\007content\030\001 \001(" + + "\tB6\n4tech.ordinaryroad.live.chat.client." + + "kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCEcho_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCEcho_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCEcho_descriptor, + new java.lang.String[] { "Content", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java new file mode 100644 index 00000000..4bb004ee --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCErrorOuterClass.java @@ -0,0 +1,769 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCError.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCErrorOuterClass { + private SCErrorOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCError) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 code = 1; + * @return The code. + */ + int getCode(); + + /** + * string msg = 2; + * @return The msg. + */ + java.lang.String getMsg(); + /** + * string msg = 2; + * @return The bytes for msg. + */ + com.google.protobuf.ByteString + getMsgBytes(); + + /** + * uint32 subCode = 3; + * @return The subCode. + */ + int getSubCode(); + } + /** + * Protobuf type {@code SCError} + */ + public static final class SCError extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCError) + SCErrorOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCError.newBuilder() to construct. + private SCError(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCError() { + msg_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCError(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + private int code_ = 0; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + + public static final int MSG_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + @java.lang.Override + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SUBCODE_FIELD_NUMBER = 3; + private int subCode_ = 0; + /** + * uint32 subCode = 3; + * @return The subCode. + */ + @java.lang.Override + public int getSubCode() { + return subCode_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (code_ != 0) { + output.writeUInt32(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); + } + if (subCode_ != 0) { + output.writeUInt32(3, subCode_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); + } + if (subCode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, subCode_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError) obj; + + if (getCode() + != other.getCode()) return false; + if (!getMsg() + .equals(other.getMsg())) return false; + if (getSubCode() + != other.getSubCode()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + hash = (37 * hash) + MSG_FIELD_NUMBER; + hash = (53 * hash) + getMsg().hashCode(); + hash = (37 * hash) + SUBCODE_FIELD_NUMBER; + hash = (53 * hash) + getSubCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCError) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = 0; + msg_ = ""; + subCode_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.internal_static_SCError_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.msg_ = msg_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.subCode_ = subCode_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError.getDefaultInstance()) return this; + if (other.getCode() != 0) { + setCode(other.getCode()); + } + if (!other.getMsg().isEmpty()) { + msg_ = other.msg_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getSubCode() != 0) { + setSubCode(other.getSubCode()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + code_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + msg_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + subCode_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int code_ ; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + /** + * uint32 code = 1; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(int value) { + + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + bitField0_ = (bitField0_ & ~0x00000001); + code_ = 0; + onChanged(); + return this; + } + + private java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msg = 2; + * @param value The msg to set. + * @return This builder for chaining. + */ + public Builder setMsg( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string msg = 2; + * @return This builder for chaining. + */ + public Builder clearMsg() { + msg_ = getDefaultInstance().getMsg(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string msg = 2; + * @param value The bytes for msg to set. + * @return This builder for chaining. + */ + public Builder setMsgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int subCode_ ; + /** + * uint32 subCode = 3; + * @return The subCode. + */ + @java.lang.Override + public int getSubCode() { + return subCode_; + } + /** + * uint32 subCode = 3; + * @param value The subCode to set. + * @return This builder for chaining. + */ + public Builder setSubCode(int value) { + + subCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint32 subCode = 3; + * @return This builder for chaining. + */ + public Builder clearSubCode() { + bitField0_ = (bitField0_ & ~0x00000004); + subCode_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCError) + } + + // @@protoc_insertion_point(class_scope:SCError) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCErrorOuterClass.SCError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCError_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCError_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rSCError.proto\"5\n\007SCError\022\014\n\004code\030\001 \001(\r" + + "\022\013\n\003msg\030\002 \001(\t\022\017\n\007subCode\030\003 \001(\rB6\n4tech.o" + + "rdinaryroad.live.chat.client.kuaishou.pr" + + "otobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCError_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCError_descriptor, + new java.lang.String[] { "Code", "Msg", "SubCode", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java new file mode 100644 index 00000000..c2f9a231 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCHeartbeatAckOuterClass.java @@ -0,0 +1,623 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCHeartbeatAck.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCHeartbeatAckOuterClass { + private SCHeartbeatAckOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCHeartbeatAckOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCHeartbeatAck) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + long getTimestamp(); + + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + long getClientTimestamp(); + } + /** + * Protobuf type {@code SCHeartbeatAck} + */ + public static final class SCHeartbeatAck extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCHeartbeatAck) + SCHeartbeatAckOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCHeartbeatAck.newBuilder() to construct. + private SCHeartbeatAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCHeartbeatAck() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCHeartbeatAck(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.Builder.class); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private long timestamp_ = 0L; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 2; + private long clientTimestamp_ = 0L; + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestamp_ != 0L) { + output.writeUInt64(1, timestamp_); + } + if (clientTimestamp_ != 0L) { + output.writeUInt64(2, clientTimestamp_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, timestamp_); + } + if (clientTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, clientTimestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck) obj; + + if (getTimestamp() + != other.getTimestamp()) return false; + if (getClientTimestamp() + != other.getClientTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getClientTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCHeartbeatAck} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCHeartbeatAck) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAckOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0L; + clientTimestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.internal_static_SCHeartbeatAck_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.clientTimestamp_ = clientTimestamp_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck.getDefaultInstance()) return this; + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + if (other.getClientTimestamp() != 0L) { + setClientTimestamp(other.getClientTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestamp_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + clientTimestamp_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long timestamp_ ; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + * uint64 timestamp = 1; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + onChanged(); + return this; + } + + private long clientTimestamp_ ; + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + /** + * uint64 clientTimestamp = 2; + * @param value The clientTimestamp to set. + * @return This builder for chaining. + */ + public Builder setClientTimestamp(long value) { + + clientTimestamp_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 clientTimestamp = 2; + * @return This builder for chaining. + */ + public Builder clearClientTimestamp() { + bitField0_ = (bitField0_ & ~0x00000002); + clientTimestamp_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCHeartbeatAck) + } + + // @@protoc_insertion_point(class_scope:SCHeartbeatAck) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCHeartbeatAck parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCHeartbeatAckOuterClass.SCHeartbeatAck getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCHeartbeatAck_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCHeartbeatAck_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024SCHeartbeatAck.proto\"<\n\016SCHeartbeatAck" + + "\022\021\n\ttimestamp\030\001 \001(\004\022\027\n\017clientTimestamp\030\002" + + " \001(\004B6\n4tech.ordinaryroad.live.chat.clie" + + "nt.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCHeartbeatAck_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCHeartbeatAck_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCHeartbeatAck_descriptor, + new java.lang.String[] { "Timestamp", "ClientTimestamp", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java new file mode 100644 index 00000000..8191432a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCInfoOuterClass.java @@ -0,0 +1,696 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCInfoOuterClass { + private SCInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 code = 1; + * @return The code. + */ + int getCode(); + + /** + * string msg = 2; + * @return The msg. + */ + java.lang.String getMsg(); + /** + * string msg = 2; + * @return The bytes for msg. + */ + com.google.protobuf.ByteString + getMsgBytes(); + } + /** + * Protobuf type {@code SCInfo} + */ + public static final class SCInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCInfo) + SCInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCInfo.newBuilder() to construct. + private SCInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCInfo() { + msg_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + private int code_ = 0; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + + public static final int MSG_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + @java.lang.Override + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (code_ != 0) { + output.writeUInt32(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo) obj; + + if (getCode() + != other.getCode()) return false; + if (!getMsg() + .equals(other.getMsg())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + hash = (37 * hash) + MSG_FIELD_NUMBER; + hash = (53 * hash) + getMsg().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = 0; + msg_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.internal_static_SCInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.msg_ = msg_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo.getDefaultInstance()) return this; + if (other.getCode() != 0) { + setCode(other.getCode()); + } + if (!other.getMsg().isEmpty()) { + msg_ = other.msg_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + code_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + msg_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int code_ ; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + /** + * uint32 code = 1; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(int value) { + + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + bitField0_ = (bitField0_ & ~0x00000001); + code_ = 0; + onChanged(); + return this; + } + + private java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msg = 2; + * @param value The msg to set. + * @return This builder for chaining. + */ + public Builder setMsg( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string msg = 2; + * @return This builder for chaining. + */ + public Builder clearMsg() { + msg_ = getDefaultInstance().getMsg(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string msg = 2; + * @param value The bytes for msg to set. + * @return This builder for chaining. + */ + public Builder setMsgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCInfo) + } + + // @@protoc_insertion_point(class_scope:SCInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCInfoOuterClass.SCInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014SCInfo.proto\"#\n\006SCInfo\022\014\n\004code\030\001 \001(\r\022\013" + + "\n\003msg\030\002 \001(\tB6\n4tech.ordinaryroad.live.ch" + + "at.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCInfo_descriptor, + new java.lang.String[] { "Code", "Msg", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java new file mode 100644 index 00000000..507aad29 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCLiveWarningMaskStatusChangedAudienceOuterClass.java @@ -0,0 +1,750 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCLiveWarningMaskStatusChangedAudience.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCLiveWarningMaskStatusChangedAudienceOuterClass { + private SCLiveWarningMaskStatusChangedAudienceOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCLiveWarningMaskStatusChangedAudienceOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCLiveWarningMaskStatusChangedAudience) + com.google.protobuf.MessageOrBuilder { + + /** + * bool displayMask = 1; + * @return The displayMask. + */ + boolean getDisplayMask(); + + /** + * .AuditAudienceMask warningMask = 2; + * @return Whether the warningMask field is set. + */ + boolean hasWarningMask(); + /** + * .AuditAudienceMask warningMask = 2; + * @return The warningMask. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask(); + /** + * .AuditAudienceMask warningMask = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder(); + } + /** + * Protobuf type {@code SCLiveWarningMaskStatusChangedAudience} + */ + public static final class SCLiveWarningMaskStatusChangedAudience extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCLiveWarningMaskStatusChangedAudience) + SCLiveWarningMaskStatusChangedAudienceOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCLiveWarningMaskStatusChangedAudience.newBuilder() to construct. + private SCLiveWarningMaskStatusChangedAudience(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCLiveWarningMaskStatusChangedAudience() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCLiveWarningMaskStatusChangedAudience(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.Builder.class); + } + + public static final int DISPLAYMASK_FIELD_NUMBER = 1; + private boolean displayMask_ = false; + /** + * bool displayMask = 1; + * @return The displayMask. + */ + @java.lang.Override + public boolean getDisplayMask() { + return displayMask_; + } + + public static final int WARNINGMASK_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask warningMask_; + /** + * .AuditAudienceMask warningMask = 2; + * @return Whether the warningMask field is set. + */ + @java.lang.Override + public boolean hasWarningMask() { + return warningMask_ != null; + } + /** + * .AuditAudienceMask warningMask = 2; + * @return The warningMask. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask() { + return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; + } + /** + * .AuditAudienceMask warningMask = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder() { + return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (displayMask_ != false) { + output.writeBool(1, displayMask_); + } + if (warningMask_ != null) { + output.writeMessage(2, getWarningMask()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (displayMask_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, displayMask_); + } + if (warningMask_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getWarningMask()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience) obj; + + if (getDisplayMask() + != other.getDisplayMask()) return false; + if (hasWarningMask() != other.hasWarningMask()) return false; + if (hasWarningMask()) { + if (!getWarningMask() + .equals(other.getWarningMask())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DISPLAYMASK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDisplayMask()); + if (hasWarningMask()) { + hash = (37 * hash) + WARNINGMASK_FIELD_NUMBER; + hash = (53 * hash) + getWarningMask().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCLiveWarningMaskStatusChangedAudience} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCLiveWarningMaskStatusChangedAudience) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudienceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + displayMask_ = false; + warningMask_ = null; + if (warningMaskBuilder_ != null) { + warningMaskBuilder_.dispose(); + warningMaskBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.displayMask_ = displayMask_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.warningMask_ = warningMaskBuilder_ == null + ? warningMask_ + : warningMaskBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience.getDefaultInstance()) return this; + if (other.getDisplayMask() != false) { + setDisplayMask(other.getDisplayMask()); + } + if (other.hasWarningMask()) { + mergeWarningMask(other.getWarningMask()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + displayMask_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + input.readMessage( + getWarningMaskFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean displayMask_ ; + /** + * bool displayMask = 1; + * @return The displayMask. + */ + @java.lang.Override + public boolean getDisplayMask() { + return displayMask_; + } + /** + * bool displayMask = 1; + * @param value The displayMask to set. + * @return This builder for chaining. + */ + public Builder setDisplayMask(boolean value) { + + displayMask_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool displayMask = 1; + * @return This builder for chaining. + */ + public Builder clearDisplayMask() { + bitField0_ = (bitField0_ & ~0x00000001); + displayMask_ = false; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask warningMask_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder> warningMaskBuilder_; + /** + * .AuditAudienceMask warningMask = 2; + * @return Whether the warningMask field is set. + */ + public boolean hasWarningMask() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .AuditAudienceMask warningMask = 2; + * @return The warningMask. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask getWarningMask() { + if (warningMaskBuilder_ == null) { + return warningMask_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; + } else { + return warningMaskBuilder_.getMessage(); + } + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public Builder setWarningMask(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask value) { + if (warningMaskBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + warningMask_ = value; + } else { + warningMaskBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public Builder setWarningMask( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder builderForValue) { + if (warningMaskBuilder_ == null) { + warningMask_ = builderForValue.build(); + } else { + warningMaskBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public Builder mergeWarningMask(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask value) { + if (warningMaskBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + warningMask_ != null && + warningMask_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance()) { + getWarningMaskBuilder().mergeFrom(value); + } else { + warningMask_ = value; + } + } else { + warningMaskBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public Builder clearWarningMask() { + bitField0_ = (bitField0_ & ~0x00000002); + warningMask_ = null; + if (warningMaskBuilder_ != null) { + warningMaskBuilder_.dispose(); + warningMaskBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder getWarningMaskBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getWarningMaskFieldBuilder().getBuilder(); + } + /** + * .AuditAudienceMask warningMask = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder getWarningMaskOrBuilder() { + if (warningMaskBuilder_ != null) { + return warningMaskBuilder_.getMessageOrBuilder(); + } else { + return warningMask_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.getDefaultInstance() : warningMask_; + } + } + /** + * .AuditAudienceMask warningMask = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder> + getWarningMaskFieldBuilder() { + if (warningMaskBuilder_ == null) { + warningMaskBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMask.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.AuditAudienceMaskOrBuilder>( + getWarningMask(), + getParentForChildren(), + isClean()); + warningMask_ = null; + } + return warningMaskBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCLiveWarningMaskStatusChangedAudience) + } + + // @@protoc_insertion_point(class_scope:SCLiveWarningMaskStatusChangedAudience) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCLiveWarningMaskStatusChangedAudience parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCLiveWarningMaskStatusChangedAudienceOuterClass.SCLiveWarningMaskStatusChangedAudience getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n,SCLiveWarningMaskStatusChangedAudience" + + ".proto\032\027AuditAudienceMask.proto\"f\n&SCLiv" + + "eWarningMaskStatusChangedAudience\022\023\n\013dis" + + "playMask\030\001 \001(\010\022\'\n\013warningMask\030\002 \001(\0132\022.Au" + + "ditAudienceMaskB6\n4tech.ordinaryroad.liv" + + "e.chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.getDescriptor(), + }); + internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCLiveWarningMaskStatusChangedAudience_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCLiveWarningMaskStatusChangedAudience_descriptor, + new java.lang.String[] { "DisplayMask", "WarningMask", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.AuditAudienceMaskOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java new file mode 100644 index 00000000..68e4df33 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCPingAckOuterClass.java @@ -0,0 +1,624 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCPingAck.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCPingAckOuterClass { + private SCPingAckOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCPingAckOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCPingAck) + com.google.protobuf.MessageOrBuilder { + + /** + * string echoData = 1; + * @return The echoData. + */ + java.lang.String getEchoData(); + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + com.google.protobuf.ByteString + getEchoDataBytes(); + } + /** + * Protobuf type {@code SCPingAck} + */ + public static final class SCPingAck extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCPingAck) + SCPingAckOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCPingAck.newBuilder() to construct. + private SCPingAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCPingAck() { + echoData_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCPingAck(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.Builder.class); + } + + public static final int ECHODATA_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object echoData_ = ""; + /** + * string echoData = 1; + * @return The echoData. + */ + @java.lang.Override + public java.lang.String getEchoData() { + java.lang.Object ref = echoData_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + echoData_ = s; + return s; + } + } + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEchoDataBytes() { + java.lang.Object ref = echoData_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + echoData_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, echoData_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(echoData_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, echoData_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck) obj; + + if (!getEchoData() + .equals(other.getEchoData())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ECHODATA_FIELD_NUMBER; + hash = (53 * hash) + getEchoData().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCPingAck} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCPingAck) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAckOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + echoData_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.internal_static_SCPingAck_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.echoData_ = echoData_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck.getDefaultInstance()) return this; + if (!other.getEchoData().isEmpty()) { + echoData_ = other.echoData_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + echoData_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object echoData_ = ""; + /** + * string echoData = 1; + * @return The echoData. + */ + public java.lang.String getEchoData() { + java.lang.Object ref = echoData_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + echoData_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string echoData = 1; + * @return The bytes for echoData. + */ + public com.google.protobuf.ByteString + getEchoDataBytes() { + java.lang.Object ref = echoData_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + echoData_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string echoData = 1; + * @param value The echoData to set. + * @return This builder for chaining. + */ + public Builder setEchoData( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + echoData_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string echoData = 1; + * @return This builder for chaining. + */ + public Builder clearEchoData() { + echoData_ = getDefaultInstance().getEchoData(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string echoData = 1; + * @param value The bytes for echoData to set. + * @return This builder for chaining. + */ + public Builder setEchoDataBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + echoData_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCPingAck) + } + + // @@protoc_insertion_point(class_scope:SCPingAck) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCPingAck parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCPingAckOuterClass.SCPingAck getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCPingAck_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCPingAck_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\017SCPingAck.proto\"\035\n\tSCPingAck\022\020\n\010echoDa" + + "ta\030\001 \001(\tB6\n4tech.ordinaryroad.live.chat." + + "client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCPingAck_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCPingAck_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCPingAck_descriptor, + new java.lang.String[] { "EchoData", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java new file mode 100644 index 00000000..c2e6f94f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorPauseOuterClass.java @@ -0,0 +1,658 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebAuthorPause.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebAuthorPauseOuterClass { + private SCWebAuthorPauseOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebAuthorPauseOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebAuthorPause) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + + /** + * .WebPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + int getPauseTypeValue(); + /** + * .WebPauseType pauseType = 2; + * @return The pauseType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType(); + } + /** + * Protobuf type {@code SCWebAuthorPause} + */ + public static final class SCWebAuthorPause extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebAuthorPause) + SCWebAuthorPauseOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebAuthorPause.newBuilder() to construct. + private SCWebAuthorPause(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebAuthorPause() { + pauseType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebAuthorPause(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int PAUSETYPE_FIELD_NUMBER = 2; + private int pauseType_ = 0; + /** + * .WebPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + @java.lang.Override public int getPauseTypeValue() { + return pauseType_; + } + /** + * .WebPauseType pauseType = 2; + * @return The pauseType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.forNumber(pauseType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNKNOWN_PAUSE_TYPE.getNumber()) { + output.writeEnum(2, pauseType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + if (pauseType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNKNOWN_PAUSE_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, pauseType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause) obj; + + if (getTime() + != other.getTime()) return false; + if (pauseType_ != other.pauseType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + PAUSETYPE_FIELD_NUMBER; + hash = (53 * hash) + pauseType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebAuthorPause} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebAuthorPause) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPauseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + pauseType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.internal_static_SCWebAuthorPause_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.pauseType_ = pauseType_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (other.pauseType_ != 0) { + setPauseTypeValue(other.getPauseTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + pauseType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + + private int pauseType_ = 0; + /** + * .WebPauseType pauseType = 2; + * @return The enum numeric value on the wire for pauseType. + */ + @java.lang.Override public int getPauseTypeValue() { + return pauseType_; + } + /** + * .WebPauseType pauseType = 2; + * @param value The enum numeric value on the wire for pauseType to set. + * @return This builder for chaining. + */ + public Builder setPauseTypeValue(int value) { + pauseType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .WebPauseType pauseType = 2; + * @return The pauseType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType getPauseType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.forNumber(pauseType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType.UNRECOGNIZED : result; + } + /** + * .WebPauseType pauseType = 2; + * @param value The pauseType to set. + * @return This builder for chaining. + */ + public Builder setPauseType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.WebPauseType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + pauseType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebPauseType pauseType = 2; + * @return This builder for chaining. + */ + public Builder clearPauseType() { + bitField0_ = (bitField0_ & ~0x00000002); + pauseType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebAuthorPause) + } + + // @@protoc_insertion_point(class_scope:SCWebAuthorPause) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebAuthorPause parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorPauseOuterClass.SCWebAuthorPause getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebAuthorPause_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebAuthorPause_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026SCWebAuthorPause.proto\032\022WebPauseType.p" + + "roto\"B\n\020SCWebAuthorPause\022\014\n\004time\030\001 \001(\004\022 " + + "\n\tpauseType\030\002 \001(\0162\r.WebPauseTypeB6\n4tech" + + ".ordinaryroad.live.chat.client.kuaishou." + + "protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor(), + }); + internal_static_SCWebAuthorPause_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebAuthorPause_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebAuthorPause_descriptor, + new java.lang.String[] { "Time", "PauseType", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java new file mode 100644 index 00000000..77e3c124 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebAuthorResumeOuterClass.java @@ -0,0 +1,550 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebAuthorResume.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebAuthorResumeOuterClass { + private SCWebAuthorResumeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebAuthorResumeOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebAuthorResume) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + } + /** + * Protobuf type {@code SCWebAuthorResume} + */ + public static final class SCWebAuthorResume extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebAuthorResume) + SCWebAuthorResumeOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebAuthorResume.newBuilder() to construct. + private SCWebAuthorResume(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebAuthorResume() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebAuthorResume(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume) obj; + + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebAuthorResume} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebAuthorResume) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResumeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.internal_static_SCWebAuthorResume_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebAuthorResume) + } + + // @@protoc_insertion_point(class_scope:SCWebAuthorResume) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebAuthorResume parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebAuthorResumeOuterClass.SCWebAuthorResume getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebAuthorResume_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebAuthorResume_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\027SCWebAuthorResume.proto\"!\n\021SCWebAuthor" + + "Resume\022\014\n\004time\030\001 \001(\004B6\n4tech.ordinaryroa" + + "d.live.chat.client.kuaishou.protobufb\006pr" + + "oto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebAuthorResume_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebAuthorResume_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebAuthorResume_descriptor, + new java.lang.String[] { "Time", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java new file mode 100644 index 00000000..2aa5e587 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetChangedOuterClass.java @@ -0,0 +1,550 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebBetChanged.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebBetChangedOuterClass { + private SCWebBetChangedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebBetChangedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebBetChanged) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + long getMaxDelayMillis(); + } + /** + * Protobuf type {@code SCWebBetChanged} + */ + public static final class SCWebBetChanged extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebBetChanged) + SCWebBetChangedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebBetChanged.newBuilder() to construct. + private SCWebBetChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebBetChanged() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebBetChanged(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.Builder.class); + } + + public static final int MAXDELAYMILLIS_FIELD_NUMBER = 1; + private long maxDelayMillis_ = 0L; + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + @java.lang.Override + public long getMaxDelayMillis() { + return maxDelayMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (maxDelayMillis_ != 0L) { + output.writeUInt64(1, maxDelayMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (maxDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, maxDelayMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged) obj; + + if (getMaxDelayMillis() + != other.getMaxDelayMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MAXDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMaxDelayMillis()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebBetChanged} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebBetChanged) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChangedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + maxDelayMillis_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.internal_static_SCWebBetChanged_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.maxDelayMillis_ = maxDelayMillis_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged.getDefaultInstance()) return this; + if (other.getMaxDelayMillis() != 0L) { + setMaxDelayMillis(other.getMaxDelayMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + maxDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long maxDelayMillis_ ; + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + @java.lang.Override + public long getMaxDelayMillis() { + return maxDelayMillis_; + } + /** + * uint64 maxDelayMillis = 1; + * @param value The maxDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setMaxDelayMillis(long value) { + + maxDelayMillis_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 maxDelayMillis = 1; + * @return This builder for chaining. + */ + public Builder clearMaxDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000001); + maxDelayMillis_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebBetChanged) + } + + // @@protoc_insertion_point(class_scope:SCWebBetChanged) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebBetChanged parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetChangedOuterClass.SCWebBetChanged getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebBetChanged_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebBetChanged_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\025SCWebBetChanged.proto\")\n\017SCWebBetChang" + + "ed\022\026\n\016maxDelayMillis\030\001 \001(\004B6\n4tech.ordin" + + "aryroad.live.chat.client.kuaishou.protob" + + "ufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebBetChanged_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebBetChanged_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebBetChanged_descriptor, + new java.lang.String[] { "MaxDelayMillis", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java new file mode 100644 index 00000000..5fa5356c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebBetClosedOuterClass.java @@ -0,0 +1,550 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebBetClosed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebBetClosedOuterClass { + private SCWebBetClosedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebBetClosedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebBetClosed) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + long getMaxDelayMillis(); + } + /** + * Protobuf type {@code SCWebBetClosed} + */ + public static final class SCWebBetClosed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebBetClosed) + SCWebBetClosedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebBetClosed.newBuilder() to construct. + private SCWebBetClosed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebBetClosed() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebBetClosed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.Builder.class); + } + + public static final int MAXDELAYMILLIS_FIELD_NUMBER = 1; + private long maxDelayMillis_ = 0L; + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + @java.lang.Override + public long getMaxDelayMillis() { + return maxDelayMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (maxDelayMillis_ != 0L) { + output.writeUInt64(1, maxDelayMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (maxDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, maxDelayMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed) obj; + + if (getMaxDelayMillis() + != other.getMaxDelayMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MAXDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMaxDelayMillis()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebBetClosed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebBetClosed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + maxDelayMillis_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.internal_static_SCWebBetClosed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.maxDelayMillis_ = maxDelayMillis_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed.getDefaultInstance()) return this; + if (other.getMaxDelayMillis() != 0L) { + setMaxDelayMillis(other.getMaxDelayMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + maxDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long maxDelayMillis_ ; + /** + * uint64 maxDelayMillis = 1; + * @return The maxDelayMillis. + */ + @java.lang.Override + public long getMaxDelayMillis() { + return maxDelayMillis_; + } + /** + * uint64 maxDelayMillis = 1; + * @param value The maxDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setMaxDelayMillis(long value) { + + maxDelayMillis_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 maxDelayMillis = 1; + * @return This builder for chaining. + */ + public Builder clearMaxDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000001); + maxDelayMillis_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebBetClosed) + } + + // @@protoc_insertion_point(class_scope:SCWebBetClosed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebBetClosed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebBetClosedOuterClass.SCWebBetClosed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebBetClosed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebBetClosed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024SCWebBetClosed.proto\"(\n\016SCWebBetClosed" + + "\022\026\n\016maxDelayMillis\030\001 \001(\004B6\n4tech.ordinar" + + "yroad.live.chat.client.kuaishou.protobuf" + + "b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebBetClosed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebBetClosed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebBetClosed_descriptor, + new java.lang.String[] { "MaxDelayMillis", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java new file mode 100644 index 00000000..fc3d24a5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebCurrentRedPackFeedOuterClass.java @@ -0,0 +1,858 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebCurrentRedPackFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebCurrentRedPackFeedOuterClass { + private SCWebCurrentRedPackFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebCurrentRedPackFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebCurrentRedPackFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .WebRedPackInfo redPack = 1; + */ + java.util.List + getRedPackList(); + /** + * repeated .WebRedPackInfo redPack = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index); + /** + * repeated .WebRedPackInfo redPack = 1; + */ + int getRedPackCount(); + /** + * repeated .WebRedPackInfo redPack = 1; + */ + java.util.List + getRedPackOrBuilderList(); + /** + * repeated .WebRedPackInfo redPack = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( + int index); + } + /** + * Protobuf type {@code SCWebCurrentRedPackFeed} + */ + public static final class SCWebCurrentRedPackFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebCurrentRedPackFeed) + SCWebCurrentRedPackFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebCurrentRedPackFeed.newBuilder() to construct. + private SCWebCurrentRedPackFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebCurrentRedPackFeed() { + redPack_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebCurrentRedPackFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.Builder.class); + } + + public static final int REDPACK_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List redPack_; + /** + * repeated .WebRedPackInfo redPack = 1; + */ + @java.lang.Override + public java.util.List getRedPackList() { + return redPack_; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + @java.lang.Override + public java.util.List + getRedPackOrBuilderList() { + return redPack_; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + @java.lang.Override + public int getRedPackCount() { + return redPack_.size(); + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index) { + return redPack_.get(index); + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( + int index) { + return redPack_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < redPack_.size(); i++) { + output.writeMessage(1, redPack_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < redPack_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, redPack_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed) obj; + + if (!getRedPackList() + .equals(other.getRedPackList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getRedPackCount() > 0) { + hash = (37 * hash) + REDPACK_FIELD_NUMBER; + hash = (53 * hash) + getRedPackList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebCurrentRedPackFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebCurrentRedPackFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (redPackBuilder_ == null) { + redPack_ = java.util.Collections.emptyList(); + } else { + redPack_ = null; + redPackBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.internal_static_SCWebCurrentRedPackFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result) { + if (redPackBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + redPack_ = java.util.Collections.unmodifiableList(redPack_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.redPack_ = redPack_; + } else { + result.redPack_ = redPackBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed.getDefaultInstance()) return this; + if (redPackBuilder_ == null) { + if (!other.redPack_.isEmpty()) { + if (redPack_.isEmpty()) { + redPack_ = other.redPack_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureRedPackIsMutable(); + redPack_.addAll(other.redPack_); + } + onChanged(); + } + } else { + if (!other.redPack_.isEmpty()) { + if (redPackBuilder_.isEmpty()) { + redPackBuilder_.dispose(); + redPackBuilder_ = null; + redPack_ = other.redPack_; + bitField0_ = (bitField0_ & ~0x00000001); + redPackBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getRedPackFieldBuilder() : null; + } else { + redPackBuilder_.addAllMessages(other.redPack_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.parser(), + extensionRegistry); + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + redPack_.add(m); + } else { + redPackBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List redPack_ = + java.util.Collections.emptyList(); + private void ensureRedPackIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + redPack_ = new java.util.ArrayList(redPack_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder> redPackBuilder_; + + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public java.util.List getRedPackList() { + if (redPackBuilder_ == null) { + return java.util.Collections.unmodifiableList(redPack_); + } else { + return redPackBuilder_.getMessageList(); + } + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public int getRedPackCount() { + if (redPackBuilder_ == null) { + return redPack_.size(); + } else { + return redPackBuilder_.getCount(); + } + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getRedPack(int index) { + if (redPackBuilder_ == null) { + return redPack_.get(index); + } else { + return redPackBuilder_.getMessage(index); + } + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder setRedPack( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { + if (redPackBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRedPackIsMutable(); + redPack_.set(index, value); + onChanged(); + } else { + redPackBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder setRedPack( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + redPack_.set(index, builderForValue.build()); + onChanged(); + } else { + redPackBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder addRedPack(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { + if (redPackBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRedPackIsMutable(); + redPack_.add(value); + onChanged(); + } else { + redPackBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder addRedPack( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo value) { + if (redPackBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRedPackIsMutable(); + redPack_.add(index, value); + onChanged(); + } else { + redPackBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder addRedPack( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + redPack_.add(builderForValue.build()); + onChanged(); + } else { + redPackBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder addRedPack( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder builderForValue) { + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + redPack_.add(index, builderForValue.build()); + onChanged(); + } else { + redPackBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder addAllRedPack( + java.lang.Iterable values) { + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, redPack_); + onChanged(); + } else { + redPackBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder clearRedPack() { + if (redPackBuilder_ == null) { + redPack_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + redPackBuilder_.clear(); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public Builder removeRedPack(int index) { + if (redPackBuilder_ == null) { + ensureRedPackIsMutable(); + redPack_.remove(index); + onChanged(); + } else { + redPackBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder getRedPackBuilder( + int index) { + return getRedPackFieldBuilder().getBuilder(index); + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder getRedPackOrBuilder( + int index) { + if (redPackBuilder_ == null) { + return redPack_.get(index); } else { + return redPackBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public java.util.List + getRedPackOrBuilderList() { + if (redPackBuilder_ != null) { + return redPackBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(redPack_); + } + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder addRedPackBuilder() { + return getRedPackFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()); + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder addRedPackBuilder( + int index) { + return getRedPackFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()); + } + /** + * repeated .WebRedPackInfo redPack = 1; + */ + public java.util.List + getRedPackBuilderList() { + return getRedPackFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder> + getRedPackFieldBuilder() { + if (redPackBuilder_ == null) { + redPackBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder>( + redPack_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + redPack_ = null; + } + return redPackBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebCurrentRedPackFeed) + } + + // @@protoc_insertion_point(class_scope:SCWebCurrentRedPackFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebCurrentRedPackFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebCurrentRedPackFeedOuterClass.SCWebCurrentRedPackFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebCurrentRedPackFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\035SCWebCurrentRedPackFeed.proto\032\024WebRedP" + + "ackInfo.proto\";\n\027SCWebCurrentRedPackFeed" + + "\022 \n\007redPack\030\001 \003(\0132\017.WebRedPackInfoB6\n4te" + + "ch.ordinaryroad.live.chat.client.kuaisho" + + "u.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.getDescriptor(), + }); + internal_static_SCWebCurrentRedPackFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebCurrentRedPackFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebCurrentRedPackFeed_descriptor, + new java.lang.String[] { "RedPack", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java new file mode 100644 index 00000000..bc9092d2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebEnterRoomAckOuterClass.java @@ -0,0 +1,697 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebEnterRoomAck.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebEnterRoomAckOuterClass { + private SCWebEnterRoomAckOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebEnterRoomAckOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebEnterRoomAck) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 minReconnectMs = 1; + * @return The minReconnectMs. + */ + long getMinReconnectMs(); + + /** + * uint64 maxReconnectMs = 2; + * @return The maxReconnectMs. + */ + long getMaxReconnectMs(); + + /** + * uint64 heartbeatIntervalMs = 3; + * @return The heartbeatIntervalMs. + */ + long getHeartbeatIntervalMs(); + } + /** + * Protobuf type {@code SCWebEnterRoomAck} + */ + public static final class SCWebEnterRoomAck extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebEnterRoomAck) + SCWebEnterRoomAckOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebEnterRoomAck.newBuilder() to construct. + private SCWebEnterRoomAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebEnterRoomAck() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebEnterRoomAck(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.Builder.class); + } + + public static final int MINRECONNECTMS_FIELD_NUMBER = 1; + private long minReconnectMs_ = 0L; + /** + * uint64 minReconnectMs = 1; + * @return The minReconnectMs. + */ + @java.lang.Override + public long getMinReconnectMs() { + return minReconnectMs_; + } + + public static final int MAXRECONNECTMS_FIELD_NUMBER = 2; + private long maxReconnectMs_ = 0L; + /** + * uint64 maxReconnectMs = 2; + * @return The maxReconnectMs. + */ + @java.lang.Override + public long getMaxReconnectMs() { + return maxReconnectMs_; + } + + public static final int HEARTBEATINTERVALMS_FIELD_NUMBER = 3; + private long heartbeatIntervalMs_ = 0L; + /** + * uint64 heartbeatIntervalMs = 3; + * @return The heartbeatIntervalMs. + */ + @java.lang.Override + public long getHeartbeatIntervalMs() { + return heartbeatIntervalMs_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (minReconnectMs_ != 0L) { + output.writeUInt64(1, minReconnectMs_); + } + if (maxReconnectMs_ != 0L) { + output.writeUInt64(2, maxReconnectMs_); + } + if (heartbeatIntervalMs_ != 0L) { + output.writeUInt64(3, heartbeatIntervalMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (minReconnectMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, minReconnectMs_); + } + if (maxReconnectMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, maxReconnectMs_); + } + if (heartbeatIntervalMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, heartbeatIntervalMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck) obj; + + if (getMinReconnectMs() + != other.getMinReconnectMs()) return false; + if (getMaxReconnectMs() + != other.getMaxReconnectMs()) return false; + if (getHeartbeatIntervalMs() + != other.getHeartbeatIntervalMs()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MINRECONNECTMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMinReconnectMs()); + hash = (37 * hash) + MAXRECONNECTMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMaxReconnectMs()); + hash = (37 * hash) + HEARTBEATINTERVALMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getHeartbeatIntervalMs()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebEnterRoomAck} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebEnterRoomAck) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAckOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + minReconnectMs_ = 0L; + maxReconnectMs_ = 0L; + heartbeatIntervalMs_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.internal_static_SCWebEnterRoomAck_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.minReconnectMs_ = minReconnectMs_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.maxReconnectMs_ = maxReconnectMs_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.heartbeatIntervalMs_ = heartbeatIntervalMs_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck.getDefaultInstance()) return this; + if (other.getMinReconnectMs() != 0L) { + setMinReconnectMs(other.getMinReconnectMs()); + } + if (other.getMaxReconnectMs() != 0L) { + setMaxReconnectMs(other.getMaxReconnectMs()); + } + if (other.getHeartbeatIntervalMs() != 0L) { + setHeartbeatIntervalMs(other.getHeartbeatIntervalMs()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + minReconnectMs_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + maxReconnectMs_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + heartbeatIntervalMs_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long minReconnectMs_ ; + /** + * uint64 minReconnectMs = 1; + * @return The minReconnectMs. + */ + @java.lang.Override + public long getMinReconnectMs() { + return minReconnectMs_; + } + /** + * uint64 minReconnectMs = 1; + * @param value The minReconnectMs to set. + * @return This builder for chaining. + */ + public Builder setMinReconnectMs(long value) { + + minReconnectMs_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 minReconnectMs = 1; + * @return This builder for chaining. + */ + public Builder clearMinReconnectMs() { + bitField0_ = (bitField0_ & ~0x00000001); + minReconnectMs_ = 0L; + onChanged(); + return this; + } + + private long maxReconnectMs_ ; + /** + * uint64 maxReconnectMs = 2; + * @return The maxReconnectMs. + */ + @java.lang.Override + public long getMaxReconnectMs() { + return maxReconnectMs_; + } + /** + * uint64 maxReconnectMs = 2; + * @param value The maxReconnectMs to set. + * @return This builder for chaining. + */ + public Builder setMaxReconnectMs(long value) { + + maxReconnectMs_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 maxReconnectMs = 2; + * @return This builder for chaining. + */ + public Builder clearMaxReconnectMs() { + bitField0_ = (bitField0_ & ~0x00000002); + maxReconnectMs_ = 0L; + onChanged(); + return this; + } + + private long heartbeatIntervalMs_ ; + /** + * uint64 heartbeatIntervalMs = 3; + * @return The heartbeatIntervalMs. + */ + @java.lang.Override + public long getHeartbeatIntervalMs() { + return heartbeatIntervalMs_; + } + /** + * uint64 heartbeatIntervalMs = 3; + * @param value The heartbeatIntervalMs to set. + * @return This builder for chaining. + */ + public Builder setHeartbeatIntervalMs(long value) { + + heartbeatIntervalMs_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 heartbeatIntervalMs = 3; + * @return This builder for chaining. + */ + public Builder clearHeartbeatIntervalMs() { + bitField0_ = (bitField0_ & ~0x00000004); + heartbeatIntervalMs_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebEnterRoomAck) + } + + // @@protoc_insertion_point(class_scope:SCWebEnterRoomAck) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebEnterRoomAck parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebEnterRoomAckOuterClass.SCWebEnterRoomAck getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebEnterRoomAck_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebEnterRoomAck_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\027SCWebEnterRoomAck.proto\"`\n\021SCWebEnterR" + + "oomAck\022\026\n\016minReconnectMs\030\001 \001(\004\022\026\n\016maxRec" + + "onnectMs\030\002 \001(\004\022\033\n\023heartbeatIntervalMs\030\003 " + + "\001(\004B6\n4tech.ordinaryroad.live.chat.clien" + + "t.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebEnterRoomAck_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebEnterRoomAck_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebEnterRoomAck_descriptor, + new java.lang.String[] { "MinReconnectMs", "MaxReconnectMs", "HeartbeatIntervalMs", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java new file mode 100644 index 00000000..e033d815 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebErrorOuterClass.java @@ -0,0 +1,769 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebError.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebErrorOuterClass { + private SCWebErrorOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebError) + com.google.protobuf.MessageOrBuilder { + + /** + * uint32 code = 1; + * @return The code. + */ + int getCode(); + + /** + * string msg = 2; + * @return The msg. + */ + java.lang.String getMsg(); + /** + * string msg = 2; + * @return The bytes for msg. + */ + com.google.protobuf.ByteString + getMsgBytes(); + + /** + * uint32 subCode = 3; + * @return The subCode. + */ + int getSubCode(); + } + /** + * Protobuf type {@code SCWebError} + */ + public static final class SCWebError extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebError) + SCWebErrorOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebError.newBuilder() to construct. + private SCWebError(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebError() { + msg_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebError(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + private int code_ = 0; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + + public static final int MSG_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + @java.lang.Override + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SUBCODE_FIELD_NUMBER = 3; + private int subCode_ = 0; + /** + * uint32 subCode = 3; + * @return The subCode. + */ + @java.lang.Override + public int getSubCode() { + return subCode_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (code_ != 0) { + output.writeUInt32(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, msg_); + } + if (subCode_ != 0) { + output.writeUInt32(3, subCode_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (code_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(1, code_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, msg_); + } + if (subCode_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, subCode_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError) obj; + + if (getCode() + != other.getCode()) return false; + if (!getMsg() + .equals(other.getMsg())) return false; + if (getSubCode() + != other.getSubCode()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode(); + hash = (37 * hash) + MSG_FIELD_NUMBER; + hash = (53 * hash) + getMsg().hashCode(); + hash = (37 * hash) + SUBCODE_FIELD_NUMBER; + hash = (53 * hash) + getSubCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebError) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = 0; + msg_ = ""; + subCode_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.internal_static_SCWebError_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.msg_ = msg_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.subCode_ = subCode_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError.getDefaultInstance()) return this; + if (other.getCode() != 0) { + setCode(other.getCode()); + } + if (!other.getMsg().isEmpty()) { + msg_ = other.msg_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getSubCode() != 0) { + setSubCode(other.getSubCode()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + code_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + msg_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + subCode_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int code_ ; + /** + * uint32 code = 1; + * @return The code. + */ + @java.lang.Override + public int getCode() { + return code_; + } + /** + * uint32 code = 1; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode(int value) { + + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint32 code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + bitField0_ = (bitField0_ & ~0x00000001); + code_ = 0; + onChanged(); + return this; + } + + private java.lang.Object msg_ = ""; + /** + * string msg = 2; + * @return The msg. + */ + public java.lang.String getMsg() { + java.lang.Object ref = msg_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + msg_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string msg = 2; + * @return The bytes for msg. + */ + public com.google.protobuf.ByteString + getMsgBytes() { + java.lang.Object ref = msg_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + msg_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string msg = 2; + * @param value The msg to set. + * @return This builder for chaining. + */ + public Builder setMsg( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string msg = 2; + * @return This builder for chaining. + */ + public Builder clearMsg() { + msg_ = getDefaultInstance().getMsg(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string msg = 2; + * @param value The bytes for msg to set. + * @return This builder for chaining. + */ + public Builder setMsgBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msg_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int subCode_ ; + /** + * uint32 subCode = 3; + * @return The subCode. + */ + @java.lang.Override + public int getSubCode() { + return subCode_; + } + /** + * uint32 subCode = 3; + * @param value The subCode to set. + * @return This builder for chaining. + */ + public Builder setSubCode(int value) { + + subCode_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint32 subCode = 3; + * @return This builder for chaining. + */ + public Builder clearSubCode() { + bitField0_ = (bitField0_ & ~0x00000004); + subCode_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebError) + } + + // @@protoc_insertion_point(class_scope:SCWebError) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebErrorOuterClass.SCWebError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebError_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebError_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020SCWebError.proto\"8\n\nSCWebError\022\014\n\004code" + + "\030\001 \001(\r\022\013\n\003msg\030\002 \001(\t\022\017\n\007subCode\030\003 \001(\rB6\n4" + + "tech.ordinaryroad.live.chat.client.kuais" + + "hou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebError_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebError_descriptor, + new java.lang.String[] { "Code", "Msg", "SubCode", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java new file mode 100644 index 00000000..ab940c61 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebFeedPushOuterClass.java @@ -0,0 +1,3487 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebFeedPush.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebFeedPushOuterClass { + private SCWebFeedPushOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebFeedPushOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebFeedPush) + com.google.protobuf.MessageOrBuilder { + + /** + * string displayWatchingCount = 1; + * @return The displayWatchingCount. + */ + java.lang.String getDisplayWatchingCount(); + /** + * string displayWatchingCount = 1; + * @return The bytes for displayWatchingCount. + */ + com.google.protobuf.ByteString + getDisplayWatchingCountBytes(); + + /** + * string displayLikeCount = 2; + * @return The displayLikeCount. + */ + java.lang.String getDisplayLikeCount(); + /** + * string displayLikeCount = 2; + * @return The bytes for displayLikeCount. + */ + com.google.protobuf.ByteString + getDisplayLikeCountBytes(); + + /** + * uint64 pendingLikeCount = 3; + * @return The pendingLikeCount. + */ + long getPendingLikeCount(); + + /** + * uint64 pushInterval = 4; + * @return The pushInterval. + */ + long getPushInterval(); + + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + java.util.List + getCommentFeedsList(); + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index); + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + int getCommentFeedsCount(); + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + java.util.List + getCommentFeedsOrBuilderList(); + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( + int index); + + /** + * string commentCursor = 6; + * @return The commentCursor. + */ + java.lang.String getCommentCursor(); + /** + * string commentCursor = 6; + * @return The bytes for commentCursor. + */ + com.google.protobuf.ByteString + getCommentCursorBytes(); + + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + java.util.List + getComboCommentFeedList(); + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index); + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + int getComboCommentFeedCount(); + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + java.util.List + getComboCommentFeedOrBuilderList(); + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( + int index); + + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + java.util.List + getLikeFeedsList(); + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index); + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + int getLikeFeedsCount(); + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + java.util.List + getLikeFeedsOrBuilderList(); + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( + int index); + + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + java.util.List + getGiftFeedsList(); + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index); + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + int getGiftFeedsCount(); + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + java.util.List + getGiftFeedsOrBuilderList(); + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( + int index); + + /** + * string giftCursor = 10; + * @return The giftCursor. + */ + java.lang.String getGiftCursor(); + /** + * string giftCursor = 10; + * @return The bytes for giftCursor. + */ + com.google.protobuf.ByteString + getGiftCursorBytes(); + + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + java.util.List + getSystemNoticeFeedsList(); + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index); + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + int getSystemNoticeFeedsCount(); + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + java.util.List + getSystemNoticeFeedsOrBuilderList(); + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( + int index); + + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + java.util.List + getShareFeedsList(); + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index); + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + int getShareFeedsCount(); + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + java.util.List + getShareFeedsOrBuilderList(); + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( + int index); + } + /** + * Protobuf type {@code SCWebFeedPush} + */ + public static final class SCWebFeedPush extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebFeedPush) + SCWebFeedPushOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebFeedPush.newBuilder() to construct. + private SCWebFeedPush(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebFeedPush() { + displayWatchingCount_ = ""; + displayLikeCount_ = ""; + commentFeeds_ = java.util.Collections.emptyList(); + commentCursor_ = ""; + comboCommentFeed_ = java.util.Collections.emptyList(); + likeFeeds_ = java.util.Collections.emptyList(); + giftFeeds_ = java.util.Collections.emptyList(); + giftCursor_ = ""; + systemNoticeFeeds_ = java.util.Collections.emptyList(); + shareFeeds_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebFeedPush(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.Builder.class); + } + + public static final int DISPLAYWATCHINGCOUNT_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object displayWatchingCount_ = ""; + /** + * string displayWatchingCount = 1; + * @return The displayWatchingCount. + */ + @java.lang.Override + public java.lang.String getDisplayWatchingCount() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayWatchingCount_ = s; + return s; + } + } + /** + * string displayWatchingCount = 1; + * @return The bytes for displayWatchingCount. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayWatchingCountBytes() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayWatchingCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAYLIKECOUNT_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object displayLikeCount_ = ""; + /** + * string displayLikeCount = 2; + * @return The displayLikeCount. + */ + @java.lang.Override + public java.lang.String getDisplayLikeCount() { + java.lang.Object ref = displayLikeCount_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayLikeCount_ = s; + return s; + } + } + /** + * string displayLikeCount = 2; + * @return The bytes for displayLikeCount. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayLikeCountBytes() { + java.lang.Object ref = displayLikeCount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayLikeCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PENDINGLIKECOUNT_FIELD_NUMBER = 3; + private long pendingLikeCount_ = 0L; + /** + * uint64 pendingLikeCount = 3; + * @return The pendingLikeCount. + */ + @java.lang.Override + public long getPendingLikeCount() { + return pendingLikeCount_; + } + + public static final int PUSHINTERVAL_FIELD_NUMBER = 4; + private long pushInterval_ = 0L; + /** + * uint64 pushInterval = 4; + * @return The pushInterval. + */ + @java.lang.Override + public long getPushInterval() { + return pushInterval_; + } + + public static final int COMMENTFEEDS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private java.util.List commentFeeds_; + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + @java.lang.Override + public java.util.List getCommentFeedsList() { + return commentFeeds_; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + @java.lang.Override + public java.util.List + getCommentFeedsOrBuilderList() { + return commentFeeds_; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + @java.lang.Override + public int getCommentFeedsCount() { + return commentFeeds_.size(); + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index) { + return commentFeeds_.get(index); + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( + int index) { + return commentFeeds_.get(index); + } + + public static final int COMMENTCURSOR_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object commentCursor_ = ""; + /** + * string commentCursor = 6; + * @return The commentCursor. + */ + @java.lang.Override + public java.lang.String getCommentCursor() { + java.lang.Object ref = commentCursor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + commentCursor_ = s; + return s; + } + } + /** + * string commentCursor = 6; + * @return The bytes for commentCursor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCommentCursorBytes() { + java.lang.Object ref = commentCursor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + commentCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int COMBOCOMMENTFEED_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private java.util.List comboCommentFeed_; + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + @java.lang.Override + public java.util.List getComboCommentFeedList() { + return comboCommentFeed_; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + @java.lang.Override + public java.util.List + getComboCommentFeedOrBuilderList() { + return comboCommentFeed_; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + @java.lang.Override + public int getComboCommentFeedCount() { + return comboCommentFeed_.size(); + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index) { + return comboCommentFeed_.get(index); + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( + int index) { + return comboCommentFeed_.get(index); + } + + public static final int LIKEFEEDS_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private java.util.List likeFeeds_; + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + @java.lang.Override + public java.util.List getLikeFeedsList() { + return likeFeeds_; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + @java.lang.Override + public java.util.List + getLikeFeedsOrBuilderList() { + return likeFeeds_; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + @java.lang.Override + public int getLikeFeedsCount() { + return likeFeeds_.size(); + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index) { + return likeFeeds_.get(index); + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( + int index) { + return likeFeeds_.get(index); + } + + public static final int GIFTFEEDS_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private java.util.List giftFeeds_; + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + @java.lang.Override + public java.util.List getGiftFeedsList() { + return giftFeeds_; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + @java.lang.Override + public java.util.List + getGiftFeedsOrBuilderList() { + return giftFeeds_; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + @java.lang.Override + public int getGiftFeedsCount() { + return giftFeeds_.size(); + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index) { + return giftFeeds_.get(index); + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( + int index) { + return giftFeeds_.get(index); + } + + public static final int GIFTCURSOR_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object giftCursor_ = ""; + /** + * string giftCursor = 10; + * @return The giftCursor. + */ + @java.lang.Override + public java.lang.String getGiftCursor() { + java.lang.Object ref = giftCursor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + giftCursor_ = s; + return s; + } + } + /** + * string giftCursor = 10; + * @return The bytes for giftCursor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGiftCursorBytes() { + java.lang.Object ref = giftCursor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + giftCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SYSTEMNOTICEFEEDS_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private java.util.List systemNoticeFeeds_; + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + @java.lang.Override + public java.util.List getSystemNoticeFeedsList() { + return systemNoticeFeeds_; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + @java.lang.Override + public java.util.List + getSystemNoticeFeedsOrBuilderList() { + return systemNoticeFeeds_; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + @java.lang.Override + public int getSystemNoticeFeedsCount() { + return systemNoticeFeeds_.size(); + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index) { + return systemNoticeFeeds_.get(index); + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( + int index) { + return systemNoticeFeeds_.get(index); + } + + public static final int SHAREFEEDS_FIELD_NUMBER = 12; + @SuppressWarnings("serial") + private java.util.List shareFeeds_; + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + @java.lang.Override + public java.util.List getShareFeedsList() { + return shareFeeds_; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + @java.lang.Override + public java.util.List + getShareFeedsOrBuilderList() { + return shareFeeds_; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + @java.lang.Override + public int getShareFeedsCount() { + return shareFeeds_.size(); + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index) { + return shareFeeds_.get(index); + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( + int index) { + return shareFeeds_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, displayWatchingCount_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayLikeCount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, displayLikeCount_); + } + if (pendingLikeCount_ != 0L) { + output.writeUInt64(3, pendingLikeCount_); + } + if (pushInterval_ != 0L) { + output.writeUInt64(4, pushInterval_); + } + for (int i = 0; i < commentFeeds_.size(); i++) { + output.writeMessage(5, commentFeeds_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(commentCursor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, commentCursor_); + } + for (int i = 0; i < comboCommentFeed_.size(); i++) { + output.writeMessage(7, comboCommentFeed_.get(i)); + } + for (int i = 0; i < likeFeeds_.size(); i++) { + output.writeMessage(8, likeFeeds_.get(i)); + } + for (int i = 0; i < giftFeeds_.size(); i++) { + output.writeMessage(9, giftFeeds_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(giftCursor_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 10, giftCursor_); + } + for (int i = 0; i < systemNoticeFeeds_.size(); i++) { + output.writeMessage(11, systemNoticeFeeds_.get(i)); + } + for (int i = 0; i < shareFeeds_.size(); i++) { + output.writeMessage(12, shareFeeds_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, displayWatchingCount_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayLikeCount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, displayLikeCount_); + } + if (pendingLikeCount_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, pendingLikeCount_); + } + if (pushInterval_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, pushInterval_); + } + for (int i = 0; i < commentFeeds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, commentFeeds_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(commentCursor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, commentCursor_); + } + for (int i = 0; i < comboCommentFeed_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, comboCommentFeed_.get(i)); + } + for (int i = 0; i < likeFeeds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, likeFeeds_.get(i)); + } + for (int i = 0; i < giftFeeds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, giftFeeds_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(giftCursor_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, giftCursor_); + } + for (int i = 0; i < systemNoticeFeeds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, systemNoticeFeeds_.get(i)); + } + for (int i = 0; i < shareFeeds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(12, shareFeeds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush) obj; + + if (!getDisplayWatchingCount() + .equals(other.getDisplayWatchingCount())) return false; + if (!getDisplayLikeCount() + .equals(other.getDisplayLikeCount())) return false; + if (getPendingLikeCount() + != other.getPendingLikeCount()) return false; + if (getPushInterval() + != other.getPushInterval()) return false; + if (!getCommentFeedsList() + .equals(other.getCommentFeedsList())) return false; + if (!getCommentCursor() + .equals(other.getCommentCursor())) return false; + if (!getComboCommentFeedList() + .equals(other.getComboCommentFeedList())) return false; + if (!getLikeFeedsList() + .equals(other.getLikeFeedsList())) return false; + if (!getGiftFeedsList() + .equals(other.getGiftFeedsList())) return false; + if (!getGiftCursor() + .equals(other.getGiftCursor())) return false; + if (!getSystemNoticeFeedsList() + .equals(other.getSystemNoticeFeedsList())) return false; + if (!getShareFeedsList() + .equals(other.getShareFeedsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DISPLAYWATCHINGCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getDisplayWatchingCount().hashCode(); + hash = (37 * hash) + DISPLAYLIKECOUNT_FIELD_NUMBER; + hash = (53 * hash) + getDisplayLikeCount().hashCode(); + hash = (37 * hash) + PENDINGLIKECOUNT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPendingLikeCount()); + hash = (37 * hash) + PUSHINTERVAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPushInterval()); + if (getCommentFeedsCount() > 0) { + hash = (37 * hash) + COMMENTFEEDS_FIELD_NUMBER; + hash = (53 * hash) + getCommentFeedsList().hashCode(); + } + hash = (37 * hash) + COMMENTCURSOR_FIELD_NUMBER; + hash = (53 * hash) + getCommentCursor().hashCode(); + if (getComboCommentFeedCount() > 0) { + hash = (37 * hash) + COMBOCOMMENTFEED_FIELD_NUMBER; + hash = (53 * hash) + getComboCommentFeedList().hashCode(); + } + if (getLikeFeedsCount() > 0) { + hash = (37 * hash) + LIKEFEEDS_FIELD_NUMBER; + hash = (53 * hash) + getLikeFeedsList().hashCode(); + } + if (getGiftFeedsCount() > 0) { + hash = (37 * hash) + GIFTFEEDS_FIELD_NUMBER; + hash = (53 * hash) + getGiftFeedsList().hashCode(); + } + hash = (37 * hash) + GIFTCURSOR_FIELD_NUMBER; + hash = (53 * hash) + getGiftCursor().hashCode(); + if (getSystemNoticeFeedsCount() > 0) { + hash = (37 * hash) + SYSTEMNOTICEFEEDS_FIELD_NUMBER; + hash = (53 * hash) + getSystemNoticeFeedsList().hashCode(); + } + if (getShareFeedsCount() > 0) { + hash = (37 * hash) + SHAREFEEDS_FIELD_NUMBER; + hash = (53 * hash) + getShareFeedsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebFeedPush} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebFeedPush) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPushOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + displayWatchingCount_ = ""; + displayLikeCount_ = ""; + pendingLikeCount_ = 0L; + pushInterval_ = 0L; + if (commentFeedsBuilder_ == null) { + commentFeeds_ = java.util.Collections.emptyList(); + } else { + commentFeeds_ = null; + commentFeedsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + commentCursor_ = ""; + if (comboCommentFeedBuilder_ == null) { + comboCommentFeed_ = java.util.Collections.emptyList(); + } else { + comboCommentFeed_ = null; + comboCommentFeedBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000040); + if (likeFeedsBuilder_ == null) { + likeFeeds_ = java.util.Collections.emptyList(); + } else { + likeFeeds_ = null; + likeFeedsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000080); + if (giftFeedsBuilder_ == null) { + giftFeeds_ = java.util.Collections.emptyList(); + } else { + giftFeeds_ = null; + giftFeedsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000100); + giftCursor_ = ""; + if (systemNoticeFeedsBuilder_ == null) { + systemNoticeFeeds_ = java.util.Collections.emptyList(); + } else { + systemNoticeFeeds_ = null; + systemNoticeFeedsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000400); + if (shareFeedsBuilder_ == null) { + shareFeeds_ = java.util.Collections.emptyList(); + } else { + shareFeeds_ = null; + shareFeedsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000800); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.internal_static_SCWebFeedPush_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result) { + if (commentFeedsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + commentFeeds_ = java.util.Collections.unmodifiableList(commentFeeds_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.commentFeeds_ = commentFeeds_; + } else { + result.commentFeeds_ = commentFeedsBuilder_.build(); + } + if (comboCommentFeedBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0)) { + comboCommentFeed_ = java.util.Collections.unmodifiableList(comboCommentFeed_); + bitField0_ = (bitField0_ & ~0x00000040); + } + result.comboCommentFeed_ = comboCommentFeed_; + } else { + result.comboCommentFeed_ = comboCommentFeedBuilder_.build(); + } + if (likeFeedsBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0)) { + likeFeeds_ = java.util.Collections.unmodifiableList(likeFeeds_); + bitField0_ = (bitField0_ & ~0x00000080); + } + result.likeFeeds_ = likeFeeds_; + } else { + result.likeFeeds_ = likeFeedsBuilder_.build(); + } + if (giftFeedsBuilder_ == null) { + if (((bitField0_ & 0x00000100) != 0)) { + giftFeeds_ = java.util.Collections.unmodifiableList(giftFeeds_); + bitField0_ = (bitField0_ & ~0x00000100); + } + result.giftFeeds_ = giftFeeds_; + } else { + result.giftFeeds_ = giftFeedsBuilder_.build(); + } + if (systemNoticeFeedsBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0)) { + systemNoticeFeeds_ = java.util.Collections.unmodifiableList(systemNoticeFeeds_); + bitField0_ = (bitField0_ & ~0x00000400); + } + result.systemNoticeFeeds_ = systemNoticeFeeds_; + } else { + result.systemNoticeFeeds_ = systemNoticeFeedsBuilder_.build(); + } + if (shareFeedsBuilder_ == null) { + if (((bitField0_ & 0x00000800) != 0)) { + shareFeeds_ = java.util.Collections.unmodifiableList(shareFeeds_); + bitField0_ = (bitField0_ & ~0x00000800); + } + result.shareFeeds_ = shareFeeds_; + } else { + result.shareFeeds_ = shareFeedsBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.displayWatchingCount_ = displayWatchingCount_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.displayLikeCount_ = displayLikeCount_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pendingLikeCount_ = pendingLikeCount_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.pushInterval_ = pushInterval_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.commentCursor_ = commentCursor_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.giftCursor_ = giftCursor_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush.getDefaultInstance()) return this; + if (!other.getDisplayWatchingCount().isEmpty()) { + displayWatchingCount_ = other.displayWatchingCount_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getDisplayLikeCount().isEmpty()) { + displayLikeCount_ = other.displayLikeCount_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPendingLikeCount() != 0L) { + setPendingLikeCount(other.getPendingLikeCount()); + } + if (other.getPushInterval() != 0L) { + setPushInterval(other.getPushInterval()); + } + if (commentFeedsBuilder_ == null) { + if (!other.commentFeeds_.isEmpty()) { + if (commentFeeds_.isEmpty()) { + commentFeeds_ = other.commentFeeds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureCommentFeedsIsMutable(); + commentFeeds_.addAll(other.commentFeeds_); + } + onChanged(); + } + } else { + if (!other.commentFeeds_.isEmpty()) { + if (commentFeedsBuilder_.isEmpty()) { + commentFeedsBuilder_.dispose(); + commentFeedsBuilder_ = null; + commentFeeds_ = other.commentFeeds_; + bitField0_ = (bitField0_ & ~0x00000010); + commentFeedsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getCommentFeedsFieldBuilder() : null; + } else { + commentFeedsBuilder_.addAllMessages(other.commentFeeds_); + } + } + } + if (!other.getCommentCursor().isEmpty()) { + commentCursor_ = other.commentCursor_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (comboCommentFeedBuilder_ == null) { + if (!other.comboCommentFeed_.isEmpty()) { + if (comboCommentFeed_.isEmpty()) { + comboCommentFeed_ = other.comboCommentFeed_; + bitField0_ = (bitField0_ & ~0x00000040); + } else { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.addAll(other.comboCommentFeed_); + } + onChanged(); + } + } else { + if (!other.comboCommentFeed_.isEmpty()) { + if (comboCommentFeedBuilder_.isEmpty()) { + comboCommentFeedBuilder_.dispose(); + comboCommentFeedBuilder_ = null; + comboCommentFeed_ = other.comboCommentFeed_; + bitField0_ = (bitField0_ & ~0x00000040); + comboCommentFeedBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getComboCommentFeedFieldBuilder() : null; + } else { + comboCommentFeedBuilder_.addAllMessages(other.comboCommentFeed_); + } + } + } + if (likeFeedsBuilder_ == null) { + if (!other.likeFeeds_.isEmpty()) { + if (likeFeeds_.isEmpty()) { + likeFeeds_ = other.likeFeeds_; + bitField0_ = (bitField0_ & ~0x00000080); + } else { + ensureLikeFeedsIsMutable(); + likeFeeds_.addAll(other.likeFeeds_); + } + onChanged(); + } + } else { + if (!other.likeFeeds_.isEmpty()) { + if (likeFeedsBuilder_.isEmpty()) { + likeFeedsBuilder_.dispose(); + likeFeedsBuilder_ = null; + likeFeeds_ = other.likeFeeds_; + bitField0_ = (bitField0_ & ~0x00000080); + likeFeedsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getLikeFeedsFieldBuilder() : null; + } else { + likeFeedsBuilder_.addAllMessages(other.likeFeeds_); + } + } + } + if (giftFeedsBuilder_ == null) { + if (!other.giftFeeds_.isEmpty()) { + if (giftFeeds_.isEmpty()) { + giftFeeds_ = other.giftFeeds_; + bitField0_ = (bitField0_ & ~0x00000100); + } else { + ensureGiftFeedsIsMutable(); + giftFeeds_.addAll(other.giftFeeds_); + } + onChanged(); + } + } else { + if (!other.giftFeeds_.isEmpty()) { + if (giftFeedsBuilder_.isEmpty()) { + giftFeedsBuilder_.dispose(); + giftFeedsBuilder_ = null; + giftFeeds_ = other.giftFeeds_; + bitField0_ = (bitField0_ & ~0x00000100); + giftFeedsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getGiftFeedsFieldBuilder() : null; + } else { + giftFeedsBuilder_.addAllMessages(other.giftFeeds_); + } + } + } + if (!other.getGiftCursor().isEmpty()) { + giftCursor_ = other.giftCursor_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (systemNoticeFeedsBuilder_ == null) { + if (!other.systemNoticeFeeds_.isEmpty()) { + if (systemNoticeFeeds_.isEmpty()) { + systemNoticeFeeds_ = other.systemNoticeFeeds_; + bitField0_ = (bitField0_ & ~0x00000400); + } else { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.addAll(other.systemNoticeFeeds_); + } + onChanged(); + } + } else { + if (!other.systemNoticeFeeds_.isEmpty()) { + if (systemNoticeFeedsBuilder_.isEmpty()) { + systemNoticeFeedsBuilder_.dispose(); + systemNoticeFeedsBuilder_ = null; + systemNoticeFeeds_ = other.systemNoticeFeeds_; + bitField0_ = (bitField0_ & ~0x00000400); + systemNoticeFeedsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getSystemNoticeFeedsFieldBuilder() : null; + } else { + systemNoticeFeedsBuilder_.addAllMessages(other.systemNoticeFeeds_); + } + } + } + if (shareFeedsBuilder_ == null) { + if (!other.shareFeeds_.isEmpty()) { + if (shareFeeds_.isEmpty()) { + shareFeeds_ = other.shareFeeds_; + bitField0_ = (bitField0_ & ~0x00000800); + } else { + ensureShareFeedsIsMutable(); + shareFeeds_.addAll(other.shareFeeds_); + } + onChanged(); + } + } else { + if (!other.shareFeeds_.isEmpty()) { + if (shareFeedsBuilder_.isEmpty()) { + shareFeedsBuilder_.dispose(); + shareFeedsBuilder_ = null; + shareFeeds_ = other.shareFeeds_; + bitField0_ = (bitField0_ & ~0x00000800); + shareFeedsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getShareFeedsFieldBuilder() : null; + } else { + shareFeedsBuilder_.addAllMessages(other.shareFeeds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + displayWatchingCount_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + displayLikeCount_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + pendingLikeCount_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + pushInterval_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.parser(), + extensionRegistry); + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + commentFeeds_.add(m); + } else { + commentFeedsBuilder_.addMessage(m); + } + break; + } // case 42 + case 50: { + commentCursor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.parser(), + extensionRegistry); + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.add(m); + } else { + comboCommentFeedBuilder_.addMessage(m); + } + break; + } // case 58 + case 66: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.parser(), + extensionRegistry); + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + likeFeeds_.add(m); + } else { + likeFeedsBuilder_.addMessage(m); + } + break; + } // case 66 + case 74: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.parser(), + extensionRegistry); + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + giftFeeds_.add(m); + } else { + giftFeedsBuilder_.addMessage(m); + } + break; + } // case 74 + case 82: { + giftCursor_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.parser(), + extensionRegistry); + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.add(m); + } else { + systemNoticeFeedsBuilder_.addMessage(m); + } + break; + } // case 90 + case 98: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.parser(), + extensionRegistry); + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + shareFeeds_.add(m); + } else { + shareFeedsBuilder_.addMessage(m); + } + break; + } // case 98 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object displayWatchingCount_ = ""; + /** + * string displayWatchingCount = 1; + * @return The displayWatchingCount. + */ + public java.lang.String getDisplayWatchingCount() { + java.lang.Object ref = displayWatchingCount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayWatchingCount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string displayWatchingCount = 1; + * @return The bytes for displayWatchingCount. + */ + public com.google.protobuf.ByteString + getDisplayWatchingCountBytes() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayWatchingCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string displayWatchingCount = 1; + * @param value The displayWatchingCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayWatchingCount( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayWatchingCount_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string displayWatchingCount = 1; + * @return This builder for chaining. + */ + public Builder clearDisplayWatchingCount() { + displayWatchingCount_ = getDefaultInstance().getDisplayWatchingCount(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string displayWatchingCount = 1; + * @param value The bytes for displayWatchingCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayWatchingCountBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayWatchingCount_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object displayLikeCount_ = ""; + /** + * string displayLikeCount = 2; + * @return The displayLikeCount. + */ + public java.lang.String getDisplayLikeCount() { + java.lang.Object ref = displayLikeCount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayLikeCount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string displayLikeCount = 2; + * @return The bytes for displayLikeCount. + */ + public com.google.protobuf.ByteString + getDisplayLikeCountBytes() { + java.lang.Object ref = displayLikeCount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayLikeCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string displayLikeCount = 2; + * @param value The displayLikeCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayLikeCount( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayLikeCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string displayLikeCount = 2; + * @return This builder for chaining. + */ + public Builder clearDisplayLikeCount() { + displayLikeCount_ = getDefaultInstance().getDisplayLikeCount(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string displayLikeCount = 2; + * @param value The bytes for displayLikeCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayLikeCountBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayLikeCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long pendingLikeCount_ ; + /** + * uint64 pendingLikeCount = 3; + * @return The pendingLikeCount. + */ + @java.lang.Override + public long getPendingLikeCount() { + return pendingLikeCount_; + } + /** + * uint64 pendingLikeCount = 3; + * @param value The pendingLikeCount to set. + * @return This builder for chaining. + */ + public Builder setPendingLikeCount(long value) { + + pendingLikeCount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 pendingLikeCount = 3; + * @return This builder for chaining. + */ + public Builder clearPendingLikeCount() { + bitField0_ = (bitField0_ & ~0x00000004); + pendingLikeCount_ = 0L; + onChanged(); + return this; + } + + private long pushInterval_ ; + /** + * uint64 pushInterval = 4; + * @return The pushInterval. + */ + @java.lang.Override + public long getPushInterval() { + return pushInterval_; + } + /** + * uint64 pushInterval = 4; + * @param value The pushInterval to set. + * @return This builder for chaining. + */ + public Builder setPushInterval(long value) { + + pushInterval_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 pushInterval = 4; + * @return This builder for chaining. + */ + public Builder clearPushInterval() { + bitField0_ = (bitField0_ & ~0x00000008); + pushInterval_ = 0L; + onChanged(); + return this; + } + + private java.util.List commentFeeds_ = + java.util.Collections.emptyList(); + private void ensureCommentFeedsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + commentFeeds_ = new java.util.ArrayList(commentFeeds_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder> commentFeedsBuilder_; + + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public java.util.List getCommentFeedsList() { + if (commentFeedsBuilder_ == null) { + return java.util.Collections.unmodifiableList(commentFeeds_); + } else { + return commentFeedsBuilder_.getMessageList(); + } + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public int getCommentFeedsCount() { + if (commentFeedsBuilder_ == null) { + return commentFeeds_.size(); + } else { + return commentFeedsBuilder_.getCount(); + } + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getCommentFeeds(int index) { + if (commentFeedsBuilder_ == null) { + return commentFeeds_.get(index); + } else { + return commentFeedsBuilder_.getMessage(index); + } + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder setCommentFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { + if (commentFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCommentFeedsIsMutable(); + commentFeeds_.set(index, value); + onChanged(); + } else { + commentFeedsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder setCommentFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + commentFeeds_.set(index, builderForValue.build()); + onChanged(); + } else { + commentFeedsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder addCommentFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { + if (commentFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCommentFeedsIsMutable(); + commentFeeds_.add(value); + onChanged(); + } else { + commentFeedsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder addCommentFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed value) { + if (commentFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCommentFeedsIsMutable(); + commentFeeds_.add(index, value); + onChanged(); + } else { + commentFeedsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder addCommentFeeds( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + commentFeeds_.add(builderForValue.build()); + onChanged(); + } else { + commentFeedsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder addCommentFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder builderForValue) { + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + commentFeeds_.add(index, builderForValue.build()); + onChanged(); + } else { + commentFeedsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder addAllCommentFeeds( + java.lang.Iterable values) { + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, commentFeeds_); + onChanged(); + } else { + commentFeedsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder clearCommentFeeds() { + if (commentFeedsBuilder_ == null) { + commentFeeds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + commentFeedsBuilder_.clear(); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public Builder removeCommentFeeds(int index) { + if (commentFeedsBuilder_ == null) { + ensureCommentFeedsIsMutable(); + commentFeeds_.remove(index); + onChanged(); + } else { + commentFeedsBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder getCommentFeedsBuilder( + int index) { + return getCommentFeedsFieldBuilder().getBuilder(index); + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder getCommentFeedsOrBuilder( + int index) { + if (commentFeedsBuilder_ == null) { + return commentFeeds_.get(index); } else { + return commentFeedsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public java.util.List + getCommentFeedsOrBuilderList() { + if (commentFeedsBuilder_ != null) { + return commentFeedsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(commentFeeds_); + } + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder addCommentFeedsBuilder() { + return getCommentFeedsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()); + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder addCommentFeedsBuilder( + int index) { + return getCommentFeedsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()); + } + /** + * repeated .WebCommentFeed commentFeeds = 5; + */ + public java.util.List + getCommentFeedsBuilderList() { + return getCommentFeedsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder> + getCommentFeedsFieldBuilder() { + if (commentFeedsBuilder_ == null) { + commentFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder>( + commentFeeds_, + ((bitField0_ & 0x00000010) != 0), + getParentForChildren(), + isClean()); + commentFeeds_ = null; + } + return commentFeedsBuilder_; + } + + private java.lang.Object commentCursor_ = ""; + /** + * string commentCursor = 6; + * @return The commentCursor. + */ + public java.lang.String getCommentCursor() { + java.lang.Object ref = commentCursor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + commentCursor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string commentCursor = 6; + * @return The bytes for commentCursor. + */ + public com.google.protobuf.ByteString + getCommentCursorBytes() { + java.lang.Object ref = commentCursor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + commentCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string commentCursor = 6; + * @param value The commentCursor to set. + * @return This builder for chaining. + */ + public Builder setCommentCursor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + commentCursor_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string commentCursor = 6; + * @return This builder for chaining. + */ + public Builder clearCommentCursor() { + commentCursor_ = getDefaultInstance().getCommentCursor(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string commentCursor = 6; + * @param value The bytes for commentCursor to set. + * @return This builder for chaining. + */ + public Builder setCommentCursorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + commentCursor_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.util.List comboCommentFeed_ = + java.util.Collections.emptyList(); + private void ensureComboCommentFeedIsMutable() { + if (!((bitField0_ & 0x00000040) != 0)) { + comboCommentFeed_ = new java.util.ArrayList(comboCommentFeed_); + bitField0_ |= 0x00000040; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder> comboCommentFeedBuilder_; + + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public java.util.List getComboCommentFeedList() { + if (comboCommentFeedBuilder_ == null) { + return java.util.Collections.unmodifiableList(comboCommentFeed_); + } else { + return comboCommentFeedBuilder_.getMessageList(); + } + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public int getComboCommentFeedCount() { + if (comboCommentFeedBuilder_ == null) { + return comboCommentFeed_.size(); + } else { + return comboCommentFeedBuilder_.getCount(); + } + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getComboCommentFeed(int index) { + if (comboCommentFeedBuilder_ == null) { + return comboCommentFeed_.get(index); + } else { + return comboCommentFeedBuilder_.getMessage(index); + } + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder setComboCommentFeed( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { + if (comboCommentFeedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.set(index, value); + onChanged(); + } else { + comboCommentFeedBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder setComboCommentFeed( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.set(index, builderForValue.build()); + onChanged(); + } else { + comboCommentFeedBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder addComboCommentFeed(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { + if (comboCommentFeedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.add(value); + onChanged(); + } else { + comboCommentFeedBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder addComboCommentFeed( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed value) { + if (comboCommentFeedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.add(index, value); + onChanged(); + } else { + comboCommentFeedBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder addComboCommentFeed( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.add(builderForValue.build()); + onChanged(); + } else { + comboCommentFeedBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder addComboCommentFeed( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder builderForValue) { + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.add(index, builderForValue.build()); + onChanged(); + } else { + comboCommentFeedBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder addAllComboCommentFeed( + java.lang.Iterable values) { + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, comboCommentFeed_); + onChanged(); + } else { + comboCommentFeedBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder clearComboCommentFeed() { + if (comboCommentFeedBuilder_ == null) { + comboCommentFeed_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + } else { + comboCommentFeedBuilder_.clear(); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public Builder removeComboCommentFeed(int index) { + if (comboCommentFeedBuilder_ == null) { + ensureComboCommentFeedIsMutable(); + comboCommentFeed_.remove(index); + onChanged(); + } else { + comboCommentFeedBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder getComboCommentFeedBuilder( + int index) { + return getComboCommentFeedFieldBuilder().getBuilder(index); + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder getComboCommentFeedOrBuilder( + int index) { + if (comboCommentFeedBuilder_ == null) { + return comboCommentFeed_.get(index); } else { + return comboCommentFeedBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public java.util.List + getComboCommentFeedOrBuilderList() { + if (comboCommentFeedBuilder_ != null) { + return comboCommentFeedBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(comboCommentFeed_); + } + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder addComboCommentFeedBuilder() { + return getComboCommentFeedFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()); + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder addComboCommentFeedBuilder( + int index) { + return getComboCommentFeedFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()); + } + /** + * repeated .WebComboCommentFeed comboCommentFeed = 7; + */ + public java.util.List + getComboCommentFeedBuilderList() { + return getComboCommentFeedFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder> + getComboCommentFeedFieldBuilder() { + if (comboCommentFeedBuilder_ == null) { + comboCommentFeedBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder>( + comboCommentFeed_, + ((bitField0_ & 0x00000040) != 0), + getParentForChildren(), + isClean()); + comboCommentFeed_ = null; + } + return comboCommentFeedBuilder_; + } + + private java.util.List likeFeeds_ = + java.util.Collections.emptyList(); + private void ensureLikeFeedsIsMutable() { + if (!((bitField0_ & 0x00000080) != 0)) { + likeFeeds_ = new java.util.ArrayList(likeFeeds_); + bitField0_ |= 0x00000080; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder> likeFeedsBuilder_; + + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public java.util.List getLikeFeedsList() { + if (likeFeedsBuilder_ == null) { + return java.util.Collections.unmodifiableList(likeFeeds_); + } else { + return likeFeedsBuilder_.getMessageList(); + } + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public int getLikeFeedsCount() { + if (likeFeedsBuilder_ == null) { + return likeFeeds_.size(); + } else { + return likeFeedsBuilder_.getCount(); + } + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getLikeFeeds(int index) { + if (likeFeedsBuilder_ == null) { + return likeFeeds_.get(index); + } else { + return likeFeedsBuilder_.getMessage(index); + } + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder setLikeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { + if (likeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLikeFeedsIsMutable(); + likeFeeds_.set(index, value); + onChanged(); + } else { + likeFeedsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder setLikeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + likeFeeds_.set(index, builderForValue.build()); + onChanged(); + } else { + likeFeedsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder addLikeFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { + if (likeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLikeFeedsIsMutable(); + likeFeeds_.add(value); + onChanged(); + } else { + likeFeedsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder addLikeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed value) { + if (likeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureLikeFeedsIsMutable(); + likeFeeds_.add(index, value); + onChanged(); + } else { + likeFeedsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder addLikeFeeds( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + likeFeeds_.add(builderForValue.build()); + onChanged(); + } else { + likeFeedsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder addLikeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder builderForValue) { + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + likeFeeds_.add(index, builderForValue.build()); + onChanged(); + } else { + likeFeedsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder addAllLikeFeeds( + java.lang.Iterable values) { + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, likeFeeds_); + onChanged(); + } else { + likeFeedsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder clearLikeFeeds() { + if (likeFeedsBuilder_ == null) { + likeFeeds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + } else { + likeFeedsBuilder_.clear(); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public Builder removeLikeFeeds(int index) { + if (likeFeedsBuilder_ == null) { + ensureLikeFeedsIsMutable(); + likeFeeds_.remove(index); + onChanged(); + } else { + likeFeedsBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder getLikeFeedsBuilder( + int index) { + return getLikeFeedsFieldBuilder().getBuilder(index); + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder getLikeFeedsOrBuilder( + int index) { + if (likeFeedsBuilder_ == null) { + return likeFeeds_.get(index); } else { + return likeFeedsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public java.util.List + getLikeFeedsOrBuilderList() { + if (likeFeedsBuilder_ != null) { + return likeFeedsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(likeFeeds_); + } + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder addLikeFeedsBuilder() { + return getLikeFeedsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()); + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder addLikeFeedsBuilder( + int index) { + return getLikeFeedsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()); + } + /** + * repeated .WebLikeFeed likeFeeds = 8; + */ + public java.util.List + getLikeFeedsBuilderList() { + return getLikeFeedsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder> + getLikeFeedsFieldBuilder() { + if (likeFeedsBuilder_ == null) { + likeFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder>( + likeFeeds_, + ((bitField0_ & 0x00000080) != 0), + getParentForChildren(), + isClean()); + likeFeeds_ = null; + } + return likeFeedsBuilder_; + } + + private java.util.List giftFeeds_ = + java.util.Collections.emptyList(); + private void ensureGiftFeedsIsMutable() { + if (!((bitField0_ & 0x00000100) != 0)) { + giftFeeds_ = new java.util.ArrayList(giftFeeds_); + bitField0_ |= 0x00000100; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder> giftFeedsBuilder_; + + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public java.util.List getGiftFeedsList() { + if (giftFeedsBuilder_ == null) { + return java.util.Collections.unmodifiableList(giftFeeds_); + } else { + return giftFeedsBuilder_.getMessageList(); + } + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public int getGiftFeedsCount() { + if (giftFeedsBuilder_ == null) { + return giftFeeds_.size(); + } else { + return giftFeedsBuilder_.getCount(); + } + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getGiftFeeds(int index) { + if (giftFeedsBuilder_ == null) { + return giftFeeds_.get(index); + } else { + return giftFeedsBuilder_.getMessage(index); + } + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder setGiftFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { + if (giftFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGiftFeedsIsMutable(); + giftFeeds_.set(index, value); + onChanged(); + } else { + giftFeedsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder setGiftFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + giftFeeds_.set(index, builderForValue.build()); + onChanged(); + } else { + giftFeedsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder addGiftFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { + if (giftFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGiftFeedsIsMutable(); + giftFeeds_.add(value); + onChanged(); + } else { + giftFeedsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder addGiftFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed value) { + if (giftFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGiftFeedsIsMutable(); + giftFeeds_.add(index, value); + onChanged(); + } else { + giftFeedsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder addGiftFeeds( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + giftFeeds_.add(builderForValue.build()); + onChanged(); + } else { + giftFeedsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder addGiftFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder builderForValue) { + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + giftFeeds_.add(index, builderForValue.build()); + onChanged(); + } else { + giftFeedsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder addAllGiftFeeds( + java.lang.Iterable values) { + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, giftFeeds_); + onChanged(); + } else { + giftFeedsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder clearGiftFeeds() { + if (giftFeedsBuilder_ == null) { + giftFeeds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + } else { + giftFeedsBuilder_.clear(); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public Builder removeGiftFeeds(int index) { + if (giftFeedsBuilder_ == null) { + ensureGiftFeedsIsMutable(); + giftFeeds_.remove(index); + onChanged(); + } else { + giftFeedsBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder getGiftFeedsBuilder( + int index) { + return getGiftFeedsFieldBuilder().getBuilder(index); + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder getGiftFeedsOrBuilder( + int index) { + if (giftFeedsBuilder_ == null) { + return giftFeeds_.get(index); } else { + return giftFeedsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public java.util.List + getGiftFeedsOrBuilderList() { + if (giftFeedsBuilder_ != null) { + return giftFeedsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(giftFeeds_); + } + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder addGiftFeedsBuilder() { + return getGiftFeedsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()); + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder addGiftFeedsBuilder( + int index) { + return getGiftFeedsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()); + } + /** + * repeated .WebGiftFeed giftFeeds = 9; + */ + public java.util.List + getGiftFeedsBuilderList() { + return getGiftFeedsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder> + getGiftFeedsFieldBuilder() { + if (giftFeedsBuilder_ == null) { + giftFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder>( + giftFeeds_, + ((bitField0_ & 0x00000100) != 0), + getParentForChildren(), + isClean()); + giftFeeds_ = null; + } + return giftFeedsBuilder_; + } + + private java.lang.Object giftCursor_ = ""; + /** + * string giftCursor = 10; + * @return The giftCursor. + */ + public java.lang.String getGiftCursor() { + java.lang.Object ref = giftCursor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + giftCursor_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string giftCursor = 10; + * @return The bytes for giftCursor. + */ + public com.google.protobuf.ByteString + getGiftCursorBytes() { + java.lang.Object ref = giftCursor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + giftCursor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string giftCursor = 10; + * @param value The giftCursor to set. + * @return This builder for chaining. + */ + public Builder setGiftCursor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + giftCursor_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * string giftCursor = 10; + * @return This builder for chaining. + */ + public Builder clearGiftCursor() { + giftCursor_ = getDefaultInstance().getGiftCursor(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + /** + * string giftCursor = 10; + * @param value The bytes for giftCursor to set. + * @return This builder for chaining. + */ + public Builder setGiftCursorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + giftCursor_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.util.List systemNoticeFeeds_ = + java.util.Collections.emptyList(); + private void ensureSystemNoticeFeedsIsMutable() { + if (!((bitField0_ & 0x00000400) != 0)) { + systemNoticeFeeds_ = new java.util.ArrayList(systemNoticeFeeds_); + bitField0_ |= 0x00000400; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder> systemNoticeFeedsBuilder_; + + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public java.util.List getSystemNoticeFeedsList() { + if (systemNoticeFeedsBuilder_ == null) { + return java.util.Collections.unmodifiableList(systemNoticeFeeds_); + } else { + return systemNoticeFeedsBuilder_.getMessageList(); + } + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public int getSystemNoticeFeedsCount() { + if (systemNoticeFeedsBuilder_ == null) { + return systemNoticeFeeds_.size(); + } else { + return systemNoticeFeedsBuilder_.getCount(); + } + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getSystemNoticeFeeds(int index) { + if (systemNoticeFeedsBuilder_ == null) { + return systemNoticeFeeds_.get(index); + } else { + return systemNoticeFeedsBuilder_.getMessage(index); + } + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder setSystemNoticeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { + if (systemNoticeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.set(index, value); + onChanged(); + } else { + systemNoticeFeedsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder setSystemNoticeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.set(index, builderForValue.build()); + onChanged(); + } else { + systemNoticeFeedsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder addSystemNoticeFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { + if (systemNoticeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.add(value); + onChanged(); + } else { + systemNoticeFeedsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder addSystemNoticeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed value) { + if (systemNoticeFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.add(index, value); + onChanged(); + } else { + systemNoticeFeedsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder addSystemNoticeFeeds( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.add(builderForValue.build()); + onChanged(); + } else { + systemNoticeFeedsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder addSystemNoticeFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder builderForValue) { + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.add(index, builderForValue.build()); + onChanged(); + } else { + systemNoticeFeedsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder addAllSystemNoticeFeeds( + java.lang.Iterable values) { + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, systemNoticeFeeds_); + onChanged(); + } else { + systemNoticeFeedsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder clearSystemNoticeFeeds() { + if (systemNoticeFeedsBuilder_ == null) { + systemNoticeFeeds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + } else { + systemNoticeFeedsBuilder_.clear(); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public Builder removeSystemNoticeFeeds(int index) { + if (systemNoticeFeedsBuilder_ == null) { + ensureSystemNoticeFeedsIsMutable(); + systemNoticeFeeds_.remove(index); + onChanged(); + } else { + systemNoticeFeedsBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder getSystemNoticeFeedsBuilder( + int index) { + return getSystemNoticeFeedsFieldBuilder().getBuilder(index); + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder getSystemNoticeFeedsOrBuilder( + int index) { + if (systemNoticeFeedsBuilder_ == null) { + return systemNoticeFeeds_.get(index); } else { + return systemNoticeFeedsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public java.util.List + getSystemNoticeFeedsOrBuilderList() { + if (systemNoticeFeedsBuilder_ != null) { + return systemNoticeFeedsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(systemNoticeFeeds_); + } + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder addSystemNoticeFeedsBuilder() { + return getSystemNoticeFeedsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()); + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder addSystemNoticeFeedsBuilder( + int index) { + return getSystemNoticeFeedsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()); + } + /** + * repeated .WebSystemNoticeFeed systemNoticeFeeds = 11; + */ + public java.util.List + getSystemNoticeFeedsBuilderList() { + return getSystemNoticeFeedsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder> + getSystemNoticeFeedsFieldBuilder() { + if (systemNoticeFeedsBuilder_ == null) { + systemNoticeFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder>( + systemNoticeFeeds_, + ((bitField0_ & 0x00000400) != 0), + getParentForChildren(), + isClean()); + systemNoticeFeeds_ = null; + } + return systemNoticeFeedsBuilder_; + } + + private java.util.List shareFeeds_ = + java.util.Collections.emptyList(); + private void ensureShareFeedsIsMutable() { + if (!((bitField0_ & 0x00000800) != 0)) { + shareFeeds_ = new java.util.ArrayList(shareFeeds_); + bitField0_ |= 0x00000800; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder> shareFeedsBuilder_; + + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public java.util.List getShareFeedsList() { + if (shareFeedsBuilder_ == null) { + return java.util.Collections.unmodifiableList(shareFeeds_); + } else { + return shareFeedsBuilder_.getMessageList(); + } + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public int getShareFeedsCount() { + if (shareFeedsBuilder_ == null) { + return shareFeeds_.size(); + } else { + return shareFeedsBuilder_.getCount(); + } + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getShareFeeds(int index) { + if (shareFeedsBuilder_ == null) { + return shareFeeds_.get(index); + } else { + return shareFeedsBuilder_.getMessage(index); + } + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder setShareFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { + if (shareFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShareFeedsIsMutable(); + shareFeeds_.set(index, value); + onChanged(); + } else { + shareFeedsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder setShareFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + shareFeeds_.set(index, builderForValue.build()); + onChanged(); + } else { + shareFeedsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder addShareFeeds(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { + if (shareFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShareFeedsIsMutable(); + shareFeeds_.add(value); + onChanged(); + } else { + shareFeedsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder addShareFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed value) { + if (shareFeedsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureShareFeedsIsMutable(); + shareFeeds_.add(index, value); + onChanged(); + } else { + shareFeedsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder addShareFeeds( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + shareFeeds_.add(builderForValue.build()); + onChanged(); + } else { + shareFeedsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder addShareFeeds( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder builderForValue) { + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + shareFeeds_.add(index, builderForValue.build()); + onChanged(); + } else { + shareFeedsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder addAllShareFeeds( + java.lang.Iterable values) { + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, shareFeeds_); + onChanged(); + } else { + shareFeedsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder clearShareFeeds() { + if (shareFeedsBuilder_ == null) { + shareFeeds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + } else { + shareFeedsBuilder_.clear(); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public Builder removeShareFeeds(int index) { + if (shareFeedsBuilder_ == null) { + ensureShareFeedsIsMutable(); + shareFeeds_.remove(index); + onChanged(); + } else { + shareFeedsBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder getShareFeedsBuilder( + int index) { + return getShareFeedsFieldBuilder().getBuilder(index); + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder getShareFeedsOrBuilder( + int index) { + if (shareFeedsBuilder_ == null) { + return shareFeeds_.get(index); } else { + return shareFeedsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public java.util.List + getShareFeedsOrBuilderList() { + if (shareFeedsBuilder_ != null) { + return shareFeedsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(shareFeeds_); + } + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder addShareFeedsBuilder() { + return getShareFeedsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()); + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder addShareFeedsBuilder( + int index) { + return getShareFeedsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()); + } + /** + * repeated .WebShareFeed shareFeeds = 12; + */ + public java.util.List + getShareFeedsBuilderList() { + return getShareFeedsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder> + getShareFeedsFieldBuilder() { + if (shareFeedsBuilder_ == null) { + shareFeedsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder>( + shareFeeds_, + ((bitField0_ & 0x00000800) != 0), + getParentForChildren(), + isClean()); + shareFeeds_ = null; + } + return shareFeedsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebFeedPush) + } + + // @@protoc_insertion_point(class_scope:SCWebFeedPush) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebFeedPush parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebFeedPushOuterClass.SCWebFeedPush getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebFeedPush_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebFeedPush_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023SCWebFeedPush.proto\032\024WebCommentFeed.pr" + + "oto\032\031WebComboCommentFeed.proto\032\021WebLikeF" + + "eed.proto\032\021WebGiftFeed.proto\032\031WebSystemN" + + "oticeFeed.proto\032\022WebShareFeed.proto\"\217\003\n\r" + + "SCWebFeedPush\022\034\n\024displayWatchingCount\030\001 " + + "\001(\t\022\030\n\020displayLikeCount\030\002 \001(\t\022\030\n\020pending" + + "LikeCount\030\003 \001(\004\022\024\n\014pushInterval\030\004 \001(\004\022%\n" + + "\014commentFeeds\030\005 \003(\0132\017.WebCommentFeed\022\025\n\r" + + "commentCursor\030\006 \001(\t\022.\n\020comboCommentFeed\030" + + "\007 \003(\0132\024.WebComboCommentFeed\022\037\n\tlikeFeeds" + + "\030\010 \003(\0132\014.WebLikeFeed\022\037\n\tgiftFeeds\030\t \003(\0132" + + "\014.WebGiftFeed\022\022\n\ngiftCursor\030\n \001(\t\022/\n\021sys" + + "temNoticeFeeds\030\013 \003(\0132\024.WebSystemNoticeFe" + + "ed\022!\n\nshareFeeds\030\014 \003(\0132\r.WebShareFeedB6\n" + + "4tech.ordinaryroad.live.chat.client.kuai" + + "shou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.getDescriptor(), + }); + internal_static_SCWebFeedPush_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebFeedPush_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebFeedPush_descriptor, + new java.lang.String[] { "DisplayWatchingCount", "DisplayLikeCount", "PendingLikeCount", "PushInterval", "CommentFeeds", "CommentCursor", "ComboCommentFeed", "LikeFeeds", "GiftFeeds", "GiftCursor", "SystemNoticeFeeds", "ShareFeeds", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java new file mode 100644 index 00000000..7ee548d8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessClosedOuterClass.java @@ -0,0 +1,772 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebGuessClosed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebGuessClosedOuterClass { + private SCWebGuessClosedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebGuessClosedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebGuessClosed) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + + /** + * string guessId = 2; + * @return The guessId. + */ + java.lang.String getGuessId(); + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + com.google.protobuf.ByteString + getGuessIdBytes(); + + /** + * uint64 displayMaxDelayMillis = 3; + * @return The displayMaxDelayMillis. + */ + long getDisplayMaxDelayMillis(); + } + /** + * Protobuf type {@code SCWebGuessClosed} + */ + public static final class SCWebGuessClosed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebGuessClosed) + SCWebGuessClosedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebGuessClosed.newBuilder() to construct. + private SCWebGuessClosed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebGuessClosed() { + guessId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebGuessClosed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int GUESSID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object guessId_ = ""; + /** + * string guessId = 2; + * @return The guessId. + */ + @java.lang.Override + public java.lang.String getGuessId() { + java.lang.Object ref = guessId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guessId_ = s; + return s; + } + } + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGuessIdBytes() { + java.lang.Object ref = guessId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guessId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAYMAXDELAYMILLIS_FIELD_NUMBER = 3; + private long displayMaxDelayMillis_ = 0L; + /** + * uint64 displayMaxDelayMillis = 3; + * @return The displayMaxDelayMillis. + */ + @java.lang.Override + public long getDisplayMaxDelayMillis() { + return displayMaxDelayMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, guessId_); + } + if (displayMaxDelayMillis_ != 0L) { + output.writeUInt64(3, displayMaxDelayMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, guessId_); + } + if (displayMaxDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, displayMaxDelayMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed) obj; + + if (getTime() + != other.getTime()) return false; + if (!getGuessId() + .equals(other.getGuessId())) return false; + if (getDisplayMaxDelayMillis() + != other.getDisplayMaxDelayMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + GUESSID_FIELD_NUMBER; + hash = (53 * hash) + getGuessId().hashCode(); + hash = (37 * hash) + DISPLAYMAXDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getDisplayMaxDelayMillis()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebGuessClosed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebGuessClosed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + guessId_ = ""; + displayMaxDelayMillis_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.internal_static_SCWebGuessClosed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.guessId_ = guessId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.displayMaxDelayMillis_ = displayMaxDelayMillis_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (!other.getGuessId().isEmpty()) { + guessId_ = other.guessId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getDisplayMaxDelayMillis() != 0L) { + setDisplayMaxDelayMillis(other.getDisplayMaxDelayMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + guessId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + displayMaxDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object guessId_ = ""; + /** + * string guessId = 2; + * @return The guessId. + */ + public java.lang.String getGuessId() { + java.lang.Object ref = guessId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guessId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + public com.google.protobuf.ByteString + getGuessIdBytes() { + java.lang.Object ref = guessId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guessId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string guessId = 2; + * @param value The guessId to set. + * @return This builder for chaining. + */ + public Builder setGuessId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + guessId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string guessId = 2; + * @return This builder for chaining. + */ + public Builder clearGuessId() { + guessId_ = getDefaultInstance().getGuessId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string guessId = 2; + * @param value The bytes for guessId to set. + * @return This builder for chaining. + */ + public Builder setGuessIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + guessId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long displayMaxDelayMillis_ ; + /** + * uint64 displayMaxDelayMillis = 3; + * @return The displayMaxDelayMillis. + */ + @java.lang.Override + public long getDisplayMaxDelayMillis() { + return displayMaxDelayMillis_; + } + /** + * uint64 displayMaxDelayMillis = 3; + * @param value The displayMaxDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setDisplayMaxDelayMillis(long value) { + + displayMaxDelayMillis_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 displayMaxDelayMillis = 3; + * @return This builder for chaining. + */ + public Builder clearDisplayMaxDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000004); + displayMaxDelayMillis_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebGuessClosed) + } + + // @@protoc_insertion_point(class_scope:SCWebGuessClosed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebGuessClosed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessClosedOuterClass.SCWebGuessClosed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebGuessClosed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebGuessClosed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026SCWebGuessClosed.proto\"P\n\020SCWebGuessCl" + + "osed\022\014\n\004time\030\001 \001(\004\022\017\n\007guessId\030\002 \001(\t\022\035\n\025d" + + "isplayMaxDelayMillis\030\003 \001(\004B6\n4tech.ordin" + + "aryroad.live.chat.client.kuaishou.protob" + + "ufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebGuessClosed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebGuessClosed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebGuessClosed_descriptor, + new java.lang.String[] { "Time", "GuessId", "DisplayMaxDelayMillis", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java new file mode 100644 index 00000000..952322d7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebGuessOpenedOuterClass.java @@ -0,0 +1,845 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebGuessOpened.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebGuessOpenedOuterClass { + private SCWebGuessOpenedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebGuessOpenedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebGuessOpened) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + + /** + * string guessId = 2; + * @return The guessId. + */ + java.lang.String getGuessId(); + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + com.google.protobuf.ByteString + getGuessIdBytes(); + + /** + * uint64 submitDeadline = 3; + * @return The submitDeadline. + */ + long getSubmitDeadline(); + + /** + * uint64 displayMaxDelayMillis = 4; + * @return The displayMaxDelayMillis. + */ + long getDisplayMaxDelayMillis(); + } + /** + * Protobuf type {@code SCWebGuessOpened} + */ + public static final class SCWebGuessOpened extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebGuessOpened) + SCWebGuessOpenedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebGuessOpened.newBuilder() to construct. + private SCWebGuessOpened(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebGuessOpened() { + guessId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebGuessOpened(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int GUESSID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object guessId_ = ""; + /** + * string guessId = 2; + * @return The guessId. + */ + @java.lang.Override + public java.lang.String getGuessId() { + java.lang.Object ref = guessId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guessId_ = s; + return s; + } + } + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGuessIdBytes() { + java.lang.Object ref = guessId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guessId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SUBMITDEADLINE_FIELD_NUMBER = 3; + private long submitDeadline_ = 0L; + /** + * uint64 submitDeadline = 3; + * @return The submitDeadline. + */ + @java.lang.Override + public long getSubmitDeadline() { + return submitDeadline_; + } + + public static final int DISPLAYMAXDELAYMILLIS_FIELD_NUMBER = 4; + private long displayMaxDelayMillis_ = 0L; + /** + * uint64 displayMaxDelayMillis = 4; + * @return The displayMaxDelayMillis. + */ + @java.lang.Override + public long getDisplayMaxDelayMillis() { + return displayMaxDelayMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, guessId_); + } + if (submitDeadline_ != 0L) { + output.writeUInt64(3, submitDeadline_); + } + if (displayMaxDelayMillis_ != 0L) { + output.writeUInt64(4, displayMaxDelayMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guessId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, guessId_); + } + if (submitDeadline_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, submitDeadline_); + } + if (displayMaxDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, displayMaxDelayMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened) obj; + + if (getTime() + != other.getTime()) return false; + if (!getGuessId() + .equals(other.getGuessId())) return false; + if (getSubmitDeadline() + != other.getSubmitDeadline()) return false; + if (getDisplayMaxDelayMillis() + != other.getDisplayMaxDelayMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + GUESSID_FIELD_NUMBER; + hash = (53 * hash) + getGuessId().hashCode(); + hash = (37 * hash) + SUBMITDEADLINE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSubmitDeadline()); + hash = (37 * hash) + DISPLAYMAXDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getDisplayMaxDelayMillis()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebGuessOpened} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebGuessOpened) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpenedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + guessId_ = ""; + submitDeadline_ = 0L; + displayMaxDelayMillis_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.internal_static_SCWebGuessOpened_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.guessId_ = guessId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.submitDeadline_ = submitDeadline_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.displayMaxDelayMillis_ = displayMaxDelayMillis_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (!other.getGuessId().isEmpty()) { + guessId_ = other.guessId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getSubmitDeadline() != 0L) { + setSubmitDeadline(other.getSubmitDeadline()); + } + if (other.getDisplayMaxDelayMillis() != 0L) { + setDisplayMaxDelayMillis(other.getDisplayMaxDelayMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + guessId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + submitDeadline_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + displayMaxDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object guessId_ = ""; + /** + * string guessId = 2; + * @return The guessId. + */ + public java.lang.String getGuessId() { + java.lang.Object ref = guessId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guessId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string guessId = 2; + * @return The bytes for guessId. + */ + public com.google.protobuf.ByteString + getGuessIdBytes() { + java.lang.Object ref = guessId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guessId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string guessId = 2; + * @param value The guessId to set. + * @return This builder for chaining. + */ + public Builder setGuessId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + guessId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string guessId = 2; + * @return This builder for chaining. + */ + public Builder clearGuessId() { + guessId_ = getDefaultInstance().getGuessId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string guessId = 2; + * @param value The bytes for guessId to set. + * @return This builder for chaining. + */ + public Builder setGuessIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + guessId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long submitDeadline_ ; + /** + * uint64 submitDeadline = 3; + * @return The submitDeadline. + */ + @java.lang.Override + public long getSubmitDeadline() { + return submitDeadline_; + } + /** + * uint64 submitDeadline = 3; + * @param value The submitDeadline to set. + * @return This builder for chaining. + */ + public Builder setSubmitDeadline(long value) { + + submitDeadline_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 submitDeadline = 3; + * @return This builder for chaining. + */ + public Builder clearSubmitDeadline() { + bitField0_ = (bitField0_ & ~0x00000004); + submitDeadline_ = 0L; + onChanged(); + return this; + } + + private long displayMaxDelayMillis_ ; + /** + * uint64 displayMaxDelayMillis = 4; + * @return The displayMaxDelayMillis. + */ + @java.lang.Override + public long getDisplayMaxDelayMillis() { + return displayMaxDelayMillis_; + } + /** + * uint64 displayMaxDelayMillis = 4; + * @param value The displayMaxDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setDisplayMaxDelayMillis(long value) { + + displayMaxDelayMillis_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 displayMaxDelayMillis = 4; + * @return This builder for chaining. + */ + public Builder clearDisplayMaxDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000008); + displayMaxDelayMillis_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebGuessOpened) + } + + // @@protoc_insertion_point(class_scope:SCWebGuessOpened) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebGuessOpened parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebGuessOpenedOuterClass.SCWebGuessOpened getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebGuessOpened_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebGuessOpened_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026SCWebGuessOpened.proto\"h\n\020SCWebGuessOp" + + "ened\022\014\n\004time\030\001 \001(\004\022\017\n\007guessId\030\002 \001(\t\022\026\n\016s" + + "ubmitDeadline\030\003 \001(\004\022\035\n\025displayMaxDelayMi" + + "llis\030\004 \001(\004B6\n4tech.ordinaryroad.live.cha" + + "t.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebGuessOpened_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebGuessOpened_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebGuessOpened_descriptor, + new java.lang.String[] { "Time", "GuessId", "SubmitDeadline", "DisplayMaxDelayMillis", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java new file mode 100644 index 00000000..24932928 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebHeartbeatAckOuterClass.java @@ -0,0 +1,623 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebHeartbeatAck.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebHeartbeatAckOuterClass { + private SCWebHeartbeatAckOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebHeartbeatAckOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebHeartbeatAck) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + long getTimestamp(); + + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + long getClientTimestamp(); + } + /** + * Protobuf type {@code SCWebHeartbeatAck} + */ + public static final class SCWebHeartbeatAck extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebHeartbeatAck) + SCWebHeartbeatAckOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebHeartbeatAck.newBuilder() to construct. + private SCWebHeartbeatAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebHeartbeatAck() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebHeartbeatAck(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.Builder.class); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private long timestamp_ = 0L; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 2; + private long clientTimestamp_ = 0L; + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestamp_ != 0L) { + output.writeUInt64(1, timestamp_); + } + if (clientTimestamp_ != 0L) { + output.writeUInt64(2, clientTimestamp_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, timestamp_); + } + if (clientTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, clientTimestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck) obj; + + if (getTimestamp() + != other.getTimestamp()) return false; + if (getClientTimestamp() + != other.getClientTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getClientTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebHeartbeatAck} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebHeartbeatAck) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAckOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0L; + clientTimestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.internal_static_SCWebHeartbeatAck_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.clientTimestamp_ = clientTimestamp_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck.getDefaultInstance()) return this; + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + if (other.getClientTimestamp() != 0L) { + setClientTimestamp(other.getClientTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestamp_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + clientTimestamp_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long timestamp_ ; + /** + * uint64 timestamp = 1; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + * uint64 timestamp = 1; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + onChanged(); + return this; + } + + private long clientTimestamp_ ; + /** + * uint64 clientTimestamp = 2; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + /** + * uint64 clientTimestamp = 2; + * @param value The clientTimestamp to set. + * @return This builder for chaining. + */ + public Builder setClientTimestamp(long value) { + + clientTimestamp_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 clientTimestamp = 2; + * @return This builder for chaining. + */ + public Builder clearClientTimestamp() { + bitField0_ = (bitField0_ & ~0x00000002); + clientTimestamp_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebHeartbeatAck) + } + + // @@protoc_insertion_point(class_scope:SCWebHeartbeatAck) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebHeartbeatAck parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebHeartbeatAckOuterClass.SCWebHeartbeatAck getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebHeartbeatAck_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebHeartbeatAck_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\027SCWebHeartbeatAck.proto\"?\n\021SCWebHeartb" + + "eatAck\022\021\n\ttimestamp\030\001 \001(\004\022\027\n\017clientTimes" + + "tamp\030\002 \001(\004B6\n4tech.ordinaryroad.live.cha" + + "t.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebHeartbeatAck_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebHeartbeatAck_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebHeartbeatAck_descriptor, + new java.lang.String[] { "Timestamp", "ClientTimestamp", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java new file mode 100644 index 00000000..3aa0095b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveSpecialAccountConfigStateOuterClass.java @@ -0,0 +1,932 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebLiveSpecialAccountConfigState.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebLiveSpecialAccountConfigStateOuterClass { + private SCWebLiveSpecialAccountConfigStateOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebLiveSpecialAccountConfigStateOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebLiveSpecialAccountConfigState) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + java.util.List + getConfigSwitchItemList(); + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index); + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + int getConfigSwitchItemCount(); + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + java.util.List + getConfigSwitchItemOrBuilderList(); + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( + int index); + + /** + * uint64 timestamp = 2; + * @return The timestamp. + */ + long getTimestamp(); + } + /** + * Protobuf type {@code SCWebLiveSpecialAccountConfigState} + */ + public static final class SCWebLiveSpecialAccountConfigState extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebLiveSpecialAccountConfigState) + SCWebLiveSpecialAccountConfigStateOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebLiveSpecialAccountConfigState.newBuilder() to construct. + private SCWebLiveSpecialAccountConfigState(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebLiveSpecialAccountConfigState() { + configSwitchItem_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebLiveSpecialAccountConfigState(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.Builder.class); + } + + public static final int CONFIGSWITCHITEM_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List configSwitchItem_; + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + @java.lang.Override + public java.util.List getConfigSwitchItemList() { + return configSwitchItem_; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + @java.lang.Override + public java.util.List + getConfigSwitchItemOrBuilderList() { + return configSwitchItem_; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + @java.lang.Override + public int getConfigSwitchItemCount() { + return configSwitchItem_.size(); + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index) { + return configSwitchItem_.get(index); + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( + int index) { + return configSwitchItem_.get(index); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 2; + private long timestamp_ = 0L; + /** + * uint64 timestamp = 2; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < configSwitchItem_.size(); i++) { + output.writeMessage(1, configSwitchItem_.get(i)); + } + if (timestamp_ != 0L) { + output.writeUInt64(2, timestamp_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < configSwitchItem_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, configSwitchItem_.get(i)); + } + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(2, timestamp_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState) obj; + + if (!getConfigSwitchItemList() + .equals(other.getConfigSwitchItemList())) return false; + if (getTimestamp() + != other.getTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getConfigSwitchItemCount() > 0) { + hash = (37 * hash) + CONFIGSWITCHITEM_FIELD_NUMBER; + hash = (53 * hash) + getConfigSwitchItemList().hashCode(); + } + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebLiveSpecialAccountConfigState} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebLiveSpecialAccountConfigState) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigStateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (configSwitchItemBuilder_ == null) { + configSwitchItem_ = java.util.Collections.emptyList(); + } else { + configSwitchItem_ = null; + configSwitchItemBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.internal_static_SCWebLiveSpecialAccountConfigState_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result) { + if (configSwitchItemBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + configSwitchItem_ = java.util.Collections.unmodifiableList(configSwitchItem_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.configSwitchItem_ = configSwitchItem_; + } else { + result.configSwitchItem_ = configSwitchItemBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.timestamp_ = timestamp_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState.getDefaultInstance()) return this; + if (configSwitchItemBuilder_ == null) { + if (!other.configSwitchItem_.isEmpty()) { + if (configSwitchItem_.isEmpty()) { + configSwitchItem_ = other.configSwitchItem_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.addAll(other.configSwitchItem_); + } + onChanged(); + } + } else { + if (!other.configSwitchItem_.isEmpty()) { + if (configSwitchItemBuilder_.isEmpty()) { + configSwitchItemBuilder_.dispose(); + configSwitchItemBuilder_ = null; + configSwitchItem_ = other.configSwitchItem_; + bitField0_ = (bitField0_ & ~0x00000001); + configSwitchItemBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getConfigSwitchItemFieldBuilder() : null; + } else { + configSwitchItemBuilder_.addAllMessages(other.configSwitchItem_); + } + } + } + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.parser(), + extensionRegistry); + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.add(m); + } else { + configSwitchItemBuilder_.addMessage(m); + } + break; + } // case 10 + case 16: { + timestamp_ = input.readUInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List configSwitchItem_ = + java.util.Collections.emptyList(); + private void ensureConfigSwitchItemIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + configSwitchItem_ = new java.util.ArrayList(configSwitchItem_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder> configSwitchItemBuilder_; + + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public java.util.List getConfigSwitchItemList() { + if (configSwitchItemBuilder_ == null) { + return java.util.Collections.unmodifiableList(configSwitchItem_); + } else { + return configSwitchItemBuilder_.getMessageList(); + } + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public int getConfigSwitchItemCount() { + if (configSwitchItemBuilder_ == null) { + return configSwitchItem_.size(); + } else { + return configSwitchItemBuilder_.getCount(); + } + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem getConfigSwitchItem(int index) { + if (configSwitchItemBuilder_ == null) { + return configSwitchItem_.get(index); + } else { + return configSwitchItemBuilder_.getMessage(index); + } + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder setConfigSwitchItem( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { + if (configSwitchItemBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.set(index, value); + onChanged(); + } else { + configSwitchItemBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder setConfigSwitchItem( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.set(index, builderForValue.build()); + onChanged(); + } else { + configSwitchItemBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder addConfigSwitchItem(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { + if (configSwitchItemBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.add(value); + onChanged(); + } else { + configSwitchItemBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder addConfigSwitchItem( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem value) { + if (configSwitchItemBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.add(index, value); + onChanged(); + } else { + configSwitchItemBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder addConfigSwitchItem( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.add(builderForValue.build()); + onChanged(); + } else { + configSwitchItemBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder addConfigSwitchItem( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder builderForValue) { + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.add(index, builderForValue.build()); + onChanged(); + } else { + configSwitchItemBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder addAllConfigSwitchItem( + java.lang.Iterable values) { + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, configSwitchItem_); + onChanged(); + } else { + configSwitchItemBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder clearConfigSwitchItem() { + if (configSwitchItemBuilder_ == null) { + configSwitchItem_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + configSwitchItemBuilder_.clear(); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public Builder removeConfigSwitchItem(int index) { + if (configSwitchItemBuilder_ == null) { + ensureConfigSwitchItemIsMutable(); + configSwitchItem_.remove(index); + onChanged(); + } else { + configSwitchItemBuilder_.remove(index); + } + return this; + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder getConfigSwitchItemBuilder( + int index) { + return getConfigSwitchItemFieldBuilder().getBuilder(index); + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder getConfigSwitchItemOrBuilder( + int index) { + if (configSwitchItemBuilder_ == null) { + return configSwitchItem_.get(index); } else { + return configSwitchItemBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public java.util.List + getConfigSwitchItemOrBuilderList() { + if (configSwitchItemBuilder_ != null) { + return configSwitchItemBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(configSwitchItem_); + } + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder addConfigSwitchItemBuilder() { + return getConfigSwitchItemFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()); + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder addConfigSwitchItemBuilder( + int index) { + return getConfigSwitchItemFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.getDefaultInstance()); + } + /** + * repeated .ConfigSwitchItem configSwitchItem = 1; + */ + public java.util.List + getConfigSwitchItemBuilderList() { + return getConfigSwitchItemFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder> + getConfigSwitchItemFieldBuilder() { + if (configSwitchItemBuilder_ == null) { + configSwitchItemBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItem.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.ConfigSwitchItemOrBuilder>( + configSwitchItem_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + configSwitchItem_ = null; + } + return configSwitchItemBuilder_; + } + + private long timestamp_ ; + /** + * uint64 timestamp = 2; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + * uint64 timestamp = 2; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint64 timestamp = 2; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000002); + timestamp_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebLiveSpecialAccountConfigState) + } + + // @@protoc_insertion_point(class_scope:SCWebLiveSpecialAccountConfigState) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebLiveSpecialAccountConfigState parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveSpecialAccountConfigStateOuterClass.SCWebLiveSpecialAccountConfigState getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebLiveSpecialAccountConfigState_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n(SCWebLiveSpecialAccountConfigState.pro" + + "to\032\026ConfigSwitchItem.proto\"d\n\"SCWebLiveS" + + "pecialAccountConfigState\022+\n\020configSwitch" + + "Item\030\001 \003(\0132\021.ConfigSwitchItem\022\021\n\ttimesta" + + "mp\030\002 \001(\004B6\n4tech.ordinaryroad.live.chat." + + "client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.getDescriptor(), + }); + internal_static_SCWebLiveSpecialAccountConfigState_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebLiveSpecialAccountConfigState_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebLiveSpecialAccountConfigState_descriptor, + new java.lang.String[] { "ConfigSwitchItem", "Timestamp", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.ConfigSwitchItemOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java new file mode 100644 index 00000000..5a39e0ba --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebLiveWatchingUsersOuterClass.java @@ -0,0 +1,1081 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebLiveWatchingUsers.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebLiveWatchingUsersOuterClass { + private SCWebLiveWatchingUsersOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebLiveWatchingUsersOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebLiveWatchingUsers) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + java.util.List + getWatchingUserList(); + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index); + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + int getWatchingUserCount(); + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + java.util.List + getWatchingUserOrBuilderList(); + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( + int index); + + /** + * string displayWatchingCount = 2; + * @return The displayWatchingCount. + */ + java.lang.String getDisplayWatchingCount(); + /** + * string displayWatchingCount = 2; + * @return The bytes for displayWatchingCount. + */ + com.google.protobuf.ByteString + getDisplayWatchingCountBytes(); + + /** + * uint64 pendingDuration = 3; + * @return The pendingDuration. + */ + long getPendingDuration(); + } + /** + * Protobuf type {@code SCWebLiveWatchingUsers} + */ + public static final class SCWebLiveWatchingUsers extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebLiveWatchingUsers) + SCWebLiveWatchingUsersOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebLiveWatchingUsers.newBuilder() to construct. + private SCWebLiveWatchingUsers(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebLiveWatchingUsers() { + watchingUser_ = java.util.Collections.emptyList(); + displayWatchingCount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebLiveWatchingUsers(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.Builder.class); + } + + public static final int WATCHINGUSER_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List watchingUser_; + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + @java.lang.Override + public java.util.List getWatchingUserList() { + return watchingUser_; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + @java.lang.Override + public java.util.List + getWatchingUserOrBuilderList() { + return watchingUser_; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + @java.lang.Override + public int getWatchingUserCount() { + return watchingUser_.size(); + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index) { + return watchingUser_.get(index); + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( + int index) { + return watchingUser_.get(index); + } + + public static final int DISPLAYWATCHINGCOUNT_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object displayWatchingCount_ = ""; + /** + * string displayWatchingCount = 2; + * @return The displayWatchingCount. + */ + @java.lang.Override + public java.lang.String getDisplayWatchingCount() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayWatchingCount_ = s; + return s; + } + } + /** + * string displayWatchingCount = 2; + * @return The bytes for displayWatchingCount. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayWatchingCountBytes() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayWatchingCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PENDINGDURATION_FIELD_NUMBER = 3; + private long pendingDuration_ = 0L; + /** + * uint64 pendingDuration = 3; + * @return The pendingDuration. + */ + @java.lang.Override + public long getPendingDuration() { + return pendingDuration_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < watchingUser_.size(); i++) { + output.writeMessage(1, watchingUser_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, displayWatchingCount_); + } + if (pendingDuration_ != 0L) { + output.writeUInt64(3, pendingDuration_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < watchingUser_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, watchingUser_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayWatchingCount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, displayWatchingCount_); + } + if (pendingDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, pendingDuration_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers) obj; + + if (!getWatchingUserList() + .equals(other.getWatchingUserList())) return false; + if (!getDisplayWatchingCount() + .equals(other.getDisplayWatchingCount())) return false; + if (getPendingDuration() + != other.getPendingDuration()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getWatchingUserCount() > 0) { + hash = (37 * hash) + WATCHINGUSER_FIELD_NUMBER; + hash = (53 * hash) + getWatchingUserList().hashCode(); + } + hash = (37 * hash) + DISPLAYWATCHINGCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getDisplayWatchingCount().hashCode(); + hash = (37 * hash) + PENDINGDURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPendingDuration()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebLiveWatchingUsers} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebLiveWatchingUsers) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsersOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (watchingUserBuilder_ == null) { + watchingUser_ = java.util.Collections.emptyList(); + } else { + watchingUser_ = null; + watchingUserBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + displayWatchingCount_ = ""; + pendingDuration_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.internal_static_SCWebLiveWatchingUsers_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result) { + if (watchingUserBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + watchingUser_ = java.util.Collections.unmodifiableList(watchingUser_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.watchingUser_ = watchingUser_; + } else { + result.watchingUser_ = watchingUserBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.displayWatchingCount_ = displayWatchingCount_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pendingDuration_ = pendingDuration_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers.getDefaultInstance()) return this; + if (watchingUserBuilder_ == null) { + if (!other.watchingUser_.isEmpty()) { + if (watchingUser_.isEmpty()) { + watchingUser_ = other.watchingUser_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureWatchingUserIsMutable(); + watchingUser_.addAll(other.watchingUser_); + } + onChanged(); + } + } else { + if (!other.watchingUser_.isEmpty()) { + if (watchingUserBuilder_.isEmpty()) { + watchingUserBuilder_.dispose(); + watchingUserBuilder_ = null; + watchingUser_ = other.watchingUser_; + bitField0_ = (bitField0_ & ~0x00000001); + watchingUserBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getWatchingUserFieldBuilder() : null; + } else { + watchingUserBuilder_.addAllMessages(other.watchingUser_); + } + } + } + if (!other.getDisplayWatchingCount().isEmpty()) { + displayWatchingCount_ = other.displayWatchingCount_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPendingDuration() != 0L) { + setPendingDuration(other.getPendingDuration()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.parser(), + extensionRegistry); + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + watchingUser_.add(m); + } else { + watchingUserBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + displayWatchingCount_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + pendingDuration_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List watchingUser_ = + java.util.Collections.emptyList(); + private void ensureWatchingUserIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + watchingUser_ = new java.util.ArrayList(watchingUser_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder> watchingUserBuilder_; + + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public java.util.List getWatchingUserList() { + if (watchingUserBuilder_ == null) { + return java.util.Collections.unmodifiableList(watchingUser_); + } else { + return watchingUserBuilder_.getMessageList(); + } + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public int getWatchingUserCount() { + if (watchingUserBuilder_ == null) { + return watchingUser_.size(); + } else { + return watchingUserBuilder_.getCount(); + } + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getWatchingUser(int index) { + if (watchingUserBuilder_ == null) { + return watchingUser_.get(index); + } else { + return watchingUserBuilder_.getMessage(index); + } + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder setWatchingUser( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { + if (watchingUserBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWatchingUserIsMutable(); + watchingUser_.set(index, value); + onChanged(); + } else { + watchingUserBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder setWatchingUser( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + watchingUser_.set(index, builderForValue.build()); + onChanged(); + } else { + watchingUserBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder addWatchingUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { + if (watchingUserBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWatchingUserIsMutable(); + watchingUser_.add(value); + onChanged(); + } else { + watchingUserBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder addWatchingUser( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo value) { + if (watchingUserBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWatchingUserIsMutable(); + watchingUser_.add(index, value); + onChanged(); + } else { + watchingUserBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder addWatchingUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + watchingUser_.add(builderForValue.build()); + onChanged(); + } else { + watchingUserBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder addWatchingUser( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder builderForValue) { + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + watchingUser_.add(index, builderForValue.build()); + onChanged(); + } else { + watchingUserBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder addAllWatchingUser( + java.lang.Iterable values) { + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, watchingUser_); + onChanged(); + } else { + watchingUserBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder clearWatchingUser() { + if (watchingUserBuilder_ == null) { + watchingUser_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + watchingUserBuilder_.clear(); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public Builder removeWatchingUser(int index) { + if (watchingUserBuilder_ == null) { + ensureWatchingUserIsMutable(); + watchingUser_.remove(index); + onChanged(); + } else { + watchingUserBuilder_.remove(index); + } + return this; + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder getWatchingUserBuilder( + int index) { + return getWatchingUserFieldBuilder().getBuilder(index); + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder getWatchingUserOrBuilder( + int index) { + if (watchingUserBuilder_ == null) { + return watchingUser_.get(index); } else { + return watchingUserBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public java.util.List + getWatchingUserOrBuilderList() { + if (watchingUserBuilder_ != null) { + return watchingUserBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(watchingUser_); + } + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder addWatchingUserBuilder() { + return getWatchingUserFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()); + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder addWatchingUserBuilder( + int index) { + return getWatchingUserFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()); + } + /** + * repeated .WebWatchingUserInfo watchingUser = 1; + */ + public java.util.List + getWatchingUserBuilderList() { + return getWatchingUserFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder> + getWatchingUserFieldBuilder() { + if (watchingUserBuilder_ == null) { + watchingUserBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder>( + watchingUser_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + watchingUser_ = null; + } + return watchingUserBuilder_; + } + + private java.lang.Object displayWatchingCount_ = ""; + /** + * string displayWatchingCount = 2; + * @return The displayWatchingCount. + */ + public java.lang.String getDisplayWatchingCount() { + java.lang.Object ref = displayWatchingCount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayWatchingCount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string displayWatchingCount = 2; + * @return The bytes for displayWatchingCount. + */ + public com.google.protobuf.ByteString + getDisplayWatchingCountBytes() { + java.lang.Object ref = displayWatchingCount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayWatchingCount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string displayWatchingCount = 2; + * @param value The displayWatchingCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayWatchingCount( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayWatchingCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string displayWatchingCount = 2; + * @return This builder for chaining. + */ + public Builder clearDisplayWatchingCount() { + displayWatchingCount_ = getDefaultInstance().getDisplayWatchingCount(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string displayWatchingCount = 2; + * @param value The bytes for displayWatchingCount to set. + * @return This builder for chaining. + */ + public Builder setDisplayWatchingCountBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayWatchingCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long pendingDuration_ ; + /** + * uint64 pendingDuration = 3; + * @return The pendingDuration. + */ + @java.lang.Override + public long getPendingDuration() { + return pendingDuration_; + } + /** + * uint64 pendingDuration = 3; + * @param value The pendingDuration to set. + * @return This builder for chaining. + */ + public Builder setPendingDuration(long value) { + + pendingDuration_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 pendingDuration = 3; + * @return This builder for chaining. + */ + public Builder clearPendingDuration() { + bitField0_ = (bitField0_ & ~0x00000004); + pendingDuration_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebLiveWatchingUsers) + } + + // @@protoc_insertion_point(class_scope:SCWebLiveWatchingUsers) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebLiveWatchingUsers parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebLiveWatchingUsersOuterClass.SCWebLiveWatchingUsers getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebLiveWatchingUsers_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebLiveWatchingUsers_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\034SCWebLiveWatchingUsers.proto\032\031WebWatch" + + "ingUserInfo.proto\"{\n\026SCWebLiveWatchingUs" + + "ers\022*\n\014watchingUser\030\001 \003(\0132\024.WebWatchingU" + + "serInfo\022\034\n\024displayWatchingCount\030\002 \001(\t\022\027\n" + + "\017pendingDuration\030\003 \001(\004B6\n4tech.ordinaryr" + + "oad.live.chat.client.kuaishou.protobufb\006" + + "proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.getDescriptor(), + }); + internal_static_SCWebLiveWatchingUsers_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebLiveWatchingUsers_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebLiveWatchingUsers_descriptor, + new java.lang.String[] { "WatchingUser", "DisplayWatchingCount", "PendingDuration", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java new file mode 100644 index 00000000..150867cc --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipEndedOuterClass.java @@ -0,0 +1,549 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebPipEnded.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebPipEndedOuterClass { + private SCWebPipEndedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebPipEndedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebPipEnded) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + } + /** + * Protobuf type {@code SCWebPipEnded} + */ + public static final class SCWebPipEnded extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebPipEnded) + SCWebPipEndedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebPipEnded.newBuilder() to construct. + private SCWebPipEnded(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebPipEnded() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebPipEnded(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded) obj; + + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebPipEnded} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebPipEnded) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEndedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.internal_static_SCWebPipEnded_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebPipEnded) + } + + // @@protoc_insertion_point(class_scope:SCWebPipEnded) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebPipEnded parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipEndedOuterClass.SCWebPipEnded getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebPipEnded_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebPipEnded_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023SCWebPipEnded.proto\"\035\n\rSCWebPipEnded\022\014" + + "\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.live.c" + + "hat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebPipEnded_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebPipEnded_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebPipEnded_descriptor, + new java.lang.String[] { "Time", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java new file mode 100644 index 00000000..4b4e9ffa --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebPipStartedOuterClass.java @@ -0,0 +1,549 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebPipStarted.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebPipStartedOuterClass { + private SCWebPipStartedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebPipStartedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebPipStarted) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 time = 1; + * @return The time. + */ + long getTime(); + } + /** + * Protobuf type {@code SCWebPipStarted} + */ + public static final class SCWebPipStarted extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebPipStarted) + SCWebPipStartedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebPipStarted.newBuilder() to construct. + private SCWebPipStarted(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebPipStarted() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebPipStarted(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.Builder.class); + } + + public static final int TIME_FIELD_NUMBER = 1; + private long time_ = 0L; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (time_ != 0L) { + output.writeUInt64(1, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted) obj; + + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebPipStarted} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebPipStarted) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStartedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + time_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.internal_static_SCWebPipStarted_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted.getDefaultInstance()) return this; + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long time_ ; + /** + * uint64 time = 1; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 1; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 time = 1; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000001); + time_ = 0L; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebPipStarted) + } + + // @@protoc_insertion_point(class_scope:SCWebPipStarted) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebPipStarted parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebPipStartedOuterClass.SCWebPipStarted getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebPipStarted_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebPipStarted_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\025SCWebPipStarted.proto\"\037\n\017SCWebPipStart" + + "ed\022\014\n\004time\030\001 \001(\004B6\n4tech.ordinaryroad.li" + + "ve.chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebPipStarted_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebPipStarted_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebPipStarted_descriptor, + new java.lang.String[] { "Time", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java new file mode 100644 index 00000000..44f11b18 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRefreshWalletOuterClass.java @@ -0,0 +1,469 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebRefreshWallet.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebRefreshWalletOuterClass { + private SCWebRefreshWalletOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebRefreshWalletOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebRefreshWallet) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code SCWebRefreshWallet} + */ + public static final class SCWebRefreshWallet extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebRefreshWallet) + SCWebRefreshWalletOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebRefreshWallet.newBuilder() to construct. + private SCWebRefreshWallet(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebRefreshWallet() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebRefreshWallet(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebRefreshWallet} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebRefreshWallet) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWalletOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.internal_static_SCWebRefreshWallet_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebRefreshWallet) + } + + // @@protoc_insertion_point(class_scope:SCWebRefreshWallet) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebRefreshWallet parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRefreshWalletOuterClass.SCWebRefreshWallet getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebRefreshWallet_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebRefreshWallet_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\030SCWebRefreshWallet.proto\"\024\n\022SCWebRefre" + + "shWalletB6\n4tech.ordinaryroad.live.chat." + + "client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebRefreshWallet_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebRefreshWallet_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebRefreshWallet_descriptor, + new java.lang.String[] { }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java new file mode 100644 index 00000000..4e6cd79a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebRideChangedOuterClass.java @@ -0,0 +1,697 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebRideChanged.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebRideChangedOuterClass { + private SCWebRideChangedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebRideChangedOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebRideChanged) + com.google.protobuf.MessageOrBuilder { + + /** + * string rideId = 1; + * @return The rideId. + */ + java.lang.String getRideId(); + /** + * string rideId = 1; + * @return The bytes for rideId. + */ + com.google.protobuf.ByteString + getRideIdBytes(); + + /** + * uint32 requestMaxDelayMillis = 2; + * @return The requestMaxDelayMillis. + */ + int getRequestMaxDelayMillis(); + } + /** + * Protobuf type {@code SCWebRideChanged} + */ + public static final class SCWebRideChanged extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebRideChanged) + SCWebRideChangedOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebRideChanged.newBuilder() to construct. + private SCWebRideChanged(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebRideChanged() { + rideId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebRideChanged(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.Builder.class); + } + + public static final int RIDEID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object rideId_ = ""; + /** + * string rideId = 1; + * @return The rideId. + */ + @java.lang.Override + public java.lang.String getRideId() { + java.lang.Object ref = rideId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + rideId_ = s; + return s; + } + } + /** + * string rideId = 1; + * @return The bytes for rideId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRideIdBytes() { + java.lang.Object ref = rideId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + rideId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REQUESTMAXDELAYMILLIS_FIELD_NUMBER = 2; + private int requestMaxDelayMillis_ = 0; + /** + * uint32 requestMaxDelayMillis = 2; + * @return The requestMaxDelayMillis. + */ + @java.lang.Override + public int getRequestMaxDelayMillis() { + return requestMaxDelayMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rideId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, rideId_); + } + if (requestMaxDelayMillis_ != 0) { + output.writeUInt32(2, requestMaxDelayMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rideId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, rideId_); + } + if (requestMaxDelayMillis_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, requestMaxDelayMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged) obj; + + if (!getRideId() + .equals(other.getRideId())) return false; + if (getRequestMaxDelayMillis() + != other.getRequestMaxDelayMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RIDEID_FIELD_NUMBER; + hash = (53 * hash) + getRideId().hashCode(); + hash = (37 * hash) + REQUESTMAXDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + getRequestMaxDelayMillis(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebRideChanged} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebRideChanged) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChangedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + rideId_ = ""; + requestMaxDelayMillis_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.internal_static_SCWebRideChanged_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.rideId_ = rideId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.requestMaxDelayMillis_ = requestMaxDelayMillis_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged.getDefaultInstance()) return this; + if (!other.getRideId().isEmpty()) { + rideId_ = other.rideId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getRequestMaxDelayMillis() != 0) { + setRequestMaxDelayMillis(other.getRequestMaxDelayMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + rideId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + requestMaxDelayMillis_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object rideId_ = ""; + /** + * string rideId = 1; + * @return The rideId. + */ + public java.lang.String getRideId() { + java.lang.Object ref = rideId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + rideId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string rideId = 1; + * @return The bytes for rideId. + */ + public com.google.protobuf.ByteString + getRideIdBytes() { + java.lang.Object ref = rideId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + rideId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string rideId = 1; + * @param value The rideId to set. + * @return This builder for chaining. + */ + public Builder setRideId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + rideId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string rideId = 1; + * @return This builder for chaining. + */ + public Builder clearRideId() { + rideId_ = getDefaultInstance().getRideId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string rideId = 1; + * @param value The bytes for rideId to set. + * @return This builder for chaining. + */ + public Builder setRideIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + rideId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int requestMaxDelayMillis_ ; + /** + * uint32 requestMaxDelayMillis = 2; + * @return The requestMaxDelayMillis. + */ + @java.lang.Override + public int getRequestMaxDelayMillis() { + return requestMaxDelayMillis_; + } + /** + * uint32 requestMaxDelayMillis = 2; + * @param value The requestMaxDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setRequestMaxDelayMillis(int value) { + + requestMaxDelayMillis_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint32 requestMaxDelayMillis = 2; + * @return This builder for chaining. + */ + public Builder clearRequestMaxDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000002); + requestMaxDelayMillis_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebRideChanged) + } + + // @@protoc_insertion_point(class_scope:SCWebRideChanged) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebRideChanged parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebRideChangedOuterClass.SCWebRideChanged getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebRideChanged_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebRideChanged_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026SCWebRideChanged.proto\"A\n\020SCWebRideCha" + + "nged\022\016\n\006rideId\030\001 \001(\t\022\035\n\025requestMaxDelayM" + + "illis\030\002 \001(\rB6\n4tech.ordinaryroad.live.ch" + + "at.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebRideChanged_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebRideChanged_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebRideChanged_descriptor, + new java.lang.String[] { "RideId", "RequestMaxDelayMillis", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java new file mode 100644 index 00000000..dabcda89 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SCWebSuspectedViolationOuterClass.java @@ -0,0 +1,550 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SCWebSuspectedViolation.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SCWebSuspectedViolationOuterClass { + private SCWebSuspectedViolationOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SCWebSuspectedViolationOrBuilder extends + // @@protoc_insertion_point(interface_extends:SCWebSuspectedViolation) + com.google.protobuf.MessageOrBuilder { + + /** + * bool suspectedViolation = 1; + * @return The suspectedViolation. + */ + boolean getSuspectedViolation(); + } + /** + * Protobuf type {@code SCWebSuspectedViolation} + */ + public static final class SCWebSuspectedViolation extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SCWebSuspectedViolation) + SCWebSuspectedViolationOrBuilder { + private static final long serialVersionUID = 0L; + // Use SCWebSuspectedViolation.newBuilder() to construct. + private SCWebSuspectedViolation(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SCWebSuspectedViolation() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SCWebSuspectedViolation(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.Builder.class); + } + + public static final int SUSPECTEDVIOLATION_FIELD_NUMBER = 1; + private boolean suspectedViolation_ = false; + /** + * bool suspectedViolation = 1; + * @return The suspectedViolation. + */ + @java.lang.Override + public boolean getSuspectedViolation() { + return suspectedViolation_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (suspectedViolation_ != false) { + output.writeBool(1, suspectedViolation_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (suspectedViolation_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, suspectedViolation_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation) obj; + + if (getSuspectedViolation() + != other.getSuspectedViolation()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SUSPECTEDVIOLATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSuspectedViolation()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SCWebSuspectedViolation} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SCWebSuspectedViolation) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolationOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + suspectedViolation_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.internal_static_SCWebSuspectedViolation_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.suspectedViolation_ = suspectedViolation_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation.getDefaultInstance()) return this; + if (other.getSuspectedViolation() != false) { + setSuspectedViolation(other.getSuspectedViolation()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + suspectedViolation_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean suspectedViolation_ ; + /** + * bool suspectedViolation = 1; + * @return The suspectedViolation. + */ + @java.lang.Override + public boolean getSuspectedViolation() { + return suspectedViolation_; + } + /** + * bool suspectedViolation = 1; + * @param value The suspectedViolation to set. + * @return This builder for chaining. + */ + public Builder setSuspectedViolation(boolean value) { + + suspectedViolation_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool suspectedViolation = 1; + * @return This builder for chaining. + */ + public Builder clearSuspectedViolation() { + bitField0_ = (bitField0_ & ~0x00000001); + suspectedViolation_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SCWebSuspectedViolation) + } + + // @@protoc_insertion_point(class_scope:SCWebSuspectedViolation) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SCWebSuspectedViolation parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SCWebSuspectedViolationOuterClass.SCWebSuspectedViolation getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SCWebSuspectedViolation_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SCWebSuspectedViolation_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\035SCWebSuspectedViolation.proto\"5\n\027SCWeb" + + "SuspectedViolation\022\032\n\022suspectedViolation" + + "\030\001 \001(\010B6\n4tech.ordinaryroad.live.chat.cl" + + "ient.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SCWebSuspectedViolation_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SCWebSuspectedViolation_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SCWebSuspectedViolation_descriptor, + new java.lang.String[] { "SuspectedViolation", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java new file mode 100644 index 00000000..e1b66661 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SimpleUserInfoOuterClass.java @@ -0,0 +1,921 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SimpleUserInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class SimpleUserInfoOuterClass { + private SimpleUserInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SimpleUserInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:SimpleUserInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * string principalId = 1; + * @return The principalId. + */ + java.lang.String getPrincipalId(); + /** + * string principalId = 1; + * @return The bytes for principalId. + */ + com.google.protobuf.ByteString + getPrincipalIdBytes(); + + /** + * string userName = 2; + * @return The userName. + */ + java.lang.String getUserName(); + /** + * string userName = 2; + * @return The bytes for userName. + */ + com.google.protobuf.ByteString + getUserNameBytes(); + + /** + * string headUrl = 3; + * @return The headUrl. + */ + java.lang.String getHeadUrl(); + /** + * string headUrl = 3; + * @return The bytes for headUrl. + */ + com.google.protobuf.ByteString + getHeadUrlBytes(); + } + /** + * Protobuf type {@code SimpleUserInfo} + */ + public static final class SimpleUserInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SimpleUserInfo) + SimpleUserInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use SimpleUserInfo.newBuilder() to construct. + private SimpleUserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SimpleUserInfo() { + principalId_ = ""; + userName_ = ""; + headUrl_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SimpleUserInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder.class); + } + + public static final int PRINCIPALID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object principalId_ = ""; + /** + * string principalId = 1; + * @return The principalId. + */ + @java.lang.Override + public java.lang.String getPrincipalId() { + java.lang.Object ref = principalId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + principalId_ = s; + return s; + } + } + /** + * string principalId = 1; + * @return The bytes for principalId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPrincipalIdBytes() { + java.lang.Object ref = principalId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + principalId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERNAME_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object userName_ = ""; + /** + * string userName = 2; + * @return The userName. + */ + @java.lang.Override + public java.lang.String getUserName() { + java.lang.Object ref = userName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userName_ = s; + return s; + } + } + /** + * string userName = 2; + * @return The bytes for userName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUserNameBytes() { + java.lang.Object ref = userName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HEADURL_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object headUrl_ = ""; + /** + * string headUrl = 3; + * @return The headUrl. + */ + @java.lang.Override + public java.lang.String getHeadUrl() { + java.lang.Object ref = headUrl_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + headUrl_ = s; + return s; + } + } + /** + * string headUrl = 3; + * @return The bytes for headUrl. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getHeadUrlBytes() { + java.lang.Object ref = headUrl_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + headUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(principalId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, principalId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(headUrl_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, headUrl_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(principalId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, principalId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(headUrl_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, headUrl_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo) obj; + + if (!getPrincipalId() + .equals(other.getPrincipalId())) return false; + if (!getUserName() + .equals(other.getUserName())) return false; + if (!getHeadUrl() + .equals(other.getHeadUrl())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PRINCIPALID_FIELD_NUMBER; + hash = (53 * hash) + getPrincipalId().hashCode(); + hash = (37 * hash) + USERNAME_FIELD_NUMBER; + hash = (53 * hash) + getUserName().hashCode(); + hash = (37 * hash) + HEADURL_FIELD_NUMBER; + hash = (53 * hash) + getHeadUrl().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SimpleUserInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SimpleUserInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + principalId_ = ""; + userName_ = ""; + headUrl_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.internal_static_SimpleUserInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.principalId_ = principalId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.userName_ = userName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.headUrl_ = headUrl_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) return this; + if (!other.getPrincipalId().isEmpty()) { + principalId_ = other.principalId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getUserName().isEmpty()) { + userName_ = other.userName_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getHeadUrl().isEmpty()) { + headUrl_ = other.headUrl_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + principalId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + userName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + headUrl_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object principalId_ = ""; + /** + * string principalId = 1; + * @return The principalId. + */ + public java.lang.String getPrincipalId() { + java.lang.Object ref = principalId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + principalId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string principalId = 1; + * @return The bytes for principalId. + */ + public com.google.protobuf.ByteString + getPrincipalIdBytes() { + java.lang.Object ref = principalId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + principalId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string principalId = 1; + * @param value The principalId to set. + * @return This builder for chaining. + */ + public Builder setPrincipalId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + principalId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string principalId = 1; + * @return This builder for chaining. + */ + public Builder clearPrincipalId() { + principalId_ = getDefaultInstance().getPrincipalId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string principalId = 1; + * @param value The bytes for principalId to set. + * @return This builder for chaining. + */ + public Builder setPrincipalIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + principalId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object userName_ = ""; + /** + * string userName = 2; + * @return The userName. + */ + public java.lang.String getUserName() { + java.lang.Object ref = userName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string userName = 2; + * @return The bytes for userName. + */ + public com.google.protobuf.ByteString + getUserNameBytes() { + java.lang.Object ref = userName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string userName = 2; + * @param value The userName to set. + * @return This builder for chaining. + */ + public Builder setUserName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + userName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string userName = 2; + * @return This builder for chaining. + */ + public Builder clearUserName() { + userName_ = getDefaultInstance().getUserName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string userName = 2; + * @param value The bytes for userName to set. + * @return This builder for chaining. + */ + public Builder setUserNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + userName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object headUrl_ = ""; + /** + * string headUrl = 3; + * @return The headUrl. + */ + public java.lang.String getHeadUrl() { + java.lang.Object ref = headUrl_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + headUrl_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string headUrl = 3; + * @return The bytes for headUrl. + */ + public com.google.protobuf.ByteString + getHeadUrlBytes() { + java.lang.Object ref = headUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + headUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string headUrl = 3; + * @param value The headUrl to set. + * @return This builder for chaining. + */ + public Builder setHeadUrl( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + headUrl_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string headUrl = 3; + * @return This builder for chaining. + */ + public Builder clearHeadUrl() { + headUrl_ = getDefaultInstance().getHeadUrl(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string headUrl = 3; + * @param value The bytes for headUrl to set. + * @return This builder for chaining. + */ + public Builder setHeadUrlBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + headUrl_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SimpleUserInfo) + } + + // @@protoc_insertion_point(class_scope:SimpleUserInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SimpleUserInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SimpleUserInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SimpleUserInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024SimpleUserInfo.proto\"H\n\016SimpleUserInfo" + + "\022\023\n\013principalId\030\001 \001(\t\022\020\n\010userName\030\002 \001(\t\022" + + "\017\n\007headUrl\030\003 \001(\tB6\n4tech.ordinaryroad.li" + + "ve.chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_SimpleUserInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SimpleUserInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SimpleUserInfo_descriptor, + new java.lang.String[] { "PrincipalId", "UserName", "HeadUrl", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java new file mode 100644 index 00000000..ded05b95 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/SocketMessageOuterClass.java @@ -0,0 +1,910 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: SocketMessage.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +import tech.ordinaryroad.live.chat.client.kuaishou.msg.base.IKuaishouCmdMsg; + +public final class SocketMessageOuterClass { + private SocketMessageOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface SocketMessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:SocketMessage) + com.google.protobuf.MessageOrBuilder { + + /** + * .PayloadType payloadType = 1; + * @return The enum numeric value on the wire for payloadType. + */ + int getPayloadTypeValue(); + /** + * .PayloadType payloadType = 1; + * @return The payloadType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType(); + + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The enum numeric value on the wire for compressionType. + */ + int getCompressionTypeValue(); + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The compressionType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType(); + + /** + * bytes payload = 3; + * @return The payload. + */ + com.google.protobuf.ByteString getPayload(); + } + /** + * Protobuf type {@code SocketMessage} + */ + public static final class SocketMessage extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:SocketMessage) + SocketMessageOrBuilder, IKuaishouCmdMsg { + + @Override + public String getCmd() { + return getPayloadType().name(); + } + + @Override + public void setCmd(String cmd) { + // ignore + } + + @Override + public PayloadTypeOuterClass.PayloadType getCmdEnum() { + return getPayloadType(); + } + + private static final long serialVersionUID = 0L; + // Use SocketMessage.newBuilder() to construct. + private SocketMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private SocketMessage() { + payloadType_ = 0; + compressionType_ = 0; + payload_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SocketMessage(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.Builder.class); + } + + /** + * Protobuf enum {@code SocketMessage.CompressionType} + */ + public enum CompressionType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + * NONE = 1; + */ + NONE(1), + /** + * GZIP = 2; + */ + GZIP(2), + /** + * AES = 3; + */ + AES(3), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * NONE = 1; + */ + public static final int NONE_VALUE = 1; + /** + * GZIP = 2; + */ + public static final int GZIP_VALUE = 2; + /** + * AES = 3; + */ + public static final int AES_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CompressionType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CompressionType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN; + case 1: return NONE; + case 2: return GZIP; + case 3: return AES; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CompressionType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CompressionType findValueByNumber(int number) { + return CompressionType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDescriptor().getEnumTypes().get(0); + } + + private static final CompressionType[] VALUES = values(); + + public static CompressionType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CompressionType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:SocketMessage.CompressionType) + } + + public static final int PAYLOADTYPE_FIELD_NUMBER = 1; + private int payloadType_ = 0; + /** + * .PayloadType payloadType = 1; + * @return The enum numeric value on the wire for payloadType. + */ + @java.lang.Override public int getPayloadTypeValue() { + return payloadType_; + } + /** + * .PayloadType payloadType = 1; + * @return The payloadType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.forNumber(payloadType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNRECOGNIZED : result; + } + + public static final int COMPRESSIONTYPE_FIELD_NUMBER = 2; + private int compressionType_ = 0; + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The enum numeric value on the wire for compressionType. + */ + @java.lang.Override public int getCompressionTypeValue() { + return compressionType_; + } + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The compressionType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.forNumber(compressionType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNRECOGNIZED : result; + } + + public static final int PAYLOAD_FIELD_NUMBER = 3; + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 3; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (payloadType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNKNOWN.getNumber()) { + output.writeEnum(1, payloadType_); + } + if (compressionType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNKNOWN.getNumber()) { + output.writeEnum(2, compressionType_); + } + if (!payload_.isEmpty()) { + output.writeBytes(3, payload_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (payloadType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, payloadType_); + } + if (compressionType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, compressionType_); + } + if (!payload_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, payload_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage) obj; + + if (payloadType_ != other.payloadType_) return false; + if (compressionType_ != other.compressionType_) return false; + if (!getPayload() + .equals(other.getPayload())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PAYLOADTYPE_FIELD_NUMBER; + hash = (53 * hash) + payloadType_; + hash = (37 * hash) + COMPRESSIONTYPE_FIELD_NUMBER; + hash = (53 * hash) + compressionType_; + hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; + hash = (53 * hash) + getPayload().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code SocketMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:SocketMessage) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + payloadType_ = 0; + compressionType_ = 0; + payload_ = com.google.protobuf.ByteString.EMPTY; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.internal_static_SocketMessage_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.payloadType_ = payloadType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.compressionType_ = compressionType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.payload_ = payload_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.getDefaultInstance()) return this; + if (other.payloadType_ != 0) { + setPayloadTypeValue(other.getPayloadTypeValue()); + } + if (other.compressionType_ != 0) { + setCompressionTypeValue(other.getCompressionTypeValue()); + } + if (other.getPayload() != com.google.protobuf.ByteString.EMPTY) { + setPayload(other.getPayload()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + payloadType_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + compressionType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + payload_ = input.readBytes(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int payloadType_ = 0; + /** + * .PayloadType payloadType = 1; + * @return The enum numeric value on the wire for payloadType. + */ + @java.lang.Override public int getPayloadTypeValue() { + return payloadType_; + } + /** + * .PayloadType payloadType = 1; + * @param value The enum numeric value on the wire for payloadType to set. + * @return This builder for chaining. + */ + public Builder setPayloadTypeValue(int value) { + payloadType_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .PayloadType payloadType = 1; + * @return The payloadType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType getPayloadType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.forNumber(payloadType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType.UNRECOGNIZED : result; + } + /** + * .PayloadType payloadType = 1; + * @param value The payloadType to set. + * @return This builder for chaining. + */ + public Builder setPayloadType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.PayloadType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + payloadType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .PayloadType payloadType = 1; + * @return This builder for chaining. + */ + public Builder clearPayloadType() { + bitField0_ = (bitField0_ & ~0x00000001); + payloadType_ = 0; + onChanged(); + return this; + } + + private int compressionType_ = 0; + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The enum numeric value on the wire for compressionType. + */ + @java.lang.Override public int getCompressionTypeValue() { + return compressionType_; + } + /** + * .SocketMessage.CompressionType compressionType = 2; + * @param value The enum numeric value on the wire for compressionType to set. + * @return This builder for chaining. + */ + public Builder setCompressionTypeValue(int value) { + compressionType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return The compressionType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType getCompressionType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.forNumber(compressionType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType.UNRECOGNIZED : result; + } + /** + * .SocketMessage.CompressionType compressionType = 2; + * @param value The compressionType to set. + * @return This builder for chaining. + */ + public Builder setCompressionType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage.CompressionType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + compressionType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .SocketMessage.CompressionType compressionType = 2; + * @return This builder for chaining. + */ + public Builder clearCompressionType() { + bitField0_ = (bitField0_ & ~0x00000002); + compressionType_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.ByteString payload_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes payload = 3; + * @return The payload. + */ + @java.lang.Override + public com.google.protobuf.ByteString getPayload() { + return payload_; + } + /** + * bytes payload = 3; + * @param value The payload to set. + * @return This builder for chaining. + */ + public Builder setPayload(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + payload_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bytes payload = 3; + * @return This builder for chaining. + */ + public Builder clearPayload() { + bitField0_ = (bitField0_ & ~0x00000004); + payload_ = getDefaultInstance().getPayload(); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:SocketMessage) + } + + // @@protoc_insertion_point(class_scope:SocketMessage) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SocketMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SocketMessageOuterClass.SocketMessage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_SocketMessage_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_SocketMessage_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\023SocketMessage.proto\032\021PayloadType.proto" + + "\"\271\001\n\rSocketMessage\022!\n\013payloadType\030\001 \001(\0162" + + "\014.PayloadType\0227\n\017compressionType\030\002 \001(\0162\036" + + ".SocketMessage.CompressionType\022\017\n\007payloa" + + "d\030\003 \001(\014\";\n\017CompressionType\022\013\n\007UNKNOWN\020\000\022" + + "\010\n\004NONE\020\001\022\010\n\004GZIP\020\002\022\007\n\003AES\020\003B6\n4tech.ord" + + "inaryroad.live.chat.client.kuaishou.prot" + + "obufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor(), + }); + internal_static_SocketMessage_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_SocketMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_SocketMessage_descriptor, + new java.lang.String[] { "PayloadType", "CompressionType", "Payload", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java new file mode 100644 index 00000000..f09acea2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/UserInfoOuterClass.java @@ -0,0 +1,2121 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: UserInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class UserInfoOuterClass { + private UserInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface UserInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:UserInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * uint64 userId = 1; + * @return The userId. + */ + long getUserId(); + + /** + * string userName = 2; + * @return The userName. + */ + java.lang.String getUserName(); + /** + * string userName = 2; + * @return The bytes for userName. + */ + com.google.protobuf.ByteString + getUserNameBytes(); + + /** + * string userGender = 3; + * @return The userGender. + */ + java.lang.String getUserGender(); + /** + * string userGender = 3; + * @return The bytes for userGender. + */ + com.google.protobuf.ByteString + getUserGenderBytes(); + + /** + * string userText = 4; + * @return The userText. + */ + java.lang.String getUserText(); + /** + * string userText = 4; + * @return The bytes for userText. + */ + com.google.protobuf.ByteString + getUserTextBytes(); + + /** + * repeated .PicUrl headUrls = 5; + */ + java.util.List + getHeadUrlsList(); + /** + * repeated .PicUrl headUrls = 5; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index); + /** + * repeated .PicUrl headUrls = 5; + */ + int getHeadUrlsCount(); + /** + * repeated .PicUrl headUrls = 5; + */ + java.util.List + getHeadUrlsOrBuilderList(); + /** + * repeated .PicUrl headUrls = 5; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( + int index); + + /** + * bool verified = 6; + * @return The verified. + */ + boolean getVerified(); + + /** + * string sUserId = 7; + * @return The sUserId. + */ + java.lang.String getSUserId(); + /** + * string sUserId = 7; + * @return The bytes for sUserId. + */ + com.google.protobuf.ByteString + getSUserIdBytes(); + + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + java.util.List + getHttpsHeadUrlsList(); + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index); + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + int getHttpsHeadUrlsCount(); + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + java.util.List + getHttpsHeadUrlsOrBuilderList(); + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( + int index); + + /** + * string kwaiId = 9; + * @return The kwaiId. + */ + java.lang.String getKwaiId(); + /** + * string kwaiId = 9; + * @return The bytes for kwaiId. + */ + com.google.protobuf.ByteString + getKwaiIdBytes(); + } + /** + * Protobuf type {@code UserInfo} + */ + public static final class UserInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:UserInfo) + UserInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use UserInfo.newBuilder() to construct. + private UserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private UserInfo() { + userName_ = ""; + userGender_ = ""; + userText_ = ""; + headUrls_ = java.util.Collections.emptyList(); + sUserId_ = ""; + httpsHeadUrls_ = java.util.Collections.emptyList(); + kwaiId_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new UserInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.Builder.class); + } + + public static final int USERID_FIELD_NUMBER = 1; + private long userId_ = 0L; + /** + * uint64 userId = 1; + * @return The userId. + */ + @java.lang.Override + public long getUserId() { + return userId_; + } + + public static final int USERNAME_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object userName_ = ""; + /** + * string userName = 2; + * @return The userName. + */ + @java.lang.Override + public java.lang.String getUserName() { + java.lang.Object ref = userName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userName_ = s; + return s; + } + } + /** + * string userName = 2; + * @return The bytes for userName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUserNameBytes() { + java.lang.Object ref = userName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERGENDER_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object userGender_ = ""; + /** + * string userGender = 3; + * @return The userGender. + */ + @java.lang.Override + public java.lang.String getUserGender() { + java.lang.Object ref = userGender_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userGender_ = s; + return s; + } + } + /** + * string userGender = 3; + * @return The bytes for userGender. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUserGenderBytes() { + java.lang.Object ref = userGender_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userGender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USERTEXT_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object userText_ = ""; + /** + * string userText = 4; + * @return The userText. + */ + @java.lang.Override + public java.lang.String getUserText() { + java.lang.Object ref = userText_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userText_ = s; + return s; + } + } + /** + * string userText = 4; + * @return The bytes for userText. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUserTextBytes() { + java.lang.Object ref = userText_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HEADURLS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private java.util.List headUrls_; + /** + * repeated .PicUrl headUrls = 5; + */ + @java.lang.Override + public java.util.List getHeadUrlsList() { + return headUrls_; + } + /** + * repeated .PicUrl headUrls = 5; + */ + @java.lang.Override + public java.util.List + getHeadUrlsOrBuilderList() { + return headUrls_; + } + /** + * repeated .PicUrl headUrls = 5; + */ + @java.lang.Override + public int getHeadUrlsCount() { + return headUrls_.size(); + } + /** + * repeated .PicUrl headUrls = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index) { + return headUrls_.get(index); + } + /** + * repeated .PicUrl headUrls = 5; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( + int index) { + return headUrls_.get(index); + } + + public static final int VERIFIED_FIELD_NUMBER = 6; + private boolean verified_ = false; + /** + * bool verified = 6; + * @return The verified. + */ + @java.lang.Override + public boolean getVerified() { + return verified_; + } + + public static final int SUSERID_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object sUserId_ = ""; + /** + * string sUserId = 7; + * @return The sUserId. + */ + @java.lang.Override + public java.lang.String getSUserId() { + java.lang.Object ref = sUserId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sUserId_ = s; + return s; + } + } + /** + * string sUserId = 7; + * @return The bytes for sUserId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSUserIdBytes() { + java.lang.Object ref = sUserId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sUserId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HTTPSHEADURLS_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private java.util.List httpsHeadUrls_; + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + @java.lang.Override + public java.util.List getHttpsHeadUrlsList() { + return httpsHeadUrls_; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + @java.lang.Override + public java.util.List + getHttpsHeadUrlsOrBuilderList() { + return httpsHeadUrls_; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + @java.lang.Override + public int getHttpsHeadUrlsCount() { + return httpsHeadUrls_.size(); + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index) { + return httpsHeadUrls_.get(index); + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( + int index) { + return httpsHeadUrls_.get(index); + } + + public static final int KWAIID_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object kwaiId_ = ""; + /** + * string kwaiId = 9; + * @return The kwaiId. + */ + @java.lang.Override + public java.lang.String getKwaiId() { + java.lang.Object ref = kwaiId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kwaiId_ = s; + return s; + } + } + /** + * string kwaiId = 9; + * @return The bytes for kwaiId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getKwaiIdBytes() { + java.lang.Object ref = kwaiId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + kwaiId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (userId_ != 0L) { + output.writeUInt64(1, userId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userGender_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, userGender_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userText_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, userText_); + } + for (int i = 0; i < headUrls_.size(); i++) { + output.writeMessage(5, headUrls_.get(i)); + } + if (verified_ != false) { + output.writeBool(6, verified_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sUserId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, sUserId_); + } + for (int i = 0; i < httpsHeadUrls_.size(); i++) { + output.writeMessage(8, httpsHeadUrls_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kwaiId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, kwaiId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (userId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(1, userId_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userGender_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, userGender_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userText_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, userText_); + } + for (int i = 0; i < headUrls_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, headUrls_.get(i)); + } + if (verified_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(6, verified_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sUserId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, sUserId_); + } + for (int i = 0; i < httpsHeadUrls_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, httpsHeadUrls_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kwaiId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, kwaiId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo) obj; + + if (getUserId() + != other.getUserId()) return false; + if (!getUserName() + .equals(other.getUserName())) return false; + if (!getUserGender() + .equals(other.getUserGender())) return false; + if (!getUserText() + .equals(other.getUserText())) return false; + if (!getHeadUrlsList() + .equals(other.getHeadUrlsList())) return false; + if (getVerified() + != other.getVerified()) return false; + if (!getSUserId() + .equals(other.getSUserId())) return false; + if (!getHttpsHeadUrlsList() + .equals(other.getHttpsHeadUrlsList())) return false; + if (!getKwaiId() + .equals(other.getKwaiId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + USERID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getUserId()); + hash = (37 * hash) + USERNAME_FIELD_NUMBER; + hash = (53 * hash) + getUserName().hashCode(); + hash = (37 * hash) + USERGENDER_FIELD_NUMBER; + hash = (53 * hash) + getUserGender().hashCode(); + hash = (37 * hash) + USERTEXT_FIELD_NUMBER; + hash = (53 * hash) + getUserText().hashCode(); + if (getHeadUrlsCount() > 0) { + hash = (37 * hash) + HEADURLS_FIELD_NUMBER; + hash = (53 * hash) + getHeadUrlsList().hashCode(); + } + hash = (37 * hash) + VERIFIED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getVerified()); + hash = (37 * hash) + SUSERID_FIELD_NUMBER; + hash = (53 * hash) + getSUserId().hashCode(); + if (getHttpsHeadUrlsCount() > 0) { + hash = (37 * hash) + HTTPSHEADURLS_FIELD_NUMBER; + hash = (53 * hash) + getHttpsHeadUrlsList().hashCode(); + } + hash = (37 * hash) + KWAIID_FIELD_NUMBER; + hash = (53 * hash) + getKwaiId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code UserInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:UserInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + userId_ = 0L; + userName_ = ""; + userGender_ = ""; + userText_ = ""; + if (headUrlsBuilder_ == null) { + headUrls_ = java.util.Collections.emptyList(); + } else { + headUrls_ = null; + headUrlsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + verified_ = false; + sUserId_ = ""; + if (httpsHeadUrlsBuilder_ == null) { + httpsHeadUrls_ = java.util.Collections.emptyList(); + } else { + httpsHeadUrls_ = null; + httpsHeadUrlsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000080); + kwaiId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.internal_static_UserInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result) { + if (headUrlsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + headUrls_ = java.util.Collections.unmodifiableList(headUrls_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.headUrls_ = headUrls_; + } else { + result.headUrls_ = headUrlsBuilder_.build(); + } + if (httpsHeadUrlsBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0)) { + httpsHeadUrls_ = java.util.Collections.unmodifiableList(httpsHeadUrls_); + bitField0_ = (bitField0_ & ~0x00000080); + } + result.httpsHeadUrls_ = httpsHeadUrls_; + } else { + result.httpsHeadUrls_ = httpsHeadUrlsBuilder_.build(); + } + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.userId_ = userId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.userName_ = userName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.userGender_ = userGender_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.userText_ = userText_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.verified_ = verified_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.sUserId_ = sUserId_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.kwaiId_ = kwaiId_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo.getDefaultInstance()) return this; + if (other.getUserId() != 0L) { + setUserId(other.getUserId()); + } + if (!other.getUserName().isEmpty()) { + userName_ = other.userName_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getUserGender().isEmpty()) { + userGender_ = other.userGender_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getUserText().isEmpty()) { + userText_ = other.userText_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (headUrlsBuilder_ == null) { + if (!other.headUrls_.isEmpty()) { + if (headUrls_.isEmpty()) { + headUrls_ = other.headUrls_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureHeadUrlsIsMutable(); + headUrls_.addAll(other.headUrls_); + } + onChanged(); + } + } else { + if (!other.headUrls_.isEmpty()) { + if (headUrlsBuilder_.isEmpty()) { + headUrlsBuilder_.dispose(); + headUrlsBuilder_ = null; + headUrls_ = other.headUrls_; + bitField0_ = (bitField0_ & ~0x00000010); + headUrlsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getHeadUrlsFieldBuilder() : null; + } else { + headUrlsBuilder_.addAllMessages(other.headUrls_); + } + } + } + if (other.getVerified() != false) { + setVerified(other.getVerified()); + } + if (!other.getSUserId().isEmpty()) { + sUserId_ = other.sUserId_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (httpsHeadUrlsBuilder_ == null) { + if (!other.httpsHeadUrls_.isEmpty()) { + if (httpsHeadUrls_.isEmpty()) { + httpsHeadUrls_ = other.httpsHeadUrls_; + bitField0_ = (bitField0_ & ~0x00000080); + } else { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.addAll(other.httpsHeadUrls_); + } + onChanged(); + } + } else { + if (!other.httpsHeadUrls_.isEmpty()) { + if (httpsHeadUrlsBuilder_.isEmpty()) { + httpsHeadUrlsBuilder_.dispose(); + httpsHeadUrlsBuilder_ = null; + httpsHeadUrls_ = other.httpsHeadUrls_; + bitField0_ = (bitField0_ & ~0x00000080); + httpsHeadUrlsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getHttpsHeadUrlsFieldBuilder() : null; + } else { + httpsHeadUrlsBuilder_.addAllMessages(other.httpsHeadUrls_); + } + } + } + if (!other.getKwaiId().isEmpty()) { + kwaiId_ = other.kwaiId_; + bitField0_ |= 0x00000100; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + userId_ = input.readUInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + userName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + userGender_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + userText_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), + extensionRegistry); + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + headUrls_.add(m); + } else { + headUrlsBuilder_.addMessage(m); + } + break; + } // case 42 + case 48: { + verified_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + sUserId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl m = + input.readMessage( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.parser(), + extensionRegistry); + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.add(m); + } else { + httpsHeadUrlsBuilder_.addMessage(m); + } + break; + } // case 66 + case 74: { + kwaiId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long userId_ ; + /** + * uint64 userId = 1; + * @return The userId. + */ + @java.lang.Override + public long getUserId() { + return userId_; + } + /** + * uint64 userId = 1; + * @param value The userId to set. + * @return This builder for chaining. + */ + public Builder setUserId(long value) { + + userId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * uint64 userId = 1; + * @return This builder for chaining. + */ + public Builder clearUserId() { + bitField0_ = (bitField0_ & ~0x00000001); + userId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object userName_ = ""; + /** + * string userName = 2; + * @return The userName. + */ + public java.lang.String getUserName() { + java.lang.Object ref = userName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string userName = 2; + * @return The bytes for userName. + */ + public com.google.protobuf.ByteString + getUserNameBytes() { + java.lang.Object ref = userName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string userName = 2; + * @param value The userName to set. + * @return This builder for chaining. + */ + public Builder setUserName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + userName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string userName = 2; + * @return This builder for chaining. + */ + public Builder clearUserName() { + userName_ = getDefaultInstance().getUserName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string userName = 2; + * @param value The bytes for userName to set. + * @return This builder for chaining. + */ + public Builder setUserNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + userName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object userGender_ = ""; + /** + * string userGender = 3; + * @return The userGender. + */ + public java.lang.String getUserGender() { + java.lang.Object ref = userGender_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userGender_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string userGender = 3; + * @return The bytes for userGender. + */ + public com.google.protobuf.ByteString + getUserGenderBytes() { + java.lang.Object ref = userGender_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userGender_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string userGender = 3; + * @param value The userGender to set. + * @return This builder for chaining. + */ + public Builder setUserGender( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + userGender_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string userGender = 3; + * @return This builder for chaining. + */ + public Builder clearUserGender() { + userGender_ = getDefaultInstance().getUserGender(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string userGender = 3; + * @param value The bytes for userGender to set. + * @return This builder for chaining. + */ + public Builder setUserGenderBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + userGender_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object userText_ = ""; + /** + * string userText = 4; + * @return The userText. + */ + public java.lang.String getUserText() { + java.lang.Object ref = userText_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userText_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string userText = 4; + * @return The bytes for userText. + */ + public com.google.protobuf.ByteString + getUserTextBytes() { + java.lang.Object ref = userText_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userText_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string userText = 4; + * @param value The userText to set. + * @return This builder for chaining. + */ + public Builder setUserText( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + userText_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string userText = 4; + * @return This builder for chaining. + */ + public Builder clearUserText() { + userText_ = getDefaultInstance().getUserText(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string userText = 4; + * @param value The bytes for userText to set. + * @return This builder for chaining. + */ + public Builder setUserTextBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + userText_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.util.List headUrls_ = + java.util.Collections.emptyList(); + private void ensureHeadUrlsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + headUrls_ = new java.util.ArrayList(headUrls_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> headUrlsBuilder_; + + /** + * repeated .PicUrl headUrls = 5; + */ + public java.util.List getHeadUrlsList() { + if (headUrlsBuilder_ == null) { + return java.util.Collections.unmodifiableList(headUrls_); + } else { + return headUrlsBuilder_.getMessageList(); + } + } + /** + * repeated .PicUrl headUrls = 5; + */ + public int getHeadUrlsCount() { + if (headUrlsBuilder_ == null) { + return headUrls_.size(); + } else { + return headUrlsBuilder_.getCount(); + } + } + /** + * repeated .PicUrl headUrls = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHeadUrls(int index) { + if (headUrlsBuilder_ == null) { + return headUrls_.get(index); + } else { + return headUrlsBuilder_.getMessage(index); + } + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder setHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (headUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHeadUrlsIsMutable(); + headUrls_.set(index, value); + onChanged(); + } else { + headUrlsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder setHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + headUrls_.set(index, builderForValue.build()); + onChanged(); + } else { + headUrlsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder addHeadUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (headUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHeadUrlsIsMutable(); + headUrls_.add(value); + onChanged(); + } else { + headUrlsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder addHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (headUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHeadUrlsIsMutable(); + headUrls_.add(index, value); + onChanged(); + } else { + headUrlsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder addHeadUrls( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + headUrls_.add(builderForValue.build()); + onChanged(); + } else { + headUrlsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder addHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + headUrls_.add(index, builderForValue.build()); + onChanged(); + } else { + headUrlsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder addAllHeadUrls( + java.lang.Iterable values) { + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, headUrls_); + onChanged(); + } else { + headUrlsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder clearHeadUrls() { + if (headUrlsBuilder_ == null) { + headUrls_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + headUrlsBuilder_.clear(); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public Builder removeHeadUrls(int index) { + if (headUrlsBuilder_ == null) { + ensureHeadUrlsIsMutable(); + headUrls_.remove(index); + onChanged(); + } else { + headUrlsBuilder_.remove(index); + } + return this; + } + /** + * repeated .PicUrl headUrls = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getHeadUrlsBuilder( + int index) { + return getHeadUrlsFieldBuilder().getBuilder(index); + } + /** + * repeated .PicUrl headUrls = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHeadUrlsOrBuilder( + int index) { + if (headUrlsBuilder_ == null) { + return headUrls_.get(index); } else { + return headUrlsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .PicUrl headUrls = 5; + */ + public java.util.List + getHeadUrlsOrBuilderList() { + if (headUrlsBuilder_ != null) { + return headUrlsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(headUrls_); + } + } + /** + * repeated .PicUrl headUrls = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHeadUrlsBuilder() { + return getHeadUrlsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl headUrls = 5; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHeadUrlsBuilder( + int index) { + return getHeadUrlsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl headUrls = 5; + */ + public java.util.List + getHeadUrlsBuilderList() { + return getHeadUrlsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> + getHeadUrlsFieldBuilder() { + if (headUrlsBuilder_ == null) { + headUrlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( + headUrls_, + ((bitField0_ & 0x00000010) != 0), + getParentForChildren(), + isClean()); + headUrls_ = null; + } + return headUrlsBuilder_; + } + + private boolean verified_ ; + /** + * bool verified = 6; + * @return The verified. + */ + @java.lang.Override + public boolean getVerified() { + return verified_; + } + /** + * bool verified = 6; + * @param value The verified to set. + * @return This builder for chaining. + */ + public Builder setVerified(boolean value) { + + verified_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool verified = 6; + * @return This builder for chaining. + */ + public Builder clearVerified() { + bitField0_ = (bitField0_ & ~0x00000020); + verified_ = false; + onChanged(); + return this; + } + + private java.lang.Object sUserId_ = ""; + /** + * string sUserId = 7; + * @return The sUserId. + */ + public java.lang.String getSUserId() { + java.lang.Object ref = sUserId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sUserId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string sUserId = 7; + * @return The bytes for sUserId. + */ + public com.google.protobuf.ByteString + getSUserIdBytes() { + java.lang.Object ref = sUserId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sUserId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string sUserId = 7; + * @param value The sUserId to set. + * @return This builder for chaining. + */ + public Builder setSUserId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + sUserId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string sUserId = 7; + * @return This builder for chaining. + */ + public Builder clearSUserId() { + sUserId_ = getDefaultInstance().getSUserId(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string sUserId = 7; + * @param value The bytes for sUserId to set. + * @return This builder for chaining. + */ + public Builder setSUserIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + sUserId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.util.List httpsHeadUrls_ = + java.util.Collections.emptyList(); + private void ensureHttpsHeadUrlsIsMutable() { + if (!((bitField0_ & 0x00000080) != 0)) { + httpsHeadUrls_ = new java.util.ArrayList(httpsHeadUrls_); + bitField0_ |= 0x00000080; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> httpsHeadUrlsBuilder_; + + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public java.util.List getHttpsHeadUrlsList() { + if (httpsHeadUrlsBuilder_ == null) { + return java.util.Collections.unmodifiableList(httpsHeadUrls_); + } else { + return httpsHeadUrlsBuilder_.getMessageList(); + } + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public int getHttpsHeadUrlsCount() { + if (httpsHeadUrlsBuilder_ == null) { + return httpsHeadUrls_.size(); + } else { + return httpsHeadUrlsBuilder_.getCount(); + } + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl getHttpsHeadUrls(int index) { + if (httpsHeadUrlsBuilder_ == null) { + return httpsHeadUrls_.get(index); + } else { + return httpsHeadUrlsBuilder_.getMessage(index); + } + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder setHttpsHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (httpsHeadUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.set(index, value); + onChanged(); + } else { + httpsHeadUrlsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder setHttpsHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.set(index, builderForValue.build()); + onChanged(); + } else { + httpsHeadUrlsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder addHttpsHeadUrls(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (httpsHeadUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.add(value); + onChanged(); + } else { + httpsHeadUrlsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder addHttpsHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl value) { + if (httpsHeadUrlsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.add(index, value); + onChanged(); + } else { + httpsHeadUrlsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder addHttpsHeadUrls( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.add(builderForValue.build()); + onChanged(); + } else { + httpsHeadUrlsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder addHttpsHeadUrls( + int index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder builderForValue) { + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.add(index, builderForValue.build()); + onChanged(); + } else { + httpsHeadUrlsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder addAllHttpsHeadUrls( + java.lang.Iterable values) { + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, httpsHeadUrls_); + onChanged(); + } else { + httpsHeadUrlsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder clearHttpsHeadUrls() { + if (httpsHeadUrlsBuilder_ == null) { + httpsHeadUrls_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + } else { + httpsHeadUrlsBuilder_.clear(); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public Builder removeHttpsHeadUrls(int index) { + if (httpsHeadUrlsBuilder_ == null) { + ensureHttpsHeadUrlsIsMutable(); + httpsHeadUrls_.remove(index); + onChanged(); + } else { + httpsHeadUrlsBuilder_.remove(index); + } + return this; + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder getHttpsHeadUrlsBuilder( + int index) { + return getHttpsHeadUrlsFieldBuilder().getBuilder(index); + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder getHttpsHeadUrlsOrBuilder( + int index) { + if (httpsHeadUrlsBuilder_ == null) { + return httpsHeadUrls_.get(index); } else { + return httpsHeadUrlsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public java.util.List + getHttpsHeadUrlsOrBuilderList() { + if (httpsHeadUrlsBuilder_ != null) { + return httpsHeadUrlsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(httpsHeadUrls_); + } + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHttpsHeadUrlsBuilder() { + return getHttpsHeadUrlsFieldBuilder().addBuilder( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder addHttpsHeadUrlsBuilder( + int index) { + return getHttpsHeadUrlsFieldBuilder().addBuilder( + index, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.getDefaultInstance()); + } + /** + * repeated .PicUrl httpsHeadUrls = 8; + */ + public java.util.List + getHttpsHeadUrlsBuilderList() { + return getHttpsHeadUrlsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder> + getHttpsHeadUrlsFieldBuilder() { + if (httpsHeadUrlsBuilder_ == null) { + httpsHeadUrlsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrl.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.PicUrlOrBuilder>( + httpsHeadUrls_, + ((bitField0_ & 0x00000080) != 0), + getParentForChildren(), + isClean()); + httpsHeadUrls_ = null; + } + return httpsHeadUrlsBuilder_; + } + + private java.lang.Object kwaiId_ = ""; + /** + * string kwaiId = 9; + * @return The kwaiId. + */ + public java.lang.String getKwaiId() { + java.lang.Object ref = kwaiId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + kwaiId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string kwaiId = 9; + * @return The bytes for kwaiId. + */ + public com.google.protobuf.ByteString + getKwaiIdBytes() { + java.lang.Object ref = kwaiId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + kwaiId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string kwaiId = 9; + * @param value The kwaiId to set. + * @return This builder for chaining. + */ + public Builder setKwaiId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + kwaiId_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * string kwaiId = 9; + * @return This builder for chaining. + */ + public Builder clearKwaiId() { + kwaiId_ = getDefaultInstance().getKwaiId(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + * string kwaiId = 9; + * @param value The bytes for kwaiId to set. + * @return This builder for chaining. + */ + public Builder setKwaiIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + kwaiId_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:UserInfo) + } + + // @@protoc_insertion_point(class_scope:UserInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.UserInfoOuterClass.UserInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_UserInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_UserInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\016UserInfo.proto\032\014PicUrl.proto\"\300\001\n\010UserI" + + "nfo\022\016\n\006userId\030\001 \001(\004\022\020\n\010userName\030\002 \001(\t\022\022\n" + + "\nuserGender\030\003 \001(\t\022\020\n\010userText\030\004 \001(\t\022\031\n\010h" + + "eadUrls\030\005 \003(\0132\007.PicUrl\022\020\n\010verified\030\006 \001(\010" + + "\022\017\n\007sUserId\030\007 \001(\t\022\036\n\rhttpsHeadUrls\030\010 \003(\013" + + "2\007.PicUrl\022\016\n\006kwaiId\030\t \001(\tB6\n4tech.ordina" + + "ryroad.live.chat.client.kuaishou.protobu" + + "fb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(), + }); + internal_static_UserInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_UserInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_UserInfo_descriptor, + new java.lang.String[] { "UserId", "UserName", "UserGender", "UserText", "HeadUrls", "Verified", "SUserId", "HttpsHeadUrls", "KwaiId", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PicUrlOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java new file mode 100644 index 00000000..49a905a6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebComboCommentFeedOuterClass.java @@ -0,0 +1,846 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebComboCommentFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebComboCommentFeedOuterClass { + private WebComboCommentFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebComboCommentFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebComboCommentFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * string content = 2; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 2; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * uint32 comboCount = 3; + * @return The comboCount. + */ + int getComboCount(); + } + /** + * Protobuf type {@code WebComboCommentFeed} + */ + public static final class WebComboCommentFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebComboCommentFeed) + WebComboCommentFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebComboCommentFeed.newBuilder() to construct. + private WebComboCommentFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebComboCommentFeed() { + id_ = ""; + content_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebComboCommentFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CONTENT_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + /** + * string content = 2; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int COMBOCOUNT_FIELD_NUMBER = 3; + private int comboCount_ = 0; + /** + * uint32 comboCount = 3; + * @return The comboCount. + */ + @java.lang.Override + public int getComboCount() { + return comboCount_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, content_); + } + if (comboCount_ != 0) { + output.writeUInt32(3, comboCount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, content_); + } + if (comboCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(3, comboCount_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (!getContent() + .equals(other.getContent())) return false; + if (getComboCount() + != other.getComboCount()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + COMBOCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getComboCount(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebComboCommentFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebComboCommentFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + content_ = ""; + comboCount_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.internal_static_WebComboCommentFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.content_ = content_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.comboCount_ = comboCount_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getComboCount() != 0) { + setComboCount(other.getComboCount()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + comboCount_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + /** + * string content = 2; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 2; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 2; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + content_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string content = 2; + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string content = 2; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int comboCount_ ; + /** + * uint32 comboCount = 3; + * @return The comboCount. + */ + @java.lang.Override + public int getComboCount() { + return comboCount_; + } + /** + * uint32 comboCount = 3; + * @param value The comboCount to set. + * @return This builder for chaining. + */ + public Builder setComboCount(int value) { + + comboCount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint32 comboCount = 3; + * @return This builder for chaining. + */ + public Builder clearComboCount() { + bitField0_ = (bitField0_ & ~0x00000004); + comboCount_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebComboCommentFeed) + } + + // @@protoc_insertion_point(class_scope:WebComboCommentFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebComboCommentFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebComboCommentFeedOuterClass.WebComboCommentFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebComboCommentFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebComboCommentFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\031WebComboCommentFeed.proto\"F\n\023WebComboC" + + "ommentFeed\022\n\n\002id\030\001 \001(\t\022\017\n\007content\030\002 \001(\t\022" + + "\022\n\ncomboCount\030\003 \001(\rB6\n4tech.ordinaryroad" + + ".live.chat.client.kuaishou.protobufb\006pro" + + "to3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_WebComboCommentFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebComboCommentFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebComboCommentFeed_descriptor, + new java.lang.String[] { "Id", "Content", "ComboCount", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java new file mode 100644 index 00000000..efa98705 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedOuterClass.java @@ -0,0 +1,1651 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebCommentFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebCommentFeedOuterClass { + private WebCommentFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebCommentFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebCommentFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * string content = 3; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 3; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + java.lang.String getDeviceHash(); + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + com.google.protobuf.ByteString + getDeviceHashBytes(); + + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + long getSortRank(); + + /** + * string color = 6; + * @return The color. + */ + java.lang.String getColor(); + /** + * string color = 6; + * @return The bytes for color. + */ + com.google.protobuf.ByteString + getColorBytes(); + + /** + * .WebCommentFeedShowType showType = 7; + * @return The enum numeric value on the wire for showType. + */ + int getShowTypeValue(); + /** + * .WebCommentFeedShowType showType = 7; + * @return The showType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType(); + + /** + * .LiveAudienceState senderState = 8; + * @return Whether the senderState field is set. + */ + boolean hasSenderState(); + /** + * .LiveAudienceState senderState = 8; + * @return The senderState. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState(); + /** + * .LiveAudienceState senderState = 8; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder(); + } + /** + * Protobuf type {@code WebCommentFeed} + */ + public static final class WebCommentFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebCommentFeed) + WebCommentFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebCommentFeed.newBuilder() to construct. + private WebCommentFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebCommentFeed() { + id_ = ""; + content_ = ""; + deviceHash_ = ""; + color_ = ""; + showType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebCommentFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int CONTENT_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + /** + * string content = 3; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 3; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICEHASH_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + @java.lang.Override + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } + } + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SORTRANK_FIELD_NUMBER = 5; + private long sortRank_ = 0L; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + + public static final int COLOR_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object color_ = ""; + /** + * string color = 6; + * @return The color. + */ + @java.lang.Override + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } + } + /** + * string color = 6; + * @return The bytes for color. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SHOWTYPE_FIELD_NUMBER = 7; + private int showType_ = 0; + /** + * .WebCommentFeedShowType showType = 7; + * @return The enum numeric value on the wire for showType. + */ + @java.lang.Override public int getShowTypeValue() { + return showType_; + } + /** + * .WebCommentFeedShowType showType = 7; + * @return The showType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.forNumber(showType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.UNRECOGNIZED : result; + } + + public static final int SENDERSTATE_FIELD_NUMBER = 8; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState senderState_; + /** + * .LiveAudienceState senderState = 8; + * @return Whether the senderState field is set. + */ + @java.lang.Override + public boolean hasSenderState() { + return senderState_ != null; + } + /** + * .LiveAudienceState senderState = 8; + * @return The senderState. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState() { + return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; + } + /** + * .LiveAudienceState senderState = 8; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder() { + return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, deviceHash_); + } + if (sortRank_ != 0L) { + output.writeUInt64(5, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, color_); + } + if (showType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.FEED_SHOW_UNKNOWN.getNumber()) { + output.writeEnum(7, showType_); + } + if (senderState_ != null) { + output.writeMessage(8, getSenderState()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, content_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, deviceHash_); + } + if (sortRank_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(color_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, color_); + } + if (showType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.FEED_SHOW_UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(7, showType_); + } + if (senderState_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, getSenderState()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (!getContent() + .equals(other.getContent())) return false; + if (!getDeviceHash() + .equals(other.getDeviceHash())) return false; + if (getSortRank() + != other.getSortRank()) return false; + if (!getColor() + .equals(other.getColor())) return false; + if (showType_ != other.showType_) return false; + if (hasSenderState() != other.hasSenderState()) return false; + if (hasSenderState()) { + if (!getSenderState() + .equals(other.getSenderState())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; + hash = (53 * hash) + getDeviceHash().hashCode(); + hash = (37 * hash) + SORTRANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSortRank()); + hash = (37 * hash) + COLOR_FIELD_NUMBER; + hash = (53 * hash) + getColor().hashCode(); + hash = (37 * hash) + SHOWTYPE_FIELD_NUMBER; + hash = (53 * hash) + showType_; + if (hasSenderState()) { + hash = (37 * hash) + SENDERSTATE_FIELD_NUMBER; + hash = (53 * hash) + getSenderState().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebCommentFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebCommentFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + content_ = ""; + deviceHash_ = ""; + sortRank_ = 0L; + color_ = ""; + showType_ = 0; + senderState_ = null; + if (senderStateBuilder_ != null) { + senderStateBuilder_.dispose(); + senderStateBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.internal_static_WebCommentFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.content_ = content_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.deviceHash_ = deviceHash_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.sortRank_ = sortRank_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.color_ = color_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.showType_ = showType_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.senderState_ = senderStateBuilder_ == null + ? senderState_ + : senderStateBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getDeviceHash().isEmpty()) { + deviceHash_ = other.deviceHash_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.getSortRank() != 0L) { + setSortRank(other.getSortRank()); + } + if (!other.getColor().isEmpty()) { + color_ = other.color_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.showType_ != 0) { + setShowTypeValue(other.getShowTypeValue()); + } + if (other.hasSenderState()) { + mergeSenderState(other.getSenderState()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + deviceHash_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: { + sortRank_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + color_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 56: { + showType_ = input.readEnum(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 66: { + input.readMessage( + getSenderStateFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private java.lang.Object content_ = ""; + /** + * string content = 3; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 3; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 3; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + content_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string content = 3; + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string content = 3; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deviceHash = 4; + * @param value The deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHash( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceHash_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string deviceHash = 4; + * @return This builder for chaining. + */ + public Builder clearDeviceHash() { + deviceHash_ = getDefaultInstance().getDeviceHash(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string deviceHash = 4; + * @param value The bytes for deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHashBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceHash_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private long sortRank_ ; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + /** + * uint64 sortRank = 5; + * @param value The sortRank to set. + * @return This builder for chaining. + */ + public Builder setSortRank(long value) { + + sortRank_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 sortRank = 5; + * @return This builder for chaining. + */ + public Builder clearSortRank() { + bitField0_ = (bitField0_ & ~0x00000010); + sortRank_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object color_ = ""; + /** + * string color = 6; + * @return The color. + */ + public java.lang.String getColor() { + java.lang.Object ref = color_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + color_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string color = 6; + * @return The bytes for color. + */ + public com.google.protobuf.ByteString + getColorBytes() { + java.lang.Object ref = color_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + color_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string color = 6; + * @param value The color to set. + * @return This builder for chaining. + */ + public Builder setColor( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + color_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string color = 6; + * @return This builder for chaining. + */ + public Builder clearColor() { + color_ = getDefaultInstance().getColor(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string color = 6; + * @param value The bytes for color to set. + * @return This builder for chaining. + */ + public Builder setColorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + color_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private int showType_ = 0; + /** + * .WebCommentFeedShowType showType = 7; + * @return The enum numeric value on the wire for showType. + */ + @java.lang.Override public int getShowTypeValue() { + return showType_; + } + /** + * .WebCommentFeedShowType showType = 7; + * @param value The enum numeric value on the wire for showType to set. + * @return This builder for chaining. + */ + public Builder setShowTypeValue(int value) { + showType_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .WebCommentFeedShowType showType = 7; + * @return The showType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType getShowType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.forNumber(showType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType.UNRECOGNIZED : result; + } + /** + * .WebCommentFeedShowType showType = 7; + * @param value The showType to set. + * @return This builder for chaining. + */ + public Builder setShowType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.WebCommentFeedShowType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000040; + showType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebCommentFeedShowType showType = 7; + * @return This builder for chaining. + */ + public Builder clearShowType() { + bitField0_ = (bitField0_ & ~0x00000040); + showType_ = 0; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState senderState_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder> senderStateBuilder_; + /** + * .LiveAudienceState senderState = 8; + * @return Whether the senderState field is set. + */ + public boolean hasSenderState() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + * .LiveAudienceState senderState = 8; + * @return The senderState. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState getSenderState() { + if (senderStateBuilder_ == null) { + return senderState_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; + } else { + return senderStateBuilder_.getMessage(); + } + } + /** + * .LiveAudienceState senderState = 8; + */ + public Builder setSenderState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState value) { + if (senderStateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + senderState_ = value; + } else { + senderStateBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .LiveAudienceState senderState = 8; + */ + public Builder setSenderState( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder builderForValue) { + if (senderStateBuilder_ == null) { + senderState_ = builderForValue.build(); + } else { + senderStateBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .LiveAudienceState senderState = 8; + */ + public Builder mergeSenderState(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState value) { + if (senderStateBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + senderState_ != null && + senderState_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance()) { + getSenderStateBuilder().mergeFrom(value); + } else { + senderState_ = value; + } + } else { + senderStateBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .LiveAudienceState senderState = 8; + */ + public Builder clearSenderState() { + bitField0_ = (bitField0_ & ~0x00000080); + senderState_ = null; + if (senderStateBuilder_ != null) { + senderStateBuilder_.dispose(); + senderStateBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .LiveAudienceState senderState = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder getSenderStateBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getSenderStateFieldBuilder().getBuilder(); + } + /** + * .LiveAudienceState senderState = 8; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder getSenderStateOrBuilder() { + if (senderStateBuilder_ != null) { + return senderStateBuilder_.getMessageOrBuilder(); + } else { + return senderState_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.getDefaultInstance() : senderState_; + } + } + /** + * .LiveAudienceState senderState = 8; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder> + getSenderStateFieldBuilder() { + if (senderStateBuilder_ == null) { + senderStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceState.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.LiveAudienceStateOrBuilder>( + getSenderState(), + getParentForChildren(), + isClean()); + senderState_ = null; + } + return senderStateBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebCommentFeed) + } + + // @@protoc_insertion_point(class_scope:WebCommentFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebCommentFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedOuterClass.WebCommentFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebCommentFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebCommentFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024WebCommentFeed.proto\032\024SimpleUserInfo.p" + + "roto\032\034WebCommentFeedShowType.proto\032\027Live" + + "AudienceState.proto\"\325\001\n\016WebCommentFeed\022\n" + + "\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.SimpleUserInf" + + "o\022\017\n\007content\030\003 \001(\t\022\022\n\ndeviceHash\030\004 \001(\t\022\020" + + "\n\010sortRank\030\005 \001(\004\022\r\n\005color\030\006 \001(\t\022)\n\010showT" + + "ype\030\007 \001(\0162\027.WebCommentFeedShowType\022\'\n\013se" + + "nderState\030\010 \001(\0132\022.LiveAudienceStateB6\n4t" + + "ech.ordinaryroad.live.chat.client.kuaish" + + "ou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.getDescriptor(), + }); + internal_static_WebCommentFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebCommentFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebCommentFeed_descriptor, + new java.lang.String[] { "Id", "User", "Content", "DeviceHash", "SortRank", "Color", "ShowType", "SenderState", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.LiveAudienceStateOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java new file mode 100644 index 00000000..74cc9385 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebCommentFeedShowTypeOuterClass.java @@ -0,0 +1,180 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebCommentFeedShowType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebCommentFeedShowTypeOuterClass { + private WebCommentFeedShowTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code WebCommentFeedShowType} + */ + public enum WebCommentFeedShowType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * FEED_SHOW_UNKNOWN = 0; + */ + FEED_SHOW_UNKNOWN(0), + /** + * FEED_SHOW_NORMAL = 1; + */ + FEED_SHOW_NORMAL(1), + /** + * FEED_HIDDEN = 2; + */ + FEED_HIDDEN(2), + UNRECOGNIZED(-1), + ; + + /** + * FEED_SHOW_UNKNOWN = 0; + */ + public static final int FEED_SHOW_UNKNOWN_VALUE = 0; + /** + * FEED_SHOW_NORMAL = 1; + */ + public static final int FEED_SHOW_NORMAL_VALUE = 1; + /** + * FEED_HIDDEN = 2; + */ + public static final int FEED_HIDDEN_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static WebCommentFeedShowType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static WebCommentFeedShowType forNumber(int value) { + switch (value) { + case 0: return FEED_SHOW_UNKNOWN; + case 1: return FEED_SHOW_NORMAL; + case 2: return FEED_HIDDEN; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + WebCommentFeedShowType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public WebCommentFeedShowType findValueByNumber(int number) { + return WebCommentFeedShowType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebCommentFeedShowTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final WebCommentFeedShowType[] VALUES = values(); + + public static WebCommentFeedShowType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private WebCommentFeedShowType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebCommentFeedShowType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\034WebCommentFeedShowType.proto*V\n\026WebCom" + + "mentFeedShowType\022\025\n\021FEED_SHOW_UNKNOWN\020\000\022" + + "\024\n\020FEED_SHOW_NORMAL\020\001\022\017\n\013FEED_HIDDEN\020\002B6" + + "\n4tech.ordinaryroad.live.chat.client.kua" + + "ishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java new file mode 100644 index 00000000..4e94afd5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebGiftFeedOuterClass.java @@ -0,0 +1,2305 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebGiftFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebGiftFeedOuterClass { + private WebGiftFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebGiftFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebGiftFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * uint64 time = 3; + * @return The time. + */ + long getTime(); + + /** + * uint32 intGiftId = 4; + * @return The intGiftId. + */ + int getIntGiftId(); + + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + long getSortRank(); + + /** + * string mergeKey = 6; + * @return The mergeKey. + */ + java.lang.String getMergeKey(); + /** + * string mergeKey = 6; + * @return The bytes for mergeKey. + */ + com.google.protobuf.ByteString + getMergeKeyBytes(); + + /** + * uint32 batchSize = 7; + * @return The batchSize. + */ + int getBatchSize(); + + /** + * uint32 comboCount = 8; + * @return The comboCount. + */ + int getComboCount(); + + /** + * uint32 rank = 9; + * @return The rank. + */ + int getRank(); + + /** + * uint64 expireDuration = 10; + * @return The expireDuration. + */ + long getExpireDuration(); + + /** + * uint64 clientTimestamp = 11; + * @return The clientTimestamp. + */ + long getClientTimestamp(); + + /** + * uint64 slotDisplayDuration = 12; + * @return The slotDisplayDuration. + */ + long getSlotDisplayDuration(); + + /** + * uint32 starLevel = 13; + * @return The starLevel. + */ + int getStarLevel(); + + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The enum numeric value on the wire for styleType. + */ + int getStyleTypeValue(); + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The styleType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType(); + + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The enum numeric value on the wire for liveAssistantType. + */ + int getLiveAssistantTypeValue(); + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The liveAssistantType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); + + /** + * string deviceHash = 16; + * @return The deviceHash. + */ + java.lang.String getDeviceHash(); + /** + * string deviceHash = 16; + * @return The bytes for deviceHash. + */ + com.google.protobuf.ByteString + getDeviceHashBytes(); + + /** + * bool danmakuDisplay = 17; + * @return The danmakuDisplay. + */ + boolean getDanmakuDisplay(); + } + /** + * Protobuf type {@code WebGiftFeed} + */ + public static final class WebGiftFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebGiftFeed) + WebGiftFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebGiftFeed.newBuilder() to construct. + private WebGiftFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebGiftFeed() { + id_ = ""; + mergeKey_ = ""; + styleType_ = 0; + liveAssistantType_ = 0; + deviceHash_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebGiftFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder.class); + } + + /** + * Protobuf enum {@code WebGiftFeed.StyleType} + */ + public enum StyleType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_STYLE = 0; + */ + UNKNOWN_STYLE(0), + /** + * BATCH_STAR_0 = 1; + */ + BATCH_STAR_0(1), + /** + * BATCH_STAR_1 = 2; + */ + BATCH_STAR_1(2), + /** + * BATCH_STAR_2 = 3; + */ + BATCH_STAR_2(3), + /** + * BATCH_STAR_3 = 4; + */ + BATCH_STAR_3(4), + /** + * BATCH_STAR_4 = 5; + */ + BATCH_STAR_4(5), + /** + * BATCH_STAR_5 = 6; + */ + BATCH_STAR_5(6), + /** + * BATCH_STAR_6 = 7; + */ + BATCH_STAR_6(7), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_STYLE = 0; + */ + public static final int UNKNOWN_STYLE_VALUE = 0; + /** + * BATCH_STAR_0 = 1; + */ + public static final int BATCH_STAR_0_VALUE = 1; + /** + * BATCH_STAR_1 = 2; + */ + public static final int BATCH_STAR_1_VALUE = 2; + /** + * BATCH_STAR_2 = 3; + */ + public static final int BATCH_STAR_2_VALUE = 3; + /** + * BATCH_STAR_3 = 4; + */ + public static final int BATCH_STAR_3_VALUE = 4; + /** + * BATCH_STAR_4 = 5; + */ + public static final int BATCH_STAR_4_VALUE = 5; + /** + * BATCH_STAR_5 = 6; + */ + public static final int BATCH_STAR_5_VALUE = 6; + /** + * BATCH_STAR_6 = 7; + */ + public static final int BATCH_STAR_6_VALUE = 7; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static StyleType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static StyleType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_STYLE; + case 1: return BATCH_STAR_0; + case 2: return BATCH_STAR_1; + case 3: return BATCH_STAR_2; + case 4: return BATCH_STAR_3; + case 5: return BATCH_STAR_4; + case 6: return BATCH_STAR_5; + case 7: return BATCH_STAR_6; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + StyleType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public StyleType findValueByNumber(int number) { + return StyleType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDescriptor().getEnumTypes().get(0); + } + + private static final StyleType[] VALUES = values(); + + public static StyleType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private StyleType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebGiftFeed.StyleType) + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int TIME_FIELD_NUMBER = 3; + private long time_ = 0L; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int INTGIFTID_FIELD_NUMBER = 4; + private int intGiftId_ = 0; + /** + * uint32 intGiftId = 4; + * @return The intGiftId. + */ + @java.lang.Override + public int getIntGiftId() { + return intGiftId_; + } + + public static final int SORTRANK_FIELD_NUMBER = 5; + private long sortRank_ = 0L; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + + public static final int MERGEKEY_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object mergeKey_ = ""; + /** + * string mergeKey = 6; + * @return The mergeKey. + */ + @java.lang.Override + public java.lang.String getMergeKey() { + java.lang.Object ref = mergeKey_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mergeKey_ = s; + return s; + } + } + /** + * string mergeKey = 6; + * @return The bytes for mergeKey. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMergeKeyBytes() { + java.lang.Object ref = mergeKey_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + mergeKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BATCHSIZE_FIELD_NUMBER = 7; + private int batchSize_ = 0; + /** + * uint32 batchSize = 7; + * @return The batchSize. + */ + @java.lang.Override + public int getBatchSize() { + return batchSize_; + } + + public static final int COMBOCOUNT_FIELD_NUMBER = 8; + private int comboCount_ = 0; + /** + * uint32 comboCount = 8; + * @return The comboCount. + */ + @java.lang.Override + public int getComboCount() { + return comboCount_; + } + + public static final int RANK_FIELD_NUMBER = 9; + private int rank_ = 0; + /** + * uint32 rank = 9; + * @return The rank. + */ + @java.lang.Override + public int getRank() { + return rank_; + } + + public static final int EXPIREDURATION_FIELD_NUMBER = 10; + private long expireDuration_ = 0L; + /** + * uint64 expireDuration = 10; + * @return The expireDuration. + */ + @java.lang.Override + public long getExpireDuration() { + return expireDuration_; + } + + public static final int CLIENTTIMESTAMP_FIELD_NUMBER = 11; + private long clientTimestamp_ = 0L; + /** + * uint64 clientTimestamp = 11; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + + public static final int SLOTDISPLAYDURATION_FIELD_NUMBER = 12; + private long slotDisplayDuration_ = 0L; + /** + * uint64 slotDisplayDuration = 12; + * @return The slotDisplayDuration. + */ + @java.lang.Override + public long getSlotDisplayDuration() { + return slotDisplayDuration_; + } + + public static final int STARLEVEL_FIELD_NUMBER = 13; + private int starLevel_ = 0; + /** + * uint32 starLevel = 13; + * @return The starLevel. + */ + @java.lang.Override + public int getStarLevel() { + return starLevel_; + } + + public static final int STYLETYPE_FIELD_NUMBER = 14; + private int styleType_ = 0; + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The enum numeric value on the wire for styleType. + */ + @java.lang.Override public int getStyleTypeValue() { + return styleType_; + } + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The styleType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.forNumber(styleType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNRECOGNIZED : result; + } + + public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 15; + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The liveAssistantType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + + public static final int DEVICEHASH_FIELD_NUMBER = 16; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 16; + * @return The deviceHash. + */ + @java.lang.Override + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } + } + /** + * string deviceHash = 16; + * @return The bytes for deviceHash. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DANMAKUDISPLAY_FIELD_NUMBER = 17; + private boolean danmakuDisplay_ = false; + /** + * bool danmakuDisplay = 17; + * @return The danmakuDisplay. + */ + @java.lang.Override + public boolean getDanmakuDisplay() { + return danmakuDisplay_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (time_ != 0L) { + output.writeUInt64(3, time_); + } + if (intGiftId_ != 0) { + output.writeUInt32(4, intGiftId_); + } + if (sortRank_ != 0L) { + output.writeUInt64(5, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mergeKey_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mergeKey_); + } + if (batchSize_ != 0) { + output.writeUInt32(7, batchSize_); + } + if (comboCount_ != 0) { + output.writeUInt32(8, comboCount_); + } + if (rank_ != 0) { + output.writeUInt32(9, rank_); + } + if (expireDuration_ != 0L) { + output.writeUInt64(10, expireDuration_); + } + if (clientTimestamp_ != 0L) { + output.writeUInt64(11, clientTimestamp_); + } + if (slotDisplayDuration_ != 0L) { + output.writeUInt64(12, slotDisplayDuration_); + } + if (starLevel_ != 0) { + output.writeUInt32(13, starLevel_); + } + if (styleType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNKNOWN_STYLE.getNumber()) { + output.writeEnum(14, styleType_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + output.writeEnum(15, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 16, deviceHash_); + } + if (danmakuDisplay_ != false) { + output.writeBool(17, danmakuDisplay_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, time_); + } + if (intGiftId_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, intGiftId_); + } + if (sortRank_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mergeKey_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mergeKey_); + } + if (batchSize_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(7, batchSize_); + } + if (comboCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(8, comboCount_); + } + if (rank_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(9, rank_); + } + if (expireDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(10, expireDuration_); + } + if (clientTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(11, clientTimestamp_); + } + if (slotDisplayDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(12, slotDisplayDuration_); + } + if (starLevel_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(13, starLevel_); + } + if (styleType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNKNOWN_STYLE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(14, styleType_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(15, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, deviceHash_); + } + if (danmakuDisplay_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(17, danmakuDisplay_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getTime() + != other.getTime()) return false; + if (getIntGiftId() + != other.getIntGiftId()) return false; + if (getSortRank() + != other.getSortRank()) return false; + if (!getMergeKey() + .equals(other.getMergeKey())) return false; + if (getBatchSize() + != other.getBatchSize()) return false; + if (getComboCount() + != other.getComboCount()) return false; + if (getRank() + != other.getRank()) return false; + if (getExpireDuration() + != other.getExpireDuration()) return false; + if (getClientTimestamp() + != other.getClientTimestamp()) return false; + if (getSlotDisplayDuration() + != other.getSlotDisplayDuration()) return false; + if (getStarLevel() + != other.getStarLevel()) return false; + if (styleType_ != other.styleType_) return false; + if (liveAssistantType_ != other.liveAssistantType_) return false; + if (!getDeviceHash() + .equals(other.getDeviceHash())) return false; + if (getDanmakuDisplay() + != other.getDanmakuDisplay()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + INTGIFTID_FIELD_NUMBER; + hash = (53 * hash) + getIntGiftId(); + hash = (37 * hash) + SORTRANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSortRank()); + hash = (37 * hash) + MERGEKEY_FIELD_NUMBER; + hash = (53 * hash) + getMergeKey().hashCode(); + hash = (37 * hash) + BATCHSIZE_FIELD_NUMBER; + hash = (53 * hash) + getBatchSize(); + hash = (37 * hash) + COMBOCOUNT_FIELD_NUMBER; + hash = (53 * hash) + getComboCount(); + hash = (37 * hash) + RANK_FIELD_NUMBER; + hash = (53 * hash) + getRank(); + hash = (37 * hash) + EXPIREDURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getExpireDuration()); + hash = (37 * hash) + CLIENTTIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getClientTimestamp()); + hash = (37 * hash) + SLOTDISPLAYDURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSlotDisplayDuration()); + hash = (37 * hash) + STARLEVEL_FIELD_NUMBER; + hash = (53 * hash) + getStarLevel(); + hash = (37 * hash) + STYLETYPE_FIELD_NUMBER; + hash = (53 * hash) + styleType_; + hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; + hash = (53 * hash) + liveAssistantType_; + hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; + hash = (53 * hash) + getDeviceHash().hashCode(); + hash = (37 * hash) + DANMAKUDISPLAY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getDanmakuDisplay()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebGiftFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebGiftFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + time_ = 0L; + intGiftId_ = 0; + sortRank_ = 0L; + mergeKey_ = ""; + batchSize_ = 0; + comboCount_ = 0; + rank_ = 0; + expireDuration_ = 0L; + clientTimestamp_ = 0L; + slotDisplayDuration_ = 0L; + starLevel_ = 0; + styleType_ = 0; + liveAssistantType_ = 0; + deviceHash_ = ""; + danmakuDisplay_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.internal_static_WebGiftFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.intGiftId_ = intGiftId_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.sortRank_ = sortRank_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.mergeKey_ = mergeKey_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.batchSize_ = batchSize_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.comboCount_ = comboCount_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.rank_ = rank_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.expireDuration_ = expireDuration_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.clientTimestamp_ = clientTimestamp_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.slotDisplayDuration_ = slotDisplayDuration_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.starLevel_ = starLevel_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.styleType_ = styleType_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.liveAssistantType_ = liveAssistantType_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.deviceHash_ = deviceHash_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.danmakuDisplay_ = danmakuDisplay_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (other.getIntGiftId() != 0) { + setIntGiftId(other.getIntGiftId()); + } + if (other.getSortRank() != 0L) { + setSortRank(other.getSortRank()); + } + if (!other.getMergeKey().isEmpty()) { + mergeKey_ = other.mergeKey_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.getBatchSize() != 0) { + setBatchSize(other.getBatchSize()); + } + if (other.getComboCount() != 0) { + setComboCount(other.getComboCount()); + } + if (other.getRank() != 0) { + setRank(other.getRank()); + } + if (other.getExpireDuration() != 0L) { + setExpireDuration(other.getExpireDuration()); + } + if (other.getClientTimestamp() != 0L) { + setClientTimestamp(other.getClientTimestamp()); + } + if (other.getSlotDisplayDuration() != 0L) { + setSlotDisplayDuration(other.getSlotDisplayDuration()); + } + if (other.getStarLevel() != 0) { + setStarLevel(other.getStarLevel()); + } + if (other.styleType_ != 0) { + setStyleTypeValue(other.getStyleTypeValue()); + } + if (other.liveAssistantType_ != 0) { + setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); + } + if (!other.getDeviceHash().isEmpty()) { + deviceHash_ = other.deviceHash_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (other.getDanmakuDisplay() != false) { + setDanmakuDisplay(other.getDanmakuDisplay()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + intGiftId_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + sortRank_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + mergeKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 56: { + batchSize_ = input.readUInt32(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + comboCount_ = input.readUInt32(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + rank_ = input.readUInt32(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: { + expireDuration_ = input.readUInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + case 88: { + clientTimestamp_ = input.readUInt64(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 96: { + slotDisplayDuration_ = input.readUInt64(); + bitField0_ |= 0x00000800; + break; + } // case 96 + case 104: { + starLevel_ = input.readUInt32(); + bitField0_ |= 0x00001000; + break; + } // case 104 + case 112: { + styleType_ = input.readEnum(); + bitField0_ |= 0x00002000; + break; + } // case 112 + case 120: { + liveAssistantType_ = input.readEnum(); + bitField0_ |= 0x00004000; + break; + } // case 120 + case 130: { + deviceHash_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 130 + case 136: { + danmakuDisplay_ = input.readBool(); + bitField0_ |= 0x00010000; + break; + } // case 136 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long time_ ; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 3; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 time = 3; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000004); + time_ = 0L; + onChanged(); + return this; + } + + private int intGiftId_ ; + /** + * uint32 intGiftId = 4; + * @return The intGiftId. + */ + @java.lang.Override + public int getIntGiftId() { + return intGiftId_; + } + /** + * uint32 intGiftId = 4; + * @param value The intGiftId to set. + * @return This builder for chaining. + */ + public Builder setIntGiftId(int value) { + + intGiftId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 intGiftId = 4; + * @return This builder for chaining. + */ + public Builder clearIntGiftId() { + bitField0_ = (bitField0_ & ~0x00000008); + intGiftId_ = 0; + onChanged(); + return this; + } + + private long sortRank_ ; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + /** + * uint64 sortRank = 5; + * @param value The sortRank to set. + * @return This builder for chaining. + */ + public Builder setSortRank(long value) { + + sortRank_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 sortRank = 5; + * @return This builder for chaining. + */ + public Builder clearSortRank() { + bitField0_ = (bitField0_ & ~0x00000010); + sortRank_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object mergeKey_ = ""; + /** + * string mergeKey = 6; + * @return The mergeKey. + */ + public java.lang.String getMergeKey() { + java.lang.Object ref = mergeKey_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mergeKey_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string mergeKey = 6; + * @return The bytes for mergeKey. + */ + public com.google.protobuf.ByteString + getMergeKeyBytes() { + java.lang.Object ref = mergeKey_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + mergeKey_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string mergeKey = 6; + * @param value The mergeKey to set. + * @return This builder for chaining. + */ + public Builder setMergeKey( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + mergeKey_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string mergeKey = 6; + * @return This builder for chaining. + */ + public Builder clearMergeKey() { + mergeKey_ = getDefaultInstance().getMergeKey(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string mergeKey = 6; + * @param value The bytes for mergeKey to set. + * @return This builder for chaining. + */ + public Builder setMergeKeyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + mergeKey_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private int batchSize_ ; + /** + * uint32 batchSize = 7; + * @return The batchSize. + */ + @java.lang.Override + public int getBatchSize() { + return batchSize_; + } + /** + * uint32 batchSize = 7; + * @param value The batchSize to set. + * @return This builder for chaining. + */ + public Builder setBatchSize(int value) { + + batchSize_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * uint32 batchSize = 7; + * @return This builder for chaining. + */ + public Builder clearBatchSize() { + bitField0_ = (bitField0_ & ~0x00000040); + batchSize_ = 0; + onChanged(); + return this; + } + + private int comboCount_ ; + /** + * uint32 comboCount = 8; + * @return The comboCount. + */ + @java.lang.Override + public int getComboCount() { + return comboCount_; + } + /** + * uint32 comboCount = 8; + * @param value The comboCount to set. + * @return This builder for chaining. + */ + public Builder setComboCount(int value) { + + comboCount_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * uint32 comboCount = 8; + * @return This builder for chaining. + */ + public Builder clearComboCount() { + bitField0_ = (bitField0_ & ~0x00000080); + comboCount_ = 0; + onChanged(); + return this; + } + + private int rank_ ; + /** + * uint32 rank = 9; + * @return The rank. + */ + @java.lang.Override + public int getRank() { + return rank_; + } + /** + * uint32 rank = 9; + * @param value The rank to set. + * @return This builder for chaining. + */ + public Builder setRank(int value) { + + rank_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint32 rank = 9; + * @return This builder for chaining. + */ + public Builder clearRank() { + bitField0_ = (bitField0_ & ~0x00000100); + rank_ = 0; + onChanged(); + return this; + } + + private long expireDuration_ ; + /** + * uint64 expireDuration = 10; + * @return The expireDuration. + */ + @java.lang.Override + public long getExpireDuration() { + return expireDuration_; + } + /** + * uint64 expireDuration = 10; + * @param value The expireDuration to set. + * @return This builder for chaining. + */ + public Builder setExpireDuration(long value) { + + expireDuration_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * uint64 expireDuration = 10; + * @return This builder for chaining. + */ + public Builder clearExpireDuration() { + bitField0_ = (bitField0_ & ~0x00000200); + expireDuration_ = 0L; + onChanged(); + return this; + } + + private long clientTimestamp_ ; + /** + * uint64 clientTimestamp = 11; + * @return The clientTimestamp. + */ + @java.lang.Override + public long getClientTimestamp() { + return clientTimestamp_; + } + /** + * uint64 clientTimestamp = 11; + * @param value The clientTimestamp to set. + * @return This builder for chaining. + */ + public Builder setClientTimestamp(long value) { + + clientTimestamp_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * uint64 clientTimestamp = 11; + * @return This builder for chaining. + */ + public Builder clearClientTimestamp() { + bitField0_ = (bitField0_ & ~0x00000400); + clientTimestamp_ = 0L; + onChanged(); + return this; + } + + private long slotDisplayDuration_ ; + /** + * uint64 slotDisplayDuration = 12; + * @return The slotDisplayDuration. + */ + @java.lang.Override + public long getSlotDisplayDuration() { + return slotDisplayDuration_; + } + /** + * uint64 slotDisplayDuration = 12; + * @param value The slotDisplayDuration to set. + * @return This builder for chaining. + */ + public Builder setSlotDisplayDuration(long value) { + + slotDisplayDuration_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * uint64 slotDisplayDuration = 12; + * @return This builder for chaining. + */ + public Builder clearSlotDisplayDuration() { + bitField0_ = (bitField0_ & ~0x00000800); + slotDisplayDuration_ = 0L; + onChanged(); + return this; + } + + private int starLevel_ ; + /** + * uint32 starLevel = 13; + * @return The starLevel. + */ + @java.lang.Override + public int getStarLevel() { + return starLevel_; + } + /** + * uint32 starLevel = 13; + * @param value The starLevel to set. + * @return This builder for chaining. + */ + public Builder setStarLevel(int value) { + + starLevel_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * uint32 starLevel = 13; + * @return This builder for chaining. + */ + public Builder clearStarLevel() { + bitField0_ = (bitField0_ & ~0x00001000); + starLevel_ = 0; + onChanged(); + return this; + } + + private int styleType_ = 0; + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The enum numeric value on the wire for styleType. + */ + @java.lang.Override public int getStyleTypeValue() { + return styleType_; + } + /** + * .WebGiftFeed.StyleType styleType = 14; + * @param value The enum numeric value on the wire for styleType to set. + * @return This builder for chaining. + */ + public Builder setStyleTypeValue(int value) { + styleType_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return The styleType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType getStyleType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.forNumber(styleType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType.UNRECOGNIZED : result; + } + /** + * .WebGiftFeed.StyleType styleType = 14; + * @param value The styleType to set. + * @return This builder for chaining. + */ + public Builder setStyleType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed.StyleType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00002000; + styleType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebGiftFeed.StyleType styleType = 14; + * @return This builder for chaining. + */ + public Builder clearStyleType() { + bitField0_ = (bitField0_ & ~0x00002000); + styleType_ = 0; + onChanged(); + return this; + } + + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @param value The enum numeric value on the wire for liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantTypeValue(int value) { + liveAssistantType_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return The liveAssistantType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @param value The liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00004000; + liveAssistantType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 15; + * @return This builder for chaining. + */ + public Builder clearLiveAssistantType() { + bitField0_ = (bitField0_ & ~0x00004000); + liveAssistantType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 16; + * @return The deviceHash. + */ + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deviceHash = 16; + * @return The bytes for deviceHash. + */ + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deviceHash = 16; + * @param value The deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHash( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceHash_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * string deviceHash = 16; + * @return This builder for chaining. + */ + public Builder clearDeviceHash() { + deviceHash_ = getDefaultInstance().getDeviceHash(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + /** + * string deviceHash = 16; + * @param value The bytes for deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHashBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceHash_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private boolean danmakuDisplay_ ; + /** + * bool danmakuDisplay = 17; + * @return The danmakuDisplay. + */ + @java.lang.Override + public boolean getDanmakuDisplay() { + return danmakuDisplay_; + } + /** + * bool danmakuDisplay = 17; + * @param value The danmakuDisplay to set. + * @return This builder for chaining. + */ + public Builder setDanmakuDisplay(boolean value) { + + danmakuDisplay_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * bool danmakuDisplay = 17; + * @return This builder for chaining. + */ + public Builder clearDanmakuDisplay() { + bitField0_ = (bitField0_ & ~0x00010000); + danmakuDisplay_ = false; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebGiftFeed) + } + + // @@protoc_insertion_point(class_scope:WebGiftFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebGiftFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass.WebGiftFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebGiftFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebGiftFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021WebGiftFeed.proto\032\024SimpleUserInfo.prot" + + "o\032\032WebLiveAssistantType.proto\"\273\004\n\013WebGif" + + "tFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.Simple" + + "UserInfo\022\014\n\004time\030\003 \001(\004\022\021\n\tintGiftId\030\004 \001(" + + "\r\022\020\n\010sortRank\030\005 \001(\004\022\020\n\010mergeKey\030\006 \001(\t\022\021\n" + + "\tbatchSize\030\007 \001(\r\022\022\n\ncomboCount\030\010 \001(\r\022\014\n\004" + + "rank\030\t \001(\r\022\026\n\016expireDuration\030\n \001(\004\022\027\n\017cl" + + "ientTimestamp\030\013 \001(\004\022\033\n\023slotDisplayDurati" + + "on\030\014 \001(\004\022\021\n\tstarLevel\030\r \001(\r\022)\n\tstyleType" + + "\030\016 \001(\0162\026.WebGiftFeed.StyleType\0220\n\021liveAs" + + "sistantType\030\017 \001(\0162\025.WebLiveAssistantType" + + "\022\022\n\ndeviceHash\030\020 \001(\t\022\026\n\016danmakuDisplay\030\021" + + " \001(\010\"\234\001\n\tStyleType\022\021\n\rUNKNOWN_STYLE\020\000\022\020\n" + + "\014BATCH_STAR_0\020\001\022\020\n\014BATCH_STAR_1\020\002\022\020\n\014BAT" + + "CH_STAR_2\020\003\022\020\n\014BATCH_STAR_3\020\004\022\020\n\014BATCH_S" + + "TAR_4\020\005\022\020\n\014BATCH_STAR_5\020\006\022\020\n\014BATCH_STAR_" + + "6\020\007B6\n4tech.ordinaryroad.live.chat.clien" + + "t.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), + }); + internal_static_WebGiftFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebGiftFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebGiftFeed_descriptor, + new java.lang.String[] { "Id", "User", "Time", "IntGiftId", "SortRank", "MergeKey", "BatchSize", "ComboCount", "Rank", "ExpireDuration", "ClientTimestamp", "SlotDisplayDuration", "StarLevel", "StyleType", "LiveAssistantType", "DeviceHash", "DanmakuDisplay", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java new file mode 100644 index 00000000..67eff240 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLikeFeedOuterClass.java @@ -0,0 +1,1046 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebLikeFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebLikeFeedOuterClass { + private WebLikeFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebLikeFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebLikeFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * uint64 sortRank = 3; + * @return The sortRank. + */ + long getSortRank(); + + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + java.lang.String getDeviceHash(); + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + com.google.protobuf.ByteString + getDeviceHashBytes(); + } + /** + * Protobuf type {@code WebLikeFeed} + */ + public static final class WebLikeFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebLikeFeed) + WebLikeFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebLikeFeed.newBuilder() to construct. + private WebLikeFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebLikeFeed() { + id_ = ""; + deviceHash_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebLikeFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int SORTRANK_FIELD_NUMBER = 3; + private long sortRank_ = 0L; + /** + * uint64 sortRank = 3; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + + public static final int DEVICEHASH_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + @java.lang.Override + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } + } + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (sortRank_ != 0L) { + output.writeUInt64(3, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, deviceHash_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (sortRank_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, sortRank_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, deviceHash_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getSortRank() + != other.getSortRank()) return false; + if (!getDeviceHash() + .equals(other.getDeviceHash())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + SORTRANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSortRank()); + hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; + hash = (53 * hash) + getDeviceHash().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebLikeFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebLikeFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + sortRank_ = 0L; + deviceHash_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.internal_static_WebLikeFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.sortRank_ = sortRank_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.deviceHash_ = deviceHash_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getSortRank() != 0L) { + setSortRank(other.getSortRank()); + } + if (!other.getDeviceHash().isEmpty()) { + deviceHash_ = other.deviceHash_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + sortRank_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + deviceHash_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long sortRank_ ; + /** + * uint64 sortRank = 3; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + /** + * uint64 sortRank = 3; + * @param value The sortRank to set. + * @return This builder for chaining. + */ + public Builder setSortRank(long value) { + + sortRank_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 sortRank = 3; + * @return This builder for chaining. + */ + public Builder clearSortRank() { + bitField0_ = (bitField0_ & ~0x00000004); + sortRank_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 4; + * @return The deviceHash. + */ + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deviceHash = 4; + * @return The bytes for deviceHash. + */ + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deviceHash = 4; + * @param value The deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHash( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceHash_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string deviceHash = 4; + * @return This builder for chaining. + */ + public Builder clearDeviceHash() { + deviceHash_ = getDefaultInstance().getDeviceHash(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string deviceHash = 4; + * @param value The bytes for deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHashBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceHash_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebLikeFeed) + } + + // @@protoc_insertion_point(class_scope:WebLikeFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebLikeFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLikeFeedOuterClass.WebLikeFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebLikeFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebLikeFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021WebLikeFeed.proto\032\024SimpleUserInfo.prot" + + "o\"^\n\013WebLikeFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001" + + "(\0132\017.SimpleUserInfo\022\020\n\010sortRank\030\003 \001(\004\022\022\n" + + "\ndeviceHash\030\004 \001(\tB6\n4tech.ordinaryroad.l" + + "ive.chat.client.kuaishou.protobufb\006proto" + + "3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + }); + internal_static_WebLikeFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebLikeFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebLikeFeed_descriptor, + new java.lang.String[] { "Id", "User", "SortRank", "DeviceHash", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java new file mode 100644 index 00000000..066422c6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebLiveAssistantTypeOuterClass.java @@ -0,0 +1,180 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebLiveAssistantType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebLiveAssistantTypeOuterClass { + private WebLiveAssistantTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code WebLiveAssistantType} + */ + public enum WebLiveAssistantType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_ASSISTANT_TYPE = 0; + */ + UNKNOWN_ASSISTANT_TYPE(0), + /** + * SUPER = 1; + */ + SUPER(1), + /** + * JUNIOR = 2; + */ + JUNIOR(2), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_ASSISTANT_TYPE = 0; + */ + public static final int UNKNOWN_ASSISTANT_TYPE_VALUE = 0; + /** + * SUPER = 1; + */ + public static final int SUPER_VALUE = 1; + /** + * JUNIOR = 2; + */ + public static final int JUNIOR_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static WebLiveAssistantType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static WebLiveAssistantType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_ASSISTANT_TYPE; + case 1: return SUPER; + case 2: return JUNIOR; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + WebLiveAssistantType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public WebLiveAssistantType findValueByNumber(int number) { + return WebLiveAssistantType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final WebLiveAssistantType[] VALUES = values(); + + public static WebLiveAssistantType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private WebLiveAssistantType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebLiveAssistantType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\032WebLiveAssistantType.proto*I\n\024WebLiveA" + + "ssistantType\022\032\n\026UNKNOWN_ASSISTANT_TYPE\020\000" + + "\022\t\n\005SUPER\020\001\022\n\n\006JUNIOR\020\002B6\n4tech.ordinary" + + "road.live.chat.client.kuaishou.protobufb" + + "\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java new file mode 100644 index 00000000..28c8879d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebPauseTypeOuterClass.java @@ -0,0 +1,179 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebPauseType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebPauseTypeOuterClass { + private WebPauseTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code WebPauseType} + */ + public enum WebPauseType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_PAUSE_TYPE = 0; + */ + UNKNOWN_PAUSE_TYPE(0), + /** + * TELEPHONE = 1; + */ + TELEPHONE(1), + /** + * SHARE = 2; + */ + SHARE(2), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_PAUSE_TYPE = 0; + */ + public static final int UNKNOWN_PAUSE_TYPE_VALUE = 0; + /** + * TELEPHONE = 1; + */ + public static final int TELEPHONE_VALUE = 1; + /** + * SHARE = 2; + */ + public static final int SHARE_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static WebPauseType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static WebPauseType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_PAUSE_TYPE; + case 1: return TELEPHONE; + case 2: return SHARE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + WebPauseType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public WebPauseType findValueByNumber(int number) { + return WebPauseType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebPauseTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final WebPauseType[] VALUES = values(); + + public static WebPauseType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private WebPauseType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebPauseType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\022WebPauseType.proto*@\n\014WebPauseType\022\026\n\022" + + "UNKNOWN_PAUSE_TYPE\020\000\022\r\n\tTELEPHONE\020\001\022\t\n\005S" + + "HARE\020\002B6\n4tech.ordinaryroad.live.chat.cl" + + "ient.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java new file mode 100644 index 00000000..6b03df29 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackCoverTypeOuterClass.java @@ -0,0 +1,180 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebRedPackCoverType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebRedPackCoverTypeOuterClass { + private WebRedPackCoverTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code WebRedPackCoverType} + */ + public enum WebRedPackCoverType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_COVER_TYPE = 0; + */ + UNKNOWN_COVER_TYPE(0), + /** + * NORMAL_COVER = 1; + */ + NORMAL_COVER(1), + /** + * PRETTY_COVER = 2; + */ + PRETTY_COVER(2), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_COVER_TYPE = 0; + */ + public static final int UNKNOWN_COVER_TYPE_VALUE = 0; + /** + * NORMAL_COVER = 1; + */ + public static final int NORMAL_COVER_VALUE = 1; + /** + * PRETTY_COVER = 2; + */ + public static final int PRETTY_COVER_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static WebRedPackCoverType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static WebRedPackCoverType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_COVER_TYPE; + case 1: return NORMAL_COVER; + case 2: return PRETTY_COVER; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + WebRedPackCoverType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public WebRedPackCoverType findValueByNumber(int number) { + return WebRedPackCoverType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final WebRedPackCoverType[] VALUES = values(); + + public static WebRedPackCoverType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private WebRedPackCoverType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebRedPackCoverType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\031WebRedPackCoverType.proto*Q\n\023WebRedPac" + + "kCoverType\022\026\n\022UNKNOWN_COVER_TYPE\020\000\022\020\n\014NO" + + "RMAL_COVER\020\001\022\020\n\014PRETTY_COVER\020\002B6\n4tech.o" + + "rdinaryroad.live.chat.client.kuaishou.pr" + + "otobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java new file mode 100644 index 00000000..72ffc45a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebRedPackInfoOuterClass.java @@ -0,0 +1,1522 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebRedPackInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebRedPackInfoOuterClass { + private WebRedPackInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebRedPackInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebRedPackInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo author = 2; + * @return Whether the author field is set. + */ + boolean hasAuthor(); + /** + * .SimpleUserInfo author = 2; + * @return The author. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor(); + /** + * .SimpleUserInfo author = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder(); + + /** + * uint64 balance = 3; + * @return The balance. + */ + long getBalance(); + + /** + * uint64 openTime = 4; + * @return The openTime. + */ + long getOpenTime(); + + /** + * uint64 currentTime = 5; + * @return The currentTime. + */ + long getCurrentTime(); + + /** + * string grabToken = 6; + * @return The grabToken. + */ + java.lang.String getGrabToken(); + /** + * string grabToken = 6; + * @return The bytes for grabToken. + */ + com.google.protobuf.ByteString + getGrabTokenBytes(); + + /** + * bool needSendRequest = 7; + * @return The needSendRequest. + */ + boolean getNeedSendRequest(); + + /** + * uint64 requestDelayMillis = 8; + * @return The requestDelayMillis. + */ + long getRequestDelayMillis(); + + /** + * uint64 luckiestDelayMillis = 9; + * @return The luckiestDelayMillis. + */ + long getLuckiestDelayMillis(); + + /** + * .WebRedPackCoverType coverType = 10; + * @return The enum numeric value on the wire for coverType. + */ + int getCoverTypeValue(); + /** + * .WebRedPackCoverType coverType = 10; + * @return The coverType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType(); + } + /** + * Protobuf type {@code WebRedPackInfo} + */ + public static final class WebRedPackInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebRedPackInfo) + WebRedPackInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebRedPackInfo.newBuilder() to construct. + private WebRedPackInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebRedPackInfo() { + id_ = ""; + grabToken_ = ""; + coverType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebRedPackInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AUTHOR_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo author_; + /** + * .SimpleUserInfo author = 2; + * @return Whether the author field is set. + */ + @java.lang.Override + public boolean hasAuthor() { + return author_ != null; + } + /** + * .SimpleUserInfo author = 2; + * @return The author. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor() { + return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; + } + /** + * .SimpleUserInfo author = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder() { + return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; + } + + public static final int BALANCE_FIELD_NUMBER = 3; + private long balance_ = 0L; + /** + * uint64 balance = 3; + * @return The balance. + */ + @java.lang.Override + public long getBalance() { + return balance_; + } + + public static final int OPENTIME_FIELD_NUMBER = 4; + private long openTime_ = 0L; + /** + * uint64 openTime = 4; + * @return The openTime. + */ + @java.lang.Override + public long getOpenTime() { + return openTime_; + } + + public static final int CURRENTTIME_FIELD_NUMBER = 5; + private long currentTime_ = 0L; + /** + * uint64 currentTime = 5; + * @return The currentTime. + */ + @java.lang.Override + public long getCurrentTime() { + return currentTime_; + } + + public static final int GRABTOKEN_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object grabToken_ = ""; + /** + * string grabToken = 6; + * @return The grabToken. + */ + @java.lang.Override + public java.lang.String getGrabToken() { + java.lang.Object ref = grabToken_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + grabToken_ = s; + return s; + } + } + /** + * string grabToken = 6; + * @return The bytes for grabToken. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGrabTokenBytes() { + java.lang.Object ref = grabToken_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + grabToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NEEDSENDREQUEST_FIELD_NUMBER = 7; + private boolean needSendRequest_ = false; + /** + * bool needSendRequest = 7; + * @return The needSendRequest. + */ + @java.lang.Override + public boolean getNeedSendRequest() { + return needSendRequest_; + } + + public static final int REQUESTDELAYMILLIS_FIELD_NUMBER = 8; + private long requestDelayMillis_ = 0L; + /** + * uint64 requestDelayMillis = 8; + * @return The requestDelayMillis. + */ + @java.lang.Override + public long getRequestDelayMillis() { + return requestDelayMillis_; + } + + public static final int LUCKIESTDELAYMILLIS_FIELD_NUMBER = 9; + private long luckiestDelayMillis_ = 0L; + /** + * uint64 luckiestDelayMillis = 9; + * @return The luckiestDelayMillis. + */ + @java.lang.Override + public long getLuckiestDelayMillis() { + return luckiestDelayMillis_; + } + + public static final int COVERTYPE_FIELD_NUMBER = 10; + private int coverType_ = 0; + /** + * .WebRedPackCoverType coverType = 10; + * @return The enum numeric value on the wire for coverType. + */ + @java.lang.Override public int getCoverTypeValue() { + return coverType_; + } + /** + * .WebRedPackCoverType coverType = 10; + * @return The coverType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.forNumber(coverType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (author_ != null) { + output.writeMessage(2, getAuthor()); + } + if (balance_ != 0L) { + output.writeUInt64(3, balance_); + } + if (openTime_ != 0L) { + output.writeUInt64(4, openTime_); + } + if (currentTime_ != 0L) { + output.writeUInt64(5, currentTime_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(grabToken_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 6, grabToken_); + } + if (needSendRequest_ != false) { + output.writeBool(7, needSendRequest_); + } + if (requestDelayMillis_ != 0L) { + output.writeUInt64(8, requestDelayMillis_); + } + if (luckiestDelayMillis_ != 0L) { + output.writeUInt64(9, luckiestDelayMillis_); + } + if (coverType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNKNOWN_COVER_TYPE.getNumber()) { + output.writeEnum(10, coverType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (author_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getAuthor()); + } + if (balance_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, balance_); + } + if (openTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(4, openTime_); + } + if (currentTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, currentTime_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(grabToken_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, grabToken_); + } + if (needSendRequest_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(7, needSendRequest_); + } + if (requestDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(8, requestDelayMillis_); + } + if (luckiestDelayMillis_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(9, luckiestDelayMillis_); + } + if (coverType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNKNOWN_COVER_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(10, coverType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasAuthor() != other.hasAuthor()) return false; + if (hasAuthor()) { + if (!getAuthor() + .equals(other.getAuthor())) return false; + } + if (getBalance() + != other.getBalance()) return false; + if (getOpenTime() + != other.getOpenTime()) return false; + if (getCurrentTime() + != other.getCurrentTime()) return false; + if (!getGrabToken() + .equals(other.getGrabToken())) return false; + if (getNeedSendRequest() + != other.getNeedSendRequest()) return false; + if (getRequestDelayMillis() + != other.getRequestDelayMillis()) return false; + if (getLuckiestDelayMillis() + != other.getLuckiestDelayMillis()) return false; + if (coverType_ != other.coverType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasAuthor()) { + hash = (37 * hash) + AUTHOR_FIELD_NUMBER; + hash = (53 * hash) + getAuthor().hashCode(); + } + hash = (37 * hash) + BALANCE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getBalance()); + hash = (37 * hash) + OPENTIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getOpenTime()); + hash = (37 * hash) + CURRENTTIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getCurrentTime()); + hash = (37 * hash) + GRABTOKEN_FIELD_NUMBER; + hash = (53 * hash) + getGrabToken().hashCode(); + hash = (37 * hash) + NEEDSENDREQUEST_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNeedSendRequest()); + hash = (37 * hash) + REQUESTDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRequestDelayMillis()); + hash = (37 * hash) + LUCKIESTDELAYMILLIS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getLuckiestDelayMillis()); + hash = (37 * hash) + COVERTYPE_FIELD_NUMBER; + hash = (53 * hash) + coverType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebRedPackInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebRedPackInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + author_ = null; + if (authorBuilder_ != null) { + authorBuilder_.dispose(); + authorBuilder_ = null; + } + balance_ = 0L; + openTime_ = 0L; + currentTime_ = 0L; + grabToken_ = ""; + needSendRequest_ = false; + requestDelayMillis_ = 0L; + luckiestDelayMillis_ = 0L; + coverType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.internal_static_WebRedPackInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.author_ = authorBuilder_ == null + ? author_ + : authorBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.balance_ = balance_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.openTime_ = openTime_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.currentTime_ = currentTime_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.grabToken_ = grabToken_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.needSendRequest_ = needSendRequest_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.requestDelayMillis_ = requestDelayMillis_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.luckiestDelayMillis_ = luckiestDelayMillis_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.coverType_ = coverType_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasAuthor()) { + mergeAuthor(other.getAuthor()); + } + if (other.getBalance() != 0L) { + setBalance(other.getBalance()); + } + if (other.getOpenTime() != 0L) { + setOpenTime(other.getOpenTime()); + } + if (other.getCurrentTime() != 0L) { + setCurrentTime(other.getCurrentTime()); + } + if (!other.getGrabToken().isEmpty()) { + grabToken_ = other.grabToken_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (other.getNeedSendRequest() != false) { + setNeedSendRequest(other.getNeedSendRequest()); + } + if (other.getRequestDelayMillis() != 0L) { + setRequestDelayMillis(other.getRequestDelayMillis()); + } + if (other.getLuckiestDelayMillis() != 0L) { + setLuckiestDelayMillis(other.getLuckiestDelayMillis()); + } + if (other.coverType_ != 0) { + setCoverTypeValue(other.getCoverTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getAuthorFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + balance_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + openTime_ = input.readUInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + currentTime_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + grabToken_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 56: { + needSendRequest_ = input.readBool(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + requestDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000080; + break; + } // case 64 + case 72: { + luckiestDelayMillis_ = input.readUInt64(); + bitField0_ |= 0x00000100; + break; + } // case 72 + case 80: { + coverType_ = input.readEnum(); + bitField0_ |= 0x00000200; + break; + } // case 80 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo author_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> authorBuilder_; + /** + * .SimpleUserInfo author = 2; + * @return Whether the author field is set. + */ + public boolean hasAuthor() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo author = 2; + * @return The author. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getAuthor() { + if (authorBuilder_ == null) { + return author_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; + } else { + return authorBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo author = 2; + */ + public Builder setAuthor(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (authorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + author_ = value; + } else { + authorBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo author = 2; + */ + public Builder setAuthor( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (authorBuilder_ == null) { + author_ = builderForValue.build(); + } else { + authorBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo author = 2; + */ + public Builder mergeAuthor(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (authorBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + author_ != null && + author_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getAuthorBuilder().mergeFrom(value); + } else { + author_ = value; + } + } else { + authorBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo author = 2; + */ + public Builder clearAuthor() { + bitField0_ = (bitField0_ & ~0x00000002); + author_ = null; + if (authorBuilder_ != null) { + authorBuilder_.dispose(); + authorBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo author = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getAuthorBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getAuthorFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo author = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getAuthorOrBuilder() { + if (authorBuilder_ != null) { + return authorBuilder_.getMessageOrBuilder(); + } else { + return author_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : author_; + } + } + /** + * .SimpleUserInfo author = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getAuthorFieldBuilder() { + if (authorBuilder_ == null) { + authorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getAuthor(), + getParentForChildren(), + isClean()); + author_ = null; + } + return authorBuilder_; + } + + private long balance_ ; + /** + * uint64 balance = 3; + * @return The balance. + */ + @java.lang.Override + public long getBalance() { + return balance_; + } + /** + * uint64 balance = 3; + * @param value The balance to set. + * @return This builder for chaining. + */ + public Builder setBalance(long value) { + + balance_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 balance = 3; + * @return This builder for chaining. + */ + public Builder clearBalance() { + bitField0_ = (bitField0_ & ~0x00000004); + balance_ = 0L; + onChanged(); + return this; + } + + private long openTime_ ; + /** + * uint64 openTime = 4; + * @return The openTime. + */ + @java.lang.Override + public long getOpenTime() { + return openTime_; + } + /** + * uint64 openTime = 4; + * @param value The openTime to set. + * @return This builder for chaining. + */ + public Builder setOpenTime(long value) { + + openTime_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint64 openTime = 4; + * @return This builder for chaining. + */ + public Builder clearOpenTime() { + bitField0_ = (bitField0_ & ~0x00000008); + openTime_ = 0L; + onChanged(); + return this; + } + + private long currentTime_ ; + /** + * uint64 currentTime = 5; + * @return The currentTime. + */ + @java.lang.Override + public long getCurrentTime() { + return currentTime_; + } + /** + * uint64 currentTime = 5; + * @param value The currentTime to set. + * @return This builder for chaining. + */ + public Builder setCurrentTime(long value) { + + currentTime_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 currentTime = 5; + * @return This builder for chaining. + */ + public Builder clearCurrentTime() { + bitField0_ = (bitField0_ & ~0x00000010); + currentTime_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object grabToken_ = ""; + /** + * string grabToken = 6; + * @return The grabToken. + */ + public java.lang.String getGrabToken() { + java.lang.Object ref = grabToken_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + grabToken_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string grabToken = 6; + * @return The bytes for grabToken. + */ + public com.google.protobuf.ByteString + getGrabTokenBytes() { + java.lang.Object ref = grabToken_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + grabToken_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string grabToken = 6; + * @param value The grabToken to set. + * @return This builder for chaining. + */ + public Builder setGrabToken( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + grabToken_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string grabToken = 6; + * @return This builder for chaining. + */ + public Builder clearGrabToken() { + grabToken_ = getDefaultInstance().getGrabToken(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string grabToken = 6; + * @param value The bytes for grabToken to set. + * @return This builder for chaining. + */ + public Builder setGrabTokenBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + grabToken_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private boolean needSendRequest_ ; + /** + * bool needSendRequest = 7; + * @return The needSendRequest. + */ + @java.lang.Override + public boolean getNeedSendRequest() { + return needSendRequest_; + } + /** + * bool needSendRequest = 7; + * @param value The needSendRequest to set. + * @return This builder for chaining. + */ + public Builder setNeedSendRequest(boolean value) { + + needSendRequest_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * bool needSendRequest = 7; + * @return This builder for chaining. + */ + public Builder clearNeedSendRequest() { + bitField0_ = (bitField0_ & ~0x00000040); + needSendRequest_ = false; + onChanged(); + return this; + } + + private long requestDelayMillis_ ; + /** + * uint64 requestDelayMillis = 8; + * @return The requestDelayMillis. + */ + @java.lang.Override + public long getRequestDelayMillis() { + return requestDelayMillis_; + } + /** + * uint64 requestDelayMillis = 8; + * @param value The requestDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setRequestDelayMillis(long value) { + + requestDelayMillis_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * uint64 requestDelayMillis = 8; + * @return This builder for chaining. + */ + public Builder clearRequestDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000080); + requestDelayMillis_ = 0L; + onChanged(); + return this; + } + + private long luckiestDelayMillis_ ; + /** + * uint64 luckiestDelayMillis = 9; + * @return The luckiestDelayMillis. + */ + @java.lang.Override + public long getLuckiestDelayMillis() { + return luckiestDelayMillis_; + } + /** + * uint64 luckiestDelayMillis = 9; + * @param value The luckiestDelayMillis to set. + * @return This builder for chaining. + */ + public Builder setLuckiestDelayMillis(long value) { + + luckiestDelayMillis_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * uint64 luckiestDelayMillis = 9; + * @return This builder for chaining. + */ + public Builder clearLuckiestDelayMillis() { + bitField0_ = (bitField0_ & ~0x00000100); + luckiestDelayMillis_ = 0L; + onChanged(); + return this; + } + + private int coverType_ = 0; + /** + * .WebRedPackCoverType coverType = 10; + * @return The enum numeric value on the wire for coverType. + */ + @java.lang.Override public int getCoverTypeValue() { + return coverType_; + } + /** + * .WebRedPackCoverType coverType = 10; + * @param value The enum numeric value on the wire for coverType to set. + * @return This builder for chaining. + */ + public Builder setCoverTypeValue(int value) { + coverType_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * .WebRedPackCoverType coverType = 10; + * @return The coverType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType getCoverType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.forNumber(coverType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType.UNRECOGNIZED : result; + } + /** + * .WebRedPackCoverType coverType = 10; + * @param value The coverType to set. + * @return This builder for chaining. + */ + public Builder setCoverType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.WebRedPackCoverType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000200; + coverType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebRedPackCoverType coverType = 10; + * @return This builder for chaining. + */ + public Builder clearCoverType() { + bitField0_ = (bitField0_ & ~0x00000200); + coverType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebRedPackInfo) + } + + // @@protoc_insertion_point(class_scope:WebRedPackInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebRedPackInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackInfoOuterClass.WebRedPackInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebRedPackInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebRedPackInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024WebRedPackInfo.proto\032\024SimpleUserInfo.p" + + "roto\032\031WebRedPackCoverType.proto\"\203\002\n\016WebR" + + "edPackInfo\022\n\n\002id\030\001 \001(\t\022\037\n\006author\030\002 \001(\0132\017" + + ".SimpleUserInfo\022\017\n\007balance\030\003 \001(\004\022\020\n\010open" + + "Time\030\004 \001(\004\022\023\n\013currentTime\030\005 \001(\004\022\021\n\tgrabT" + + "oken\030\006 \001(\t\022\027\n\017needSendRequest\030\007 \001(\010\022\032\n\022r" + + "equestDelayMillis\030\010 \001(\004\022\033\n\023luckiestDelay" + + "Millis\030\t \001(\004\022\'\n\tcoverType\030\n \001(\0162\024.WebRed" + + "PackCoverTypeB6\n4tech.ordinaryroad.live." + + "chat.client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor(), + }); + internal_static_WebRedPackInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebRedPackInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebRedPackInfo_descriptor, + new java.lang.String[] { "Id", "Author", "Balance", "OpenTime", "CurrentTime", "GrabToken", "NeedSendRequest", "RequestDelayMillis", "LuckiestDelayMillis", "CoverType", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebRedPackCoverTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java new file mode 100644 index 00000000..97d78171 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebShareFeedOuterClass.java @@ -0,0 +1,1301 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebShareFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebShareFeedOuterClass { + private WebShareFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebShareFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebShareFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * uint64 time = 3; + * @return The time. + */ + long getTime(); + + /** + * uint32 thirdPartyPlatform = 4; + * @return The thirdPartyPlatform. + */ + int getThirdPartyPlatform(); + + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + long getSortRank(); + + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The enum numeric value on the wire for liveAssistantType. + */ + int getLiveAssistantTypeValue(); + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The liveAssistantType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); + + /** + * string deviceHash = 7; + * @return The deviceHash. + */ + java.lang.String getDeviceHash(); + /** + * string deviceHash = 7; + * @return The bytes for deviceHash. + */ + com.google.protobuf.ByteString + getDeviceHashBytes(); + } + /** + * Protobuf type {@code WebShareFeed} + */ + public static final class WebShareFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebShareFeed) + WebShareFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebShareFeed.newBuilder() to construct. + private WebShareFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebShareFeed() { + id_ = ""; + liveAssistantType_ = 0; + deviceHash_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebShareFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder.class); + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int TIME_FIELD_NUMBER = 3; + private long time_ = 0L; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int THIRDPARTYPLATFORM_FIELD_NUMBER = 4; + private int thirdPartyPlatform_ = 0; + /** + * uint32 thirdPartyPlatform = 4; + * @return The thirdPartyPlatform. + */ + @java.lang.Override + public int getThirdPartyPlatform() { + return thirdPartyPlatform_; + } + + public static final int SORTRANK_FIELD_NUMBER = 5; + private long sortRank_ = 0L; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + + public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 6; + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The liveAssistantType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + + public static final int DEVICEHASH_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 7; + * @return The deviceHash. + */ + @java.lang.Override + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } + } + /** + * string deviceHash = 7; + * @return The bytes for deviceHash. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (time_ != 0L) { + output.writeUInt64(3, time_); + } + if (thirdPartyPlatform_ != 0) { + output.writeUInt32(4, thirdPartyPlatform_); + } + if (sortRank_ != 0L) { + output.writeUInt64(5, sortRank_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + output.writeEnum(6, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 7, deviceHash_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, time_); + } + if (thirdPartyPlatform_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(4, thirdPartyPlatform_); + } + if (sortRank_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, sortRank_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(6, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceHash_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, deviceHash_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getTime() + != other.getTime()) return false; + if (getThirdPartyPlatform() + != other.getThirdPartyPlatform()) return false; + if (getSortRank() + != other.getSortRank()) return false; + if (liveAssistantType_ != other.liveAssistantType_) return false; + if (!getDeviceHash() + .equals(other.getDeviceHash())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + THIRDPARTYPLATFORM_FIELD_NUMBER; + hash = (53 * hash) + getThirdPartyPlatform(); + hash = (37 * hash) + SORTRANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSortRank()); + hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; + hash = (53 * hash) + liveAssistantType_; + hash = (37 * hash) + DEVICEHASH_FIELD_NUMBER; + hash = (53 * hash) + getDeviceHash().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebShareFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebShareFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + time_ = 0L; + thirdPartyPlatform_ = 0; + sortRank_ = 0L; + liveAssistantType_ = 0; + deviceHash_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.internal_static_WebShareFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.thirdPartyPlatform_ = thirdPartyPlatform_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.sortRank_ = sortRank_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.liveAssistantType_ = liveAssistantType_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.deviceHash_ = deviceHash_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (other.getThirdPartyPlatform() != 0) { + setThirdPartyPlatform(other.getThirdPartyPlatform()); + } + if (other.getSortRank() != 0L) { + setSortRank(other.getSortRank()); + } + if (other.liveAssistantType_ != 0) { + setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); + } + if (!other.getDeviceHash().isEmpty()) { + deviceHash_ = other.deviceHash_; + bitField0_ |= 0x00000040; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + thirdPartyPlatform_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + sortRank_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + liveAssistantType_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + deviceHash_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long time_ ; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 3; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 time = 3; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000004); + time_ = 0L; + onChanged(); + return this; + } + + private int thirdPartyPlatform_ ; + /** + * uint32 thirdPartyPlatform = 4; + * @return The thirdPartyPlatform. + */ + @java.lang.Override + public int getThirdPartyPlatform() { + return thirdPartyPlatform_; + } + /** + * uint32 thirdPartyPlatform = 4; + * @param value The thirdPartyPlatform to set. + * @return This builder for chaining. + */ + public Builder setThirdPartyPlatform(int value) { + + thirdPartyPlatform_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * uint32 thirdPartyPlatform = 4; + * @return This builder for chaining. + */ + public Builder clearThirdPartyPlatform() { + bitField0_ = (bitField0_ & ~0x00000008); + thirdPartyPlatform_ = 0; + onChanged(); + return this; + } + + private long sortRank_ ; + /** + * uint64 sortRank = 5; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + /** + * uint64 sortRank = 5; + * @param value The sortRank to set. + * @return This builder for chaining. + */ + public Builder setSortRank(long value) { + + sortRank_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 sortRank = 5; + * @return This builder for chaining. + */ + public Builder clearSortRank() { + bitField0_ = (bitField0_ & ~0x00000010); + sortRank_ = 0L; + onChanged(); + return this; + } + + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @param value The enum numeric value on the wire for liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantTypeValue(int value) { + liveAssistantType_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return The liveAssistantType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @param value The liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + liveAssistantType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 6; + * @return This builder for chaining. + */ + public Builder clearLiveAssistantType() { + bitField0_ = (bitField0_ & ~0x00000020); + liveAssistantType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object deviceHash_ = ""; + /** + * string deviceHash = 7; + * @return The deviceHash. + */ + public java.lang.String getDeviceHash() { + java.lang.Object ref = deviceHash_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceHash_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string deviceHash = 7; + * @return The bytes for deviceHash. + */ + public com.google.protobuf.ByteString + getDeviceHashBytes() { + java.lang.Object ref = deviceHash_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceHash_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string deviceHash = 7; + * @param value The deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHash( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceHash_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string deviceHash = 7; + * @return This builder for chaining. + */ + public Builder clearDeviceHash() { + deviceHash_ = getDefaultInstance().getDeviceHash(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string deviceHash = 7; + * @param value The bytes for deviceHash to set. + * @return This builder for chaining. + */ + public Builder setDeviceHashBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceHash_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebShareFeed) + } + + // @@protoc_insertion_point(class_scope:WebShareFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebShareFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebShareFeedOuterClass.WebShareFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebShareFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebShareFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\022WebShareFeed.proto\032\024SimpleUserInfo.pro" + + "to\032\032WebLiveAssistantType.proto\"\273\001\n\014WebSh" + + "areFeed\022\n\n\002id\030\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.Simp" + + "leUserInfo\022\014\n\004time\030\003 \001(\004\022\032\n\022thirdPartyPl" + + "atform\030\004 \001(\r\022\020\n\010sortRank\030\005 \001(\004\0220\n\021liveAs" + + "sistantType\030\006 \001(\0162\025.WebLiveAssistantType" + + "\022\022\n\ndeviceHash\030\007 \001(\tB6\n4tech.ordinaryroa" + + "d.live.chat.client.kuaishou.protobufb\006pr" + + "oto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), + }); + internal_static_WebShareFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebShareFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebShareFeed_descriptor, + new java.lang.String[] { "Id", "User", "Time", "ThirdPartyPlatform", "SortRank", "LiveAssistantType", "DeviceHash", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java new file mode 100644 index 00000000..b633443c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebSystemNoticeFeedOuterClass.java @@ -0,0 +1,1427 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebSystemNoticeFeed.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebSystemNoticeFeedOuterClass { + private WebSystemNoticeFeedOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebSystemNoticeFeedOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebSystemNoticeFeed) + com.google.protobuf.MessageOrBuilder { + + /** + * string id = 1; + * @return The id. + */ + java.lang.String getId(); + /** + * string id = 1; + * @return The bytes for id. + */ + com.google.protobuf.ByteString + getIdBytes(); + + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 2; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * uint64 time = 3; + * @return The time. + */ + long getTime(); + + /** + * string content = 4; + * @return The content. + */ + java.lang.String getContent(); + /** + * string content = 4; + * @return The bytes for content. + */ + com.google.protobuf.ByteString + getContentBytes(); + + /** + * uint64 displayDuration = 5; + * @return The displayDuration. + */ + long getDisplayDuration(); + + /** + * uint64 sortRank = 6; + * @return The sortRank. + */ + long getSortRank(); + + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The enum numeric value on the wire for displayType. + */ + int getDisplayTypeValue(); + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The displayType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType(); + } + /** + * Protobuf type {@code WebSystemNoticeFeed} + */ + public static final class WebSystemNoticeFeed extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebSystemNoticeFeed) + WebSystemNoticeFeedOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebSystemNoticeFeed.newBuilder() to construct. + private WebSystemNoticeFeed(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebSystemNoticeFeed() { + id_ = ""; + content_ = ""; + displayType_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebSystemNoticeFeed(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder.class); + } + + /** + * Protobuf enum {@code WebSystemNoticeFeed.DisplayType} + */ + public enum DisplayType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_DISPLAY_TYPE = 0; + */ + UNKNOWN_DISPLAY_TYPE(0), + /** + * COMMENT = 1; + */ + COMMENT(1), + /** + * ALERT = 2; + */ + ALERT(2), + /** + * TOAST = 3; + */ + TOAST(3), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_DISPLAY_TYPE = 0; + */ + public static final int UNKNOWN_DISPLAY_TYPE_VALUE = 0; + /** + * COMMENT = 1; + */ + public static final int COMMENT_VALUE = 1; + /** + * ALERT = 2; + */ + public static final int ALERT_VALUE = 2; + /** + * TOAST = 3; + */ + public static final int TOAST_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DisplayType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DisplayType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_DISPLAY_TYPE; + case 1: return COMMENT; + case 2: return ALERT; + case 3: return TOAST; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + DisplayType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public DisplayType findValueByNumber(int number) { + return DisplayType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDescriptor().getEnumTypes().get(0); + } + + private static final DisplayType[] VALUES = values(); + + public static DisplayType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DisplayType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebSystemNoticeFeed.DisplayType) + } + + public static final int ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + @java.lang.Override + public java.lang.String getId() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_FIELD_NUMBER = 2; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 2; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int TIME_FIELD_NUMBER = 3; + private long time_ = 0L; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + + public static final int CONTENT_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object content_ = ""; + /** + * string content = 4; + * @return The content. + */ + @java.lang.Override + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } + } + /** + * string content = 4; + * @return The bytes for content. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DISPLAYDURATION_FIELD_NUMBER = 5; + private long displayDuration_ = 0L; + /** + * uint64 displayDuration = 5; + * @return The displayDuration. + */ + @java.lang.Override + public long getDisplayDuration() { + return displayDuration_; + } + + public static final int SORTRANK_FIELD_NUMBER = 6; + private long sortRank_ = 0L; + /** + * uint64 sortRank = 6; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + + public static final int DISPLAYTYPE_FIELD_NUMBER = 7; + private int displayType_ = 0; + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The enum numeric value on the wire for displayType. + */ + @java.lang.Override public int getDisplayTypeValue() { + return displayType_; + } + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The displayType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.forNumber(displayType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); + } + if (user_ != null) { + output.writeMessage(2, getUser()); + } + if (time_ != 0L) { + output.writeUInt64(3, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, content_); + } + if (displayDuration_ != 0L) { + output.writeUInt64(5, displayDuration_); + } + if (sortRank_ != 0L) { + output.writeUInt64(6, sortRank_); + } + if (displayType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNKNOWN_DISPLAY_TYPE.getNumber()) { + output.writeEnum(7, displayType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); + } + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getUser()); + } + if (time_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(3, time_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(content_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, content_); + } + if (displayDuration_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(5, displayDuration_); + } + if (sortRank_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeUInt64Size(6, sortRank_); + } + if (displayType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNKNOWN_DISPLAY_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(7, displayType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed) obj; + + if (!getId() + .equals(other.getId())) return false; + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getTime() + != other.getTime()) return false; + if (!getContent() + .equals(other.getContent())) return false; + if (getDisplayDuration() + != other.getDisplayDuration()) return false; + if (getSortRank() + != other.getSortRank()) return false; + if (displayType_ != other.displayType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTime()); + hash = (37 * hash) + CONTENT_FIELD_NUMBER; + hash = (53 * hash) + getContent().hashCode(); + hash = (37 * hash) + DISPLAYDURATION_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getDisplayDuration()); + hash = (37 * hash) + SORTRANK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getSortRank()); + hash = (37 * hash) + DISPLAYTYPE_FIELD_NUMBER; + hash = (53 * hash) + displayType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebSystemNoticeFeed} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebSystemNoticeFeed) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + id_ = ""; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + time_ = 0L; + content_ = ""; + displayDuration_ = 0L; + sortRank_ = 0L; + displayType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.internal_static_WebSystemNoticeFeed_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.id_ = id_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.time_ = time_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.content_ = content_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.displayDuration_ = displayDuration_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.sortRank_ = sortRank_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.displayType_ = displayType_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.getDefaultInstance()) return this; + if (!other.getId().isEmpty()) { + id_ = other.id_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getTime() != 0L) { + setTime(other.getTime()); + } + if (!other.getContent().isEmpty()) { + content_ = other.content_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (other.getDisplayDuration() != 0L) { + setDisplayDuration(other.getDisplayDuration()); + } + if (other.getSortRank() != 0L) { + setSortRank(other.getSortRank()); + } + if (other.displayType_ != 0) { + setDisplayTypeValue(other.getDisplayTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + id_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + time_ = input.readUInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + content_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 40: { + displayDuration_ = input.readUInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + sortRank_ = input.readUInt64(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + displayType_ = input.readEnum(); + bitField0_ |= 0x00000040; + break; + } // case 56 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object id_ = ""; + /** + * string id = 1; + * @return The id. + */ + public java.lang.String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + id_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string id = 1; + * @return The bytes for id. + */ + public com.google.protobuf.ByteString + getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string id = 1; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string id = 1; + * @return This builder for chaining. + */ + public Builder clearId() { + id_ = getDefaultInstance().getId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string id = 1; + * @param value The bytes for id to set. + * @return This builder for chaining. + */ + public Builder setIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + id_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 2; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .SimpleUserInfo user = 2; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000002); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 2; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private long time_ ; + /** + * uint64 time = 3; + * @return The time. + */ + @java.lang.Override + public long getTime() { + return time_; + } + /** + * uint64 time = 3; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(long value) { + + time_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * uint64 time = 3; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000004); + time_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object content_ = ""; + /** + * string content = 4; + * @return The content. + */ + public java.lang.String getContent() { + java.lang.Object ref = content_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + content_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string content = 4; + * @return The bytes for content. + */ + public com.google.protobuf.ByteString + getContentBytes() { + java.lang.Object ref = content_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + content_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string content = 4; + * @param value The content to set. + * @return This builder for chaining. + */ + public Builder setContent( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + content_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string content = 4; + * @return This builder for chaining. + */ + public Builder clearContent() { + content_ = getDefaultInstance().getContent(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string content = 4; + * @param value The bytes for content to set. + * @return This builder for chaining. + */ + public Builder setContentBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + content_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private long displayDuration_ ; + /** + * uint64 displayDuration = 5; + * @return The displayDuration. + */ + @java.lang.Override + public long getDisplayDuration() { + return displayDuration_; + } + /** + * uint64 displayDuration = 5; + * @param value The displayDuration to set. + * @return This builder for chaining. + */ + public Builder setDisplayDuration(long value) { + + displayDuration_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * uint64 displayDuration = 5; + * @return This builder for chaining. + */ + public Builder clearDisplayDuration() { + bitField0_ = (bitField0_ & ~0x00000010); + displayDuration_ = 0L; + onChanged(); + return this; + } + + private long sortRank_ ; + /** + * uint64 sortRank = 6; + * @return The sortRank. + */ + @java.lang.Override + public long getSortRank() { + return sortRank_; + } + /** + * uint64 sortRank = 6; + * @param value The sortRank to set. + * @return This builder for chaining. + */ + public Builder setSortRank(long value) { + + sortRank_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * uint64 sortRank = 6; + * @return This builder for chaining. + */ + public Builder clearSortRank() { + bitField0_ = (bitField0_ & ~0x00000020); + sortRank_ = 0L; + onChanged(); + return this; + } + + private int displayType_ = 0; + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The enum numeric value on the wire for displayType. + */ + @java.lang.Override public int getDisplayTypeValue() { + return displayType_; + } + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @param value The enum numeric value on the wire for displayType to set. + * @return This builder for chaining. + */ + public Builder setDisplayTypeValue(int value) { + displayType_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return The displayType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType getDisplayType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.forNumber(displayType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType.UNRECOGNIZED : result; + } + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @param value The displayType to set. + * @return This builder for chaining. + */ + public Builder setDisplayType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed.DisplayType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000040; + displayType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebSystemNoticeFeed.DisplayType displayType = 7; + * @return This builder for chaining. + */ + public Builder clearDisplayType() { + bitField0_ = (bitField0_ & ~0x00000040); + displayType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebSystemNoticeFeed) + } + + // @@protoc_insertion_point(class_scope:WebSystemNoticeFeed) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebSystemNoticeFeed parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebSystemNoticeFeedOuterClass.WebSystemNoticeFeed getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebSystemNoticeFeed_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebSystemNoticeFeed_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\031WebSystemNoticeFeed.proto\032\024SimpleUserI" + + "nfo.proto\"\215\002\n\023WebSystemNoticeFeed\022\n\n\002id\030" + + "\001 \001(\t\022\035\n\004user\030\002 \001(\0132\017.SimpleUserInfo\022\014\n\004" + + "time\030\003 \001(\004\022\017\n\007content\030\004 \001(\t\022\027\n\017displayDu" + + "ration\030\005 \001(\004\022\020\n\010sortRank\030\006 \001(\004\0225\n\013displa" + + "yType\030\007 \001(\0162 .WebSystemNoticeFeed.Displa" + + "yType\"J\n\013DisplayType\022\030\n\024UNKNOWN_DISPLAY_" + + "TYPE\020\000\022\013\n\007COMMENT\020\001\022\t\n\005ALERT\020\002\022\t\n\005TOAST\020" + + "\003B6\n4tech.ordinaryroad.live.chat.client." + + "kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + }); + internal_static_WebSystemNoticeFeed_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebSystemNoticeFeed_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebSystemNoticeFeed_descriptor, + new java.lang.String[] { "Id", "User", "Time", "Content", "DisplayDuration", "SortRank", "DisplayType", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java new file mode 100644 index 00000000..e86bfabf --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebUserPauseTypeOuterClass.java @@ -0,0 +1,170 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebUserPauseType.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebUserPauseTypeOuterClass { + private WebUserPauseTypeOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code WebUserPauseType} + */ + public enum WebUserPauseType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_USER_PAUSE_TYPE = 0; + */ + UNKNOWN_USER_PAUSE_TYPE(0), + /** + * BACKGROUND = 1; + */ + BACKGROUND(1), + UNRECOGNIZED(-1), + ; + + /** + * UNKNOWN_USER_PAUSE_TYPE = 0; + */ + public static final int UNKNOWN_USER_PAUSE_TYPE_VALUE = 0; + /** + * BACKGROUND = 1; + */ + public static final int BACKGROUND_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static WebUserPauseType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static WebUserPauseType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_USER_PAUSE_TYPE; + case 1: return BACKGROUND; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + WebUserPauseType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public WebUserPauseType findValueByNumber(int number) { + return WebUserPauseType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebUserPauseTypeOuterClass.getDescriptor().getEnumTypes().get(0); + } + + private static final WebUserPauseType[] VALUES = values(); + + public static WebUserPauseType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private WebUserPauseType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:WebUserPauseType) + } + + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026WebUserPauseType.proto*?\n\020WebUserPause" + + "Type\022\033\n\027UNKNOWN_USER_PAUSE_TYPE\020\000\022\016\n\nBAC" + + "KGROUND\020\001B6\n4tech.ordinaryroad.live.chat" + + ".client.kuaishou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java new file mode 100644 index 00000000..15e9bb2e --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/java/tech/ordinaryroad/live/chat/client/kuaishou/protobuf/WebWatchingUserInfoOuterClass.java @@ -0,0 +1,1080 @@ +/* + * MIT License + * + * Copyright (c) 2023 OrdinaryRoad + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: WebWatchingUserInfo.proto + +package tech.ordinaryroad.live.chat.client.kuaishou.protobuf; + +public final class WebWatchingUserInfoOuterClass { + private WebWatchingUserInfoOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface WebWatchingUserInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:WebWatchingUserInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * .SimpleUserInfo user = 1; + * @return Whether the user field is set. + */ + boolean hasUser(); + /** + * .SimpleUserInfo user = 1; + * @return The user. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser(); + /** + * .SimpleUserInfo user = 1; + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder(); + + /** + * bool offline = 2; + * @return The offline. + */ + boolean getOffline(); + + /** + * bool tuhao = 3; + * @return The tuhao. + */ + boolean getTuhao(); + + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The enum numeric value on the wire for liveAssistantType. + */ + int getLiveAssistantTypeValue(); + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The liveAssistantType. + */ + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType(); + + /** + * string displayKsCoin = 5; + * @return The displayKsCoin. + */ + java.lang.String getDisplayKsCoin(); + /** + * string displayKsCoin = 5; + * @return The bytes for displayKsCoin. + */ + com.google.protobuf.ByteString + getDisplayKsCoinBytes(); + } + /** + * Protobuf type {@code WebWatchingUserInfo} + */ + public static final class WebWatchingUserInfo extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:WebWatchingUserInfo) + WebWatchingUserInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use WebWatchingUserInfo.newBuilder() to construct. + private WebWatchingUserInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private WebWatchingUserInfo() { + liveAssistantType_ = 0; + displayKsCoin_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WebWatchingUserInfo(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder.class); + } + + public static final int USER_FIELD_NUMBER = 1; + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + /** + * .SimpleUserInfo user = 1; + * @return Whether the user field is set. + */ + @java.lang.Override + public boolean hasUser() { + return user_ != null; + } + /** + * .SimpleUserInfo user = 1; + * @return The user. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + /** + * .SimpleUserInfo user = 1; + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + + public static final int OFFLINE_FIELD_NUMBER = 2; + private boolean offline_ = false; + /** + * bool offline = 2; + * @return The offline. + */ + @java.lang.Override + public boolean getOffline() { + return offline_; + } + + public static final int TUHAO_FIELD_NUMBER = 3; + private boolean tuhao_ = false; + /** + * bool tuhao = 3; + * @return The tuhao. + */ + @java.lang.Override + public boolean getTuhao() { + return tuhao_; + } + + public static final int LIVEASSISTANTTYPE_FIELD_NUMBER = 4; + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The liveAssistantType. + */ + @java.lang.Override public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + + public static final int DISPLAYKSCOIN_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object displayKsCoin_ = ""; + /** + * string displayKsCoin = 5; + * @return The displayKsCoin. + */ + @java.lang.Override + public java.lang.String getDisplayKsCoin() { + java.lang.Object ref = displayKsCoin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayKsCoin_ = s; + return s; + } + } + /** + * string displayKsCoin = 5; + * @return The bytes for displayKsCoin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayKsCoinBytes() { + java.lang.Object ref = displayKsCoin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayKsCoin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (user_ != null) { + output.writeMessage(1, getUser()); + } + if (offline_ != false) { + output.writeBool(2, offline_); + } + if (tuhao_ != false) { + output.writeBool(3, tuhao_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + output.writeEnum(4, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayKsCoin_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, displayKsCoin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (user_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getUser()); + } + if (offline_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, offline_); + } + if (tuhao_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, tuhao_); + } + if (liveAssistantType_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNKNOWN_ASSISTANT_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, liveAssistantType_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(displayKsCoin_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, displayKsCoin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo)) { + return super.equals(obj); + } + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo other = (tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo) obj; + + if (hasUser() != other.hasUser()) return false; + if (hasUser()) { + if (!getUser() + .equals(other.getUser())) return false; + } + if (getOffline() + != other.getOffline()) return false; + if (getTuhao() + != other.getTuhao()) return false; + if (liveAssistantType_ != other.liveAssistantType_) return false; + if (!getDisplayKsCoin() + .equals(other.getDisplayKsCoin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasUser()) { + hash = (37 * hash) + USER_FIELD_NUMBER; + hash = (53 * hash) + getUser().hashCode(); + } + hash = (37 * hash) + OFFLINE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getOffline()); + hash = (37 * hash) + TUHAO_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getTuhao()); + hash = (37 * hash) + LIVEASSISTANTTYPE_FIELD_NUMBER; + hash = (53 * hash) + liveAssistantType_; + hash = (37 * hash) + DISPLAYKSCOIN_FIELD_NUMBER; + hash = (53 * hash) + getDisplayKsCoin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code WebWatchingUserInfo} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:WebWatchingUserInfo) + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.class, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.Builder.class); + } + + // Construct using tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + offline_ = false; + tuhao_ = false; + liveAssistantType_ = 0; + displayKsCoin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.internal_static_WebWatchingUserInfo_descriptor; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstanceForType() { + return tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance(); + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo build() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo buildPartial() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.user_ = userBuilder_ == null + ? user_ + : userBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.offline_ = offline_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.tuhao_ = tuhao_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.liveAssistantType_ = liveAssistantType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.displayKsCoin_ = displayKsCoin_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo) { + return mergeFrom((tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo other) { + if (other == tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo.getDefaultInstance()) return this; + if (other.hasUser()) { + mergeUser(other.getUser()); + } + if (other.getOffline() != false) { + setOffline(other.getOffline()); + } + if (other.getTuhao() != false) { + setTuhao(other.getTuhao()); + } + if (other.liveAssistantType_ != 0) { + setLiveAssistantTypeValue(other.getLiveAssistantTypeValue()); + } + if (!other.getDisplayKsCoin().isEmpty()) { + displayKsCoin_ = other.displayKsCoin_; + bitField0_ |= 0x00000010; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getUserFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + offline_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + tuhao_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + liveAssistantType_ = input.readEnum(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 42: { + displayKsCoin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo user_; + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> userBuilder_; + /** + * .SimpleUserInfo user = 1; + * @return Whether the user field is set. + */ + public boolean hasUser() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .SimpleUserInfo user = 1; + * @return The user. + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo getUser() { + if (userBuilder_ == null) { + return user_ == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } else { + return userBuilder_.getMessage(); + } + } + /** + * .SimpleUserInfo user = 1; + */ + public Builder setUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + user_ = value; + } else { + userBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 1; + */ + public Builder setUser( + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder builderForValue) { + if (userBuilder_ == null) { + user_ = builderForValue.build(); + } else { + userBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 1; + */ + public Builder mergeUser(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo value) { + if (userBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + user_ != null && + user_ != tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance()) { + getUserBuilder().mergeFrom(value); + } else { + user_ = value; + } + } else { + userBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 1; + */ + public Builder clearUser() { + bitField0_ = (bitField0_ & ~0x00000001); + user_ = null; + if (userBuilder_ != null) { + userBuilder_.dispose(); + userBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .SimpleUserInfo user = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder getUserBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getUserFieldBuilder().getBuilder(); + } + /** + * .SimpleUserInfo user = 1; + */ + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder getUserOrBuilder() { + if (userBuilder_ != null) { + return userBuilder_.getMessageOrBuilder(); + } else { + return user_ == null ? + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.getDefaultInstance() : user_; + } + } + /** + * .SimpleUserInfo user = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder> + getUserFieldBuilder() { + if (userBuilder_ == null) { + userBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfo.Builder, tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.SimpleUserInfoOrBuilder>( + getUser(), + getParentForChildren(), + isClean()); + user_ = null; + } + return userBuilder_; + } + + private boolean offline_ ; + /** + * bool offline = 2; + * @return The offline. + */ + @java.lang.Override + public boolean getOffline() { + return offline_; + } + /** + * bool offline = 2; + * @param value The offline to set. + * @return This builder for chaining. + */ + public Builder setOffline(boolean value) { + + offline_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool offline = 2; + * @return This builder for chaining. + */ + public Builder clearOffline() { + bitField0_ = (bitField0_ & ~0x00000002); + offline_ = false; + onChanged(); + return this; + } + + private boolean tuhao_ ; + /** + * bool tuhao = 3; + * @return The tuhao. + */ + @java.lang.Override + public boolean getTuhao() { + return tuhao_; + } + /** + * bool tuhao = 3; + * @param value The tuhao to set. + * @return This builder for chaining. + */ + public Builder setTuhao(boolean value) { + + tuhao_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool tuhao = 3; + * @return This builder for chaining. + */ + public Builder clearTuhao() { + bitField0_ = (bitField0_ & ~0x00000004); + tuhao_ = false; + onChanged(); + return this; + } + + private int liveAssistantType_ = 0; + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The enum numeric value on the wire for liveAssistantType. + */ + @java.lang.Override public int getLiveAssistantTypeValue() { + return liveAssistantType_; + } + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @param value The enum numeric value on the wire for liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantTypeValue(int value) { + liveAssistantType_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return The liveAssistantType. + */ + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType getLiveAssistantType() { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType result = tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.forNumber(liveAssistantType_); + return result == null ? tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType.UNRECOGNIZED : result; + } + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @param value The liveAssistantType to set. + * @return This builder for chaining. + */ + public Builder setLiveAssistantType(tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.WebLiveAssistantType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + liveAssistantType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .WebLiveAssistantType liveAssistantType = 4; + * @return This builder for chaining. + */ + public Builder clearLiveAssistantType() { + bitField0_ = (bitField0_ & ~0x00000008); + liveAssistantType_ = 0; + onChanged(); + return this; + } + + private java.lang.Object displayKsCoin_ = ""; + /** + * string displayKsCoin = 5; + * @return The displayKsCoin. + */ + public java.lang.String getDisplayKsCoin() { + java.lang.Object ref = displayKsCoin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayKsCoin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string displayKsCoin = 5; + * @return The bytes for displayKsCoin. + */ + public com.google.protobuf.ByteString + getDisplayKsCoinBytes() { + java.lang.Object ref = displayKsCoin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayKsCoin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string displayKsCoin = 5; + * @param value The displayKsCoin to set. + * @return This builder for chaining. + */ + public Builder setDisplayKsCoin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayKsCoin_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string displayKsCoin = 5; + * @return This builder for chaining. + */ + public Builder clearDisplayKsCoin() { + displayKsCoin_ = getDefaultInstance().getDisplayKsCoin(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string displayKsCoin = 5; + * @param value The bytes for displayKsCoin to set. + * @return This builder for chaining. + */ + public Builder setDisplayKsCoinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayKsCoin_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:WebWatchingUserInfo) + } + + // @@protoc_insertion_point(class_scope:WebWatchingUserInfo) + private static final tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo(); + } + + public static tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WebWatchingUserInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebWatchingUserInfoOuterClass.WebWatchingUserInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_WebWatchingUserInfo_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_WebWatchingUserInfo_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\031WebWatchingUserInfo.proto\032\024SimpleUserI" + + "nfo.proto\032\032WebLiveAssistantType.proto\"\235\001" + + "\n\023WebWatchingUserInfo\022\035\n\004user\030\001 \001(\0132\017.Si" + + "mpleUserInfo\022\017\n\007offline\030\002 \001(\010\022\r\n\005tuhao\030\003" + + " \001(\010\0220\n\021liveAssistantType\030\004 \001(\0162\025.WebLiv" + + "eAssistantType\022\025\n\rdisplayKsCoin\030\005 \001(\tB6\n" + + "4tech.ordinaryroad.live.chat.client.kuai" + + "shou.protobufb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(), + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(), + }); + internal_static_WebWatchingUserInfo_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_WebWatchingUserInfo_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WebWatchingUserInfo_descriptor, + new java.lang.String[] { "User", "Offline", "Tuhao", "LiveAssistantType", "DisplayKsCoin", }); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.SimpleUserInfoOuterClass.getDescriptor(); + tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebLiveAssistantTypeOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto new file mode 100644 index 00000000..8ffa40ce --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/AuditAudienceMask.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +import "LiveCdnNodeView.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message AuditAudienceMask { + repeated LiveCdnNodeView iconCdnNodeView = 1; + string title = 2; + string detail = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto new file mode 100644 index 00000000..0e179c2b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSError.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSError { + uint32 code = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto new file mode 100644 index 00000000..0b379093 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSHeartbeat.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSHeartbeat { + uint64 timestamp = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto new file mode 100644 index 00000000..a7b66fbd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSPing.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +import "ClientId.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSPing { + string echoData = 1; + ClientId clientId = 2; + string deviceId = 3; + string appVer = 4; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto new file mode 100644 index 00000000..3b88423c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebEnterRoom.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSWebEnterRoom { + string token = 1; + string liveStreamId = 2; + uint32 reconnectCount = 3; + uint32 lastErrorCode = 4; + string expTag = 5; + string attach = 6; + string pageId = 7; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto new file mode 100644 index 00000000..e49d4d4a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebError.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSWebError { + uint32 code = 1; + string msg = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto new file mode 100644 index 00000000..bde62487 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebHeartbeat.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSWebHeartbeat { + uint64 timestamp = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto new file mode 100644 index 00000000..348f3aa0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserExit.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSWebUserExit { + uint64 time = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto new file mode 100644 index 00000000..5987e019 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/CSWebUserPause.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "WebUserPauseType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message CSWebUserPause { + uint64 time = 1; + WebUserPauseType pauseType = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto new file mode 100644 index 00000000..5ec34ad7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ClientId.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum ClientId { + NONE = 0; + IPHONE = 1; + ANDROID = 2; + WEB = 3; + PC = 6; + IPHONE_LIVE_MATE = 8; + ANDROID_LIVE_MATE = 9; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto new file mode 100644 index 00000000..efb3507a --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchItem.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "ConfigSwitchType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message ConfigSwitchItem { + ConfigSwitchType configSwitchType = 1; + bool value = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto new file mode 100644 index 00000000..3fa75b87 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/ConfigSwitchType.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum ConfigSwitchType { + UNKNOWN = 0; + HIDE_BARRAGE = 1; + HIDE_SPECIAL_EFFECT = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto new file mode 100644 index 00000000..b8212e74 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/GzoneNameplate.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +import "PicUrl.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message GzoneNameplate { + int64 id = 1; + string name = 2; + repeated PicUrl urls = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto new file mode 100644 index 00000000..79c06361 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveAudienceState.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +import "GzoneNameplate.proto"; +import "LiveFansGroupState.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message LiveAudienceState { + bool isFromFansTop = 1; + bool isKoi = 2; + AssistantType assistantType = 3; + uint32 fansGroupIntimacyLevel = 4; + GzoneNameplate nameplate = 5; + LiveFansGroupState liveFansGroupState = 6; + uint32 wealthGrade = 7; + string badgeKey = 8; + +enum AssistantType { + UNKNOWN_ASSISTANT_TYPE = 0; + SUPER = 1; + JUNIOR = 2; +} +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto new file mode 100644 index 00000000..495eb9e7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveCdnNodeView.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message LiveCdnNodeView { + string cdn = 1; + string url = 2; + bool freeTraffic = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto new file mode 100644 index 00000000..107d4fd4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/LiveFansGroupState.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message LiveFansGroupState { + uint32 intimacyLevel = 1; + uint32 enterRoomSpecialEffect = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto new file mode 100644 index 00000000..1eb30422 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PSHostInfo.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message PSHostInfo { + string ip = 1; + int32 port = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto new file mode 100644 index 00000000..05eafc26 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PayloadType.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum PayloadType { + UNKNOWN = 0; + CS_HEARTBEAT = 1; + CS_ERROR = 3; + CS_PING = 4; + PS_HOST_INFO = 51; + SC_HEARTBEAT_ACK = 101; + SC_ECHO = 102; + SC_ERROR = 103; + SC_PING_ACK = 104; + SC_INFO = 105; + CS_ENTER_ROOM = 200; + CS_USER_PAUSE = 201; + CS_USER_EXIT = 202; + CS_AUTHOR_PUSH_TRAFFIC_ZERO = 203; + CS_HORSE_RACING = 204; + CS_RACE_LOSE = 205; + CS_VOIP_SIGNAL = 206; + SC_ENTER_ROOM_ACK = 300; + SC_AUTHOR_PAUSE = 301; + SC_AUTHOR_RESUME = 302; + SC_AUTHOR_PUSH_TRAFFIC_ZERO = 303; + SC_AUTHOR_HEARTBEAT_MISS = 304; + SC_PIP_STARTED = 305; + SC_PIP_ENDED = 306; + SC_HORSE_RACING_ACK = 307; + SC_VOIP_SIGNAL = 308; + SC_FEED_PUSH = 310; + SC_ASSISTANT_STATUS = 311; + SC_REFRESH_WALLET = 312; + SC_LIVE_CHAT_CALL = 320; + SC_LIVE_CHAT_CALL_ACCEPTED = 321; + SC_LIVE_CHAT_CALL_REJECTED = 322; + SC_LIVE_CHAT_READY = 323; + SC_LIVE_CHAT_GUEST_END = 324; + SC_LIVE_CHAT_ENDED = 325; + SC_RENDERING_MAGIC_FACE_DISABLE = 326; + SC_RENDERING_MAGIC_FACE_ENABLE = 327; + SC_RED_PACK_FEED = 330; + SC_LIVE_WATCHING_LIST = 340; + SC_LIVE_QUIZ_QUESTION_ASKED = 350; + SC_LIVE_QUIZ_QUESTION_REVIEWED = 351; + SC_LIVE_QUIZ_SYNC = 352; + SC_LIVE_QUIZ_ENDED = 353; + SC_LIVE_QUIZ_WINNERS = 354; + SC_SUSPECTED_VIOLATION = 355; + SC_SHOP_OPENED = 360; + SC_SHOP_CLOSED = 361; + SC_GUESS_OPENED = 370; + SC_GUESS_CLOSED = 371; + SC_PK_INVITATION = 380; + SC_PK_STATISTIC = 381; + SC_RIDDLE_OPENED = 390; + SC_RIDDLE_CLOESED = 391; + SC_RIDE_CHANGED = 412; + SC_BET_CHANGED = 441; + SC_BET_CLOSED = 442; + SC_LIVE_SPECIAL_ACCOUNT_CONFIG_STATE = 645; + SC_LIVE_WARNING_MASK_STATUS_CHANGED_AUDIENCE = 758; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto new file mode 100644 index 00000000..891fea72 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/PicUrl.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message PicUrl { + string cdn = 1; + string url = 2; + string urlPattern = 3; + string ip = 4; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto new file mode 100644 index 00000000..6682ba66 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCEcho.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCEcho { + string content = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto new file mode 100644 index 00000000..c9010285 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCError.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCError { + uint32 code = 1; + string msg = 2; + uint32 subCode = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto new file mode 100644 index 00000000..9242e934 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCHeartbeatAck.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCHeartbeatAck { + uint64 timestamp = 1; + uint64 clientTimestamp = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto new file mode 100644 index 00000000..3099f775 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCInfo.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCInfo { + uint32 code = 1; + string msg = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto new file mode 100644 index 00000000..ebceb655 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCLiveWarningMaskStatusChangedAudience.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "AuditAudienceMask.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCLiveWarningMaskStatusChangedAudience { + bool displayMask = 1; + AuditAudienceMask warningMask = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto new file mode 100644 index 00000000..202a86a6 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCPingAck.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCPingAck { + string echoData = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto new file mode 100644 index 00000000..7beb4e68 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorPause.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "WebPauseType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebAuthorPause { + uint64 time = 1; + WebPauseType pauseType = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto new file mode 100644 index 00000000..fdeae3a9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebAuthorResume.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebAuthorResume { + uint64 time = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto new file mode 100644 index 00000000..a8b58cba --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetChanged.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebBetChanged { + uint64 maxDelayMillis = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto new file mode 100644 index 00000000..dec4c1de --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebBetClosed.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebBetClosed { + uint64 maxDelayMillis = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto new file mode 100644 index 00000000..64b9a41b --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebCurrentRedPackFeed.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +import "WebRedPackInfo.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebCurrentRedPackFeed { + repeated WebRedPackInfo redPack = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto new file mode 100644 index 00000000..8885071c --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebEnterRoomAck.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebEnterRoomAck { + uint64 minReconnectMs = 1; + uint64 maxReconnectMs = 2; + uint64 heartbeatIntervalMs = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto new file mode 100644 index 00000000..7bc86441 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebError.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebError { + uint32 code = 1; + string msg = 2; + uint32 subCode = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto new file mode 100644 index 00000000..c7c41d1d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebFeedPush.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +import "WebCommentFeed.proto"; +import "WebComboCommentFeed.proto"; +import "WebLikeFeed.proto"; +import "WebGiftFeed.proto"; +import "WebSystemNoticeFeed.proto"; +import "WebShareFeed.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebFeedPush { + string displayWatchingCount = 1; + string displayLikeCount = 2; + uint64 pendingLikeCount = 3; + uint64 pushInterval = 4; + repeated WebCommentFeed commentFeeds = 5; + string commentCursor = 6; + repeated WebComboCommentFeed comboCommentFeed = 7; + repeated WebLikeFeed likeFeeds = 8; + repeated WebGiftFeed giftFeeds = 9; + string giftCursor = 10; + repeated WebSystemNoticeFeed systemNoticeFeeds = 11; + repeated WebShareFeed shareFeeds = 12; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto new file mode 100644 index 00000000..53e3f635 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessClosed.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebGuessClosed { + uint64 time = 1; + string guessId = 2; + uint64 displayMaxDelayMillis = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto new file mode 100644 index 00000000..d46f065d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebGuessOpened.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebGuessOpened { + uint64 time = 1; + string guessId = 2; + uint64 submitDeadline = 3; + uint64 displayMaxDelayMillis = 4; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto new file mode 100644 index 00000000..6a6e32be --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebHeartbeatAck.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebHeartbeatAck { + uint64 timestamp = 1; + uint64 clientTimestamp = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto new file mode 100644 index 00000000..bd2b5fe2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveSpecialAccountConfigState.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +import "ConfigSwitchItem.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebLiveSpecialAccountConfigState { + repeated ConfigSwitchItem configSwitchItem = 1; + uint64 timestamp = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto new file mode 100644 index 00000000..c8381735 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebLiveWatchingUsers.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; +import "WebWatchingUserInfo.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebLiveWatchingUsers { + repeated WebWatchingUserInfo watchingUser = 1; + string displayWatchingCount = 2; + uint64 pendingDuration = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto new file mode 100644 index 00000000..1fb073d8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipEnded.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebPipEnded { + uint64 time = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto new file mode 100644 index 00000000..5693a3d1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebPipStarted.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebPipStarted { + uint64 time = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto new file mode 100644 index 00000000..f51c5390 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRefreshWallet.proto @@ -0,0 +1,8 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebRefreshWallet { + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto new file mode 100644 index 00000000..2c31e7be --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebRideChanged.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebRideChanged { + string rideId = 1; + uint32 requestMaxDelayMillis = 2; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto new file mode 100644 index 00000000..a2541043 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SCWebSuspectedViolation.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SCWebSuspectedViolation { + bool suspectedViolation = 1; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto new file mode 100644 index 00000000..cff3feaa --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SimpleUserInfo.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SimpleUserInfo { + string principalId = 1; + string userName = 2; + string headUrl = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto new file mode 100644 index 00000000..f75cfed3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/SocketMessage.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +import "PayloadType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message SocketMessage { + PayloadType payloadType = 1; + CompressionType compressionType = 2; + bytes payload = 3; + +enum CompressionType { + UNKNOWN = 0; + NONE = 1; + GZIP = 2; + AES = 3; +} +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto new file mode 100644 index 00000000..5609492f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/UserInfo.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +import "PicUrl.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message UserInfo { + uint64 userId = 1; + string userName = 2; + string userGender = 3; + string userText = 4; + repeated PicUrl headUrls = 5; + bool verified = 6; + string sUserId = 7; + repeated PicUrl httpsHeadUrls = 8; + string kwaiId = 9; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto new file mode 100644 index 00000000..1ee68ca5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebComboCommentFeed.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebComboCommentFeed { + string id = 1; + string content = 2; + uint32 comboCount = 3; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto new file mode 100644 index 00000000..19c776ba --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeed.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; +import "WebCommentFeedShowType.proto"; +import "LiveAudienceState.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebCommentFeed { + string id = 1; + SimpleUserInfo user = 2; + string content = 3; + string deviceHash = 4; + uint64 sortRank = 5; + string color = 6; + WebCommentFeedShowType showType = 7; + LiveAudienceState senderState = 8; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto new file mode 100644 index 00000000..7f11ee4d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebCommentFeedShowType.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum WebCommentFeedShowType { + FEED_SHOW_UNKNOWN = 0; + FEED_SHOW_NORMAL = 1; + FEED_HIDDEN = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto new file mode 100644 index 00000000..0ff3c6cd --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebGiftFeed.proto @@ -0,0 +1,36 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; +import "WebLiveAssistantType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebGiftFeed { + string id = 1; + SimpleUserInfo user = 2; + uint64 time = 3; + uint32 intGiftId = 4; + uint64 sortRank = 5; + string mergeKey = 6; + uint32 batchSize = 7; + uint32 comboCount = 8; + uint32 rank = 9; + uint64 expireDuration = 10; + uint64 clientTimestamp = 11; + uint64 slotDisplayDuration = 12; + uint32 starLevel = 13; + StyleType styleType = 14; + WebLiveAssistantType liveAssistantType = 15; + string deviceHash = 16; + bool danmakuDisplay = 17; + +enum StyleType { + UNKNOWN_STYLE = 0; + BATCH_STAR_0 = 1; + BATCH_STAR_1 = 2; + BATCH_STAR_2 = 3; + BATCH_STAR_3 = 4; + BATCH_STAR_4 = 5; + BATCH_STAR_5 = 6; + BATCH_STAR_6 = 7; +} +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto new file mode 100644 index 00000000..ebcd99ea --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLikeFeed.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebLikeFeed { + string id = 1; + SimpleUserInfo user = 2; + uint64 sortRank = 3; + string deviceHash = 4; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto new file mode 100644 index 00000000..dc7c85f4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebLiveAssistantType.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum WebLiveAssistantType { + UNKNOWN_ASSISTANT_TYPE = 0; + SUPER = 1; + JUNIOR = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto new file mode 100644 index 00000000..c190e09f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebPauseType.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum WebPauseType { + UNKNOWN_PAUSE_TYPE = 0; + TELEPHONE = 1; + SHARE = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto new file mode 100644 index 00000000..25bc6a59 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackCoverType.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum WebRedPackCoverType { + UNKNOWN_COVER_TYPE = 0; + NORMAL_COVER = 1; + PRETTY_COVER = 2; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto new file mode 100644 index 00000000..c99aac40 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebRedPackInfo.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; +import "WebRedPackCoverType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebRedPackInfo { + string id = 1; + SimpleUserInfo author = 2; + uint64 balance = 3; + uint64 openTime = 4; + uint64 currentTime = 5; + string grabToken = 6; + bool needSendRequest = 7; + uint64 requestDelayMillis = 8; + uint64 luckiestDelayMillis = 9; + WebRedPackCoverType coverType = 10; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto new file mode 100644 index 00000000..9e829a3f --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebShareFeed.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; +import "WebLiveAssistantType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebShareFeed { + string id = 1; + SimpleUserInfo user = 2; + uint64 time = 3; + uint32 thirdPartyPlatform = 4; + uint64 sortRank = 5; + WebLiveAssistantType liveAssistantType = 6; + string deviceHash = 7; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto new file mode 100644 index 00000000..a6a5ae20 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebSystemNoticeFeed.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebSystemNoticeFeed { + string id = 1; + SimpleUserInfo user = 2; + uint64 time = 3; + string content = 4; + uint64 displayDuration = 5; + uint64 sortRank = 6; + DisplayType displayType = 7; + +enum DisplayType { + UNKNOWN_DISPLAY_TYPE = 0; + COMMENT = 1; + ALERT = 2; + TOAST = 3; +} +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto new file mode 100644 index 00000000..9f3d2843 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebUserPauseType.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +enum WebUserPauseType { + UNKNOWN_USER_PAUSE_TYPE = 0; + BACKGROUND = 1; +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto new file mode 100644 index 00000000..ad6a10ae --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/main/resources/proto/WebWatchingUserInfo.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +import "SimpleUserInfo.proto"; +import "WebLiveAssistantType.proto"; + +option java_package = "tech.ordinaryroad.live.chat.client.kuaishou.protobuf"; + +message WebWatchingUserInfo { + SimpleUserInfo user = 1; + bool offline = 2; + bool tuhao = 3; + WebLiveAssistantType liveAssistantType = 4; + string displayKsCoin = 5; + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java new file mode 100644 index 00000000..db2fa9eb --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java @@ -0,0 +1,40 @@ +package tech.ordinaryroad.live.chat.client.kuaishou.api; + +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +/** + * @author mjz + * @date 2024/1/6 + */ +class KuaishouApisTest { + + @Test + void allgifts() { + Map allgifts = KuaishouApis.allgifts(); + assertNotEquals(0, allgifts.size()); + } + + @Test + void getGiftInfoById() { + KuaishouApis.GiftInfo giftInfoById = KuaishouApis.getGiftInfoById("1"); + assertEquals("荧光棒", giftInfoById.getGiftName()); + + } + + @Test + void sendComment() { + System.out.println(KuaishouApis.sendComment(System.getenv("cookie"), + "3x6pb6bcmjrarvs", + KuaishouApis.SendCommentRequest + .builder() + .liveStreamId("XKLoBv2mAEo") + .content("666666a") + .build() + )); + } +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java new file mode 100644 index 00000000..ad94357d --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/client/KuaishouLiveChatClientTest.java @@ -0,0 +1,206 @@ +package tech.ordinaryroad.live.chat.client.kuaishou.client; + +import cn.hutool.core.thread.ThreadUtil; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg; +import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg; +import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums; +import tech.ordinaryroad.live.chat.client.kuaishou.config.KuaishouLiveChatClientConfig; +import tech.ordinaryroad.live.chat.client.kuaishou.listener.IKuaishouMsgListener; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouDanmuMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouGiftMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.msg.KuaishouLikeMsg; +import tech.ordinaryroad.live.chat.client.kuaishou.netty.handler.KuaishouBinaryFrameHandler; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.PayloadTypeOuterClass; +import tech.ordinaryroad.live.chat.client.kuaishou.protobuf.WebGiftFeedOuterClass; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author mjz + * @date 2024/1/5 + */ +@Slf4j +class KuaishouLiveChatClientTest { + + Map> map = new HashMap<>(); + + static Object lock = new Object(); + KuaishouLiveChatClient client; + + @Test + void example() throws InterruptedException { + String cookie = System.getenv("cookie"); +// String cookie =""; + log.error("cookie: {}", cookie); + KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() + // TODO 浏览器Cookie + .cookie(cookie) + .roomId("3xpbyu443usqwau") + .roomId("DX204317461") + .roomId("xzx11234") + .roomId("N-ik-T8-20") + .roomId("3x9f7e3t3fsr74k") + .roomId("3xiqpb2riusznvq") + .roomId("QQ2027379716") + .roomId("xiannvwan1008") + // 祁天道 + .roomId("t8888888") + .roomId("by529529") + // 大师2 + .roomId("3x6pb6bcmjrarvs") + .roomId("3xbyfeffjhky7b2") + // 月神 + .roomId("YUE99999") + .roomId("mengyu980726") + // 大师1 + .roomId("3xkz5pb2kx3q4u6") + .build(); + + client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { + @Override + public void onMsg(IMsg msg) { + // log.debug("收到{}消息 {}", msg.getClass(), msg); + } + + @Override + public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { + // log.debug("收到CMD消息{} {}", cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { + log.debug("收到其他CMD消息 {}", cmd); + } + + @Override + public void onUnknownCmd(String cmdString, IMsg msg) { + log.debug("收到未知CMD消息 {}", cmdString); + } + + @Override + public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { + log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { + String mergeKey = msg.getMsg().getMergeKey(); + map.computeIfAbsent(mergeKey, s -> new ArrayList<>()).add(msg.getMsg()); + + log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({}) mergeKey:{},comboCount:{}, batchSize:{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice(), msg.getMsg().getMergeKey(), msg.getMsg().getComboCount(), msg.getMsg().getBatchSize()); + } + }); + + client.addStatusChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); + if (newValue == ClientStatusEnums.CONNECTED) { + // 连接成功5秒后发送弹幕 + ThreadUtil.execAsync(() -> { + ThreadUtil.sleep(10000); + client.sendDanmu("666666", new Runnable() { + @Override + public void run() { + log.warn("弹幕发送成功"); + } + }); + }); + } + } + }); + + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + + @Test + void clickLike() throws Exception { + String cookie = System.getenv("cookie"); +// String cookie =""; + log.error("cookie: {}", cookie); + KuaishouLiveChatClientConfig config = KuaishouLiveChatClientConfig.builder() + .cookie(cookie) + .roomId("K6866676") + .roomId("xinsang_") + .roomId("lollaopu") + .roomId("YTC2844073618") + .build(); + + client = new KuaishouLiveChatClient(config, new IKuaishouMsgListener() { + @Override + public void onMsg(IMsg msg) { +// log.debug("收到{}消息 {}", msg.getClass(), msg); + } + + @Override + public void onCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { +// log.debug("收到CMD消息{} {}", cmd, cmdMsg); + } + + @Override + public void onOtherCmdMsg(PayloadTypeOuterClass.PayloadType cmd, ICmdMsg cmdMsg) { +// log.debug("收到其他CMD消息 {}", cmd); + } + + @Override + public void onUnknownCmd(String cmdString, IMsg msg) { +// log.debug("收到未知CMD消息 {}", cmdString); + } + + @Override + public void onDanmuMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouDanmuMsg msg) { + log.info("{} 收到弹幕 [{}] {}({}):{}", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), msg.getContent()); + } + + @Override + public void onGiftMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouGiftMsg msg) { + log.info("{} 收到礼物 [{}] {}({}) {} {}({})x{}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid(), "赠送", msg.getGiftName(), msg.getGiftId(), msg.getGiftCount(), msg.getGiftPrice()); + } + + @Override + public void onLikeMsg(KuaishouBinaryFrameHandler binaryFrameHandler, KuaishouLikeMsg msg) { + log.info("{} 收到点赞 [{}] {}({})", binaryFrameHandler.getRoomId(), msg.getBadgeLevel() != 0 ? msg.getBadgeLevel() + msg.getBadgeName() : "", msg.getUsername(), msg.getUid()); + } + }); + + client.addStatusChangeListener(evt -> { + ClientStatusEnums newValue = (ClientStatusEnums) evt.getNewValue(); + if (newValue == ClientStatusEnums.CONNECTED) { + // 连接成功10秒后发送弹幕 + ThreadUtil.execAsync(() -> { + ThreadUtil.sleep(10000); + client.sendDanmu("6666a", () -> { + log.warn("弹幕发送成功"); + client.clickLike(13, () -> { + log.warn("为直播间点赞成功"); + }); + }); + }); + } + }); + + client.connect(); + + // 防止测试时直接退出 + while (true) { + synchronized (lock) { + lock.wait(); + } + } + } + +} \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml b/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml new file mode 100644 index 00000000..e06e8a08 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/pom.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + 4.0.0 + + org.ruoyi + ruoyi-common-live + ${revision} + ../pom.xml + + + pom + + live-chat-clients + live-chat-client + + + live-chat-client-bilibili + live-chat-client-douyu + live-chat-client-huya + live-chat-client-douyin + live-chat-client-kuaishou + + diff --git a/ruoyi-common/ruoyi-common-live/pom.xml b/ruoyi-common/ruoyi-common-live/pom.xml new file mode 100644 index 00000000..9b9db268 --- /dev/null +++ b/ruoyi-common/ruoyi-common-live/pom.xml @@ -0,0 +1,179 @@ + + 4.0.0 + + org.ruoyi + ruoyi-common + ${revision} + ../pom.xml + + + pom + + ruoyi-common-live + + + AI直播 + + + + live-chat-client-commons + live-chat-client-servers + live-chat-clients + + + + 8 + 8 + UTF-8 + 3.2.1 + 3.5.0 + 3.1.0 + 1.6.13 + + 1.13.0 + 2.16.0 + 5.8.24 + 4.1.104.Final + 1.4.12 + 1.18.30 + 5.10.1 + 3.25.1 + 1.7.3 + + + + + + org.ruoyi + live-chat-client-commons-base + 1.0.0 + + + + org.ruoyi + live-chat-client-commons-util + 1.0.0 + + + + org.ruoyi + live-chat-client-commons-client + 1.0.0 + + + + org.ruoyi + live-chat-client-servers-netty + 1.0.0 + + + + org.ruoyi + live-chat-client-servers-netty-client + 1.0.0 + + + + org.ruoyi + live-chat-client-bilibili + 1.0.0 + + + + org.ruoyi + live-chat-client-douyu + 1.0.0 + + + + org.ruoyi + live-chat-client-huya + 1.0.0 + + + + org.ruoyi + live-chat-client-douyin + 1.0.0 + + + + org.ruoyi + live-chat-client-kuaishou + 1.0.0 + + + + com.aayushatharva.brotli4j + brotli4j + ${brotli4j.version} + + + + com.google.protobuf + protobuf-java-util + ${protobuf-java-util.version} + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson-databind.version} + + + + cn.hutool + hutool-all + ${hutool-all.version} + + + + io.netty + netty-all + ${netty-all.version} + + + + com.tencent.tars + tars-core + ${tars-core.version} + + + + ch.qos.logback + logback-classic + ${logback-classic.version} + + + + org.projectlombok + lombok + ${lombok.version} + compile + + + + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} + test + + + + + + + org.projectlombok + lombok + provided + + + + com.squareup.okhttp3 + okhttp + 4.10.0 + + + + diff --git a/ruoyi-common/ruoyi-common-pay/pom.xml b/ruoyi-common/ruoyi-common-pay/pom.xml new file mode 100644 index 00000000..f0f2511f --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/pom.xml @@ -0,0 +1,43 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-common + ${revision} + ../pom.xml + + + ruoyi-common-pay + + + 17 + 17 + UTF-8 + 3.3.3 + 22.5.1 + + + + + org.ruoyi + ruoyi-common-web + + + + com.google.zxing + core + ${zxing.version} + + + + + com.stripe + stripe-java + ${stripe.version} + + + + diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java new file mode 100644 index 00000000..a5c92c3b --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayConfig.java @@ -0,0 +1,53 @@ +package org.ruoyi.common.config; + +import lombok.Data; + +/** + * 支付配置信息 + * + * @author Admin + */ +@Data +public class PayConfig { + + /** + * 商户ID + */ + private String pid; + + /** + * 接口地址 + */ + private String payUrl; + + /** + * 私钥 + */ + private String key ; + + /** + * 服务器异步通知地址 + */ + private String notify_url; + + /** + * 页面跳转通知地址 + */ + private String return_url; + + /** + * 支付方式 + */ + private String type; + + /** + * 设备类型 + */ + private String device; + + /** + * 加密方式默认MD5 + */ + private String sign_type; + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java new file mode 100644 index 00000000..16b29693 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/PayInit.java @@ -0,0 +1,49 @@ +package org.ruoyi.common.config; + +import org.ruoyi.common.core.service.ConfigService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; +import org.springframework.scheduling.annotation.Scheduled; + +/** + * 支付配置信息 + * + * @author Admin + */ +@RequiredArgsConstructor +@Configuration +@Slf4j +public class PayInit { + + private final ConfigService configService; + + private PayConfig payConfig; + + @Bean + public PayConfig payConfig() { + if (payConfig == null) { + payConfig = new PayConfig(); + updatePayConfig(); + } + return payConfig; + } + + public void updatePayConfig() { + payConfig.setType("wxpay"); + payConfig.setDevice("pc"); + payConfig.setSign_type("MD5"); + payConfig.setPid(getKey("pid")); + payConfig.setKey(getKey("key")); + payConfig.setPayUrl(getKey("payUrl")); + payConfig.setNotify_url(getKey("notify_url")); + payConfig.setReturn_url(getKey("return_url")); + } + + public String getKey(String key){ + return configService.getConfigValue("pay", key); + } + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java new file mode 100644 index 00000000..cbe33cd0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/config/WxPayConfiguration.java @@ -0,0 +1,47 @@ +package org.ruoyi.common.config; + +import com.github.binarywang.wxpay.config.WxPayConfig; +import com.github.binarywang.wxpay.service.WxPayService; +import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; + +import org.ruoyi.common.core.service.ConfigService; +import jakarta.annotation.PostConstruct; +import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Binary Wang + */ +@Configuration +@RequiredArgsConstructor +public class WxPayConfiguration { + + private final ConfigService configService; + + private WxPayService wxPayService; + + @PostConstruct + public void init() { + WxPayConfig payConfig = new WxPayConfig(); + payConfig.setAppId(StringUtils.trimToNull(getKey("appId"))); + payConfig.setMchId(StringUtils.trimToNull(getKey("mchId"))); + payConfig.setMchKey(StringUtils.trimToNull(getKey("appSecret"))); + payConfig.setUseSandboxEnv(false); + wxPayService = new WxPayServiceImpl(); + wxPayService.setConfig(payConfig); + } + + @Bean + @ConditionalOnMissingBean + public WxPayService wxService() { + return wxPayService; + } + + public String getKey(String key) { + return configService.getConfigValue("weixin", key); + } + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java new file mode 100644 index 00000000..b6b4fec8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/listener/ConfigChangeListener.java @@ -0,0 +1,37 @@ +package org.ruoyi.common.listener; + +import com.github.binarywang.wxpay.config.WxPayConfig; +import com.github.binarywang.wxpay.service.WxPayService; +import org.ruoyi.common.core.event.ConfigChangeEvent; +import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.core.utils.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +/** + * 描述:创建一个监听器,用于处理配置变化事件 + * + * @author ageerle@163.com + * date 2024/5/19 + */ +@Component +public class ConfigChangeListener implements ApplicationListener { + private final WxPayService wxPayService; + private final ConfigService configService; + + public ConfigChangeListener(WxPayService wxPayService, ConfigService configService) { + this.wxPayService = wxPayService; + this.configService = configService; + } + + @Override + public void onApplicationEvent(@NotNull ConfigChangeEvent event) { + WxPayConfig newConfig = new WxPayConfig(); + newConfig.setAppId(StringUtils.trimToNull(configService.getConfigValue("weixin", "appId"))); + newConfig.setMchId(StringUtils.trimToNull(configService.getConfigValue("weixin", "mchId"))); + newConfig.setMchKey(StringUtils.trimToNull(configService.getConfigValue("weixin", "mchKey"))); + newConfig.setUseSandboxEnv(false); + wxPayService.setConfig(newConfig); + } +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java new file mode 100644 index 00000000..21690be0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/response/PayResponse.java @@ -0,0 +1,70 @@ +package org.ruoyi.common.response; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 支付结果响应 + * + * @author: wangle + * @date: 2023/7/3 + */ +@Data +public class PayResponse { + + /** + * 商户ID + */ + private String pid; + + /** + * 易支付订单号 + */ + + @JsonProperty("trade_no") + private String trade_no; + + /** + * 商户订单号 + */ + @JsonProperty("out_trade_no") + private String out_trade_no; + + /** + * 支付方式 + */ + private String type; + + /** + * 商品名称 + */ + private String name; + + /** + * 商品金额 + */ + private String money; + + /** + * 支付状态 + */ + @JsonProperty("trade_status") + private String trade_status; + + /** + * 业务扩展参数 + */ + private String param; + + /** + * 签名字符串 + */ + private String sign; + + /** + * 签名类型 + */ + @JsonProperty("sign_type") + private String signType; + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java new file mode 100644 index 00000000..f11ed6e4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/PayService.java @@ -0,0 +1,23 @@ +package org.ruoyi.common.service; + +/** + * 支付服务 + * + * @author: wangle + * @date: 2023/7/3 + */ +public interface PayService { + + /** + * 获取支付地址 + * + * @Date 2023/7/3 + * @param orderNo + * @param name + * @param money + * @param clientIp + * @return String + **/ + String getPayUrl(String orderNo, String name, double money, String clientIp); + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java new file mode 100644 index 00000000..8e994529 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/service/impl/PayServiceImpl.java @@ -0,0 +1,53 @@ +package org.ruoyi.common.service.impl; + +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONObject; + +import org.ruoyi.common.config.PayConfig; +import org.ruoyi.common.service.PayService; +import org.ruoyi.common.utils.MD5Util; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * 支付服务 + * @author Admin + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class PayServiceImpl implements PayService { + + private final PayConfig payConfig; + + @Override + public String getPayUrl(String orderNo, String name, double money, String clientIp) { + String out_trade_no = orderNo, sign = ""; + //封装请求参数 + String mdString = "clientip=" + clientIp + "&device=" + payConfig.getDevice() + "&money=" + money + "&name=" + name + "&" + + "notify_url=" + payConfig.getNotify_url() + "&out_trade_no=" + out_trade_no + "&pid=" + payConfig.getPid() + "&return_url=" + payConfig.getReturn_url() + + "&type=" + payConfig.getType() + payConfig.getKey(); + sign = MD5Util.GetMD5Code(mdString); + Map map = new HashMap<>(10); + map.put("clientip", clientIp); + map.put("device", payConfig.getDevice()); + map.put("money", money); + map.put("name", name); + map.put("notify_url", payConfig.getNotify_url()); + map.put("out_trade_no", out_trade_no); + map.put("pid", payConfig.getPid()); + map.put("return_url", payConfig.getReturn_url()); + map.put("sign_type", payConfig.getSign_type()); + map.put("type", payConfig.getType()); + map.put("sign", sign); + String body = HttpUtil.post(payConfig.getPayUrl(), map); + log.info("支付返回信息:{},配置信息: {}",body,payConfig); + JSONObject jsonObject = new JSONObject(body); + return (String) jsonObject.get("qrcode"); + } + +} diff --git a/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java new file mode 100644 index 00000000..3aec5f28 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pay/src/main/java/org/ruoyi/common/utils/MD5Util.java @@ -0,0 +1,106 @@ +package org.ruoyi.common.utils; + +import cn.hutool.core.util.StrUtil; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Map; +import java.util.TreeMap; + +/** + * MD5 算法 + * + * @author Admin + */ +public class MD5Util { + + /** + * 全局数组 + */ + public final static String[] strDigits = { "0", "1", "2", "3", "4", "5", + "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; + + public MD5Util() { + } + + /** + * 返回形式为数字跟字符串 + * + * @Date 2023/7/3 + * @param bByte + * @return String + **/ + public static String byteToArrayString(byte bByte) { + int iRet = bByte; + if (iRet < 0) { + iRet += 256; + } + int iD1 = iRet / 16; + int iD2 = iRet % 16; + return strDigits[iD1] + strDigits[iD2]; + } + + /** + * 转换字节数组为16进制字串 + * + * @Date 2023/7/3 + * @param bByte + * @return String + **/ + public static String byteToString(byte[] bByte) { + StringBuffer sBuffer = new StringBuffer(); + for (int i = 0; i < bByte.length; i++) { + sBuffer.append(byteToArrayString(bByte[i])); + } + return sBuffer.toString(); + } + + /** + * 生成md5代码 + * + * @Date 2023/7/3 + * @param strObj + * @return String + **/ + public static String GetMD5Code(String strObj) { + String resultString = null; + try { + resultString = new String(strObj); + MessageDigest md = MessageDigest.getInstance("MD5"); + resultString = byteToString(md.digest(strObj.getBytes())); + } catch (NoSuchAlgorithmException ex) { + ex.printStackTrace(); + } + return resultString; + } + + /** + * 组装签名的字段 + * + * @param params 参数 + * @param urlEncoder 是否urlEncoder + * @return {String} + */ + public static String packageSign(Map params, boolean urlEncoder) { + // 先将参数以其参数名的字典序升序进行排序 + TreeMap sortedParams = new TreeMap(params); + // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起 + StringBuilder sb = new StringBuilder(); + boolean first = true; + for (Map.Entry param : sortedParams.entrySet()) { + String value = String.valueOf(param.getValue()); + if (StrUtil.isBlank(value)) { + continue; + } + if (first) { + first = false; + } else { + sb.append("&"); + } + sb.append(param.getKey()).append("="); + sb.append(value); + } + return sb.toString(); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/pom.xml b/ruoyi-common/ruoyi-common-wechat/pom.xml new file mode 100644 index 00000000..885af26d --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-common + ${revision} + ../pom.xml + + + ruoyi-common-wechat + 1.0.0 + ruoyi-common-wechat 微信服务 + + + UTF-8 + + + + + com.jfinal + jfinal + 3.5 + + + + com.jfinal + cos + 2017.5 + + + + com.jfinal + jfinal-undertow + 1.4 + + + + com.alibaba + druid + 1.0.29 + + + + com.vdurmont + emoji-java + 3.2.0 + + + + javax.activation + activation + 1.1.1 + + + + net.mamoe + mirai-core-jvm + 2.16.0 + + + + org.ruoyi + ruoyi-common-json + + + + com.alibaba + fastjson + 1.2.31 + + + + diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java new file mode 100644 index 00000000..9ed005a7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/MessageTools.java @@ -0,0 +1,546 @@ +package org.ruoyi.common.wechat.itchat4j.api; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.util.EntityUtils; +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; +import org.ruoyi.common.wechat.itchat4j.beans.RecommendInfo; +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.utils.Config; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; +import org.ruoyi.common.wechat.itchat4j.utils.enums.StorageLoginInfoEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.VerifyFriendEnum; +import org.ruoyi.common.wechat.web.constant.UploadConstant; + +import javax.activation.MimetypesFileTypeMap; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 消息处理类 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月23日 下午2:30:37 + * @version 1.0 + * + * @author WesleyOne 修改 + */ +public class MessageTools implements LogInterface { + + + /** + * 通过UserName发送消息 + * @param toUserName + * @param uniqueKey + * @param data + * @param type + * @return + */ + public static boolean send(String toUserName, String uniqueKey, String data, String type){ + String nickName = WechatTools.getNickNameByUserName(toUserName, uniqueKey); + if (SendMsgType.TEXT.toValue().equals(type)){ + LOG.info("发送文本 {}:{}", nickName, data); + return MessageTools.sendMsgById(data,toUserName,uniqueKey); + }else if (SendMsgType.IMG.toValue().equals(type)){ + LOG.info("发送图片 {}:{}", nickName, UploadConstant.IMG_PATH_SEP+data); + return MessageTools.sendPicMsgByUserId(toUserName,UploadConstant.IMG_PATH_SEP+data,uniqueKey); + }else if (SendMsgType.FILE.toValue().equals(type)){ + LOG.info("发送文件 {}:{}",nickName,UploadConstant.FILE_PATH_SEP+data); + return MessageTools.sendFileMsgByUserId(toUserName,UploadConstant.FILE_PATH_SEP+data,uniqueKey); + } + return false; + } + + /** + * 通过NickName发送消息 + * @param nickName + * @param uniqueKey + * @param data + * @param type + * @param isGroup + * @return + */ + public static boolean sendByNickName(String nickName, String uniqueKey, String data, String type,boolean isGroup){ + + if (SendMsgType.TEXT.toValue().equals(type)){ + LOG.info("发送文本 {}:{}", nickName, data); + return MessageTools.sendMsgByNickNameApi(data, nickName, uniqueKey, isGroup); + }else if (SendMsgType.IMG.toValue().equals(type)){ + LOG.info("发送图片 {}:{}", nickName, UploadConstant.IMG_PATH_SEP+data); + return MessageTools.sendPicMsgByNickNameApi(nickName, UploadConstant.IMG_PATH_SEP + data, uniqueKey, isGroup); + }else if (SendMsgType.FILE.toValue().equals(type)){ + LOG.info("发送文件 {}:{}",nickName,UploadConstant.FILE_PATH_SEP+data); + return MessageTools.sendFileMsgByNickNameApi(nickName,UploadConstant.FILE_PATH_SEP+data,uniqueKey,isGroup); + } + return false; + } + + + /** + * 根据UserName发送文本消息 + * + * @author https://github.com/yaphone + * @date 2017年5月6日 上午11:45:51 + * @param text + * @param toUserName + * @param uniqueKey + */ + public static boolean sendMsgById(String text, String toUserName, String uniqueKey) { + if (text == null) { + return false; + } + return webWxSendMsg(1, text, toUserName, uniqueKey); + } + + /** + * 根据NickName发送文本消息 + * + * @author https://github.com/yaphone + * @date 2017年5月4日 下午11:17:38 + * @param text + * @param nickName + */ + public static boolean sendMsgByNickName(String text, String nickName, String uniqueKey) { + if (nickName != null) { + String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + return sendMsgById(text, toUserName, uniqueKey); + } + } + return false; + + } + + public static boolean sendMsgByNickNameApi(String text, String nickName, String uniqueKey, boolean isGroup){ + if (isGroup){ + return sendGroupMsgByNickName(text,nickName,uniqueKey); + }else{ + return sendMsgByNickName(text,nickName,uniqueKey); + } + } + + + /** + * 根据NickName发送群文本消息 + * @param text + * @param nickName + * @param uniqueKey + * @return + */ + private static boolean sendGroupMsgByNickName(String text, String nickName, String uniqueKey) { + if (nickName != null) { + String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + return sendMsgById(text, toUserName, uniqueKey); + } + } + return false; + + } + + /** + * 消息发送 + * + * @author https://github.com/yaphone + * @date 2017年4月23日 下午2:32:02 + * @param msgType + * @param content + * @param toUserName + */ + public static boolean webWxSendMsg(int msgType, String content, String toUserName, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + if (!core.isAlive()){ + return false; + } + String url = String.format(URLEnum.WEB_WX_SEND_MSG.getUrl(), core.getLoginInfo().get("url")); + Map msgMap = new HashMap(12); + msgMap.put("Type", msgType); + msgMap.put("Content", content); + msgMap.put("FromUserName", core.getUserName()); + msgMap.put("ToUserName", toUserName == null ? core.getUserName() : toUserName); + msgMap.put("LocalID", System.currentTimeMillis() * 10); + msgMap.put("ClientMsgId", System.currentTimeMillis() * 10); + Map paramMap = core.getParamMap(); + paramMap.put("Msg", msgMap); + paramMap.put("Scene", 0); + try { + String paramStr = JSON.toJSONString(paramMap); + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); + EntityUtils.toString(entity, Consts.UTF_8); + return true; + } catch (Exception e) { + LOG.error("webWxSendMsg", e); + return false; + } + } + + /** + * 上传多媒体文件到 微信服务器,目前应该支持3种类型: 1. pic 直接显示,包含图片,表情 2.video 3.doc 显示为文件,包含PDF等 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 上午12:41:13 + * @param filePath + * @return + */ + private static JSONObject webWxUploadMedia(String filePath, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + File f = new File(filePath); + if (!f.exists() || !f.isFile()) { + LOG.info("file is not exist"); + return null; + } + String url = String.format(URLEnum.WEB_WX_UPLOAD_MEDIA.getUrl(), core.getLoginInfo().get("fileUrl")); + String mimeType = new MimetypesFileTypeMap().getContentType(f); + String mediaType = ""; + if (mimeType == null) { + mimeType = "text/plain"; + } else { + mediaType = mimeType.split("/")[0].equals("image") ? "pic" : "doc"; + } + String lastModifieDate = new SimpleDateFormat("yyyy MM dd HH:mm:ss").format(new Date()); + long fileSize = f.length(); + String passTicket = (String) core.getLoginInfo().get("pass_ticket"); + String clientMediaId = String.valueOf(System.currentTimeMillis()) + + String.valueOf(new Random().nextLong()).substring(0, 4); + String webwxDataTicket = core.getMyHttpClient().getCookie("webwx_data_ticket"); + if (webwxDataTicket == null) { + LOG.error("get cookie webwx_data_ticket error"); + return null; + } + + Map paramMap = core.getParamMap(); + + paramMap.put("ClientMediaId", clientMediaId); + paramMap.put("TotalLen", fileSize); + paramMap.put("StartPos", 0); + paramMap.put("DataLen", fileSize); + paramMap.put("MediaType", 4); + + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + + builder.addTextBody("id", "WU_FILE_0", ContentType.TEXT_PLAIN); + builder.addTextBody("name", filePath, ContentType.TEXT_PLAIN); + builder.addTextBody("type", mimeType, ContentType.TEXT_PLAIN); + builder.addTextBody("lastModifieDate", lastModifieDate, ContentType.TEXT_PLAIN); + builder.addTextBody("size", String.valueOf(fileSize), ContentType.TEXT_PLAIN); + builder.addTextBody("mediatype", mediaType, ContentType.TEXT_PLAIN); + builder.addTextBody("uploadmediarequest", JSON.toJSONString(paramMap), ContentType.TEXT_PLAIN); + builder.addTextBody("webwx_data_ticket", webwxDataTicket, ContentType.TEXT_PLAIN); + builder.addTextBody("pass_ticket", passTicket, ContentType.TEXT_PLAIN); + builder.addBinaryBody("filename", f, ContentType.create(mimeType), filePath); + HttpEntity reqEntity = builder.build(); + HttpEntity entity = core.getMyHttpClient().doPostFile(url, reqEntity); + if (entity != null) { + try { + String result = EntityUtils.toString(entity, Consts.UTF_8); + return JSON.parseObject(result); + } catch (Exception e) { + LOG.error("webWxUploadMedia 错误: ", e); + } + + } + return null; + } + + + public static boolean sendPicMsgByNickNameApi(String nickName, String filePath, String uniqueKey,boolean isGroup){ + if (isGroup){ + return sendGroupPicMsgByNickName(nickName, filePath, uniqueKey); + }else { + return sendPicMsgByNickName(nickName, filePath, uniqueKey); + } + } + + /** + * 根据NickName发送图片消息 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 下午10:32:45 + * @param nickName + * @param filePath + * @return + */ + public static boolean sendPicMsgByNickName(String nickName, String filePath, String uniqueKey) { + String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + LOG.info("发送图片 {}:{}",nickName,filePath); + return sendPicMsgByUserId(toUserName, filePath, uniqueKey); + } + return false; + } + + /** + * 根据群的NickName发送图片消息到群 + * @param nickName + * @param filePath + * @param uniqueKey + * @return + */ + public static boolean sendGroupPicMsgByNickName(String nickName, String filePath, String uniqueKey) { + String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + LOG.info("发送群图片 {}:{}",nickName,filePath); + return sendPicMsgByUserId(toUserName, filePath, uniqueKey); + } + return false; + } + + /** + * 根据用户id发送图片消息 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 下午10:34:24 + * @param userId + * @param filePath + * @param uniqueKey + * @return + */ + public static boolean sendPicMsgByUserId(String userId, String filePath, String uniqueKey) { + JSONObject responseObj = webWxUploadMedia(filePath, uniqueKey); + if (responseObj != null) { + String mediaId = responseObj.getString("MediaId"); + if (mediaId != null) { + return webWxSendMsgImg(userId, mediaId, uniqueKey); + } + } + return false; + } + + /** + * 发送图片消息,内部调用 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 下午10:38:55 + * @return + */ + private static boolean webWxSendMsgImg(String userId, String mediaId, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + if (!core.isAlive()){ + return false; + } + String url = String.format("%s/webwxsendmsgimg?fun=async&f=json&pass_ticket=%s", core.getLoginInfo().get("url"), + core.getLoginInfo().get("pass_ticket")); + Map msgMap = new HashMap(8); + msgMap.put("Type", 3); + msgMap.put("MediaId", mediaId); + msgMap.put("FromUserName", core.getUserSelf().getString("UserName")); + msgMap.put("ToUserName", userId); + String clientMsgId = String.valueOf(System.currentTimeMillis()) + + String.valueOf(new Random().nextLong()).substring(1, 5); + msgMap.put("LocalID", clientMsgId); + msgMap.put("ClientMsgId", clientMsgId); + Map paramMap = core.getParamMap(); + paramMap.put("BaseRequest", core.getParamMap().get("BaseRequest")); + paramMap.put("Msg", msgMap); + String paramStr = JSON.toJSONString(paramMap); + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); + if (entity != null) { + try { + String result = EntityUtils.toString(entity, Consts.UTF_8); + return JSON.parseObject(result).getJSONObject("BaseResponse").getInteger("Ret") == 0; + } catch (Exception e) { + LOG.error("webWxSendMsgImg 错误: ", e); + } + } + return false; + + } + + /** + * 根据用户id发送文件 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 下午11:57:36 + * @param userId + * @param filePath + * @return + */ + private static boolean sendFileMsgByUserId(String userId, String filePath, String uniqueKey) { + String title = new File(filePath).getName(); + Map data = new HashMap(12); + data.put("appid", Config.API_WXAPPID); + data.put("title", title); + data.put("totallen", ""); + data.put("attachid", ""); + data.put("type", "6"); // APPMSGTYPE_ATTACH + data.put("fileext", title.split("\\.")[1]); // 文件后缀 + JSONObject responseObj = webWxUploadMedia(filePath, uniqueKey); + if (responseObj != null) { + data.put("totallen", responseObj.getString("StartPos")); + data.put("attachid", responseObj.getString("MediaId")); + } else { + LOG.error("sednFileMsgByUserId 错误: ", data); + } + return webWxSendAppMsg(userId, data, uniqueKey); + } + + public static boolean sendFileMsgByNickNameApi(String nickName, String filePath, String uniqueKey, boolean isGroup){ + if (isGroup){ + return sendGroupFileMsgByNickName(nickName,filePath,uniqueKey); + }else { + return sendFileMsgByNickName(nickName,filePath,uniqueKey); + } + } + + + /** + * 根据用户昵称发送文件消息 + * + * @author https://github.com/yaphone + * @date 2017年5月10日 下午10:59:27 + * @param nickName + * @param filePath + * @return + */ + private static boolean sendFileMsgByNickName(String nickName, String filePath, String uniqueKey) { + String toUserName = WechatTools.getContactUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + LOG.info("发送文件 {}:{}",nickName,filePath); + return sendFileMsgByUserId(toUserName, filePath, uniqueKey); + } + return false; + } + + /** + * 根据群昵称发送文件消息 + * @param nickName + * @param filePath + * @param uniqueKey + * @return + */ + private static boolean sendGroupFileMsgByNickName(String nickName, String filePath, String uniqueKey) { + String toUserName = WechatTools.getGroupUserNameByNickName(nickName,uniqueKey); + if (toUserName != null) { + LOG.info("发送文件 {}:{}",nickName,filePath); + return sendFileMsgByUserId(toUserName, filePath, uniqueKey); + } + return false; + } + + /** + * 内部调用 + * + * @author https://github.com/yaphone + * @date 2017年5月10日 上午12:21:28 + * @param userId + * @param data + * @param uniqueKey + * @return + */ + private static boolean webWxSendAppMsg(String userId, Map data, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + if (!core.isAlive()){ + return false; + } + String url = String.format("%s/webwxsendappmsg?fun=async&f=json&pass_ticket=%s", core.getLoginInfo().get("url"), + core.getLoginInfo().get("pass_ticket")); + String clientMsgId = String.valueOf(System.currentTimeMillis()) + + String.valueOf(new Random().nextLong()).substring(1, 5); + String content = "" + data.get("title") + + "6" + + "" + data.get("totallen") + "" + data.get("attachid") + + "" + data.get("fileext") + ""; + Map msgMap = new HashMap(12); + msgMap.put("Type", data.get("type")); + msgMap.put("Content", content); + msgMap.put("FromUserName", core.getUserSelf().getString("UserName")); + msgMap.put("ToUserName", userId); + msgMap.put("LocalID", clientMsgId); + msgMap.put("ClientMsgId", clientMsgId); + /* + * Map paramMap = new HashMap(); + * + * @SuppressWarnings("unchecked") Map> + * baseRequestMap = (Map>) + * core.getLoginInfo() .get("baseRequest"); paramMap.put("BaseRequest", + * baseRequestMap.get("BaseRequest")); + */ + + Map paramMap = core.getParamMap(); + paramMap.put("Msg", msgMap); + paramMap.put("Scene", 0); + String paramStr = JSON.toJSONString(paramMap); + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); + if (entity != null) { + try { + String result = EntityUtils.toString(entity, Consts.UTF_8); + return JSON.parseObject(result).getJSONObject("BaseResponse").getInteger("Ret") == 0; + } catch (Exception e) { + LOG.error("错误: ", e); + } + } + return false; + } + + /** + * 被动添加好友 + * + * @date 2017年6月29日 下午10:08:43 + * @param msg + * @param accept + * true 接受 false 拒绝 + */ + private static void addFriend(BaseMsg msg, boolean accept, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + if (!accept) { // 不添加 + return; + } + int status = VerifyFriendEnum.ACCEPT.getCode(); // 接受好友请求 + RecommendInfo recommendInfo = msg.getRecommendInfo(); + String userName = recommendInfo.getUserName(); + String ticket = recommendInfo.getTicket(); + // 更新好友列表 + // TODO 此处需要更新好友列表 + // core.getContactList().add(msg.getJSONObject("RecommendInfo")); + + String url = String.format(URLEnum.WEB_WX_VERIFYUSER.getUrl(), core.getLoginInfo().get("url"), + String.valueOf(System.currentTimeMillis() / 3158L), core.getLoginInfo().get("pass_ticket")); + + List> verifyUserList = new ArrayList>(); + Map verifyUser = new HashMap(); + verifyUser.put("Value", userName); + verifyUser.put("VerifyUserTicket", ticket); + verifyUserList.add(verifyUser); + + List sceneList = new ArrayList(); + sceneList.add(33); + + JSONObject body = new JSONObject(); + body.put("BaseRequest", core.getParamMap().get("BaseRequest")); + body.put("Opcode", status); + body.put("VerifyUserListSize", 1); + body.put("VerifyUserList", verifyUserList); + body.put("VerifyContent", ""); + body.put("SceneListCount", 1); + body.put("SceneList", sceneList); + body.put("skey", core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey())); + + String result = null; + try { + String paramStr = JSON.toJSONString(body); + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); + result = EntityUtils.toString(entity, Consts.UTF_8); + } catch (Exception e) { + LOG.error("webWxSendMsg", e); + } + + if (StringUtils.isBlank(result)) { + LOG.error("被动添加好友失败"); + } + + LOG.debug(result); + + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java new file mode 100644 index 00000000..5700a65f --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/api/WechatTools.java @@ -0,0 +1,352 @@ +package org.ruoyi.common.wechat.itchat4j.api; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.enums.StorageLoginInfoEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 微信小工具,如获好友列表,根据昵称查找好友或群等 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年5月4日 下午10:49:16 + * @version 1.0 + * + * @author WesleyOne 修改 + */ +public class WechatTools implements LogInterface { + + /** + * 返回好友昵称列表 + * @param uniqueKey + * @return + */ + public static List getContactNickNameList(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + List contactNickNameList = new ArrayList(); + for (JSONObject o : core.getContactList()) { + contactNickNameList.add(o.getString("NickName")); + // 顺便刷下缓存 + core.getUserInfoMap().put(o.getString("NickName"),o); + core.getUserInfoMap().put(o.getString("UserName"),o); + } + return contactNickNameList; + } + + /** + * 返回好友完整信息列表 + * @param uniqueKey + * @return + */ + public static List getContactList(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + return core.getContactList(); + } + + /** + * 返回群列表 + * @param uniqueKey + * @return + */ + public static List getGroupList(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + return core.getGroupList(); + } + + /** + * 获取群NickName列表 + * @param uniqueKey + * @return + */ + public static List getGroupNickNameList(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + List groupNickNameList = new ArrayList(); + for (JSONObject o : core.getGroupList()) { + groupNickNameList.add(o.getString("NickName")); + } + return groupNickNameList; + } + + /** + * 获取群所有成员信息 + * @param groupId + * @param uniqueKey + * @return + */ + public static JSONArray getGroupMemberByGroupId(String groupId, String uniqueKey){ + Core core = CoreManage.getInstance(uniqueKey); + JSONObject jsonObject = core.getGroupInfoMap().get(groupId); + if (jsonObject == null){ + return new JSONArray(); + } + return jsonObject.getJSONArray("MemberList"); + } + + /** + * 通过群成员ID获取昵称 + * @param groupId + * @param uniqueKey + * @param memberId + * @return + */ + public static String getMemberNickName(String groupId, String uniqueKey, String memberId){ + JSONArray members = getGroupMemberByGroupId(groupId, uniqueKey); + int size = members.size(); + if (size > 0){ + for (int i=0;i params = new ArrayList(); + params.add(new BasicNameValuePair("redirect", "1")); + params.add(new BasicNameValuePair("type", "1")); + params.add( + new BasicNameValuePair("skey", (String) core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey()))); + try { + HttpEntity entity = core.getMyHttpClient().doGet(url, params, false, null); + String text = EntityUtils.toString(entity, Consts.UTF_8); + return true; + } catch (Exception e) { + LOG.debug(e.getMessage()); + } finally { + // 强制退出,提示相关线程退出 + core.setAlive(false); + } + return false; + } + + public static void setUserInfo(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + for (JSONObject o : core.getContactList()) { + core.getUserInfoMap().put(o.getString("NickName"), o); + core.getUserInfoMap().put(o.getString("UserName"), o); + } + } + + /** + * + * 根据用户昵称设置备注名称 + * + * @date 2017年5月27日 上午12:21:40 + * @param nickName + * @param remName + */ + public static void remarkNameByNickName(String nickName, String remName, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + String url = String.format(URLEnum.WEB_WX_REMARKNAME.getUrl(), core.getLoginInfo().get("url"), + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + Map msgMap = new HashMap(8); + Map msgMap_BaseRequest = new HashMap(8); + msgMap.put("CmdId", 2); + msgMap.put("RemarkName", remName); + msgMap.put("UserName", core.getUserInfoMap().get(nickName).get("UserName")); + msgMap_BaseRequest.put("Uin", core.getLoginInfo().get(StorageLoginInfoEnum.wxuin.getKey())); + msgMap_BaseRequest.put("Sid", core.getLoginInfo().get(StorageLoginInfoEnum.wxsid.getKey())); + msgMap_BaseRequest.put("Skey", core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey())); + msgMap_BaseRequest.put("DeviceID", core.getLoginInfo().get(StorageLoginInfoEnum.deviceid.getKey())); + msgMap.put("BaseRequest", msgMap_BaseRequest); + try { + String paramStr = JSON.toJSONString(msgMap); + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); + // String result = EntityUtils.toString(entity, Consts.UTF_8); + LOG.info("修改备注" + remName); + } catch (Exception e) { + LOG.error("remarkNameByUserName", e); + } + } + + /** + * 获取微信在线状态 + * + * @date 2017年6月16日 上午12:47:46 + * @return + */ + public static boolean getWechatStatus(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + return core.isAlive(); + } + + + /** + * + * @param userName + * @param nickName + * @return + */ + private static JSONObject getContactByNickNameAndUserName(String userName, String nickName, String uniqueKey){ + Core core = CoreManage.getInstance(uniqueKey); + // 通过userName查询 + if (StringUtils.isNotEmpty(userName) && StringUtils.isEmpty(nickName)){ + for (JSONObject contact:core.getContactList()){ + if (userName.equals(contact.getString("UserName"))){ + return contact; + } + } + } + + // 通过群昵称查询 + if (StringUtils.isNotEmpty(nickName) && StringUtils.isEmpty(userName)){ + for (JSONObject contact:core.getContactList()){ + if (nickName.equals(contact.getString("NickName"))){ + return contact; + } + } + } + + // 通过userName和昵称联合查 + if (StringUtils.isNotEmpty(userName) && StringUtils.isNotEmpty(nickName)){ + for (JSONObject contact:core.getContactList()){ + if (nickName.equals(contact.getString("NickName")) && userName.equals(contact.getString("UserName"))){ + return contact; + } + } + } + + return null; + } + + /** + * 通过群id查找群昵称 + * @param userName + * @return + */ + public static String getContactNickNameByUserName(String userName, String uniqueKey){ + JSONObject contact = getContactByNickNameAndUserName(userName,null, uniqueKey); + if (contact!=null && StringUtils.isNotEmpty(contact.getString("NickName"))){ + return contact.getString("NickName"); + }else{ + return ""; + } + } + + /** + * 通过群昵称查找群id + * @param nickName + * @return + */ + public static String getContactUserNameByNickName(String nickName, String uniqueKey){ + JSONObject contact = getContactByNickNameAndUserName(null,nickName,uniqueKey); + if (contact!=null && StringUtils.isNotEmpty(contact.getString("UserName"))){ + return contact.getString("UserName"); + }else{ + return null; + } + } + + /** + * 通过userName或昵称查找群信息 + * @param userName + * @return + */ + private static JSONObject getGroupByNickNameAndUserName(String userName, String nickName, String uniqueKey){ + Core core = CoreManage.getInstance(uniqueKey); + // 通过userName查询 + if (StringUtils.isNotEmpty(userName) && StringUtils.isEmpty(nickName)){ + for (JSONObject group:core.getGroupList()){ + if (userName.equals(group.getString("UserName"))){ + return group; + } + } + } + + // 通过群昵称查询 + if (StringUtils.isNotEmpty(nickName) && StringUtils.isEmpty(userName)){ + for (JSONObject group:core.getGroupList()){ + if (nickName.equals(group.getString("NickName"))){ + return group; + } + } + } + + // 通过userName和昵称联合查 + if (StringUtils.isNotEmpty(userName) && StringUtils.isNotEmpty(nickName)){ + for (JSONObject group:core.getGroupList()){ + if (nickName.equals(group.getString("NickName")) && userName.equals(group.getString("UserName"))){ + return group; + } + } + } + + return null; + } + + /** + * 通过群id查找群昵称 + * @param userName + * @return + */ + public static String getGroupNickNameByUserName(String userName, String uniqueKey){ + JSONObject group = getGroupByNickNameAndUserName(userName,null,uniqueKey); + if (group!=null && StringUtils.isNotEmpty(group.getString("NickName"))){ + return group.getString("NickName"); + }else{ + return ""; + } + } + + /** + * 通过群昵称查找群id + * @param nickName + * @return + */ + public static String getGroupUserNameByNickName(String nickName, String uniqueKey){ + JSONObject group = getGroupByNickNameAndUserName(null,nickName, uniqueKey); + if (group!=null && StringUtils.isNotEmpty(group.getString("UserName"))){ + return group.getString("UserName"); + }else{ + return null; + } + } + + /** + * 通过UserName查找NickName + * 只查群名和好友名 + * @param userName + * @param uniqueKey + * @return + */ + public static String getNickNameByUserName(String userName, String uniqueKey){ + if (userName.startsWith("@@")){ + return getGroupNickNameByUserName(userName,uniqueKey); + }else if (userName.startsWith("@")){ + return getContactNickNameByUserName(userName,uniqueKey); + }else { + return ""; + } + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java new file mode 100644 index 00000000..4f80a301 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/AppInfo.java @@ -0,0 +1,37 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.io.Serializable; + +/** + * AppInfo + * + * @author https://github.com/yaphone + * @date 创建时间:2017年7月3日 下午10:38:14 + * @version 1.0 + * + */ +public class AppInfo implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; + private int type; + private String appId; + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java new file mode 100644 index 00000000..43146a82 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseMsg.java @@ -0,0 +1,330 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.io.Serializable; + +/** + * 收到的微信消息 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年7月3日 下午10:28:06 + * @version 1.0 + * + */ +public class BaseMsg implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; + private int subMsgType; + private int voiceLength; + private String fileName; + private int imgHeight; + private String toUserName; + private int hasProductId; + private int imgStatus; + private String url; + private int imgWidth; + private int forwardFlag; + private int status; + private String Ticket; + /** 推荐消息报文 **/ + private RecommendInfo recommendInfo; + private long createTime; + private String newMsgId; + /** 文本消息内容 **/ + private String text; + /** 消息类型 **/ + private int msgType; + /** 是否为群消息 **/ + private boolean groupMsg; + private String msgId; + private int statusNotifyCode; + private AppInfo appInfo; + private int appMsgType; + private String Type; + private int playLength; + private String mediaId; + private String content; + private String statusNotifyUserName; + private boolean atMe; + // 群发送者ID昵称 + private String sendMemberId; + private String memberNickname; + /** 消息发送者ID **/ + private String fromUserName; + private String oriContent; + private String fileSize; + private String fromNickName; + + public int getSubMsgType() { + return subMsgType; + } + + public void setSubMsgType(int subMsgType) { + this.subMsgType = subMsgType; + } + + public int getVoiceLength() { + return voiceLength; + } + + public void setVoiceLength(int voiceLength) { + this.voiceLength = voiceLength; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public int getImgHeight() { + return imgHeight; + } + + public void setImgHeight(int imgHeight) { + this.imgHeight = imgHeight; + } + + public String getToUserName() { + return toUserName; + } + + public void setToUserName(String toUserName) { + this.toUserName = toUserName; + } + + public int getHasProductId() { + return hasProductId; + } + + public void setHasProductId(int hasProductId) { + this.hasProductId = hasProductId; + } + + public int getImgStatus() { + return imgStatus; + } + + public void setImgStatus(int imgStatus) { + this.imgStatus = imgStatus; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public int getImgWidth() { + return imgWidth; + } + + public void setImgWidth(int imgWidth) { + this.imgWidth = imgWidth; + } + + public int getForwardFlag() { + return forwardFlag; + } + + public void setForwardFlag(int forwardFlag) { + this.forwardFlag = forwardFlag; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getTicket() { + return Ticket; + } + + public void setTicket(String ticket) { + Ticket = ticket; + } + + public RecommendInfo getRecommendInfo() { + return recommendInfo; + } + + public void setRecommendInfo(RecommendInfo recommendInfo) { + this.recommendInfo = recommendInfo; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + + public String getNewMsgId() { + return newMsgId; + } + + public void setNewMsgId(String newMsgId) { + this.newMsgId = newMsgId; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public int getMsgType() { + return msgType; + } + + public void setMsgType(int msgType) { + this.msgType = msgType; + } + + public boolean isGroupMsg() { + return groupMsg; + } + + public void setGroupMsg(boolean groupMsg) { + this.groupMsg = groupMsg; + } + + public String getMsgId() { + return msgId; + } + + public void setMsgId(String msgId) { + this.msgId = msgId; + } + + public int getStatusNotifyCode() { + return statusNotifyCode; + } + + public void setStatusNotifyCode(int statusNotifyCode) { + this.statusNotifyCode = statusNotifyCode; + } + + public AppInfo getAppInfo() { + return appInfo; + } + + public void setAppInfo(AppInfo appInfo) { + this.appInfo = appInfo; + } + + public int getAppMsgType() { + return appMsgType; + } + + public void setAppMsgType(int appMsgType) { + this.appMsgType = appMsgType; + } + + public String getType() { + return Type; + } + + public void setType(String type) { + Type = type; + } + + public int getPlayLength() { + return playLength; + } + + public void setPlayLength(int playLength) { + this.playLength = playLength; + } + + public String getMediaId() { + return mediaId; + } + + public void setMediaId(String mediaId) { + this.mediaId = mediaId; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getStatusNotifyUserName() { + return statusNotifyUserName; + } + + public void setStatusNotifyUserName(String statusNotifyUserName) { + this.statusNotifyUserName = statusNotifyUserName; + } + + public String getFromUserName() { + return fromUserName; + } + + public void setFromUserName(String fromUserName) { + this.fromUserName = fromUserName; + } + + public String getOriContent() { + return oriContent; + } + + public void setOriContent(String oriContent) { + this.oriContent = oriContent; + } + + public String getFileSize() { + return fileSize; + } + + public void setFileSize(String fileSize) { + this.fileSize = fileSize; + } + + public String getMemberNickname() { + return memberNickname; + } + + public void setMemberNickname(String memberNickname) { + this.memberNickname = memberNickname; + } + + public String getFromNickName() { + return fromNickName; + } + + public void setFromNickName(String fromNickName) { + this.fromNickName = fromNickName; + } + + public String getSendMemberId() { + return sendMemberId; + } + + public void setSendMemberId(String sendMemberId) { + this.sendMemberId = sendMemberId; + } + + public boolean isAtMe() { + return atMe; + } + + public void setAtMe(boolean atMe) { + this.atMe = atMe; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java new file mode 100644 index 00000000..063495fb --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/BaseResponse.java @@ -0,0 +1,28 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +/** + * @author WesleyOne + * @create 2018/12/21 + */ +@Deprecated +public class BaseResponse { + + private Integer Ret; + private String ErrMsg; + + public Integer getRet() { + return Ret; + } + + public void setRet(Integer ret) { + Ret = ret; + } + + public String getErrMsg() { + return ErrMsg; + } + + public void setErrMsg(String errMsg) { + ErrMsg = errMsg; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java new file mode 100644 index 00000000..2a84d254 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/Member.java @@ -0,0 +1,306 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.util.List; + +/** + * 成员信息对象 + * + * 来自获取好友列表 + * /cgi-bin/mmwebwx-bin/webwxgetcontact + * MemberList中单体 + * @author WesleyOne + * @create 2018/12/21 + */ +@Deprecated +public class Member { + + private String Alias; + private Integer AppAccountFlag; + private Integer AttrStatus; + private Integer ChatRoomId; + private String City; + private Integer ContactFlag; + /** + * 群昵称 + */ + private String DisplayName; + private String EncryChatRoomId; + private String HeadImgUrl; + private Integer HideInputBarFlag; + private Integer IsOwner; + private String KeyWord; + private Integer MemberCount; + private List MemberList; + private String NickName; + private Integer OwnerUin; + private String PYInitial; + private String PYQuanPin; + private String Province; + /** + * 备注名、首拼、全拼 + */ + private String RemarkName; + private String RemarkPYInitial; + private String RemarkPYQuanPin; + + private Integer Sex; + private String Signature; + private Integer SnsFlag; + private Integer StarFriend; + private Integer Statues; + private Integer Uin; + private Integer UniFriend; + private String UserName; + /** + * 用来判断是否是公众号或服务号的字段 + */ + private String VerifyFlag; + + public String getAlias() { + return Alias; + } + + public void setAlias(String alias) { + Alias = alias; + } + + public Integer getAppAccountFlag() { + return AppAccountFlag; + } + + public void setAppAccountFlag(Integer appAccountFlag) { + AppAccountFlag = appAccountFlag; + } + + public Integer getAttrStatus() { + return AttrStatus; + } + + public void setAttrStatus(Integer attrStatus) { + AttrStatus = attrStatus; + } + + public Integer getChatRoomId() { + return ChatRoomId; + } + + public void setChatRoomId(Integer chatRoomId) { + ChatRoomId = chatRoomId; + } + + public String getCity() { + return City; + } + + public void setCity(String city) { + City = city; + } + + public Integer getContactFlag() { + return ContactFlag; + } + + public void setContactFlag(Integer contactFlag) { + ContactFlag = contactFlag; + } + + public String getDisplayName() { + return DisplayName; + } + + public void setDisplayName(String displayName) { + DisplayName = displayName; + } + + public String getEncryChatRoomId() { + return EncryChatRoomId; + } + + public void setEncryChatRoomId(String encryChatRoomId) { + EncryChatRoomId = encryChatRoomId; + } + + public String getHeadImgUrl() { + return HeadImgUrl; + } + + public void setHeadImgUrl(String headImgUrl) { + HeadImgUrl = headImgUrl; + } + + public Integer getHideInputBarFlag() { + return HideInputBarFlag; + } + + public void setHideInputBarFlag(Integer hideInputBarFlag) { + HideInputBarFlag = hideInputBarFlag; + } + + public Integer getIsOwner() { + return IsOwner; + } + + public void setIsOwner(Integer isOwner) { + IsOwner = isOwner; + } + + public String getKeyWord() { + return KeyWord; + } + + public void setKeyWord(String keyWord) { + KeyWord = keyWord; + } + + public Integer getMemberCount() { + return MemberCount; + } + + public void setMemberCount(Integer memberCount) { + MemberCount = memberCount; + } + + public List getMemberList() { + return MemberList; + } + + public void setMemberList(List memberList) { + MemberList = memberList; + } + + public String getNickName() { + return NickName; + } + + public void setNickName(String nickName) { + NickName = nickName; + } + + public Integer getOwnerUin() { + return OwnerUin; + } + + public void setOwnerUin(Integer ownerUin) { + OwnerUin = ownerUin; + } + + public String getPYInitial() { + return PYInitial; + } + + public void setPYInitial(String PYInitial) { + this.PYInitial = PYInitial; + } + + public String getPYQuanPin() { + return PYQuanPin; + } + + public void setPYQuanPin(String PYQuanPin) { + this.PYQuanPin = PYQuanPin; + } + + public String getProvince() { + return Province; + } + + public void setProvince(String province) { + Province = province; + } + + public String getRemarkName() { + return RemarkName; + } + + public void setRemarkName(String remarkName) { + RemarkName = remarkName; + } + + public String getRemarkPYInitial() { + return RemarkPYInitial; + } + + public void setRemarkPYInitial(String remarkPYInitial) { + RemarkPYInitial = remarkPYInitial; + } + + public String getRemarkPYQuanPin() { + return RemarkPYQuanPin; + } + + public void setRemarkPYQuanPin(String remarkPYQuanPin) { + RemarkPYQuanPin = remarkPYQuanPin; + } + + public Integer getSex() { + return Sex; + } + + public void setSex(Integer sex) { + Sex = sex; + } + + public String getSignature() { + return Signature; + } + + public void setSignature(String signature) { + Signature = signature; + } + + public Integer getSnsFlag() { + return SnsFlag; + } + + public void setSnsFlag(Integer snsFlag) { + SnsFlag = snsFlag; + } + + public Integer getStarFriend() { + return StarFriend; + } + + public void setStarFriend(Integer starFriend) { + StarFriend = starFriend; + } + + public Integer getStatues() { + return Statues; + } + + public void setStatues(Integer statues) { + Statues = statues; + } + + public Integer getUin() { + return Uin; + } + + public void setUin(Integer uin) { + Uin = uin; + } + + public Integer getUniFriend() { + return UniFriend; + } + + public void setUniFriend(Integer uniFriend) { + UniFriend = uniFriend; + } + + public String getUserName() { + return UserName; + } + + public void setUserName(String userName) { + UserName = userName; + } + + public String getVerifyFlag() { + return VerifyFlag; + } + + public void setVerifyFlag(String verifyFlag) { + VerifyFlag = verifyFlag; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java new file mode 100644 index 00000000..51c82217 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/RecommendInfo.java @@ -0,0 +1,146 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.io.Serializable; + +/** + * RecommendInfo + * + * @author https://github.com/yaphone + * @date 创建时间:2017年7月3日 下午10:35:14 + * @version 1.0 + * + */ +public class RecommendInfo implements Serializable { + /** + * + */ + private static final long serialVersionUID = 1L; + + private String ticket; + private String userName; + private int sex; + private int attrStatus; + private String city; + private String nickName; + private int scene; + private String province; + private String content; + private String alias; + private String signature; + private int opCode; + private int qQNum; + private int verifyFlag; + + public String getTicket() { + return ticket; + } + + public void setTicket(String ticket) { + this.ticket = ticket; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public int getSex() { + return sex; + } + + public void setSex(int sex) { + this.sex = sex; + } + + public int getAttrStatus() { + return attrStatus; + } + + public void setAttrStatus(int attrStatus) { + this.attrStatus = attrStatus; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public int getScene() { + return scene; + } + + public void setScene(int scene) { + this.scene = scene; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public String getSignature() { + return signature; + } + + public void setSignature(String signature) { + this.signature = signature; + } + + public int getOpCode() { + return opCode; + } + + public void setOpCode(int opCode) { + this.opCode = opCode; + } + + public int getqQNum() { + return qQNum; + } + + public void setqQNum(int qQNum) { + this.qQNum = qQNum; + } + + public int getVerifyFlag() { + return verifyFlag; + } + + public void setVerifyFlag(int verifyFlag) { + this.verifyFlag = verifyFlag; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java new file mode 100644 index 00000000..33661f94 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SendMsg.java @@ -0,0 +1,59 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; + +import java.io.Serializable; + +/** + * 发送消息体 + * @author WesleyOne + * @create 2019/1/7 + */ +public class SendMsg implements Serializable { + + private String userName; + private String nickName; + private String message; + private SendMsgType msgType; + private boolean isGroup; + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public SendMsgType getMsgType() { + return msgType; + } + + public void setMsgType(SendMsgType msgType) { + this.msgType = msgType; + } + + public boolean isGroup() { + return isGroup; + } + + public void setGroup(boolean group) { + isGroup = group; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java new file mode 100644 index 00000000..de8078cd --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/SyncKey.java @@ -0,0 +1,52 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.util.List; + +/** + * @author WesleyOne + * @create 2018/12/21 + */ +@Deprecated +public class SyncKey { + + private Integer Count; + + private List List; + + public Integer getCount() { + return Count; + } + + public void setCount(Integer count) { + Count = count; + } + + public java.util.List getList() { + return List; + } + + public void setList(java.util.List list) { + List = list; + } + + class KV{ + private Integer Key; + private Long Val; + + public Integer getKey() { + return Key; + } + + public void setKey(Integer key) { + Key = key; + } + + public Long getVal() { + return Val; + } + + public void setVal(Long val) { + Val = val; + } + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java new file mode 100644 index 00000000..750bb5f4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/User.java @@ -0,0 +1,54 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +/* +AppAccountFlag: 0 +ContactFlag: 0 +HeadImgFlag: 1 +HeadImgUrl: "/cgi-bin/mmwebwx-bin/webwxgeticon?seq=778915892&username=@7e6934104b3cf1f92dd11344c63a06833ae54bd43b34229b5cc472c4d05eba4a&skey=@crypt_a24169c_f4c07f70afe861da5e8a6e1947044b6e" +HideInputBarFlag: 0 +NickName: "[è¡°]晓炜" +PYInitial: "" +PYQuanPin: "" +RemarkName: "" +RemarkPYInitial: "" +RemarkPYQuanPin: "" +Sex: 1 +Signature: "人工智障" +SnsFlag: 49 +StarFriend: 0 +Uin: 902478981 +UserName: "@7e6934104b3cf1f92dd11344c63a06833ae54bd43b34229b5cc472c4d05eba4a" +VerifyFlag: 0 +WebWxPluginSwitch: 0 +*/ + +/** + * @author WesleyOne + * @create 2018/12/21 + */ +@Deprecated +public class User { + + private String AppAccountFlag; + private String ContactFlag; + private String HeadImgFlag; + private String HeadImgUrl; + private String HideInputBarFlag; + private String NickName; + private String PYInitial; + private String PYQuanPin; + private String RemarkName; + private String RemarkPYInitial; + private String RemarkPYQuanPin; + private String Sex; + /** + * 签名 + */ + private String Signature; + private String SnsFlag; + private String StarFriend; + private String Uin; + private String UserName; + private String VerifyFlag; + private String WebWxPluginSwitch; +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java new file mode 100644 index 00000000..fba7077a --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/beans/WebWxInit.java @@ -0,0 +1,43 @@ +package org.ruoyi.common.wechat.itchat4j.beans; + +import java.util.List; + +/** + * @author WesleyOne + * @create 2018/12/21 + */ +@Deprecated +public class WebWxInit { + + private BaseResponse BaseResponse; + + private String ChatSet; + + private Long ClickReportInterval; + + private Long ClientVersion; + + private List ContactList; + + private Integer Count; + + private Integer GrayScale; + + private Integer InviteStartCount; + + /** + * 订阅号字段省略 + * MPSubscribeMsgCount + * MPSubscribeMsgList + */ + + private String SKey; + + private SyncKey SyncKey; + + private Long SystemTime; + + private User User; + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java new file mode 100644 index 00000000..7e157865 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/HttpClientManage.java @@ -0,0 +1,34 @@ +package org.ruoyi.common.wechat.itchat4j.client; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.client.CookieStore; + +import java.util.HashMap; + +/** + * 多开请求类管理 + * @author WesleyOne + * @create 2018/12/15 + */ +public class HttpClientManage { + + private static HashMap clientMap = new HashMap<>(32); + + public static SingleHttpClient getInstance(String uniqueKey){ + return getInstance(uniqueKey,null); + } + + public static SingleHttpClient getInstance(String uniqueKey,CookieStore outCookieStore) { + if (StringUtils.isEmpty(uniqueKey)){ + return null; + } + SingleHttpClient client; + + // outCookieStore不为空时也重新构造,主要用于热登录 + if (!clientMap.containsKey(uniqueKey) || clientMap.get(uniqueKey) == null || outCookieStore != null){ + client = SingleHttpClient.getInstance(outCookieStore); + clientMap.put(uniqueKey, client); + } + return clientMap.get(uniqueKey); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java new file mode 100644 index 00000000..7fcc9bfb --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java @@ -0,0 +1,187 @@ +package org.ruoyi.common.wechat.itchat4j.client; + +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.CookieStore; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.cookie.Cookie; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.ruoyi.common.wechat.itchat4j.utils.Config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author WesleyOne + * @create 2018/12/15 + */ +public class SingleHttpClient { + private Logger logger = LoggerFactory.getLogger("UTILLOG"); + + private CloseableHttpClient httpClient ; + + private CookieStore cookieStore; + + private String uniqueKey; + + public String getCookie(String name) { + List cookies = cookieStore.getCookies(); + for (Cookie cookie : cookies) { + if (cookie.getName().equalsIgnoreCase(name)) { + return cookie.getValue(); + } + } + return null; + + } + + private SingleHttpClient(CookieStore outCookieStore){ + if (outCookieStore == null){ + outCookieStore = new BasicCookieStore(); + } + this.cookieStore = outCookieStore; + httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).setRetryHandler(new DefaultHttpRequestRetryHandler(0,false)).build(); + } + + private SingleHttpClient(){ + this(null); + } + + public static SingleHttpClient getInstance(CookieStore outCookieStore){ + return new SingleHttpClient(outCookieStore); + } + + /** + * 处理GET请求 + * + * @author https://github.com/yaphone + * @date 2017年4月9日 下午7:06:19 + * @param url + * @param params + * @return + */ + public HttpEntity doGet(String url, List params, boolean redirect, + Map headerMap) { + HttpEntity entity = null; + HttpGet httpGet = new HttpGet(); + + try { + if (params != null) { + String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8)); + httpGet = new HttpGet(url + "?" + paramStr); +// System.out.println(url + "?" + paramStr); + } else { + httpGet = new HttpGet(url); + } + if (!redirect) { + // 禁止重定向 + httpGet.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build()); + } + httpGet.setHeader("User-Agent", Config.USER_AGENT); + if (headerMap != null) { + Set> entries = headerMap.entrySet(); + for (Map.Entry entry : entries) { + httpGet.setHeader(entry.getKey(), entry.getValue()); + } + } + CloseableHttpResponse response = httpClient.execute(httpGet); + entity = response.getEntity(); + } catch (ClientProtocolException e) { + logger.error(e.getMessage()); + } catch (IOException e) { + logger.error(e.getMessage()); + } catch (Exception e){ + logger.error(e.getMessage()); + } + return entity; + } + + /** + * 处理POST请求 + * + * @author https://github.com/yaphone + * @date 2017年4月9日 下午7:06:35 + * @param url + * @param paramsStr + * @return + */ + public HttpEntity doPost(String url, String paramsStr) { + return doPost(url,paramsStr,null); + } + + public HttpEntity doPost(String url, String paramsStr, Map headerMap) { + HttpEntity entity = null; + HttpPost httpPost = new HttpPost(); + try { + StringEntity params = new StringEntity(paramsStr, Consts.UTF_8); + httpPost = new HttpPost(url); + httpPost.setEntity(params); + httpPost.setHeader("Content-type", "application/json; charset=utf-8"); + httpPost.setHeader("User-Agent", Config.USER_AGENT); + if (headerMap != null) { + Set> entries = headerMap.entrySet(); + for (Map.Entry entry : entries) { + httpPost.setHeader(entry.getKey(), entry.getValue()); + } + } + CloseableHttpResponse response = httpClient.execute(httpPost); + entity = response.getEntity(); + } catch (ClientProtocolException e) { + logger.error(e.getMessage()); + } catch (IOException e) { + logger.error(e.getMessage()); + } catch (Exception e){ + logger.error(e.getMessage()); + } + return entity; + } + + /** + * 上传文件到服务器 + * + * @author https://github.com/yaphone + * @date 2017年5月7日 下午9:19:23 + * @param url + * @param reqEntity + * @return + */ + public HttpEntity doPostFile(String url, HttpEntity reqEntity) { + HttpEntity entity = null; + HttpPost httpPost = new HttpPost(url); + httpPost.setHeader("User-Agent", Config.USER_AGENT); + httpPost.setEntity(reqEntity); + try { + CloseableHttpResponse response = httpClient.execute(httpPost); + entity = response.getEntity(); + + } catch (Exception e) { + logger.error(e.getMessage()); + } + return entity; + } + + + public CookieStore getCookieStore() { + return this.cookieStore; + } + + public void setCookieStore(CookieStore cookieStore) { + this.cookieStore = cookieStore; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java new file mode 100644 index 00000000..171f73f3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/controller/LoginController.java @@ -0,0 +1,148 @@ +package org.ruoyi.common.wechat.itchat4j.controller; + +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; +import org.ruoyi.common.wechat.itchat4j.service.ILoginService; +import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.SleepUtils; +import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; +import org.ruoyi.common.wechat.web.base.BaseException; + +/** + * 登陆控制器 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年5月13日 下午12:56:07 + * @version 1.0 + * + * @author WesleyOne 修改 + */ +public class LoginController implements LogInterface { + + private ILoginService loginService; + private String uniqueKey; + private Core core; + + public LoginController(String uniqueKey){ + this.uniqueKey = uniqueKey; + this.loginService = new LoginServiceImpl(uniqueKey); + this.core = CoreManage.getInstance(uniqueKey); + } + + /** + * 获取二维码地址 + * 风险:已登录账号不可调用该接口,会移除当前core信息 + * @return + */ + public String login_1() throws BaseException { + if (core.isAlive()) { + LOG.warn("微信已登陆"); + throw new BaseException("微信已登陆"); + } + LOG.info("1.获取微信UUID"); + while (loginService.getUuid() == null) { + LOG.warn("1.1. 获取微信UUID失败,一秒后重新获取"); + SleepUtils.sleep(1000); + } + LOG.info("2. 获取登陆二维码图片"); + return URLEnum.QRCODE_URL.getUrl() + core.getUuid(); + } + + /** + * 确认登录 + * @return + */ + public boolean login_2(){ + + boolean result = false; + + LOG.info("3. 请扫描二维码图片,并在手机上确认"); + if (!core.isAlive()) { + if (loginService.login()){ + core.setAlive(true); + LOG.info(("3.1登陆成功")); + result = true; + } + } + return result; + } + + /** + * 加载数据 + * @return + */ + public boolean login_3() { + + boolean result = true; + + LOG.info("4.微信初始化"); + if (!loginService.webWxInit()) { + LOG.info("4.1 微信初始化异常"); + result = false; + } + + if (result){ + + LOG.info("5. 开启微信状态通知"); + loginService.wxStatusNotify(); + + LOG.info(String.format("欢迎回来, %s", core.getNickName())); + LOG.info("6.+++开启消息发送线程["+uniqueKey+"]+++"); + Thread sendThread = new Thread(core.getThreadGroup(), () -> MsgCenter.sendMsg(uniqueKey), "SEND-" + uniqueKey); + sendThread.start(); + + LOG.info("8. +++开始接收消息线程["+uniqueKey+"]+++"); + loginService.startReceiving(); + + LOG.info("9. 获取联系人信息"); + loginService.webWxGetContact(); + + LOG.info("10. 获取群好友及群好友列表及缓存"); + loginService.WebWxBatchGetContact(); + + } + + if (!result){ + core.setAlive(false); + return false; + } + + core.setFinishInit(true); + + return true; + } + + public boolean reboot(){ + + core.setFinishInit(false); + // 重新加载数据 + boolean result = true; + LOG.info("1.刷新初始化信息"); + if (!loginService.webWxInit()) { + LOG.info("1.1 微信初始化异常"); + result = false; + } + + if (result){ + LOG.info("2. 刷新开启微信状态通知"); + loginService.wxStatusNotify(); + + LOG.info("3. 刷新获取联系人信息"); + loginService.webWxGetContact(); + + LOG.info("4. 刷新获取群好友及群好友列表"); + loginService.WebWxBatchGetContact(); + } + + if (!result){ + core.setAlive(false); + return false; + } + + core.setFinishInit(true); + return true; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java new file mode 100644 index 00000000..a1c65aa0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/Core.java @@ -0,0 +1,371 @@ +package org.ruoyi.common.wechat.itchat4j.core; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.annotation.JSONField; +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; +import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; +import org.ruoyi.common.wechat.itchat4j.beans.User; +import org.ruoyi.common.wechat.itchat4j.client.HttpClientManage; +import org.ruoyi.common.wechat.itchat4j.client.SingleHttpClient; +import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; +import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.BaseParaEnum; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 核心存储类,全局只保存一份,单例模式 + * + * @author https://github.com/yaphone + * @author WesleyOne 修改 + * @version 1.0 + * @date 创建时间:2017年4月23日 下午2:33:56 + */ +public class Core { + + private Core() { + + } + + private Core(String uniqueKey) { + this.uniqueKey = uniqueKey; + this.myHttpClient = HttpClientManage.getInstance(this.uniqueKey); + this.threadGroup = new ThreadGroup(this.uniqueKey); + } + + protected static Core getInstance(String uniqueKey) { + return new Core(uniqueKey); + } + + private String uniqueKey; + + boolean alive = false; + + /** + * 管理当前机器人的所有业务线程 + */ + @JSONField(serialize = false) + private ThreadGroup threadGroup; + + @JSONField(serialize = false) + boolean isFinishInit = false; + + /** + * login,webWxInit + * 登录接口获取 + */ + private String indexUrl; + private String userName; + private String nickName; + String uuid = null; + /** + * webWxInit + * InviteStartCount + * SyncKey + * synckey 随着每次获取最新消息后的返回值更新,其目的在于每次同步消息后记录一个当前同步的状态 + */ + Map loginInfo = new HashMap(); + + /** + * webWxInit + * 登陆账号自身信息 + * + * @see User + */ + private JSONObject userSelf; + + + /** + * 初始化/cgi-bin/mmwebwx-bin/webwxinit + * 最后一次收到正常retcode的时间,秒为单位 + *

+ * synccheck刷新 + */ + private long lastNormalRetcodeTime; + + + /** + * synccheck和webWxSync容错次数,超过退出 + */ + int receivingRetryCount = 5; + + + @JSONField(serialize = false) + SingleHttpClient myHttpClient; + + public SingleHttpClient getMyHttpClient() { + return HttpClientManage.getInstance(uniqueKey); + } + + /** + * 初始话时获取联系人时创建 + * @see LoginServiceImpl#webWxGetContact() + */ + /** + * memberList长度 + */ + @JSONField(serialize = false) + private int memberCount = 0; + /** + * 好友+群聊+公众号+特殊账号 + * 注意:不主动插入,获取时通过其他几个账号集合合并 + */ + @JSONField(serialize = false) + private List memberList = new ArrayList(); + /** + * 好友 + */ + @JSONField(serialize = false) + private List contactList = new ArrayList(); + /** + * 群 + */ + @JSONField(serialize = false) + private List groupList = new ArrayList(); + /** + * 公众号/服务号 + */ + @Deprecated + @JSONField(serialize = false) + private List publicUsersList = new ArrayList(); + /** + * 特殊账号 + */ + @JSONField(serialize = false) + private List specialUsersList = new ArrayList(); + + /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */ + + /** + * synccheck和webWxSynct添加 + * 异步接受消息存储 + */ + @JSONField(serialize = false) + private List msgList = new ArrayList<>(); + + /** + * 异步发送消息存储 + */ + @JSONField(serialize = false) + private List sendList = new ArrayList(); + + /******************************** + * 缓存字段,用于快速查找 + ********************************/ + + /** + * 微信昵称不能超过16位,而ID比较长,干脆用一个Map + * 群ID或昵称,群信息 + * 注意:存在相同昵称会后者覆盖前者 + *

+ * WebWxBatchGetContact之后可以通过 + * .getJSONArray("MemberList")获取群成员列表 + */ + @JSONField(serialize = false) + private Map groupInfoMap = new HashMap<>(1024); + + /** + * 微信昵称不能超过16位,而ID比较长,干脆用一个Map + * 玩家ID或昵称,玩家信息 + * 注意:存在相同昵称会后者覆盖前者 + */ + @JSONField(serialize = false) + private Map userInfoMap = new HashMap<>(1024); + + /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */ + + /** + * 请求参数 + */ + @JSONField(serialize = false) + public Map getParamMap() { + return new HashMap(1) { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + Map map = new HashMap<>(16); + for (BaseParaEnum baseRequest : BaseParaEnum.values()) { + map.put(baseRequest.para(), getLoginInfo().get(baseRequest.value()).toString()); + } + put("BaseRequest", map); + } + }; + } + + public String getUniqueKey() { + return uniqueKey; + } + + public void setUniqueKey(String uniqueKey) { + this.uniqueKey = uniqueKey; + } + + public boolean isAlive() { + return alive; + } + + public void setAlive(boolean alive) { + this.alive = alive; + if (!alive) { + this.isFinishInit = false; + } + } + + public String getIndexUrl() { + return indexUrl; + } + + public void setIndexUrl(String indexUrl) { + this.indexUrl = indexUrl; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public Map getLoginInfo() { + return loginInfo; + } + + public void setLoginInfo(Map loginInfo) { + this.loginInfo = loginInfo; + } + + public JSONObject getUserSelf() { + return userSelf; + } + + public void setUserSelf(JSONObject userSelf) { + this.userSelf = userSelf; + } + + public long getLastNormalRetcodeTime() { + return lastNormalRetcodeTime; + } + + public void setLastNormalRetcodeTime(long lastNormalRetcodeTime) { + this.lastNormalRetcodeTime = lastNormalRetcodeTime; + } + + public int getReceivingRetryCount() { + return receivingRetryCount; + } + + public void setReceivingRetryCount(int receivingRetryCount) { + this.receivingRetryCount = receivingRetryCount; + } + + public int getMemberCount() { + return getContactList().size() + getGroupList().size() + getPublicUsersList().size() + getSpecialUsersList().size(); + } + + public List getMemberList() { + List memberList = new ArrayList<>(); + memberList.addAll(this.getContactList()); + memberList.addAll(this.getGroupList()); + memberList.addAll(this.getPublicUsersList()); + memberList.addAll(this.getSpecialUsersList()); + return memberList; + } + + public List getContactList() { + return contactList; + } + + public void setContactList(List contactList) { + this.contactList = contactList; + } + + public List getGroupList() { + return groupList; + } + + public void setGroupList(List groupList) { + this.groupList = groupList; + } + + public List getPublicUsersList() { + return publicUsersList; + } + + public void setPublicUsersList(List publicUsersList) { + this.publicUsersList = publicUsersList; + } + + public List getSpecialUsersList() { + return specialUsersList; + } + + public void setSpecialUsersList(List specialUsersList) { + this.specialUsersList = specialUsersList; + } + + public List getMsgList() { + return msgList; + } + + public void setMsgList(List msgList) { + this.msgList = msgList; + } + + public Map getGroupInfoMap() { + return groupInfoMap; + } + + public void setGroupInfoMap(Map groupInfoMap) { + this.groupInfoMap = groupInfoMap; + } + + public Map getUserInfoMap() { + return userInfoMap; + } + + public void setUserInfoMap(Map userInfoMap) { + this.userInfoMap = userInfoMap; + } + + public boolean isFinishInit() { + return isFinishInit; + } + + public void setFinishInit(boolean finishInit) { + isFinishInit = finishInit; + } + + public ThreadGroup getThreadGroup() { + return threadGroup; + } + + public void setThreadGroup(ThreadGroup threadGroup) { + this.threadGroup = threadGroup; + } + + public List getSendList() { + return sendList; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java new file mode 100644 index 00000000..140903fa --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/CoreManage.java @@ -0,0 +1,323 @@ +package org.ruoyi.common.wechat.itchat4j.core; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.cookie.BasicClientCookie; +import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; +import org.ruoyi.common.wechat.itchat4j.client.HttpClientManage; +import org.ruoyi.common.wechat.itchat4j.controller.LoginController; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; +import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; + +import java.io.*; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; + +/** + * 多开管理 + * + * @author WesleyOne + * @create 2018/12/13 + */ +public class CoreManage implements LogInterface { + + static int MAX_CORE_NUM = 50; + private static HashMap coreMap = new HashMap<>(MAX_CORE_NUM / 3 * 4 + 1); + + // 是否热加载 + public static boolean USE_HOT_RELOAD = false; + public static String HOT_RELOAD_DIR = "/Users/wesley/output/hotreload/wxwobot.hot"; + + public static Core getInstance(String uniqueKey) { + if (StringUtils.isEmpty(uniqueKey)) { + return null; + } + Core core; + if (!coreMap.containsKey(uniqueKey) || coreMap.get(uniqueKey) == null) { + core = Core.getInstance(uniqueKey); + coreMap.put(uniqueKey, core); + } + return coreMap.get(uniqueKey); + } + + /** + * 移除 + * + * @param uniqueKey + */ + public static void remove(String uniqueKey) { + if (coreMap.containsKey(uniqueKey)) { + coreMap.remove(uniqueKey); + } + } + + /** + * 查询是否在线 + * + * @param uniqueKey + * @return + */ + public static boolean isActive(String uniqueKey) { + if (StringUtils.isNotEmpty(uniqueKey) && coreMap.containsKey(uniqueKey) && coreMap.get(uniqueKey).isAlive()) { + return true; + } + return false; + } + + /** + * 持久化 + */ + public static void persistence() { + + // 格式化数据 + Collection valueCollection = coreMap.values(); + int size = valueCollection.size(); + // 没有数据不操作 + if (size <= 0) { + return; + } + LOG.info("登录数据持久化中"); + Iterator iterator = valueCollection.iterator(); + JSONArray jsonArray = new JSONArray(); + while (iterator.hasNext()) { + Core core = iterator.next(); + if (core.isAlive()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("core", core); + jsonObject.put("cookies", core.getMyHttpClient().getCookieStore().getCookies()); + jsonArray.add(jsonObject); + } + } + + try { + File file = new File(HOT_RELOAD_DIR); + if (!file.exists()) { + file.createNewFile(); + } + // 每次覆盖 + FileWriter fileWritter = new FileWriter(HOT_RELOAD_DIR, false); + fileWritter.write(jsonArray.toJSONString()); + fileWritter.close(); + + LOG.info("登录数据持久化完成"); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * 启动加载持久化文件 + */ + public static void reload() { + if (USE_HOT_RELOAD) { + File file = new File(HOT_RELOAD_DIR); + if (file.exists()) { + LOG.info("登录数据热加载中"); + StringBuilder stringBuilder = new StringBuilder(); + try { + FileReader fr = new FileReader(HOT_RELOAD_DIR); + BufferedReader bf = new BufferedReader(fr); + String str; + // 按行读取字符串 + while ((str = bf.readLine()) != null) { + stringBuilder.append(str); + } + bf.close(); + fr.close(); + } catch (IOException e) { + e.printStackTrace(); + return; + } + String result = stringBuilder.toString(); + if (StringUtils.isEmpty(result)) { + return; + } + + JSONArray jsonArray = JSONArray.parseArray(result); + int size = jsonArray.size(); + if (size > 0) { + // 封装成线程操作 + for (int i = 0; i < size; i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + ReloadThread reloadThread = new ReloadThread(jsonObject); + Thread thread = new Thread(reloadThread); + thread.start(); + } + } + + LOG.info("登录数据热加载完成"); + } + } + } + + private static class ReloadThread implements Runnable { + + private JSONObject reloadObject; + + public ReloadThread(JSONObject object) { + this.reloadObject = object; + } + + @Override + public void run() { + Core core = null; + try { + /** + * 初始化Core, + * 1.获取登入的状态信息并装入CoreManage + * 2.构建ThreadGroup + * 3.获取Cookies并装入HttpClientManage + * 4.获取信息及启动线程 + */ + JSONObject jsonObject = this.reloadObject; + core = jsonObject.getObject("core", Core.class); + String uniqueKey = core.getUniqueKey(); + if (core.isAlive()) { + core.setThreadGroup(new ThreadGroup(uniqueKey)); + coreMap.put(uniqueKey, core); + + JSONArray cookiesJsonArray = jsonObject.getJSONArray("cookies"); + int arraySize = cookiesJsonArray.size(); + if (arraySize <= 0) { + return; + } + + // 装载原cookie信息,json解析cookie异常,干脆手动封装 + BasicCookieStore cookieStore = new BasicCookieStore(); + for (int ci = 0; ci < arraySize; ci++) { + JSONObject cookieJson = cookiesJsonArray.getJSONObject(ci); + String name = cookieJson.getString("name"); + String value = cookieJson.getString("value"); + String domain = cookieJson.getString("domain"); + String path = cookieJson.getString("path"); + Boolean persistent = cookieJson.getBoolean("persistent"); + Boolean secure = cookieJson.getBoolean("secure"); + Long expiryDate = cookieJson.getLong("expiryDate"); + Integer version = cookieJson.getInteger("version"); + + BasicClientCookie cookie = new BasicClientCookie(name, value); + cookie.setDomain(domain); + cookie.setPath(path); + cookie.setSecure(secure); + cookie.setExpiryDate(new Date(expiryDate)); + cookie.setVersion(version); + + cookieStore.addCookie(cookie); + } + // 必须在构建client时就放入cookie + HttpClientManage.getInstance(uniqueKey, cookieStore); + //装载core信息及启动线程 + LoginController login = new LoginController(uniqueKey); + if (!login.login_3()) { + // 加载失败退出 + core.setAlive(false); + return; + } + LOG.info("热登录成功: {}", uniqueKey); + } + } catch (Exception e) { + e.printStackTrace(); + if (core != null) { + core.setAlive(false); + core = null; + } + } + } + } + + + /** + * 存放新的群,昵称emoji处理 + * + * @param core + * @param jsonObject + */ + public static void addNewGroup(Core core, JSONObject jsonObject) { + String userName = jsonObject.getString("UserName"); + + CommonTools.emojiFormatter2(jsonObject, "NickName"); + // 删除重复的 + core.getGroupList().removeIf(group -> userName.equals(group.getString("UserName"))); + + core.getGroupList().add(jsonObject); + core.getGroupInfoMap().put(jsonObject.getString("NickName"), jsonObject); + core.getGroupInfoMap().put(userName, jsonObject); + } + + + /** + * 存放新的联系人,昵称emoji处理 + * + * @param core + * @param jsonObject + */ + public static void addNewContact(Core core, JSONObject jsonObject) { + String userName = jsonObject.getString("UserName"); + + CommonTools.emojiFormatter2(jsonObject, "NickName"); + // 删除重复的 + core.getContactList().removeIf(contact -> userName.equals(contact.getString("UserName"))); + + core.getContactList().add(jsonObject); + core.getUserInfoMap().put(jsonObject.getString("NickName"), jsonObject); + core.getUserInfoMap().put(userName, jsonObject); + } + + /** + * 消息统一加到队列里处理1 + * 用于已知UserName + * + * @param uniqueKey + * @param toUserName + * @param data + * @param type + */ + public static void addSendMsg4UserName(String uniqueKey, String toUserName, String data, SendMsgType type) { + if (StringUtils.isEmpty(uniqueKey) || StringUtils.isEmpty(toUserName) || StringUtils.isEmpty(data) || type == null) { + LOG.error("消息参数不完整 uk:{} un: {} data: {} ", uniqueKey, toUserName, data); + return; + } + + SendMsg sendMsg = new SendMsg(); + sendMsg.setUserName(toUserName); + sendMsg.setMessage(data); + sendMsg.setMsgType(type); + boolean isGroup = true; + if (toUserName != null && !toUserName.startsWith("@@")) { + isGroup = false; + } + sendMsg.setGroup(isGroup); + CoreManage.getInstance(uniqueKey).getSendList().add(sendMsg); + } + + /** + * 消息统一加到队列里处理2 + * 用于已知NickName + * + * @param uniqueKey + * @param toNickName + * @param data + * @param type + * @param isGroup + */ + public static void addSendMsg4NickName(String uniqueKey, String toNickName, String data, SendMsgType type, Boolean isGroup) { + + if (StringUtils.isEmpty(uniqueKey) || StringUtils.isEmpty(toNickName) || StringUtils.isEmpty(data) || type == null) { + LOG.error("消息参数不完整 uk:{} nn: {} data: {} ", uniqueKey, toNickName, data); + return; + } + + SendMsg sendMsg = new SendMsg(); + sendMsg.setNickName(toNickName); + sendMsg.setMessage(data); + sendMsg.setMsgType(type); + sendMsg.setGroup(isGroup); + CoreManage.getInstance(uniqueKey).getSendList().add(sendMsg); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java new file mode 100644 index 00000000..9a8f607c --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/core/MsgCenter.java @@ -0,0 +1,273 @@ +package org.ruoyi.common.wechat.itchat4j.core; + + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.ruoyi.common.wechat.itchat4j.api.MessageTools; +import org.ruoyi.common.wechat.itchat4j.api.WechatTools; +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; +import org.ruoyi.common.wechat.itchat4j.beans.SendMsg; +import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.MoreConfig; +import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgCodeEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgTypeEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; +import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; + +import java.util.ArrayList; +import java.util.List; + +/** + * 消息处理中心 + * + * @author https://github.com/yaphone + * @author WesleyOne 修改 + * @version 1.0 + * @date 创建时间:2017年5月14日 下午12:47:50 + */ +public class MsgCenter implements LogInterface { + + /** + * 接收消息,放入队列 + * + * @param msgList + * @return + * @author https://github.com/yaphone + * @date 2017年4月23日 下午2:30:48 + */ + public static JSONArray produceMsg(JSONArray msgList, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + JSONArray result = new JSONArray(); + // 用于暂存未知群ID,最后调用webwxbatchgetcontact获取 + List unknowGroup = new ArrayList<>(); + + for (int i = 0; i < msgList.size(); i++) { + JSONObject m = msgList.getJSONObject(i); + // 是否是群消息 + boolean isGroupMsg = false; + boolean isAtMe = false; + if (m.getString("FromUserName").contains("@@") || m.getString("ToUserName").contains("@@")) { + // 群聊消息 + isGroupMsg = true; + if (m.getString("FromUserName").contains("@@") + && !core.getGroupInfoMap().containsKey(m.getString("FromUserName"))) { + unknowGroup.add(m.getString("FromUserName")); + } else if (m.getString("ToUserName").contains("@@") + && !core.getGroupInfoMap().containsKey(m.getString("ToUserName"))) { + unknowGroup.add(m.getString("ToUserName")); + } + // 群消息与普通消息不同的是在其消息体(Content)中会包含发送者id及":
"消息,这里需要处理一下,去掉多余信息,只保留消息内容 + String splitCode = ":
"; + if (m.getString("Content").contains(splitCode)) { + String source = m.getString("Content"); + String content = source.substring(source.indexOf(splitCode) + splitCode.length()); + String sendMemberId = source.substring(0, source.indexOf(splitCode)); + + m.put("Content", content); + m.put(MoreConfig.SEND_MEMBER_ID, sendMemberId); + + if (content.contains("@" + core.getNickName())) { + isAtMe = true; + } + } + + } + m.put("groupMsg", isGroupMsg); + m.put("atMe", isAtMe); + // 1.文本消息 + if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_TEXT.getCode())) { + if (m.getString("Url").length() != 0) { + // 1.1分享位置 不处理 + continue; +// String[] contents = m.getString("Content").split(":"); +// String data = "Map"; +// if (contents.length>0) { +// data = contents[0]+":"+m.getString("Url"); +// } +// m.put("Type", MsgTypeEnum.MAP.getType()); +// m.put("Text", data); +// LOG.warn("MAP_CONTENT: {},URL: {}",m.getString("Content"),m.getString("Url")); + /** + * MAP_CONTENT: 滨兴小区(东区):/cgi-bin/mmwebwx-bin/webwxgetpubliclinkimg?url=xxx&msgid=7525662842661720095&pictype=location,URL: http://apis.map.qq.com/uri/v1/geocoder?coord=30.191660,120.200508 + */ + + } else { + // 1.2 普通文本 + m.put("Type", MsgTypeEnum.TEXT.getType()); + CommonTools.emojiFormatter2(m, "Content"); + m.put("Text", m.getString("Content")); + + } + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_IMAGE.getCode()) + || m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_EMOTICON.getCode())) { + // 2.图片消息 不处理 + continue; +// m.put("Type", MsgTypeEnum.PIC.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VOICE.getCode())) { + // 3.语音消息 不处理 + continue; +// m.put("Type", MsgTypeEnum.VOICE.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VERIFYMSG.getCode())) { + // 4.好友确认消息 不处理 + continue; + // MessageTools.addFriend(core, userName, 3, ticket); // 确认添加好友 +// m.put("Type", MsgTypeEnum.VERIFYMSG.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_SHARECARD.getCode())) { + // 5.共享名片 不处理 +// m.put("Type", MsgTypeEnum.NAMECARD.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_VIDEO.getCode()) + || m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_MICROVIDEO.getCode())) { + // 6.视频 不处理 + continue; +// m.put("Type", MsgTypeEnum.VIEDO.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_MEDIA.getCode())) { + // 7.分享链接 不处理 + continue; +// m.put("Type", MsgTypeEnum.MEDIA.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_STATUSNOTIFY.getCode())) { + // 微信初始化消息 系统 + m.put("Type", MsgTypeEnum.SYS.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_SYS.getCode())) { + // 系统消息 系统 + m.put("Type", MsgTypeEnum.SYS.getType()); + } else if (m.getInteger("MsgType").equals(MsgCodeEnum.MSGTYPE_RECALLED.getCode())) { + // 撤回消息 系统 不处理 + continue; +// m.put("Type", MsgTypeEnum.SYS.getType()); + } else { + LOG.error("Useless msg: {} \n {}", m.getInteger("MsgType"), m.getString("Content")); + } + + /** + * 日志 + * 显示收到的消息 + */ + String nickName; + String memberName = ""; + if (m.getBoolean("groupMsg")) { + nickName = WechatTools.getGroupNickNameByUserName(m.getString("FromUserName"), uniqueKey); + + if (m.getString(MoreConfig.SEND_MEMBER_ID) != null) { + // 获取成员昵称 + memberName = WechatTools.getMemberNickName(m.getString("FromUserName"), uniqueKey, m.getString(MoreConfig.SEND_MEMBER_ID)); + m.put(MoreConfig.SEND_MEMBER_NICKNAMW, memberName); + } + } else { + nickName = WechatTools.getContactNickNameByUserName(m.getString("FromUserName"), uniqueKey); + } + m.put("fromNickName", nickName); + LOG.info("收到【{}】=>【{}】消息,来自: {} 内容:\n{} ", + MsgCodeEnum.fromCode(m.getInteger("MsgType")) == null ? "未知类型" + m.getInteger("MsgType") : MsgCodeEnum.fromCode(m.getInteger("MsgType")).getType(), + m.getString("Type"), + nickName + " : " + memberName, + StringUtils.isNotEmpty(m.getString("Content")) ? m.getString("Content") : ""); + result.add(m); + } + return result; + } + + /** + * 微信接收消息处理 + * + * @param uniqueKey + * @author https://github.com/yaphone + * @date 2017年5月14日 上午10:52:34 + */ + public static void handleMsg(String uniqueKey, IMsgHandlerFace msgHandler) { + Core core = CoreManage.getInstance(uniqueKey); + while (true) { + if (!core.isAlive()) { + LOG.info("停止消息处理"); + break; + } + if (core.getMsgList().size() > 0 && core.getMsgList().get(0).getContent() != null) { + if (core.getMsgList().get(0).getContent().length() > 0) { + BaseMsg msg = core.getMsgList().get(0); + if (msg.getType() != null) { + try { + if (msg.getType().equals(MsgTypeEnum.TEXT.getType())) { + msgHandler.textMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.PIC.getType())) { + msgHandler.picMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.VOICE.getType())) { + msgHandler.voiceMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.VIEDO.getType())) { + msgHandler.videoMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.NAMECARD.getType())) { + msgHandler.nameCardMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.SYS.getType())) { + msgHandler.sysMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.VERIFYMSG.getType())) { + msgHandler.verifyAddFriendMsgHandle(msg); + } else if (msg.getType().equals(MsgTypeEnum.MEDIA.getType())) { + msgHandler.mediaMsgHandle(msg); + } else { + LOG.warn("暂未处理信息【{}】", msg.getType()); + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + } + } + core.getMsgList().remove(0); + } + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + LOG.error("消息处理中断"); + break; + } + } + } + + /** + * 统一发送消息 + * + * @param uniqueKey + */ + public static void sendMsg(String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + while (true) { + if (core == null || !core.isAlive()) { + LOG.info("停止消息发送"); + break; + } + if (CollectionUtil.isNotEmpty(core.getSendList())) { + SendMsg sendMsg = core.getSendList().get(0); + try { + String userName = sendMsg.getUserName(); + String nickName = sendMsg.getNickName(); + String message = sendMsg.getMessage(); + boolean isGroup = sendMsg.isGroup(); + SendMsgType msgType = sendMsg.getMsgType(); + if (StringUtils.isNotEmpty(message) && msgType != null) { + if (StringUtils.isNotEmpty(userName)) { + MessageTools.send(userName, uniqueKey, message, msgType.toValue()); + } else if (StringUtils.isNotEmpty(nickName)) { + MessageTools.sendByNickName(nickName, uniqueKey, message, msgType.toValue(), isGroup); + } else { + LOG.error("无效发送消息: {}", JSONObject.toJSONString(sendMsg)); + } + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + core.getSendList().remove(0); + } + try { + // 控制发送频率 + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + LOG.error("消息发送中断"); + break; + } + } + + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java new file mode 100644 index 00000000..31e2c2a9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/face/IMsgHandlerFace.java @@ -0,0 +1,93 @@ +package org.ruoyi.common.wechat.itchat4j.face; + +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; + +/** + * 消息处理接口 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月20日 上午12:13:49 + * @version 1.0 + * + * @author WesleyOne 修改 + */ +public interface IMsgHandlerFace { + + /** + * + * @author https://github.com/yaphone + * @date 2017年4月20日 上午12:15:00 + * @param msg + * @return + */ + void textMsgHandle(BaseMsg msg); + + /** + * 处理图片消息 + * + * @author https://github.com/yaphone + * @date 2017年4月21日 下午11:07:06 + * @param msg + * @return + */ + void picMsgHandle(BaseMsg msg); + + /** + * 处理声音消息 + * + * @author https://github.com/yaphone + * @date 2017年4月22日 上午12:09:44 + * @param msg + * @return + */ + void voiceMsgHandle(BaseMsg msg); + + /** + * 处理小视频消息 + * + * @author https://github.com/yaphone + * @date 2017年4月23日 下午12:19:50 + * @param msg + * @return + */ + void videoMsgHandle(BaseMsg msg); + + /** + * 处理名片消息 + * + * @author https://github.com/yaphone + * @date 2017年5月1日 上午12:50:50 + * @param msg + * @return + */ + void nameCardMsgHandle(BaseMsg msg); + + /** + * 处理系统消息 + * + * @author Relyn + * @date 2017年6月21日17:43:51 + * @param msg + * @return + */ + void sysMsgHandle(BaseMsg msg); + + /** + * 处理确认添加好友消息 + * + * @date 2017年6月28日 下午10:15:30 + * @param msg + * @return + */ + void verifyAddFriendMsgHandle(BaseMsg msg); + + /** + * 处理收到的文件消息 + * + * @date 2017年7月21日 下午11:59:14 + * @param msg + * @return + */ + void mediaMsgHandle(BaseMsg msg); + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java new file mode 100644 index 00000000..97a7cb51 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/ILoginService.java @@ -0,0 +1,85 @@ +package org.ruoyi.common.wechat.itchat4j.service; + + + +/** + * 登陆服务接口 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年5月13日 上午12:07:21 + * @version 1.0 + * + * @author WesleyOne 修改 + */ +public interface ILoginService { + + /** + * 登陆 + * + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:14:07 + * @return + */ + boolean login(); + + /** + * 获取UUID + * + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:21:40 + * @return + */ + String getUuid(); + + /** + * 获取二维码图片 + * (直接获取图片链接,不下载文件) + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:13:51 + * @param qrPath + * @return + */ + @Deprecated + boolean getQR(String qrPath); + + /** + * web初始化 + * + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:14:13 + * @return + */ + boolean webWxInit(); + + /** + * 微信状态通知 + * + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:14:24 + */ + void wxStatusNotify(); + + /** + * 接收消息 + * + * @author https://github.com/yaphone + * @date 2017年5月13日 上午12:14:37 + */ + void startReceiving(); + + /** + * 获取微信联系人 + * + * @author https://github.com/yaphone + * @date 2017年5月13日 下午2:26:18 + */ + void webWxGetContact(); + + /** + * 批量获取联系人信息 + * + * @date 2017年6月22日 下午11:24:35 + */ + void WebWxBatchGetContact(); + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java new file mode 100644 index 00000000..9e1d021a --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/service/impl/LoginServiceImpl.java @@ -0,0 +1,894 @@ +package org.ruoyi.common.wechat.itchat4j.service.impl; + + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.cookie.Cookie; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; +import org.ruoyi.common.wechat.itchat4j.beans.Member; +import org.ruoyi.common.wechat.itchat4j.beans.WebWxInit; +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.core.MsgCenter; +import org.ruoyi.common.wechat.itchat4j.service.ILoginService; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.SleepUtils; +import org.ruoyi.common.wechat.itchat4j.utils.enums.*; +import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.BaseParaEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.LoginParaEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.StatusNotifyParaEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.parameters.UUIDParaEnum; +import org.ruoyi.common.wechat.itchat4j.utils.tools.CommonTools; +import org.w3c.dom.Document; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.util.*; +import java.util.Map.Entry; +import java.util.regex.Matcher; + +/** + * 登陆服务实现类 + * + * @author https://github.com/yaphone + * @author WesleyOne 修改 + * @version 1.0 + * @date 创建时间:2017年5月13日 上午12:09:35 + */ +public class LoginServiceImpl implements ILoginService, LogInterface { + private Core core; + private String uniqueKey; + + public LoginServiceImpl(String uniqueKey) { + this.uniqueKey = uniqueKey; + this.core = CoreManage.getInstance(uniqueKey); + } + + @Override + public boolean login() { + + boolean isLogin = false; + // 组装参数和URL + List params = new ArrayList(); + params.add(new BasicNameValuePair(LoginParaEnum.LOGIN_ICON.para(), LoginParaEnum.LOGIN_ICON.value())); + params.add(new BasicNameValuePair(LoginParaEnum.UUID.para(), core.getUuid())); + params.add(new BasicNameValuePair(LoginParaEnum.TIP.para(), LoginParaEnum.TIP.value())); + + // long time = 4000; + long startMillis = System.currentTimeMillis(); + boolean overTime = false; + + while (!isLogin && !overTime) { + // 防止请求重复时的问题 + if (core.isAlive()) { + break; + } + + long millis = System.currentTimeMillis(); + params.add(new BasicNameValuePair(LoginParaEnum.R.para(), String.valueOf(millis / 1579L))); + params.add(new BasicNameValuePair(LoginParaEnum._1.para(), String.valueOf(millis))); + HttpEntity entity = core.getMyHttpClient().doGet(URLEnum.LOGIN_URL.getUrl(), params, true, null); + + try { + String result = EntityUtils.toString(entity); + String status = checklogin(result); + if (ResultEnum.SUCCESS.getCode().equals(status)) { + // 处理结果 + if (processLoginInfo(result)) { + isLogin = true; + core.setAlive(isLogin); + break; + } else { + isLogin = false; + core.setAlive(isLogin); + // 登入异常直接退出,防止死循环 + break; + } + } + if (ResultEnum.WAIT_CONFIRM.getCode().equals(status)) { + LOG.info("请点击微信确认按钮,进行登陆"); + } + + } catch (Exception e) { + LOG.error("微信登陆异常!", e); + break; + } + // 3分钟超时不再请求 + SleepUtils.sleep(1000); + overTime = (millis - startMillis) > 1000 * 180; + } + return isLogin; + } + + + @Override + public String getUuid() { + // 组装参数和URL + List params = new ArrayList(); + params.add(new BasicNameValuePair(UUIDParaEnum.APP_ID.para(), UUIDParaEnum.APP_ID.value())); + params.add(new BasicNameValuePair(UUIDParaEnum.FUN.para(), UUIDParaEnum.FUN.value())); + params.add(new BasicNameValuePair(UUIDParaEnum.LANG.para(), UUIDParaEnum.LANG.value())); + params.add(new BasicNameValuePair(UUIDParaEnum._1.para(), String.valueOf(System.currentTimeMillis()))); + + HttpEntity entity = core.getMyHttpClient().doGet(URLEnum.UUID_URL.getUrl(), params, true, null); + + try { + String result = EntityUtils.toString(entity); + String regEx = "window.QRLogin.code = (\\d+); window.QRLogin.uuid = \"(\\S+?)\";"; + Matcher matcher = CommonTools.getMatcher(regEx, result); + LOG.info(result); + if (matcher.find()) { + if ((ResultEnum.SUCCESS.getCode().equals(matcher.group(1)))) { + core.setUuid(matcher.group(2)); + } + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + + return core.getUuid(); + } + + @Deprecated + @Override + public boolean getQR(String qrPath) { + return getQR(qrPath, false); + } + + @Deprecated + public boolean getQR(String qrPath, boolean open) { + qrPath = qrPath + File.separator + "QR.jpg"; + String qrUrl = URLEnum.QRCODE_URL.getUrl() + core.getUuid(); + HttpEntity entity = core.getMyHttpClient().doGet(qrUrl, null, true, null); + try { + // 文件已存在先删除 + File file = new File(qrPath); + if (file.exists() && file.isFile()) { + file.delete(); + } + // 写入二维码 + OutputStream out = new FileOutputStream(qrPath); + byte[] bytes = EntityUtils.toByteArray(entity); + out.write(bytes); + out.flush(); + out.close(); + if (open) { + try { + CommonTools.printQr(qrPath); // 打开登陆二维码图片 + } catch (Exception e) { + LOG.info(e.getMessage()); + } + } + + } catch (Exception e) { + e.printStackTrace(); + LOG.error(e.getMessage(), e); + return false; + } + + return true; + } + + /** + * 获取自身登录信息缓存 + * + * @return + */ + @Override + public boolean webWxInit() { + core.setAlive(true); + core.setLastNormalRetcodeTime(System.currentTimeMillis()); + + try { + // 组装请求URL和参数 + String url = String.format(URLEnum.INIT_URL.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), + System.currentTimeMillis() / 3158L, + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + Map paramMap = core.getParamMap(); + + // 请求初始化接口 + HttpEntity entity = core.getMyHttpClient().doPost(url, JSONObject.toJSONString(paramMap), getPersistentCookieMap()); + String result = EntityUtils.toString(entity, Consts.UTF_8); + + /** + * 相关返回信息,本项目未做封装 + * @see WebWxInit + */ + JSONObject obj = JSON.parseObject(result); + + JSONObject user = obj.getJSONObject(StorageLoginInfoEnum.User.getKey()); + JSONObject syncKey = obj.getJSONObject(StorageLoginInfoEnum.SyncKey.getKey()); + + core.getLoginInfo().put(StorageLoginInfoEnum.InviteStartCount.getKey(), + obj.getInteger(StorageLoginInfoEnum.InviteStartCount.getKey())); + core.getLoginInfo().put(StorageLoginInfoEnum.SyncKey.getKey(), syncKey); + + JSONArray syncArray = syncKey.getJSONArray("List"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < syncArray.size(); i++) { + sb.append(syncArray.getJSONObject(i).getString("Key") + "_" + + syncArray.getJSONObject(i).getString("Val") + "|"); + } + // 1_661706053|2_661706420|3_661706415|1000_1494151022| + String synckey = sb.toString(); + + // 1_661706053|2_661706420|3_661706415|1000_1494151022 + core.getLoginInfo().put(StorageLoginInfoEnum.synckey.getKey(), synckey.substring(0, synckey.length() - 1)); + core.setUserName(user.getString("UserName")); + core.setNickName(user.getString("NickName")); + core.setUserSelf(obj.getJSONObject("User")); + + /** + * TIP: + * ContactList此处只是部分,不做处理,webwxgetcontact接口统一处理 + * MPSubscribeMsgList 公众号服务号也不处理 + */ + } catch (Exception e) { + LOG.error("热登录出现该异常请忽略" + e.getMessage(), e); + core.setAlive(false); + return false; + } + return true; + } + + @Override + public void wxStatusNotify() { + // 组装请求URL和参数 + String url = String.format(URLEnum.STATUS_NOTIFY_URL.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + + Map paramMap = core.getParamMap(); + paramMap.put(StatusNotifyParaEnum.CODE.para(), StatusNotifyParaEnum.CODE.value()); + paramMap.put(StatusNotifyParaEnum.FROM_USERNAME.para(), core.getUserName()); + paramMap.put(StatusNotifyParaEnum.TO_USERNAME.para(), core.getUserName()); + paramMap.put(StatusNotifyParaEnum.CLIENT_MSG_ID.para(), System.currentTimeMillis()); + String paramStr = JSON.toJSONString(paramMap); + + try { + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr); +// String result = EntityUtils.toString(entity, Consts.UTF_8); +// LOG.info(result); + } catch (Exception e) { + LOG.error("微信状态通知接口失败!", e); + } + + } + + @Override + public void startReceiving() { + core.setAlive(true); + Thread thread = new Thread(core.getThreadGroup(), new Runnable() { + int retryCount = 0; + + @Override + public void run() { + while (core.isAlive()) { + try { + long startTime = System.currentTimeMillis(); + Map resultMap = syncCheck(); + LOG.info(JSONObject.toJSONString(resultMap)); + String retcode = resultMap.get("retcode"); + String selector = resultMap.get("selector"); + RetCodeEnum retCodeEnum = RetCodeEnum.fromCode(retcode); + if (retCodeEnum != null) { + LOG.info(retCodeEnum.getType()); + if (retcode.equals(RetCodeEnum.UNKOWN.getCode())) { + // 防止频繁请求 + Thread.sleep(1000); + continue; + } else if (retcode.equals(RetCodeEnum.SUCCESS.getCode())) { + // 修改最后收到正常报文时间 + core.setLastNormalRetcodeTime(System.currentTimeMillis()); + SelectorEnum selectorEnum = SelectorEnum.fromCode(selector); + if (selectorEnum != null) { + if (selector.equals(SelectorEnum.NORMAL.getCode())) { + continue; + } else if (selector.equals(SelectorEnum.NEW_MSG.getCode())) { + // 有新消息 +// processWebwxSync(); + } else if (selector.equals(SelectorEnum.ENTER_OR_LEAVE_CHAT.getCode())) { +// processWebwxSync(); + } else if (selector.equals(SelectorEnum.MOD_CONTACT.getCode())) { +// processWebwxSync(); + } else if (selector.equals(SelectorEnum.SELECTOR_3.getCode())) { +// processWebwxSync(); +// continue; + } else if (selector.equals(SelectorEnum.ADD_OR_DEL_CONTACT.getCode())) { +// processWebwxSync(); + } else { + LOG.error("UNKNOW SELECTOR CODE {}", selector); + } + } else { + // 防止新类型不处理堆积 +// processWebwxSync(); + } + } else if (retcode.equals(RetCodeEnum.NOT_LOGIN_CHECK.getCode()) || + retcode.equals(RetCodeEnum.TICKET_ERROR.getCode()) || + retcode.equals(RetCodeEnum.PARAM_ERROR.getCode()) || + retcode.equals(RetCodeEnum.NOT_LOGIN_WARN.getCode()) || + retcode.equals(RetCodeEnum.COOKIE_INVALID_ERROR.getCode()) || + retcode.equals(RetCodeEnum.LOGIN_ENV_ERROR.getCode())) { + // 状态异常直接退出 + core.setAlive(false); + break; + } else { + // 防止频繁请求 + Thread.sleep(1000); + break; + } + } else { + LOG.error("特殊retcode: {}", retcode); + } + // 统统尝试获取新消息 + processWebwxSync(); + if (System.currentTimeMillis() - startTime < 1000 * 1) { + Thread.sleep(1000); + } + } catch (InterruptedException e0) { + LOG.error("线程中断"); + core.setAlive(false); + break; + } catch (Exception e) { + LOG.error(e.getMessage()); + retryCount += 1; + if (core.getReceivingRetryCount() < retryCount) { + core.setAlive(false); + } else { + try { + Thread.sleep(1000); + } catch (InterruptedException e1) { + LOG.error(e.getMessage()); + break; + } + } + } + + } + } + }, "REC-" + uniqueKey); + thread.start(); + } + + + private void processWebwxSync() { + JSONObject msgObj = webWxSync(); + if (msgObj != null) { + Integer addMsgCount = msgObj.getInteger("AddMsgCount"); + Integer ModMsgCount = msgObj.getInteger("ModContactCount"); + Integer DelContactCount = msgObj.getInteger("DelContactCount"); + Integer ModChatRoomMemberCount = msgObj.getInteger("ModChatRoomMemberCount"); + + + if (addMsgCount > 0 || ModMsgCount > 0 || DelContactCount > 0 || ModChatRoomMemberCount > 0) { + LOG.info("接收原文:{}", msgObj.toJSONString()); + } + + // 用于通知获取详细详细 + List modUserName = new ArrayList<>(); + + // 处理新消息 + try { + + if (addMsgCount > 0) { + JSONArray msgList = msgObj.getJSONArray("AddMsgList"); + msgList = MsgCenter.produceMsg(msgList, uniqueKey); + for (int j = 0; j < msgList.size(); j++) { + BaseMsg baseMsg = JSON.toJavaObject(msgList.getJSONObject(j), + BaseMsg.class); + // TODO 日志 + LOG.info("处理后对象:{}", JSON.toJSONString(baseMsg)); + core.getMsgList().add(baseMsg); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + // 处理修改联系人或群成员 + try { + if (ModMsgCount > 0) { + JSONArray list = msgObj.getJSONArray("ModContactList"); + int size = list.size(); + for (int j = 0; j < size; j++) { + String userName = list.getJSONObject(j).getString("UserName"); + if (userName.startsWith("@@")) { + CoreManage.addNewGroup(core, list.getJSONObject(j)); + } else if (userName.startsWith("@")) { + CoreManage.addNewContact(core, list.getJSONObject(j)); + } + modUserName.add(userName); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + /** + * 没有获取过数据,不知道干啥用 + * DelContactCount: 0 + * DelContactList: [] + * ModChatRoomMemberCount: 0 + * ModChatRoomMemberList: [] + */ + + // 获取详细信息 + WebWxBatchGetContact(modUserName); + + } + + + } + + + @Override + public void webWxGetContact() { + String url = String.format(URLEnum.WEB_WX_GET_CONTACT.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey())); + JSONArray member = new JSONArray(); + try { + + // 循环获取seq直到为0,即获取全部好友列表 ==0:好友获取完毕 >0:好友未获取完毕,此时seq为已获取的字节数 + Long seq = 0L; + do { + // 设置seq传参 + List params = new ArrayList<>(); + params.add(new BasicNameValuePair("r", String.valueOf(System.currentTimeMillis()))); + params.add(new BasicNameValuePair("seq", String.valueOf(seq))); + params.add(new BasicNameValuePair("skey", core.getLoginInfo().get(BaseParaEnum.Skey.value()).toString())); + HttpEntity entity = core.getMyHttpClient().doGet(url, params, false, getPersistentCookieMap()); + + String result = EntityUtils.toString(entity, Consts.UTF_8); + JSONObject fullFriendsJsonList = JSON.parseObject(result); + + if (fullFriendsJsonList.get("Seq") != null) { + seq = fullFriendsJsonList.getLong("Seq"); + } + + // 累加好友列表 + member.addAll(fullFriendsJsonList.getJSONArray(StorageLoginInfoEnum.MemberList.getKey())); + } while (seq > 0); + Iterator iterator = member.iterator(); + while (iterator.hasNext()) { + /** + * @see Member + */ + JSONObject o = (JSONObject) iterator.next(); + + String userName = o.getString("UserName"); + + if (StringUtils.isEmpty(userName)) { + LOG.error("{} 好友列表存在UserName空", core.getUniqueKey()); + continue; + } + /** + * 自己信息不添加 + */ + if (userName.equals(core.getUserName())) { + continue; + } + + /** + * 开头@@ => 群聊 + * 开头@ => VerifyFlag -> == 0 好友 + * -> != 0 公众号、服务号 + * 不含@开头(其他) => 特殊账号 + */ + + if (userName.startsWith("@@")) { + // 群聊 + CoreManage.addNewGroup(core, o); + + } else if (userName.startsWith("@")) { + Integer verifyFlag = o.getInteger("VerifyFlag"); + if (verifyFlag != null && verifyFlag == 0) { + // 好友 + CoreManage.addNewContact(core, o); + } else { + // 公众号 + core.getPublicUsersList().add(o); + } + } else { + // 特殊账号 + core.getSpecialUsersList().add(o); + } + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + return; + } + + /** + * 获取群和好友详细信息 + * 首次加载用 + */ + @Override + public void WebWxBatchGetContact() { + + Map paramMap = core.getParamMap(); + // 处理群成员信息 + int size = core.getGroupList().size(); + List> list = new ArrayList<>(); + for (int i = 0; i < size; i++) { + HashMap map = new HashMap<>(4); + map.put("UserName", core.getGroupList().get(i).getString("UserName")); + map.put("EncryChatRoomId", ""); + list.add(map); + } + // 处理玩家 + int sizeUser = core.getContactList().size(); + for (int i = 0; i < sizeUser; i++) { + HashMap map = new HashMap<>(4); + map.put("UserName", core.getContactList().get(i).getString("UserName")); + map.put("EncryChatRoomId", ""); + list.add(map); + } + + WebWxBatchGetContactMain(paramMap, list); + } + + /** + * 获取群和好友详细信息 + * 过程中零散查询 + */ + public void WebWxBatchGetContact(List userNameList) { + + if (CollectionUtil.isEmpty(userNameList)) { + return; + } + + String url = String.format(URLEnum.WEB_WX_BATCH_GET_CONTACT.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), System.currentTimeMillis(), + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + Map paramMap = core.getParamMap(); + // 为了获取群成员信息 + List> list = new ArrayList<>(); + int size = userNameList.size(); + for (int i = 0; i < size; i++) { + HashMap map = new HashMap<>(4); + map.put("UserName", userNameList.get(i)); + map.put("EncryChatRoomId", ""); + list.add(map); + } + WebWxBatchGetContactMain(paramMap, list); + } + + private void WebWxBatchGetContactMain(Map paramMap, List> list) { + + String url = String.format(URLEnum.WEB_WX_BATCH_GET_CONTACT.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), System.currentTimeMillis(), + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + + int totalSize = list.size(); + + int batchSize = 50; + int num = totalSize / batchSize; + if (totalSize % batchSize > 0) { + num += 1; + } + + for (int i = 0; i < num; i++) { + int startNum = i * batchSize; + int endNum = (i + 1) * batchSize; + if (endNum > totalSize) { + endNum = totalSize; + } + paramMap.put("Count", endNum - startNum); + paramMap.put("List", list.subList(startNum, endNum)); + HttpEntity entity = core.getMyHttpClient().doPost(url, JSON.toJSONString(paramMap), getPersistentCookieMap()); + try { + String text = EntityUtils.toString(entity, Consts.UTF_8); + JSONObject obj = JSON.parseObject(text); + JSONArray contactList = obj.getJSONArray("ContactList"); + int contactSize = contactList.size(); + if (contactSize > 0) { + for (int j = 0; j < contactSize; j++) { + String userName = contactList.getJSONObject(j).getString("UserName"); + if (userName.startsWith("@@")) { + CoreManage.addNewGroup(core, contactList.getJSONObject(j)); + } else if (userName.startsWith("@")) { + CoreManage.addNewContact(core, contactList.getJSONObject(j)); + } + } + } + } catch (Exception e) { + LOG.info(e.getMessage()); + } + } + } + + + /** + * 检查登陆状态 + * + * @param result + * @return + */ + public String checklogin(String result) { + String regEx = "window.code=(\\d+)"; + Matcher matcher = CommonTools.getMatcher(regEx, result); + if (matcher.find()) { + return matcher.group(1); + } + return null; + } + + /** + * 处理登陆信息 + * + * @param loginContent + * @author https://github.com/yaphone + * @date 2017年4月9日 下午12:16:26 + */ + private boolean processLoginInfo(String loginContent) { + String regEx = "window.redirect_uri=\"(\\S+)\";"; + Matcher matcher = CommonTools.getMatcher(regEx, loginContent); + if (matcher.find()) { + String originalUrl = matcher.group(1); + String url = originalUrl.substring(0, originalUrl.lastIndexOf('/')); + core.getLoginInfo().put("url", url); + Map> possibleUrlMap = this.getPossibleUrlMap(); + Iterator>> iterator = possibleUrlMap.entrySet().iterator(); + Entry> entry; + String fileUrl; + String syncUrl; + while (iterator.hasNext()) { + entry = iterator.next(); + String indexUrl = entry.getKey(); + fileUrl = "https://" + entry.getValue().get(0) + "/cgi-bin/mmwebwx-bin"; + syncUrl = "https://" + entry.getValue().get(1) + "/cgi-bin/mmwebwx-bin"; + if (core.getLoginInfo().get("url").toString().contains(indexUrl)) { + core.setIndexUrl(indexUrl); + core.getLoginInfo().put("fileUrl", fileUrl); + core.getLoginInfo().put("syncUrl", syncUrl); + break; + } + } + if (core.getLoginInfo().get("fileUrl") == null && core.getLoginInfo().get("syncUrl") == null) { + core.getLoginInfo().put("fileUrl", url); + core.getLoginInfo().put("syncUrl", url); + } + core.getLoginInfo().put("deviceid", "e" + String.valueOf(new Random().nextLong()).substring(1, 16)); // 生成15位随机数 + core.getLoginInfo().put("BaseRequest", new ArrayList()); + String text = ""; + + try { + Map header = new HashMap<>(); + header.put("client-version", "2.0.0"); + header.put("extspam", "Go8FCIkFEokFCggwMDAwMDAwMRAGGvAESySibk50w5Wb3uTl2c2h64jVVrV7gNs06GFlWplHQbY/5FfiO++1yH4ykCyNPWKXmco+wfQzK5R98D3so7rJ5LmGFvBLjGceleySrc3SOf2Pc1gVehzJgODeS0lDL3/I/0S2SSE98YgKleq6Uqx6ndTy9yaL9qFxJL7eiA/R3SEfTaW1SBoSITIu+EEkXff+Pv8NHOk7N57rcGk1w0ZzRrQDkXTOXFN2iHYIzAAZPIOY45Lsh+A4slpgnDiaOvRtlQYCt97nmPLuTipOJ8Qc5pM7ZsOsAPPrCQL7nK0I7aPrFDF0q4ziUUKettzW8MrAaiVfmbD1/VkmLNVqqZVvBCtRblXb5FHmtS8FxnqCzYP4WFvz3T0TcrOqwLX1M/DQvcHaGGw0B0y4bZMs7lVScGBFxMj3vbFi2SRKbKhaitxHfYHAOAa0X7/MSS0RNAjdwoyGHeOepXOKY+h3iHeqCvgOH6LOifdHf/1aaZNwSkGotYnYScW8Yx63LnSwba7+hESrtPa/huRmB9KWvMCKbDThL/nne14hnL277EDCSocPu3rOSYjuB9gKSOdVmWsj9Dxb/iZIe+S6AiG29Esm+/eUacSba0k8wn5HhHg9d4tIcixrxveflc8vi2/wNQGVFNsGO6tB5WF0xf/plngOvQ1/ivGV/C1Qpdhzznh0ExAVJ6dwzNg7qIEBaw+BzTJTUuRcPk92Sn6QDn2Pu3mpONaEumacjW4w6ipPnPw+g2TfywJjeEcpSZaP4Q3YV5HG8D6UjWA4GSkBKculWpdCMadx0usMomsSS/74QgpYqcPkmamB4nVv1JxczYITIqItIKjD35IGKAUwAA=="); + originalUrl = originalUrl + "&fun=new&version=v2&mod=desktop&lang=zh_CN"; + HttpEntity entity = core.getMyHttpClient().doGet(originalUrl, null, false, header); + text = EntityUtils.toString(entity); + } catch (Exception e) { + LOG.info(e.getMessage()); + return false; + } + //add by 默非默 2017-08-01 22:28:09 + //如果登录被禁止时,则登录返回的message内容不为空,下面代码则判断登录内容是否为空,不为空则退出程序 + String msg = getLoginMessage(text); + if (!"".equals(msg)) { + LOG.info(msg); +// System.exit(0); + return false; + } + Document doc = CommonTools.xmlParser(text); + if (doc != null) { + core.getLoginInfo().put(StorageLoginInfoEnum.skey.getKey(), + doc.getElementsByTagName(StorageLoginInfoEnum.skey.getKey()).item(0).getFirstChild() + .getNodeValue()); + core.getLoginInfo().put(StorageLoginInfoEnum.wxsid.getKey(), + doc.getElementsByTagName(StorageLoginInfoEnum.wxsid.getKey()).item(0).getFirstChild() + .getNodeValue()); + core.getLoginInfo().put(StorageLoginInfoEnum.wxuin.getKey(), + doc.getElementsByTagName(StorageLoginInfoEnum.wxuin.getKey()).item(0).getFirstChild() + .getNodeValue()); + core.getLoginInfo().put(StorageLoginInfoEnum.pass_ticket.getKey(), + doc.getElementsByTagName(StorageLoginInfoEnum.pass_ticket.getKey()).item(0).getFirstChild() + .getNodeValue()); + } + + } + return true; + } + + private Map> getPossibleUrlMap() { + Map> possibleUrlMap = new HashMap>(); + possibleUrlMap.put("wx.qq.com", new ArrayList() { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + add("file.wx.qq.com"); + add("webpush.wx.qq.com"); + } + }); + + possibleUrlMap.put("wx2.qq.com", new ArrayList() { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + add("file.wx2.qq.com"); + add("webpush.wx2.qq.com"); + } + }); + possibleUrlMap.put("wx8.qq.com", new ArrayList() { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + add("file.wx8.qq.com"); + add("webpush.wx8.qq.com"); + } + }); + + possibleUrlMap.put("web2.wechat.com", new ArrayList() { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + add("file.web2.wechat.com"); + add("webpush.web2.wechat.com"); + } + }); + possibleUrlMap.put("wechat.com", new ArrayList() { + /** + * + */ + private static final long serialVersionUID = 1L; + + { + add("file.web.wechat.com"); + add("webpush.web.wechat.com"); + } + }); + return possibleUrlMap; + } + + /** + * 同步消息 sync the messages + * + * @return + * @author https://github.com/yaphone + * @date 2017年5月12日 上午12:24:55 + */ + private JSONObject webWxSync() { + JSONObject result = null; + String url = String.format(URLEnum.WEB_WX_SYNC_URL.getUrl(), + core.getLoginInfo().get(StorageLoginInfoEnum.url.getKey()), + core.getLoginInfo().get(StorageLoginInfoEnum.wxsid.getKey()), + core.getLoginInfo().get(StorageLoginInfoEnum.skey.getKey()), + core.getLoginInfo().get(StorageLoginInfoEnum.pass_ticket.getKey())); + Map paramMap = core.getParamMap(); + paramMap.put(StorageLoginInfoEnum.SyncKey.getKey(), + core.getLoginInfo().get(StorageLoginInfoEnum.SyncKey.getKey())); + paramMap.put("rr", -System.currentTimeMillis() / 1000); + String paramStr = JSON.toJSONString(paramMap); + try { + HttpEntity entity = core.getMyHttpClient().doPost(url, paramStr, getPersistentCookieMap()); + String text = EntityUtils.toString(entity, Consts.UTF_8); + JSONObject obj = JSON.parseObject(text); + if (obj.getJSONObject("BaseResponse").getInteger("Ret") != 0) { + result = null; + } else { + result = obj; + core.getLoginInfo().put(StorageLoginInfoEnum.SyncKey.getKey(), obj.getJSONObject("SyncCheckKey")); + JSONArray syncArray = obj.getJSONObject(StorageLoginInfoEnum.SyncKey.getKey()).getJSONArray("List"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < syncArray.size(); i++) { + sb.append(syncArray.getJSONObject(i).getString("Key") + "_" + + syncArray.getJSONObject(i).getString("Val") + "|"); + } + String synckey = sb.toString(); + /** + * 随着每次获取最新消息(参见9)后的返回值更新,其目的在于每次同步消息后记录一个当前同步的状态 + */ + core.getLoginInfo().put(StorageLoginInfoEnum.synckey.getKey(), + synckey.substring(0, synckey.length() - 1));// 1_656161336|2_656161626|3_656161313|11_656159955|13_656120033|201_1492273724|1000_1492265953|1001_1492250432|1004_1491805192 + } + } catch (Exception e) { + LOG.info(e.getMessage()); + } + return result; + + } + + /** + * 检查是否有新消息 check whether there's a message + * + * @return + * @author https://github.com/yaphone + * @date 2017年4月16日 上午11:11:34 + */ + private Map syncCheck() { + Map resultMap = new HashMap(); + // 组装请求URL和参数 + String url = core.getLoginInfo().get(StorageLoginInfoEnum.syncUrl.getKey()) + URLEnum.SYNC_CHECK_URL.getUrl(); + List params = new ArrayList(); + for (BaseParaEnum baseRequest : BaseParaEnum.values()) { + params.add(new BasicNameValuePair(baseRequest.para().toLowerCase(), + core.getLoginInfo().get(baseRequest.value()).toString())); + } + params.add(new BasicNameValuePair("r", String.valueOf(System.currentTimeMillis()))); + params.add(new BasicNameValuePair("synckey", (String) core.getLoginInfo().get("synckey"))); + params.add(new BasicNameValuePair("_", String.valueOf(System.currentTimeMillis()))); + try { + HttpEntity entity = core.getMyHttpClient().doGet(url, params, true, getPersistentCookieMap()); + if (entity == null) { + resultMap.put("retcode", "9999"); + resultMap.put("selector", "9999"); + return resultMap; + } + String text = EntityUtils.toString(entity); + String regEx = "window.synccheck=\\{retcode:\"(\\d+)\",selector:\"(\\d+)\"\\}"; + Matcher matcher = CommonTools.getMatcher(regEx, text); + if (!matcher.find() || matcher.group(1).equals("2")) { + LOG.info(String.format("Unexpected sync check result: %s", text)); + } else { + resultMap.put("retcode", matcher.group(1)); + resultMap.put("selector", matcher.group(2)); + } + } catch (Exception e) { + e.printStackTrace(); + } + return resultMap; + } + + private Map getPersistentCookieMap() { + /** + * 以下部分确保cookie存在header中,重启时需要强制手动添加, + * TODO 不强制加重启会cookie失效,还不确定问题 + */ + String cookieStr = null; + if (core != null && core.getMyHttpClient() != null && core.getMyHttpClient().getCookieStore() != null) { + List cookies = core.getMyHttpClient().getCookieStore().getCookies(); + StringBuilder sb = new StringBuilder(); + if (CollectionUtil.isNotEmpty(cookies)) { + for (Cookie ck : cookies) { + sb.append(ck.getName()).append('=').append(ck.getValue()).append(';'); + } + cookieStr = sb.toString().substring(0, sb.toString().length() - 1); + } + + } + Map headerMap = null; + if (cookieStr != null) { + headerMap = new HashMap<>(6); + headerMap.put("Cookie", cookieStr); + } + /* ^-----------------------------------------------^ */ + return headerMap; + } + + /** + * 解析登录返回的消息,如果成功登录,则message为空 + * + * @param result + * @return + */ + public String getLoginMessage(String result) { + String[] strArr = result.split(""); + String[] rs = strArr[1].split(""); + if (rs != null && rs.length > 1) { + return rs[0]; + } + return ""; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java new file mode 100644 index 00000000..af88ac30 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/Config.java @@ -0,0 +1,78 @@ +package org.ruoyi.common.wechat.itchat4j.utils; + +import org.ruoyi.common.wechat.itchat4j.utils.enums.OsNameEnum; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; + +/** + * 配置信息 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月23日 下午2:26:21 + * @version 1.0 + * + */ +public class Config { + + public static final String API_WXAPPID = "API_WXAPPID"; + + public static final String picDir = "D://org.ruoyi.common.wechat"; + public static final String VERSION = "1.2.18"; + public static final String BASE_URL = "https://login.weixin.qq.com"; + public static final String OS = ""; + public static final String DIR = ""; + public static final String DEFAULT_QR = "QR.jpg"; + public static final String USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"; + + /** + * 仅仅用于参考 + */ + @Deprecated + public static final ArrayList API_SPECIAL_USER = new ArrayList(Arrays.asList("filehelper", "weibo", + "qqmail", "fmessage", "tmessage", "qmessage", "qqsync", "floatbottle", "lbsapp", "shakeapp", "medianote", + "qqfriend", "readerapp", "blogapp", "facebookapp", "masssendapp", "meishiapp", "feedsapp", "voip", + "blogappweixin", "brandsessionholder", "weixin", "weixinreminder", "officialaccounts", "wxitil", + "notification_messages", "wxid_novlwrv3lqwv11", "gh_22b87fa7cb3c", "userexperience_alarm")); + + /** + * 获取文件目录 + * + * @author https://github.com/yaphone + * @date 2017年4月8日 下午10:27:42 + * @return + */ + public static String getLocalPath() { + String localPath = null; + try { + localPath = new File("").getCanonicalPath(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return localPath; + } + + /** + * 获取系统平台 + * + * @author https://github.com/yaphone + * @date 2017年4月8日 下午10:27:53 + */ + public static OsNameEnum getOsNameEnum() { + String os = System.getProperty("os.name").toUpperCase(); + if (os.indexOf(OsNameEnum.DARWIN.toString()) >= 0) { + return OsNameEnum.DARWIN; + } else if (os.indexOf(OsNameEnum.WINDOWS.toString()) >= 0) { + return OsNameEnum.WINDOWS; + } else if (os.indexOf(OsNameEnum.LINUX.toString()) >= 0) { + return OsNameEnum.LINUX; + } else if (os.indexOf(OsNameEnum.MAC.toString()) >= 0) { + return OsNameEnum.MAC; + } + return OsNameEnum.OTHER; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java new file mode 100644 index 00000000..95bd1166 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/ConstantConfigEnum.java @@ -0,0 +1,34 @@ +package org.ruoyi.common.wechat.itchat4j.utils; + +/** + * 常量 + * + * @author https=//github.com/yaphone + * @date 创建时间:2017年5月5日 下午11=29=04 + * @version 1.0 + * + */ +public class ConstantConfigEnum { + public static final int APPMSGTYPE_TEXT = 1; + public static final int APPMSGTYPE_IMG = 2; + public static final int APPMSGTYPE_AUDIO = 3; + public static final int APPMSGTYPE_VIDEO = 4; + public static final int APPMSGTYPE_URL = 5; + public static final int APPMSGTYPE_ATTACH = 6; + public static final int APPMSGTYPE_OPEN = 7; + public static final int APPMSGTYPE_EMOJI = 8; + public static final int APPMSGTYPE_VOICE_REMIND = 9; + public static final int APPMSGTYPE_SCAN_GOOD = 10; + public static final int APPMSGTYPE_GOOD = 13; + public static final int APPMSGTYPE_EMOTION = 15; + public static final int APPMSGTYPE_CARD_TICKET = 16; + public static final int APPMSGTYPE_REALTIME_SHARE_LOCATION = 17; + // public static final int APPMSGTYPE_TRANSFERS = 2e3; + public static final int APPMSGTYPE_RED_ENVELOPES = 2001; + public static final int APPMSGTYPE_READER_TYPE = 100001; + public static final int UPLOAD_MEDIA_TYPE_IMAGE = 1; + public static final int UPLOAD_MEDIA_TYPE_VIDEO = 2; + public static final int UPLOAD_MEDIA_TYPE_AUDIO = 3; + public static final int UPLOAD_MEDIA_TYPE_ATTACHMENT = 4; + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java new file mode 100644 index 00000000..176c2793 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/LogInterface.java @@ -0,0 +1,13 @@ +package org.ruoyi.common.wechat.itchat4j.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 公共日志接口 + * @author WesleyOne + * @create 2018/12/12 + */ +public interface LogInterface { + public final Logger LOG = LoggerFactory.getLogger("WXROBLOG"); +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java new file mode 100644 index 00000000..88d125cb --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/MoreConfig.java @@ -0,0 +1,12 @@ +package org.ruoyi.common.wechat.itchat4j.utils; + +/** + * @author WesleyOne + * @create 2018/12/19 + */ +public class MoreConfig { + + //存储群聊成员ID的键标识 + public static final String SEND_MEMBER_ID = "sendMemberId"; + public static final String SEND_MEMBER_NICKNAMW = "memberNickname"; +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java new file mode 100644 index 00000000..bff19010 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/SleepUtils.java @@ -0,0 +1,20 @@ +package org.ruoyi.common.wechat.itchat4j.utils; + +/** + * Created by xiaoxiaomo on 2017/5/6. + */ +public class SleepUtils { + + /** + * 毫秒为单位 + * @param time + */ + public static void sleep( long time ){ + try { + Thread.sleep( time ); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java new file mode 100644 index 00000000..b8a5f239 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgCodeEnum.java @@ -0,0 +1,64 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + +/** + * 消息类型 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月23日 下午12:15:00 + * @version 1.0 + * + */ +public enum MsgCodeEnum { + + MSGTYPE_TEXT(1, "文本消息"), + MSGTYPE_IMAGE(3, "图片消息"), + MSGTYPE_VOICE(34, "语音消息"), + MSGTYPE_VERIFYMSG(37, "好友请求"), + MSGTYPE_POSSIBLEFRIEND_MSG(40, "POSSIBLEFRIEND_MSG"), + MSGTYPE_SHARECARD(42, "分享名片"), + MSGTYPE_VIDEO(43, "视频消息"), + MSGTYPE_EMOTICON(47, "表情消息"), + MSGTYPE_LOCATION(48, "位置消息"), + MSGTYPE_MEDIA(49, "分享链接"), + MSGTYPE_VOIPMSG(50, "VOIPMSG"), + MSGTYPE_STATUSNOTIFY(51, "状态通知"), + MSGTYPE_VOIPNOTIFY(52, "VOIPNOTIFY"), + MSGTYPE_VOIPINVITE(53, "VOIPINVITE"), + MSGTYPE_MICROVIDEO(62, "短视频消息"), + MSGTYPE_SYSNOTICE(9999, "SYSNOTICE"), + MSGTYPE_SYS(10000, "系统消息"), + MSGTYPE_RECALLED(10002, "撤回消息") + + ; + + private static final Map lookup = new HashMap<>(); + static { + for (MsgCodeEnum s : EnumSet.allOf(MsgCodeEnum.class)){ + lookup.put(s.getCode(), s); + } + } + public static MsgCodeEnum fromCode(int code) { + return lookup.get(code); + } + + private int code; + private String type; + + MsgCodeEnum(int code, String type) { + this.code = code; + this.type = type; + } + + public int getCode() { + return code; + } + + public String getType() { + return type; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java new file mode 100644 index 00000000..66c0907a --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/MsgTypeEnum.java @@ -0,0 +1,41 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + + +/** + * 消息类型枚举类 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年5月13日 下午11:53:00 + * @version 1.0 + * + */ +public enum MsgTypeEnum { + TEXT("Text", "文本消息"), + MAP("MAP", "地理位置"), + PIC("Pic", "图片消息"), + VOICE("Voice", "语音消息"), + VIEDO("Viedo", "小视频消息"), + NAMECARD("NameCard", "名片消息"), + SYS("Sys", "系统消息"), + VERIFYMSG("VerifyMsg", "添加好友"), + + // 地址分享 + MEDIA("app", "文件消息"); + + private String type; + private String code; + + MsgTypeEnum(String type, String code) { + this.type = type; + this.code = code; + } + + public String getType() { + return type; + } + + public String getCode() { + return code; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java new file mode 100644 index 00000000..0272d76e --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/OsNameEnum.java @@ -0,0 +1,13 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +/** + * 系统平台 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月8日 下午10:36:28 + * @version 1.0 + * + */ +public enum OsNameEnum { + WINDOWS, LINUX, DARWIN, MAC, OTHER +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java new file mode 100644 index 00000000..8c4cdaa3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/ResultEnum.java @@ -0,0 +1,25 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +import lombok.Getter; + +/** + * 返回结构枚举类 + *

+ * Created by xiaoxiaomo on 2017/5/6. + */ +@Getter +public enum ResultEnum { + + SUCCESS("200", "成功"), + WAIT_CONFIRM("201", "请在手机上点击确认"), + WAIT_SCAN("400", "请扫描二维码"); + + + private final String code; + private final String msg; + + ResultEnum(String code, String msg) { + this.code = code; + this.msg = msg; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java new file mode 100644 index 00000000..e4628f2e --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/RetCodeEnum.java @@ -0,0 +1,49 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + + +public enum RetCodeEnum { + + UNKOWN("9999", "未知"), + SUCCESS("0", "成功"), + TICKET_ERROR("-14", "ticket错误"), + PARAM_ERROR("1", "传入参数错误"), + NOT_LOGIN_WARN("1100", "未登录提示"), + NOT_LOGIN_CHECK("1101", "未检测到登录"), + COOKIE_INVALID_ERROR("1102", "cookie值无效"), + LOGIN_ENV_ERROR("1203", "当前登录环境异常,为了安全起见请不要在web端进行登录"), + TOO_OFEN("1205", "操作频繁") + ; + + private static final Map lookup = new HashMap(); + static { + for (RetCodeEnum s : EnumSet.allOf(RetCodeEnum.class)){ + lookup.put(s.getCode(), s); + } + } + public static RetCodeEnum fromCode(String code) { + return lookup.get(code); + } + + private String code; + private String type; + + RetCodeEnum(String code, String type) { + this.code = code; + this.type = type; + } + + public String getCode() { + return code; + } + + public String getType() { + return type; + } + + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java new file mode 100644 index 00000000..99b3048d --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SelectorEnum.java @@ -0,0 +1,48 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + +/** + * @author WesleyOne + * @create 2018/12/21 + */ +public enum SelectorEnum { + + + UNKOWN("9999", "未知"), + NORMAL("0", "正常"), + NEW_MSG("2", "有新消息"), + SELECTOR_3("3", "访问频繁#"), + MOD_CONTACT("4", "有人修改了自己的昵称或你修改了别人的备注"), + ADD_OR_DEL_CONTACT("6", "存在删除或者新增的好友信息"), + ENTER_OR_LEAVE_CHAT("7", "进入或离开聊天界面"); + + private static final Map lookup = new HashMap<>(); + static { + for (SelectorEnum s : EnumSet.allOf(SelectorEnum.class)) { + lookup.put(s.getCode(), s); + } + } + public static SelectorEnum fromCode(String code) { + return lookup.get(code); + } + + private String code; + private String type; + + SelectorEnum(String code, String type) { + this.code = code; + this.type = type; + } + + public String getCode() { + return code; + } + + public String getType() { + return type; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java new file mode 100644 index 00000000..4a424365 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/SendMsgType.java @@ -0,0 +1,65 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +import com.jfinal.plugin.activerecord.Record; + +import java.util.*; +/** + * 发送类型 + * @author WesleyOne + * @create 2018/12/14 + */ +public enum SendMsgType { + + IMG("IMG","图片"), + FILE("FILE","文件"), + TEXT("TEXT","纯文本") + ; + + private String value; + private String name; + + SendMsgType(String value, String name) { + this.value = value; + this.name = name; + } + + + private static final Map lookup = new HashMap<>(); + public static List LIST_KV = new ArrayList<>(); + static { + for (SendMsgType s : EnumSet.allOf(SendMsgType.class)){ + lookup.put(s.toValue(), s); + LIST_KV.add(new Record().set("v",s.toValue()).set("n",s.toName())); + } + } + + + /** + * 获取枚举的值(整数值、字符串值等) + * @return + */ + public String toValue() { + return this.value; + } + + public String toName() { + return this.name; + } + + + /** + * 根据值(整数值、字符串值等)获取相应的枚举类型 + * @param value + * @return + */ + public static SendMsgType fromValue(String value) { + return lookup.get(value); + } + + public boolean equal(SendMsgType type){ + if (type != null && this.toValue().equals(type.toValue())){ + return true; + } + return false; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java new file mode 100644 index 00000000..a9722ee0 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/StorageLoginInfoEnum.java @@ -0,0 +1,57 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +/** + * Created by xiaoxiaomo on 2017/5/7. + */ +public enum StorageLoginInfoEnum { + + //URL + url("url",new String()), + fileUrl("fileUrl",new String()), + syncUrl("syncUrl",new String()), + //生成15位随机数 + deviceid("deviceid",new String()), + + //baseRequest + skey("skey",new String()), + wxsid("wxsid",new String()), + wxuin("wxuin",new String()), + pass_ticket("pass_ticket",new String()), + + + InviteStartCount("InviteStartCount",new Integer(0)), + // 登录用户登录时信息 + User("User",new JSONObject()), + SyncKey("SyncKey",new JSONObject()), + synckey("synckey",new String()), + + + + MemberCount("MemberCount",new String()), + MemberList("MemberList",new JSONArray()), + + + + ; + + private String key; + private Object type; + + StorageLoginInfoEnum(String key, Object type) { + this.key = key; + this.type = type; + } + + public String getKey() { + return key; + } + + + public Object getType() { + return type; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java new file mode 100644 index 00000000..2f713c12 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/URLEnum.java @@ -0,0 +1,49 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +/** + * URL + * Created by xiaoxiaomo on 2017/5/6. + */ +public enum URLEnum { + + + + BASE_URL("https://login.weixin.qq.com","基本的URL"), + UUID_URL(BASE_URL.url+"/jslogin","UUIDLURL"), + QRCODE_URL(BASE_URL.url+"/qrcode/","初始化URL"), + STATUS_NOTIFY_URL(BASE_URL.url+"/webwxstatusnotify?lang=zh_CN&pass_ticket=%s","微信状态通知"), + LOGIN_URL(BASE_URL.url+"/cgi-bin/mmwebwx-bin/login","登陆URL"), + INIT_URL("%s/webwxinit?r=%s&pass_ticket=%s","初始化URL"), + SYNC_CHECK_URL("/synccheck","检查心跳URL"), + WEB_WX_SYNC_URL("%s/webwxsync?sid=%s&skey=%s&pass_ticket=%s&lang=zh_CN","web微信消息同步URL"), + WEB_WX_GET_CONTACT("%s/webwxgetcontact","web微信获取联系人信息URL"), + WEB_WX_SEND_MSG("%s/webwxsendmsg","发送消息URL"), + WEB_WX_UPLOAD_MEDIA("%s/webwxuploadmedia?f=json", "上传文件到服务器"), + WEB_WX_GET_MSG_IMG("%s/webwxgetmsgimg", "下载图片消息"), + WEB_WX_GET_VOICE("%s/webwxgetvoice", "下载语音消息"), + WEB_WX_GET_VIEDO("%s/webwxgetvideo", "下载语音消息"), + WEB_WX_PUSH_LOGIN("%s/webwxpushloginurl", "不扫码登陆"), + WEB_WX_LOGOUT("%s/webwxlogout", "退出微信"), + WEB_WX_BATCH_GET_CONTACT("%s/webwxbatchgetcontact?type=ex&r=%s&lang=zh_CN&pass_ticket=%s", "查询群信息"), + WEB_WX_REMARKNAME("%s/webwxoplog?lang=zh_CN&pass_ticket=%s", "修改好友备注"), + WEB_WX_VERIFYUSER("%s/webwxverifyuser?r=%s&lang=zh_CN&pass_ticket=%s", "被动添加好友"), + WEB_WX_GET_MEDIA("%s/webwxgetmedia", "下载文件") + + + + + ; + + private String url; + private String msg; + + URLEnum(String url, String msg) { + this.url = url; + this.msg = msg; + } + + + public String getUrl() { + return url; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java new file mode 100644 index 00000000..8ff1ea1b --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/VerifyFriendEnum.java @@ -0,0 +1,28 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums; + +/** + * 确认添加好友Enum + * + * @author https://github.com/yaphone + * @date 创建时间:2017年6月29日 下午9:47:14 + * @version 1.0 + * + */ +public enum VerifyFriendEnum { + + ADD(2, "添加"), + ACCEPT(3, "接受"); + + private int code; + private String desc; + + private VerifyFriendEnum(int code, String desc) { + this.code = code; + this.desc = desc; + } + + public int getCode() { + return code; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java new file mode 100644 index 00000000..7631ff37 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/BaseParaEnum.java @@ -0,0 +1,36 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; + +/** + * + * 基本请求参数 + * 1. webWxInit 初始化 + * 2. wxStatusNotify 微信状态通知 + * + *

+ * Created by xiaoxiaomo on 2017/5/7. + */ +public enum BaseParaEnum { + + Uin("Uin", "wxuin"), + Sid("Sid", "wxsid"), + Skey("Skey", "skey"), + DeviceID("DeviceID", "pass_ticket"); + + private String para; + private String value; + + BaseParaEnum(String para, String value) { + this.para = para; + this.value = value; + } + + public String para() { + return para; + } + + + public Object value() { + return value; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java new file mode 100644 index 00000000..507c87ef --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/LoginParaEnum.java @@ -0,0 +1,31 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; + +/** + * 登陆 + *

+ * Created by xiaoxiaomo on 2017/5/7. + */ +public enum LoginParaEnum { + + LOGIN_ICON("loginicon", "true"), + UUID("uuid", ""), + TIP("tip", "0"), + R("r", ""), + _1("_", ""); + + private String para; + private String value; + + LoginParaEnum(String para, String value) { + this.para = para; + this.value = value; + } + + public String para() { + return para; + } + + public String value() { + return value; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java new file mode 100644 index 00000000..6e105e63 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/StatusNotifyParaEnum.java @@ -0,0 +1,31 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; + +/** + * 状态通知 + *

+ * Created by xiaoxiaomo on 2017/5/7. + */ +public enum StatusNotifyParaEnum { + + CODE("Code", "3"), + FROM_USERNAME("FromUserName", ""), + TO_USERNAME("ToUserName", ""), + //时间戳 + CLIENT_MSG_ID("ClientMsgId", ""); + + private String para; + private String value; + + StatusNotifyParaEnum(String para, String value) { + this.para = para; + this.value = value; + } + + public String para() { + return para; + } + + public String value() { + return value; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java new file mode 100644 index 00000000..5d002587 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/enums/parameters/UUIDParaEnum.java @@ -0,0 +1,30 @@ +package org.ruoyi.common.wechat.itchat4j.utils.enums.parameters; + +/** + * UUID + *

+ * Created by xiaoxiaomo on 2017/5/7. + */ +public enum UUIDParaEnum { + + APP_ID("appid", "wx782c26e4c19acffb"), + FUN("fun", "new"), + LANG("lang", "zh_CN"), + _1("_", "时间戳"); + + private String para; + private String value; + + UUIDParaEnum(String para, String value) { + this.para = para; + this.value = value; + } + + public String para() { + return para; + } + + public String value() { + return value; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java new file mode 100644 index 00000000..17b2aff8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java @@ -0,0 +1,301 @@ +package org.ruoyi.common.wechat.itchat4j.utils.tools; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.vdurmont.emoji.EmojiParser; +import org.ruoyi.common.wechat.itchat4j.utils.Config; +import org.ruoyi.common.wechat.itchat4j.utils.enums.OsNameEnum; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.StringReader; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 常用工具类 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月8日 下午10:59:55 + * @version 1.0 + * + */ +public class CommonTools { + + public static boolean printQr(String qrPath) { + + switch (Config.getOsNameEnum()) { + case WINDOWS: + if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) { + Runtime runtime = Runtime.getRuntime(); + try { + runtime.exec("cmd /c start " + qrPath); + } catch (Exception e) { + e.printStackTrace(); + } + } + break; + case MAC: + if (Config.getOsNameEnum().equals(OsNameEnum.MAC)) { + Runtime runtime = Runtime.getRuntime(); + try { + runtime.exec("open " + qrPath); + } catch (Exception e) { + e.printStackTrace(); + } + } + break; + + default: + break; + } + return true; + } + + public static boolean clearScreen() { + switch (Config.getOsNameEnum()) { + case WINDOWS: + if (Config.getOsNameEnum().equals(OsNameEnum.WINDOWS)) { + Runtime runtime = Runtime.getRuntime(); + try { + runtime.exec("cmd /c " + "cls"); + } catch (Exception e) { + e.printStackTrace(); + } + } + break; + + default: + break; + } + return true; + } + + /** + * 正则表达式处理工具 + * + * @author https://github.com/yaphone + * @date 2017年4月9日 上午12:27:10 + * @return + */ + public static Matcher getMatcher(String regEx, String text) { + Pattern pattern = Pattern.compile(regEx); + Matcher matcher = pattern.matcher(text); + return matcher; + } + + /** + * xml解析器 + * + * @author https://github.com/yaphone + * @date 2017年4月9日 下午6:24:25 + * @param text + * @return + */ + public static Document xmlParser(String text) { + Document doc = null; + StringReader sr = new StringReader(text); + InputSource is = new InputSource(sr); + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + try { + DocumentBuilder builder = factory.newDocumentBuilder(); + doc = builder.parse(is); + } catch (Exception e) { + e.printStackTrace(); + } + return doc; + } + + public static JSONObject structFriendInfo(JSONObject userObj) { + Map friendInfoTemplate = new HashMap(); + friendInfoTemplate.put("UserName", ""); + friendInfoTemplate.put("City", ""); + friendInfoTemplate.put("DisplayName", ""); + friendInfoTemplate.put("PYQuanPin", ""); + friendInfoTemplate.put("RemarkPYInitial", ""); + friendInfoTemplate.put("Province", ""); + friendInfoTemplate.put("KeyWord", ""); + friendInfoTemplate.put("RemarkName", ""); + friendInfoTemplate.put("PYInitial", ""); + friendInfoTemplate.put("EncryChatRoomId", ""); + friendInfoTemplate.put("Alias", ""); + friendInfoTemplate.put("Signature", ""); + friendInfoTemplate.put("NickName", ""); + friendInfoTemplate.put("RemarkPYQuanPin", ""); + friendInfoTemplate.put("HeadImgUrl", ""); + + friendInfoTemplate.put("UniFriend", 0); + friendInfoTemplate.put("Sex", 0); + friendInfoTemplate.put("AppAccountFlag", 0); + friendInfoTemplate.put("VerifyFlag", 0); + friendInfoTemplate.put("ChatRoomId", 0); + friendInfoTemplate.put("HideInputBarFlag", 0); + friendInfoTemplate.put("AttrStatus", 0); + friendInfoTemplate.put("SnsFlag", 0); + friendInfoTemplate.put("MemberCount", 0); + friendInfoTemplate.put("OwnerUin", 0); + friendInfoTemplate.put("ContactFlag", 0); + friendInfoTemplate.put("Uin", 0); + friendInfoTemplate.put("StarFriend", 0); + friendInfoTemplate.put("Statues", 0); + + friendInfoTemplate.put("MemberList", new ArrayList()); + + JSONObject r = new JSONObject(); + Set keySet = friendInfoTemplate.keySet(); + for (String key : keySet) { + if (userObj.containsKey(key)) { + r.put(key, userObj.get(key)); + } else { + r.put(key, friendInfoTemplate.get(key)); + } + } + + return r; + } + + public static String getSynckey(JSONObject obj) { + JSONArray obj2 = obj.getJSONArray("List"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < obj2.size(); i++) { + JSONObject obj3 = (JSONObject) JSON.toJSON(obj2.get(i)); + sb.append(obj3.get("Val") + "|"); + } + return sb.substring(0, sb.length() - 1); // 656159784|656159911|656159873|1491905341 + + } + + public static JSONObject searchDictList(List list, String key, String value) { + JSONObject r = null; + for (JSONObject i : list) { + if (i.getString(key).equals(value)) { + r = i; + break; + } + } + return r; + } + + /** + * 处理emoji表情 + * + * @author https://github.com/yaphone + * @date 2017年4月23日 下午2:39:04 + * @param d + * @param k + */ + public static void emojiFormatter(JSONObject d, String k) { +// Matcher matcher = getMatcher("", d.getString(k)); + Matcher matcher = getMatcher("", d.getString(k)); + StringBuilder sb = new StringBuilder(); + String content = d.getString(k); + int lastStart = 0; + while (matcher.find()) { + String str = matcher.group(1); + if (str.length() == 6) { + + } else if (str.length() == 10) { + + } else { + str = "&#x" + str + ";"; + String tmp = content.substring(lastStart, matcher.start()); + sb.append(tmp + str); + lastStart = matcher.end(); + } + } + if (lastStart < content.length()) { + sb.append(content.substring(lastStart)); + } + if (sb.length() != 0) { + d.put(k, EmojiParser.parseToUnicode(sb.toString())); + } else { + d.put(k, content); + } + + } + + /** + * 转化成alias + * @param d + * @param k + */ + public static void emojiFormatter2(JSONObject d, String k) { + Matcher matcher = getMatcher("", d.getString(k)); + StringBuilder sb = new StringBuilder(); + String content = d.getString(k); + int lastStart = 0; + while (matcher.find()) { + String str = matcher.group(1); + if (str.length() == 6) { + + } else if (str.length() == 10) { + + } else { + str = "&#x" + str + ";"; + String tmp = content.substring(lastStart, matcher.start()); + sb.append(tmp + str); + lastStart = matcher.end(); + } + } + if (lastStart < content.length()) { + sb.append(content.substring(lastStart)); + } + if (sb.length() != 0) { + d.put(k, EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString()))); + } else { + d.put(k, content); + } + + } + + /** + * 消息格式化 + * + * @author https://github.com/yaphone + * @date 2017年4月23日 下午4:19:08 + * @param d + * @param k + */ + public static void msgFormatter(JSONObject d, String k) { + d.put(k, d.getString(k).replace("
", "\n")); + emojiFormatter(d, k); + // TODO 与emoji表情有部分兼容问题,目前暂未处理解码处理 d.put(k, + // StringEscapeUtils.unescapeHtml4(d.getString(k))); + + } + + public static void main(String[] args) { + String str2 = "三生三世十三水"; + + Matcher matcher = getMatcher("", str2); + StringBuilder sb = new StringBuilder(); + String content = str2; + int lastStart = 0; + while (matcher.find()) { + String str = matcher.group(1); + if (str.length() == 6) { + + } else if (str.length() == 10) { + + } else { + str = "&#x" + str + ";"; + String tmp = content.substring(lastStart, matcher.start()); + sb.append(tmp + str); + lastStart = matcher.end(); + } + } + if (lastStart < content.length()) { + sb.append(content.substring(lastStart)); + } + if (sb.length() != 0) { + System.out.println(EmojiParser.parseToUnicode(sb.toString())); + System.out.println(EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString()))); + System.out.println(EmojiParser.removeAllEmojis(sb.toString())); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java new file mode 100644 index 00000000..3b1f3600 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/DownloadTools.java @@ -0,0 +1,77 @@ +package org.ruoyi.common.wechat.itchat4j.utils.tools; + +import org.apache.http.HttpEntity; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.ruoyi.common.wechat.itchat4j.beans.BaseMsg; +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.utils.LogInterface; +import org.ruoyi.common.wechat.itchat4j.utils.enums.MsgTypeEnum; +import org.ruoyi.common.wechat.itchat4j.utils.enums.URLEnum; + +import java.io.FileOutputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; + +/** + * 下载工具类 + * + * @author https://github.com/yaphone + * @date 创建时间:2017年4月21日 下午11:18:46 + * @version 1.0 + * + */ +public class DownloadTools implements LogInterface { + private static Logger logger = Logger.getLogger("UTILLOG"); + + /** + * 处理下载任务 + * + * @author https://github.com/yaphone + * @date 2017年4月21日 下午11:00:25 + * @param msg + * @param type + * @param path + * @return + */ + public static Object getDownloadFn(BaseMsg msg, String type, String path, String uniqueKey) { + Core core = CoreManage.getInstance(uniqueKey); + Map headerMap = new HashMap(); + List params = new ArrayList(); + String url = ""; + if (type.equals(MsgTypeEnum.PIC.getType())) { + url = String.format(URLEnum.WEB_WX_GET_MSG_IMG.getUrl(), (String) core.getLoginInfo().get("url")); + } else if (type.equals(MsgTypeEnum.VOICE.getType())) { + url = String.format(URLEnum.WEB_WX_GET_VOICE.getUrl(), (String) core.getLoginInfo().get("url")); + } else if (type.equals(MsgTypeEnum.VIEDO.getType())) { + headerMap.put("Range", "bytes=0-"); + url = String.format(URLEnum.WEB_WX_GET_VIEDO.getUrl(), (String) core.getLoginInfo().get("url")); + } else if (type.equals(MsgTypeEnum.MEDIA.getType())) { + headerMap.put("Range", "bytes=0-"); + url = String.format(URLEnum.WEB_WX_GET_MEDIA.getUrl(), (String) core.getLoginInfo().get("fileUrl")); + params.add(new BasicNameValuePair("sender", msg.getFromUserName())); + params.add(new BasicNameValuePair("mediaid", msg.getMediaId())); + params.add(new BasicNameValuePair("filename", msg.getFileName())); + } + params.add(new BasicNameValuePair("msgid", msg.getNewMsgId())); + params.add(new BasicNameValuePair("skey", (String) core.getLoginInfo().get("skey"))); + HttpEntity entity = core.getMyHttpClient().doGet(url, params, true, headerMap); + try { + OutputStream out = new FileOutputStream(path); + byte[] bytes = EntityUtils.toByteArray(entity); + out.write(bytes); + out.flush(); + out.close(); + } catch (Exception e) { + logger.info(e.getMessage()); + return false; + } + return null; + }; + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java new file mode 100644 index 00000000..22ec06c4 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/annotation/UnCheckLogin.java @@ -0,0 +1,11 @@ +package org.ruoyi.common.wechat.web.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * 不检查登录 + */ +@Retention(RetentionPolicy.RUNTIME) +public @interface UnCheckLogin { +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java new file mode 100644 index 00000000..41c263cb --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseError.java @@ -0,0 +1,56 @@ +package org.ruoyi.common.wechat.web.base; + +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; + +/** + * 错误管理 + * @author WesleyOne + * @create 2018/7/28 + */ +public enum BaseError { + + UNPERMISSION("09","没有操作权限"), + UNLOGIN("01","未登录或登录过期"), + OPERATION_ERR("8899","操作失败!"), + NORMAL_ERR("8999","参数异常"), + SYSTEM_ERR("9999","系统异常"); + + + private String code; + private String msg; + BaseError(String code, String msg) { + this.code = code; + this.msg = msg; + } + + + private static final Map lookup = new HashMap(); + static { + for (BaseError s : EnumSet.allOf(BaseError.class)) + lookup.put(s.getMsg(), s); + } + + /** + * 获取枚举的值(整数值、字符串值等) + * @return + */ + public String getCode() { + return this.code; + } + + public String getMsg() { + return this.msg; + } + + + /** + * 根据值(整数值、字符串值等)获取相应的枚举类型 + * @param code + * @return + */ + public static BaseError fromValue(String code) { + return lookup.get(code); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java new file mode 100644 index 00000000..aecd571b --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseException.java @@ -0,0 +1,40 @@ +package org.ruoyi.common.wechat.web.base; + +import java.io.Serializable; + +/** + * 统一异常对象 + * @author WesleyOne + * @create 2018/7/28 + */ +public class BaseException extends Exception implements Serializable { + + private static final long serialVersionUID = 2007525058641283836L; + + private String code; + + public BaseException(String code, String msg) { + super(msg); + this.code = code; + + } + + public BaseException(BaseError baseError) { + super(baseError.getMsg()); + this.code = baseError.getCode(); + } + + public BaseException(String msg) { + super(msg); + this.code = BaseError.NORMAL_ERR.getCode(); + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java new file mode 100644 index 00000000..c8468a4d --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/base/BaseResponse.java @@ -0,0 +1,85 @@ +package org.ruoyi.common.wechat.web.base; + +/** + * @author WesleyOne + * @create 2018/7/28 + */ +public class BaseResponse { + public static BaseResponse OK = new BaseResponse(); + + private String code = "00"; + private String message = "操作成功"; + + private T data; + public BaseResponse() { + } + + public BaseResponse(T data) { + this.data = data; + } + + public BaseResponse(String code, String message) { + this.code = code; + this.message = message; + } + + public static BaseResponse success(){ + return new BaseResponse(); + } + + public static BaseResponse success(Object o){ + return new BaseResponse(o); + } + + public static BaseResponse error(String code,String msg){ + BaseResponse r = new BaseResponse(); + r.setCode(code); + r.setMessage(msg); + return r; + } + public static BaseResponse error(BaseError baseError){ + BaseResponse r = new BaseResponse(); + r.setCode(baseError.getCode()); + r.setMessage(baseError.getMsg()); + return r; + } + + /** + * 未登录返回 + * @return + */ + public static BaseResponse unLogin(){ + BaseResponse r = new BaseResponse(); + r.setCode(BaseError.UNLOGIN.getCode()); + r.setMessage(BaseError.UNLOGIN.getMsg()); + return r; + } + + /** + * 无权限返回 + * @return + */ + public static BaseResponse unPermission(){ + BaseResponse r = new BaseResponse(); + r.setCode(BaseError.UNPERMISSION.getCode()); + r.setMessage(BaseError.UNPERMISSION.getMsg()); + return r; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java new file mode 100644 index 00000000..a915d7ff --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/cache/UserSession.java @@ -0,0 +1,30 @@ +package org.ruoyi.common.wechat.web.cache; + +import org.ruoyi.common.wechat.web.utils.LRUCache; + +import java.util.LinkedHashMap; + +/** + * 简单的本地会话存储 + * @author WesleyOne + * @create 2018/9/25 + */ +public class UserSession { + public static LinkedHashMap USERSESSION_CACHE = new LRUCache(64); + + public static void addUserSession(String username,String userSession){ + USERSESSION_CACHE.put(username,userSession); + } + + public static void delUserSession(String username){ + USERSESSION_CACHE.remove(username); + } + + public static boolean checkUserSession(String username,String userSession){ + String s = USERSESSION_CACHE.get(username); + if (userSession!=null&&userSession.equals(s)){ + return true; + } + return false; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java new file mode 100644 index 00000000..779f1a5b --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyConfig.java @@ -0,0 +1,153 @@ +package org.ruoyi.common.wechat.web.common; + +import com.alibaba.druid.filter.stat.StatFilter; +import com.alibaba.druid.wall.WallFilter; +import com.jfinal.config.*; +import com.jfinal.json.FastJsonFactory; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.dialect.MysqlDialect; +import com.jfinal.plugin.druid.DruidPlugin; +import com.jfinal.server.undertow.UndertowServer; +import com.jfinal.template.Engine; +import com.jfinal.template.source.ClassPathSourceFactory; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.web.constant.UploadConstant; +import org.ruoyi.common.wechat.web.interceptor.ExceptionInterceptor; +import org.ruoyi.common.wechat.web.model._MappingKit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; + + +/** + * JFinal项目的核心配置 + * 详情查看官方文档 + * https://www.jfinal.com/doc + * + * @author WesleyOne + */ +public class MyConfig extends JFinalConfig { + + public final Logger LOG = LoggerFactory.getLogger(this.getClass()); + + public static void main(String[] args) { + UndertowServer.start(MyConfig.class, 8180, true); + } + + /** + * 配置常量 + */ + @Override + public void configConstant(Constants me) { + PropKit.use("appConfig.properties"); + me.setDevMode(PropKit.getBoolean("devMode", false)); + //上传的文件的最大50M + me.setMaxPostSize(10 * 1024 * 1024); + me.setEncoding("UTF-8"); + me.setJsonFactory(new FastJsonFactory()); + me.setError404View("/WEB-INF/templates/404.html"); + } + + /** + * 配置路由 + */ + @Override + public void configRoute(Routes me) { + me.add(new MyRoute()); + me.add(new OutRoute()); + } + + @Override + public void configEngine(Engine me) { + me.setDevMode(PropKit.use("appConfig.properties").getBoolean("devMode", false)); + me.addSharedFunction("/WEB-INF/templates/bs4temp/layout.html"); + me.addSharedObject("imgDomain" , UploadConstant.IMG_URL); + me.addSharedObject("filedomain" , UploadConstant.FILE_URL); + } + + /** + * 配置插件 + */ + @Override + public void configPlugin(Plugins me) { + // 配置 druid 数据库连接池插件 + DruidPlugin druidPlugin = createDruidPlugin(); + druidPlugin.addFilter(new StatFilter()); + WallFilter wall = new WallFilter(); + wall.setDbType("mysql"); + druidPlugin.addFilter(wall); + druidPlugin.setInitialSize(1); + me.add(druidPlugin); + + // 配置ActiveRecord插件 + ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin); + _MappingKit.mapping(arp); + arp.setDialect(new MysqlDialect()); + arp.setShowSql(PropKit.use("appConfig.properties").getBoolean("devMode", false)); + arp.getEngine().setSourceFactory(new ClassPathSourceFactory()); + me.add(arp); + } + + public static DruidPlugin createDruidPlugin() { + return new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim()); + } + /** + * 配置全局拦截器 + */ + @Override + public void configInterceptor(Interceptors me) { + me.add(new ExceptionInterceptor()); + } + + /** + * 配置处理器 + */ + @Override + public void configHandler(Handlers me) { + } + + @Override + public void afterJFinalStart() { + System.setProperty("jsse.enableSNIExtension", "false"); + // 检查文件夹(/热登录/下载根目录)是否存在 + checkFileExist(); + + // 热登陆操作 + CoreManage.reload(); + } + + @Override + public void beforeJFinalStop() { + CoreManage.persistence(); + } + + /** + * 检查文件夹(/热登录/下载根目录)是否存在 + */ + private void checkFileExist() { + String hotReloadDir = PropKit.get("hotReloadDir"); + String downloadPath = PropKit.get("download_path"); + String logPath = PropKit.get("log_path"); + File hotReloadFile = new File(hotReloadDir); + if (!hotReloadFile.exists()){ + if (!hotReloadFile.mkdirs()) { + LOG.error("热加载文件夹创建失败[{}]",hotReloadDir); + } + } + File downloadFile = new File(downloadPath); + if (!downloadFile.exists()){ + if (!downloadFile.mkdirs()) { + LOG.error("下载文件夹创建失败[{}]",downloadPath); + } + } + File logFile = new File(logPath); + if (!logFile.exists()){ + if (!logFile.mkdirs()) { + LOG.error("日志文件夹创建失败[{}]",logPath); + } + } + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java new file mode 100644 index 00000000..b4b89fb3 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/MyRoute.java @@ -0,0 +1,30 @@ +package org.ruoyi.common.wechat.web.common; + +import com.jfinal.config.Routes; +import org.ruoyi.common.wechat.web.controller.*; +import org.ruoyi.common.wechat.web.interceptor.VisitLogInterceptor; + +/** + * 管理后台路由统一管理 + * @author wesleyOne + */ +public class MyRoute extends Routes { + + + @Override + public void config() { + //设置视图根目录 + setBaseViewPath("/WEB-INF/templates"); + //设置拦截器,前面的先执行 + addInterceptor(new VisitLogInterceptor()); + //添加路由 + add("/", IndexController.class); + add("/rob",RobotController.class); + add("/robwk",RobotWorkController.class); + add("/relate",RelateController.class); + add("/kw",KeyWordController.class); + + add("/upload",UploadController.class); + add("/tool",ToolController.class); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java new file mode 100644 index 00000000..979389f7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/common/OutRoute.java @@ -0,0 +1,21 @@ +package org.ruoyi.common.wechat.web.common; + +import com.jfinal.config.Routes; +import org.ruoyi.common.wechat.web.controller.ExtendController; +import org.ruoyi.common.wechat.web.interceptor.VisitLogInterceptor4down; + +/** + * 对外路由统一管理 + * @author WesleyOne + * @create 2018/9/25 + */ +public class OutRoute extends Routes { + @Override + public void config() { + //设置视图根目录 + setBaseViewPath("/WEB-INF/templates"); + addInterceptor(new VisitLogInterceptor4down()); + //添加路由 + add("/ext", ExtendController.class); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java new file mode 100644 index 00000000..76577c4d --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/ConfigKeys.java @@ -0,0 +1,21 @@ +package org.ruoyi.common.wechat.web.constant; + +/** + * @author WesleyOne + * @create 2018/12/13 + */ +public class ConfigKeys { + + /** + * 默认全局关键字回复用昵称,该字段超过16字符防止与用户昵称冲突 + * + * http://kf.qq.com/touch/wxappfaq/150910F322eY150910eIV32Q.html?platform=14 + * 微信昵称设置规则 + * 最多可设置16个汉字,可设置含有中文、英文、数字、符号组合的昵称,但不建议设置特殊字符。 + * 温馨提示:1个符号相当于一个汉字,2个数字/英文相当于1个汉字; + */ + public static final String DEAFAULT_KEYWORD = "默认全局关键字回复用昵称-请勿修改"; + public static final String DEAFAULT_WELCOME = "默认群欢迎新人用-请勿修改"; + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java new file mode 100644 index 00000000..3155faff --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/constant/UploadConstant.java @@ -0,0 +1,21 @@ +package org.ruoyi.common.wechat.web.constant; + +import com.jfinal.kit.PathKit; + +import java.io.File; + +public class UploadConstant { + + public static final String IMG_FOLD = "img"; + public static final String FILE_FOLD = "file"; + + public static final String IMG_URL = "/"+IMG_FOLD+"/"; + public static final String FILE_URL = "/"+FILE_FOLD+"/"; + + public static final String IMG_PATH = PathKit.getWebRootPath()+ File.separator +IMG_FOLD; + public static final String FILE_PATH = PathKit.getWebRootPath()+ File.separator +FILE_FOLD; + public static final String IMG_PATH_SEP = IMG_PATH + File.separator; + public static final String FILE_PATH_SEP = FILE_PATH + File.separator; + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java new file mode 100644 index 00000000..dcd0f4ed --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ExtendController.java @@ -0,0 +1,125 @@ +package org.ruoyi.common.wechat.web.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; +import org.ruoyi.common.wechat.web.model.WxRobRelation; +import org.ruoyi.common.wechat.web.utils.IpUtil; + +/** + * 对外接口 + * @author WesleyOne + * @create 2018/12/16 + */ +public class ExtendController extends _BaseController { + + + /** + * 对外通用规则发消息 + * 参数: + * ok 外接唯一码 + * msg 消息列表 + * 类型参考@see org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType + * TEXT 文本消息串 + * IMG 图片名串(需要后台-通用工具-上传获取) + * FILE 文件名串(需要后台-通用工具-上传获取) + * 例子: + * {"ok":"test123", + * "msg":[ + * {"type":"TEXT","body":"我是消息体"}, + * {"type":"IMG","body":"ty6yLk3X_1545142908614.jpg"}, + * {"type":"FILE","body":"ty6yLk3X_1545142537914.txt"}, + * ] + * } + * + * 说明: + * 发送顺序按照列表顺序从前往后发 + * + * 返回: + * 00 成功 + * 01 外接码不存在 + * 02 外接码失效 + * 03 IP未通过审核 + * + */ + public void sendMsg(){ + + JSONObject postParam = getPostParam(); + String outKey = postParam.getString("ok"); + String msgStr = postParam.getString("msg"); + JSONArray msgs = JSONArray.parseArray(msgStr); + + if (StringUtils.isEmpty(outKey)){ + setCode("01"); + setMsg("外接码不存在"); + renderJson(); + return; + } + + WxRobRelation relationRecord = WxRobRelation.dao.findFirst("SELECT * FROM wx_rob_relation WHERE out_key = ? LIMIT 1", outKey); + + /** + * 校验IP + * 1.配置空则拒绝所有 + * 2.存在0.0.0.0不校验 + */ + String whiteList = relationRecord.getWhiteList(); + if (StringUtils.isEmpty(whiteList) || !relationRecord.getEnable()){ + setCode("02"); + setMsg("外接码失效或未配置白名单"); + renderJson(); + return; + } + String allPassIp = "0.0.0.0"; + // 不是完全开放IP并且访问IP不存在 + if (!whiteList.contains(allPassIp)){ + String outRealIp = IpUtil.getRealIp(getRequest()); + if (!whiteList.contains(outRealIp)){ + setCode("03"); + setMsg("IP未通过审核"); + renderJson(); + return; + } + } + + String uniqueKey = relationRecord.getUniqueKey(); + // 查看机器是否加载完成 + if (!CoreManage.getInstance(uniqueKey).isAlive() || !CoreManage.getInstance(uniqueKey).isFinishInit()){ + setCode("05"); + setMsg("机器未准备完成"); + renderJson(); + return; + } + + + /** + * 添加到消息队列 + */ + Boolean toGroup = relationRecord.getToGroup(); + String nickName = relationRecord.getNickName(); + // 单次请求最大消息数 + int maxMessages = 10; + int msgLength = msgs.size(); + if (msgLength page = WxRobKeyword.dao.paginate(pageNum, rows, "select * ", + " from wx_rob_keyword "+where); + + setAttrs(buildPagination(page.getList(), page.getTotalRow())); + render(new JsonRender().forIE()); + } + + public void editIndex(){ + Integer kid = getParaToInt("kid"); + WxRobKeyword kwRecord; + boolean isEdit = true; + List groupNickNames = new ArrayList<>(); + if (kid != null){ + kwRecord = WxRobKeyword.dao.findById(kid); + }else{ + isEdit = false; + kwRecord = new WxRobKeyword(); + String uniqueKey = getPara("uk"); + if (StringUtils.isNotEmpty(uniqueKey)){ + kwRecord.setUniqueKey(uniqueKey); + groupNickNames.addAll(WechatTools.getGroupNickNameList(uniqueKey)); + } + // 默认显示文本 + kwRecord.setTypeData(KeyMsgValueType.TEXT.toValue()); + } + setAttr("isEdit",isEdit); + setAttr("form",kwRecord); + + setAttr("keys",KeyMsgValueType.LIST_KV); + setAttr("groupNickNames",groupNickNames); + renderTemplate("editIndex.html"); + } + + /** + * 新增修改 + */ + public void editKeyWord(){ + JSONObject postParam = getPostParam(); + Long id = postParam.getLong("kid"); + String uniqueKey = postParam.getString("uniqueKey"); + String keyData = postParam.getString("keyData"); + String valueData = postParam.getString("valueData"); + String nickName = postParam.getString("nickName"); + String typeData = postParam.getString("typeData"); + Boolean enable = postParam.getBoolean("enable"); + Boolean toGroup = postParam.getBoolean("toGroup"); + + WxRobKeyword editRecord = new WxRobKeyword(); + + if (StringUtils.isNotEmpty(keyData)){ + editRecord.setKeyData(keyData); + } + if (StringUtils.isNotEmpty(valueData)){ + editRecord.setValueData(valueData); + } + if (StringUtils.isNotEmpty(nickName)){ + editRecord.setNickName(nickName); + } + if (KeyMsgValueType.fromValue(typeData) != null){ + editRecord.setTypeData(typeData); + }else { + editRecord.setTypeData(KeyMsgValueType.TEXT.toValue()); + } + if (enable != null){ + editRecord.setEnable(enable); + } + if (toGroup != null){ + editRecord.setToGroup(toGroup); + } + + if (id != null){ + editRecord.setId(id); + boolean update = editRecord.update(); + if (update){ + setMsg("修改成功"); + }else{ + setOperateErr("修改失败"); + } + }else{ + // 校验 + editRecord.setUniqueKey(uniqueKey); + editRecord.setCreateTime(new Date()); + editRecord.setEnable(true); + if (vldParamNull(editRecord.getUniqueKey(),"唯一码不能为空")){ + return; + } + if (vldParamNull(editRecord.getKeyData(),"关键字不能为空")){ + return; + } + if (vldParamNull(editRecord.getValueData(),"内容不能为空")){ + return; + } + if (vldParamNull(editRecord.getTypeData(),"内容类型不能为空")){ + return; + } + if (vldParamNull(editRecord.getNickName(),"昵称不能为空")){ + return; + } + if (vldParamNull(editRecord.getToGroup(),"群聊好友未选择")){ + return; + } + boolean save = editRecord.save(); + if (save){ + setMsg("新增成功"); + }else{ + setOperateErr("新增失败"); + } + } + renderJson(); + } + + /** + * 删除关键字 + */ + public void delKeyWord(){ + + String kid = getPara("kid"); + boolean delete = WxRobKeyword.dao.deleteById(kid); + if (delete){ + setMsg("删除成功"); + }else{ + setOperateErr("删除失败"); + } + renderJson(); + } + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java new file mode 100644 index 00000000..139d2720 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RelateController.java @@ -0,0 +1,179 @@ +package org.ruoyi.common.wechat.web.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.render.JsonRender; +import org.apache.commons.lang3.StringUtils; +import org.ruoyi.common.wechat.itchat4j.api.WechatTools; +import org.ruoyi.common.wechat.web.model.WxRobRelation; +import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * TODO 关联配置 + * @author WesleyOne + * @create 2018/12/16 + */ +public class RelateController extends _BaseController { + + public void index(){ + String outKey = getPara("ok"); + if (StringUtils.isNotEmpty(outKey)){ + setAttr("search_ok",outKey); + } + String searchUk = getPara("uk"); + if (StringUtils.isNotEmpty(searchUk)){ + setAttr("search_uk",searchUk); + } + renderTemplate("index.html"); + } + + public void list(){ + int rows = getParaToInt("limit", 10); + int pageNum = getPageNum(getParaToInt("offset", 1), rows); + String outKey = getPara("outKey"); + String uniqueKey = getPara("uniqueKey"); + String nickName = getPara("nickName"); + Boolean enable = getParaToBoolean("enable"); + Boolean togrp = getParaToBoolean("togrp"); + + String where = " where 1=1 "; + if (StringUtils.isNotEmpty(outKey)) { + where += " and out_key = '" + outKey + "' "; + } + if (StringUtils.isNotEmpty(uniqueKey)){ + where += " and unique_key = '"+uniqueKey + "' "; + } + if (StringUtils.isNotEmpty(nickName)) { + where += " and nick_name LIKE '" + nickName + "%' "; + } + if (enable != null){ + where += " and enable = " + (enable?1:0); + } + if (togrp != null){ + where += " and to_group = " + (togrp?1:0); + } + + Page page = WxRobRelation.dao.paginate(pageNum, rows, "select * ", + " from wx_rob_relation "+where); + + setAttrs(buildPagination(page.getList(), page.getTotalRow())); + render(new JsonRender().forIE()); + } + + public void editIndex(){ + Integer kid = getParaToInt("kid"); + WxRobRelation wxRobRelation; + boolean isEdit = true; + List groupNickNames = new ArrayList<>(); + if (kid != null){ + wxRobRelation = WxRobRelation.dao.findById(kid); + }else{ + isEdit = false; + wxRobRelation = new WxRobRelation(); + String uniqueKey = getPara("uk"); + String nickName = getPara("nk"); + Boolean toGroup = getParaToBoolean("tgb"); + if (StringUtils.isNotEmpty(uniqueKey)){ + wxRobRelation.setUniqueKey(uniqueKey); + groupNickNames.addAll(WechatTools.getGroupNickNameList(uniqueKey)); + } + if (StringUtils.isNotEmpty(nickName)){ + wxRobRelation.setNickName(nickName); + } + if (toGroup != null){ + wxRobRelation.setToGroup(toGroup); + }else{ + wxRobRelation.setToGroup(true); + } + } + setAttr("isEdit",isEdit); + setAttr("form",wxRobRelation); + setAttr("groupNickNames",groupNickNames); + renderTemplate("editIndex.html"); + } + + /** + * 编辑外部id关联 + */ + public void editRelate(){ + JSONObject postParam = getPostParam(); + Long id = postParam.getLong("kid"); + String uniqueKey = postParam.getString("uniqueKey"); + String nickName = postParam.getString("nickName"); + String whiteList = postParam.getString("whiteList"); + Boolean enable = postParam.getBoolean("enable"); + Boolean toGroup = postParam.getBoolean("toGroup"); + + WxRobRelation editRecord = new WxRobRelation(); + + if (StringUtils.isNotEmpty(nickName)){ + editRecord.setNickName(nickName); + } + if (enable != null){ + editRecord.setEnable(enable); + } + if (toGroup != null){ + editRecord.setToGroup(toGroup); + } + if (StringUtils.isNotEmpty(whiteList)){ + editRecord.setWhiteList(whiteList); + } + + if (id != null){ + editRecord.setId(id); + boolean update = editRecord.update(); + if (update){ + setMsg("修改成功"); + }else{ + setOperateErr("修改失败"); + } + }else{ + // 校验 + editRecord.setUniqueKey(uniqueKey); + editRecord.setCreateTime(new Date()); + editRecord.setEnable(true); + if (vldParamNull(editRecord.getUniqueKey(),"唯一码不能为空")){ + return; + } + if (vldParamNull(editRecord.getNickName(),"昵称不能为空")){ + return; + } + if (vldParamNull(editRecord.getToGroup(),"群聊好友未选择")){ + return; + } + + boolean isSuccess = false; + int maxTime = 5; + while (!isSuccess && maxTime >0){ + String outKey = UUIDShortUtil.generateShortUuid(); + editRecord.setOutKey(outKey); + isSuccess = editRecord.save(); + maxTime--; + } + if (isSuccess){ + setMsg("新增成功"); + }else{ + setOperateErr("新增失败"); + } + } + renderJson(); + } + + /** + * 删除外部id关联 + */ + public void delRelate(){ + String kid = getPara("kid"); + boolean delete = WxRobRelation.dao.deleteById(kid); + if (delete){ + setMsg("删除成功"); + }else{ + setOperateErr("删除失败"); + } + renderJson(); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java new file mode 100644 index 00000000..56e122bc --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotController.java @@ -0,0 +1,223 @@ +package org.ruoyi.common.wechat.web.controller; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Page; +import com.jfinal.plugin.activerecord.Record; +import com.jfinal.render.JsonRender; +import org.apache.commons.lang3.StringUtils; +import org.ruoyi.common.wechat.itchat4j.core.Core; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.web.base.BaseException; +import org.ruoyi.common.wechat.web.model.WxRobConfig; +import org.ruoyi.common.wechat.web.utils.UUIDShortUtil; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 机器人相关管理接口 + * @author WesleyOne + * @create 2018/12/16 + */ +public class RobotController extends _BaseController { + + /** + * 机器人页面 + */ + public void index(){ + renderTemplate("index.html"); + } + + /** + * 机器人列表 + * 分页,搜索条件 + */ + public void list(){ + int rows = getParaToInt("limit", 10); + int pageNum = getPageNum(getParaToInt("offset", 1), rows); + String searchUniqueKey = getPara("uniqueKey"); + String remark = getPara("remark"); + Boolean enable = getParaToBoolean("enable"); + String where = " where 1=1 "; + if (StringUtils.isNotEmpty(searchUniqueKey)){ + where += " and unique_key = '"+searchUniqueKey + "' "; + } + if (StringUtils.isNotEmpty(remark)) { + where += " and remark like '" + remark + "%' "; + } + if (enable != null){ + where += " and enable = " + (enable?1:0); + } + + Page page = WxRobConfig.dao.paginate(pageNum, rows, "select * ", + " from wx_rob_config "+where); + //其他处理 + List dataList = page.getList(); + if (CollectionUtil.isNotEmpty(dataList)){ + for (WxRobConfig conf: dataList){ + // 获取机器人状态 + String uniqueKey = conf.getUniqueKey(); + conf.setActive(CoreManage.isActive(uniqueKey)); + } + } + + setAttrs(buildPagination(dataList, page.getTotalRow())); + render(new JsonRender().forIE()); + } + + /** + * 机器人页面 + */ + public void addIndex(){ + renderTemplate("addIndex.html"); + } + + /** + * 添加机器人 + */ + public void addRob(){ + JSONObject postParam = getPostParam(); + String remark = postParam.getString("remark"); + + if (vldParamNull(remark,"微信号不能为空")){ + return; + } + + Record remarkRecord = Db.findFirst("SELECT remark FROM wx_rob_config WHERE remark = ? LIMIT 1", remark); + if (vldParamNull(remarkRecord != null,"备注已存在")){ + return; + } + WxRobConfig bean = new WxRobConfig(); + bean.setRemark(remark) + .setCreateTime(new Date()) + .setUpdateTime(new Date()) + .setToFriend(false) + .setToGroup(true) + .setFromOut(false) + .setDefaultFriend(false) + .setDefaultGroup(false); + + boolean isSuccess = false; + int maxTime = 5; + while (!isSuccess && maxTime >0){ + String uniKey = UUIDShortUtil.generateShortUuid(); + bean.setUniqueKey(uniKey); + isSuccess = bean.save(); + maxTime--; + } + + if (!isSuccess){ + setOperateErr(); + }else{ + setData(bean); + } + renderJson(); + } + + /** + * 机器人启动禁止开关,发送群聊开关,发送好友开关,对外接口消息开关 + */ + public void change(){ + JSONObject postParam = getPostParam(); + Long id = postParam.getLong("rid"); + String type = postParam.getString("type"); + Boolean state = postParam.getBoolean("state"); + + if (id == null || StringUtils.isEmpty(type) || state == null){ + setOperateErr(); + renderJson(); + return; + } + + WxRobConfig config = new WxRobConfig(); + config.setId(id); + if ("enable".equals(type)){ + config.setEnable(state); + }else if ("tofrd".equals(type)){ + config.setToFriend(state); + }else if ("togrp".equals(type)){ + config.setToGroup(state); + }else if ("fromout".equals(type)) { + config.setFromOut(state); + }else if ("default_group".equals(type)){ + config.setDefaultGroup(state); + }else if ("default_friend".equals(type)){ + config.setDefaultFriend(state); + }else { + setOperateErr("非法操作"); + render(new JsonRender().forIE()); + return; + } + + config.setUpdateTime(new Date()); + boolean update = config.update(); + if (!update){ + setOperateErr(); + }else{ + setData(update); + } + renderJson(); + } + + /** + * 修改备注 + */ + public void changeRemark(){ + JSONObject postParam = getPostParam(); + Long id = postParam.getLong("rid"); + String remark = postParam.getString("remark"); + if (vldParamNull(id,"ID不能为空")){ + return; + } + if (vldParamNull(remark,"备注不能为空")){ + return; + } + + Record remarkRecord = Db.findFirst("SELECT remark FROM wx_rob_config WHERE remark = ? LIMIT 1", remark); + if (vldParamNull(remarkRecord != null,"备注已存在")){ + return; + } + WxRobConfig config = new WxRobConfig(); + config.setId(id); + config.setRemark(remark); + boolean update = config.update(); + if (!update){ + setOperateErr(); + }else{ + setData(update); + } + renderJson(); + } + + /** + * 发送页面 + */ + public void sendIndex() throws BaseException { + String uniqueKey = getUniqueKey(); + Core core = CoreManage.getInstance(uniqueKey); + List sourceSendList = new ArrayList<>(); + sourceSendList.addAll( core.getGroupList()); + sourceSendList.addAll( core.getContactList()); + List targetList = new ArrayList<>(); + JSONObject filehelper = new JSONObject(); + filehelper.put("UserName","filehelper"); + filehelper.put("NickName","文件传输助手"); + targetList.add(filehelper); + for (JSONObject jsonObject : sourceSendList) { + JSONObject newObject = new JSONObject(); + if (StringUtils.isEmpty(jsonObject.getString("NickName"))){ + continue; + } + newObject.put("NickName",jsonObject.getString("NickName")); + newObject.put("UserName",jsonObject.getString("UserName")); + targetList.add(newObject); + } + setAttr("uniqueKey",uniqueKey); + setAttr("targetList",targetList); + renderTemplate("sendIndex.html"); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java new file mode 100644 index 00000000..3fdcd5d5 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/RobotWorkController.java @@ -0,0 +1,179 @@ +package org.ruoyi.common.wechat.web.controller; + +import com.alibaba.fastjson.JSONObject; +import org.ruoyi.common.wechat.itchat4j.api.WechatTools; +import org.ruoyi.common.wechat.itchat4j.controller.LoginController; +import org.ruoyi.common.wechat.itchat4j.core.CoreManage; +import org.ruoyi.common.wechat.itchat4j.service.impl.LoginServiceImpl; +import org.ruoyi.common.wechat.itchat4j.utils.enums.SendMsgType; +import org.ruoyi.common.wechat.web.base.BaseException; + +import java.io.IOException; +import java.util.List; + +/** + * @author WesleyOne + * @create 2018/12/16 + */ +public class RobotWorkController extends _BaseController { + + /** + * 获取状态 + * @throws BaseException + */ + public void getStatus() throws BaseException { + String uniqueKey = getUniqueKey(); + boolean wechatStatus = WechatTools.getWechatStatus(uniqueKey); + setData(wechatStatus); + renderJson(); + } + + /** + * 登录第一步,获取二维码链接 + * @throws BaseException + */ + public void getQr() throws BaseException, IOException { + String uniqueKey = getUniqueKey(); + LoginController login = new LoginController(uniqueKey); + String qrSrc = login.login_1(); + setData(qrSrc); + renderJson(); + } + + /** + * 登录第二步,确认登录状态 + * @throws BaseException + */ + public void login() throws BaseException { + String uniqueKey = getUniqueKey(); + LoginController login = new LoginController(uniqueKey); + boolean result = login.login_2(); + if (result){ + + }else{ + setOperateErr(); + } + renderJson(); + } + + /** + * 登录第三步,确认登录及初始化信息 + * @throws BaseException + */ + public void init() throws BaseException { + String uniqueKey = getUniqueKey(); + LoginController login = new LoginController(uniqueKey); + boolean loginResult = login.login_3(); + if (loginResult){ + setMsg("登录成功"); + }else{ + setMsg("登录失败,关闭二维码后重新打开"); + } + renderJson(); + } + + /** + * 退出 + * @throws BaseException + */ + public void logout() throws BaseException { + String uniqueKey = getUniqueKey(); + WechatTools.logout(uniqueKey); + renderJson(); + } + + /** + * 获取群昵称 + */ + public void getGroupNickNames() throws BaseException { + String uniqueKey = getUniqueKey(); + List groupNickNameList = WechatTools.getGroupNickNameList(uniqueKey); + setData(groupNickNameList); + renderJson(); + } + + /** + * 获取好友昵称 + */ + public void getContactNickNames() throws BaseException { + String uniqueKey = getUniqueKey(); + List contactNickNameList = WechatTools.getContactNickNameList(uniqueKey); + setData(contactNickNameList); + renderJson(); + } + + public void getGroups() throws BaseException { + String uniqueKey = getUniqueKey(); + List groupList = WechatTools.getGroupList(uniqueKey); + setData(groupList); + renderJson(); + } + + public void getContacts() throws BaseException { + String uniqueKey = getUniqueKey(); + List contactList = WechatTools.getContactList(uniqueKey); + setData(contactList); + renderJson(); + } + + public void getCore() throws BaseException { + String uniqueKey = getUniqueKey(); + setData(CoreManage.getInstance(uniqueKey)); + renderJson(); + } + + /** + * 强制刷新通讯录 + */ + public void gct() throws BaseException { + String uniqueKey = getUniqueKey(); + LoginServiceImpl loginService = new LoginServiceImpl(uniqueKey); + loginService.webWxGetContact(); + renderJson(); + } + + /** + * 刷新通讯录详情 + * @throws BaseException + */ + public void ggp() throws BaseException { + String uniqueKey = getUniqueKey(); + LoginServiceImpl loginService = new LoginServiceImpl(uniqueKey); + loginService.WebWxBatchGetContact(); + renderJson(); + } + + /** + * 重启 + * @throws BaseException + */ + public void reboot() throws BaseException { + String uniqueKey = getUniqueKey(); + LoginController login = new LoginController(uniqueKey); + boolean loginResult = login.reboot(); + setData(loginResult); + renderJson(); + } + + + /** + * 手动备份热登录信息 + */ + public void manualCopy(){ + CoreManage.persistence(); + renderJson(); + } + + public void testSend() throws BaseException { + + JSONObject postParam = getPostParam(); + String uniqueKey = postParam.getString("uniqueKey"); + String data = postParam.getString("valueData"); + String userName = postParam.getString("userName"); + String typeData = postParam.getString("typeData"); + + CoreManage.addSendMsg4UserName(uniqueKey,userName,data, SendMsgType.fromValue(typeData)); + renderJson(); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java new file mode 100644 index 00000000..904b378d --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/ToolController.java @@ -0,0 +1,14 @@ +package org.ruoyi.common.wechat.web.controller; + +/** + * 通用工具 + * @author WesleyOne + * @create 2018/12/24 + */ +public class ToolController extends _BaseController { + + public void index(){ + renderTemplate("index.html"); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java new file mode 100644 index 00000000..c694b758 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/UploadController.java @@ -0,0 +1,47 @@ +package org.ruoyi.common.wechat.web.controller; + +import com.jfinal.upload.UploadFile; +import org.ruoyi.common.wechat.web.constant.UploadConstant; + +import java.io.File; + +/** + * @author WesleyOne + * @create 2018/12/14 + */ +public class UploadController extends _BaseController { + + + public void img2local(){ + UploadFile file = getFile(); + + String fn = getPara("fn", ""); + String originalFileName = file.getOriginalFileName(); + int i = file.getOriginalFileName().lastIndexOf(".")+1; + String fileType = originalFileName.substring(i); + String fileName = fn + "_" + System.currentTimeMillis() + "." + fileType; + String newFilePath = UploadConstant.IMG_PATH+File.separator+fileName; + file.getFile().renameTo(new File(newFilePath)); + + setAttr("name",fileName); + + renderJson(); + } + + public void file2local(){ + UploadFile file = getFile(); + + String fn = getPara("fn", ""); + String originalFileName = file.getOriginalFileName(); + int i = file.getOriginalFileName().lastIndexOf(".")+1; + String fileType = originalFileName.substring(i); + String fileName = fn + "_" + System.currentTimeMillis() + "." + fileType; + String newFilePath = UploadConstant.FILE_PATH+File.separator+fileName; + file.getFile().renameTo(new File(newFilePath)); + + setAttr("name",fileName); + + renderJson(); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java new file mode 100644 index 00000000..f1c5c216 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/controller/_BaseController.java @@ -0,0 +1,199 @@ +package org.ruoyi.common.wechat.web.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jfinal.core.Controller; +import com.jfinal.core.NotAction; +import com.jfinal.kit.HttpKit; +import com.jfinal.kit.StrKit; +import org.apache.commons.lang3.StringUtils; +import org.ruoyi.common.wechat.web.base.BaseError; +import org.ruoyi.common.wechat.web.base.BaseException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.servlet.http.Cookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author WesleyOne + * @create 2018/7/27 + */ +public class _BaseController extends Controller { + + public final Logger LOG = LoggerFactory.getLogger(this.getClass()); + + + /** + * 通用验证 + * @param result true说明验证不通过 + * @param code + * @param errorMsg + */ + @NotAction + public boolean vldParam(boolean result, String code, String errorMsg){ + if (result){ + setAttr("code",code); + setAttr("message",errorMsg); + this.renderJson(); + return true; + } + return false; + } + + @NotAction + public boolean vldParam(boolean result, BaseError baseError){ + if (result){ + return vldParam(true,baseError.getCode(),baseError.getMsg()); + } + return false; + } + + @NotAction + public boolean vldParam(boolean result, String errMsg){ + if (result){ + return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); + } + return false; + } + + /** + * 参数非空判断 + * @param paramValue + * @param baseError + * @return + */ + @NotAction + public boolean vldParamNull(String paramValue, BaseError baseError){ + if (StrKit.isBlank(paramValue)) { + return vldParam(true,baseError.getCode(),baseError.getMsg()); + } + return false; + } + + @NotAction + public boolean vldParamNull(String paramValue, String errMsg){ + if (StrKit.isBlank(paramValue)) { + return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); + } + return false; + } + + /** + * 参数非空判断 + * @param paramValue + * @param baseError + * @return + */ + @NotAction + public boolean vldParamNull(Object paramValue, BaseError baseError){ + if (paramValue == null) { + return vldParam(true,baseError.getCode(),baseError.getMsg()); + } + return false; + } + + @NotAction + public boolean vldParamNull(Object paramValue, String errMsg){ + if (paramValue == null) { + return vldParam(true,BaseError.NORMAL_ERR.getCode(),errMsg); + } + return false; + } + + @NotAction + public void setData(Object o){ + this.setAttr("data",o); + } + @NotAction + public void setCount(Object o){ + this.setAttr("_count",o); + } + @NotAction + public void setCode(String code){ + this.setAttr("code",code); + } + @NotAction + public void setMsg(String msg){ + this.setAttr("message",msg); + } + @NotAction + public void setOperateErr(String msg){ + this.setAttr("code",BaseError.OPERATION_ERR.getCode()); + this.setAttr("message",msg); + } + @NotAction + public void setOperateErr(){ + this.setAttr("code",BaseError.OPERATION_ERR.getCode()); + this.setAttr("message",BaseError.OPERATION_ERR.getMsg()); + } + @NotAction + public void setDeleteErr(){ + this.setAttr("code",BaseError.OPERATION_ERR.getCode()); + this.setAttr("message",BaseError.OPERATION_ERR.getMsg()); + } + + @NotAction + public void addCookie(String key,String value,int second) { + Cookie cookie = new Cookie(key,value); + cookie.setMaxAge(second); + cookie.setPath("/"); + setCookie(cookie); + } + + @NotAction + public JSONObject getPostParam(){ + String jsonString= HttpKit.readData(getRequest()); + return JSONObject.parseObject(jsonString); + } + @NotAction + public String getUid(){ + return this.getCookie("uid"); + } + + /** + * 分页处理 + * @param list + * @param count + * @return + */ + @SuppressWarnings("rawtypes") + @NotAction + protected Map buildPagination(List list, Integer count) { + return buildPagination(list, count, null); + } + + @SuppressWarnings("rawtypes") + @NotAction + protected Map buildPagination(List list, Integer count, + List> footer) { + Map map = new HashMap(4); + map.put("total", count); + map.put("rows", list); + if (footer != null){ + map.put("footer", footer); + } + return map; + } + + @NotAction + protected static int getPageNum(int pageNum,int rows){ + int pageNumber = pageNum / rows + 1; + return pageNumber; + } + + /** + * 获取UniqueKey + * @return + */ + @NotAction + public String getUniqueKey() throws BaseException { + String uniqueKey = getPara("_ck", ""); + if (StringUtils.isEmpty(uniqueKey)){ + throw new BaseException("机器唯一码为空"); + } + return uniqueKey; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java new file mode 100644 index 00000000..c80f502c --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/enums/KeyMsgValueType.java @@ -0,0 +1,45 @@ +package org.ruoyi.common.wechat.web.enums; + +import com.jfinal.plugin.activerecord.Record; + +import java.util.*; +public enum KeyMsgValueType { + + IMG("IMG", "图片"), + FILE("FILE", "文件"), + TEXT("TEXT", "纯文本"); + + private String value; + private String name; + + KeyMsgValueType(String value, String name) { + this.value = value; + this.name = name; + } + + private static final Map lookup = new HashMap<>(); + public static List LIST_KV = new ArrayList<>(); + + static { + for (KeyMsgValueType s : EnumSet.allOf(KeyMsgValueType.class)) { + lookup.put(s.toValue(), s); + LIST_KV.add(new Record().set("v", s.toValue()).set("n", s.toName())); + } + } + + public String toValue() { + return this.value; + } + + public String toName() { + return this.name; + } + + public static KeyMsgValueType fromValue(String value) { + return lookup.get(value); + } + + public boolean equal(KeyMsgValueType type) { + return type != null && this.toValue().equals(type.toValue()); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java new file mode 100644 index 00000000..bbca0a71 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/ExceptionInterceptor.java @@ -0,0 +1,52 @@ +package org.ruoyi.common.wechat.web.interceptor; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import org.ruoyi.common.wechat.web.base.BaseError; +import org.ruoyi.common.wechat.web.base.BaseException; +import org.ruoyi.common.wechat.web.base.BaseResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +/** + * 全局异常拦截 + * @author WesleyOne + * @create 2018/7/28 + */ +public class ExceptionInterceptor implements Interceptor { + + private static final Logger LOG = LoggerFactory.getLogger(ExceptionInterceptor.class); + + @Override + public void intercept(Invocation me) { + try { + me.getController().setAttr("code","00"); + me.getController().setAttr("message","操作成功"); + me.invoke(); + } + catch (Exception e) { + LOG.error(e.getMessage(),e); + BaseResponse resp = new BaseResponse(); + Throwable cause = e.getCause(); + String ajax = me.getController().getRequest().getHeader("X-Requested-With"); + //判断ajax请求还是页面请求 + if ("XMLHttpRequest".equals(ajax)){ + if (cause instanceof BaseException) { + resp.setCode(((BaseException) cause).getCode()); + resp.setMessage(cause.getMessage()); + } else{ + resp.setCode(BaseError.SYSTEM_ERR.getCode()); + resp.setMessage(BaseError.SYSTEM_ERR.getMsg()); + } + me.getController().renderJson(resp); + return; + }else{ + //默认系统500页面,添加第二个参数可自行添加500页面 + me.getController().renderError(500); + return; + } + + } + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java new file mode 100644 index 00000000..0b03c8f7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor.java @@ -0,0 +1,79 @@ +package org.ruoyi.common.wechat.web.interceptor; + + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import org.ruoyi.common.wechat.web.annotation.UnCheckLogin; +import org.ruoyi.common.wechat.web.cache.UserSession; +import org.ruoyi.common.wechat.web.utils.IpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; + + +/** + * 管理后台操作日志 + * @author admin + */ +public class VisitLogInterceptor implements Interceptor { + public static final Logger LOG = LoggerFactory.getLogger(VisitLogInterceptor.class); + + @Override + public void intercept(Invocation inv) { + String requestUrl = inv.getActionKey(); + String uid = inv.getController().getCookie("uid"); + String sid = inv.getController().getCookie("sid"); + String ip = IpUtil.getRealIp(inv.getController().getRequest()); + LOG.info("{} - {} - {} 操作了 {}",ip,uid,sid,requestUrl); + + inv.getController().setAttr("active",inv.getController().getControllerKey()); + + //找到不需要登录的action + Class controllerClass = inv.getController().getClass(); + UnCheckLogin methodOwn = getControllerMethodUnLoginOwn(controllerClass, inv.getMethodName()); + if (methodOwn != null) { + LOG.info("不需要登录,requestUrl=" + requestUrl); + inv.invoke(); + return; + } + + boolean isLogin = UserSession.checkUserSession(uid,sid); + if (!isLogin){ + //未登入 + inv.getController().redirect("/login",false); + return; + } + + long start = System.currentTimeMillis(); + inv.invoke(); + long l = System.currentTimeMillis() - start; + if (l > 1000*2){ + LOG.warn("请求 {} ,连接时长 {} ms",requestUrl,l); + } + } + + //--------------以下是内部方法----------- + + private UnCheckLogin getControllerMethodUnLoginOwn(Class controllerClass, String methodName) { + for (Method method : controllerClass.getMethods()) { + if (methodName.equals(method.getName())) { + return getUnLogin(method); + } + } + return null; + } + + private UnCheckLogin getUnLogin(Method method) { + Annotation[] annotations = method.getAnnotations(); + for (Annotation annt : annotations) { + if (annt instanceof UnCheckLogin) { + UnCheckLogin own = (UnCheckLogin) annt; + return own; + } + } + return null; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java new file mode 100644 index 00000000..61d2ee16 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/interceptor/VisitLogInterceptor4down.java @@ -0,0 +1,26 @@ +package org.ruoyi.common.wechat.web.interceptor; + +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; +import org.ruoyi.common.wechat.web.utils.IpUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 对外接口访问日志 + * @author WesleyOne + * @create 2018/9/25 + */ +public class VisitLogInterceptor4down implements Interceptor { + + public static final Logger LOG = LoggerFactory.getLogger(VisitLogInterceptor4down.class); + + @Override + public void intercept(Invocation inv) { + String ip = IpUtil.getRealIp(inv.getController().getRequest()); + StringBuffer requestURL = inv.getController().getRequest().getRequestURL(); + String queryString = inv.getController().getRequest().getQueryString(); + LOG.info("{} 操作了 {} {}",ip,requestURL,queryString); + inv.invoke(); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java new file mode 100644 index 00000000..280776ef --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobConfig.java @@ -0,0 +1,21 @@ +package org.ruoyi.common.wechat.web.model; + +import org.ruoyi.common.wechat.web.model.base.BaseWxRobConfig; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class WxRobConfig extends BaseWxRobConfig { + public static final WxRobConfig dao = new WxRobConfig().dao(); + + private boolean isActive; + + public boolean isActive() { + return isActive; + } + + public void setActive(boolean active) { + isActive = active; + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java new file mode 100644 index 00000000..aceeac43 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobKeyword.java @@ -0,0 +1,11 @@ +package org.ruoyi.common.wechat.web.model; + +import org.ruoyi.common.wechat.web.model.base.BaseWxRobKeyword; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class WxRobKeyword extends BaseWxRobKeyword { + public static final WxRobKeyword dao = new WxRobKeyword().dao(); +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java new file mode 100644 index 00000000..2f2aff6b --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/WxRobRelation.java @@ -0,0 +1,11 @@ +package org.ruoyi.common.wechat.web.model; + +import org.ruoyi.common.wechat.web.model.base.BaseWxRobRelation; + +/** + * Generated by JFinal. + */ +@SuppressWarnings("serial") +public class WxRobRelation extends BaseWxRobRelation { + public static final WxRobRelation dao = new WxRobRelation().dao(); +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java new file mode 100644 index 00000000..3502c597 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_JFinalDemoGenerator.java @@ -0,0 +1,72 @@ +package org.ruoyi.common.wechat.web.model; + +import com.jfinal.kit.PathKit; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.dialect.MysqlDialect; +import com.jfinal.plugin.activerecord.generator.Generator; +import com.jfinal.plugin.druid.DruidPlugin; +import org.ruoyi.common.wechat.web.common.MyConfig; + +import javax.sql.DataSource; + +/** + * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法 + * 详见 JFinal 俱乐部: http://jfinal.com/club + * + * 在数据库表有任何变动时,运行一下 main 方法,极速响应变化进行代码重构 + */ +public class _JFinalDemoGenerator { + +// public static DataSource getDataSource() { +//// PropKit.use("appConfig.properties"); +//// DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(),PropKit.get("jdbcDriverSqlServe")); +//// DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://127.0.0.1:3306/wxwobot?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull","root", "root"); +// DruidPlugin druidPlugin = new DruidPlugin("jdbc:mysql://localhost:3306/wxwobot?characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull", +// "root", "root"); +// druidPlugin.start(); +// return druidPlugin.getDataSource(); +// } + public static DataSource getDataSource() { + DruidPlugin druidPlugin = MyConfig.createDruidPlugin(); + druidPlugin.start(); + return druidPlugin.getDataSource(); + } + + public static void main(String[] args) { + PropKit.use("appConfig.properties"); + // base model 所使用的包名 + String baseModelPackageName = "org.ruoyi.common.wechat.web.model.base"; + // base model 文件保存路径 + String baseModelOutputDir = PathKit.getWebRootPath() + "/src/main/java/org.ruoyi.common.wechat/web/model/base"; + + // model 所使用的包名 (MappingKit 默认使用的包名) + String modelPackageName = "org.ruoyi.common.wechat.web.model"; + // model 文件保存路径 (MappingKit 与 DataDictionary 文件默认保存路径) + String modelOutputDir = baseModelOutputDir + "/.."; + + // 创建生成器 + Generator generator = new Generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir); + // 设置是否生成链式 setter 方法 + generator.setGenerateChainSetter(false); + // 添加不需要生成的表名 + generator.addExcludedTable(); + // 设置是否在 Model 中生成 dao 对象 + generator.setGenerateDaoInModel(false); + // 设置是否生成链式 setter 方法 + generator.setGenerateChainSetter(true); + // 设置是否生成字典文件 + generator.setGenerateDataDictionary(false); + // 设置需要被移除的表名前缀用于生成modelName。例如表名 "osc_user",移除前缀 "osc_"后生成的model名为 "User"而非 OscUser +// generator.setRemovedTableNamePrefixes("t_"); + + generator.setDialect(new MysqlDialect()); + // 生成 + generator.generate(); + + } + +} + + + + diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java new file mode 100644 index 00000000..9426b066 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/_MappingKit.java @@ -0,0 +1,24 @@ +package org.ruoyi.common.wechat.web.model; + +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; + +/** + * Generated by JFinal, do not modify this file. + *
+ * Example:
+ * public void configPlugin(Plugins me) {
+ *     ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
+ *     _MappingKit.mapping(arp);
+ *     me.add(arp);
+ * }
+ * 
+ */ +public class _MappingKit { + + public static void mapping(ActiveRecordPlugin arp) { + arp.addMapping("wx_rob_config", "id", WxRobConfig.class); + arp.addMapping("wx_rob_keyword", "id", WxRobKeyword.class); + arp.addMapping("wx_rob_relation", "id", WxRobRelation.class); + } +} + diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java new file mode 100644 index 00000000..352f0511 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobConfig.java @@ -0,0 +1,111 @@ +package org.ruoyi.common.wechat.web.model.base; + +import com.jfinal.plugin.activerecord.IBean; +import com.jfinal.plugin.activerecord.Model; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings({"serial", "unchecked"}) +public abstract class BaseWxRobConfig> extends Model implements IBean { + + public M setId(Long id) { + set("id", id); + return (M)this; + } + + public Long getId() { + return getLong("id"); + } + + public M setUniqueKey(String uniqueKey) { + set("unique_key", uniqueKey); + return (M)this; + } + + public String getUniqueKey() { + return getStr("unique_key"); + } + + public M setRemark(String remark) { + set("remark", remark); + return (M)this; + } + + public String getRemark() { + return getStr("remark"); + } + + public M setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + return (M)this; + } + + public java.util.Date getCreateTime() { + return get("create_time"); + } + + public M setUpdateTime(java.util.Date updateTime) { + set("update_time", updateTime); + return (M)this; + } + + public java.util.Date getUpdateTime() { + return get("update_time"); + } + + public M setToFriend(Boolean toFriend) { + set("to_friend", toFriend); + return (M)this; + } + + public Boolean getToFriend() { + return get("to_friend"); + } + + public M setToGroup(Boolean toGroup) { + set("to_group", toGroup); + return (M)this; + } + + public Boolean getToGroup() { + return get("to_group"); + } + + public M setDefaultFriend(Boolean defaultFriend) { + set("default_friend", defaultFriend); + return (M)this; + } + + public Boolean getDefaultFriend() { + return get("default_friend"); + } + + public M setDefaultGroup(Boolean defaultGroup) { + set("default_group", defaultGroup); + return (M)this; + } + + public Boolean getDefaultGroup() { + return get("default_group"); + } + + public M setFromOut(Boolean fromOut) { + set("from_out", fromOut); + return (M)this; + } + + public Boolean getFromOut() { + return get("from_out"); + } + + public M setEnable(Boolean enable) { + set("enable", enable); + return (M)this; + } + + public Boolean getEnable() { + return get("enable"); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java new file mode 100644 index 00000000..98e01a13 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobKeyword.java @@ -0,0 +1,93 @@ +package org.ruoyi.common.wechat.web.model.base; + +import com.jfinal.plugin.activerecord.IBean; +import com.jfinal.plugin.activerecord.Model; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings({"serial", "unchecked"}) +public abstract class BaseWxRobKeyword> extends Model implements IBean { + + public M setId(Long id) { + set("id", id); + return (M)this; + } + + public Long getId() { + return getLong("id"); + } + + public M setUniqueKey(String uniqueKey) { + set("unique_key", uniqueKey); + return (M)this; + } + + public String getUniqueKey() { + return getStr("unique_key"); + } + + public M setKeyData(String keyData) { + set("key_data", keyData); + return (M)this; + } + + public String getKeyData() { + return getStr("key_data"); + } + + public M setValueData(String valueData) { + set("value_data", valueData); + return (M)this; + } + + public String getValueData() { + return getStr("value_data"); + } + + public M setTypeData(String typeData) { + set("type_data", typeData); + return (M)this; + } + + public String getTypeData() { + return getStr("type_data"); + } + + public M setNickName(String nickName) { + set("nick_name", nickName); + return (M)this; + } + + public String getNickName() { + return getStr("nick_name"); + } + + public M setToGroup(Boolean toGroup) { + set("to_group", toGroup); + return (M)this; + } + + public Boolean getToGroup() { + return get("to_group"); + } + + public M setEnable(Boolean enable) { + set("enable", enable); + return (M)this; + } + + public Boolean getEnable() { + return get("enable"); + } + + public M setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + return (M)this; + } + + public java.util.Date getCreateTime() { + return get("create_time"); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java new file mode 100644 index 00000000..2c0186b2 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/model/base/BaseWxRobRelation.java @@ -0,0 +1,84 @@ +package org.ruoyi.common.wechat.web.model.base; + +import com.jfinal.plugin.activerecord.IBean; +import com.jfinal.plugin.activerecord.Model; + +/** + * Generated by JFinal, do not modify this file. + */ +@SuppressWarnings({"serial", "unchecked"}) +public abstract class BaseWxRobRelation> extends Model implements IBean { + + public M setId(Long id) { + set("id", id); + return (M)this; + } + + public Long getId() { + return getLong("id"); + } + + public M setOutKey(String outKey) { + set("out_key", outKey); + return (M)this; + } + + public String getOutKey() { + return getStr("out_key"); + } + + public M setUniqueKey(String uniqueKey) { + set("unique_key", uniqueKey); + return (M)this; + } + + public String getUniqueKey() { + return getStr("unique_key"); + } + + public M setNickName(String nickName) { + set("nick_name", nickName); + return (M)this; + } + + public String getNickName() { + return getStr("nick_name"); + } + + public M setToGroup(Boolean toGroup) { + set("to_group", toGroup); + return (M)this; + } + + public Boolean getToGroup() { + return get("to_group"); + } + + public M setEnable(Boolean enable) { + set("enable", enable); + return (M)this; + } + + public Boolean getEnable() { + return get("enable"); + } + + public M setWhiteList(String whiteList) { + set("white_list", whiteList); + return (M)this; + } + + public String getWhiteList() { + return getStr("white_list"); + } + + public M setCreateTime(java.util.Date createTime) { + set("create_time", createTime); + return (M)this; + } + + public java.util.Date getCreateTime() { + return get("create_time"); + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java new file mode 100644 index 00000000..09dcb9cb --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/Base64Util.java @@ -0,0 +1,30 @@ +package org.ruoyi.common.wechat.web.utils; + +import org.apache.commons.codec.binary.Base64; + +/** + * @author WesleyOne + * @create 2018/12/19 + */ +public class Base64Util { + + /** + * 编码 + * @param source + * @return + */ + public static String encode(String source){ + byte[] result = Base64.encodeBase64(source.getBytes()); + return result.toString(); + } + + /** + * 解码 + * @param source + * @return + */ + public static String decode(String source){ + byte[] result = Base64.decodeBase64(source); + return result.toString(); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java new file mode 100644 index 00000000..b9b3073f --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/IpUtil.java @@ -0,0 +1,35 @@ +package org.ruoyi.common.wechat.web.utils; + + +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; + + +/** + * @author WesleyOne + * @create 2018/11/5 + */ +public class IpUtil { + + /** + * 获取用户真实IP(在安防或多层代理场景下) + * @param request + * @return + */ + public static String getRealIp(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ + //多次反向代理后会有多个ip值,第一个ip才是真实ip + int index = ip.indexOf(","); + if(index != -1){ + return ip.substring(0,index); + } + } + ip = request.getHeader("X-Real-IP"); + if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ + return ip; + } + return request.getRemoteAddr(); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java new file mode 100644 index 00000000..80fc03f7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/LRUCache.java @@ -0,0 +1,26 @@ +package org.ruoyi.common.wechat.web.utils; + +import java.util.LinkedHashMap; + +/** + * @author WesleyOne + * @create 2018/12/12 + */ +public class LRUCache extends LinkedHashMap { + + private static final long serialVersionUID = 1L; + protected int maxElements; + + public LRUCache(int maxSize) + { + super(maxSize * 4 / 3 , 0.75F, true); + maxElements = maxSize; + } + + @Override + protected boolean removeEldestEntry(java.util.Map.Entry eldest) + { + return size() > maxElements; + } + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java new file mode 100644 index 00000000..1748c30a --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java @@ -0,0 +1,68 @@ +package org.ruoyi.common.wechat.web.utils; + + + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class MD5Util { + + + private static String byteArrayToHexString(byte b[]) { + StringBuffer resultSb = new StringBuffer(); + for (int i = 0; i < b.length; i++){ + resultSb.append(byteToHexString(b[i])); + } + + return resultSb.toString(); + } + + private static String byteToHexString(byte b) { + int n = b; + if (n < 0){ + n += 256; + } + int d1 = n / 16; + int d2 = n % 16; + return hexDigits[d1] + hexDigits[d2]; + } + + public static String MD5Encode(String origin, String charsetname) { + String resultString = null; + try { + resultString = new String(origin); + MessageDigest md = MessageDigest.getInstance("MD5"); + if (charsetname == null || "".equals(charsetname)){ + resultString = byteArrayToHexString(md.digest(resultString.getBytes())); + } else{ + resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname))); + } + } catch (Exception exception) { + } + return resultString; + } + + private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; + + public static String MD5Encrypt(String str) { + String s = str; + if (s == null) { + return null; + } + String value = null; + MessageDigest md5 = null; + try { + md5 = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException ex) { + } + //sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder(); + + return value; + } + + public static void main(String[] args) { + System.out.println(MD5Encrypt("wxwobot")); + } + + +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java new file mode 100644 index 00000000..ae4e476c --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/UUIDShortUtil.java @@ -0,0 +1,33 @@ +package org.ruoyi.common.wechat.web.utils; + +import java.util.UUID; + +/** + * + * @author internet + * @create 2018/12/17 + */ +public class UUIDShortUtil { + + private static String[] chars = new String[] { "a", "b", "c", "d", "e", "f", + "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", + "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", + "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", + "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", + "W", "X", "Y", "Z" }; + + /** + * 短8位 + * @return + */ + public static String generateShortUuid() { + StringBuffer shortBuffer = new StringBuffer(); + String uuid = UUID.randomUUID().toString().replace("-", ""); + for (int i = 0; i < 8; i++) { + String str = uuid.substring(i * 4, i * 4 + 4); + int x = Integer.parseInt(str, 16); + shortBuffer.append(chars[x % 0x3E]); + } + return shortBuffer.toString(); + } +} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties b/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties new file mode 100644 index 00000000..5ccffeaa --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/resources/appConfig.properties @@ -0,0 +1,7 @@ +jdbcUrl = ${pro.jdbc.agent.url} +user = ${pro.jdbc.agent.username} +password = ${pro.jdbc.agent.password} +devMode = ${pro.devMode} +hotReloadDir = ${pro.hotreload.realpath} +download_path = ${pro.download.path} +log_path = ${log.file.path} diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties b/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties new file mode 100644 index 00000000..0e375b7f --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/resources/passport.properties @@ -0,0 +1 @@ +wxwobot = C9ah2BEPliU2EzPV/VAn9Q== \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt b/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt new file mode 100644 index 00000000..cdcd10ba --- /dev/null +++ b/ruoyi-common/ruoyi-common-wechat/src/main/resources/undertow.txt @@ -0,0 +1,51 @@ +# 配置 undertow + +undertow.devMode=${pro.undertow.devMode} +undertow.host=${pro.domain.host} +undertow.port=${pro.domain.port} +undertow.contextPath=/ + +undertow.resourcePath=webapp, io.wxwobot.admin/src/main/webapp, src/main/webapp + +# 开启 gzip 压缩 +undertow.gzip.enable=true +# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率 +undertow.gzip.level=-1 +# 触发压缩的最小内容长度 +undertow.gzip.minLength=1024 + +# session 过期时间,注意单位是秒 +undertow.session.timeout=1800 +# 支持 session 热加载,避免依赖于 session 的登录型项目反复登录,默认值为 true。仅用于 devMode,生产环境无影响 +undertow.session.hotSwap=true + +# 下面两行命令生成密钥库 +# keytool -genkeypair -validity 3650 -alias club -keyalg RSA -keystore club.jks +# keytool -importkeystore -srckeystore club.jks -destkeystore club.pfx -deststoretype PKCS12 +# 生成过程中提示输入 "名字与姓氏" 时输入 localhost。生产环境从阿里云下载 tomcat 类型的密钥库 +# +# 更详细的 https/ssl 配置见 jfinal 官方文档 :http://www.jfinal.com/doc/1-4 +# +# 是否开启 ssl +undertow.ssl.enable=false +# ssl 监听端口号,部署环境设置为 443 +undertow.ssl.port=443 +# 密钥库类型,建议使用 PKCS12 +undertow.ssl.keyStoreType=PKCS12 +# 密钥库文件 +undertow.ssl.keyStore=demo.pfx +# 密钥库密码 +undertow.ssl.keyStorePassword=111111 + + +# ssl 开启时,是否开启 http2。检测该配置是否生效在 chrome 地址栏中输入: chrome://net-internals/#http2 +undertow.http2.enable=true + + +# ssl 开启时,http 请求是否重定向到 https +# undertow.http.toHttps=false +# ssl 开启时,是否关闭 http +# undertow.http.disable=false + + + From af3304011728e03872c72d8f3b5a8cd1715f47db Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 11 Apr 2025 10:45:02 +0800 Subject: [PATCH 11/27] =?UTF-8?q?fix:=20=E8=AF=AD=E9=9F=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/chat/openai/OpenAiStreamClient.java | 5 ----- .../chat/service/chat/impl/SseServiceImpl.java | 18 ++++++++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java index e7992022..381e4d7a 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java @@ -593,11 +593,6 @@ public class OpenAiStreamClient { } - - - - - /** * 构造 * diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 80c2d8e4..357280d8 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -70,7 +70,7 @@ import java.util.concurrent.atomic.AtomicReference; @RequiredArgsConstructor public class SseServiceImpl implements ISseService { - private OpenAiStreamClient openAiStreamClient; + private final OpenAiStreamClient openAiStreamClient; private final ChatConfig chatConfig; @@ -88,6 +88,8 @@ public class SseServiceImpl implements ISseService { private static final ObjectMapper mapper = new ObjectMapper(); + private OpenAiStreamClient openAiModelStreamClient; + @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { SseEmitter sseEmitter = new SseEmitter(0L); @@ -100,8 +102,13 @@ public class SseServiceImpl implements ISseService { if (StpUtil.isLogin()) { // 通过模型名称查询模型信息 ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - // 构建api请求客户端 - openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + if(chatModelVo!=null){ + // 通过模型信息构建请求客户端 + openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + }else { + // 使用默认客户端 + openAiModelStreamClient = openAiStreamClient; + } // 设置默认提示词 Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); messages.add(0,sysMessage); @@ -167,7 +174,7 @@ public class SseServiceImpl implements ISseService { .model(chatRequest.getModel()) .stream(chatRequest.getStream()) .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + openAiModelStreamClient.streamChatCompletion(completion, openAIEventSourceListener); // 保存消息记录 并扣除费用 chatCostService.deductToken(chatRequest); } catch (Exception e) { @@ -192,7 +199,7 @@ public class SseServiceImpl implements ISseService { try { sseEmitter.send(event); } catch (IOException e) { - log.error("发送事件失败: {}", e.getMessage()); + log.error("SSE发送失败: {}", e.getMessage()); } sseEmitter.complete(); } @@ -248,7 +255,6 @@ public class SseServiceImpl implements ISseService { if (!FileUtils.isValidFileExtention(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)) { throw new IllegalStateException("File Extention not supported"); } - openAiStreamClient = chatConfig.getOpenAiStreamClient(); return openAiStreamClient.uploadFile("fine-tune", convertMultiPartToFile(file)); } From efeb0bd6fb60a6216cb3626df204100546466b23 Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 11 Apr 2025 12:05:13 +0800 Subject: [PATCH 12/27] =?UTF-8?q?fix:=20ollama=E5=85=BC=E5=AE=B9=E8=81=94?= =?UTF-8?q?=E7=BD=91=E6=9F=A5=E8=AF=A2=20=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E6=A3=80=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/openai/OpenAiStreamClient.java | 2 +- .../common/chat/request/ChatRequest.java | 5 + .../service/chat/impl/SseServiceImpl.java | 152 +++++++++++------- 3 files changed, 97 insertions(+), 62 deletions(-) diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java index 381e4d7a..ef03cb24 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java @@ -466,8 +466,8 @@ public class OpenAiStreamClient { * @since 1.1.3 */ public ResponseBody textToSpeech(TextToSpeech textToSpeech){ - Call responseBody = this.openAiApi.textToSpeech(textToSpeech); try { + Call responseBody = this.openAiApi.textToSpeech(textToSpeech); return responseBody.execute().body(); } catch (IOException e) { throw new BaseException("文本转语音(同步)失败: "+e.getMessage()); diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java index 45385266..97b89583 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java @@ -26,6 +26,11 @@ public class ChatRequest { */ private String prompt; + /** + * 系统提示词 + */ + private String sysPrompt; + /** * 是否开启流式对话 */ diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 357280d8..6cf19b40 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -84,77 +84,43 @@ public class SseServiceImpl implements ISseService { private final IChatCostService chatCostService; - private static final String requestIdTemplate = "mycompany-%d"; + private static final String requestIdTemplate = "company-%d"; private static final ObjectMapper mapper = new ObjectMapper(); - private OpenAiStreamClient openAiModelStreamClient; - @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { SseEmitter sseEmitter = new SseEmitter(0L); SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); // 获取对话消息列表 List messages = chatRequest.getMessages(); - // 用户对话内容 - String chatString = null; try { - if (StpUtil.isLogin()) { - // 通过模型名称查询模型信息 - ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - if(chatModelVo!=null){ - // 通过模型信息构建请求客户端 - openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); - }else { - // 使用默认客户端 - openAiModelStreamClient = openAiStreamClient; - } + // 查询模型信息 + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + + OpenAiStreamClient openAiModelStreamClient; + if(chatModelVo!=null){ + // 建请求客户端 + openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); // 设置默认提示词 - Message sysMessage = Message.builder().content(chatModelVo.getSystemPrompt()).role(Message.Role.SYSTEM).build(); - messages.add(0,sysMessage); - - // 查询向量库相关信息加入到上下文 - if(chatRequest.getKid()!=null){ - List knMessages = new ArrayList<>(); - String content = messages.get(messages.size() - 1).getContent().toString(); - List nearestList; - List queryVector = embeddingService.getQueryVector(content, chatRequest.getKid()); - nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); - for (String prompt : nearestList) { - Message userMessage = Message.builder().content(prompt).role(Message.Role.USER).build(); - knMessages.add(userMessage); - } - Message userMessage = Message.builder().content(content + (!nearestList.isEmpty() ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")).role(Message.Role.USER).build(); - knMessages.add(userMessage); - messages.addAll(knMessages); - } - - // 获取用户对话信息 - Object content = messages.get(messages.size() - 1).getContent(); - if (content instanceof List listContent) { - if (CollectionUtil.isNotEmpty(listContent)) { - chatString = listContent.get(0).toString(); - } - } else if (content instanceof String) { - chatString = (String) content; - } - - // 加载联网信息 - if(chatRequest.getSearch()){ - Message message = Message.builder().role(Message.Role.ASSISTANT).content("联网信息:"+webSearch(chatString)).build(); - messages.add(message); - } + chatRequest.setSysPrompt(chatModelVo.getSystemPrompt()); }else { - // 未登录用户限制对话次数 - String clientIp = IpUtil.getClientIp(request); + // 使用默认客户端 + openAiModelStreamClient = openAiStreamClient; + } + // 构建消息列表增加联网、知识库等内容 + buildChatMessageList(chatRequest); + // 根据模型名称前缀调用不同的处理逻辑 + switchModelAndHandle(chatRequest); + + // 未登录用户限制对话次数 + if (!StpUtil.isLogin()) { + String clientIp = IpUtil.getClientIp(request); // 访客每天默认只能对话5次 int timeWindowInSeconds = 5; - String redisKey = "clientIp:" + clientIp; - int count = 0; - if (RedisUtils.getCacheObject(redisKey) == null) { // 缓存有效时间1天 RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); @@ -175,6 +141,7 @@ public class SseServiceImpl implements ISseService { .stream(chatRequest.getStream()) .build(); openAiModelStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + // 保存消息记录 并扣除费用 chatCostService.deductToken(chatRequest); } catch (Exception e) { @@ -185,6 +152,69 @@ public class SseServiceImpl implements ISseService { return sseEmitter; } + /** + * 根据模型名称前缀调用不同的处理逻辑 + */ + private void switchModelAndHandle(ChatRequest chatRequest) { + String model = chatRequest.getModel(); + // 如果模型名称以ollama开头,则调用ollama中部署的本地模型 + if (model.startsWith("ollama-")) { + String[] parts = chatRequest.getModel().split("ollama-", 2); // 限制分割次数为2 + if (parts.length > 1) { + chatRequest.setModel(parts[1]); + ollamaChat(chatRequest); + } else { + throw new IllegalArgumentException("Invalid ollama model name: " + chatRequest.getModel()); + } + } else if (model.startsWith("gpt-4-gizmo")) { + chatRequest.setModel("gpt-4-gizmo"); + } + } + + /** + * 构建消息列表 + */ + private void buildChatMessageList(ChatRequest chatRequest){ + // 获取对话消息列表 + List messages = chatRequest.getMessages(); + // 设置系统默认提示词 + Message sysMessage = Message.builder().content(chatRequest.getSysPrompt()).role(Message.Role.SYSTEM).build(); + messages.add(0,sysMessage); + + // 查询向量库相关信息加入到上下文 + if(chatRequest.getKid()!=null){ + List knMessages = new ArrayList<>(); + String content = messages.get(messages.size() - 1).getContent().toString(); + List nearestList; + List queryVector = embeddingService.getQueryVector(content, chatRequest.getKid()); + nearestList = vectorStore.nearest(queryVector, chatRequest.getKid()); + for (String prompt : nearestList) { + Message userMessage = Message.builder().content(prompt).role(Message.Role.USER).build(); + knMessages.add(userMessage); + } + Message userMessage = Message.builder().content(content + (!nearestList.isEmpty() ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : "")).role(Message.Role.USER).build(); + knMessages.add(userMessage); + messages.addAll(knMessages); + } + // 用户对话内容 + String chatString = null; + // 获取用户对话信息 + Object content = messages.get(messages.size() - 1).getContent(); + if (content instanceof List listContent) { + if (CollectionUtil.isNotEmpty(listContent)) { + chatString = listContent.get(0).toString(); + } + } else if (content instanceof String) { + chatString = (String) content; + } + // 设置对话信息 + chatRequest.setPrompt(chatString); + // 加载联网信息 + if(chatRequest.getSearch()){ + Message message = Message.builder().role(Message.Role.ASSISTANT).content("联网信息:"+webSearch(chatString)).build(); + messages.add(message); + } + } /** * 发送SSE错误事件的封装方法 @@ -295,13 +325,13 @@ public class SseServiceImpl implements ISseService { @Override public SseEmitter ollamaChat(ChatRequest chatRequest) { - String[] parts = chatRequest.getModel().split("ollama-"); + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); final SseEmitter emitter = new SseEmitter(); String host = chatModelVo.getApiHost(); List msgList = chatRequest.getMessages(); - List messages = new ArrayList<>(); + List messages = new ArrayList<>(); for (Message message : msgList) { OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); ollamaChatMessage.setRole(OllamaChatMessageRole.USER); @@ -310,7 +340,7 @@ public class SseServiceImpl implements ISseService { } OllamaAPI api = new OllamaAPI(host); api.setRequestTimeoutSeconds(100); - OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(parts[1]); + OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(chatRequest.getModel()); OllamaChatRequestModel requestModel = builder .withMessages(messages) @@ -356,11 +386,11 @@ public class SseServiceImpl implements ISseService { @Override public String webSearch (String prompt) { - String zhipuValue = configService.getConfigValue("zhipu", "key"); - if(StringUtils.isEmpty(zhipuValue)){ - throw new IllegalStateException("zhipu config value is empty,请在chat_config中配置zhipu key信息"); + String zpValue = configService.getConfigValue("zhipu", "key"); + if(StringUtils.isEmpty(zpValue)){ + throw new IllegalStateException("请在chat_config中配置智谱key信息"); }else { - ClientV4 client = new ClientV4.Builder(zhipuValue) + ClientV4 client = new ClientV4.Builder(zpValue) .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) .build(); From 37a8b7dad32dbbad4e28ecd15dabd3147be03665 Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 11 Apr 2025 15:47:05 +0800 Subject: [PATCH 13/27] =?UTF-8?q?feat:=20=E5=AF=B9=E8=AF=9D=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/controller/api/ChatController.java | 3 - .../ruoyi/chat/factory/SseServiceFactory.java | 24 +++ .../VectorStoreFactory.java | 4 +- .../VectorizationFactory.java | 4 +- .../ruoyi/chat/service/chat/IChatService.java | 19 ++ .../ruoyi/chat/service/chat/ISseService.java | 11 +- .../service/chat/impl/OllamaServiceImpl.java | 80 ++++++++ .../service/chat/impl/OpenAIServiceImpl.java | 50 +++++ .../service/chat/impl/SseServiceImpl.java | 174 +++++------------- .../java/org/ruoyi/chat/util/SSEUtil.java | 33 ++++ 10 files changed, 260 insertions(+), 142 deletions(-) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/SseServiceFactory.java rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{service/knowledge/vectorstore => factory}/VectorStoreFactory.java (88%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/{service/knowledge/vectorizer => factory}/VectorizationFactory.java (89%) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java index 1991b770..e8ed985c 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/api/ChatController.java @@ -49,9 +49,6 @@ public class ChatController { @PostMapping("/send") @ResponseBody public SseEmitter sseChat(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) { - if (chatRequest.getModel().startsWith("ollama")) { - return sseService.ollamaChat(chatRequest); - } return sseService.sseChat(chatRequest,request); } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/SseServiceFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/SseServiceFactory.java new file mode 100644 index 00000000..679709d8 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/SseServiceFactory.java @@ -0,0 +1,24 @@ +package org.ruoyi.chat.factory; + + +import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.chat.IChatService; +import org.ruoyi.chat.service.chat.impl.OllamaServiceImpl; +import org.ruoyi.chat.service.chat.impl.OpenAIServiceImpl; + +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class SseServiceFactory { + + public IChatService getSseService(String type) { + if ("openai".equals(type)) { + return new OpenAIServiceImpl(); + } else if ("ollama".equals(type)) { + return new OllamaServiceImpl(); + } else { + throw new IllegalArgumentException("Unknown type: " + type); + } + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorStoreFactory.java similarity index 88% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorStoreFactory.java index 10ce84d4..88239cb9 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/VectorStoreFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorStoreFactory.java @@ -1,8 +1,10 @@ -package org.ruoyi.chat.service.knowledge.vectorstore; +package org.ruoyi.chat.factory; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.knowledge.vectorstore.MilvusVectorStore; +import org.ruoyi.chat.service.knowledge.vectorstore.WeaviateVectorStore; import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.mapper.KnowledgeInfoMapper; import org.ruoyi.service.VectorStoreService; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorizationFactory.java similarity index 89% rename from ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java rename to ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorizationFactory.java index 18a0b9a8..425d5943 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorizer/VectorizationFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorizationFactory.java @@ -1,9 +1,11 @@ -package org.ruoyi.chat.service.knowledge.vectorizer; +package org.ruoyi.chat.factory; import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.knowledge.vectorizer.BgeLargeVectorization; +import org.ruoyi.chat.service.knowledge.vectorizer.OpenAiVectorization; import org.ruoyi.domain.vo.KnowledgeInfoVo; import org.ruoyi.service.IKnowledgeInfoService; import org.ruoyi.service.VectorizationService; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java new file mode 100644 index 00000000..3a6c0aac --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java @@ -0,0 +1,19 @@ +package org.ruoyi.chat.service.chat; + +import org.ruoyi.common.chat.request.ChatRequest; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +/** + * 对话Service接口 + * + * @author ageerle + * @date 2025-04-08 + */ +public interface IChatService { + + /** + * 客户端发送消息到服务端 + * @param chatRequest 请求对象 + */ + SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter); +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java index cc3bb4b9..65adeed0 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java @@ -39,9 +39,8 @@ public interface ISseService { */ ResponseEntity textToSpeed(TextToSpeech textToSpeech); - /** - * 上传文件到api服务器 + * 上传文件到服务器 * * @param file 文件信息 * @return 返回文件信息 @@ -49,13 +48,6 @@ public interface ISseService { UploadFileResponse upload(MultipartFile file); - /** - * 使用ollama调用本地模型 - * @param chatRequest 对话信息 - * @return 流式输出返回内容 - */ - SseEmitter ollamaChat(ChatRequest chatRequest); - /** * 企业应用回复 * @param prompt 提示词 @@ -63,7 +55,6 @@ public interface ISseService { */ String wxCpChat(String prompt); - /** * 联网查询 * diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java new file mode 100644 index 00000000..7537e0b1 --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java @@ -0,0 +1,80 @@ +package org.ruoyi.chat.service.chat.impl; + +import io.github.ollama4j.OllamaAPI; +import io.github.ollama4j.models.chat.OllamaChatMessage; +import io.github.ollama4j.models.chat.OllamaChatMessageRole; +import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; +import io.github.ollama4j.models.chat.OllamaChatRequestModel; +import io.github.ollama4j.models.generate.OllamaStreamHandler; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.service.chat.IChatService; +import org.ruoyi.chat.util.SSEUtil; +import org.ruoyi.common.chat.entity.chat.Message; +import org.ruoyi.common.chat.request.ChatRequest; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.CompletableFuture; + + +@Service +@Slf4j +public class OllamaServiceImpl implements IChatService { + + @Autowired + private IChatModelService chatModelService; + + @Override + public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + String host = chatModelVo.getApiHost(); + List msgList = chatRequest.getMessages(); + + List messages = new ArrayList<>(); + for (Message message : msgList) { + OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); + ollamaChatMessage.setRole(OllamaChatMessageRole.USER); + ollamaChatMessage.setContent(message.getContent().toString()); + messages.add(ollamaChatMessage); + } + OllamaAPI api = new OllamaAPI(host); + api.setRequestTimeoutSeconds(100); + OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(chatRequest.getModel()); + + OllamaChatRequestModel requestModel = builder + .withMessages(messages) + .build(); + + // 异步执行 OllAma API 调用 + CompletableFuture.runAsync(() -> { + try { + StringBuilder response = new StringBuilder(); + OllamaStreamHandler streamHandler = (s) -> { + String substr = s.substring(response.length()); + response.append(substr); + System.out.println(substr); + try { + emitter.send(substr); + } catch (IOException e) { + SSEUtil.sendErrorEvent(emitter, e.getMessage()); + } + }; + api.chat(requestModel, streamHandler); + emitter.complete(); + } catch (Exception e) { + SSEUtil.sendErrorEvent(emitter, e.getMessage()); + } + }); + + return emitter; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java new file mode 100644 index 00000000..b9d2012d --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -0,0 +1,50 @@ +package org.ruoyi.chat.service.chat.impl; + +import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.config.ChatConfig; +import org.ruoyi.chat.listener.SSEEventSourceListener; +import org.ruoyi.chat.service.chat.IChatService; +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.openai.OpenAiStreamClient; +import org.ruoyi.common.chat.request.ChatRequest; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +@Service +@Slf4j +public class OpenAIServiceImpl implements IChatService { + + @Autowired + private IChatModelService chatModelService; + @Autowired + private ChatConfig chatConfig; + @Autowired + private OpenAiStreamClient openAiStreamClient; + + @Override + public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { + + SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(emitter); + // 查询模型信息 + ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + + if(chatModelVo!=null){ + // 建请求客户端 + openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); + // 设置默认提示词 + chatRequest.setSysPrompt(chatModelVo.getSystemPrompt()); + } + ChatCompletion completion = ChatCompletion + .builder() + .messages(chatRequest.getMessages()) + .model(chatRequest.getModel()) + .stream(chatRequest.getStream()) + .build(); + openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + + return emitter; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 6cf19b40..17a5bd49 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -6,22 +6,17 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.protobuf.ServiceException; import com.zhipu.oapi.ClientV4; import com.zhipu.oapi.service.v4.tools.*; -import io.github.ollama4j.OllamaAPI; -import io.github.ollama4j.models.chat.OllamaChatMessage; -import io.github.ollama4j.models.chat.OllamaChatMessageRole; -import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; -import io.github.ollama4j.models.chat.OllamaChatRequestModel; -import io.github.ollama4j.models.generate.OllamaStreamHandler; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.*; -import org.ruoyi.chat.config.ChatConfig; -import org.ruoyi.chat.listener.SSEEventSourceListener; import org.ruoyi.chat.service.chat.IChatCostService; +import org.ruoyi.chat.service.chat.IChatService; import org.ruoyi.chat.service.chat.ISseService; +import org.ruoyi.chat.factory.SseServiceFactory; import org.ruoyi.chat.util.IpUtil; +import org.ruoyi.chat.util.SSEUtil; import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.chat.ChatCompletion; @@ -32,15 +27,14 @@ import org.ruoyi.common.chat.entity.files.UploadFileResponse; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.core.utils.DateUtils; import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.core.utils.file.FileUtils; import org.ruoyi.common.core.utils.file.MimeTypeUtils; import org.ruoyi.common.redis.utils.RedisUtils; -import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.service.EmbeddingService; -import org.ruoyi.service.IChatModelService; import org.ruoyi.service.VectorStoreService; import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.Resource; @@ -60,7 +54,6 @@ import java.time.Duration; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -72,10 +65,6 @@ public class SseServiceImpl implements ISseService { private final OpenAiStreamClient openAiStreamClient; - private final ChatConfig chatConfig; - - private final IChatModelService chatModelService; - private final EmbeddingService embeddingService; private final VectorStoreService vectorStore; @@ -84,6 +73,8 @@ public class SseServiceImpl implements ISseService { private final IChatCostService chatCostService; + private final SseServiceFactory sseServiceFactory; + private static final String requestIdTemplate = "company-%d"; private static final ObjectMapper mapper = new ObjectMapper(); @@ -91,78 +82,64 @@ public class SseServiceImpl implements ISseService { @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { SseEmitter sseEmitter = new SseEmitter(0L); - SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); - // 获取对话消息列表 - List messages = chatRequest.getMessages(); try { - // 查询模型信息 - ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - - OpenAiStreamClient openAiModelStreamClient; - if(chatModelVo!=null){ - // 建请求客户端 - openAiModelStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); - // 设置默认提示词 - chatRequest.setSysPrompt(chatModelVo.getSystemPrompt()); - }else { - // 使用默认客户端 - openAiModelStreamClient = openAiStreamClient; - } // 构建消息列表增加联网、知识库等内容 buildChatMessageList(chatRequest); - // 根据模型名称前缀调用不同的处理逻辑 - switchModelAndHandle(chatRequest); - + switchModelAndHandle(chatRequest,sseEmitter); // 未登录用户限制对话次数 - if (!StpUtil.isLogin()) { - String clientIp = IpUtil.getClientIp(request); - // 访客每天默认只能对话5次 - int timeWindowInSeconds = 5; - String redisKey = "clientIp:" + clientIp; - int count = 0; - if (RedisUtils.getCacheObject(redisKey) == null) { - // 缓存有效时间1天 - RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); - }else { - count = RedisUtils.getCacheObject(redisKey); - if (count >= timeWindowInSeconds) { - throw new ServiceException("当日免费次数已用完"); - } - count++; - RedisUtils.setCacheObject(redisKey, count); - } - } - - ChatCompletion completion = ChatCompletion - .builder() - .messages(messages) - .model(chatRequest.getModel()) - .stream(chatRequest.getStream()) - .build(); - openAiModelStreamClient.streamChatCompletion(completion, openAIEventSourceListener); - + checkUnauthenticatedUserChatLimit(request); // 保存消息记录 并扣除费用 chatCostService.deductToken(chatRequest); } catch (Exception e) { String message = e.getMessage(); - sendErrorEvent(sseEmitter, message); + SSEUtil.sendErrorEvent(sseEmitter, message); return sseEmitter; } return sseEmitter; } + /** + * 检查未登录用户是否超过当日对话次数限制 + * + * @param request 当前请求 + * @throws ServiceException 如果当日免费次数已用完 + */ + public void checkUnauthenticatedUserChatLimit(HttpServletRequest request) throws ServiceException { + // 未登录用户限制对话次数 + if (!StpUtil.isLogin()) { + String clientIp = IpUtil.getClientIp(request); + // 访客每天默认只能对话5次 + int timeWindowInSeconds = 5; + String redisKey = "clientIp:" + clientIp; + int count = 0; + // 检查Redis中的对话次数 + if (RedisUtils.getCacheObject(redisKey) == null) { + // 缓存有效时间1天 + RedisUtils.setCacheObject(redisKey, count, Duration.ofSeconds(86400)); + } else { + count = RedisUtils.getCacheObject(redisKey); + if (count >= timeWindowInSeconds) { + throw new ServiceException("当日免费次数已用完"); + } + count++; + RedisUtils.setCacheObject(redisKey, count); + } + } + } + /** * 根据模型名称前缀调用不同的处理逻辑 */ - private void switchModelAndHandle(ChatRequest chatRequest) { + private void switchModelAndHandle(ChatRequest chatRequest,SseEmitter emitter) { String model = chatRequest.getModel(); // 如果模型名称以ollama开头,则调用ollama中部署的本地模型 if (model.startsWith("ollama-")) { String[] parts = chatRequest.getModel().split("ollama-", 2); // 限制分割次数为2 if (parts.length > 1) { chatRequest.setModel(parts[1]); - ollamaChat(chatRequest); + IChatService chatService = sseServiceFactory.getSseService("ollama"); + chatService.chat(chatRequest,emitter); } else { throw new IllegalArgumentException("Invalid ollama model name: " + chatRequest.getModel()); } @@ -177,8 +154,13 @@ public class SseServiceImpl implements ISseService { private void buildChatMessageList(ChatRequest chatRequest){ // 获取对话消息列表 List messages = chatRequest.getMessages(); + String sysPrompt = chatRequest.getSysPrompt(); + if(StringUtils.isEmpty(sysPrompt)){ + sysPrompt ="你是一个由RuoYI-AI开发的人工智能助手,名字叫熊猫助手。你擅长中英文对话,能够理解并处理各种问题,提供安全、有帮助、准确的回答。" + + "当前时间:"+ DateUtils.getDate(); + } // 设置系统默认提示词 - Message sysMessage = Message.builder().content(chatRequest.getSysPrompt()).role(Message.Role.SYSTEM).build(); + Message sysMessage = Message.builder().content(sysPrompt).role(Message.Role.SYSTEM).build(); messages.add(0,sysMessage); // 查询向量库相关信息加入到上下文 @@ -216,23 +198,6 @@ public class SseServiceImpl implements ISseService { } } - /** - * 发送SSE错误事件的封装方法 - * - * @param sseEmitter - * @param errorMessage - */ - private void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { - SseEmitter.SseEventBuilder event = SseEmitter.event() - .name("error") - .data(errorMessage); - try { - sseEmitter.send(event); - } catch (IOException e) { - log.error("SSE发送失败: {}", e.getMessage()); - } - sseEmitter.complete(); - } /** * 文字转语音 @@ -323,51 +288,6 @@ public class SseServiceImpl implements ISseService { return file; } - @Override - public SseEmitter ollamaChat(ChatRequest chatRequest) { - - ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - final SseEmitter emitter = new SseEmitter(); - String host = chatModelVo.getApiHost(); - List msgList = chatRequest.getMessages(); - - List messages = new ArrayList<>(); - for (Message message : msgList) { - OllamaChatMessage ollamaChatMessage = new OllamaChatMessage(); - ollamaChatMessage.setRole(OllamaChatMessageRole.USER); - ollamaChatMessage.setContent(message.getContent().toString()); - messages.add(ollamaChatMessage); - } - OllamaAPI api = new OllamaAPI(host); - api.setRequestTimeoutSeconds(100); - OllamaChatRequestBuilder builder = OllamaChatRequestBuilder.getInstance(chatRequest.getModel()); - - OllamaChatRequestModel requestModel = builder - .withMessages(messages) - .build(); - - // 异步执行 OllAma API 调用 - CompletableFuture.runAsync(() -> { - try { - StringBuilder response = new StringBuilder(); - OllamaStreamHandler streamHandler = (s) -> { - String substr = s.substring(response.length()); - response.append(substr); - System.out.println(substr); - try { - emitter.send(substr); - } catch (IOException e) { - sendErrorEvent(emitter, e.getMessage()); - } - }; - api.chat(requestModel, streamHandler); - emitter.complete(); - } catch (Exception e) { - sendErrorEvent(emitter, e.getMessage()); - } - }); - return emitter; - } @Override public String wxCpChat(String prompt) { diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java new file mode 100644 index 00000000..21f183ae --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java @@ -0,0 +1,33 @@ +package org.ruoyi.chat.util; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + +import java.io.IOException; + +/** + * sse工具类 + * + * @author WangLe + */ +@Slf4j +public class SSEUtil { + + /** + * 发送SSE错误事件的封装方法 + * + * @param sseEmitter sse事件对象 + * @param errorMessage 错误信息 + */ + public static void sendErrorEvent(SseEmitter sseEmitter, String errorMessage) { + SseEmitter.SseEventBuilder event = SseEmitter.event() + .name("error") + .data(errorMessage); + try { + sseEmitter.send(event); + } catch (IOException e) { + log.error("SSE发送失败: {}", e.getMessage()); + } + sseEmitter.complete(); + } +} From 9b32e3b3b226723cd43bfa37026e1e4487f6ef69 Mon Sep 17 00:00:00 2001 From: ageer Date: Sat, 12 Apr 2025 10:08:51 +0800 Subject: [PATCH 14/27] =?UTF-8?q?feat:=20mcp=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules-api/ruoyi-chat-api/pom.xml | 32 ++++++ ruoyi-modules/ruoyi-chat/pom.xml | 14 +++ .../ruoyi/chat/service/chat/IChatService.java | 7 ++ .../service/chat/impl/OllamaServiceImpl.java | 64 ++++++++++- .../service/chat/impl/OpenAIServiceImpl.java | 64 +++++++++++ ruoyi-modules/ruoyi-mcp-server/pom.xml | 63 +++++++++++ .../org/ruoyi/mcp/McpServerApplication.java | 16 +++ .../org/ruoyi/mcp/config/McpServerConfig.java | 100 ++++++++++++++++++ .../ruoyi/mcp/service/McpCustomService.java | 24 +++++ .../src/main/resources/application.yaml | 10 ++ .../src/main/resources/application.yml | 21 +++- 11 files changed, 411 insertions(+), 4 deletions(-) create mode 100644 ruoyi-modules/ruoyi-mcp-server/pom.xml create mode 100644 ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java create mode 100644 ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java create mode 100644 ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java create mode 100644 ruoyi-modules/ruoyi-mcp-server/src/main/resources/application.yaml diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index 633977bc..72fd0d2a 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -18,12 +18,44 @@ UTF-8 + + + + org.springframework.ai + spring-ai-bom + 1.0.0-M6 + pom + import + + + + org.ruoyi ruoyi-common-chat + + + org.springframework.ai + spring-ai-mcp-client-spring-boot-starter + + + + org.springframework.ai + spring-ai-mcp + + + + org.springframework.ai + spring-ai-openai-spring-boot-starter + + + + org.springframework.ai + spring-ai-ollama-spring-boot-starter + diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index 2a14fb14..5749f4e8 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -114,6 +114,20 @@ ruoyi-system-api + + org.springframework.ai + spring-ai-core + 1.0.0-M6 + compile + + + + org.springframework.ai + spring-ai-ollama + 1.0.0-M6 + compile + + diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java index 3a6c0aac..1fbadd4b 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java @@ -16,4 +16,11 @@ public interface IChatService { * @param chatRequest 请求对象 */ SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter); + + + /** + * 客户端发送消息到服务端 + * @param chatRequest 请求对象 + */ + SseEmitter mcpChat(ChatRequest chatRequest,SseEmitter emitter); } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java index 7537e0b1..8b337b24 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java @@ -6,8 +6,6 @@ import io.github.ollama4j.models.chat.OllamaChatMessageRole; import io.github.ollama4j.models.chat.OllamaChatRequestBuilder; import io.github.ollama4j.models.chat.OllamaChatRequestModel; import io.github.ollama4j.models.generate.OllamaStreamHandler; -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.chat.service.chat.IChatService; import org.ruoyi.chat.util.SSEUtil; @@ -15,7 +13,16 @@ import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.service.IChatModelService; +import org.springframework.ai.chat.client.ChatClient; +import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; +import org.springframework.ai.chat.memory.ChatMemory; +import org.springframework.ai.chat.memory.InMemoryChatMemory; +import org.springframework.ai.chat.messages.UserMessage; +import org.springframework.ai.ollama.api.OllamaModel; +import org.springframework.ai.ollama.api.OllamaOptions; +import org.springframework.ai.tool.ToolCallbackProvider; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; @@ -32,6 +39,13 @@ public class OllamaServiceImpl implements IChatService { @Autowired private IChatModelService chatModelService; + @Autowired + private ChatClient chatClient; + @Autowired + private ToolCallbackProvider tools; + + private final ChatMemory chatMemory = new InMemoryChatMemory(); + @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { @@ -77,4 +91,50 @@ public class OllamaServiceImpl implements IChatService { return emitter; } + + @Override + public SseEmitter mcpChat(ChatRequest chatRequest, SseEmitter emitter) { + List msgList = chatRequest.getMessages(); + // 添加记忆 + for (int i = 0; i < msgList.size(); i++) { + org.springframework.ai.chat.messages.Message springAiMessage = new UserMessage(msgList.get(i).getContent().toString()); + chatMemory.add(String.valueOf(i),springAiMessage); + } + var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, chatRequest.getUserId(), 10); + + this.chatClient.prompt(chatRequest.getPrompt()) + .advisors(messageChatMemoryAdvisor) + .tools(tools) + .options(OllamaOptions.builder() + .model(OllamaModel.QWEN_2_5_7B) + .temperature(0.4) + .build()) + .stream() + .chatResponse() + .subscribe( + chatResponse -> { + try { + emitter.send(chatResponse, MediaType.APPLICATION_JSON); + } catch (IOException e) { + e.printStackTrace(); + } + }, + error -> { + try { + emitter.completeWithError(error); + } catch (Exception e) { + e.printStackTrace(); + } + }, + () -> { + try { + emitter.complete(); + } catch (Exception e) { + e.printStackTrace(); + } + } + ); + + return emitter; + } } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index b9d2012d..ebf37e13 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -5,14 +5,29 @@ import org.ruoyi.chat.config.ChatConfig; import org.ruoyi.chat.listener.SSEEventSourceListener; import org.ruoyi.chat.service.chat.IChatService; import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.service.IChatModelService; +import org.springframework.ai.chat.client.ChatClient; +import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; +import org.springframework.ai.chat.memory.ChatMemory; +import org.springframework.ai.chat.memory.InMemoryChatMemory; +import org.springframework.ai.chat.messages.UserMessage; +import org.springframework.ai.openai.OpenAiChatOptions; +import org.springframework.ai.tool.ToolCallbackProvider; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +import java.io.IOException; +import java.util.List; + +/** + * @author ageer + */ @Service @Slf4j public class OpenAIServiceImpl implements IChatService { @@ -23,6 +38,13 @@ public class OpenAIServiceImpl implements IChatService { private ChatConfig chatConfig; @Autowired private OpenAiStreamClient openAiStreamClient; + @Autowired + private ChatClient chatClient; + + @Autowired + private ToolCallbackProvider tools; + + private final ChatMemory chatMemory = new InMemoryChatMemory(); @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { @@ -47,4 +69,46 @@ public class OpenAIServiceImpl implements IChatService { return emitter; } + + @Override + public SseEmitter mcpChat(ChatRequest chatRequest, SseEmitter emitter) { + List msgList = chatRequest.getMessages(); + // 添加记忆 + for (int i = 0; i < msgList.size(); i++) { + org.springframework.ai.chat.messages.Message springAiMessage = new UserMessage(msgList.get(i).getContent().toString()); + chatMemory.add(String.valueOf(i),springAiMessage); + } + var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, chatRequest.getUserId(), 10); + this.chatClient.prompt(chatRequest.getPrompt()) + .advisors(messageChatMemoryAdvisor) + .tools(tools) + .options(OpenAiChatOptions.builder().model(chatRequest.getModel()).build()) + .stream() + .chatResponse() + .subscribe( + chatResponse -> { + try { + emitter.send(chatResponse, MediaType.APPLICATION_JSON); + } catch (IOException e) { + e.printStackTrace(); + } + }, + error -> { + try { + emitter.completeWithError(error); + } catch (Exception e) { + e.printStackTrace(); + } + }, + () -> { + try { + emitter.complete(); + } catch (Exception e) { + e.printStackTrace(); + } + } + ); + + return emitter; + } } diff --git a/ruoyi-modules/ruoyi-mcp-server/pom.xml b/ruoyi-modules/ruoyi-mcp-server/pom.xml new file mode 100644 index 00000000..113e41c1 --- /dev/null +++ b/ruoyi-modules/ruoyi-mcp-server/pom.xml @@ -0,0 +1,63 @@ + + + 4.0.0 + + org.ruoyi + ruoyi-modules + ${revision} + ../pom.xml + + + ruoyi-mcp-server + + + 17 + 17 + UTF-8 + + + + + + org.springframework.ai + spring-ai-bom + 1.0.0-M6 + pom + import + + + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.ai + spring-ai-mcp-server-webmvc-spring-boot-starter + + + + org.springframework.ai + spring-ai-mcp + + + + + + diff --git a/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java new file mode 100644 index 00000000..bf6b0ff1 --- /dev/null +++ b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java @@ -0,0 +1,16 @@ +package org.ruoyi.mcp; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author ageer + */ +@SpringBootApplication +public class McpServerApplication { + + public static void main(String[] args) { + SpringApplication.run(McpServerApplication.class, args); + } + +} diff --git a/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java new file mode 100644 index 00000000..4ba45e10 --- /dev/null +++ b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java @@ -0,0 +1,100 @@ +package org.ruoyi.mcp.config; + +import org.ruoyi.mcp.service.McpCustomService; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.modelcontextprotocol.server.McpServerFeatures; +import io.modelcontextprotocol.spec.McpSchema; +import org.springframework.ai.tool.ToolCallbackProvider; +import org.springframework.ai.tool.method.MethodToolCallbackProvider; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; + + +/** + * @author ageer + */ +@Configuration +@EnableWebMvc +public class McpServerConfig implements WebMvcConfigurer { + + @Bean + public ToolCallbackProvider openLibraryTools(McpCustomService mcpService) { + return MethodToolCallbackProvider.builder().toolObjects(mcpService).build(); + } + + @Bean + public List resourceRegistrations() { + + // Create a resource registration for system information + var systemInfoResource = new McpSchema.Resource( + "system://info", + "System Information", + "Provides basic system information including Java version, OS, etc.", + "application/json", null + ); + + var resourceRegistration = new McpServerFeatures.SyncResourceRegistration(systemInfoResource, (request) -> { + try { + var systemInfo = Map.of( + "javaVersion", System.getProperty("java.version"), + "osName", System.getProperty("os.name"), + "osVersion", System.getProperty("os.version"), + "osArch", System.getProperty("os.arch"), + "processors", Runtime.getRuntime().availableProcessors(), + "timestamp", System.currentTimeMillis()); + + String jsonContent = new ObjectMapper().writeValueAsString(systemInfo); + + return new McpSchema.ReadResourceResult( + List.of(new McpSchema.TextResourceContents(request.uri(), "application/json", jsonContent))); + } + catch (Exception e) { + throw new RuntimeException("Failed to generate system info", e); + } + }); + + return List.of(resourceRegistration); + } + + + + @Bean + public List promptRegistrations() { + + var prompt = new McpSchema.Prompt("greeting", "A friendly greeting prompt", + List.of(new McpSchema.PromptArgument("name", "The name to greet", true))); + + var promptRegistration = new McpServerFeatures.SyncPromptRegistration(prompt, getPromptRequest -> { + + String nameArgument = (String) getPromptRequest.arguments().get("name"); + if (nameArgument == null) { + nameArgument = "friend"; + } + + var userMessage = new McpSchema.PromptMessage(McpSchema.Role.USER, + new McpSchema.TextContent("Hello " + nameArgument + "! How can I assist you today?")); + + return new McpSchema.GetPromptResult("A personalized greeting message", List.of(userMessage)); + }); + + return List.of(promptRegistration); + } + + + @Bean + public Consumer> rootsChangeConsumer() { + return roots -> { + System.out.println("rootsChange"); + }; + } + + + + +} diff --git a/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java new file mode 100644 index 00000000..f5f34210 --- /dev/null +++ b/ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java @@ -0,0 +1,24 @@ +package org.ruoyi.mcp.service; + +import org.springframework.ai.tool.annotation.Tool; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author ageer + */ +@Service +public class McpCustomService { + + + public record Book(List isbn, String title, List authorName) { + } + + @Tool(description = "Get list of Books by title") + public List getBooks(String title) { + // 这里模拟查询DB操作 + return List.of(new Book(List.of("ISBN-888"), "SpringAI教程", List.of("熊猫助手写的书"))); + } + +} diff --git a/ruoyi-modules/ruoyi-mcp-server/src/main/resources/application.yaml b/ruoyi-modules/ruoyi-mcp-server/src/main/resources/application.yaml new file mode 100644 index 00000000..57f9979d --- /dev/null +++ b/ruoyi-modules/ruoyi-mcp-server/src/main/resources/application.yaml @@ -0,0 +1,10 @@ +spring: + application: + name: mcp-server + ai: + mcp: + server: + name: webmvc-mcp-server + version: 1.0.0 + type: SYNC + sse-message-endpoint: /mcp/messages diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml b/ruoyi-modules/ruoyi-system/src/main/resources/application.yml index 26173564..a414d371 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/application.yml @@ -318,5 +318,22 @@ wechat: token: '' aesKey: '' - - + # spring ai配置 +spring: + ai: + openai: + api-key: sk-xx + base-url: https://api.pandarobot.chat/ + mcp: + client: + enabled: true + name: call-mcp-server + sse: + connections: + server1: + url: http://127.0.0.1:8080 + ollama: + init: + pull-model-strategy: always + timeout: 60s + max-retries: 1 From 0dc6262b392b08e1b6dfae456e315bbdff2babbc Mon Sep 17 00:00:00 2001 From: ageer Date: Sat, 12 Apr 2025 10:09:01 +0800 Subject: [PATCH 15/27] =?UTF-8?q?feat:=20mcp=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 9aa31583..6798c157 100644 --- a/pom.xml +++ b/pom.xml @@ -354,6 +354,7 @@ ruoyi-common ruoyi-modules ruoyi-modules-api + ruoyi-modules/ruoyi-mcp-server pom From 4b539390029c93f965df2ee46d05c739df90631b Mon Sep 17 00:00:00 2001 From: ageer Date: Sat, 12 Apr 2025 15:18:16 +0800 Subject: [PATCH 16/27] =?UTF-8?q?feat:=20mcp=E6=94=AF=E6=8C=81,=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/pom.xml | 125 + .../java/org/ruoyi}/RuoYiAIApplication.java | 2 +- .../org/ruoyi}/RuoYiAIServletInitializer.java | 2 +- .../org/ruoyi/controller}/AuthController.java | 29 +- .../ruoyi/controller}/CaptchaController.java | 16 +- .../ruoyi/controller}/IndexController.java | 18 +- .../src/main/resources/application-dev.yml | 27 +- .../src/main/resources/application-prod.yml | 0 .../src/main/resources/application.yml | 21 +- .../src/main/resources/banner.txt | 0 .../main/resources/i18n/messages.properties | 0 .../resources/i18n/messages_en_US.properties | 0 .../resources/i18n/messages_zh_CN.properties | 0 .../src/main/resources/ip2region.xdb | Bin .../src/main/resources/logback-plus.xml | 0 .../src/main/resources/spy.properties | 0 .../src/main/resources/static/.gitignore | 46 + .../src/main/resources/static/.nojekyll | 0 ruoyi-admin/src/main/resources/static/CNAME | 1 + .../src/main/resources/static/README.md | 74 + .../src/main/resources/static/_coverpage.md | 32 + .../src/main/resources/static/_footer.md | 2 + .../src/main/resources/static/_navbar.md | 9 + .../src/main/resources/static/_sidebar.md | 16 + .../main/resources/static/common/add_group.md | 27 + .../main/resources/static/common/blacklist.md | 7 + .../main/resources/static/common/column.md | 18 + .../resources/static/common/contribution.md | 69 + .../resources/static/common/demo_system.md | 13 + .../src/main/resources/static/common/pr.md | 37 + .../resources/static/common/user_register.md | 80 + .../src/main/resources/static/common/video.md | 85 + .../src/main/resources/static/index.html | 74 + .../main/resources/static/plus-ui/_sidebar.md | 22 + .../static/plus-ui/devdoc/common_func.md | 234 ++ .../static/plus-ui/devdoc/component_use.md | 55 + .../static/plus-ui/devdoc/content_copy.md | 4 + .../static/plus-ui/devdoc/dev_norm.md | 16 + .../static/plus-ui/devdoc/dict_use.md | 4 + .../plus-ui/devdoc/exception_handling.md | 4 + .../static/plus-ui/devdoc/icon_use.md | 4 + .../static/plus-ui/devdoc/page_cache.md | 4 + .../static/plus-ui/devdoc/param_use.md | 4 + .../static/plus-ui/devdoc/permissions_use.md | 4 + .../static/plus-ui/devdoc/request_process.md | 65 + .../static/plus-ui/devdoc/router_use.md | 82 + .../src/main/resources/static/plus-ui/home.md | 53 + .../resources/static/questions/_sidebar.md | 34 + .../resources/static/questions/api_encrypt.md | 148 ++ .../resources/static/questions/bean_null.md | 10 + .../resources/static/questions/deploy_vue.md | 13 + .../static/questions/domestic_databases.md | 41 + .../resources/static/questions/dubbo_ip.md | 18 + .../static/questions/https_config.md | 27 + .../static/questions/identify_fail.md | 10 + .../static/questions/import_excel.md | 4 + .../static/questions/jar_run_fail.md | 12 + .../resources/static/questions/jce_cannot.md | 3 + .../resources/static/questions/kinfe4j.md | 66 + .../resources/static/questions/login_step.md | 69 + .../main/resources/static/questions/lombok.md | 4 + .../nacos_naming_instance_metadata.md | 35 + .../static/questions/nacos_read_fail.md | 15 + .../static/questions/only_one_subscriber.md | 11 + .../static/questions/parse_exception.md | 40 + .../static/questions/permission_denied.md | 15 + .../static/questions/read_metadata.md | 11 + .../static/questions/sentinel_404.md | 8 + .../static/questions/st_not_support.md | 11 + .../resources/static/questions/swagger.md | 3 + .../static/questions/synchronous_update.md | 3 + .../resources/static/questions/use_druid.md | 20 + .../resources/static/questions/use_tomcat.md | 9 + .../static/ruoyi-cloud-plus/_sidebar.md | 70 + .../static/ruoyi-cloud-plus/changlog.md | 1385 +++++++++++ .../ruoyi-cloud-plus/extend-function/elk.md | 37 + .../ruoyi-cloud-plus/extend-function/es.md | 26 + .../ruoyi-cloud-plus/extend-function/kafka.md | 9 + .../extend-function/maxkey.md | 20 + .../ruoyi-cloud-plus/extend-function/nacos.md | 13 + .../extend-function/prometheus_grafana.md | 45 + .../extend-function/rabbitmq.md | 10 + .../extend-function/rocketmq.md | 9 + .../extend-function/shardingproxy.md | 75 + .../extend-function/skywalking.md | 41 + .../framework/architecture_diagram.md | 3 + .../framework/association/collaboration.md | 27 + .../framework/association/doc.md | 88 + .../framework/association/i18n.md | 31 + .../association/inner_authentication.md | 19 + .../framework/association/new_module.md | 39 + .../association/update_package_name.md | 33 + .../framework/association/update_url.md | 25 + .../framework/basic/client.md | 85 + .../framework/basic/code_generate.md | 86 + .../framework/basic/export.md | 250 ++ .../framework/basic/import.md | 202 ++ .../ruoyi-cloud-plus/framework/basic/oss.md | 124 + .../ruoyi-cloud-plus/framework/basic/page.md | 29 + .../framework/basic/param_check.md | 158 ++ .../framework/basic/permissions.md | 144 ++ .../framework/basic/permissions_control.md | 178 ++ .../framework/basic/router_release.md | 26 + .../framework/basic/social.md | 68 + .../framework/basic/tenant.md | 121 + .../ruoyi-cloud-plus/framework/basic/user.md | 85 + .../framework/explain/about_join.md | 12 + .../ruoyi-cloud-plus/framework/explain/key.md | 19 + .../framework/explain/test.md | 6 + .../framework/explain/transaction.md | 45 + .../framework/extend/api_encrypt.md | 39 + .../framework/extend/dynamic_datasource.md | 45 + .../framework/extend/encrypt.md | 38 + .../framework/extend/idempotent.md | 29 + .../ruoyi-cloud-plus/framework/extend/mail.md | 15 + .../framework/extend/sensitive.md | 33 + .../ruoyi-cloud-plus/framework/extend/sms.md | 51 + .../ruoyi-cloud-plus/framework/extend/sse.md | 24 + .../framework/extend/translation.md | 44 + .../framework/extend/websocket.md | 39 + .../static/ruoyi-cloud-plus/framework/tree.md | 91 + .../resources/static/ruoyi-cloud-plus/home.md | 137 ++ .../ruoyi-cloud-plus/quickstart/1.Xinit.md | 87 + .../ruoyi-cloud-plus/quickstart/deploy.md | 118 + .../quickstart/extend_project.md | 42 + .../quickstart/idea_environment.md | 38 + .../ruoyi-cloud-plus/quickstart/init.md | 102 + .../quickstart/power_job_init.md | 33 + .../quickstart/snail_job_init.md | 38 + .../quickstart/worker_init.md | 52 + .../static/ruoyi-vue-plus/_sidebar.md | 64 + .../static/ruoyi-vue-plus/changlog.md | 2028 +++++++++++++++++ .../framework/architecture_diagram.md | 3 + .../framework/association/doc.md | 89 + .../framework/association/i18n.md | 33 + .../framework/association/new_module.md | 15 + .../association/update_package_name.md | 33 + .../framework/association/update_url.md | 26 + .../ruoyi-vue-plus/framework/basic/client.md | 85 + .../framework/basic/code_generate.md | 85 + .../ruoyi-vue-plus/framework/basic/export.md | 249 ++ .../ruoyi-vue-plus/framework/basic/import.md | 202 ++ .../framework/basic/interface_release.md | 25 + .../ruoyi-vue-plus/framework/basic/oss.md | 124 + .../ruoyi-vue-plus/framework/basic/page.md | 32 + .../framework/basic/param_check.md | 158 ++ .../framework/basic/permissions.md | 144 ++ .../framework/basic/permissions_control.md | 180 ++ .../ruoyi-vue-plus/framework/basic/social.md | 68 + .../ruoyi-vue-plus/framework/basic/tenant.md | 121 + .../ruoyi-vue-plus/framework/basic/user.md | 85 + .../framework/explain/about_join.md | 14 + .../ruoyi-vue-plus/framework/explain/key.md | 19 + .../ruoyi-vue-plus/framework/explain/test.md | 6 + .../framework/explain/transaction.md | 45 + .../framework/extend/api_encrypt.md | 38 + .../framework/extend/dynamic_datasource.md | 45 + .../framework/extend/encrypt.md | 28 + .../framework/extend/idempotent.md | 29 + .../ruoyi-vue-plus/framework/extend/mail.md | 17 + .../ruoyi-vue-plus/framework/extend/maxkey.md | 20 + .../framework/extend/sensitive.md | 33 + .../framework/extend/skywalking.md | 20 + .../ruoyi-vue-plus/framework/extend/sms.md | 51 + .../ruoyi-vue-plus/framework/extend/sse.md | 22 + .../ruoyi-vue-plus/framework/extend/topiam.md | 30 + .../framework/extend/translation.md | 34 + .../framework/extend/websocket.md | 37 + .../static/ruoyi-vue-plus/framework/tree.md | 61 + .../resources/static/ruoyi-vue-plus/home.md | 127 ++ .../ruoyi-vue-plus/quickstart/4.Xinit.md | 67 + .../ruoyi-vue-plus/quickstart/5.Xnew.md | 5 + .../ruoyi-vue-plus/quickstart/admin_init.md | 32 + .../ruoyi-vue-plus/quickstart/deploy.md | 126 + .../quickstart/extend_project.md | 49 + .../quickstart/idea_environment.md | 50 + .../static/ruoyi-vue-plus/quickstart/init.md | 73 + .../quickstart/power_job_init.md | 48 + .../quickstart/snail_job_init.md | 52 + .../ruoyi-vue-plus/quickstart/worker_init.md | 43 + .../ruoyi-vue-plus/quickstart/xxl_job_init.md | 43 + .../main/resources/static/static/css/vue.css | 1 + .../resources/static/static/image/favicon.ico | Bin 0 -> 8131 bytes .../resources/static/static/image/logo.png | Bin 0 -> 119264 bytes .../static/static/image/ruoyicloudplus.png | Bin 0 -> 49107 bytes .../static/static/image/ruoyivueplus.png | Bin 0 -> 54652 bytes .../static/static/js/docsify-copy-code.min.js | 9 + .../static/static/js/docsify-footer.min.js | 4 + .../static/js/docsify-pagination.min.js | 1 + .../static/js/docsify-scroll-to-top.min.js | 1 + .../resources/static/static/js/docsify.min.js | 1 + .../resources/static/static/js/emoji.min.js | 1 + .../static/static/js/prism-bash.min.js | 1 + .../static/static/js/prism-typescript.min.js | 1 + .../resources/static/static/js/search.min.js | 1 + .../static/static/js/zoom-image.min.js | 1 + ruoyi-modules-api/ruoyi-chat-api/pom.xml | 10 + .../ruoyi/domain/bo/ChatAgentManageBo.java | 2 +- .../org/ruoyi/domain/bo/ChatAppStoreBo.java | 2 +- .../java/org/ruoyi/domain/bo/ChatGptsBo.java | 2 +- .../ruoyi/domain/bo/ChatPackagePlanBo.java | 2 +- .../org/ruoyi/domain/bo/ChatPayOrderBo.java | 2 +- .../org/ruoyi/domain/bo/ChatPluginBo.java | 2 +- .../ruoyi/domain/vo/ChatAgentManageVo.java | 10 +- .../org/ruoyi/domain/vo/ChatAppStoreVo.java | 5 +- .../java/org/ruoyi/domain/vo/ChatGptsVo.java | 3 +- .../org/ruoyi/domain/vo/ChatMessageVo.java | 3 +- .../java/org/ruoyi/domain/vo/ChatModelVo.java | 3 +- .../ruoyi/domain/vo/ChatPackagePlanVo.java | 3 +- .../org/ruoyi/domain/vo/ChatPayOrderVo.java | 2 +- .../org/ruoyi/domain/vo/ChatPluginVo.java | 2 +- .../ruoyi/mapper/ChatAgentManageMapper.java | 2 +- .../org/ruoyi/mapper/ChatAppStoreMapper.java | 2 +- .../service/IChatAgentManageService.java | 2 +- .../ruoyi/service/IChatAppStoreService.java | 2 +- .../impl/ChatAgentManageServiceImpl.java | 4 +- .../service/impl/ChatAppStoreServiceImpl.java | 4 +- .../chain/loader/ResourceLoaderFactory.java | 5 +- ruoyi-modules/pom.xml | 34 + ruoyi-modules/ruoyi-chat/pom.xml | 14 - .../chat/ChatAgentManageController.java | 4 +- .../chat/ChatAppStoreController.java | 4 +- .../chat/listener/SSEEventSourceListener.java | 2 +- .../org/ruoyi/chat/util/MjOkHttpUtil.java | 22 +- ruoyi-modules/ruoyi-system/pom.xml | 48 - 225 files changed, 11937 insertions(+), 163 deletions(-) create mode 100644 ruoyi-admin/pom.xml rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-admin/src/main/java/org/ruoyi}/RuoYiAIApplication.java (96%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system => ruoyi-admin/src/main/java/org/ruoyi}/RuoYiAIServletInitializer.java (94%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system => ruoyi-admin/src/main/java/org/ruoyi/controller}/AuthController.java (89%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system => ruoyi-admin/src/main/java/org/ruoyi/controller}/CaptchaController.java (97%) rename {ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system => ruoyi-admin/src/main/java/org/ruoyi/controller}/IndexController.java (53%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/application-dev.yml (79%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/application-prod.yml (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/application.yml (95%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/banner.txt (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/i18n/messages.properties (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/i18n/messages_en_US.properties (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/i18n/messages_zh_CN.properties (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/ip2region.xdb (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/logback-plus.xml (100%) rename {ruoyi-modules/ruoyi-system => ruoyi-admin}/src/main/resources/spy.properties (100%) create mode 100644 ruoyi-admin/src/main/resources/static/.gitignore create mode 100644 ruoyi-admin/src/main/resources/static/.nojekyll create mode 100644 ruoyi-admin/src/main/resources/static/CNAME create mode 100644 ruoyi-admin/src/main/resources/static/README.md create mode 100644 ruoyi-admin/src/main/resources/static/_coverpage.md create mode 100644 ruoyi-admin/src/main/resources/static/_footer.md create mode 100644 ruoyi-admin/src/main/resources/static/_navbar.md create mode 100644 ruoyi-admin/src/main/resources/static/_sidebar.md create mode 100644 ruoyi-admin/src/main/resources/static/common/add_group.md create mode 100644 ruoyi-admin/src/main/resources/static/common/blacklist.md create mode 100644 ruoyi-admin/src/main/resources/static/common/column.md create mode 100644 ruoyi-admin/src/main/resources/static/common/contribution.md create mode 100644 ruoyi-admin/src/main/resources/static/common/demo_system.md create mode 100644 ruoyi-admin/src/main/resources/static/common/pr.md create mode 100644 ruoyi-admin/src/main/resources/static/common/user_register.md create mode 100644 ruoyi-admin/src/main/resources/static/common/video.md create mode 100644 ruoyi-admin/src/main/resources/static/index.html create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md create mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/home.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/_sidebar.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/api_encrypt.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/bean_null.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/deploy_vue.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/domestic_databases.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/https_config.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/identify_fail.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/import_excel.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/jce_cannot.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/kinfe4j.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/login_step.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/lombok.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/parse_exception.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/permission_denied.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/read_metadata.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/sentinel_404.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/st_not_support.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/swagger.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/synchronous_update.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/use_druid.md create mode 100644 ruoyi-admin/src/main/resources/static/questions/use_tomcat.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md create mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md create mode 100644 ruoyi-admin/src/main/resources/static/static/css/vue.css create mode 100644 ruoyi-admin/src/main/resources/static/static/image/favicon.ico create mode 100644 ruoyi-admin/src/main/resources/static/static/image/logo.png create mode 100644 ruoyi-admin/src/main/resources/static/static/image/ruoyicloudplus.png create mode 100644 ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png create mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-pagination.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/emoji.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/prism-typescript.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/search.min.js create mode 100644 ruoyi-admin/src/main/resources/static/static/js/zoom-image.min.js diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml new file mode 100644 index 00000000..a8276a4c --- /dev/null +++ b/ruoyi-admin/pom.xml @@ -0,0 +1,125 @@ + + + + ruoyi-ai + org.ruoyi + ${revision} + ../pom.xml + + 4.0.0 + jar + ruoyi-admin + + + web服务入口 + + + + + + + com.mysql + mysql-connector-j + + + + + com.oracle.database.jdbc + ojdbc8 + + + + + org.postgresql + postgresql + + + + + com.microsoft.sqlserver + mssql-jdbc + + + + org.ruoyi + ruoyi-common-doc + + + + org.ruoyi + ruoyi-system + + + + org.ruoyi + ruoyi-fusion + + + + org.ruoyi + ruoyi-knowledge + + + + + + org.ruoyi + ruoyi-demo + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + net.coobird + thumbnailator + 0.4.11 + + + io.github.ollama4j + ollama4j + 1.0.79 + compile + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + org.apache.maven.plugins + maven-war-plugin + ${maven-war-plugin.version} + + false + ${project.artifactId} + + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java b/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java rename to ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java index 68748bc1..2d0693c3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIApplication.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIApplication.java @@ -1,4 +1,4 @@ -package org.ruoyi.system; +package org.ruoyi; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java b/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java similarity index 94% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java rename to ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java index 16d037c5..626d7a31 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/RuoYiAIServletInitializer.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/RuoYiAIServletInitializer.java @@ -1,4 +1,4 @@ -package org.ruoyi.system; +package org.ruoyi; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java similarity index 89% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java rename to ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java index 360abeb7..e78d09c0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/AuthController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java @@ -1,12 +1,14 @@ -package org.ruoyi.system.controller.system; +package org.ruoyi.controller; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.collection.CollUtil; -import jakarta.servlet.http.HttpServletRequest; -import lombok.RequiredArgsConstructor; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.domain.R; -import org.ruoyi.common.core.domain.model.*; +import org.ruoyi.common.core.domain.model.EmailLoginBody; +import org.ruoyi.common.core.domain.model.LoginBody; +import org.ruoyi.common.core.domain.model.RegisterBody; +import org.ruoyi.common.core.domain.model.SmsLoginBody; +import org.ruoyi.common.core.domain.model.VisitorLoginBody; import org.ruoyi.common.core.utils.MapstructUtils; import org.ruoyi.common.core.utils.StreamUtils; import org.ruoyi.common.core.utils.StringUtils; @@ -14,12 +16,16 @@ import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.tenant.helper.TenantHelper; import org.ruoyi.system.domain.bo.SysTenantBo; import org.ruoyi.system.domain.vo.LoginTenantVo; -import org.ruoyi.system.domain.vo.LoginVo; import org.ruoyi.system.domain.vo.SysTenantVo; import org.ruoyi.system.domain.vo.TenantListVo; import org.ruoyi.system.service.ISysTenantService; + import org.ruoyi.system.service.SysLoginService; import org.ruoyi.system.service.SysRegisterService; +import org.ruoyi.system.domain.vo.LoginVo; + +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -42,15 +48,6 @@ public class AuthController { private final SysRegisterService registerService; private final ISysTenantService tenantService; - -// @PostMapping("/xcxLogin") -// public R login(@Validated @RequestBody String xcxCode) throws WxErrorException { -// -// String openidFromCode = loginService.getOpenidFromCode((String) JSONUtil.parseObj(xcxCode).get("xcxCode")); -// LoginVo loginVo = loginService.mpLogin(openidFromCode); -// return R.ok(loginVo); -// } - /** * 登录方法 * @@ -67,7 +64,6 @@ public class AuthController { body.getUsername(), body.getPassword(), body.getCode(), body.getUuid()); loginVo.setToken(token); - loginVo.setAccess_token(token); loginVo.setUserInfo(LoginHelper.getLoginUser()); return R.ok(loginVo); } @@ -89,7 +85,6 @@ public class AuthController { /** * 访客登录 - * * @param loginBody 登录信息 * @return token信息 */ @@ -128,7 +123,7 @@ public class AuthController { */ @PostMapping("/register") public R register(@Validated @RequestBody RegisterBody user, HttpServletRequest request) { - String domainName = request.getServerName(); + String domainName = request.getServerName(); user.setDomainName(domainName); registerService.register(user); return R.ok(); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java similarity index 97% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java rename to ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java index 8ebe2236..89cf2437 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/CaptchaController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/CaptchaController.java @@ -1,14 +1,10 @@ -package org.ruoyi.system.controller.system; +package org.ruoyi.controller; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.captcha.AbstractCaptcha; import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotBlank; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.ruoyi.common.core.constant.Constants; import org.ruoyi.common.core.constant.GlobalConstants; import org.ruoyi.common.core.domain.R; @@ -26,6 +22,10 @@ import org.ruoyi.common.web.config.properties.CaptchaProperties; import org.ruoyi.common.web.enums.CaptchaType; import org.ruoyi.system.domain.request.EmailRequest; import org.ruoyi.system.domain.vo.CaptchaVo; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; @@ -36,8 +36,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.time.Duration; -import java.util.HashMap; -import java.util.Map; +import java.util.*; /** * 验证码操作处理 @@ -95,6 +94,7 @@ public class CaptchaController { String suffix = configService.getConfigValue("mail", "suffix"); String prompt = configService.getConfigValue("mail", "prompt"); if(StringUtils.isNotEmpty(suffix)){ + // 动态的域名列表 String[] invalidDomains = suffix.split(","); for (String domain : invalidDomains) { if (emailRequest.getUsername().endsWith(domain)) { @@ -107,7 +107,7 @@ public class CaptchaController { String mailTitle = configService.getConfigValue("mail", "mailTitle"); String replacedModel = model.replace("{code}", code); try { - MailUtils.sendHtml(emailRequest.getUsername(), mailTitle, replacedModel); + MailUtils.sendHtml(emailRequest.getUsername(), mailTitle, replacedModel); } catch (Exception e) { log.error("邮箱验证码发送异常 => {}", e.getMessage()); return R.fail(e.getMessage()); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java similarity index 53% rename from ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java rename to ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java index 72b6828d..4da12bc8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/IndexController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java @@ -1,9 +1,9 @@ -package org.ruoyi.system.controller.system; +package org.ruoyi.controller; import cn.dev33.satoken.annotation.SaIgnore; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; /** * 首页 @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController; */ @SaIgnore @RequiredArgsConstructor -@RestController +@Controller public class IndexController { /** @@ -20,7 +20,17 @@ public class IndexController { */ @GetMapping("/") public String index() { - return "RuoYi-AI 启动成功"; + return "index.html"; + } + + @GetMapping("/success") + public String success(){ + return "paySuccess.html"; + } + + @GetMapping("/cancel") + public String cancel(){ + return "cancel"; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml similarity index 79% rename from ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml rename to ruoyi-admin/src/main/resources/application-dev.yml index 44530d49..09c609c3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -25,10 +25,9 @@ spring: master: type: ${spring.datasource.type} driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://43.139.70.230:3306/ruoyi-ai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: ruoyi-ai - password: ruoyi-ai - + url: jdbc:mysql://43.139.70.230:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true + username: ry-vue + password: xx hikari: # 最大连接池数量 @@ -97,3 +96,23 @@ sms: signName: 测试 # 腾讯专用 sdkAppId: + +spring: + ai: + openai: + api-key: sk-xX + base-url: https://api.pandarobot.chat + ollama: + base-url: http://localhost:11434 + init: + pull-model-strategy: always + timeout: 60s + max-retries: 1 + mcp: + client: + enabled: true + name: call-mcp-server + sse: + connections: + server1: + url: http://127.0.0.1:8080 diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/application-prod.yml rename to ruoyi-admin/src/main/resources/application-prod.yml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml similarity index 95% rename from ruoyi-modules/ruoyi-system/src/main/resources/application.yml rename to ruoyi-admin/src/main/resources/application.yml index a414d371..26173564 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -318,22 +318,5 @@ wechat: token: '' aesKey: '' - # spring ai配置 -spring: - ai: - openai: - api-key: sk-xx - base-url: https://api.pandarobot.chat/ - mcp: - client: - enabled: true - name: call-mcp-server - sse: - connections: - server1: - url: http://127.0.0.1:8080 - ollama: - init: - pull-model-strategy: always - timeout: 60s - max-retries: 1 + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/banner.txt b/ruoyi-admin/src/main/resources/banner.txt similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/banner.txt rename to ruoyi-admin/src/main/resources/banner.txt diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages.properties rename to ruoyi-admin/src/main/resources/i18n/messages.properties diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_en_US.properties b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_en_US.properties rename to ruoyi-admin/src/main/resources/i18n/messages_en_US.properties diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/i18n/messages_zh_CN.properties rename to ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/ip2region.xdb b/ruoyi-admin/src/main/resources/ip2region.xdb similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/ip2region.xdb rename to ruoyi-admin/src/main/resources/ip2region.xdb diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/logback-plus.xml b/ruoyi-admin/src/main/resources/logback-plus.xml similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/logback-plus.xml rename to ruoyi-admin/src/main/resources/logback-plus.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/spy.properties b/ruoyi-admin/src/main/resources/spy.properties similarity index 100% rename from ruoyi-modules/ruoyi-system/src/main/resources/spy.properties rename to ruoyi-admin/src/main/resources/spy.properties diff --git a/ruoyi-admin/src/main/resources/static/.gitignore b/ruoyi-admin/src/main/resources/static/.gitignore new file mode 100644 index 00000000..9e339689 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/.gitignore @@ -0,0 +1,46 @@ +###################################################################### +# Build Tools + +.gradle +/build/ +!gradle/wrapper/gradle-wrapper.jar + +target/ +!.mvn/wrapper/maven-wrapper.jar + +###################################################################### +# IDE + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### JRebel ### +rebel.xml + +### NetBeans ### +nbproject/private/ +build/* +nbbuild/ +nbdist/ +.nb-gradle/ + +###################################################################### +# Others +*.log +*.xml.versionsBackup +*.swp + +!*/build/*.java +!*/build/*.html +!*/build/*.xml diff --git a/ruoyi-admin/src/main/resources/static/.nojekyll b/ruoyi-admin/src/main/resources/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/ruoyi-admin/src/main/resources/static/CNAME b/ruoyi-admin/src/main/resources/static/CNAME new file mode 100644 index 00000000..3a194c70 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/CNAME @@ -0,0 +1 @@ +plus-doc.dromara.org \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/README.md b/ruoyi-admin/src/main/resources/static/README.md new file mode 100644 index 00000000..b50e2523 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/README.md @@ -0,0 +1,74 @@ +# 框架介绍 +- - - +- `RuoYi-Vue-Plus` 分布式集群框架 [文档跳转](/ruoyi-vue-plus/home.md) +- `RuoYi-Cloud-Plus` 微服务框架 [文档跳转](/ruoyi-cloud-plus/home.md) +- `plus-ui` 统一 Vue3 前端项目 [文档跳转](/plus-ui/home.md) +- `plus-doc` 统一文档项目 + +## 特别赞助 + + + +
+ + +
+ + +[如何成为赞助商 加群联系作者详谈](/common/add_group.md) + +## 代码地址 + +| 介绍 | 项目名 | 项目地址 | 注意事项 | +|------------|:-----------------|------------------------------------------------------------------------------------------------------------------------|----------------------------| +| 🔥 分布式集群框架 | RuoYi-Vue-Plus | - [Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus)
- [GitHub](https://github.com/dromara/RuoYi-Vue-Plus) | 重写RuoYi-Vue全方位升级(不兼容原框架) | +| 🔥 微服务框架 | RuoYi-Cloud-Plus | - [Gitee](https://gitee.com/dromara/RuoYi-Cloud-Plus)
- [GitHub](https://github.com/dromara/RuoYi-Cloud-Plus) | 重写RuoYi-Cloud全方位升级(不兼容原框架) | +| 🔥 统一前端项目 | plus-ui | - [Gitee](https://gitee.com/JavaLionLi/plus-ui)
- [GitHub](https://github.com/JavaLionLi/plus-ui) | Vue与Cloud项目通用前端 | +| 🔥 统一文档项目 | plus-doc | - [Gitee](https://gitee.com/dromara/plus-doc)
- [GitHub](https://github.com/dromara/plus-doc) | 通用文档 | + + +## 业务功能 + +| 功能 | 介绍 | +|-------|---------------------------------------| +| 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能。 | +| 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置。 | +| 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 | +| 岗位管理 | 配置系统用户所属担任职务。 | +| 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等。 | +| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分。 | +| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护。 | +| 参数管理 | 对系统动态配置常用参数。 | +| 通知公告 | 系统通知公告信息发布维护。 | +| 操作日志 | 系统正常操作日志记录和查询;系统异常信息日志记录和查询。 | +| 登录日志 | 系统登录日志记录查询包含登录异常。 | +| 文件管理 | 系统文件上传、下载等管理。 | +| 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志。 | +| 代码生成 | 前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 | +| 系统接口 | 根据业务代码自动生成相关的api接口文档。 | +| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。 | +| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | +| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | +| 使用案例 | 系统的一些功能案例 | + +## 关注作者 + +作者博客: [https://lionli.blog.csdn.net/?type=blog](https://lionli.blog.csdn.net/?type=blog) + +公众号: **<狮子领域 程序圈>** +
+![输入图片说明](https://foruda.gitee.com/images/1678975769377570440/507062df_1766278.png "屏幕截图") + +## 捐献作者 + +**作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭** +
+ + +## Dromara 全家福 + +社区仓库地址: [dromara开源社区](https://gitee.com/organizations/dromara/projects) + +![输入图片说明](https://foruda.gitee.com/images/1706071866226295002/68cffcf6_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/_coverpage.md b/ruoyi-admin/src/main/resources/static/_coverpage.md new file mode 100644 index 00000000..d84bf0dc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/_coverpage.md @@ -0,0 +1,32 @@ + + + +
+
+
百搭AI
+ + +[![码云Gitee](https://gitee.com/ageerle/ruoyi-ai/badge/star.svg?theme=blue)](https://gitee.com/ageerle/ruoyi-ai) +[![GitHub](https://img.shields.io/github/stars/ageerle/ruoyi-ai.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) +[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/ageerle/ruoyi-ai/blob/master/LICENSE) +
+[![ruoyi-ai](https://img.shields.io/badge/ruoyi-ai-5.2.2-success.svg)](https://gitee.com/ageerle/ruoyi-ai) +[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() + +
+
+ +
+ +
+ + +> 百搭AI是一个整合了多种大语言模型API的开源平台,实现了AI对话、绘图、声音克隆和私有知识库等功能。 +> +> 平台配备管理后台,支持微信支付、微信公众号、微信多开、Stripe国际支付和百度文本审核等运营功能。 +> +> 项目采用Java+Vue+Vben5技术栈构建,遵循MIT License,允许二次开发并用于商业销售。 + +Copyright © 2023-2024 版权所有:ageerle@163.com 备案号:鄂ICP备2023007672号 + +[开始使用 Let's Go](/README.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/_footer.md b/ruoyi-admin/src/main/resources/static/_footer.md new file mode 100644 index 00000000..7f5f9a3f --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/_footer.md @@ -0,0 +1,2 @@ + +对文档有疑问?欢迎您帮助我们 [完善此文档](https://gitee.com/JavaLionLi/plus-doc) ! \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/_navbar.md b/ruoyi-admin/src/main/resources/static/_navbar.md new file mode 100644 index 00000000..e893825f --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/_navbar.md @@ -0,0 +1,9 @@ + + +* [文档导航](/README.md) +* [Vue版本](/ruoyi-vue-plus/home.md) +* [Cloud版本](/ruoyi-cloud-plus/home.md) +* [前端文档](/plus-ui/home.md) +* [常见问题](/questions/lombok.md) +* [视频教程](/common/video.md) +* [演示系统](/common/demo_system.md) diff --git a/ruoyi-admin/src/main/resources/static/_sidebar.md b/ruoyi-admin/src/main/resources/static/_sidebar.md new file mode 100644 index 00000000..0446edc6 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/_sidebar.md @@ -0,0 +1,16 @@ + +- **特别赞助** +- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) +- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) +- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) + +- **开始** + - [框架介绍](/README.md) + - [演示系统](/common/demo_system.md) + - [官方视频教程](/common/video.md) + - [粉丝专栏](/common/column.md) + - [参与贡献项目](/common/contribution.md) + - [如何提交PR](/common/pr.md) + - [如何加群](/common/add_group.md) + - [使用者登记](/common/user_register.md) + - [黑名单](/common/blacklist.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/common/add_group.md b/ruoyi-admin/src/main/resources/static/common/add_group.md new file mode 100644 index 00000000..f6957bc4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/add_group.md @@ -0,0 +1,27 @@ +# 加群方式 +- - - +### 交流群(不提供任何问题解答 纯交流) + +**加 <小助手> 微信备注 <加群>**
+**视频课程咨询或其他问题咨询请查看下方信息(小助手是机器人)** + + + +### VIP群(付费加群 提供问题解答、技术支持、技术分享) + +首先感谢 `RuoYi` 提供分享开源 框架基于 `RuoYi` 重写大部分功能实现
+项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
+VIP群是作者提供的私人服务 不代表着项目收费 + +> 问问题等于做习题 听作者解答问题等于习题讲解
+> 一个人接触的问题有限 一群人接触的问题无限 早进群早接触更多的问题(每天99+)
+> 承诺: 看见必回复 让你感受作者有多话痨
+ +两种途径: +1. 购买官方视频进群 [官方视频](/common/video.md) +2. 扫描下方二维码付款进群(无视频) + +支付后申请加群即可 QQ群号 : **<637757165>**
+ +**加群扫码**
+ diff --git a/ruoyi-admin/src/main/resources/static/common/blacklist.md b/ruoyi-admin/src/main/resources/static/common/blacklist.md new file mode 100644 index 00000000..67594bd3 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/blacklist.md @@ -0,0 +1,7 @@ +# 黑名单 +- - - + +地址: https://github.com/QNAV/RuoYi-X-Plus +
+上榜缘由 使用本框架二次开源并未有任何声明与标注 将所有代码的作者名全都改成了自己 剽窃本框架代码 + diff --git a/ruoyi-admin/src/main/resources/static/common/column.md b/ruoyi-admin/src/main/resources/static/common/column.md new file mode 100644 index 00000000..b2155a3c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/column.md @@ -0,0 +1,18 @@ +# 粉丝专栏 +- - - +**由上到下 从易到难** + +> 粉丝整理 欢迎投稿 + +| 作者 | 文档地址 | 说明 | +|---------------|---------------------------------------------------------------|--------------------| +| 抓蛙师 | https://www.bilibili.com/video/BV1TG41157Ef/ | 学会问问题(小白必看) | +| 抓蛙师 | https://www.bilibili.com/video/BV1mr4y1j75M | Vue框架基础视频专栏(新人必看) | +| 抓蛙师 | https://www.bilibili.com/video/BV1Na411u7eC | Vue框架改造视频专栏(新人必看) | +| 抓蛙师 | https://www.bilibili.com/video/BV1te4y1D7hi | 小程序鉴权与uniapp联动 | +| 抓蛙师 | https://www.bilibili.com/video/BV1zt4y137UP | 公众号集成 | +| mayuanfei | https://note.youdao.com/s/XpvKnxAb | 入门专栏(新人必看) | +| 程序猿一枚_ | https://blog.csdn.net/zhaozhiqiang1981/category_12221291.html | 玩转RuoYi-Cloud-Plus | +| 程序猿一枚_ | https://www.bilibili.com/video/BV1yA411r7ji/ | Cloud环境搭建以及进阶开发 | +| MichelleChung | https://blog.csdn.net/michelle_zhong/category_11109741.html | 源码解析专栏(进阶必看) | +| MichelleChung | https://blog.csdn.net/michelle_zhong/category_12058476.html | Cloud源码解析专栏 | diff --git a/ruoyi-admin/src/main/resources/static/common/contribution.md b/ruoyi-admin/src/main/resources/static/common/contribution.md new file mode 100644 index 00000000..6b5909e6 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/contribution.md @@ -0,0 +1,69 @@ +# 参与贡献的方式 +- - - +参与贡献开源的方式有很多种 听作者来介绍 + +## 为开源项目点一个Star + +> Star的多少关系到项目能否被更多人看到 +
+同时Star也是作者前进的动力(作者每天都在盯着Star 涨了会开心 跌了会失落) +
+
+> 大家在寻找开源项目的时候, 大多数情况也是会先看Star比较多的项目 +
+所以请给您觉得好的开源项目点一个小小的Star, 让好的项目能够被更多人看到 +
+ +![输入图片说明](https://foruda.gitee.com/images/1678934493115487351/0c45121e_1766278.png "屏幕截图") +
+Vue版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Vue-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Vue-Plus) +
+Cloud版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Cloud-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Cloud-Plus) + +## 为社区处理问题 + +> Issue是社区的交流地 大家会在这里提出自己的问题 或者是项目的功能异常 + +> 提问的规范在Issue的模板里已经写好了 按照模板填写有助于作者或者其他社区人员快速有效的回答问题 +![输入图片说明](https://foruda.gitee.com/images/1678935068341532603/4b9d7af9_1766278.png "屏幕截图") + +> 为提出问题的小伙伴答疑 可以有效降的帮助别人
+> 而且可以降低社区人员的精力分散 使精力全部投入到项目设计研发中 +![输入图片说明](https://foruda.gitee.com/images/1678935380481365514/dddc9ce9_1766278.png "屏幕截图") + +## 改进社区文档 + +> 大家都知道 我们程序员都不擅长写作
+> 有时候作者把文档写完了也不知道用户是什么感觉 是否能看懂
+ +> 所以参与社区文档建设绝对是一件意义重大的事情
+> 大家可以在Issue提出观后感 觉得哪看不懂 觉得哪应该详细说明
+> 当然了 大家也可以对文档进行改进后提交PR修改申请 + +文档仓库: [plus-doc](https://gitee.com/JavaLionLi/plus-doc) 👈点他点他 +![输入图片说明](https://foruda.gitee.com/images/1678935992827063291/d7c4dc5b_1766278.png "屏幕截图") + +## 贡献代码 + +> 想参与贡献代码的小伙伴 重点来了: 作者会经常在Issue里发布需求认领
+> 觉得自己能做的可以在Issue里跟作者讨论 如需求还不够清晰 或者做的过程中遇到了什么问题 + + + +> 需求确定了以后就可以开始专注的写代码了
+> 但在开始写代码之前 一定要先看一下如何正确的提交PR + +一点要仔细看: [如何提交PR](/common/pr.md) 👈点他点他 + +## 如何成为项目成员 + +> 1.对框架有重大贡献者(由作者与团队成员判定)
+> 2.完成社区发布的两项复杂任务
+> 3.持续完成社区发布的简单任务若干(作者会关注到)
+> 4.持续为社区优化文档或处理issue若干(作者会关注到)
+ +## 项目成员待遇 + +> 1.可免费进入vip收费群
+> 2.每年还会发放IDEA正版授权
+ diff --git a/ruoyi-admin/src/main/resources/static/common/demo_system.md b/ruoyi-admin/src/main/resources/static/common/demo_system.md new file mode 100644 index 00000000..18424e90 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/demo_system.md @@ -0,0 +1,13 @@ +# 系统演示(请大家不要乱改数据 影响他人体验 谢谢配合) +- - - +**感谢 `孤舟烟雨` 贡献的演示服务器** + +**1核2G 小服务器 经不起压测 请理性操作 违者直接封IP** + +> 访问地址: [http://43.138.9.96/](http://43.138.9.96/) + +> 登录账户 admin/admin123 + +> Admin监控中心 ruoyi/123456 + +> 任务调度中心 admin/123456 diff --git a/ruoyi-admin/src/main/resources/static/common/pr.md b/ruoyi-admin/src/main/resources/static/common/pr.md new file mode 100644 index 00000000..e9684dd4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/pr.md @@ -0,0 +1,37 @@ +# 如何提交PR贡献代码 +- - - +### 步骤一 Fork项目到自己仓库 + +![输入图片说明](https://foruda.gitee.com/images/1673427084798343408/142a55d0_1766278.png "屏幕截图") + +### 步骤二 基于dev分支 新建一个此PR功能点的专属分支 + +![输入图片说明](https://foruda.gitee.com/images/1673427220695789412/14c4f4ff_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1673427193964585607/16ea99d9_1766278.png "屏幕截图") + +### 步骤三 使用Git工具 将自己仓库的项目拉去到本地做代码编写 + +![输入图片说明](https://foruda.gitee.com/images/1673427313201488937/f2df59bf_1766278.png "屏幕截图") + +### 步骤四 使用Idea打开项目 切换到新建的功能分支 + +![输入图片说明](https://foruda.gitee.com/images/1673427394686229310/c479a5a5_1766278.png "屏幕截图") + +### 步骤五 将编写好的代码 提交到自己的远程仓库 + +![输入图片说明](https://foruda.gitee.com/images/1673427519150795591/d88c2bc9_1766278.png "屏幕截图") + +### 步骤六 创建PR申请(此操作在自己仓库或者要PR的仓库都可以) + +![输入图片说明](https://foruda.gitee.com/images/1673427616155043776/fe2ce097_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1673427865031025513/0f58a137_1766278.png "屏幕截图") + +### 步骤七 等待作者评审 按要求更改 直到没有问题后被作者合并 + +![输入图片说明](https://foruda.gitee.com/images/1673428029932524584/93234628_1766278.png "屏幕截图") + +### 评审期间 如需对PR内容做更改 直接在新功能分支提交代码即可 +### 无需重复提交PR申请 这边会自动比对两个分支的差异 + +![输入图片说明](https://foruda.gitee.com/images/1673428054139366497/4ecb6e98_1766278.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/common/user_register.md b/ruoyi-admin/src/main/resources/static/common/user_register.md new file mode 100644 index 00000000..9c221cd1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/user_register.md @@ -0,0 +1,80 @@ +# 使用者登记 +- - - +**使用此开源项目的公司或者组织** +> Vue版本登记地址: https://gitee.com/dromara/RuoYi-Vue-Plus/issues/I4QP39 + +> Cloud版本登记地址: https://gitee.com/dromara/RuoYi-Cloud-Plus/issues/I4VJ7G + +| 公司名 | 官网 | LOGO | +|-------------------|:-------------------------------|----------------------------------------------------------------------------------------------------------------| +| 中国联通(长春分公司) | http://www.10010.com | | +| 中国电信(湖南分公司) | http://www.189.cn/hn/ | | +| 南京感知信息技术有限公司 | https://njgzxx.cn/ | | +| 陕西骏景索道运营管理有限公司 | https://www.junjingsuodao.com/ | | +| 悠码科技有限公司 | https://orise.trytowish.cn/ | | +| 苏州龙的信息系统股份有限公司 | http://www.longdayinfo.com/ | | +| 北京数通智达科技有限公司 | http://www.bzdtech.com/ | | +| 广州六六七七科技有限公司 | https://artiversehub.ai/ | | +| 宁波三品软件科技有限公司 | http://nbsanpin.com/ | | +| 北京御一科技信息技术有限公司 | https://www.yudoctor.com | | +| 成都卡恩特医疗科技有限公司 | http://www.scknot.com | | +| 无锡科艾思科技有限公司 | https://www.kyoeis.com | | +| 深圳市海联天下科技有限公司 | www.sealinkin.com | | +| 上海非定义旅游服务有限公司 | http://www.anonymity.love/ | | +| 重庆威爱云科技有限公司 | https://www.51vive.com | | +| 中城智联(成都)创新科技有限公司 | http://www.zc-zl.com/ | | +| 浙江海亮股份有限公司 | https://www.hailiangstock.com | | +| 河北雄安山禾咨询工程有限公司 | https://shanheqei.club/ | | +| 数舵(河北雄安)信息科技有限公司 | http://www.shuduokeji.com | | +| 南昌鼎欣科技股份有限公司 | https://www.openzt.com | | +| 东莞市码载网络科技有限公司 | https://www.codeload.top | | +| 北京农信通科技有限责任公司 | http://www.nxt.com.cn | | +| 中康腾华网络科技(重庆)有限公司 | https://www.zkthwlkj.com/ | | +| 杭州码恒信息科技有限公司 | http://www.mh-barcode.com/ | | +| 南京晶益科技有限公司 | https://www.nanjingjingyi.com/ | | +| 合肥智享亿云科技有限公司 | http://www.izxyy.com | | +| 锡简科技 | https://www.xj-fast.com | | +| 福建亘前科技有限公司 | https://genqian.top | | +| 北京联宇信通科技有限公司 | http://www.lyxtkj.com/ | | +| 厦门市熵时光科技有限公司 | https://www.xetsoft.com | | +| 广州润沁教育科技有限公司 | https://www.ca163.net | | +| 广东乐善智能装备股份有限公司 | https://www.china-leshan.com/ | | +| 数字江西科技有限公司 | https://www.digitaljx.com/ | | +| 上海极锐星瀚传感技术有限公司 | http://www.jrsensing.com/ | | +| 北京数影互联科技有限公司 | http://www.dataflying.top/ | | +| 广州创服信息科技有限公司 | https://www.cfkjcloud.com | | +| 茂名云智科技有限公司 | http://www.winzkj.com | | +| 成都时光旅迹科技有限公司 | https://www.ttmup.com/ | | +| 成都炫影全息科技有限公司 | http://xyqxgs.com | | +| 中山厚德快速模具有限公司 | http://hordrt.com | | +| 深圳市深南夙星科技有限公司 | http://www.szsnsx.com/ | | +| 陕西华恒军创信息科技有限公司 | http://hhjc.cc | | +| 河南小牛信息科技有限公司 | http://www.hnxn888.com/ | | +| 武汉华智讯网络信息技术有限公司 | http://www.xun188.com | | +| 易税信息技术有限公司 | https://www.etax.top | | +| 广西华景城建筑设计有限公司 | http://www.hjcadc.com | | +| 铭创科技有限公司 | https://www.mcck.cn/ | | +| 西安鼎慧网络科技有限公司 | | | +| 营口鼎瑞网络科技有限公司 | | | +| 南昌漫库书店有限公司 | | | +| 广西文韬智能科技有限公司 | | | +| 贵州亿瑞祺科技有限公司 | | +| 贵州新绿视界环保科技有限公司 | | +| 湖南智才伯乐数据科技有限公司 | | +| 德州商储超市有限公司 | | +| 曲沃亿分科技中心 | | +| 南京杰度信息技术有限公司 | | +| 武汉忆秋科技有限公司 | | +| 济南千惠网络科技有限公司 | | +| 江苏泛联科技有限公司 | | +| 沈阳市果冻网络信息科技有限责任公司 | | +| 灵劲科技有限公司 | | +| 亿世达餐饮管理(北京)有限公司 | | +| 深圳市凯帝电子商务有限公司 | | +| 成都数智源蓉卡科技有限公司 | | +| 上海振福信息科技有限公司 | | +| 重庆六客会科技有限公司 | | +| 无限创优(西安)科技有限公司 | | +| 惠族网络科技发展有限公司 | | +| 纳森科技有限公司 | | + diff --git a/ruoyi-admin/src/main/resources/static/common/video.md b/ruoyi-admin/src/main/resources/static/common/video.md new file mode 100644 index 00000000..14fc2752 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/common/video.md @@ -0,0 +1,85 @@ +# 视频教程(联合出品) + +### 主讲与后期剪辑: `抓蛙师` + +抓蛙师简介: B站知名UP主 B站首页: https://space.bilibili.com/520725002 + +### 知识点统筹与内容审核: `疯狂的狮子Li` + +疯狂的狮子Li简介: RuoYi-Vue-Plus 与 RuoYi-Cloud-Plus 作者 + +## 已完结🎉🎉🎉 优惠价: 598(仅限前500名) ~~原价: 698~~ + +**注意: 视频采用 RuoYi-Vue-Plus 版本 4.X 分支讲解!!! (内容为通用技术与版本关联性不大)**
+**内容为框架内所用到的技术与设计原理(打破不知道、不会用、不知应用场景等问题)** + +课程简介: https://www.bilibili.com/video/BV16j411D7BX/ +
+试看课程: https://www.bilibili.com/video/BV1uS411P7JD/ +
+试看课程: https://www.bilibili.com/video/BV1vLbNeuESn/ +
+试看课程: https://www.bilibili.com/video/BV1xV4y127KM/ +
+试看课程: https://www.bilibili.com/video/BV1W5v8eBEgs/ +
+课程总结: https://www.bilibili.com/video/BV1734y1g7fk/ +
+ +## 购买方式 + +**小本生意 用心录制 拒绝砍价 已更新到 236 集 课程完结**
+> 课程咨询或购买请联系 价格598
+> QQ: 906670865 (疯狂的狮子Li)
+> QQ: 770492966 (抓蛙师) + +## 购买前常见问题答疑 +> 问题1: 购买后是否有群可以解答问题
+> 答: 购买后有专属课程付费群(千人大群)讲师在线答疑 +> +> 问题2: 是否持续更新 如新版本功能
+> 答: 课程目录即为全部课程内容 以课程目录为准 明年大概会出二期来讲新版本内容
+> 因为持续更新会导致前面的技术老旧 新购买的人无法及时学习新技术
+> 故而采用分期出课程制度 已经购买过的老客户 再次购买下一次会给力度非常大的折扣 +> +> 问题3: 目前视频未全部录制完成 后续更新是否二次收费
+> 答: 视频目录即为全部视频内容 一次收费后续更新仍然可看直到视频全部更新完成(明年出二期课程不算在内) +> +> 问题4: 视频如何下载如何观看
+> 答: 视频文件已加密 采用专门的播放器(播放器只限制截图录屏等不限制其他软件使用) 由管理员发放授权码观看
+> 支持通过 百度云 或者 阿里云 网盘下载视频资源 +> +> 问题5: 视频平均时长和总时长大概多久
+> 答: 视频每集短的大概10分钟以上 长的大概40个分钟左右 平均时长20多分钟每集
+> 目前已经录制了236集总时长为80多个小时 +> +> 问题6: 是否有讲解 Cloud 版本相关内容
+> 答: 视频主要讲解内容为框架内所用到的技术与设计原理 无论什么版本 功能和设计都是一样的
+> Cloud 版本只是多了 alibaba 的几个组件完全可以B站自学 + +## 课程目录 + +![输入图片说明](https://foruda.gitee.com/images/1695105467795304336/58fcd6db_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105494170842444/10f98fed_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105523526589287/f131c614_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105547992880680/9f4137f3_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105560849590514/d19fad6a_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105586641712428/349a971b_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105595501187093/fb819d35_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105609163585390/833dd89c_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105630469565265/8dbba1d2_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695105659037093525/09a4f6e1_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1695714493079698007/311980ee_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1697446957351573520/cab3617d_1766278.png "屏幕截图") + +## 学员观后感 + +| | | +|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| +| ![输入图片说明](https://foruda.gitee.com/images/1691386100129796781/44b69dae_1766278.jpeg "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1691386076834242484/a6073f7d_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1691386089186649583/98ac8b7c_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1691386108722171132/b937b23a_1766278.jpeg "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1695714607596127461/513b6893_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1692804549604261480/09ef12f6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1692804541482477905/578e5448_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1695714614517941469/cac681fb_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1698225407961714462/4d271901_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698225416488201339/30572e7f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1698807198508085566/16c37a1b_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698807208125772586/ceed632e_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1698807214013013096/ad3bc016_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698807221010472627/72b10901_1766278.png "屏幕截图") | diff --git a/ruoyi-admin/src/main/resources/static/index.html b/ruoyi-admin/src/main/resources/static/index.html new file mode 100644 index 00000000..76e44328 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/index.html @@ -0,0 +1,74 @@ + + + + + plus-doc + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md b/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md new file mode 100644 index 00000000..00197250 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md @@ -0,0 +1,22 @@ + +- **特别赞助** +- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) +- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) +- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) + + +* **简介** + * [项目简介](/plus-ui/home.md) +* **开发文档** + * [通用方法](/plus-ui/devdoc/common_func.md) + * [开发规范](/plus-ui/devdoc/dev_norm.md) + * [请求流程](/plus-ui/devdoc/request_process.md) + * [路由使用](/plus-ui/devdoc/router_use.md) + * [组件使用](/plus-ui/devdoc/component_use.md) + * [权限使用](/plus-ui/devdoc/permissions_use.md) + * [页签缓存](/plus-ui/devdoc/page_cache.md) + * [使用图标](/plus-ui/devdoc/icon_use.md) + * [使用字典](/plus-ui/devdoc/dict_use.md) + * [使用参数](/plus-ui/devdoc/param_use.md) + * [异常处理](/plus-ui/devdoc/exception_handling.md) + * [内容复制](/plus-ui/devdoc/content_copy.md) diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md new file mode 100644 index 00000000..e359c03c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md @@ -0,0 +1,234 @@ +# 通用方法 +- - - + +### $tab对象 +> `$tab`对象用于做页签操作、刷新页签、关闭页签、打开页签、修改页签等,它定义在`plugins/tab.ts`文件中,它有如下方法 +* 打开页签 + +```typescript +// 打开页签 +proxy?.$tab.openPage('/system/user'); +// 打开页签并指定页签标题 +proxy?.$tab.openPage('/system/user', '用户管理'); +proxy?.$tab.openPage('/system/user', '用户管理').then(() => { + // 执行结束的逻辑 +}) +``` + +* 修改页签 + +```typescript +// 修改当前页签 +const obj = Object.assign({}, route, { title: '自定义标题' }); +proxy?.$tab.updatePage(obj); +``` +* 关闭页签 + +```typescript +// 关闭当前 +proxy?.$tab.closePage(); +// 关闭指定页签 +const obj = { path: "/system/user", name: "User" }; +proxy?.$tab.closePage(obj); + +proxy?.$tab.closePage(obj).then(() => { + // 执行结束的逻辑 +}) +``` + +* 刷新页签 + +```typescript +// 刷新当前页签 +proxy?.$tab.refreshPage(); + +// 刷新指定页签 +const obj = { path: "/system/user", name: "User" }; +proxy?.$tab.refreshPage(obj); + +proxy?.$tab.refreshPage(obj).then(() => { + // 执行结束的逻辑 +}) +``` + +* 关闭所有页签 + +```typescript +proxy?.$tab.closeAllPage(); + +proxy?.$tab.closeAllPage().then(() => { + // 执行结束的逻辑 +}) +``` + +* 关闭左侧页签 + +```typescript +// 关闭当前页签的左侧页签 +proxy?.$tab.closeLeftPage(); + +// 关闭指定页签的左侧页签 +const obj = { path: "/system/user", name: "User" }; +proxy?.$tab.closeLeftPage(obj); + +proxy?.$tab.closeLeftPage(obj).then(() => { + // 执行结束的逻辑 +}) +``` + +* 关闭右侧页签 + +```typescript +// 关闭当前页签的右侧页签 +proxy?.$tab.closeRightPage(); + +// 关闭指定页签的右侧页签 +const obj = { path: "/system/user", name: "User" }; +proxy?.$tab.closeRightPage(obj); + +proxy?.$tab.closeRightPage(obj).then(() => { + // 执行结束的逻辑 +}) +``` + +* 关闭其他页签 + +```typescript +proxy?.$tab.closeOtherPage(); + +const obj = { path: "/system/user", name: "User" }; +proxy?.$tab.closeOtherPage(obj); + +proxy?.$tab.closeOtherPage(obj).then(() => { + // 执行结束的逻辑 +}) +``` + +### $modal对象 +> `$modal`对象用于做消息提示、通知提示、对话框提醒、二次确认、遮罩等,它定义在`plugins/modal.ts`文件中,它有如下方法 + +* 提供成功、警告和错误等反馈信息 + +```typescript +proxy?.$modal.msg("默认反馈"); +proxy?.$modal.msgError("错误反馈"); +proxy?.$modal.msgSuccess("成功反馈"); +proxy?.$modal.msgWarning("警告反馈"); +``` + +* 提供成功、警告和错误等提示信息 + +```typescript +proxy?.$modal.alert("默认提示"); +proxy?.$modal.alertError("错误提示"); +proxy?.$modal.alertSuccess("成功提示"); +proxy?.$modal.alertWarning("警告提示"); +``` + +* 提供成功、警告和错误等通知信息 + +```typescript +proxy?.$modal.notify("默认通知"); +proxy?.$modal.notifyError("错误通知"); +proxy?.$modal.notifySuccess("成功通知"); +proxy?.$modal.notifyWarning("警告通知"); +``` + +* 提供确认窗体信息 + +```typescript +proxy?.$modal.confirm('确认信息').then(function() { + ... +}).then(() => { + ... +}).catch(() => {}); +``` + +* 提供遮罩层信息 + +```typescript +// 打开遮罩层 +proxy?.$modal.loading("正在导出数据,请稍后..."); + +// 关闭遮罩层 +proxy?.$modal.closeLoading(); +``` + +### $auth对象 +> `$auth`对象用于验证用户是否拥有某(些)权限或角色,它定义在`plugins/auth.ts`文件中,它有如下方法 + +* 验证用户权限 + +```typescript +// 验证用户是否具备某权限 +proxy?.$auth.hasPermi("system:user:add"); +// 验证用户是否含有指定权限,只需包含其中一个 +proxy?.$auth.hasPermiOr(["system:user:add", "system:user:update"]); +// 验证用户是否含有指定权限,必须全部拥有 +proxy?.$auth.hasPermiAnd(["system:user:add", "system:user:update"]); +``` + +* 验证用户角色 + +```typescript +// 验证用户是否具备某角色 +proxy?.$auth.hasRole("admin"); +// 验证用户是否含有指定角色,只需包含其中一个 +proxy?.$auth.hasRoleOr(["admin", "common"]); +// 验证用户是否含有指定角色,必须全部拥有 +proxy?.$auth.hasRoleAnd(["admin", "common"]); +``` + +### $cache对象 +> `$cache`对象用于处理缓存。我们并不建议您直接使用`sessionStorage`或`localStorage`(vue3版本推荐使用useStorage),因为项目的缓存策略可能发生变化,通过`$cache`对象做一层调用代理则是一个不错的选择。`$cache`提供`session`和`local`两种级别的缓存,如下: + +| 对象名称 | 缓存类型 | +| -------- | ---------------------------------- | +| session | 会话级缓存,通过sessionStorage实现 | +| local | 本地级缓存,通过localStorage实现 | + + +**示例** + +```typescript +// local 普通值 +proxy?.$cache.local.set('key', 'local value') +console.log(proxy?.$cache.local.get('key')) // 输出'local value' + +// session 普通值 +proxy?.$cache.session.set('key', 'session value') +console.log(proxy?.$cache.session.get('key')) // 输出'session value' + +// local JSON值 +proxy?.$cache.local.setJSON('jsonKey', { localProp: 1 }) +console.log(proxy?.$cache.local.getJSON('jsonKey')) // 输出'{localProp: 1}' + +// session JSON值 +proxy?.$cache.session.setJSON('jsonKey', { sessionProp: 1 }) +console.log(proxy?.$cache.session.getJSON('jsonKey')) // 输出'{sessionProp: 1}' + +// 删除值 +proxy?.$cache.local.remove('key') +proxy?.$cache.session.remove('key') +``` + +### $download对象 + +> `$download`对象用于文件下载,它定义在`plugins/download.ts`文件中,它有如下方法 + +* 通过ossId从存储中下载文件 + +``` typescript +// 默认下载方法 +proxy?.$download.oss(ossId); +``` + +* 根据请求地址下载zip包 + +```typescript +const url = '/tool/gen/batchGenCode?tables=' + tableNames; +const name = 'ruoyi'; + +// 默认方法 +proxy?.$download.zip(url, name); +``` diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md new file mode 100644 index 00000000..18886db5 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md @@ -0,0 +1,55 @@ +# 组件使用 +- - - + +vue 注册组件的两种方式 +在 `@/components` 下创建的.vue文件自动为全局组件,可直接在任意位置使用。 + +### 局部注册 +在对应页使用`components`注册组件。 +```typescript + + + +``` + +### 全局注册 +我们可以使用[ Vue 应用实例](https://cn.vuejs.org/guide/essentials/application.html)的 `.component()` 方法,让组件在当前 Vue 应用中全局可用。 +```typescript +import { createApp } from 'vue' + +const app = createApp({}) + +app.component( + // 注册的名字 + 'MyComponent', + // 组件的实现 + { + /* ... */ + } +) +``` +如果使用单文件组件,你可以注册被导入的 `.vue` 文件: +```typescript +import MyComponent from './App.vue' + +app.component('MyComponent', MyComponent) +``` +`.component()` 方法可以被链式调用: +```typescript +app + .component('ComponentA', ComponentA) + .component('ComponentB', ComponentB) + .component('ComponentC', ComponentC) +``` +全局注册的组件可以在此应用的任意组件的模板中使用: +```Typescript +// 这在当前应用的任意组件中都可用 + + + +``` +所有的子组件也可以使用全局注册的组件,这意味着这三个组件也都可以在彼此内部使用。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md new file mode 100644 index 00000000..a4150d72 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md @@ -0,0 +1,4 @@ +# 内容复制 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md new file mode 100644 index 00000000..de714a13 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md @@ -0,0 +1,16 @@ +# 开发规范 +- - - + +### 新增view +> 在`@/views`文件下创建对应的文件夹,一般性一个路由对应一个文件, 该模块下的功能就建议在本文件夹下创建一个新文件夹,各个功能模块维护自己的`utils`或`components`组件。 + +### 新增api +> 在`@/api`文件夹下创建本模块对应的api服务。 +> 在api服务同级创建`types.ts`类型声明文件。 + +### 新增组件 +> 在全局的`@/components`写一些全局的组件,如富文本,各种搜索组件,封装的分页组件等等能被公用的组件。 每个页面或者模块特定的业务组件则会写在当前`@/views`下面。 +如:`@/views/system/user/components/xxx.vue`。这样拆分大大减轻了维护成本。 + +### 新增样式 +> 页面的样式和组件是一个道理,全局的`@/style`放置一下全局公用的样式,每一个页面的样式就写在当前 views下面,请记住加上scoped 就只会作用在当前组件内了,避免造成全局的样式污染。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md new file mode 100644 index 00000000..7c6f9ba5 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md @@ -0,0 +1,4 @@ +# 使用字典 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md new file mode 100644 index 00000000..8de87fa2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md @@ -0,0 +1,4 @@ +# 异常处理 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md new file mode 100644 index 00000000..923e66ae --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md @@ -0,0 +1,4 @@ +# 使用图标 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md new file mode 100644 index 00000000..0531b465 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md @@ -0,0 +1,4 @@ +# 页签缓存 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md new file mode 100644 index 00000000..0cd93759 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md @@ -0,0 +1,4 @@ +# 使用参数 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md new file mode 100644 index 00000000..e18642f4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md @@ -0,0 +1,4 @@ +# 权限使用 +- - - + +文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md new file mode 100644 index 00000000..146f7a8c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md @@ -0,0 +1,65 @@ +# 请求流程 +- - - + +### 交互流程 +一个完整的前端UI交互到服务器端处理流程是这样的: + +1. UI 组件交互操作; +2. 调用统一管理的 api service 请求函数; +3. 使用封装的 request.js 发送请求; +4. 获取服务端返回; +5. 更新 data; + +为了方便管理维护,统一的请求处理都放在`@/src/api`文件夹中,并且一般按照`model`维度进行拆分文件,如: +``` +api/ + system/ + user/ + index.ts + types.ts + role/ + index.ts + types.ts + monitor/ + operlog/ + index.ts + types.ts + logininfor/ + index.ts + types.ts + ... +``` +> **提示** +> 其中`@/src/utils/request.ts`是基于 axios 的封装,便于统一处理 POST,GET 等请求参数,请求头,以及错误提示信息等。 它封装了全局request拦截器、response拦截器、统一的错误处理、统一做了超时处理、baseURL设置等。 + +### 请求示例 +```typescript +// @/api/system/user/index.ts +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { UserQuery, UserVO } from './types'; + +export const listUser = (query: UserQuery): AxiosPromise => { + return request({ + url: '/system/user/list', + method: 'get', + params: query + }); +}; + +// @/views/system/user/index.vue +import api from '@/api/system/user'; +const res = await api.listUser(proxy?.addDateRange(queryParams.value, dateRange.value)); +``` +> **提示** +> 如果有不同的`baseURL`,直接通过覆盖的方式,让它具有不同的`baseURL`。 +> ```typescript +> export const listUser = (query: UserQuery): AxiosPromise => { +> return request({ +> url: '/system/user/list', +> method: 'get', +> params: query, +> baseURL: process.env.BASE_API +> }); +> }; +> ``` diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md new file mode 100644 index 00000000..b13812bc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md @@ -0,0 +1,82 @@ +# 路由使用 +- - - + +框架的核心是通过路由自动生成对应导航,所以除了路由的基本配置,还需要了解框架提供了哪些配置项。 +### 路由配置 +```typescript +// 当设置 true 的时候该路由不会在侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 +hidden: true // (默认 false) + +//当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 +redirect: 'noRedirect' + +// 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 +// 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 +// 若你想不管路由下面的 children 声明的个数都显示你的根路由 +// 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 +alwaysShow: true + +name: 'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 +query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 +roles: ['admin', 'common'] // 访问路由的角色权限 +permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 + +meta: { + title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 + icon: 'svg-name' // 设置该路由的图标,支持 svg-class,也支持 el-icon-x element-ui 的 icon + noCache: true // 如果设置为true,则不会被 缓存(默认 false) + breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true) + affix: true // 如果设置为true,它则会固定在tags-view中(默认 false) + + // 当路由设置了该属性,则会高亮相对应的侧边栏。 + // 这在某些场景非常有用,比如:一个文章的列表页路由为:/article/list + // 点击文章进入文章详情页,这时候路由为/article/1,但你想在侧边栏高亮文章列表的路由,就可以进行如下设置 + activeMenu: '/article/list' +} +``` +**普通示例** +```json +{ + path: '/system/test', + component: Layout, + redirect: 'noRedirect', + hidden: false, + alwaysShow: true, + meta: { title: '系统管理', icon : "system" }, + children: [{ + path: 'index', + component: (resolve) => require(['@/views/index'], resolve), + name: 'Test', + meta: { + title: '测试管理', + icon: 'user' + } + }] +} +``` +**外链示例** +```json +{ + path: 'http://ruoyi.vip', + meta: { title: '若依官网', icon : "guide" } +} +``` +### 静态路由 +代表那些不需要动态判断权限的路由,如登录页、404、等通用页面,在`@/router/index.ts`配置对应的公共路由。 +### 动态路由 +代表那些需要根据用户动态判断权限并通过addRoutes动态添加的页面,在`@/store/modules/permission.ts`加载后端接口路由配置。 +> **提示** +> * 动态路由可以在系统管理-菜单管理进行新增和修改操作,前端加载会自动请求接口获取菜单信息并转换成前端对应的路由。 +> * 动态路由在生产环境下会默认使用路由懒加载,实现方式参考loadView方法的判断。 +### 常用方法 +想要跳转到不同的页面,使用`router.push`方法 +```Typescript +const router = useRouter(); +router.push({ path: "/system/user" }); +``` +跳转页面并设置请求参数,使用`query`属性 +```Typescript +const router = useRouter(); +router.push({ path: "/system/user", query: {id: "1", name: "若依"} }); +``` +更多使用可以参考[vue-router](https://router.vuejs.org/zh/)官方文档。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/home.md b/ruoyi-admin/src/main/resources/static/plus-ui/home.md new file mode 100644 index 00000000..b389b5ca --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/plus-ui/home.md @@ -0,0 +1,53 @@ +# 项目简介 + +--- + +## 平台简介 + +- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 +- 配套后端代码仓库地址 +- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) +- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) + +## 前端运行 + +```bash +# 克隆项目 +git clone https://gitee.com/JavaLionLi/plus-ui.git + +# 安装依赖 +npm install --registry=https://registry.npmmirror.com + +# 启动服务 +npm run dev + +# 推荐使用yarn或pnpm包管理工具 +# 构建测试环境 yarn build:stage +# 构建生产环境 yarn build:prod +# 前端访问地址 http://localhost:80 +``` + +## 后端改造 + +参考后端代码内 `ruoyi-gen/resources/vm/vue/v3/readme.txt` 说明 + +## 内置功能 + +1. 租户管理:配置系统租户,支持 SaaS 场景下的多租户功能。 +2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 +3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 +4. 岗位管理:配置系统用户所属担任职务。 +5. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 +6. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 +7. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 +8. 参数管理:对系统动态配置常用参数。 +9. 通知公告:系统通知公告信息发布维护。 +10. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 +11. 登录日志:系统登录日志记录查询包含登录异常。 +12. 在线用户:当前系统中活跃用户状态监控。 +13. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 +14. 代码生成:前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 。 +15. 系统接口:根据业务代码自动生成相关的 api 接口文档。 +16. 服务监控:监视当前系统 CPU、内存、磁盘、堆栈等相关信息。 +17. 缓存监控:对系统的缓存信息查询,命令统计等。 +18. 在线构建器:拖动表单元素生成相应的 HTML 代码。(TS 版本正在开发中。) diff --git a/ruoyi-admin/src/main/resources/static/questions/_sidebar.md b/ruoyi-admin/src/main/resources/static/questions/_sidebar.md new file mode 100644 index 00000000..2d74fb20 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/_sidebar.md @@ -0,0 +1,34 @@ + +- **特别赞助** +- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) +- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) +- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) + + + +* **常见问题** + * [Lombok注解爆红](/questions/lombok.md) + * [如何使用Tomcat](/questions/use_tomcat.md) + * [如何使用druid连接池](/questions/use_druid.md) + * [vue与boot整合部署](/questions/deploy_vue.md) + * [导入excel实体类为空](/questions/import_excel.md) + * [如何同步项目更新](/questions/synchronous_update.md) + * [ParseException SQL解析异常](/questions/parse_exception.md) + * [swagger相关问题](/questions/swagger.md) + * [实体bean为空问题](/questions/bean_null.md) + * [Redis 报错 Permission denied](/questions/permission_denied.md) + * [关于HTTPS配置](/questions/https_config.md) + * [放行接口提示认证失败](/questions/identify_fail.md) + * [打包jar运行报错](/questions/jar_run_fail.md) + * [如何指定dubbo注册ip](/questions/dubbo_ip.md) + * [Sentinel页面404问题](/questions/sentinel_404.md) + * [无法读取nacos配置](/questions/nacos_read_fail.md) + * [接口文档对接knife4j](/questions/kinfe4j.md) + * [不支持ST请求](/questions/st_not_support.md) + * [Only one connection receive subscriber allowed](/questions/only_one_subscriber.md) + * [nacos 报错 The Raft Group [naming_instance_metadata]](/questions/nacos_naming_instance_metadata.md) + * [unable to read meta-data for class xxx](/questions/read_metadata.md) + * [JCE cannot authenticate the provider BC](/questions/jce_cannot.md) + * [关于请求响应参数解密](/questions/api_encrypt.md) + * [关于登录调试步骤](/questions/login_step.md) + * [如何对接国产数据库](/questions/domestic_databases.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md b/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md new file mode 100644 index 00000000..95b516d4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md @@ -0,0 +1,148 @@ +# 关于请求响应参数解密 +--- +## 1:前端加密请求 + +![输入图片说明](https://foruda.gitee.com/images/1717033672316716771/8e30a2f1_4959041.png "屏幕截图") + +通过控制台获取加密结果: + +![输入图片说明](https://foruda.gitee.com/images/1717033792384655437/900a0e0d_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1717033896868612970/55581f0a_4959041.png "屏幕截图") + + +加密密钥: + +``` +PAg/fZzpV/cz0T1fMUJMJo/LEZvwVLb4bZgtCHkbB6FQAJWlLm/RLKtQ5fOo1blMjAkY+9ryWhsAfCqoMPTU4w== +``` + +请求参数加密结果: + +``` +F+Qxq6PzShcudDsUZHhp50lA67eBeTe63x5uGbdm/HJGgcDmjKncUk5VQm0evD8pz1sbmCbmmSl3X1D07K/qgHvP1YhjYSRBJf/M0GTfMkfOZqIkOtvfE5Z6fSFd8RYf6ji/qYxAmCiRmP/uADyJUAoBY1gMi5+zuvyHH3In/FyoFeD0rmJWvO4o4fn3n5GElHMWbP0O/HWPfgHFfg1F7bZQPuf4zAuDKQIqUG3jJTem3O97kAbTWw6lSSuYi1/8tV4cE9rq8SMSjx36/ZLSog== +``` + +### 解密步骤 + +1. 使用配置文件私钥对加密密钥解密 + +```java +// 参数说明: +// requestKey:即请求标头加密密钥 +// privateKey:application.yml 配置文件私钥 +String decryptByRsa = EncryptUtils.decryptByRsa(requestKey, privateKey); +``` + +2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥 + +```java +String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa); +``` + +3. 使用步骤二得到的密钥,对请求参数进行解密 + +```java +String decryptBody = EncryptUtils.decryptByAes(requestBody, aesPassword); +``` + +得到解密请求参数(已格式化): + +```json +{ + "tenantId": "000000", + "username": "admin", + "password": "admin123", + "rememberMe": false, + "uuid": "a39962b22c874f60872ef5db1cd811f5", + "code": "5", + "clientId": "e5cd7e4891bf95d1d19206ce24a7b32e", + "grantType": "password" +} +``` + +|参数名|说明| +|---|---| +|tenantId| 租户id | +|username| 用户名 | +|password| 密码 | +|rememberMe| 记住密码 | +|uuid| - | +|code| 验证码结果 | +|clientId| 客户端id(表 sys_client) | +|grantType| 授权类型(表 sys_client) | + +## 2:后端加密响应 + +对请求使用了注解 `@ApiEncrypt(response = true)` + +![输入图片说明](https://foruda.gitee.com/images/1717035066844744866/2286b394_4959041.png "屏幕截图") + +通过控制台获取加密结果: + +![输入图片说明](https://foruda.gitee.com/images/1717035156784270596/156f2aa7_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1717035193189175688/214631e5_4959041.png "屏幕截图") + +加密密钥: + +``` +MXnKYnXcXeFYWKZg8utuhDtbz54cPDcov11E1KT5l19/vMt37d4NhzzwBWnqug72SOgOK5URGaWPJSs9VdaP0Q== +``` + +响应参数加密结果: + +``` +70 O63EMmwvbAyWPqDDmVOGTy+BOQnIVgKInMFNRtp8Zwzs8DEL20VgL2IslYrL8bc1u7lPhYNU/6 Q3iTYebm4EokwiG+styaT+LO3M9bUimggoAGpBTW8gCRF/34 kJaOITSRqYqYcXIJKn73+Gqn7jevyKUHyRXog/3 q/PlBdmUjNiB4gtxlOO/Vm+4 o+0 W4jcEe0xwwzV91+Ze3S6Eu/1 XN21g0iOsYT34emv/vhd9Hy3p5LfJlAHvn96x/c3MQBQUU32uM3Vkk3o6IpVHjJljE64gnGximSwB9vrmMA21xX+fq9HYioumknmDDbaY/JAKh32CDgn5M5hdaIklf08sU38r1IyvipySzrHX+ci9GmOZhP2ttCtoZ7SGvFFbNEuyojssxwxXEmJHAsG/OhIAeRXMUr3+dzDJ++XvvMuMgNJR0BMldNydFAjNOQEszgcVM1QEGwxfW5rElW8VxQaaqPyDATX+y2JrK1vdKxxdI/hF5dGpQMdU4FAEhHIftoIbD/FH4XcWJamZjJpbVtZvTkFYpbhiU7sz9MICSuKwaoSFJ8JGANc0bDdVoWpA8sXi7a27IM0pDzk9gD/FADcFGHXxPYUhENkXiUcnmg5LSdigiY4J6HrqEJdH6zNSwoGubcsXhiPdlB3V0DqcLAHFt+GYj5lcxZeqUAmixGVGCV7gSBWNiyo9/NnXcynA/EIlV3OZIvgzjWxiKzcVJ1HOKoXGEcg3Q54QNh5pCqEa7AtqVkKO7/Ffgg8nSEeCdJPzTV7zmr3n94Hn671OL8A== +``` + +### 解密步骤 + +1. 使用前端配置文件私钥对加密密钥解密 + +```java +// 参数说明: +// responseKey:即响应标头加密密钥 +// privateKey:前端 .env.development | .env.production 配置文件私钥,注意和后端私钥区分 +String decryptByRsa = EncryptUtils.decryptByRsa(responseKey, privateKey); +``` + +2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥 + +```java +String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa); +``` + +3. 使用步骤二得到的密钥,对响应参数进行解密 + +```java +String decryptBody = EncryptUtils.decryptByAes(responseBody, aesPassword); +``` + +得到解密请求参数(已格式化): + +```json +{ + "code": 200, + "msg": "操作成功", + "data": { + "scope": null, + "openid": null, + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJjOVNWU1hRRVY4QVhFRkt4b2FrbndSSWxPczd4ajdRZCIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCJ9.YuaXPu6eTzJVkLyQC3ekzmPS_jXp50ykaIB2nWy11qM", + "refresh_token": null, + "expire_in": 604799, + "refresh_expire_in": null, + "client_id": "e5cd7e4891bf95d1d19206ce24a7b32e" + } +} +``` + +|参数名|说明| +|---|---| +|scope| 令牌权限 | +|openid| 用户 openid | +|access_token| 授权令牌 | +|refresh_token| 刷新令牌 | +|expire_in| 授权令牌 access_token 的有效期 | +|refresh_expire_in| 刷新令牌 refresh_token 的有效期 | +|clientId| 客户端id(表 sys_client) | \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/bean_null.md b/ruoyi-admin/src/main/resources/static/questions/bean_null.md new file mode 100644 index 00000000..bf04048c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/bean_null.md @@ -0,0 +1,10 @@ +# 实体bean为空问题 +- - - +### 问题排查 + +检查是否存在 `链式调用` 注解 `@Accessors(chain = true)` 删除即可 + +### 原因 +java 规范 set 返回值为 `void` 链式调用 set 返回值为 `this`
+故多数框架底层使用 jdk 工具导致找不到 set 方法
+例如: `easyexcel` `cglib` `mybatis` 等 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md b/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md new file mode 100644 index 00000000..348a1680 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md @@ -0,0 +1,13 @@ +# 关于vue与boot整合部署 +- - - +* [前端静态资源如何整合到后端访问](https://doc.ruoyi.vip/ruoyi-vue/other/faq.html#前端静态资源如何整合到后端访问) + +3.X 需在 `pom.xml` 增加资源过滤排除 + +```xml + + src/main/resources/页面目录 + + false + +``` diff --git a/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md b/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md new file mode 100644 index 00000000..e79762ba --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md @@ -0,0 +1,41 @@ +# 如何对接国产数据库 + +> 1. 框架采用 mybatis-plus 几乎支持大部分市面上的数据库且框架内几乎没有sql语句存在 +
+所以不用担心兼容性问题(顶多就是有一些关键字什么的 对接很简单) +
+> 2. 国产数据库大多都兼容主流三大数据库 mysql oracle postgresql +
+例如 达梦兼容oracle 人大金仓兼容mysql oceanbase兼容mysql 等等 + +# 对接方式 + +### 这里用 `达梦` 数据库为例 + +1.首先增加 jdbc依赖包 `vue版本在ruoyi-admin模块下` `cloud版本在ruoyi-common-mybatis模块下` + +![输入图片说明](https://foruda.gitee.com/images/1723288594335994875/216ae8e7_1766278.png "屏幕截图") + +2.在配置文件yml内配置数据库连接 + +![输入图片说明](https://foruda.gitee.com/images/1723288760519808620/3db91ba5_1766278.png "屏幕截图") + +3.sql脚本使用框架内自带的sql文件根据兼容的数据库模式 例如 达梦用oracle的sql脚本 + +![输入图片说明](https://foruda.gitee.com/images/1723289018873298537/4d95c892_1766278.png "屏幕截图") + +4.在代码生成器内 增加对应的数据库生成器依赖 代码生成器使用 anyline 支持几百种数据库只需要增加对应的依赖即可 + +![输入图片说明](https://foruda.gitee.com/images/1723288974693848785/3e8fc61f_1766278.png "屏幕截图") + +这样基本就完成了所有需要做的事可以尝试启动项目了 + +5.如果项目启或者运行动过程中有sql报错 不要慌基本上都是一些关键字引起的 +
+例如 达梦内的`domain`就是关键字 在我们的`SysOssConfig`表内使用`domain`进行自定义的域名存储 +
+我们只需要在`SysOssConfig`实体类的`domain`属性增加一个注解即可解决此问题 +
+**注意: 各种数据库处理关键字的标识符不一样注意替换** + +![输入图片说明](https://foruda.gitee.com/images/1723289232470339283/480d5172_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md b/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md new file mode 100644 index 00000000..43cb2346 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md @@ -0,0 +1,18 @@ +# 如何指定dubbo注册ip +- - - +## 重点说明 +以下方法指定IP必须是本地有网卡的自己可以访问的IP 不可以随意乱写
+(云服务器公网IP是没有网卡的) + +## 在`nacos`指定协议IP地址(全局生效) +```yml +dubbo: + protocol: + # 指定dubbo协议注册ip + host: 192.168.0.100 +``` + +## docker指定dubbo环境变量(单服务生效) + +![输入图片说明](https://foruda.gitee.com/images/1678981332028792584/7eeef9c5_1766278.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/questions/https_config.md b/ruoyi-admin/src/main/resources/static/questions/https_config.md new file mode 100644 index 00000000..e590729e --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/https_config.md @@ -0,0 +1,27 @@ +# 关于HTTPS配置 +- - - +### 后端 HTTPS 改造 + +将申请的 `https` 证书放置到 `nginx` 对应目录内
+根据框架 `nginx https` 示例 更改后端代理为 `https`
+ +![输入图片说明](https://foruda.gitee.com/images/1678981283573122208/87cf19ad_1766278.png "屏幕截图") + +### 监控中心 与 任务调度中心 改造 + +`监控中心` 与 `任务调度中心` 属于系统管控服务
+应在内网使用 不应该暴漏到外网 也无需配置 `https` + +更改 `系统 -> 菜单管理 -> 监控中心 与 任务调度中心` 菜单配置
+将其改为 `外链访问` 访问路径为 **注意: 如果是外网使用 url需配置为 http://外网ip:端口** + +![输入图片说明](https://foruda.gitee.com/images/1678981287686638349/3734f085_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678981292545287978/f2471f97_1766278.png "屏幕截图") + +`nginx` 配置 `独立的端口` 进行反向代理即可访问(代理编写方式参考后端反向代理) + +### Minio https 改造 + +下方链接包含 minio+nginx 与 minio本身配置https 两种方案
+[终极版minio配置https教程](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/identify_fail.md b/ruoyi-admin/src/main/resources/static/questions/identify_fail.md new file mode 100644 index 00000000..4e258067 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/identify_fail.md @@ -0,0 +1,10 @@ +# 放行接口提示认证失败 +- - - +## 可能的原因 +接口放行后不需要token即可访问
+但是没有token也就无法获取用户信息与鉴权 + +## 解决方案 +删除接口上的鉴权注解
+删除接口内获取用户信息功能
+删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/import_excel.md b/ruoyi-admin/src/main/resources/static/questions/import_excel.md new file mode 100644 index 00000000..431863e8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/import_excel.md @@ -0,0 +1,4 @@ +# 关于导入excel实体类为空 +- - - +* 禁止在导入实体使用 `lombok` 链式调用注解 `@Accessors(chain = true)` +* 会导致找不到 `set` 方法无法注入内容 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md b/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md new file mode 100644 index 00000000..cef9bcd2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md @@ -0,0 +1,12 @@ +# 打包jar运行报错问题 +- - - + +**常见于 windows 平台以命令方式启动** + +windows 平台默认编码为 GBK 所以读取到所有的配置都是乱码 + +## 解决方案 + +需要在命令增加 `-Dfile.encoding=utf-8` 指定文件编码 + +例如: `java -Dfile.encoding=utf-8 -jar ruoyi-xxx.jar` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md b/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md new file mode 100644 index 00000000..a1baf9dd --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md @@ -0,0 +1,3 @@ +# 问题说明 由于 OracleJDK 强校验加密证书导致 + +解决方案 禁止使用 oraclejdk 更换为其他例如 openjdk \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md b/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md new file mode 100644 index 00000000..5051a782 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md @@ -0,0 +1,66 @@ +# 对接前声明 + +经常有小伙伴希望可以对接 knife4j + +那么这里将介绍如何使用 框架生成的 openapi 对接 knife4j + +# 如何对接 + +**重点声明: 本框架生成标准openapi结构 如对接后遇到不好用等问题 皆与本框架无关** + +knife4j 本身提供了独立的文档中间件 可以零成本的介入 openapi + +文档地址: https://doc.xiaominfo.com/docs/middleware-sources + +**注意: 此组件应单独搞一个boot项目 不要往框架里做任何代码上的更改** + +使用文档提供的 Cloud 模式 对接咱们框架的 openapi 地址即可完成对接 + +![输入图片说明](https://foruda.gitee.com/images/1685953873117929554/22dce56e_1766278.png "屏幕截图") + +vue版本对接配置如下: + +```yml +knife4j: + enable-aggregation: true + cloud: + enable: true + routes: + - name: 演示模块 + uri: localhost:8080 + location: /v3/api-docs/1.演示模块 + - name: 系统模块 + uri: localhost:8080 + location: /v3/api-docs/2.系统模块 + - name: 代码生成模块 + uri: localhost:8080 + location: /v3/api-docs/3.代码生成模块 +``` + +cloud版本对接配置如下: + +```yml +knife4j: + enable-aggregation: true + cloud: + enable: true + routes: + - name: 演示模块 + uri: localhost:8080 + location: /demo/v3/api-docs + - name: 认证服务 + uri: localhost:8080 + location: /auth/v3/api-docs + - name: 资源服务 + uri: localhost:8080 + location: /resource/v3/api-docs + - name: 系统服务 + uri: localhost:8080 + location: /system/v3/api-docs + - name: 监控服务 + uri: localhost:8080 + location: /monitor/v3/api-docs + - name: 代码生成服务 + uri: localhost:8080 + location: /gen/v3/api-docs +``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/login_step.md b/ruoyi-admin/src/main/resources/static/questions/login_step.md new file mode 100644 index 00000000..c1d4fcc9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/login_step.md @@ -0,0 +1,69 @@ +# 关于登录调试步骤 + +## 1:关闭 api 接口加密 + +1. 修改后端配置文件 `application.yml` + +![输入图片说明](https://foruda.gitee.com/images/1717037518256330645/c5a9f0fc_4959041.png "屏幕截图") + +2. 修改前端配置文件 `.env.development` | `.env.production` + +![输入图片说明](https://foruda.gitee.com/images/1717037555118359683/0e73a369_4959041.png "屏幕截图") + +## 2:登录参数 + +![输入图片说明](https://foruda.gitee.com/images/1717038201634120005/e02882d3_4959041.png "屏幕截图") + +|参数名|说明| +|---|---| +|tenantId| 租户id | +|username| 用户名 | +|password| 密码 | +|rememberMe| 记住密码 | +|uuid| - | +|code| 验证码结果 | +|clientId| 客户端id(表 sys_client) | +|grantType| 授权类型(表 sys_client) | + +## 3:使用接口文档调试 + +### 3.1:使用接口文档请求 + +1. 配置接口文档([参考文档](/ruoyi-vue-plus/framework/association/doc)) +2. 请求接口 `http://localhost:8080/auth/login` + +![输入图片说明](https://foruda.gitee.com/images/1717039200581756307/97efbc9c_4959041.png "屏幕截图") + +### 3.2:使用 idea 请求 + +![输入图片说明](https://foruda.gitee.com/images/1717039459944753490/040d2b9d_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1717039534863944601/df91df67_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1717039598067298052/cc9fe61b_4959041.png "屏幕截图") + +### 3.3:获取验证码以及 uuid + +!> 验证码以及 uuid 获取方式: Redis | 控制台 + +方式一、Redis: + +![输入图片说明](https://foruda.gitee.com/images/1717040260329977942/42f7ed62_4959041.png "屏幕截图") + +> **如果没有验证码相关 key,说明已经过期被清理了,去前端页面刷新一下即可。** + +方式二、控制台: + +![输入图片说明](https://foruda.gitee.com/images/1717040428227070908/1ef7562a_4959041.png "屏幕截图") + +### 3.4:关闭验证码 + +如果嫌验证码太麻烦,可以关闭,修改后端配置文件 `application.yml` + +![输入图片说明](https://foruda.gitee.com/images/1717040533266608114/054fd984_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1717040745251872562/374267e8_4959041.png "屏幕截图") + +请求参数: + +![输入图片说明](https://foruda.gitee.com/images/1717040762860943102/81c9b44a_4959041.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/lombok.md b/ruoyi-admin/src/main/resources/static/questions/lombok.md new file mode 100644 index 00000000..47125153 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/lombok.md @@ -0,0 +1,4 @@ +# 关于lombok注解爆红 +- - - +* 已知 lombok 插件与 idea中文插件 存在兼容性问题 +* 移除中文插件或手动关闭idea检查 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md b/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md new file mode 100644 index 00000000..ae35d937 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md @@ -0,0 +1,35 @@ +# nacos 报错 The Raft Group [naming_instance_metadata] +- - - +## Nacos 服务下线报错问题 + +问题描述: + +Nacos 服务管理 > 服务列表 > 详情 > 下线 报错 + + + +报错详情: + +``` +caused: errCode: 500, errMsg: do metadata operation failed ;caused: com.alibaba.nacos.consistency.exception.ConsistencyException: The Raft Group [naming_instance_metadata] did not find the Leader node;caused: The Raft Group [naming_instance_metadata] did not find the Leader node; +``` + + + +解决方案: + +**删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹** + +(推荐使用全局搜索软件查询,windows 环境根目录一般在 C:\Users\用户名\nacos) + + + +问题原因: + +> Nacos 采用 raft 算法来计算 Leader,并且会记录上次启动的集群地址,所以当我们自己的服务器 IP 改变时(网络环境不稳定,如WIFI, IP 地址也经常变化),导致 raft 记录的集群地址失效,导致选 Leader 出现问题。 + + + +参考目录: + +[解决疑难问题之服务下线报:The Raft Group naming_instance_metadata\] did not find the Leader node; - 嘉美祥瑞 - 博客园 (cnblogs.com)](https://www.cnblogs.com/whl-jx911/p/16736625.html) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md b/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md new file mode 100644 index 00000000..f6cc36d9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md @@ -0,0 +1,15 @@ +# 无法读取nacos配置 +- - - +### 检查 `group` 与 `namespace` 是否一致 + +如果未使用框架自带 `ry-config.sql` 文件进行配置 会导致 `namespace` 不一致 无法查询配置 + +### 检查 `8848` `9848` `9849` 端口是否开启可用 + +### 检查配置文件名是否一致 例如: "xxx" 与 "xxx.yml" 的区别 + +### 检查是否手动改过 `nacos` 数据库数据 + +`nacos` 数据表层层关联 不要自作聪明手动改数据库 + +已经改过的 需要重新导入 `ry-config.sql` 之后在页面进行改数据操作 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md b/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md new file mode 100644 index 00000000..f8d690e1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md @@ -0,0 +1,11 @@ +# Only one connection receive subscriber allowed +- - - +## 问题原因 +**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题** + +`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错 + +## 解决方案 + +方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)
+方案2: `uniapp` 内的请求设置正确的 `Content-Type` diff --git a/ruoyi-admin/src/main/resources/static/questions/parse_exception.md b/ruoyi-admin/src/main/resources/static/questions/parse_exception.md new file mode 100644 index 00000000..67a7a114 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/parse_exception.md @@ -0,0 +1,40 @@ +# ParseException SQL解析异常 +- - - +## 异常内容 + +`net.sf.jsqlparser.parser.ParseException: Encountered unexpected token:` + +![输入图片说明](https://foruda.gitee.com/images/1678981169309778625/a17ff852_1766278.png "屏幕截图") + +此异常为 SQL 解析异常, 应检查 SQL 语句内是否包含 SQL 关键字 + +异常通常都会提供坐标 + +![输入图片说明](https://foruda.gitee.com/images/1678981173813116217/a6f9ee32_1766278.png "屏幕截图") + +检查报错 SQL 相关坐标位置 + +![输入图片说明](https://foruda.gitee.com/images/1678981179153564043/bf4912b4_1766278.png "屏幕截图") + +## 异常由来 +由 Mybatis-Plus 拦截器进行 SQL 解析导致
+常见拦截器导致问题 `TenantLineInnerInterceptor` `DataPermissionInterceptor` + +## 解决方案 + +> 将关键字增加标识符区别开 + +1.实体类字段处理(以下仅限于mysql 其他数据库方法各不相同) + +![输入图片说明](https://foruda.gitee.com/images/1678981183515542682/fccd85ad_1766278.png "屏幕截图") + +2.自定义 SQL 或 XML 处理 + +![输入图片说明](https://foruda.gitee.com/images/1678981187926917963/38437edb_1766278.png "屏幕截图") + +3.Mapper排除 +> 查看具体使用了哪些拦截器导致问题 使用忽略注解依次进行排除即可 + +![输入图片说明](https://foruda.gitee.com/images/1678981192902044584/fb1c41eb_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/questions/permission_denied.md b/ruoyi-admin/src/main/resources/static/questions/permission_denied.md new file mode 100644 index 00000000..76d955db --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/permission_denied.md @@ -0,0 +1,15 @@ +# Redis 报错 Permission denied +- - - +### 此报错为无权限 + +需确保 redis 数据存储文件夹具有写权限 + +```shell +chmod 777 /docker/redis/data +``` + +没有写权限无法对数据进行存储 + +### 关于RDB报错 `/etc` 无权限问题 + +增加redis密码校验 无密码导致配置不安全 diff --git a/ruoyi-admin/src/main/resources/static/questions/read_metadata.md b/ruoyi-admin/src/main/resources/static/questions/read_metadata.md new file mode 100644 index 00000000..b91165fd --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/read_metadata.md @@ -0,0 +1,11 @@ +# unable to read meta-data for class xxx +- - - +## 问题原因 + +此问题由改包名导致框架内组件 spring 的 spi 配置文件包名被改乱套 + +## 解决方案 + +更正组件包下的 spring spi 配置文件内的类包名 + +![输入图片说明](https://foruda.gitee.com/images/1668608724503582409/50a77b4b_1766278.jpeg "test.jpg") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md b/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md new file mode 100644 index 00000000..7e51fb58 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md @@ -0,0 +1,8 @@ +# Sentinel页面404问题 +- - - +## 原因 +检查 `webapp` 目录是否为资源目录 低版本 `idea` 不会自动解析 +## 解决方案 +手动设置 `webapp` 为资源目录即可
+ +![输入图片说明](https://foruda.gitee.com/images/1678981354612151228/52f2a886_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/questions/st_not_support.md b/ruoyi-admin/src/main/resources/static/questions/st_not_support.md new file mode 100644 index 00000000..a3012805 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/st_not_support.md @@ -0,0 +1,11 @@ +# 不支持ST请求 +- - - +## 问题原因 +**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题** + +`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错 + +## 解决方案 + +方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)
+方案2: `uniapp` 内的请求设置正确的 `Content-Type` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/swagger.md b/ruoyi-admin/src/main/resources/static/questions/swagger.md new file mode 100644 index 00000000..8b0a6e01 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/swagger.md @@ -0,0 +1,3 @@ +# 框架内没有任何swagger + +想使用接口文档功能 请查看框架接口文档说明 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md b/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md new file mode 100644 index 00000000..70803f58 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md @@ -0,0 +1,3 @@ +# 如何同步项目更新 +- - - +参考文章: [关于如何同步更新开源项目](https://blog.csdn.net/qq_31360283/article/details/118345795) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/use_druid.md b/ruoyi-admin/src/main/resources/static/questions/use_druid.md new file mode 100644 index 00000000..77f3f605 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/use_druid.md @@ -0,0 +1,20 @@ +# 如何使用druid连接池 +- - - +## 为何移除druid + +性能低下 bug频发 内含fastjson问题众多 监控不支持集群(鸡肋) 不支持一些高版本数据库 社区活跃度冰点 + +### 性能对比图 +![输入图片说明](https://foruda.gitee.com/images/1667888745256002635/1bbd3481_1766278.png "屏幕截图") +### 包大小对比图 +![输入图片说明](https://foruda.gitee.com/images/1667888760611300040/87af8d82_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1667888766932068690/7b379298_1766278.png "屏幕截图") + +## 为何使用hikari(中文: 光) + +spring默认自带 代码量少结构简单 稳定可靠 性能突出(自行百度一堆测评) + +## 参考提交记录反向操作即可 + +https://gitee.com/dromara/RuoYi-Vue-Plus/commit/1f42bd3d22c104aaa2d780c20a555b5e467858bf
+https://gitee.com/dromara/RuoYi-Vue-Plus/commit/a63abbf268e4c0a60344f63b5cba828a1347e178 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md b/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md new file mode 100644 index 00000000..113d239f --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md @@ -0,0 +1,9 @@ +# 关于如何使用Tomcat +- - - +### 查看ruoyi-framework模块的pom.xml文件,根据注释更改依赖 + +![输入图片说明](https://foruda.gitee.com/images/1678981109106652929/0803004d_1766278.png "屏幕截图") + +### 查看ruoyi-admin模块中的application.yml文件,根据注释更改配置 + +![输入图片说明](https://foruda.gitee.com/images/1678981112652965294/dda8df86_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md new file mode 100644 index 00000000..4580b86c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md @@ -0,0 +1,70 @@ + +- **特别赞助** +- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) +- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) +- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) + + +* **简介** + * [项目简介](/ruoyi-cloud-plus/home.md) + * [更新日志](/ruoyi-cloud-plus/changlog.md) +* **快速开始** + * [项目初始化](/ruoyi-cloud-plus/quickstart/init.md) + * [1.X项目初始化](/ruoyi-cloud-plus/quickstart/1.Xinit.md) + * [工作流初始化](/ruoyi-cloud-plus/quickstart/worker_init.md) + * [idea环境配置](/ruoyi-cloud-plus/quickstart/idea_environment.md) + * [应用部署](/ruoyi-cloud-plus/quickstart/deploy.md) + * [扩展项目](/ruoyi-cloud-plus/quickstart/extend_project.md) + * [搭建SnailJob调度中心](/ruoyi-cloud-plus/quickstart/snail_job_init.md) + * [(废弃)搭建PowerJob调度中心](/ruoyi-cloud-plus/quickstart/power_job_init.md) +* **框架功能** + * [项目结构](/ruoyi-cloud-plus/framework/tree.md) + * [软件架构图](/ruoyi-cloud-plus/framework/architecture_diagram.md) + * 框架相关 + * [创建新服务](/ruoyi-cloud-plus/framework/association/new_module.md) + * [修改包名](/ruoyi-cloud-plus/framework/association/update_package_name.md) + * [接口文档](/ruoyi-cloud-plus/framework/association/doc.md) + * [修改应用路径](/ruoyi-cloud-plus/framework/association/update_url.md) + * [国际化](/ruoyi-cloud-plus/framework/association/i18n.md) + * [多团队开发](/ruoyi-cloud-plus/framework/association/collaboration.md) + * [内网鉴权](/ruoyi-cloud-plus/framework/association/inner_authentication.md) + * 基础功能 + * [系统用户相关](/ruoyi-cloud-plus/framework/basic/user.md) + * [权限控制](/ruoyi-cloud-plus/framework/basic/permissions_control.md) + * [导出功能](/ruoyi-cloud-plus/framework/basic/export.md) + * [导入功能](/ruoyi-cloud-plus/framework/basic/import.md) + * [参数校验](/ruoyi-cloud-plus/framework/basic/param_check.md) + * [代码生成](/ruoyi-cloud-plus/framework/basic/code_generate.md) + * [分页功能](/ruoyi-cloud-plus/framework/basic/page.md) + * [OSS功能](/ruoyi-cloud-plus/framework/basic/oss.md) + * [数据权限](/ruoyi-cloud-plus/framework/basic/permissions.md) + * [网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release.md) + * [多租户功能](/ruoyi-cloud-plus/framework/basic/tenant.md) + * [第三方授权功能](/ruoyi-cloud-plus/framework/basic/social.md) + * [客户端管理功能](/ruoyi-cloud-plus/framework/basic/client.md) + * 扩展功能 + * [多数据源](/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md) + * [短信模块](/ruoyi-cloud-plus/framework/extend/sms.md) + * [邮件功能](/ruoyi-cloud-plus/framework/extend/mail.md) + * [防重幂等](/ruoyi-cloud-plus/framework/extend/idempotent.md) + * [数据脱敏](/ruoyi-cloud-plus/framework/extend/sensitive.md) + * [API加解密](/ruoyi-cloud-plus/framework/extend/api_encrypt.md) + * [数据加解密](/ruoyi-cloud-plus/framework/extend/encrypt.md) + * [翻译功能](/ruoyi-cloud-plus/framework/extend/translation.md) + * [WebSocket功能](/ruoyi-cloud-plus/framework/extend/websocket.md) + * 功能说明 + * [事务相关](/ruoyi-cloud-plus/framework/explain/transaction.md) + * [单元测试](/ruoyi-cloud-plus/framework/explain/test.md) + * [主键使用说明](/ruoyi-cloud-plus/framework/explain/key.md) + * [关于多表查询](/ruoyi-cloud-plus/framework/explain/about_join.md) +* **扩展功能** + * [ELK搭建](/ruoyi-cloud-plus/extend-function/elk.md) + * [ES搜索引擎](/ruoyi-cloud-plus/extend-function/es.md) + * [RabbitMQ搭建](/ruoyi-cloud-plus/extend-function/rabbitmq.md) + * [RocketMQ搭建](/ruoyi-cloud-plus/extend-function/rocketmq.md) + * [Kafka搭建](/ruoyi-cloud-plus/extend-function/kafka.md) + * [Nacos集群搭建](/ruoyi-cloud-plus/extend-function/nacos.md) + * [SkyWalking搭建与集成](/ruoyi-cloud-plus/extend-function/skywalking.md) + * [Prometheus+Grafana搭建](/ruoyi-cloud-plus/extend-function/prometheus_grafana.md) + * [Sharding-Proxy搭建分库分表](/ruoyi-cloud-plus/extend-function/shardingproxy.md) + * [对接MaxKey单点登录](/ruoyi-cloud-plus/extend-function/maxkey.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md new file mode 100644 index 00000000..368844cb --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md @@ -0,0 +1,1385 @@ +# 更新日志 +- - - + +## v2.2.1 - 2024-08-26 + +### 重大改动 + +* 增加 ruoyi-common-sse 模块 支持SSE推送 比ws更轻量更稳定的推送 +* 增加 springboot snailjob 等 actuator 账号密码认证 杜绝内外网信息泄漏问题 +* 增加 重构代码生成器 集成anyline开源框架 支持400+种数据库适配 + +### 依赖升级 + +* update springboot 3.2.6 => 3.2.9 +* update snailjob 1.0.1 => 1.1.2 +* update mapstruct-plus 1.4.3 => 1.4.4 +* update hutool 5.8.27 => 5.8.31 解决hutool不兼容jakarta问题 +* update anyline 8.7.2-20240808 +* update sms4j 3.2.1 => 3.3.2 +* update redisson 3.31.0 => 3.34.1 +* update mapstruct-plus 1.3.6 => 1.4.3 +* update lombok 1.18.32 => 1.18.34 +* update easyexcel 3.3.4 => 4.0.2 +* update springdoc 2.5.0 => 2.6.0 +* update flowable 7.0.0 => 7.0.1 + +### cloud内容更新 + +* update springcloud 2023.0.2 => 2023.0.3 +* update springcloud-alibaba 2023.0.1.0 => 2023.0.1.2 +* update redis 6.2.7 => 6.2.12 解决订阅key报错问题 +* update 优化 seata dockerfile 增加环境变量 +* update 优化 增加日志处理器顺序说明 +* update 优化 使用 seata-server 官方依赖简化seata集成方式 +* update 优化 屏蔽 sentinel 心跳日志 +* update 优化 dubbo元数据注册redis支持timeout(注意时间必须使用数字) +* update 优化 调整sentinel日志级别 屏蔽心跳日志 +* update 优化 sky-agent 默认开启即使连不上服务端也跟踪配置 (有些人就爱这么用) +* update 优化 kafka 自动创建 topic 部分人副本数不够报错问题 +* add 增加 nacos sentinel snailjob 健康检查 actuator 账号密码认证 +* fix 修复 dubbo redis元数据中心 获取监听器null问题 +* fix 修复 nacos sentinel seata 不适配新版undertow问题 先换回tomcat +* fix 修复 依赖漏洞 限制部分依赖版本 +* fix 修复 由于alibaba sentinel 初始化机制变更导致的无法连接问题 +* fix 修复 dubbo 日志输出异常判断错误 +* remove 删除 kafka-streams 所有人都不会用也不学怎么用 删除了事 + +### 功能更新 + +* update 优化 去除日志部署环境判断 通过日志级别控制 +* update 优化 忽略租户与忽略数据权限支持嵌套使用(感谢 amadeus5201) +* update 优化 租户相关controller 增加租户开关配置控制是否注册 +* update 优化 移除 alibaba ttl 与线程池搭配有问题(可传递但无法清除与更新) +* update 优化 个人中心编辑 忽略数据权限 +* update 优化 兼容部分用户不想给用户分配角色与部门的场景 +* update 优化 租户套餐重名校验 +* update 优化 部门下存在岗位不允许删除 +* update 优化 角色编辑状态未校验问题 +* update 优化 用户脱敏增加编辑权限标识符 +* update 优化 代码生成器 自动适配oss翻译 +* update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题 +* update 优化 支持通过配置文件关闭工作流 +* update 优化 增加mybatis-plus填充器兜底策略 +* update 优化 TenantSpringCacheManager 处理逻辑 +* update 优化 角色权限判断 +* update 优化 增加删除标志位常量优化查询代码 +* update 优化 监控使用独立web依赖 +* update 优化 更多脱敏策略(感谢 hemengji) +* update 优化 设置nginx sse相关代理参数 +* update 优化 调整默认推送使用SSE +* update 优化 Monitor监控服务通知分类打印(感谢 AprilWind) +* update 优化 限流注解 又写key又不是表达式的情况 +* update 优化 WorkflowUtils查询用户信息发送消息未查询邮件和手机号(感谢 yanzy) +* update 优化 注释掉其他数据库 jdbc 依赖 由用户手动添加 +* update 优化 oracle snailjob 兼容低版本oracle索引名称长度限制 +* update 优化 数据权限支持通过菜单标识符获取数据所有权 +* update 优化 数据权限支持自定义连接符 +* update 优化 TestDemo 删除前校验数据权限 +* update 优化 更换docker镜像底层系统 避免无字体情况 + +### 问题修复 + +* fix 修复 三方登录构建去除无用代码 +* fix 修复 多线程对同一个session发送ws消息报错问题 +* fix 修复 依赖漏洞 限制部分依赖版本 +* fix 修复 excel 基于其他字段 合并错误问题 +* fix 修复 一级缓存key未区分租户问题 +* fix 修复 id字符串格式转换错误问题 +* fix 修复 登出无法正确删除对应的租户数据问题 +* fix 修复 登录错误锁定不区分租户问题 +* fix 修复 转换模型缺少分类字段 +* fix 修复 权限标识符处理未设置成功状态问题 +* fix 修复 无法导入 bpmn 类型文件问题 + +### 前端改动 + +* update element-plus 2.7.5 => 2.7.8 +* update vue 3.4.25 => 3.4.34 +* update vite 5.2.10 => 5.2.12 +* add 增加 使用 vueuse 编写 sse 推送功能 +* update 优化 使用匹配模式简化预编译配置 +* update 优化 时间搜索组件统一 +* update 优化 oss 配置按钮 使用ossConfig权限标识符与oss权限分离 +* update 优化 类型报错问题 +* update 优化 切换租户后刷新首页 +* update 优化 实现表格行选中切换 +* update 优化 使用 vueuse 重构 websocket 实现 +* update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题 +* update 优化 调整默认推送使用SSE +* fix 修复 租户套餐导出路径错误问题 +* fix 修复 登出后重新登录 sse推送报错问题 + + +## v2.2.0 - 2024-07-09 + +### 重大更新 + +* [重大更新] 使用 caffeine 重构 PlusSaTokenDao 层实现 减少将近90%的redis查询提高性能 +* [重大更新] 新增 PlusCacheWrapper 装饰器 为 SpringCache 增加本地缓存减少redis查询提高性能 +* [重大更新] 升级 awsS3 到2.X版本 支持异步与自动分片上传下载(感谢 AprilWind) +* [重大更新] 新增 flowable 工作流功能(感谢 May) +* [重大更新] 新增 snailjob 调度中心 移除 powerjob (投诉的人太多) (感谢 dhb52) +* [重大更新] 重构 将spring-cloud-stream改为普通的mq依赖用法(感谢 Xbhog) +* [重大更新] 新增 ruoyi-common-bus 消息总线组件 基于MQ跨服务投递事件消息 + +### 依赖升级 + +* update springboot 3.1.7 => 3.2.6 支持虚拟线程 +* update springboot-admin 3.1.8 => 3.2.3 +* update springdoc 2.2.0 => 2.5.0 +* update redisson 3.24.3 => 3.29.0 支持虚拟线程 +* update hutool 5.8.22 => 5.8.26 +* update dynamic-ds 4.2.0 => 4.3.0 +* update mybatis-plus 3.5.4 => 3.5.7 修复与boot代码冲突问题 +* update lock4j 2.2.5 => 2.2.7 消除启动警告 +* update sms4j 2.2.0 => 3.2.1 支持自定义配置key 可用于多厂商多租户等 +* update mapstruct-plus 1.3.5 => 1.3.6 +* update easyexcel 3.3.3 => 3.3.4 +* update lombok 1.18.30 => 1.18.32 +* update satoken 1.37.0 -> 1.38.0 +* update aws-oss 1.12.600 => 2.25.15 + +### 功能更新 + +* update 优化 StreamUtils 抽取 findFirst findAny 方法 +* update 优化 更新使用 Spring 官方推荐 JDK +* update 优化 webscoket 配置与异常拦截 +* update 优化 isTenantAdmin 空校验 +* update 优化 修改路由name命名规则(感谢 玲娜贝er) +* update 优化 大数据量下join卡顿问题 使用子查询提高性能 +* update 优化 用户ID查询角色列表(感谢 AprilWind) +* update 优化 获取用户账户(感谢 AprilWind) +* update 优化 租户列表接口 避免登录之后列表被域名过滤 +* update 优化 三方登录不同域名获取不到租户id问题 +* update 优化 获取aop代理的方式 减少与其他使用aop的功能冲突的概率 +* update 优化 临时解决 spring 启动报 warn 问题 +* update 优化 移除表单构建菜单(没有可用组件 用处不大以后再考虑) +* update 优化 修改用户信息接口(感谢 AprilWind) +* update 优化 切换动态租户 默认线程内切换(如需全局 手动传参) +* update 优化 适配最新前端代码生成模板 +* update 优化 代码生成 el-radio 标签过期属性 +* update 优化 文件下载(使用对流传递 降低内存使用量)(感谢 秋辞未寒) +* update 优化 去除gc日志参数(有需要自己加) +* update 优化 拆分异常处理器 +* update 优化 常规web异常状态码 +* update 优化 设置静态资源路径防止所有请求都可以访问静态资源 +* update 优化 代码生成表导入 排除工作流相关表 +* update 优化 redis 对Long值的存储类型不同问题 +* update 优化 去除加密请求类型限制 +* update 优化 mp多租户插件注入逻辑 +* update 优化 移除删表语句 用户自行处理 +* update 优化 RedisUtils 支持忽略租户 +* update 更新 ip地址 xdb文件 +* update 优化 新增修改菜单权限字符校验 +* update 优化 验证码背景色改为浅灰色 +* update 优化 更新 mybatis 多包扫描配置 +* update 优化 RateLimiter 注解使用体验(感谢 ly-chn) +* update 优化 GET 方法响应体支持加密 +* update 优化 excel 单元格合并可以基于注解选择需要依赖哪些字段(感谢 司猫子) +* update 优化 OssFactory 获取实例锁性能(感谢 fanc) +* update 优化 登录消息 支持集群发送 +* update 优化 数据权限 使用预扫描mapper注解提升代码性能 +* update 优化 数据加密 使用预扫描实体类提升代码性能(感谢 老马) +* update 优化 Async 针对虚拟线程配置 与其他注意事项注释 +* update 优化 框架整体sql提高查询性能 +* update 优化 将p6spy配置文件统一放置到 common-mybatis 插件包内 +* update 优化 使用翻译注解简化用户查询 调整用户查询逻辑 + + +### 新增功能 + +* add 新增 SMS异常处理器(感谢 AprilWind) +* add 新增 在线设备管理(个人中心)(感谢 AprilWind) +* add 新增 岗位编码与部门编码 并将岗位放到部门下(感谢 秋辞未寒) +* add 新增 分布式锁Lock4j异常拦截(感谢 AprilWind) +* add 新增 BaseMapperPlus提供一组可选是否抛出异常的selectVoOne方法(感谢 秋辞未寒) +* add 新增 用户、部门、角色、岗位 下拉选接口与代码实现优化 +* add 新增 JustAuth 整合 TopIam 单点登录(感谢 马铃薯头) +* add 新增 StringUtils.isVirtual 方法 +* add 新增 正则工具类 字符串提取 字符串校验 + +### 问题修复 + +* fix 修复 isLogin 方法抛异常无法正常返回值问题 +* fix 修复 spring路径规则 导致 actuator 被特殊方式访问问题 +* fix 修复token无效时关闭ws(感谢 AprilWind) +* fix 修复 oss未使用租户 拼接租户id null问题 +* fix 修复 用户昵称修改后未清除对应缓存问题 +* fix 修复 文件上传图片预览问题 +* fix 修复 三方账号可以被同一个用户多次绑定问题 +* fix 修复 兼容redis5.0出现的问题 +* fix 修复 字典键值可重复配置问题 +* fix 修复 部分浏览器无法获取加密响应头问题 +* fix 修复 用户未设置部门 登录报错问题 +* fix 修复 全局异常处理器 空指针null问题 +* fix 修复 excel 表达式字典 下拉框导出格式错误 +* fix 修复 InjectionMetaObjectHandler 已存在数据依旧会获取用户信息报异常问题 +* fix 修复 关闭租户功能 三方登录报错问题 +* fix 修复 部门树排序问题 +* fix 修复 CryptoFilter 代码逻辑问题 + +### 前端改动 + +* update 升级 element vite 版本 最低nodejs版本提升到18.18.0 +* update 优化 更改客户端状态接口 使用clientId传参 +* update 优化 ws开关改为常开(vite5修复了崩溃bug) +* update 优化 移除cjs +* update 优化 对Volar支持 +* update 优化 富文本组件,修复两个组件上传图片位置错乱问题 +* update 优化 request请求类判断请求头方式 +* update 优化 密码校验策略增加非法字符限制 +* update 优化 支持全局开启或关闭接口加密功能 +* update 优化 暗黑模式,增加vxe的暗黑模式 +* update 优化 首页打开topNav不展开菜单问题 +* update 优化 el-select 与 el-input 全局样式 +* update 优化 跟密码相关的默认前端关闭防重功能 +* add 新增 社交登录整合 TopIam +* add 新增 图片上传组件增加压缩功能支持,可自行开关 +* add 新增 vxe-table依赖支持 +* add 新增 全局用户选择组件 +* add 新增 工作流相关页面与组件 +* add 新增 使用bpmnjs流程预览 +* add 新增 在线登录设备管理(感谢 AprilWind) +* add 新增 用户选择角色时 可搜索功能(感谢 追梦稻草人Li) +* fix 修复 登录失效,重新登录丢失参数问题(感谢 爱宇阳) +* fix 修复 websocket 非index页面刷新无法重连问题 +* fix 修复 全局属性找不到的问题(感谢 ahaos) +* fix 修复 vue 类型识别问题 +* fix 修复 富文本编辑器 单页面多实例图片混乱问题 +* fix 修复 i18n无感刷新问题 +* fix 修复 文件预览大写后缀不展示的问题(感谢 北桥) +* fix 修复 面板因为min width原因收缩不全 +* fix 修复 移动端下 无法展开菜单问题 +* fix 修复 菜单搜索下方出现白色区域 +* fix 修复 el-tag标签类型不一致问题 +* fix 修复 角色必填*号 + +### 微服务修改 + +* update springcloud 2022.0.4 => 2023.0.2 +* update springcloud-alibaba 2022.0.0.0 => 2023.0.1.0 +* update dubbo 3.2.7 => 3.2.14 +* update easy-es 2.0.0-beta4 => 2.0.0 正式版 +* update nacos 2.2.1 => 2.3.2 默认开启nacos服务端授权认证 (感谢 OldDriver9527) +* update rocketmq 4.9.4 => 5.2.0 docker镜像升级 +* update kafka 3.2.0 => 3.6.2 docker镜像升级 +* update rabbitmq 3.10.6 => 3.13.3 docker镜像升级 +* update sentinel 1.8.6 => 1.8.8 +* update skywalking 9.3.0 => 9.7.0 +* update skywalking-agent 8.16.0 => 9.2.0 +* update 优化 dubbo 使用 redis 作为元数据中心管理 支持过期时间 避免过期数据堆积 解放nacos存储空间 +* update 优化 调整配置文件语法 +* update 优化 使用spring工具自定义dubbo ip获取方法(针对多网卡ip获取不正确问题) +* update 优化 common-dubbo 删除无用依赖 +* update 优化 去除重复的扫描器 @EnableDubbo 会自行扫描包 +* update 优化 加密组件 mp依赖改为可选 +* update 优化 mybatis依赖设置为可选依赖 避免出现不应该注入的情况 +* fix 修复 sentinel-dashboard的pom引入logaback冲突问题 +* fix 修复 nacos 不兼容 logback 1.4 新版本问题 +* fix 修复 开启数据库加密 auth服务报错问题 +* fix 修复 gateway sentinel 限流报错问题(临时方案) https://github.com/alibaba/Sentinel/issues/3298 + + +## v2.1.2 - 2023-12-22 + +### 依赖升级 + +* update springboot 3.1.5 => 3.1.7 +* update springboot 2.7.17 => 2.7.18(扩展服务升级到boot2最终版本) +* update mybatis-boot 3.0.2 => 3.0.3 优化依赖传递 +* update powerjob 4.3.3 => 4.3.6 +* update easyexcel 3.3.2 => 3.3.3 +* update transmittable-thread-local 2.14.2 => 2.14.4 +* update justauth 1.16.5 => 1.16.6 +* update redisson 3.24.1 => 3.24.3 修复订阅重启连接超时问题 +* update easy-es 1.1.1 => 2.0.0-beta4 + +### 功能更新 + +* update 优化 oss 远程调用 支持降级处理 +* update 优化 丰富RedisUtils对List Set类型的操作 +* update 优化 为 admin 模块 单独增加ratelimiter模块 +* update 优化 验证码接口 增加限流配置 +* update 优化 excel合并注解会根据第一合并列的结果来决定后续的列合并 (感谢 Simple) +* update 优化 SocialUtils 代码 +* update 优化 删除无用异常类 +* update 优化 补全三方登录校验国际化 +* update 优化 sms组件 预留自动配置类 +* update 更新 关于数据库的说明 +* update 优化 sms组件 预留自动配置类 +* update 优化 将 OSS配置 改为全局模式 降低使用难度 保留sql便于用户自行扩展(常规项目用不上配置分多租户) +* update 优化 细化oss配置管理权限控制 +* update 优化 开启 redisson 脚本缓存 减少网络传输 +* update 优化 删除 hikaricp 官方不推荐使用的配置 jdbc4 协议自带校验方法 +* update 优化 减少 PlusSaTokenDao 不必要的查询优化性能 +* update 优化 更新用户异常提示 使用登录账号 +* update 优化 使用登录用户判断是否登录 提高效率 +* update 优化 重构 LoginHelper 将本地存储代码操作封装 +* update 优化 getTenantId 判断是否开启多租户 +* update 优化 Dockerfile 使用shell模式 支持环境变量传入jvm参数 +* update 优化 WebSocketUtils 连接关闭改为警告 +* update 优化 excel多sheet页导出 (感谢 May) +* update 优化 删除无用接口实现 +* update 优化 jvm参数调整 全面启用zgc +* update 优化 使用动态租户重构业务对租户的逻辑 +* update 优化 TenantHelper 动态租户支持函数式方法 +* update 优化 支持多租户绑定相同的三方登录 +* update 优化 更新用户登录信息方法忽略数据权限 +* update 优化 补全三方绑定时间字段 删除无用excel注解 +* update 优化 将登录记录抽取到监听器统一处理 +* update 优化 登录消息推送异常拦截(未启动resource也不耽误用) +* update 优化 租户插件 ignoreTable 方法支持动态租户 + +### 新增功能 + +* add 新增 RedisUtils.setObjectIfExists 如果存在则设置方法 +* add 新增 丰富RedisUtils对List Set类型的操作 +* add 新增 翻译组件 用户昵称翻译实现 +* add 新增 响应加密功能 支持注解强制加密接口数据 (感谢 MichelleChung) +* add 新增 common-ratelimiter 限流模块 用于自定义业务限流 与 sentinel不冲突 + +### 问题修复 + +* fix 修复 stream-mq 测试服务未导入租户模块 导致鉴权不一致问题 +* fix 修复 使用zgc导致seata报错(未知原因 将alibaba组件全还原) +* fix 修复 sentinel 镜像添加了多余接口参数 +* fix 修复 注册接口获取开关未在租户范围内问题 +* fix 修复 seata-server logback版本冲突问题 +* fix 修复 selectDictTypeByType 查询方法错误问题 +* fix 修复 一些不正常类无法加载报错问题 +* fix 修复 powerjob sql脚本针对其他数据库转义符问题 (感谢 branches) +* fix 修复 MybatisSystemException 空指针问题 +* fix 修复 excel合并注解会根据第一合并列的结果来决定后续的列合并 +* fix 修复 session 多账号共用覆盖问题 改为 tokenSession 独立存储 +* fix 修复 token 失效后 登录获取用户null问题 +* fix 修复 powerjob部署方案 高版本nginx不生效问题 +* fix 修复 OssFactory 并发多创建实例问题 +* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 + +### 前端改动 + +* update 优化 用户头像 img 变量无确定类型问题 +* update 优化 细化oss配置管理权限控制 +* update 优化 明确打包命令 +* update 优化 代码中存在的警告 +* update 优化 前端白名单页面放行逻辑 +* update 优化 页面关于权限标识符说明 +* fix 修复 append-to-body 编写错误 (感谢 Ai3_刘小龙) +* fix 关闭动态路由tab页签时不清理组件缓存 (感谢 NickLuo) +* fix 删除重复环境变量ElUploadInstance (感谢 棉花) +* fix 修复 在线用户 强推按钮点击取消控制台警告问题 +* fix 修复 字典使用 default 样式报警告问题 + +## v1.8.2 - 2023-11-27 + +### 依赖升级 + +* update springboot 2.7.16 => 2.7.18 升级到2.X最终版本(官方停更) +* update mybatis-plus 3.5.3.2 => 3.5.4 +* update satoken 1.36.0 => 1.37.0 +* update hutool 5.8.20 => 5.8.22 +* update aws-java-sdk-s3 1.12.400 => 1.12.540 +* update vue-quill 1.1.0 => 1.2.0 + +### 功能更新 + +* update 优化 页面关于权限标识符说明 +* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 +* update 优化 部门数据权限使用默认兜底方案 +* update 优化 补全代码生成 columnList 接口参数注解缺失 +* update 优化 AddressUtils 兼容linux系统本地ip +* update 优化 操作日志 部门信息完善 +* update 优化 数据权限 减少二次校验查询 +* update 修改 获取用户token和后端不一致的问题 (感谢 bestrevens) +* update 优化 vue3 版本用户初始密码从字典查询 +* update 优化 富文本Editor组件检验图片格式 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 全局数据存储用户编号 +* update 优化 菜单管理类型为按钮状态可选 + +### 问题修复 + +* fix 修复 OssFactory 并发多创建实例问题 +* fix 修复 demo页面字段编写错误 +* fix 修复 数据权限优化后 update delete 报null问题 +* fix 修复 五级路由缓存无效问题 +* fix 修复 oss服务无法连接 +* fix 修复 内链iframe没有传递参数问题 +* fix 修复 外链带端口出现的异常 +* fix 修复 普通角色编辑使用内置管理员code越权问题 +* fix 修复 seata XA模式缺失druid工具问题 +* fix 修复 代码生成 是否必填与数据库不匹配问题 +* fix 修复 富文本上传接口地址错误 +* fix 修复 HeaderSearch组件跳转query参数丢失问题 +* fix 修复树结构代码生成新增方法赋值错误 + +## v2.1.1 - 2023-11-14 + +### 依赖升级 + +* update springboot 3.1.3 => 3.1.5 +* update springboot 2.7.14 => 2.7.17(扩展服务) +* update springboot-admin 3.1.5 => 3.1.7 +* update satoken 1.35.0.RC => 1.37.0 +* update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 +* update dynamic-ds 4.1.3 => 4.2.0 +* update bouncycastle 1.72 => 1.76 +* update poi 5.2.3 => 5.2.4 +* update redisson 3.23.2 => 3.24.1 +* update hutool 5.8.20 => 5.8.22 +* update lombok 1.18.26 => 1.18.30(适配支持jdk21) +* update vue-quill 1.1.0 => 1.2.0 +* update seata 1.7.0 => 1.7.1 +* update dubbo 3.2.5 => 3.2.7 + +### 功能更新 + +* update 优化 移除不合理的方法 携带附件的邮件建议直接集成插件发送 +* update 优化 携带 clientid 跨域问题 +* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 +* update 优化 适配 maxkey 新版本 +* update 优化 @Sensitive脱敏增加角色和权限校验 (感谢 盘古给你一斧) +* update 优化 部门数据权限使用默认兜底方案 +* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) +* update 优化 登录策略代码优化(感谢 David Wei) +* update 优化 补全代码生成 columnList 接口参数注解缺失 +* update 优化 nginx 配置支持 websocket +* update 优化 notice 新增通知公告发送ws推送 +* update 优化 websocket 模块减少日志输出 增加登录推送 +* update 优化 重构登录策略增加扩展性降低复杂度 +* update 优化 addressUtils 兼容linux系统本地ip +* update 优化 补全操作日志部门数据 +* update 优化 支持数据库操作在非web环境下切换租户 +* update 优化 排除powerjob无用的依赖 减少打包30M体积 +* update 优化 删除 satoken yml 时间配置 此功能已迁移至客户端管理 +* update 优化 redis 集群模式注释说明 +* update 优化 客户端禁用限制 +* update 优化 登录日志, 在线用户展示信息(增加 客户端, 设备类型)(感谢 MichelleChung) +* update 优化 限制框架中的fastjson版本 +* update 优化 数据权限 减少二次校验查询 +* update 优化 将部门id存入token避免过度查询redis +* update 优化 增加租户ID为Null错误日志 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) +* update 优化 为 sys_grant_type 字典增加样式 +* update 优化 代码生成 页面输入框样式 +* update 优化 全业务分页查询增加排序规则避免因where条件导致乱序问题 +* update 优化 登录接口租户id被强制校验问题 +* update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge) +* update 优化 将graalvm镜像更新为openjdk镜像 需要的人自行切换即可 +* update 优化 部分使用者乱设权限导致无法获取用户信息 增加权限提示 +* update 优化 表格列的显示与隐藏小组件(感谢 bestrevens) +* update 优化 增加表单构建不能使用说明 +* update 优化 富文本Editor组件检验图片格式 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 菜单管理类型为按钮状态可选 +* update 优化 用户初始密码从参数配置查询 +* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) +* update 优化 字典标签支持数组和多标签(感谢 抓蛙师) + +### 新增功能 + +* add 新增 websocket 群发功能 +* add 新增 前端接入websocket接收消息(感谢 三个三) +* add 增加 rpc消息推送接口与实现 +* add 新增 CacheController Redis 缓存监控接口(感谢 Michelle.Chung) + +### 问题修复 + +* fix 修复 因扩展服务不支持boot3导致无法引入common-web包 日志写出不生效问题 +* fix 修复 seata XA模式缺失druid工具问题 +* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 +* fix 修复 租户id为null 无法匹配字符串导致的嵌套key问题 +* fix 修复 部门管理orderNum排序失效问题 +* fix 修复 外链带端口出现的异常 +* fix 修复 普通角色编辑使用内置管理员code越权问题 +* fix 修复 代码生成 是否必填与数据库不匹配问题 +* fix 修复 用户注册接口校验用户名不区分租户问题 +* fix 修复 错误增加组导致的校验不生效问题 +* fix 修复 新增校验主键id问题 +* fix 修复 powerjob 使用 nginx 部署无法访问的问题 +* fix 修复 SysUserMapper 内标签使用错误(不影响使用) +* fix 修复 新增或编辑 SysOssConfig 数据后 推送到 redis 数据不完整 +* fix 修复 树表生成查询变量使用错误 +* fix 修复 个人信息修改密码接口隐藏新旧密码参数明文(感谢 bleachtred) +* fix 修复 删除字段后 * update sql 未更新问题 +* fix 修复 三方登录支付宝source与实际支付宝业务code不匹配问题 +* fix 修复 五级路由缓存无效问题 +* fix 修复 内链iframe没有传递参数问题 +* fix 修复 绑定第三方帐号参数“wechar”更正为“wechat” (感谢 scmiot) +* fix 修复 用户注册缺失 clientid 问题 +* fix 修复 HeaderSearch组件跳转query参数丢失问题 +* fix 修复 自定义字典样式不生效的问题 +* fix 修复 login 页面 loading 未关闭问题 + +## v1.8.1 - 2023-09-26 + +### 依赖升级 + +* update springboot 2.7.14 => 2.7.16 +* update springboot-admin 2.7.10 => 2.7.11 +* update satoken 1.35.0.RC => 1.36.0 +* update lombok 1.18.26 =. 1.18.30 +* update springboot 2.7.13 => 2.7.14 +* update mybatis-plus 3.5.3.1 => 3.5.3.2 +* update easyexcel 3.3.1 => 3.3.2 +* update hutool 5.8.18 => 5.8.20 +* update dubbo 3.1.8 => 3.1.11 + +### 功能更新 + +* update 优化 代码生成 vo实体类序列化 +* update 优化 excel 导出不必要的请求头 +* update 优化 字典标签支持传分隔符分隔的字符串和数组 +* update 优化 控制台debuger位置错误问题 +* update 优化 TopNav 菜单样式 +* update 优化 注册用户异常报错不正确问题 +* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 +* update 优化 用户管理 只查询未禁用的部门角色岗位数据 +* update 优化 岗位如果绑定了用户则不允许禁用 +* update 优化 部门与角色如果绑定了用户则不允许禁用 +* update 优化 加密实现 使用 EncryptUtils 统一处理 +* update 优化 适配 mysql 8.0.34 升级连接机制 +* update 优化 excel导出字典转下拉框 无需标记index自动处理 +* update 优化 excel 导出字典默认转为下拉框 +* update 删除一些跟swagger有关的字眼 避免误解 +* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 +* update 优化 xxljob 端口随着主应用端口飘逸 避免集群冲突 + +### 问题修复 + +* fix 修复 自定义字典样式不生效的问题 +* fix 修复 新建用户可能会存在的越权行为 +* fix 修复 字典缓存删除方法参数错误问题 +* fix 修复 修复树模板父级编码变量错误 +* fix 修复 demo 模块缺少 security 依赖问题 +* fix 修复 升级 mp 版本导致的问题 +* fix 修复 加密模块数据转换异常问题 +* fix 修复 动态设置 token 有效期不生效问题 +* fix 修复 token 过期登出无法清理在线用户问题 + + +## v2.1.0 - 2023-09-06 + +# 开发历程 + +* 2023年5月 开始 2.1.0 计划 历经1个月的设计与讨论 +* 2023年6月 开始着手开发 历经2个多月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 +* 2023年8月 开始公测 历经将近1个月的公测与修复工作(期间成功支持多位使用者生产使用) +* 2023年9月初 正式发布(经过多个小伙伴的生产实践 已基本可尝试生产使用) +> 关于1.X的说明 由于SpringBoot2.X与vue2.X均在11月底停止维护
+> 故而咱们vue版本1.X也无法再继续更新
+> 介于1.X的用户量特别庞大 功能也非常的稳定
+> 计划于11月底同Boot2.X一同停止更新但还会持续维护修复bug(修复的形式为直接提交到1.X分支停止发版)
+ +# 视频介绍 + +为了更好的让大家了解 2.1.0 作者录制了相关的视频 供大家快速了解上手 + +* 2.1.0 新功能与变更介绍: https://www.bilibili.com/video/BV1fj411y71X/ + +# 更新日志 + +### 重大更新 + +* [重大更新] 优化 相关代码 完成代码生成多数据源统一存储(感谢 WangBQ) +* [不兼容更新] 移除 原短信功能 集成更强大的 sms4j 短信工具包(感谢 友杰) +* [不兼容更新] 对接 powerjob 实现分布式任务调度 删除原有 xxljob 原因为社区不更新功能太少只支持mysql(感谢 yhan219) +* [重大更新] 新增 三方授权绑定登录功能 基于 justauth 支持市面上大部分三方登录(感谢 三个三) +* [不兼容更新] 新增 客户端授权功能 不需要更改任何代码即可完成多端动态对接(感谢 Michelle.Chung) +* [重大更新] 新增 前后端接口请求加密传输 基于AES+RSA动态高强度加密(感谢 wdhcr) +* [重大更新] 新增 三方授权登录 对接 maxkey 单点登录 +* [不兼容更新] 优化 redis序列化配置 更改为通用格式(升级需清除redis所有数据) +* [重大更新] 新增 通过 sharding-proxy 实现分库分表(感谢 rice666 !pr94) + +### 依赖升级 + +* update springboot 3.0.7 => 3.1.3 +* update springboot-admin 3.1.3 => 3.1.5 +* update springcloud 2022.0.2 => 2022.0.4 +* update springcloud-alibaba 2022.0.0.0-RC2 => 2022.0.0.0 +* update springdoc 2.1.0 => 2.2.0 +* update spring-mybatis 3.0.1 => 3.0.2 +* update mybatis-plus 3.5.3.1 => 3.5.3.2 +* update easyexcel 3.2.1 => 3.3.2 +* update mapstruct-plus 1.2.3 => 1.3.5 解决修改实体类 idea不编译问题 +* update satoken 1.34.0 => 1.35.0.RC 优化过期配置 支持多端token自定义有效期 +* update dynamic-ds 3.6.1 => 4.1.3 支持 SpringBoot3 +* update sms4j 2.2.0 +* update hutool 5.8.18 => 5.8.20 +* update redisson 3.20.1 => 3.23.4 +* update lock4j 2.2.4 => 2.2.5 +* update aws-java-sdk-s3 1.12.400 => 1.12.540 +* update maven-surefire-plugin 3.0.0 => 3.1.2 +* update seata 1.6.1 => 1.7.0 +* update sharding-proxy 5.4.0 +* update dubbo 3.2.2 => 3.2.5 +* update skywalking-toolkit 8.14.0 => 8.16.0 +* update logstash 7.2 => 7.4 + +### 功能更新 + +* update 优化 与 vue 版本同步代码结构 +* update 优化 放行springboot默认error接口 +* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 +* update 调整 gateway 访问日志输出等级 +* update 优化 修改角色如果未绑定用户则无需清理 +* update 优化 用户昵称非空校验 +* update 优化 在全局异常拦截器中增加两类异常处理 +* update 优化 StreamUtils 方法过滤null值 +* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 +* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 +* update 修改代码生成模版,日期范围统一采用addDateRange方法 +* update 优化 树表生成前端缺少 children 字段 +* update 优化 ruoyi-resource 服务添加 websocket 模块 +* update 优化 放行验证码接口、第三方登录请求与回调 +* update 更新 GlobalLogFilter#filter 根据请求头判断加密参数(感谢 Michelle.Chung !pr100) +* update 优化 SaReactorFilter 过滤器判断 token 客户端 id 是否有效(感谢 Michelle.Chung !pr101) +* update 删除一些跟swagger有关的字眼 避免误解 +* update 优化 兼容 clientid 通过 param 传输 +* update 优化 excel导出字典转下拉框 无需标记index自动处理(感谢 一夏coco) +* update 优化 增加线程池销毁配置 +* update 优化 屏蔽 powerjob 无用的心跳日志 +* update 优化 适配 mysql 8.0.34 升级连接机制 +* update 优化 加密实现 使用 EncryptUtils 统一处理 +* update 优化 删除字典无用状态字段(基本用不上 禁用后还会导致回显问题) +* update 优化 部门与角色如果绑定了用户则不允许禁用 +* update 优化 岗位如果绑定了用户则不允许禁用 +* update 优化 用户管理 只查询未禁用的部门角色岗位数据 +* update 优化 登录用户增加昵称返回 +* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 +* update 优化 将部门管理 负责人选项改为下拉框选择 +* update 优化 登录用户缓存 去除冗余统一存储 +* update 优化 注册用户异常报错不正确问题 +* update 优化 放宽菜单权限 角色关联菜单无需管理员 + +### 新增功能 + +* add 增加 RedisUtils 批量删除 hash key 方法 +* add 新增 Oss 上传 File 文件方法(感谢 jenn) +* add 增加 excel 导出下拉框功能 +* add 新增 RedisUtils.setObjectIfAbsent 如果不存在则设置方法 + +### 修复问题 + +* fix 修复 用户重名登录报错问题 +* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题 +* fix 修复 用户篡改管理员角色标识符越权问题 +* fix 修复 文件管理 创建人未翻译问题 +* fix 修复 monitor 监控无法展示数据问题 +* fix 修复 更换 satoken dubbo 插件导致包名不一致问题 +* fix 修复 字典缓存注解使用错误问题 +* fix 修复 接口文档未拼接服务路径问题 +* fix 修复 excel 枚举反向解析失败问题 +* fix 修复 查询部门下拉树未过滤数据权限问题 +* fix 修复 CacheName 缓存key存储错误问题 +* fix 修复 oss 列表 用户名回显错误 +* fix 修复 不同vo相同字段mybatis会自动赋值问题 +* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题 +* fix 修复 新增角色使用内置管理员标识符问题 +* fix 修复 token 过期登出无法清理在线用户问题 +* fix 修复 动态设置 token 有效期不生效问题 +* fix 修复 加密模块数据转换异常问题 +* fix 修复 dubbo 更改内部序列化方式 导致异常类无法反序列化问题 +* fix 修复 客户端编辑时授权类型变更未保存的问题 +* fix 修正 缺失 SysClientVoConvert 导致转换异常(感谢 Michelle.Chung) +* fix 修正 auth 模块缺失引用导致解密异常(感谢 Michelle.Chung) +* fix 修复 demo 与 stream-mq 模块缺少 security 依赖问题 +* fix 修复 导入用户数据 变量使用错误问题 +* fix 修复 验证码开关未动态刷新问题 +* fix 修复 自动填充数据 loginUser 为 null(感谢 charles !pr108) +* fix 修复 修复树模板父级编码变量错误 +* fix 修复 部署部分系统出现乱码问题 +* fix 修复 一级菜单无法显示问题 +* fix 修复 新建用户可能会存在的越权行为 +* fix 修复 代码生成页面参数缺少逗号问题 + +### 移除功能 + +* remove 移除原有短信功能(建议使用sms4j) +* remove 移除xxljob功能(建议使用powerjob) + + +## v1.8.0 - 2023-07-11 + +### 重大更新 + +* [重大更新] 新增 sms4j 短信融合框架整合(支持数十种短信厂商接入、发送限制、负载均衡等功能) +* [不兼容更新] 移除 原短信功能(建议使用新 sms4j 功能) +* [重要迁移] 迁移 vue3 前端到主仓库统一维护 + +### 依赖升级 + +* update springboot 2.7.11 => 2.7.13 +* update spring-cloud 2021.0.7 => 2021.0.8 +* update satoken 1.34.0 => 1.35.0.RC +* update easyexcel 3.2.1 => 3.3.1 +* update sms4j 2.2.0 +* update element 2.15.12 => 2.15.13 + +### 功能更新 + +* update 优化 StreamUtils 方法过滤null值 +* update 优化 页签在Firefox浏览器被遮挡 +* update 优化 在全局异常拦截器中增加两类异常处理 +* update 优化 下载zip方法增加遮罩层(感谢@梁剑锋) +* update 优化 用户昵称非空校验 +* update 优化 修改角色如果未绑定用户则无需清理 +* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 +* update 优化 satoken 过期配置 支持多端token自定义有效期 +* update 优化 加密注解注释错误 +* update 优化 切换 maven 仓库到华为云(aliyun 不可用) +* update 优化 excel 导出存在合并项时在初始化类时进行数据的处理避免多次调用(感谢@yueye) +* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 +* update 补全 SysLogininforMapper.xml 缺失字段 +* update 优化 demo 模块 路径适配统一前端 +* update 调整 gateway 访问日志输出等级 + +### 新增功能 + +* add 新增 RedisUtils.setObjectIfAbsent 不存在则设置方法 +* add 新增 Excel 导出附带有下拉框(字典自动导出为下拉框) 可自定义多级下拉框(感谢@Emil.Zhang) +* add 新增 OssClient File 文件上传方法 +* add 增加 RedisUtils 批量删除 hash key 方法 + +### 问题修复 + +* fix 修复 sa-token.check-same-token 开关对网关鉴权无效问题 +* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题 +* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题 +* fix 修复 excel 枚举反向解析失败问题 +* fix 修复 字典缓存注解使用错误问题 +* fix 修复 新增角色使用内置管理员标识符问题 +* fix 修复 缓存监控图表 支持跟随屏幕大小自适应调整(感谢@抓蛙师) +* fix 修复 防重组件 错删注解问题 +* fix 修复 CacheName 缓存key存储错误问题 +* fix 修复 字典缓存注解使用错误问题 +* fix 修复 用户篡改管理员角色标识符越权问题 +* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 +* fix 修复 OssClient 切换服务 实例不正确问题 +* fix 修复 element ui 因版本而未被工具识别问题(感谢@梁剑锋) +* fix 修复 admin监控 切换tab页需要重复登录问题 +* fix 修复 个人中心tab栏关闭页面内容压缩问题 + +## v2.0.0 - 2023-06-15 + +**重点说明: 由于 SpringCloudAlibaba 一直未发布正式版 导致系统底层组件可能存在些许问题 故而不建议生产使用 框架也将直接开启后续 2.1.0 的开发工作** + +### 重大更新 + +* [不兼容升级] java 版本从 jdk 8 升级到 jdk 17 且需要使用 graalvm 运行(暂时未解决原生jdk存在的问题) +* [不兼容升级] springboot 升级 3.0 版本 +* [不兼容升级] 重构 项目模块结构 采用插件化结构 易扩展易解耦 +* [不兼容升级] com.sun.mail 更改为 jakarta.mail 修改最新写法 +* [不兼容升级] javax.servlet 替换为 jakarta.servlet 更新所有代码 +* [简化性升级] 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) +* [数据库改动] 更新 create_by update_by 字段类型 (保存用户id) +* [数据库改动] 新增 create_dept 字段 (保存创建部门id) +* [不兼容更新] system 模块 所有实体类均使用 bo|vo 规范化 +* [重大更新] 新增 多租户功能设计 整体框架代码结构与数据库更改 +* [重大更新] 新增 mapstruct-plus 替换 BeanUtil 与 BeanCopyUtils 工具 +* [不兼容更新] 重构 登录注解接口与cloud版本统一接口路径 +* [不兼容更新] 重构 BaseMapperPlus接口 去除 `@param Mapper` 泛型 +* [不兼容更新] 移除 vue2 前端工程 全面启用 vue3 +* [重大更新] 新增 vue3 + TS 版本前端(独立仓库后续与Cloud版本共用) +* [重大更新] 增加 websocket 模块 支持token鉴权 支持分布式集群消息同步 +* [重大更新] 框架文档全面翻新 https://plus-doc.dromara.org +* [不兼容更新] 代码生成 支持代码生成多数据源统一存储(主库存储子库的表 无需子库加gen表了) +* [不兼容更新] 重构 将系统内置配置放置到common包内独立加载 不允许用户随意修改 + +### 依赖升级 + +* update java 1.8 => 17 +* update springboot 2.7.7 => 3.0.7 +* update springcloud 2021.0.6 => 2022.0.2 +* update springcloud-alibaba 2022.0.0.0-RC2 +* update springboot-admin 2.7.10 => 3.0.4 +* update springdoc 1.6.14 => 2.1.0 +* udpate dubbo 3.1.8 => 3.2.2 +* update lock4j 2.2.3 => 2.2.4 +* update dynamic-ds 3.5.2 => 3.6.1 +* update easyexcel 3.1.5 => 3.2.1 +* update hutool 5.8.11 => 5.8.18 +* update redisson 3.19.2 => 3.20.1 +* update lombok 1.18.24 => 1.18.26 +* update spring-boot.mybatis 2.2.2 => 3.0.1 +* update mapstruct-plus 1.2.3 +* update maven-compiler-plugin 3.10.1 => 3.11.0 +* update maven-surefire-plugin 3.0.0-M7 => 3.0.0 +* update docker mysql 8.0.31 => 8.0.33 +* update docker nginx 1.22.1 => 1.32.4 +* update docker redis 6.2.7 => 6.2.12 +* update docker minio RELEASE.2023-04-13T03-08-07Z + +### 功能更新 + +* update 适配 AsyncConfig 替换过期继承类改为实现 AsyncConfigurer 接口 +* update 适配 redis 新版本配置文件写法 +* update 适配 获取redis 监控参数接口 替换过期语法 +* update 适配 sa-token 替换新依赖 sa-token-spring-boot3-starter +* update 适配 springboot-admin 改为最新 spring-security 写法 +* update 适配 springdoc 新版本配置方式 +* update 适配 ServletUtils 更换继承 JakartaServletUtil +* update 适配 新序列化注解 +* update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套) +* update 优化 调整 system entity 实体与 controller 包结构 +* update 优化 实体类中校验注解的提示信息 +* update 优化 使用 jdk17 语法优化代码 +* update 优化 所有 properties 文件改为注解启用 +* update 更新 docker 基础镜像 graalvm java17 +* update 优化 用户头像 改为存储 ossId 使用转换模块转为 url 展示 +* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 +* update 优化 登录流程代码注释 +* update 优化 将框架内的swagger命名更改为springdoc命名避免误解 + +### 新增功能 + +* add 新增 flatten-maven-plugin 插件统一版本号管理 +* add 新增 ip2region 实现离线IP地址定位库 + +### 移除功能 + +* remove 移除 BeanCopyUtils 工具类 与 JDK17 不兼容 +* remove 移除 devtools 依赖 并不好用(建议直接用idea自带的热更) +* remove 移除 vue2 前端工程 统一使用 vue3 工程 + +### 修复功能 + +* fix 修复 根据 seata 官方提交记录 临时修复 seata 关于jdk17代理的bug +* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 +* fix 修复 common-core 包使用aop注解 但未添加aop实现类导致单独使用报错问题 + +## v1.7.0 - 2023-05-10 + +### 依赖升级 + +* update springboot 2.7.9 => 2.7.11 修复 DoS 漏洞 修复CVE漏洞 +* update springcloud 2021.0.6 => 2021.0.7 +* update springcloud-alibaba 2021.0.4.0 => 2021.0.5.0 +* update dubbo 3.1.7 => 3.1.10 +* update nacos 2.2.0 => 2.2.1 +* update xxljob 2.3.1 => 2.4.0 +* update minio 升级至最新版 避免低版本信息泄漏问题 +* update hutool 5.8.15 => 5.8.18 +* update redisson 3.20.0 => 3.20.1 +* update lombok 1.18.24 => 1.18.26 + +### 功能更新 + +* update 优化 更改 sys_oss_config 表注释 避免误解 +* update 优化 sys_logininfor 丰富多种信息 +* update 项目正式入驻 dromara 开源社区 更改项目地址 +* update 全新 logo 全新背景图(设计师打造) +* update 优化 代码生成模块的数据同步功能 +* update 修改多团队开发插件,支持多网卡 +* update 修改controller中校验直接返回R.fail +* update 优化 角色sort值一样的排序问题 +* update 更换默认用户头像 +* update 优化 WebFluxUtils.getOriginalRequestUrl 方法获取空路径报错问题 +* update 去除same-token有限期配置,使用默认配置(一天) +* update 优化固定头部页签滚动条被隐藏的问题 +* update delete vue-multiselect style +* update 按代码规范补全重写注解 +* update 优化 极端情况获取LoginUser可能为null问题 +* update 优化 更改系统所有服务日志配置文件命名为 logback-plus.xml 避免与其他框架默认配置冲突 +* update 优化 skywalking-agent 探针日志等级调整为 WARN 减少无用日志输出 +* update 优化 加解密模块 将null判断下推防止任何可能的null出现 +* update 优化 在线用户token获取方式 +* update 优化 用户更改角色 踢掉角色相关所有在线用户 + +### 新功能 + +* add 集成 ip2region 实现离线IP地址定位库 +* add 增加 邮箱验证码发送接口 +* add 增加 邮箱登陆接口 +* add 增加 EncryptUtils 加解密安全工具类 可以处理base64,aes,sm4,sm2,rsa,md5,sha256加解密 +* add 增加 EncryptUtils 类中增加国密sm3的不可逆加密算法 +* add 新增 忽略数据权限写法 防止异常不执行关闭问题 + +### 问题修复 + +* fix 修复 MybatisExceptionHandler 未自动装载问题 +* fix 修复 代码生成 点选按钮不生效问题 +* fix 修复 Nacos 服务 SpringBoot-admin 客户端功能失效问题 +* fix 修复 findInSet 在mysql下方法搜索非数字字段时 无引号报错问题 +* fix 修复 ruoyi-demo postgres 数据库用户名密码变量错误 +* fix 修复 oracle postgres 数据库日志表索引创建错误 +* fix 修复 无法注入 mailProperties 导致 resource 模块无法启动问题 +* fix 修复tab栏”关闭其他“异常的问题 +* fix 修复 加解密拦截器 对象属性为null问题 +* fix 修复 取消oss预览状态修改 图标变化不正常问题 +* fix 修复 nacos 新版本升级后 与 docker 基础镜像系统存在兼容性问题 + + +## v1.6.0 - 2023-03-14 + +### 重大更新 + +[重大更新] add 新增 通用翻译模块 `ruoyi-common-translation` 实现(部门名、字典、oss、用户名) +[重大更新] add 新增 数据加解密模块 `ruoyi-common-encrypt` + + +### 依赖升级 + +* update springboot 2.7.7 => 2.7.9 +* update springcloud 2021.0.5 => 2021.0.6 +* update easyexcel 3.1.5 => 3.2.1 +* update redisson 3.19.1 => 3.20.0 +* update springdoc 1.6.14 => 1.6.15 +* update hutool 5.8.12 => 5.8.15 (13与14有问题勿使用) +* update logstash-sdk 7.1.1 => 7.2 +* update aws-java-sdk-s3 1.12.373 => 1.12.400 +* update tencent-sms 3.1.660 => 3.1.687 +* update skywalking 8.9.1 => 9.3.0 +* update skywalking-agent 8.13.0 => 8.14.0 +* update dubbo 3.1.4 => 3.1.7 解决dubbo报一些无用警告问题 +* update element-ui 2.15.10 => 2.15.12 + +### 功能更新 + +* update 优化 修改 oss 配置页面开关说明 避免造成误解 +* update 优化 `gateway` 对接 `sentinel` 使用网关特定模式 +* update 优化 转移 `logback-common` 配置到 `common-web` 模块 `gateway` 单独处理 +* update 优化 调整连接池默认参数 +* update 优化 `zookeeper` 自带控制台占用 `8080` 端口 +* update 优化 `DictDataMapper` 注解标注过期 推荐使用 `@Translation` 注解 +* update 优化 获取菜单数据权限接口 删除无用角色属性与逻辑 +* update 优化 调整连接池最长生命周期 防止出现警告 +* update 优化 连接池增加 `keepaliveTime` 探活参数 +* update 优化 `DataPermissionHelper` 增加 `开启/关闭` 忽略数据权限功能 +* update 重构 `OssFactory` 加载方式 改为每次比对配置做实例更新 +* update 优化 更新角色后踢掉所有相关的登录用户 用户量过大会导致redis阻塞卡顿(应粉丝要求) +* update 优化 翻译组件 支持返回值泛型 支持多种类型数据翻译(例如: 根据主键翻译成对象) +* update 优化 `tagsView` 右选框,首页不应该存在关闭左侧选项 +* update 优化 `copyright 2023` +* update 优化 日志注解支持排除指定的请求参数 +* update 优化 业务校验优化代码 +* update 优化 日志管理使用索引提升查询性能 +* update 优化 框架时间检索使用时间默认值 `00:00:00 - 23:59:59` +* update 优化 oss 预览使用 `ImagePreview` 组件 +* update 优化 统一登录接口令牌key + + +### 新功能 + +* add 新增 数据加解密模块 测试案例 +* add 新增 `StringUtils` `splitTo` 与 `splitList` 方法 优化业务代码 + +### 问题修复 + +* fix 修复 vue3模板 删除功能书写错误 +* fix 修复 部分服务未开启日志存储 +* fix 修复 接口问题开关不生效问题 +* fix 修复 优化文件下载出现的异常 +* fix 修复 修改密码日志存储明文问题 +* fix 修复 代码生成 `postgreSQL` 查出多余的已删除字段 + +## v1.5.0 - 2023-01-13 + +### 重大更新 + +* [重大更新] 框架主体业务与代码生成器 完成 oracle postgres 多数据库类型支持(中间件不支持) +* [重大更新] 使用 spring 事件发布机制 重构登录日志与操作日志 支持多事件监听无入侵扩展 +* 例如: 可以增加一个监听者将日志上传至ES等存储 对原有逻辑无影响 + +### 依赖升级 + +* update springboot 2.7.6 => 2.7.7 +* update springboot-admin 2.7.7 => 2.7.10 +* update dubbo 3.1.3 => 3.1.4 +* update seata 1.5.2 => 1.6.1 适配升级 +* update nacos 2.1.2 => 2.2.0 适配升级 +* update mybatis-plus 3.5.2 => 3.5.3.1 +* update sa-token 1.33.0 => 1.34.0 +* update springdoc 1.6.13 => 1.6.14 +* update snakeyaml 1.32 => 1.33 +* update easyexcel 3.1.3 => 3.1.5 +* update redisson 3.18.0 => 3.19.1 +* update easy-es 1.1.0 => 1.1.1 +* update hutool 5.8.10 => 5.8.11 +* update aws-s3 1.12.349 => 1.12.373 +* update aliyun-sms 2.0.22 => 2.0.23 +* update tencent-sms 3.1.635 => 3.1.660 +* update echarts 4.9.0 => 5.4.0 + +### 功能更新 + +* update 优化 BaseMapperPlus 使用 MP V3.5.3 新工具类 Db 简化批处理操作实现 +* update 优化 demo服务 过滤健康检查 sql 打印 +* update 优化 代码生成与框架主体使用相同的主键生成器 全局统一避免问题 +* update 优化 系统登录 使用单表查询校验用户 避免多次join查询 +* update 优化 适配框架多数据库支持 完成 oracle postgres 数据库适配(放弃 sqlserver 适配 原因: 基础中间件均不支持) +* update 优化 删除主 sql 内无用数据 +* update 优化 删除 vue3 模板无用参数 +* update 优化 重构 ExcelUtil 全导出方法支持 OutputStream 流导出 不局限于 response +* update 优化 maven 地址切换回 aliyun 仓库 +* update 优化 springdoc 配置鉴权头写死问题 增加持久化鉴权头配置 +* update 优化 actuator 依赖整合到 common-web 模块 +* update 优化 验证码结果使用 spel 引擎自动计算 +* update 优化 数据权限处理器 变量命名错误 +* update 优化 去除 RedisUtils 无用继承 +* update 优化 弹窗内容过多展示不全问题 +* update 优化 删除 fuse 无效选项 maxPatternLength +* update 优化 minio 安装警告 使用新版本参数 +* update 优化 使用 spring 事件发布机制 重构登录日志与操作日志 +* update 优化 使用 spring 事件机制 重构 OssConfig 缓存更新 +* update 优化 单元格合并判断cellValue是否相等方法 +* update 优化 调整 gateway 拦截器执行顺序 优先处理 xss 过滤 然后进行缓存处理 + +### 新功能 + +* add 增加 GET 请求提交日期参数 默认格式化配置 +* add 增加 RedisUtils 检查缓存对象是否存在方法 +* add 增加 oracle postgres docker编排 +* add 新增 代码生成器适配 多数据库可切换生成代码 +* add 新增 oracle postgres 数据库框架sql脚本 +* add 增加 DataBaseHelper 数据库助手 用于适配多类型数据库 +* add 新增 BeanCopyUtils#mapToMap 方法 + +### 问题修复 + +* fix 修复 注册页面 验证码开关不生效问题 +* fix 修复 新版本 dubbo-filter-seata 插件内核与seata不一致问题(临时) +* fix 修复 根据 key 更新参数配置报 null 问题 +* fix 修复 用户注册 用户类型字段书写错误 +* fix 修复 代码生成图片/文件/单选时选择必填无法校验问题 +* fix 修复 修改参数键名时 未移除过期缓存配置 +* fix 修复 内网鉴权 Filter 优先级问题 导致 websocket 连接失败 +* fix 修复 gateway 流控规则生效但不显示问题 +* fix 修复 新版本 Redisson 存在与 boot 2.X 的兼容性问题 + +## v1.4.0 - 2022-12-01 + +### 重大更新 +* [重大更新] 新增 对接 skywalking 全功能(详细看下方新功能列表) +* [重大更新] 重构 ruoyi-nacos 使用官方依赖整合 解决一些问题 并升级 2.1.2 版本 +* [重大更新] 新增 oss 私有库功能(数据库结构改动 需执行升级sql) +* [重大更新] 优化 数据源连接池从 druid 切换到 hikari(原因看文档) +* [重大更新] 新增 对接 prometheus + grafana 全功能(详细看下方新功能列表) + +### 依赖升级 +* update springcloud 2021.0.4 => 2021.0.5 +* update springboot 2.7.4 => 2.7.6 +* update springboot-admin 2.7.5 => 2.7.7 +* update springdoc 1.6.11 => 1.6.13 +* update poi 5.2.2 => 5.2.3 +* update hutool 5.8.6 => 5.8.10 +* update aliyun-sms 2.0.18 => 2.0.22 +* update tencent-sms 3.1.591 => 3.1.611 +* update sa-token 1.30.0 => 1.33.0 +* update redisson 3.17.6 => 3.18.0 +* update easy-es 1.0.2 => 1.1.0 +* update easyexcel 3.1.1 => 3.1.3 +* update lock4j 2.2.2 => 2.2.3 +* update s3-adk 1.12.300 => 1.12.349 +* update sentinel 1.8.5 => 1.8.6 +* update nacos 2.1.1 => 2.1.2 +* update ELK 7.17.2 => 7.17.6 升级镜像版本 +* update nginx 1.21.6 => 1.22.1 修复漏洞 +* update mysql-docker 8.0.29 => 8.0.31 + +### 功能更新 +* update 优化 分页对象 PageQuery 支持多排序 适配 文件管理 页面支持多排序 +* update 优化 获取用户信息getInfo接口 使用缓存数据获取 +* update 优化 rpc文件上传 增加 ossId 数据返回 +* update 优化 nacos 集群模式搭建 关于 nacos.home 注释说明 +* update 优化 修改头像在小屏幕上页面布局错位的问题 +* update 优化 oss 云厂商增加 华为obs关键字 +* update 优化 重置时取消部门选中 +* update 优化 新增返回警告消息提示 +* update 优化 抽取 logback 通用配置 logback-common.xml 简化其他服务日志文件书写 +* update 更改 nacos 配置文件目录 从dev文件夹迁移到nacos文件夹与其他配置区分 +* update 优化 gateway 只缓存body +* update 优化 Dockerfile 创建目录命令简化操作 +* update 优化 gateway filter顺序 与 代码工具封装 +* update 优化 将空 catch 块形参重命名为 ignored +* update 优化 satoken 依赖传递 +* update 优化 重写字典查询 使用本地缓存优化网络开销 提升到上级实现减少rpc调用频率 使用流处理减少字符串操作 +* update 优化 减小腾讯短信引入jar包的体积 +* update 优化 简化一些方法的写法 +* update 优化 消除Vue3控制台出现的警告信息 +* update 优化 忽略不必要的属性数据返回 +* update 优化 重构 mysql-jdbc 依赖到 mybatis 包内 替换为最新坐标 + +### 新功能 +* add 新增 所有服务 docker 部署对接 skywalking +* add 新增 三大 mq 整合 skywalking +* add 新增 seata 整合 skywalking 手动编译 seata 插件包 +* add 新增 ruoyi-common-skylog 整合 skywalking 日志推送 +* add 增加 skywalking docker编排 +* add 增加 ruoyi-seata-server redis模式配置 +* add 新增 ruoyi-common-prometheus 模块 用于对接 prometheus 监控 +* add 新增 docker prometheus + grafana 容器编排 +* add 新增 ruoyi-monitor 监控服务 提供 prometheus http_sd 服务发现功能 +* add 新增 所有服务整合 ruoyi-common-prometheus 模块 +* add 新增 grafana 监控大屏配置文件(框架定制) +* add 新增 使用 mica-metrics 为 undertow 提供健康检查 +* add 新增 字典数据映射翻译注解 +* add 增加 RedisUtils 获取缓存Map的key列表 + +### 问题修复 +* fix 修复 开启账号同端互斥登录 被顶掉后登出报null异常问题 +* fix 修复 设置NameMapper导致队列功能异常问题 +* fix 修复 EnvironmentPostProcessor 不生效问题 +* fix 修复 文件上传组件格式验证问题 +* fix 修复 ruoyi-xxl-job-admin 服务健康检查配置缺失问题 +* fix 修复 Excel导出字典值转换方法由于内部调用缓存不生效bug +* fix 修复 SysOss 方法内部调用导致缓存不生效 bug +* fix 修复 主题颜色在Drawer组件不会加载问题 +* fix 修复 修改用户信息 校验用户名未排除当前用户问题 +* fix 修复 升级 nginx 修复漏洞 https://www.oschina.net/news/214309 +* fix 修复 用户编辑时角色和部门存在无法修改情况 +* fix 修复 RemoteDictServiceImpl 代理对象获取异常bug +* fix 修复 菜单激活无法填充颜色 去除某些svg图标的fill属性 +* fix 修复 使用透明底png图片时, 自动填充黑色背景 +* fix 修复 table中更多按钮切换主题色未生效修复问题 +* fix 修复 dubbo 使用 tri 协议 header 请求头变为小写导致无法获取参数问题 +* fix 修复 DubboRequestFilter 优先级过高导致的 skywalking tid 取不到问题 +* fix 修复 前端脚本乱码问题 +* fix 修复 WebFluxUtils 读取空 body 报 null 问题 +* fix 修复 Log注解GET请求记录不到参数问题 +* fix 修复 某些特性的环境生成代码变乱码TXT文件问题 +* fix 修复 开启TopNav没有子菜单隐藏侧边栏 +* fix 修复 回显数据字典数组异常问题 +* fix 修复 升级 satoken 导致白名单热更不生效问题 +* fix 修复 swagger 版本与 springdoc 版本不一致导致找不到class问题 +* fix 修复 grafana 监控模板绑定数据源ID 导致无法正常读取数据问题 + +## v1.3.0 - 2022-09-29 + +### 重大更新 + +* [重大更新] 新增 ruoyi-nacos 源码集成 nacos 服务端控制台 支持单机/集群模式 +* [重大更新] 重写 spring-cache 实现 更人性化的操作 支持注解指定ttl等一些参数 +* [重大更新] 新增 RuoYi-Cloud-Plus-UI 项目 Vue3 前端分支 +* [重大更新] 移除maven docker插件 过于老旧功能缺陷大 使用idea自带的docker插件替代 +* [重大更新] 优化 ruoyi-common-job 支持通过调度中心服务名注册 xxl-job-admin +* [重大更新] 新增 ruoyi-common-sentinel 模块 支持使用服务名注册 sentinel 控制台 + +### 依赖升级 + +* update spring-cloud 2021.0.3 => 2021.0.4 +* update springboot 2.7.2 => 2.7.4 +* update springboot-admin 2.7.3 => 2.7.5 +* update sentinel 1.8.4 => 1.8.5 集成新 dubbo3 插件 +* update springdoc 1.6.9 => 1.6.11 +* update easy-es 0.9.80 => 1.0.2 +* update dubbo 3.0.10 => 3.1.1 +* update redisson 3.17.5 => 3.17.6 +* update druid 1.2.11 => 1.2.12 +* update hutool 5.8.5 => 5.8.6 +* update dynamic-ds 3.5.1 => 3.5.2 +* update aws-java-sdk-s3 1.12.264 => 1.12.300 +* update aliyun-sms 2.0.16 => 2.0.18 +* update tencent-sms 3.1.555 => 3.1.591 +* update snakeyaml 1.30 => 1.32 + +### 功能更新 + +* update 优化 getLoginId 增加必要参数空校验 +* update 优化 将 elasticsearch 解压后放入 避免造成用户误解 +* update 优化 修改资料头像与部门被覆盖的问题 +* update 优化 字典管理操作类型新增其他 +* update 优化 使用 spring-cache 注解优化缓存 +* update 优化 easy-es.enable=false 关闭 actuator 健康检查 +* update 优化 优化多角色数据权限匹配规则 +* update dubbo 升级 3.1.0 删除自行处理的源码修复 采用官方修复后的代码 +* update 优化 页面内嵌iframe切换tab不刷新数据 +* update 优化 调整 oss表key 与 ossconfig的service 字段长度不匹配 +* update 优化 操作日志密码脱敏 +* update 优化 补全缺失的接口 更改更新日志链接 +* update 优化 插入 SysOperLog 时, 限制 operUrl 属性的长度 +* update 优化 satoken 鉴权拦截器 优化多次校验 + +### 新功能 + +* add 增加 项目中使用到的请求头放行跨域 +* add 新增 获取oss对象元数据方法 +* add 新增 字典管理操作类型 其他 + +### 问题修复 + +* fix 修复 个人中心卡死或鼠标点击和键盘输入无效 +* fix 修复 BaseMapperPlus 方法命令不一致问题 +* fix 修复 图片预览组件src属性为null值控制台报错问 +* fix 修复 短信功能是否启用判断不生效 +* fix 修复 web模块 不引入nacos依赖报错问题 +* fix 修复 sentinel 构建无法读取webapp目录问题 +* fix 修复 菜单管理遗漏的prop属性 +* fix 修复 minio配置https遇到的问题 +* fix 修复 点击删除后点击取消控制台报错问题 +* fix 修复 文件/图片上传组件 第一次上传报错导致后续上传无限loading问题 +* fix 修复 ruoyi-auth 服务与 elasticsearch 端口号冲突问题 +* fix 修复 ruoyi-resource 服务与 elasticsearch 端口号冲突问题 +* fix 修复 角色部门状态字典错误 与 菜单注释错误 +* fix 修复 hutool 存在多版本问题 +* fix 修复 openapi结构体 因springdoc缓存导致多次拼接接口路径问题 +* fix 修复 oss配置删除内部数据id匹配类型问题 +* fix 修复 没有权限的用户编辑部门缺少数据 +* fix 修复 用户导入存在则更新不生效 +* fix 修复 日志转换非json数据导致报错 +* fix 修复 p6spy输出sql语句时间格式化不正确问题 +* fix 修复 不同网段因reset请求头导致下载导出跨域问题 +* fix 修复 在线用户设置永不过期 超时时间-1推送redis无效问题 +* fix 修复 snakeyaml 1.31 依旧存在漏洞 升级 1.32 + +## v1.2.0 - 2022-08-09 + +### 重大更新 + +* [重大更新] 新增 ruoyi-common-elasticsearch 模块 集成 easy-es 傻瓜式操作搜索引擎 +* [重大更新] 新增 ruoyi-common-doc 整合 springdoc 基于 javadoc 实现无注解零入侵生成接口文档 +* [不兼容更新] 移除 swagger 所属 ruoyi-doc ruoyi-common-swagger 两个模块 建议使用 ruoyi-common-doc 模块 + +### 依赖升级 + +* update springboot 2.6.9 => 2.7.2 重构使用最新自动配置方式 +* update springboot-admin 2.6.7 => 2.7.3 +* update dubbo 3.0.9 => 3.0.10 +* update redisson 3.17.4 => 3.17.5 +* update hutool 5.8.3 => 5.8.5 +* update okhttp 4.9.1 => 4.10.0 +* update aws-java-sdk-s3 1.12.248 => 1.12.264 修复依赖安全漏洞 +* update aliyun.sms 2.0.9 => 2.0.16 +* update tencent.sms 3.1.537 => 3.1.555 +* update guava 30.0-jre => 31.1-jre + +### 功能更新 + +* update 修改 资源服务 不提供默认短信 sdk 依赖 +* update 优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出) +* update 优化 前后端多环境部署保持一致 删除无用环境文件 +* update 优化 错误登录锁定与新增解锁功能 +* update 优化字典数据使用store存取 +* update 优化布局设置使用el-drawer抽屉显示 +* update 更新框架文档 专栏与视频 链接地址 +* update 优化 对象上传 主动设置文件公共读 解决天翼云OSS文件私有问题 +* update 优化 网关验证码过滤器 路径匹配改为严格匹配 +* update 优化 数据导致权限生成 SQL 重复问题 + +### 新功能 + +* add 增加 全局跨域过滤器 处理跨域请求 适配移动端访问 +* add 增加 搜索引擎 crud 演示案例 + +### 问题修复 + +* fix 防止date-picker组件报错,降级element-ui版本 +* fix 修复 RedisUtils 并发 set ttl 错误问题 +* fix 防止vue3主键字段名与row或ids一致导致报错的问题 +* fix 修复 幂等组件 逻辑问题导致线程变量未清除 +* fix 修复 图片回显查询 路径错误问题 +* fix 修复 脱敏没有实现类导致返回数据异常问题 +* fix 修复 xxljob 错误导入配置文件引发的问题 +* fix 修复 gateway模块 dockerfile 端口编写错误 +* fix 修复用户导出字典使用错误 +* fix 修复 demo 模块 远程调用失败问题 +* fix 修复 sentinel 控制台未适配 springboot 2.6 新路由策略导致无法登录问题 + +## v1.1.0 - 2022-07-18 + +### 重大更新 + +* [重大更新] 新增 ELK 分布式日志中心整合 +* [重大更新] 新增 ruoyi-stream-mq 演示模块 完成 RabbitMQ RocketMQ Kafka 整合 +* [重大更新] 优化 docker 部署方式 使用 host 模式简化部署流程 降低使用成本 +* [重大更新] 调整 dubbo 服务注册命名空间与 cloud 服务保持一致 通过注册组区分访问服务 +* [安全性] 优化 nginx 限制外网访问内网 actuator 相关路径 建议升级 + +### 依赖升级 + +* update springboot 2.6.8 => 2.6.9 +* update easyexcel 3.1.0 => 3.1.1 +* update hutool 5.8.2 => 5.8.3 +* update redisson 3.17.2 => 3.17.4 +* update aws-java-sdk-s3 1.12.215 => 1.12.248 +* update tencentcloud-sdk-java 3.1.500 => 3.1.537 +* update dubbo 3.0.8 => 3.0.9 +* update seata 1.5.1 => 1.5.2 + +### 功能更新 + +* update 增加 redisson key 前缀配置 +* update 优化 DateColumn 支持单模板多key场景 +* update 优化部署脚本 增加 elk kafka rabbitmq rocketmq 等配置 +* update 修改 oss 客户端自定义域名 统一使用https开关控制协议头 +* update 优化 使用 StreamUtils 简化业务流操纵 +* update 优化 ruoyi-demo 模块 去除用不上的 seata 依赖 +* update 优化 接口文档 接口地址与服务地址不匹配问题 +* update 优化字典数据回显样式下拉框显示值 +* update 默认不启用压缩文件缓存防止node_modules过大 +* update 优化登出方法 + +### 新功能 + +* add 增加 rocketmq docker编排 +* add 新增 rabbitmq docker编排 包含延迟插件 +* add 新增 kafka docker编排 +* add 增加 es ik 分词器插件集成 +* add 增加 StreamUtils 流工具 简化 stream 流操纵 + +### 问题修复 + +* fix 修复 获取 SensitiveService 空问题 增加空兼容 +* fix 修复 演示页面导出路径错误 +* fix 修复 minio 上传自定义域名回显路径错误问题 +* fix 修复 hutool 工具返回不可操纵类型 导致报错问题 +* fix 修复 远程调用短信功能返回实体 SysSms 序列化报错问题 +* fix 修复 复制过程错误 导致演示excel文件损坏问题 +* fix 修复 dubbo 注册组不生效问题 通过覆盖源码方式 +* fix 修复代码生成首字母大写问题 + + +## v1.0.0 - 2022-06-20 + +### 新增/优化 工程模块 + +* add 新增 ruoyi-common-alibaba-bom 工程管理 alibaba 相关依赖 +* add 新增 ruoyi-common-bom 工程管理 ruoyi-common 相关依赖 +* add 新增 ruoyi-api-bom 工程管理 ruoyi-api 依赖项 +* add 新增 ruoyi-api-resource 模块 规范用法 移除 ruoyi-file 模块 +* add 新增 ruoyi-common-web 模块 使用 undertow 替换 tomcat +* add 新增 ruoyi-common-dubbo 整合 dubbo 3.X 实现高性能 rpc 远程调用 替换 feign +* add 新增 ruoyi-common-dict 实现字典多服务调用 +* add 新增 ruoyi-common-loadbalancer 自定义负载均衡模块 用于多团队开发 +* add 新增 ruoyi-common-excel 模块 集成 Alibaba EasyExcel 替换 自带excel实现 +* add 新增 ruoyi-common-oss 模块 支持 AWS S3 协议 分布式文件存储 +* add 新增 ruoyi-common-mail 邮件模块 +* add 新增 ruoyi-common-sms 短信模块 整合 阿里云、腾讯云 短信功能 +* add 新增 ruoyi-common-idempotent 分布式幂等模块 +* add 新增 ruoyi-common-satoken 整合 sa-token 重写所有权限 +* add 新增 ruoyi-xxl-job-admin 整合 xxljob 替换 quartz 支持分布式任务调度 +* add 新增 ruoyi-job 模块 统一远程处理任务 规范用法 +* add 新增 ruoyi-doc 模块 集成 Knife4j 替换 swagger +* add 新增 ruoyi-seata-server 源码集成 Seata 1.5.X 服务端 +* add 新增 ruoyi-sentinel-dashboard 模块 源码集成 sentinel 控制台 +* update 抽取所有公用配置到 maven profile 管理 + +### 代码依赖改动 + +* update SpringCloud 2021.0.3 +* update 适配 SpringCloudAlibaba 2021.0.1.0 全新配置方式 +* update poi 4.1.2 => 5.2.2 性能大幅提升 +* update 重构 整合 jackson 替换 fastjson +* update 重构 整合 redisson 客户端 +* update 重构 整合 mybatis-plus +* update 重写 数据权限实现 基于 mybatis-plus +* add 增加 lombok 优化原生代码 +* add 整合 hutool 优化相关代码 +* add 新增 国际化 功能 +* add 新增 lock4j 分布式锁 +* add 增加监控中心 在线日志监控 优化日志文件格式 +* add 适配 docker 部署方式 + +### 后续/进行中计划 + +* 增加 Vue3 前端工程 +* 应用模块 适配 Oracle、PostgreSQL、SQLServer +* 增加 SpringCloud Stream 支持 +* 适配 Apache Kafka、Apache RocketMQ、RabbitMQ +* 适配 ElasticSearch 分布式搜索引擎 +* 适配 Alibaba Canal 分布式数据同步中心 +* 适配 Apache SkyWalking 分布式链路追踪监控中心 +* 适配 ELK 分布式日志中心 +* 适配 Prometheus、Grafana 分布式全方位数据大屏监控 diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md new file mode 100644 index 00000000..58c2eda8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md @@ -0,0 +1,37 @@ +# ELK搭建 +- - - +# 环境搭建 + +项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排 + +**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限** + +`chmod 777 /docker/elk/elasticsearch/data`
+`chmod 777 /docker/elk/elasticsearch/logs`
+`chmod 777 /docker/elk/elasticsearch/plugins`
+**注意: es插件需要解压后放入 `plugins` 目录** + +# 运行命令 + +```shell +docker-compose up -d elasticsearch kibana logstash +``` + +# 参考文章 +[docker-compose 搭建 ELK 7.X 并整合 SpringBoot](https://lionli.blog.csdn.net/article/details/125743132) + +# 项目内配置 + +服务引入依赖项 + +```xml + + + com.ruoyi + ruoyi-common-logstash + +``` + +更改主 `pom` 文件 `logstash.address` 地址
+ +![输入图片说明](https://foruda.gitee.com/images/1678981534923588112/ba6cb5b7_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md new file mode 100644 index 00000000..65d9c4d4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md @@ -0,0 +1,26 @@ +# ES搜索引擎 +- - - +## 环境搭建(如果已经搭建了ELK则跳过) + +项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排 + +**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限** + +`chmod 777 /docker/elk/elasticsearch/data`
+`chmod 777 /docker/elk/elasticsearch/logs`
+`chmod 777 /docker/elk/elasticsearch/plugins`
+**注意: es插件需要解压后放入 `plugins` 目录** + +## 运行命令 + +```shell +docker-compose up -d elasticsearch +``` + +## Easy-ES 文档 +[Easy-ES 文档](https://www.easy-es.cn/) + +## 用法 + +基本配置和用法可参考 `ruoyi-demo` 模块 更多高级用法请参考 Easy-ES 文档
+![输入图片说明](https://foruda.gitee.com/images/1660030085169129908/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md new file mode 100644 index 00000000..78521431 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md @@ -0,0 +1,9 @@ +# Kafka搭建 +- - - +## 环境搭建 +参考文章: [docker-compose 安装 Kafka 3.X 附带可视化界面](https://lionli.blog.csdn.net/article/details/125855550) + +## 用法参考 +参考 `ruoyi-stream-mq` 模块内的测试案例 + +![输入图片说明](https://foruda.gitee.com/images/1660031528265343174/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md new file mode 100644 index 00000000..4b4b4305 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md @@ -0,0 +1,20 @@ +# 对接 MaxKey 单点登录 +- - - + +# 安装 MaxKey 应用服务 + +参考 MaxKey 官方文档安装 [MaxKey安装部署](http://www.maxkey.top/doc/docs/intro/) + +# 配置应用 OAuth2.0 认证注册 + +![输入图片说明](https://foruda.gitee.com/images/1693377802128677240/0927270a_1766278.png "屏幕截图") + +# 配置后端服务 + +找到 `Nacos` 内的 `ruoyi-auth.yml` 配置文件 + +修改 `maxkey` 对应的 `client-id` 与 `client-secret` + +![输入图片说明](https://foruda.gitee.com/images/1693378118762354596/2f02c8a3_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1693378168538263792/24476d2a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md new file mode 100644 index 00000000..18e6aefb --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md @@ -0,0 +1,13 @@ +# Nacos集群搭建 +- - - +## 集群搭建两种方式 +### 文件寻址集群 +[【RuoYi-Cloud-Plus】学习笔记 02 - Nacos(二)寻址机制之文件寻址分析](https://blog.csdn.net/Michelle_Zhong/article/details/127423521) + +### 地址服务器寻址集群(推荐) +[【RuoYi-Cloud-Plus】学习笔记 03 - Nacos(三)使用 Nginx 实现地址服务器寻址及其原理分析](https://blog.csdn.net/Michelle_Zhong/article/details/127474238) + +## 集群路由代理设置 +[【RuoYi-Cloud-Plus】学习笔记 04 - Nacos(四)使用 Nginx 简单实现 Nacos 集群负载均衡](https://blog.csdn.net/Michelle_Zhong/article/details/127486350) + +设置好代理之后 跟单机用法一致 后端nacos地址写代理 `ip:端口` 即可 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md new file mode 100644 index 00000000..2df4870b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md @@ -0,0 +1,45 @@ +# Prometheus+Grafana搭建 +- - - +## 基础搭建 + +参考文章: https://lionli.blog.csdn.net/article/details/127959009 + +## 框架内扩展 + +框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 + +```shell +docker-compose up -d prometheus grafana +``` + +## 应用配置 + +各个服务引入 `ruoyi-common-prometheus` 模块 + +![输入图片说明](https://foruda.gitee.com/images/1668998415863943539/413dc560_1766278.png "屏幕截图") + +修改 `prometheus.yml` 配置采集数据源 + +![输入图片说明](https://foruda.gitee.com/images/1668998433756761442/bf31c212_1766278.png "屏幕截图") + +修改 `Nacos` 地址 与 `SpringBoot-Admin` 监控地址 用于数据采集
+如都为本地应用则无需更改 + +![输入图片说明](https://foruda.gitee.com/images/1668998317973042740/2d3590ec_1766278.png "屏幕截图") + +## 导入框架特制模板 +**注意: 此处数据源名称必须与图片保持一致 不然会和模板对应不上导致无法读取数据**
+![输入图片说明](https://foruda.gitee.com/images/1669866309495145064/1de987ce_1766278.png "屏幕截图") + +> 找到框架内的特制模板json文件 在grafana点击上传json文件 导入模板
+ +![输入图片说明](https://foruda.gitee.com/images/1668998149634542527/f0881c8e_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1668998179391197847/b1d3a630_1766278.png "屏幕截图") + +## 选择查看监控 + +点击右侧菜单浏览 选择想要查看的监控即可 + +![输入图片说明](https://foruda.gitee.com/images/1668998515814170229/817ac8b0_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1668998567335384306/acdf2833_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1668998616894681785/ac27538b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md new file mode 100644 index 00000000..75e0187c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md @@ -0,0 +1,10 @@ +# RabbitMQ搭建 +- - - +## 环境搭建 + +参考文章: [docker-compose 安装 RabbitMQ 3.X 附带延迟队列插件](https://lionli.blog.csdn.net/article/details/125855177) + +## 用法参考 +参考 `ruoyi-stream-mq` 模块内的测试案例 + +![输入图片说明](https://foruda.gitee.com/images/1660031371503504748/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md new file mode 100644 index 00000000..98d50bb7 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md @@ -0,0 +1,9 @@ +# RocketMQ搭建 +- - - +## 环境搭建 +参考文章: [docker-compose 安装 RocketMQ 4.9.X (apache官方镜像) namesrv broker 与可视化控制台 console](https://lionli.blog.csdn.net/article/details/125798865) + +## 用法参考 +参考 `ruoyi-stream-mq` 模块内的测试案例 + +![输入图片说明](https://foruda.gitee.com/images/1660031496623275622/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md new file mode 100644 index 00000000..ebe461bc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md @@ -0,0 +1,75 @@ +# Sharding-Proxy搭建分库分表 +- - - + +# 如何使用 + +查看 `ruoyi-demo` 服务 `TestShardingController` + +![输入图片说明](https://foruda.gitee.com/images/1688014028842337522/cd26026a_1766278.png "屏幕截图") + +## 首先在 MySQL 创建两个库 + +创建两个库 `data-center_0` `data-center_1` 分别执行如下SQL + +```sql +CREATE TABLE `t_order_0` ( + `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', + `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', + `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额', + PRIMARY KEY (`order_id`), + KEY `idx_user_id` (`user_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表'; + +CREATE TABLE `t_order_1` ( + `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', + `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', + `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额', + PRIMARY KEY (`order_id`), + KEY `idx_user_id` (`user_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表'; + +CREATE TABLE `t_order_item_0` ( + `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID', + `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', + `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', + `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额', + PRIMARY KEY (`order_item_id`), + KEY `idx_order_id` (`order_id`) USING BTREE, + KEY `idx_user_id` (`user_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表'; + +CREATE TABLE `t_order_item_1` ( + `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID', + `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', + `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', + `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额', + PRIMARY KEY (`order_item_id`), + KEY `idx_order_id` (`order_id`) USING BTREE, + KEY `idx_user_id` (`user_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表'; + +``` + +## 然后更改配置文件 + +更改 `config-sharding.yaml` 配置文件内的数据库连接地址与用户名密码 + +## 服务搭建 + +参考部署文档上传 docker 文件夹 内部包含 `shardingproxy` 配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1688013921062151295/89652dda_1766278.png "屏幕截图") + +框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 + +```shell +docker-compose up -d shardingproxy +``` + +## 最后运行 demo + +运行 demo 提供的 controller 代码查看数据库内数据即可 + +## 用法参考视频(略有不同 理性观看) + +用法参考视频: https://www.bilibili.com/video/BV1XN411A7Tv/ diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md new file mode 100644 index 00000000..6ad0aecc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md @@ -0,0 +1,41 @@ +# SkyWalking搭建与集成 +- - - +## 服务搭建 +参考文章: [SpringBoot 整合 SkyWalking 8.X (包含 Logback 日志采集)](https://lionli.blog.csdn.net/article/details/127656534) + +框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 + +```shell +docker-compose up -d elasticsearch sky-oap sky-ui +``` + +### 本地开发使用 +参考上方文章 + +### docker部署使用 +上传探针到服务器 `/docker/skywalking/agent` 目录
+**不要使用网上下载的 请使用框架自带的 内含一些官网没有的插件**
+![输入图片说明](https://foruda.gitee.com/images/1667453098143152651/f1b4f492_1766278.png "屏幕截图") + +在对应服务的`dockerfile`内 打开 `skywalking` 相关参数注释
+![输入图片说明](https://foruda.gitee.com/images/1667452514896786032/f4322fb9_1766278.png "屏幕截图") + +服务编排增加探针路径映射
+![输入图片说明](https://foruda.gitee.com/images/1667453276389844864/7e139aa9_1766278.png "屏幕截图") + + +### 对接日志推送(不推荐 建议使用ELK收集日志) + +框架已经封装好了对应的依赖和配置 在服务内添加如下依赖 + +```xml + + + com.ruoyi + ruoyi-common-skylog + +``` + +在 `logback.xml` 日志配置文件内引入 `skylog` 配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1667452697748002725/a18212cd_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md new file mode 100644 index 00000000..05db07a3 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md @@ -0,0 +1,3 @@ +# 软件架构图 +- - - +![输入图片说明](https://foruda.gitee.com/images/1722569321458793955/8672b1fc_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md new file mode 100644 index 00000000..569aed75 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md @@ -0,0 +1,27 @@ +# 多团队开发 +- - - +## 功能介绍 + +> 多人员/团队开发往往会出现 调试程序 被负载均衡到别人那里 自己抓不到请求等问题
+> 正确团队开发模式 `测试机一台` 公共服务都放到测试机上
+> 本地开发人员 需启动 `ruoyi-gateway` 与 其他 调试的业务模块
+> 将所有服务都统一指向同一个 Nacos 服务
+> 前端连接本机 `ruoyi-gateway` 网关调试程序
+ +框架提供了 `ruoyi-common-loadbalancer` 多团队 负载均衡模块 可以将网关的请求锁定到与网关相同的IP服务 + +需要在 `ruoyi-gateway` `ruoyi-auth` `ruoyi-modules` 引入 `ruoyi-common-loadbalancer` 模块 + +![输入图片说明](https://foruda.gitee.com/images/1678980590168990366/afa2fdf6_1766278.png "屏幕截图") + +启动前端访问本机 `ruoyi-gateway` 网关在请求转发 和 `dubbo` 进行 RPC 调用时
+会获取与本机IP地址相同的服务优先调用(如未找到 会随机返回) + +# 重点说明 + +请检查本机是否有虚机网卡IP 如有多网卡获取IP地址会不准确 + +可使用如下代码检查本机IP是否正常 +```java +InetAddress.getLocalHost().getHostAddress() +``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md new file mode 100644 index 00000000..422aeb9e --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md @@ -0,0 +1,88 @@ +# 接口文档 +- - - +## 版本 >= `1.2.0` +## 说明 +由于 `springfox` 与 `knife4j` 均停止维护 bug众多
+故从 `1.2.0` 开始 迁移到 `springdoc` 框架
+基于 `javadoc` 无注解零入侵生成规范的 `openapi` 结构体
+由于框架自带文档UI功能单一扩展性差 故移除自带UI 建议使用外置文档工具 + +## 文档工具使用 +由于框架采用 `openapi` 行业规范 故市面上大部分的框架均支持 可自行选择
+例如: `apifox` `apipost` `postman` `torna` `knife4j` 等 根据对应工具的文档接入即可 + +## Swagger升级SpringDoc指南 + +常见功能如下 其他功能自行挖掘
+**注意: `javadoc` 只能替换基础功能 特殊功能还需要使用注解实现** + +| swagger | springdoc | javadoc | +|----------------------------------|---------------------------------|--------------------| +| @Api(name = "xxx") | @Tag(name = "xxx") | java类注释第一行 | +| @Api(description= "xxx") | @Tag(description= "xxx") | java类注释 | +| @ApiOperation | @Operation | java方法注释 | +| @ApiIgnore | @Hidden | 无 | +| @ApiParam | @Parameter | java方法@param参数注释 | +| @ApiImplicitParam | @Parameter | java方法@param参数注释 | +| @ApiImplicitParams | @Parameters | 多个@param参数注释 | +| @ApiModel | @Schema | java实体类注释 | +| @ApiModelProperty | @Schema | java属性注释 | +| @ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) | 无 | +| @ApiResponse | @ApiResponse | java方法@return返回值注释 | + +# 建议使用 `Apifox`(常见问题有其他对接方式) + +官网连接: [https://www.apifox.cn/](https://www.apifox.cn/)
+视频教程: [springdoc与apifox配合使用](https://www.bilibili.com/video/BV1mr4y1j75M?p=8&vd_source=8f52c77be3233dbdd1c5e332d4d45bfb) + +![输入图片说明](https://foruda.gitee.com/images/1678976476639902970/f1617b40_1766278.png "屏幕截图") + +支持 文档编写 接口调试 Mock 接口压测 自动化测试 等一系列功能 + +### 接入框架 + +> 1.下载或使用web在线版 创建一个自己的项目
+ +![输入图片说明](https://foruda.gitee.com/images/1678976502850663851/7bbd8728_1766278.png "屏幕截图") + +> 2.进入项目 选择项目设置 找到自动同步
+ +![输入图片说明](https://foruda.gitee.com/images/1678976508918240326/6a4a61a8_1766278.png "屏幕截图") + +> 3.根据项目内所有文档组完成所有数据源创建(拉取后端`openapi`结构体)
+数据源URL格式 `http://网关ip:端口/服务路径/v3/api-docs`
+项目内所需:
+`http://localhost:8080/demo/v3/api-docs` 演示服务
+`http://localhost:8080/auth/v3/api-docs` 认证服务
+`http://localhost:8080/resource/v3/api-docs` 资源服务
+`http://localhost:8080/system/v3/api-docs` 系统服务
+`http://localhost:8080/code/v3/api-docs` 代码生成服务
+ +![输入图片说明](https://foruda.gitee.com/images/1678980352012289965/24e0e4da_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678980368645148754/62308680_1766278.png "屏幕截图") + +> 4.选择 接口管理 项目概览 点击立即导入 并等待导入完成
+后续会根据策略每3个小时自动导入一次
+每次重新进入apifox也会自动同步一次
+后端有改动也可以手动点击导入
+ +![输入图片说明](https://foruda.gitee.com/images/1678980393851604773/a0c657d3_1766278.png "屏幕截图") + +> 5.(注意版本号)设置鉴权 选择接口管理 项目概览 找到Auth 按照如下配置
+ +**版本号: >= 2.X** + +![输入图片说明](https://foruda.gitee.com/images/1690966897370710566/6a688aea_1766278.png "屏幕截图") + +**版本号: 1.X** + +![输入图片说明](https://foruda.gitee.com/images/1678980398409729963/db4502a0_1766278.png "屏幕截图") + +> key对应项目配置 默认为 `Authorization`
+ +![输入图片说明](https://foruda.gitee.com/images/1678976544342001474/c2ff85d3_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678976549237304743/bcdfadda_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md new file mode 100644 index 00000000..304d3e04 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md @@ -0,0 +1,31 @@ +# 国际化方案 +- - - +* 前端国际化参考 [ruoyi前端国际化文档](http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#前端国际化流程)
+* 参考 `demo` 模块 `TestI18nController` 国际化演示案例 + 在 `Header` 请求头 增加上下文语言参数 `content-language` 参数需与国际化配置文件后缀对应 + 如 `zh_CN` `en_US` 等
+ +![输入图片说明](https://foruda.gitee.com/images/1678976722892396585/60917594_1766278.png "屏幕截图") + +## 获取 `code` 对应国际化内容 + +![输入图片说明](https://foruda.gitee.com/images/1678976728533100954/0ab8e36a_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976733019209506/a16574d6_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976738409745057/a073b425_1766278.png "屏幕截图") + +## 使用 `Validator` 框架校验 `controller` 参数返回国际化 + +`controller` 校验接口参数 需要在类增加 `@Validated` 注解
+![输入图片说明](https://foruda.gitee.com/images/1678976741834729507/6c19b9cc_1766278.png "屏幕截图")
+参数对应校验注解 使用 `{code}` 形式标注使用国际化处理
+![输入图片说明](https://foruda.gitee.com/images/1678976746093285542/ad0989db_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976750822808564/56bd60d7_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976754755107198/b89bf173_1766278.png "屏幕截图") + +## 使用 `Validator` 框架校验 `Bean` 返回国际化 + +`Bean` 校验需要在接口校验 `Bean` 参数使用 `@Validated` 注解
+![输入图片说明](https://foruda.gitee.com/images/1678976761015767874/729da3bc_1766278.png "屏幕截图")
+`Bean` 内属性校验注解 使用 `{code}` 形式标注使用国际化处理
+![输入图片说明](https://foruda.gitee.com/images/1678976765122587920/0b1027af_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976769965314387/0c416ede_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md new file mode 100644 index 00000000..c90d2c61 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md @@ -0,0 +1,19 @@ +# 内网鉴权 +- - - +## 功能介绍 + +此功能用于防止外部请求访问内部服务应用
+在请求经过 `gateway网关` 会生成一个 `id-token` 携带到后续服务进行校验
+若未经过 `gateway网关` 调用内网服务 会出现 `id-token无效` 异常
+有效防止非法请求直接访问内网服务
+ +## 开启/关闭内网鉴权 + +更改 `application-common.yml` 配置文件的 `sa-token.check-id-token` 配置即可 + +![输入图片说明](https://foruda.gitee.com/images/1678980608778275681/9a2c1054_1766278.png "屏幕截图") + +## 放行内网鉴权 +进入 `ruoyi-common-security` 模块找到 `SecurityConfiguration` 类 增加排除路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1678980612657326393/cea32a8c_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md new file mode 100644 index 00000000..0d75525b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md @@ -0,0 +1,39 @@ +# 创建新服务 +- - - +### 最简单的方式 +> 找个配置好的 例如 `ruoyi-system` 直接copy一份 + +> 将 `pom` 名称改掉
+ +![输入图片说明](https://foruda.gitee.com/images/1678980168782983123/c717e9ba_1766278.png "屏幕截图") + +> 服务启动类 名称改掉
+ +![输入图片说明](https://foruda.gitee.com/images/1678980179829877203/f89d5c18_1766278.png "屏幕截图") + +> `application.yml` 配置服务应用名 改掉
+ +![输入图片说明](https://foruda.gitee.com/images/1678980184047648028/e4c6c6cc_1766278.png "屏幕截图") + +> `nacos` 新建一份新的 对应新模块名称的 配置文件
+![输入图片说明](https://foruda.gitee.com/images/1678980188806372269/cfd9731a_1766278.png "屏幕截图") + +更改 `nacos` 上的 `ruoyi-gateway.yml` 增加新服务路由
+新服务访问路径 `网关ip:端口/服务路径/controller路径/接口路径`
+例子: `http://localhost:8080/system/user/list`
+ +![输入图片说明](https://foruda.gitee.com/images/1666861595048863422/9e9755b3_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1666861629037264535/bdfd5484_1766278.png "屏幕截图") + +### 注意事项 +如果是两个不同包名的模块 需要修改如下配置 + +![输入图片说明](https://foruda.gitee.com/images/1719813861680271619/82435586_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1692006501957936219/059f8526_1766278.png "屏幕截图") + +如果新服务需要使用 `seata` 分布式事务
+需要在 `nacos` 上的 `seata-server.properties` 文件内增加服务组 + +![输入图片说明](https://foruda.gitee.com/images/1692006825427360840/5b9e410c_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md new file mode 100644 index 00000000..2dcab848 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md @@ -0,0 +1,33 @@ +# 关于修改包名 +- - - + +**注意: 老包名为 com.ruoyi** + +## 1.随便找个地方新建 org.dromara 包 +![输入图片说明](https://foruda.gitee.com/images/1708491220807198688/b95c0c34_1766278.png "屏幕截图") + +## 2.在包上右键选择 refactor -> rename 选择 All Directories +![输入图片说明](https://foruda.gitee.com/images/1683276891079076405/79808b22_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1708491697128844860/1e87ad39_1766278.png "屏幕截图") + +**因为dromara组织下有很多依赖导致idea无法识别完整包名** +
+![输入图片说明](https://foruda.gitee.com/images/1708490576909691001/692e5b37_1766278.png "屏幕截图") + +**需要先将dromara修改为 例如: ruoyi 然后重复上述步骤 这样就可以整包修改了** +
+![输入图片说明](https://foruda.gitee.com/images/1708490906933084793/ff104cd7_1766278.png "屏幕截图") + +## 3.使用IDEA全局替换 org.dromara 替换为 com.xxx + +![输入图片说明](https://foruda.gitee.com/images/1708491055347995519/dedda0d1_1766278.png "屏幕截图") + +**注意: 由于dromara组织下项目很多 非本框架的依赖模块 请勿修改 例如上图中的 org.dromara.sms4j** + +## 4.如有需要 将所有模块名逐一修改即可 + +## 5.修改完成后需查看所有common包下模块spi文件是否修改正确 + +**老版本idea或者未按照教程修改包名可能导致文件丢包问题** + +![输入图片说明](https://foruda.gitee.com/images/1708491365841192006/8bc337c2_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md new file mode 100644 index 00000000..d36012f5 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md @@ -0,0 +1,25 @@ +# 修改应用路径 +- - - +# 修改访问后端接口路径 + +更改 前端环境配置文件 `VITE_APP_BASE_API` 代理路径 + +![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图")
+ +![输入图片说明](https://foruda.gitee.com/images/1724317552931269967/f7515655_1766278.png "屏幕截图") + +`prod` 生产环境需修改 `nginx.conf` 后端代理路径(上述配置文件也要改) + +![输入图片说明](https://foruda.gitee.com/images/1678980501204821424/d3340308_1766278.png "屏幕截图") + +# 修改前端页面访问路径 +修改对应环境的 `.env.环境` 文件内的 `VITE_APP_CONTEXT_PATH` 应用访问路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1724317049535973756/0a2cc43b_1766278.png "屏幕截图") + +生产环境 `nginx.conf` 与之对应修改即可
+**注意: 文件真实目录为 `/usr/share/nginx/html/admin/index.html` 此功能一般为多项目部署需要 故会增加一层目录 如不需要可以自行修改**
+ +![输入图片说明](https://foruda.gitee.com/images/1678976662194341301/2720b7e9_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md new file mode 100644 index 00000000..66ae32a9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md @@ -0,0 +1,85 @@ +# 客户端管理功能 +- - - +## 版本 >= 2.X + +## 客户端管理页面 + +![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图") + +### 客户端管理字段说明 +| 字段名称 | 取值说明 | 注意事项 | +|----------------|----------------------------|--------------------------------| +| 客户端id | 由后端生成,用于前端登录校验以及接口数据加密 | 无法修改,不要删除默认数据,否则会报错 | +| 客户端key | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | +| 客户端秘钥 | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | +| 授权类型 | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式 | +| 设备类型 | PC端、APP端 | | +| Token活跃超时时间 | 自定义 | 指定时间无操作则过期(单位:秒),默认30分钟(1800秒) | +| Token固定超时时间 | 自定义 | 指定时间必定过期(单位:秒),默认七天(604800秒) | + +### 前后端使用新的客户端id + +步骤如下: +1. 前端管理页面生成新的客户端id。 +2. 将新的客户端id复制到前端配置文件。 + +![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图") + +## 新增自定义客户端 + +### 步骤一:新增客户端数据(例如增加小程序端) + +![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图") + +### 步骤二:配置前端请求头信息 + +需要在全局请求头 header 中增加 cientid
+确保客户端所有请求都携带此id 可参考项目 `request.ts` + +![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图") + +`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。 + +**重点:不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)** + +## 新增自定义登录方式授权类型 + +**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可** + +如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md) + +### 步骤一:新增字典数据 + +![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图") + +### 步骤二:新增/修改客户端数据 + +### 步骤三:后端新增认证策略 + +新增策略实现类实现 `IAuthStrategy` 接口。
+ +![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图") + +参照已有策略实现类实现自定义参数校验登录方法逻辑。
+ +![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图") + +**注意修改 `@Service` 名称保证规范性** + +![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图") + +`LoginBody` 校验参数(可自定义)
+ +![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图") + +例如 扩展小程序登录参数 只需要继承 `LoginBody
+ +![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")` + +校验分组(可自定义)
+ +![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md new file mode 100644 index 00000000..742ef939 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md @@ -0,0 +1,86 @@ +# 代码生成 +- - - +## 功能介绍 + +### 数据源配置 + +![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图") + +**项目适配多种类型数据库 可以在代码生成页面切换**
+ +> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源
+ +![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图") + +**>= 2.2.1版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**
+ +![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图") + + +### 导入数据表 + +> 点击导入按钮 会加载系统数据库所有的表
+ +![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图") + +> 选择需要的表 点击确定即可
+ +![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图") + +### 编辑表生成结构 + +> 点击表对应的编辑按钮
+ +![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图") + +> 更改要生成表的数据
+ +![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图") + +### 生成条件影响 + +![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图") + + +* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段 +* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段 +* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件 +* `查询方式` 影响生成查询条件的类型 +* `必填` 影响 BO 类 与 页面是否强制校验 +* `显示类型` 影响生成页面使用何种展示组件 +* `字典类型` 影响页面是否生成与字典的关联 + +### 树表配置 + +> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可
+ +![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图") + +### 主子表说明 + +框架不支持也不推荐使用主子表
+原因一般业务场景 基本都是一对N表 多表关联场景
+还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现
+另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景
+所以建议大家都按照 单表生成 自行编写业务逻辑 + +### 预览功能 + +> 配置好生成信息后 可以点击预览按钮
+ +![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图") + +> 系统会根据已经配置好的数据 生成对应的代码预览
+> 可以再此处观察代码的生成结构和数据是否正确等
+ +![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图") + + +### 代码结构同步 + +> 实际开发中 难免会有表结构更改的需求
+> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步
+ +![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md new file mode 100644 index 00000000..fa901792 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md @@ -0,0 +1,250 @@ +# 导出功能 + +- - - + +在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导出操作(即写 Excel)。 + +[EasyExcel 文档地址](https://easyexcel.opensource.alibaba.com/) + +## 导出功能使用流程说明 + +### 步骤一:定义导出实体对象 + +以框架中 `SysUserExportVo` 为例: + +```Java + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + // ....................... + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; +``` + +> 说明:
+> 1. 使用 `@ExcelProperty` 注解标注需要导出的属性。 +> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 +> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 + +### 步骤二:使用导出方法 + +以框架中 `SysUserController#export` 方法为例: + +```Java + /** + * 导出用户列表 + */ + @PostMapping("/export") + public void export(SysUserBo user, HttpServletResponse response) { + // 根据参数查询导出的用户列表数据 + List list = userService.selectUserList(user); + // 将列表转换为导出对象列表 + List listVo = MapstructUtils.convert(list, SysUserExportVo.class); + // 导出方法 + ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); + } +``` + +> 说明:
+> 使用 `ExcelUtil.exportExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导出对象集合,Excel sheet 表名称,导出对象类型,response。 + +## 框架工具使用说明 + +### 1:字典转换器 + +字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 + +使用方式一: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; +``` + +使用方式二: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") + private String sex; +``` + +`@ExcelDictFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|------------------|--------|-----|-----------------------------------| +| dictType | String | "" | 字典的type值 (如: sys_user_sex) | +| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | +| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | + +### 2:枚举转换器 + +字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 + +使用方式: + +```Java + /** + * 用户类型 + *

+ * 使用ExcelEnumFormat注解需要进行下拉选的部分 + */ + @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") + private String userStatus; +``` + +`@ExcelEnumFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|-----------|------------|------|------------------------------| +| enumClass | Enum Class | - | 字典枚举类型 | +| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | +| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | + +### 3:合并单元格 + +`@CellMerge` 注解用于合并相同的列数据,需要结合 `CellMergeStrategy` 策略使用,标注在需要转换的属性上。 + +使用方式: + +步骤一:在属性标注 `@CellMerge` 注解: +```Java + /** + * 部门id + */ + @CellMerge + @ExcelProperty(value = "部门id") + private Long deptId; +``` + +`@CellMerge` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|---------|----------|-----|------------------------------| +| index | int | -1 | 合并列的下标,建议使用默认值 | +| mergeBy | String[] | {} | 合并需要依赖的其他字段名称(基于这个字段内容做合并条件) | + + +步骤二:导出方法开启合并: +```Java + /** + * 导出测试单表列表 + */ + @PostMapping("/export") + public void export(@Validated TestDemoBo bo, HttpServletResponse response) { + List list = testDemoService.queryList(bo); + // 参数 true 表示开启合并单元格策略 + ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, true, response); + } +``` +![输入图片说明](https://foruda.gitee.com/images/1700128921644543994/e8d4704f_1766278.png "屏幕截图") + +### 4:复杂 Excel 导出示例 +`TestExcelController` 提供了几种导出示例,如果需要可以参照相应方法进行导出。 + +#### 4.1:单列表多数据导出(模板导出) + +模板内容: + +![输入图片说明](https://foruda.gitee.com/images/1700124852002972562/d9f57a8c_4959041.png "屏幕截图") + +模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/` + +导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700124885532359879/0d011d05_4959041.png "屏幕截图") + +#### 4.2:多列表多数据导出(模板导出) + +模板内容: + +![输入图片说明](https://foruda.gitee.com/images/1700125025931981176/105dbaaa_4959041.png "屏幕截图") + +模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/` + +导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700125054011300002/71869c1d_4959041.png "屏幕截图") + +#### 4.3:导出下拉框 + +`ExcelDictFormat` 注解指定的字典项默认都会转换成下拉框 + +自定义导出省市区下拉框示例代码:参考 demo 模块 `TestExcelController` + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700125265411678973/7f767719_4959041.png "屏幕截图") + +## Easy Excel 常用注解 + +`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解,自定义注解会结合转换器一起进行说明。 + +| 类型 | 注解名称 | 使用举例 | 说明 | +|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | +| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | +| 样式注解 | @ColumnWidth | @ColumnWidth(value=值) | 设置列宽 | +| 样式注解 | @ContentFontStyle | @ContentFontStyle(color=颜色) | 可以设置字体类型,颜色,粗细,是否斜体,下划线等,具体可查看注解 `@ContentFontStyle` | +| 样式注解 | @ContentLoopMerge | @ContentLoopMerge(eachRow=行值, columnExtend=列值) | 设置循环合并的区域 | +| 样式注解 | @ContentRowHeight | @ContentRowHeight(value=值) | 设置内容行高 | +| 样式注解 | @ContentStyle | - | 设置单元格样式,具体可查看注解 `@ContentStyle` | +| 样式注解 | @HeadFontStyle | @HeadFontStyle(color=颜色) | 设置表头字体格式,类似 `@ContentFontStyle`,具体可查看注解 `@HeadFontStyle` | +| 样式注解 | @HeadRowHeight | @HeadRowHeight(value=值) | 设置表头行高 | +| 样式注解 | @HeadStyle | - | 设置表头样式,具体可查看注解 `@HeadStyle` | +| 样式注解 | @OnceAbsoluteMerge | @OnceAbsoluteMerge(firstRowIndex=开始行下标, lastRowIndex=结束行下标, firstColumnIndex=开始列下标, lastColumnIndex=结束列下标) | 根据设置值合并单元格 | +| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | +| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | +| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | + +## 扩展说明 + +### 自定义转换器实现 + +由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 +以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 + +字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 + +_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ + +#### 实现方式 + +自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") + +转换方法 `ExcelDictConvert#convertToExcelData` : + +![输入图片说明](https://foruda.gitee.com/images/1700104426131801297/72931ef0_4959041.png "屏幕截图") + +## 更多功能 + +更多导出功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/api/write)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md new file mode 100644 index 00000000..f1bbca7d --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md @@ -0,0 +1,202 @@ +# 导入功能 +- - - + +在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导入操作(即读 Excel)。 + +## 导入功能使用流程说明 + +### 步骤一:定义导入实体对象 + +以框架中 `SysUserImportVo` 为例: + +```java + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + // ....................... + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; +``` + +> 说明:
+> 1. 使用 `@ExcelProperty` 注解标注需要导入的属性。 +> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 +> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 +> 4. 对象禁止使用链式注解 `@Accessors(chain = true)`,会找不到set方法。 + +### 步骤二:使用导入方法 + +以框架中 `SysUserController#importData` 方法为例: + +```Java + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @SaCheckPermission("system:user:import") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + // 导入方法 + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); + return R.ok(result.getAnalysis()); + } +``` +> 说明:
+> 使用 `ExcelUtil.importExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导入文件流,导入对象类型,导入监听器 `SysUserImportListener`。 + +## 框架工具使用说明 + +### 1:字典转换器 + +字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 + +使用方式一: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; +``` + +使用方式二: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") + private String sex; +``` + +`@ExcelDictFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|------------------|--------|-----|-----------------------------------| +| dictType | String | "" | 字典的type值 (如: sys_user_sex) | +| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | +| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | + +### 2:枚举转换器 + +字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 + +使用方式: + +```Java + /** + * 用户类型 + *

+ * 使用ExcelEnumFormat注解需要进行下拉选的部分 + */ + @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") + private String userStatus; +``` + +`@ExcelEnumFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|-----------|------------|------|------------------------------| +| enumClass | Enum Class | - | 字典枚举类型 | +| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | +| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | + + +### 3:导入监听器 + +#### 3.1:ExcelListener 监听器接口 + +`ExcelListener` 扩展了 `ReadListener` 接口,增加了获取结果方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700181723794469524/99bf83c9_4959041.png "屏幕截图") + +#### 3.2:DefaultExcelListener 默认监听器 + +`DefaultExcelListener` 默认监听器在读 Excel 时调用,主要对数据进行校验、解析、异常处理、返回结果等。导入操作时如果没有特别指定则使用该监听器。 + +#### 3.3:SysUserImportListener 用户导入监听器 + +`SysUserImportListener` 用户导入监听器是在用户导入时调用的监听器。 + +该监听器重写了 `invoke` 反射接口,对导入的用户数据进行了校验;重写了 `getExcelResult` 获取结果接口,返回结果数据。 + +#### 3.4:ExportDemoListener 带下拉框的导入监听器 + +`ExportDemoListener` 是对带有下拉框的 Excel 进行处理的导入监听器。 + +## Easy Excel 常用注解 + +`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解。 + +| 类型 | 注解名称 | 使用举例 | 说明 | +|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | +| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | +| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | +| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | +| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | + +## 扩展使用 + +### 扩展一:自定义转换器实现 + +由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 +以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 + +字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 + +_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ + +#### 实现方式 + +自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") + +转换方法 `ExcelDictConvert#convertToJavaData` : + +![输入图片说明](https://foruda.gitee.com/images/1700182975516396213/d3c020f9_4959041.png "屏幕截图") + +### 扩展二:自定义监听器实现 + +自定义监听器主要用于在读取解析 Excel 数据时进行自定义操作。 +以下以框架中的用户导入监听器 `SysUserImportListener` 为例进行说明。 + +#### 实现方式 +1. 继承分析事件监听器 `AnalysisEventListener` 以及实现 Excel 监听器 `ExcelListener`。 + +![输入图片说明](https://foruda.gitee.com/images/1700184652693497753/09333dac_4959041.png "屏幕截图") + +2. 显示使用构造函数,否则将导致空指针。 + +![输入图片说明](https://foruda.gitee.com/images/1700184759075616584/cf05b0ed_4959041.png "屏幕截图") + +3. 实现 `invoke` 方法,对数据进行解析操作,可以在此方法对数据进行合法性判断。 + +4. 实现 `getExcelResult` 方法,对结果进行操作,例如返回成功、失败的统计数据。 + +## 更多功能 + +更多导入功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md new file mode 100644 index 00000000..4cb42769 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md @@ -0,0 +1,124 @@ +# 关于OSS模块使用 +- - - +## 重点注意事项 + +`桶/存储区域` 系统会根据配置自行创建分配权限
+~~如手动配置需要设置 `公有读` 权限 否则文件无法访问~~(`aliyun` 还需开通跨域配置)
+1.4.0 版本支持配置`公有/私有`权限(`aliyun` 还需开通跨域配置)
+访问站点 后严禁携带其他 `url` 例如: `/`, `/ruoyi` 等
+**阿里云与腾讯云SDK访问站点中不能包含桶名 系统会自动处理**
+**minio 站点不允许使用 localhost 请使用 127.0.0.1**
+**访问站点与自定义域名 都不要包含 `http` `https` 前缀 设置`https`请使用选项处理** + +## 代码使用 + +> 参考 `SysOssService.upload` 用法
+> 使用 `OssFactory.instance()` 获取当前启用的 `OssClient` 实例
+> 进行功能调用 获取返回值后 存储到对应的业务表 + +![输入图片说明](https://foruda.gitee.com/images/1678978345529639839/d350ec0b_1766278.png "屏幕截图") + + +## 功能配置 + +### 配置OSS + +> 进入 `系统管理 -> 文件管理 -> 配置管理` 填写对应的OSS服务相关配置
+ +![输入图片说明](https://foruda.gitee.com/images/1678978349820700551/1f91a237_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978354387669856/3a91a3a9_1766278.png "屏幕截图")
**重点说明** + +> 云厂商只需修改 `访问站点`对应的域 切勿乱改(云厂商强烈建议绑定自定义域名使用 七牛云必须绑定[官方规定])
+ +![输入图片说明](https://foruda.gitee.com/images/1678978362358100362/5c2c4d20_1766278.png "屏幕截图") + +> 七牛云 访问站点
+ + +![输入图片说明](https://foruda.gitee.com/images/1678978366254745764/e93a65ff_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978369853348732/79e8950e_1766278.png "屏幕截图") + +> 阿里云 访问站点 + +![输入图片说明](https://foruda.gitee.com/images/1678978373981462025/56a70398_1766278.png "屏幕截图") + +> 腾讯云 访问站点 + +![输入图片说明](https://foruda.gitee.com/images/1678978378697093134/785517f3_1766278.png "屏幕截图") + +### MinIO 使用 https访问站点 + +**注意:S3 API 签名计算算法不支持托管 MinIO Server API 的代理方案** + +[ minio https 配置方式](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) + +### 切换OSS + +> 再配置列表点击 `状态` 按钮开启即可(注意: 只能开启一个OSS默认配置)
+> 手动使用 `OssFactory.instance("configKey")`
+ +![输入图片说明](https://foruda.gitee.com/images/1678978383700118702/7f3fa0c5_1766278.png "屏幕截图") + +### 扩展分类 + +> 如有文件分类 建议创建多个 oss配置 进行切换存储
+ +例如: 创建一个 图片存储的 oss配置
+指定唯一的 `configKey` 与 `前缀目录` 或 直接使用独立的`桶`
+独立桶的特点 可以自定义访问权限
+例如: 创建一个私有文件存储桶 不对外开放
+ +![输入图片说明](https://foruda.gitee.com/images/1678978389139754119/140be1df_1766278.png "屏幕截图") + +> 指定需要使用的配置
+> 使用 `OssFactory.instance("image")` 获取的 `OssClient` 会加载上图的配置 从而达到上传不同的目录或桶 + + +![输入图片说明](https://foruda.gitee.com/images/1678978397550123641/1b536881_1766278.png "屏幕截图") + + +### 上传图片或文件 + +> 进入 `系统管理 -> 文件管理` 点击 `上传文件` 或 `上传图片` 根据选项选择即可 会对应上传到配置开启的OSS内
+ +![输入图片说明](https://foruda.gitee.com/images/1678978401028132972/445d058e_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978404388284503/5459da29_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978408761764835/c81651fc_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978412748494539/7bae621f_1766278.png "屏幕截图") + +### 列表展示 + +> 默认展示图片(可预览) 文件会展示路径
+ +![输入图片说明](https://foruda.gitee.com/images/1678978416327601385/af1ecb3b_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978422249633007/19d68eaa_1766278.png "屏幕截图") + +> 可以点击 `预览禁用启用` 按钮对是否展示进行更改 + +![输入图片说明](https://foruda.gitee.com/images/1678978426017014926/4f7fa3f3_1766278.png "屏幕截图") + +> 点击禁用后 图片会变成路径展示 + +![输入图片说明](https://foruda.gitee.com/images/1678978429692592556/0231d778_1766278.png "屏幕截图") + +> 也可再 `参数设置` 更改预览状态 将 `OSS预览列表资源` 改为 `false` 即可关闭预览 + +![输入图片说明](https://foruda.gitee.com/images/1678978433769403801/7d480e76_1766278.png "屏幕截图") + +### 删除功能 + +> 点击列表上方或后方 `删除` 按钮 会根据OSS服务商类型 调用对应的删除(注意: 需确保对应的服务商配置正确)
+> 可勾选多服务商类型的文件进行删除 系统会自动判断 + +![输入图片说明](https://foruda.gitee.com/images/1678978438265941745/f32edc72_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678978441938542080/43ed7c3d_1766278.png "屏幕截图") + +### 下载功能 + +> 点击列表后方对应资源的 `下载` 按钮 根据需求填写文件名 点击确认即可完成下载 + +![输入图片说明](https://foruda.gitee.com/images/1678978448927336261/409af888_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678978452761792483/ed0a4a72_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md new file mode 100644 index 00000000..2aafe47b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md @@ -0,0 +1,29 @@ +# 分页功能 +- - - + +## 重点说明 + +> 项目使用 `mybatis-plus` 分页插件 实现分页功能 大致用法与 MP 一致 [MP分页文档](https://baomidou.com/pages/97710a/)
+> 项目已配置分页合理化 页数溢出 例如: 一共5页 查了第6页 默认返回第一页
+ +![输入图片说明](https://foruda.gitee.com/images/1678977804058241635/b5cb362d_1766278.png "屏幕截图") + +## 代码用法 + +> `Controller` 使用 `PageQuery` 接收分页参数 具体参数参考 `PageQuery` + +![输入图片说明](https://foruda.gitee.com/images/1678977844048821356/1f994221_1766278.png "屏幕截图") + +> 构建 `Mybatis-Plus` 分页对象
+> 使用 `PageQuery#build()` 方法 可快速(基于当前对象数据)构建 `MP` 分页对象 + +![输入图片说明](https://foruda.gitee.com/images/1678977862816976499/b82c1638_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678977876194578744/eaa7b854_1766278.png "屏幕截图")
+ +具体用法与 `MP` 一致 + +> 自定义 `SQL` 方法分页
+> 只需在 `Mapper` 方法第一个参数和返回值 重点: 第一个参数 标注分页对象 + +![输入图片说明](https://foruda.gitee.com/images/1678977898181729571/6e102731_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678977906788451483/70979292_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md new file mode 100644 index 00000000..95ee19d8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md @@ -0,0 +1,158 @@ +# 参数校验 +- - - + +参数校验在日常开发中十分常见,在本框架中引入了 `spring-boot-starter-validation` 依赖,底层基于 `hibernate-validator`,可以对参数进行校验。 + +## 参数校验使用 + +### 方法一:使用 `@Validated` 注解 + +#### 步骤一:标注 `@Validated` + +`@Validated` 可以标注在类上,或者是参数前。 + +```Java +/** 标注在类上 **/ +@Validated +@RestController +@RequestMapping("/auth") +public class AuthController { + + @PostMapping("/login") + public R login(@RequestBody LoginBody body) { + // ... + } + +} +``` + +```Java +/** 标注在参数前 **/ +@PostMapping +public R add(@Validated @RequestBody SysUserBo user) { + // ... +} +``` + +#### 步骤二:标注校验注解 + +在参数中加入校验注解。 + +```Java +public class SysUserBo { + + @NotBlank(message = "用户账号不能为空") + @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") + private String userName; + + @NotBlank(message = "用户昵称不能为空") + @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") + private String nickName; + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") + private String email; + +} +``` + +常见校验注解见文末附表。 + +_注:message 支持 EL 表达式,{max} 直接读取前面的参数值。_ + +### 方法二:使用校验工具类 `ValidatorUtils` + +`org.dromara.common.core.utils.ValidatorUtils` + +![输入图片说明](https://foruda.gitee.com/images/1700050047426137432/206bd032_4959041.png "屏幕截图") + +使用方式 1:校验所有带有校验注解的属性 + +```Java +// 校验所有带有校验注解的属性 +ValidatorUtils.validate(object); +``` + +使用方式 2:按照分组校验属性(可以传多个分组) + +```Java +// 按照分组校验属性(可以传多个分组) +ValidatorUtils.validate(object, group); +``` + +## 扩展使用 + +### 扩展一:自定义校验注解 + +除了已有的校验注解以外,可以结合业务进行自定义。 + +以框架中的 `@Xss` 注解为例进行说明。 + +```Java +@Xss(message = "用户账号不能包含脚本字符") +@NotBlank(message = "用户账号不能为空") +@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") +private String userName; +``` + +#### 1:新增 `@Xss` 注解 + +`org.dromara.common.core.xss.Xss` + +![输入图片说明](https://foruda.gitee.com/images/1700048074014527096/b4e230c2_4959041.png "屏幕截图") + +#### 2:自定义校验器 + +自定义校验器实现 `jakarta.validation.ConstraintValidator` 接口。 + +`org.dromara.common.core.xss.XssValidator` + +![输入图片说明](https://foruda.gitee.com/images/1700048474563719650/f9172bdc_4959041.png "屏幕截图") + +### 扩展二:自定义分组校验 + +同一个对象在不同的请求中需要校验的参数不同,则可以使用分组校验。 + +#### 1:自定义分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049439236073123/9e0d2e16_4959041.png "屏幕截图") + +#### 2:`@Validated` 注解指定分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049302803077030/c2a985aa_4959041.png "屏幕截图") + +#### 3:校验注解中指定分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049205699437759/96babbd6_4959041.png "屏幕截图") + +## 附录:常用校验注解 + +| 注解 | 使用(只列举特殊参数值) | 参数类型 | 说明 | +|------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| +| @AssertFalse | @AssertFalse | boolean / Boolean | 元素值必须为 false | +| @AssertTrue | @AssertTrue | boolean / Boolean | 元素值必须为 true | +| @DecimalMax | @DecimalMax(value=值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | +| @DecimalMin | @DecimalMin(value=值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | +| @Digits | @Digits(integer=整数位值, fraction=小数位值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须符合整数位以及小数位范围值 | +| @Email | @Email(regexp=正则表达式, flags=标志) | CharSequence | 元素是否符合正则表达式(正则表达式非必传) | +| @Future | @Future | - java.util.Date
- java.util.Calendar
- java.time.Instant
- java.time.LocalDate
- java.time.LocalDateTime
- java.time.LocalTime
- java.time.MonthDay
- java.time.OffsetDateTime
- java.time.OffsetTime
- java.time.Year
- java.time.YearMonth
- java.time.ZonedDateTime
- java.time.chrono.HijrahDate
- java.time.chrono.JapaneseDate
- java.time.chrono.MinguoDate
- java.time.chrono.ThaiBuddhistDate | 元素必须是未来的时刻、日期或时间 | +| @FutureOrPresent | @FutureOrPresent | 同 @Future | 元素必须是当前或未来的时刻、日期或时间 | +| @Length | @Length(min=最小值, max=最大值) | - CharSequence | 验证字符串是否在包含的 min 和 max 之间 | +| @Max | @Max(value=值) | - BigDecimal
- BigInteger
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | +| @Min | @Min(value=值) | - BigDecimal
- BigInteger
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | +| @Negative | @Negative | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的负数(即 0 被视为无效值) | +| @NegativeOrZero | @NegativeOrZero | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须为负数或 0 | +| @NotBlank | @NotBlank | CharSequence | 元素不能为 null,并且必须至少包含一个非空白字符 | +| @NotEmpty | @NotEmpty | - CharSequence
- Collection
- Map
- Array | 元素不能为 null 或空集合 | +| @NotNull | @NotNull | 不限类型 | 元素不能为 null | +| @Null | @Null | 不限类型 | 元素必须为 null | +| @Past | @Past | 同 @Future | 元素必须是过去的瞬间、日期或时间 | +| @PastOrPresent | @PastOrPresent | 同 @Future | 元素必须是过去或现在的瞬间、日期或时间 | +| @Pattern | @Pattern(regexp=正则表达式, flags=标志) | CharSequence | 元素必须与指定的正则表达式匹配(正则表达式遵循 Java 正则表达式约定) | +| @Positive | @Positive | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的正数(即 0 被视为无效值) | +| @PositiveOrZero | @PositiveOrZero | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须为正数或 0 | +| @Range | @Range(min=最小值, max=最大值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 验证元素是否在包含的 min 和 max 之间 | +| @Size | @Size(min=最小值, max=最大值) | - CharSequence
- Collection
- Map
- Array | 验证元素是否在包含的 min 和 max 之间 | +| @Valid | @Valid | 对象 | 级联验证 | + +更多注解可参考包: `org.hibernate.validator` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md new file mode 100644 index 00000000..62ce2946 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md @@ -0,0 +1,144 @@ +# 关于数据权限 +- - - +* 参考 demo 模块用法(需导入 test.sql 文件) + +### 新版数据权限功能: +1.支持自动注入 sql 数据过滤
+2.查询、更新、删除 限制
+3.支持自定义数据字段过滤
+4.模板支持 spel 语法实现动态 Bean 处理
+5.支持与菜单权限标识符联合使用(2.2.X新功能) + +### 数据权限相关代码 + +| 类 | 说明 | 功能 | +|-------------------------------|-----------------|----------------------------------------| +| DataScopeType | 数据权限模板定义 | 用于定义数据权限模板 | +| DataPermission | 数据权限组注解 | 用于标注开启数据权限 (默认过滤部门权限) | +| DataColumn | 具体的数据权限字段标注 | 用于替换数据权限模板内的 key 变量 | +| PlusDataPermissionInterceptor | 数据权限 sql 拦截器 | 用于拦截所有 sql 检查是否标注了 `DataPermission` 注解 | +| PlusDataPermissionHandler | 数据权限处理器 | 用于处理被拦截到的 sql 为其添加数据权限过滤条件 | +| DataPermissionHelper | 数据权限助手 | 操作数据权限上下文变量 | +| SysDataScopeService | 自定义 Bean 处理数据权限 | 用于自定义扩展 | + +## 忽略数据权限 + +1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: +``` +@InterceptorIgnore(dataPermission = "true") +``` + +2.如果需要在业务层忽略数据权限,可调用以下方法: +``` +# 无返回值 +DataPermissionHelper.ignore(() -> { 业务代码 }); +# 有返回值 +Class result = DataPermissionHelper.ignore(() -> { return 业务代码 }); +``` + +### 使用方式 `参考demo模块` +数据权限体系 `用户 -> 多角色 => 角色 -> 单数据权限` +> 例子: 用户A 拥有两个角色
+> 角色A 部门经理 可查看 本部门及以下部门的数据
+> 角色B 兼职开发 可查看 仅自己的数据 + +> 创建角色 test1 为 本部门及以下 + +![输入图片说明](https://foruda.gitee.com/images/1678978669666831574/b51ed0a3_1766278.png "屏幕截图") + +> 创建角色 test2 为 仅本人 + +![输入图片说明](https://foruda.gitee.com/images/1678978674159035056/69cf32ad_1766278.png "屏幕截图") + +> 将其分配给用户 test + +![输入图片说明](https://foruda.gitee.com/images/1678978680492570269/a47b6afc_1766278.png "屏幕截图") + +### 编写列表查询(注意: 数据权限注解只能在 Mapper 层使用) + +> 标注数据权限注解 `dept_id` 为过滤部门字段 `user_id` 为过滤创建用户 + +![输入图片说明](https://foruda.gitee.com/images/1678978687179608427/d6b83c30_1766278.png "屏幕截图") + +### 重点注意: 如下情况不生效 + +> 有自定义实现方法 最终执行的mapper不是这个方法 所以无法生效 +> +> 解决方案: 一直往下点 找到最终的执行mapper重写即可 + +![输入图片说明](https://foruda.gitee.com/images/1678978692558777291/78b0a3dd_1766278.png "屏幕截图") + +### 编写数据权限模板 + +![输入图片说明](https://foruda.gitee.com/images/1678978697141183499/cfc1cb6a_1766278.png "屏幕截图") + +1.`code` 为关联角色的数据权限 `code`
+2.`sqlTemplate` 为 sql 模板
+`#{#deptName}` 为模板变量 对应权限注解的 `key`
+`#{@sdss}` 为模板 Bean 调用 调用其 Bean 的处理方法
+3.`elseSql` 为兜底 sql 处理当前角色与标注的注解 无对应的情况
+例如 数据权限为仅本人 且 方法并未标注具体过滤注解 则 填充 `1 = 0` 使条件不满足 不允许查看
+更详细用法可以参考 `DataScopeType` 注释 + +### 测试代码 + +> 使用 `管理员` 用户优先测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978703250082481/e93a68a5_1766278.png "屏幕截图") + +> 使用 `test` 用户测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978710644676604/d7f80487_1766278.png "屏幕截图") + +> 使用 `test` 删除一条不属于自己的数据 +> sql执行为不满足条件 不允许删除 + +![输入图片说明](https://foruda.gitee.com/images/1678978715711122947/441d61f7_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678978720298532619/a35b1147_1766278.png "屏幕截图") + + +> 使用 `test` 修改与删除同理
+> 具体实现为 更新和删除方法 标注数据权限注解 + +![输入图片说明](https://foruda.gitee.com/images/1678978725329242504/a70491a1_1766278.png "屏幕截图") + +### 自定义SQL模板 + +> 1.首先在角色管理 数据权限下拉框 添加自定义模板
+> 为什么不放置到系统字典问题: 因数据权限与模板绑定 不应随意改动 最好事先定义好 + +![输入图片说明](https://foruda.gitee.com/images/1678978730563169865/3459ee17_1766278.png "屏幕截图") + +> 2.代码 `DataScopeType` 自定义一个SQL模板 + +![输入图片说明](https://foruda.gitee.com/images/1678978735588305505/3f030c67_1766278.png "屏幕截图") + +> 3.标注权限注解 + +![输入图片说明](https://foruda.gitee.com/images/1678978742259837391/eabe5caa_1766278.png "屏幕截图") + +> 4.设置数据权限变量 + +![输入图片说明](https://foruda.gitee.com/images/1678978746778429543/e211201f_1766278.png "屏幕截图") + +> 5.测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978751875467640/7d210cf4_1766278.png "屏幕截图") + +### mybatis-plus 原生方法 增加数据权限过滤 + +> 首先查看需要重写的方法源码 重点`方法源码` `方法源码` `方法源码`
+> 例如重写 `selectPage` 方法
+ +![输入图片说明](https://foruda.gitee.com/images/1678978757955000897/8315695c_1766278.png "屏幕截图") + +> 复制源码到自己的 `Mapper` 并增加数据权限注解 注意左边出现重写图标 即为重写成功
+ +![输入图片说明](https://foruda.gitee.com/images/1678978763224011694/bbea25a1_1766278.png "屏幕截图") + +### 支持类标注 + +> 获取规则 `方法 > 类` 注意: 类标注后 所有方法(包括父类方法) 都会进行数据权限过滤 + +![输入图片说明](https://foruda.gitee.com/images/1678978767336534896/fb13ee99_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md new file mode 100644 index 00000000..6931ca7a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md @@ -0,0 +1,178 @@ +# 权限控制 +- - - + +本文采用 `Sa-Token` 框架实现权限控制。[官方文档传送门](https://sa-token.cc/doc.html#/) + +## 权限校验 +权限校验指的是校验用户是否拥有访问某个 API 的能力。 + +通常情况下,一个 API 对应一个权限码,如果用户具备当前 API 的权限码,即代表有能力访问该 API。 + +### 1:权限标识 +在本系统中,每一个菜单功能都有对应的权限标识,可以在菜单管理中进行设置。 + +> 注: +> 1. 前后端的权限标识要保持一致。 +> 2. 权限标识可以使用通配符`*`。 + +![输入图片说明](https://foruda.gitee.com/images/1701086497939145368/133fb327_4959041.png "屏幕截图") + + +### 2:校验方法 +#### 2.1:使用 `@SaCheckPermission` 注解进行校验 +`@SaCheckPermission` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 + +- 单个权限校验: + +```Java +@SaCheckPermission("system:user:list") +``` + +- 多个权限校验(或模式,满足任意一个权限即可): + +```Java +@SaCheckPermission( + value = { + "system:user:list", + "system:user:query" + }, + mode = SaMode.OR +) +``` + +- 多个权限校验(与模式,必须满足所有权限): + +```Java +@SaCheckPermission( + value = { + "system:user:list", + "system:user:query" + }, + mode = SaMode.AND +) +``` + +#### 2.2:使用 `StpUtil` 工具类校验 +`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 + +- 判断当前用户是否拥有某个权限(返回 `boolean`): + +```Java +StpUtil.hasPermission("system:user:list"); +``` + +- 单个权限校验: + +```Java +StpUtil.checkPermission("system:user:list"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +- 多个权限校验(或模式,满足任意一个权限即可): + +```Java +StpUtil.checkPermissionOr("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +- 多个权限校验(与模式,必须满足所有权限): + +```Java +StpUtil.checkPermissionAnd("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +## 角色校验 +角色校验指的是校验用户是否拥有某个指定角色。 + +### 1:权限标识 +在本系统中,每个角色都拥有唯一的权限字符。 + +除了超级管理员角色外,其他角色的权限字符可以通过角色管理进行设置。 + +![输入图片说明](https://foruda.gitee.com/images/1701085080527279823/3255961d_4959041.png "屏幕截图") + +### 2:校验方法 +#### 2.1:使用 `@SaCheckRole` 注解校验 +`@SaCheckRole` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 + +- 单个角色校验 + +```Java +@SaCheckRole("superadmin") +``` + +- 多个角色校验(或模式,满足任意一个角色即可): + +```Java +@SaCheckRole( + value = { + "superadmin", + "admin" + }, + mode = SaMode.OR +) +``` + +- 多个角色校验(与模式,必须满足所有角色): + +```Java +@SaCheckRole( + value = { + "superadmin", + "admin" + }, + mode = SaMode.AND +) +``` + +#### 2.2:使用 `StpUtil` 工具类校验 +`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 + +- 判断当前用户是否拥有某个角色(返回 `boolean`): + +```Java +StpUtil.hasRole("superadmin") +``` + +- 单个权限校验: + +```Java +StpUtil.checkRole("system:user:list"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +- 多个权限校验(或模式,满足任意一个角色即可): + +```Java +StpUtil.checkRoleOr("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +- 多个权限校验(与模式,必须满足所有角色): + +```Java +StpUtil.checkRoleAnd("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +## 角色权限双重 `OR` 校验 +除了分开校验以外,权限和角色也可以进行组合,表示备选校验。 + +简单举个例子: + +假设某个 API 的权限码为 `system:user:list`,角色 `admin` 可以调用,则可以这样写: + +```Java +@SaCheckPermission(value = "system:user:list", orRole = "admin") +``` + +以上权限只需要满足任意一项即可。更多写法可以参考 `Sa-Token` [官方文档](https://sa-token.cc/doc.html#/use/at-check?id=_4%e3%80%81%e8%a7%92%e8%89%b2%e6%9d%83%e9%99%90%e5%8f%8c%e9%87%8d-or%e6%a0%a1%e9%aa%8c)。 + +## 当前用户的所有权限 +本系统中实现了 `StpInterface` 接口,可以对用户的权限以及角色进行管理,并且可以根据不同的用户类型进行设置。 + +具体参考类:`org.dromara.common.satoken.core.service.SaPermissionImpl` + +## 忽略权限校验 +请参考文档:[网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release?id=网关路由与放行) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md new file mode 100644 index 00000000..9b08f069 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md @@ -0,0 +1,26 @@ +# 网关路由与放行 +- - - + +## 新增路由 +`ruoyi-gateway.yml` 配置文件 增加 `routers` 配置
+**注意: 路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**
+下图代表 `resource/**` 将所有 `resource开头的路径` 都路由到 `ruoyi-resource` 服务
+例如: `/resource/sms/code` `resource路由到ruoyi-resource服务` `sms路由到对应的contrller` `code 路由到对应的接口`
+![输入图片说明](https://foruda.gitee.com/images/1669623462957266512/c282932b_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1669623527799049459/201a52db_1766278.png "屏幕截图") + +## 放行使用方式 +nacos 中 `ruoyi-gateway.yml` 白名单放行
+**注意: 放行路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**
+示例: `/resource/sms/code` 代表 `ruoyi-resource服务 sms的controller code接口`
+![输入图片说明](https://foruda.gitee.com/images/1660622672461635175/屏幕截图.png "屏幕截图.png") + +## 注意事项 + +接口放行后不需要token即可访问
+但是没有token也就无法获取用户信息与鉴权 + +### 解决方案 +删除接口上的鉴权注解
+删除接口内获取用户信息功能
+删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md new file mode 100644 index 00000000..2e3cd739 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md @@ -0,0 +1,68 @@ +# 第三方授权功能 +- - - +## 版本 >= 2.X + +## 前置说明 +1. 该功能基于 `JustAuth` 实现,支持多家平台实现第三方授权登录。 +2. 以 `Gitee` 授权登录为例进行本功能的使用说明。 +3. 其他第三方授权配置信息获取方式可参考 `JustAuth` [官方文档](https://www.justauth.cn/guide/)。
+ + ![输入图片说明](https://foruda.gitee.com/images/1690937097426867003/91d80587_4959041.png "屏幕截图") + +## 第三方授权配置 + +### 申请三方应用(以gitee为例) + +![输入图片说明](https://foruda.gitee.com/images/1700641775779304627/1cf1b56f_1766278.png "屏幕截图") + +### 更改后端配置 `application-dev.yml` + +![输入图片说明](https://foruda.gitee.com/images/1690936741844431943/580f8998_4959041.png "屏幕截图") + +**注:内网地址无法回调,请使用外网可以访问的地址。** + +![输入图片说明](https://foruda.gitee.com/images/1690940457570856867/ce22df18_4959041.png "屏幕截图") + +### 更改前端配置 `login.vue` + +![输入图片说明](https://foruda.gitee.com/images/1690937306197173754/5c1ece29_4959041.png "屏幕截图") + +## 授权登录(未绑定第三方平台) + +### 步骤一:个人中心授权第三方应用 + +![输入图片说明](https://foruda.gitee.com/images/1690938449386201097/ea375106_4959041.png "屏幕截图") + +### 步骤二:同意授权 + +![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") + +顶部出现授权成功,并跳转到系统首页。
+ +![输入图片说明](https://foruda.gitee.com/images/1690938559178527841/563168e4_4959041.png "屏幕截图")
+ +![输入图片说明](https://foruda.gitee.com/images/1690938636375977741/8ceb77cf_4959041.png "屏幕截图") + +查看第三方应用可看到授权成功的个人信息。
+ +![输入图片说明](https://foruda.gitee.com/images/1690938725512311321/5532a2a9_4959041.png "屏幕截图") + +## 授权登录(已绑定第三方平台) + +### 步骤一:点击登录页面图标 + +![输入图片说明](https://foruda.gitee.com/images/1690938908352243992/fd044381_4959041.png "屏幕截图") + +### 步骤二:同意授权 + +![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") + +## 解除授权绑定 + +### 步骤一:个人中心点击解绑第三方应用 + +![输入图片说明](https://foruda.gitee.com/images/1690939087877969002/4ef324e7_4959041.png "屏幕截图") + +### 步骤二:点击确定完成解绑 + +![输入图片说明](https://foruda.gitee.com/images/1690939108017661775/7236088d_4959041.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md new file mode 100644 index 00000000..b57c3f63 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md @@ -0,0 +1,121 @@ +# 多租户功能 +- - - +## 版本 >= 2.X + +## 前置说明(重要) +1. 本框架多租户功能的实现是基于 [MyBatis-Plus 多租户插件](https://baomidou.com/pages/aef2f2/#tenantlineinnerinterceptor) 的,只支持最简单的隔离。 +2. 本系统默认开启多租户功能。 +3. 多租户业务表建表需要加上租户id `tenant_id`,可参考其他系统表。 +4. 非多租户表可在配置文件进行配置排除。 +5. 只有超级管理员支持切换租户。 + +## 多租户使用流程(先说结论再展开!) +0. 开启多租户配置(系统默认已经开启) +1. 登录界面(可以选择不同租户) +> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 +2. 设置多租户套餐 +3. 新增/修改租户(需要选择套餐) +4. 切换租户(仅超级管理员可操作) + +## 多租户配置 +`application-common.yml`
+ +> 开关 `enable` 节点不用废话。
+> 如果不需要过滤租户的表可在 `excludes` 节点下添加。 + +**注意: 如果已经基于租户模式启动了程序 关闭租户必须删除mysql与redis内的相关数据重新导入sql** + +![输入图片说明](https://foruda.gitee.com/images/1680168468127690787/2cd3279e_4959041.png "屏幕截图") + +## 忽略租户 + +1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: +``` +@InterceptorIgnore(tenantLine = "true", dataPermission = "false") +``` +**此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效** + +2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用): +``` +# 无返回值 +TenantHelper.ignore(() -> { 业务代码 }); +# 有返回值 +Class result = TenantHelper.ignore(() -> { return 业务代码 }); +``` + +## 动态切换租户 + +**仅适用于特殊需求业务(例如: 创建租户时, 对该租户操作一些数据, 或者需要去其他租户查一些数据等) 禁止乱用后果自负** + +``` +# 无返回值 +TenantHelper.dynamic(租户id, () -> { 业务代码 }); +# 有返回值 +Class result = TenantHelper.dynamic(租户id, () -> { return 业务代码 }); +``` + +## 登录界面 + +![输入图片说明](https://foruda.gitee.com/images/1680173982933030545/bca146d7_4959041.png "屏幕截图") + +> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 + +## 租户套餐管理 +### 租户套餐新增 +![输入图片说明](https://foruda.gitee.com/images/1680174317475230288/352957a1_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680174602877523112/fc194f17_4959041.png "屏幕截图") + +> 注: +> 1、先新增套餐再新增租户,因为租户新增之后无法修改所选套餐。 +> 2、租户所关联的套餐如果后续有修改可以进行同步。 + + +## 租户管理 +### 默认租户 +> 注:默认租户无法修改 + +![输入图片说明](https://foruda.gitee.com/images/1680174738913576400/b6aca11a_4959041.png "屏幕截图") + +### 新增租户 +#### 填写表单 +![输入图片说明](https://foruda.gitee.com/images/1680174945220618443/f7181b51_4959041.png "屏幕截图") + +#### 选择新增的租户套餐 +![输入图片说明](https://foruda.gitee.com/images/1680174991869792688/0dbaadd6_4959041.png "屏幕截图") + +#### 新增完成 +![输入图片说明](https://foruda.gitee.com/images/1680175033853525725/42e64b4d_4959041.png "屏幕截图") + +#### 登录租户 +![输入图片说明](https://foruda.gitee.com/images/1680176145378931134/e05f347e_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176208161104366/44a935f1_4959041.png "屏幕截图") + +### 修改租户 +#### 配置域名 +![输入图片说明](https://foruda.gitee.com/images/1680175251192690133/141fa6a6_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680175431036971650/db522d39_4959041.png "屏幕截图") + +#### 没有配置域名 +![输入图片说明](https://foruda.gitee.com/images/1680175541165540240/95e211f7_4959041.png "屏幕截图") + +#### 强调一下:这不是bug! +> 注:域名的配置就是为了绑定特定租户! + +### 同步套餐 +应用场景:租户套餐进行了修改,配置的菜单需要同步到特定租户。 +(不是所有租户都有更新套餐的权利, 这是跟钱挂钩的) + +> 点一下按钮的事,图略。 + +## 切换租户(仅超级管理员) +> 注:管理员切换租户不是切换用户,切换的只是数据,管理员拥有所有权限。 + +![输入图片说明](https://foruda.gitee.com/images/1680176324802967804/5c5d6fc3_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176431031189788/0c3f924c_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176496555243569/624ec677_4959041.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md new file mode 100644 index 00000000..99050fa7 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md @@ -0,0 +1,85 @@ +# 系统用户相关 +- - - + +> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装
+ +## 用户登录 + +> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录
+> 例如: `同表不同类型` `不同表` `同表+扩展表`
+ +![输入图片说明](https://foruda.gitee.com/images/1699590555824776931/63d493fc_1766278.png "屏幕截图") + +## 获取用户信息 + +> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息 + +请求头传递格式: `Authorization: Bearer token` + +后端获取用户信息: +```java +LoginUser user = LoginHelper.getLoginUser(); +``` + +## 获取用户信息(基于token) +```java +LoginUser user = LoginHelper.getLoginUser(token); +``` + +## 获取登录用户id +```java +Long userId = LoginHelper.getUserId(); +``` + +## 获取登录用户账户名 +```java +String username = LoginHelper.getUsername(); +``` + +## 获取登录用户所属租户id +```java +String tenantId = LoginHelper.getTenantId(); +``` + +## 获取登录用户所属部门id +```java +Long deptId = LoginHelper.getDeptId(); +``` + +## 获取登录用户类型 +```java +UserType userType = LoginHelper.getUserType(); +``` + +## 获取登录用户其他扩展属性 +```java +Object obj = LoginHelper.getExtra(key); +``` + +## 设置登录用户其他扩展属性 + +参考登录设置 `clientId` 属性 + +![输入图片说明](https://foruda.gitee.com/images/1699591164562734430/42730add_1766278.png "屏幕截图") + +## 判断用户是否为超级管理员 + +```java +// 判断当前登录用户 +boolean b = LoginHelper.isSuperAdmin(); +// 判断用户基于id +boolean b = LoginHelper.isSuperAdmin(userId); +``` + +## 判断用户是否为租户管理员 + +```java +// 判断当前登录用户 +boolean b = LoginHelper.isTenantAdmin(); +// 判断用户基于角色组 +boolean b = LoginHelper.isSuperAdmin(rolePermission); +``` + +## 其他更多操作 +[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth) + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md new file mode 100644 index 00000000..77cde6ef --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md @@ -0,0 +1,12 @@ +# 关于多表查询 +- - - +## 建议单表查询 + +文章连接: [大连接查询分解好处](https://java.isture.com/db/mysql/mysql-x-optimize-decompose-connection.html) + +![输入图片说明](https://foruda.gitee.com/images/1678979482724037085/1e74f3e1_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1666336728402711844/52788205_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1666336945935088277/f60e3288_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1666336954686520161/c6c83adc_1766278.png "屏幕截图")
+**(上图出自 <高性能MySql>)** \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md new file mode 100644 index 00000000..c960140d --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md @@ -0,0 +1,19 @@ +# 主键使用说明 +- - - +## 关于如何使用分布式id或雪花id + +参考 `MybatisPlusConfig` 如需自定义 修改 `Bean` 实现即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979401707903546/e25f6c06_1766278.png "屏幕截图") + +框架默认集成 雪花ID 只需全局更改 主键类型即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979411517764918/1470df04_1766278.png "屏幕截图") + +如单表使用 可单独配置注解 + +![输入图片说明](https://foruda.gitee.com/images/1678979416033986923/2a4c3736_1766278.png "屏幕截图") + +### 重点说明 +* 由于雪花id位数过长 `Long` 类型在前端会失真 +* 框架已配置序列化方案 超越 `JS` 最大值自动转字符串 参考 `BigNumberSerializer` 类 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md new file mode 100644 index 00000000..4c521ad1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md @@ -0,0 +1,6 @@ +# 单元测试 +- - - +## 参考文章 +[SpringBoot 2.X 整合 JUnit5 及全方位使用手册](https://lionli.blog.csdn.net/article/details/127576604) +## 参考代码(1.4.0新增) +![输入图片说明](https://foruda.gitee.com/images/1666973151030696086/6d44f4c2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md new file mode 100644 index 00000000..2b4966dc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md @@ -0,0 +1,45 @@ +# 事务相关 +- - - +若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86) 以下对多数据源事务做补充: + + +## 多服务多数据源事务(框架已默认对接 直接使用seata注解即可) + +框架支持对接 `seata` 保证分布式多数据源事务
+详情参考多数据源框架文档连接: https://www.kancloud.cn/tracy5546/dynamic-datasource/2268607 + +## 本地多数据源事务 +请使用 `@DSTransactional` 注解 会代理 `@DS` 注解切换后的数据源事务做回滚处理
+只要 `@DSTransactional` 注解下任一环节发生异常,则全局多数据源事务回滚。
+如果BC上也有 `@DSTransactional` 会有影响吗?答:没有影响的。 + +```java +//如AService调用BService和CService的方法,A,B,C分别对应不同数据源。 + +public class AService { + + @DS("a")//如果a是默认数据源则不需要DS注解。 + @DSTransactional + public void dosomething(){ + BService.dosomething(); + CService.dosomething(); + } +} + +public class BService { + + @DS("b") + public void dosomething(){ + //dosomething + } +} + +public class CService { + + @DS("c") + public void dosomething(){ + //dosomething + } +} +``` + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md new file mode 100644 index 00000000..be4ce445 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md @@ -0,0 +1,39 @@ +# 数据加解密 +- - - + +## 1:API 加密注解 `@ApiEncrypt` +1. 对于标注了 `@ApiEncrypt` 注解的接口,请求参数都必须进行加密。 +2. 注解的参数 `response` 为响应加密标识,默认 `false` 不加密,为 `true` 表示响应加密。 +3. 加密解密逻辑由过滤器实现,详情可参考 `org.dromara.common.encrypt.filter.CryptoFilter`。 + +## 2:API 加密配置 +`application-common.yml` + +![输入图片说明](https://foruda.gitee.com/images/1701133628809355269/8979704a_4959041.png "屏幕截图") + +`.env.development` / `.env.production` + +![输入图片说明](https://foruda.gitee.com/images/1709533252413969800/1d0dff25_1766278.png "屏幕截图") + +> 注: +> 1. 注意修改 Nacos 配置。 +> 2. 公私钥与前端配置文件互为配对,如果需要更换请一同更换。 +> 3. 后端公钥对应前端私钥;后端私钥对应前端公钥。 + +## 3:前端开启加密 +如果需要开启 API 加密,则需要修改 `request` 的 `headers` 内容: +```Javascript +headers: { + isEncrypt: true +} +``` + +![输入图片说明](https://foruda.gitee.com/images/1701137141916998346/5e839bbe_4959041.png "屏幕截图") + +## 4.关于请求响应参数加解密说明 + +如何加解密请求响应参数看这里 -> [关于请求响应参数解密](/questions/api_encrypt.md) + +## 密钥生成说明 + +![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md new file mode 100644 index 00000000..21114cd4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md @@ -0,0 +1,45 @@ +# 多数据源 +- - - + +### 框架默认 mysql 其他数据库使用说明 + +找到 `ruoyi-common-mybatis` 模块在 pom 文件内增加对应的jdbc依赖 + +![输入图片说明](https://foruda.gitee.com/images/1721098535176969987/d42870ca_1766278.png "屏幕截图") + + +### 关于多数据源事务 具体参考 `事务相关` 文档说明 + +### 多数据源框架功能介绍 +多数据源框架官方文档: [dynamic-datasource文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611) + +* 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 +* 支持数据库敏感配置信息 加密 ENC()。 +* 支持每个数据库独立初始化表结构schema和数据库database。 +* 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 +* 支持 自定义注解 ,需继承DS(3.2.0+)。 +* 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。 +* 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。 +* 提供 自定义数据源来源 方案(如全从数据库加载)。 +* 提供项目启动后 动态增加移除数据源 方案。 +* 提供Mybatis环境下的 纯读写分离 方案。 +* 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。 +* 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。 +* 提供 基于seata的分布式事务方案。 +* 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。 + +### 用法说明 + +> 加载顺序 `方法 => 类 => 默认`
+ +![输入图片说明](https://foruda.gitee.com/images/1678979069737596299/abe8ae7f_1766278.png "屏幕截图") + +### 配置方式 + +![输入图片说明](https://foruda.gitee.com/images/1678979074000345758/b9238f0b_1766278.png "屏幕截图") + +### 数据库异构 + +例如: `mysql + oracle` 参考对应多数据源框架文档 [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource) + +![输入图片说明](https://foruda.gitee.com/images/1678979078387192317/2de94a78_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md new file mode 100644 index 00000000..729a3039 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md @@ -0,0 +1,38 @@ +# 数据加解密 +- - - +## 框架版本 >= 1.6.0 + +## 引入依赖 + +```xml + + com.ruoyi + ruoyi-common-encrypt + +``` + +## 功能说明 + +数据库 数据存储加密 查询解密功能
+支持加密算法: `BASE64` `AES` `RSA` `SM2` `SM4` + +## 注解 `@EncryptField` + +![输入图片说明](https://foruda.gitee.com/images/1675577493013639395/cd920f15_1766278.png "屏幕截图") + +## 用法说明 + +**详细用法可参考案例 TestEncryptController 测试数据库加解密功能** + +全局默认加密配置(如果注解不配置则使用全局配置) + +![输入图片说明](https://foruda.gitee.com/images/1675577674063566357/dee94786_1766278.png "屏幕截图") + +注解可自定义算法与配置 + +![输入图片说明](https://foruda.gitee.com/images/1675577725117970708/7ee7a833_1766278.png "屏幕截图") + +## 密钥生成说明 + +![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md new file mode 100644 index 00000000..5f706710 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md @@ -0,0 +1,29 @@ +# 防重幂等 +- - - +## 功能介绍 + +防重功能为防止两条相同的数据重复提交导致脏数据或业务错乱
+**注意: 重复提交属于小概率事件 请不要拿并发压测与之相提并论**
+框架防重功能参考 `美团GTIS防重系统` 使用 请求参数与用户Token或URL 生成全局业务ID
+有效防止 `同一个用户` 在 `限制时间` 内对 `同一个业务` 提交 `相同的数据` + +框架防重处理 `支持业务失败或异常` 快速释放限制
+业务处理成功后 会在设置时间内 限制同一条数据的提交
+**注意: 只对同一个用户的同一个接口提交相同的数据有效** + + + + +### 美团GTIS系统流程图 + +[美团 分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html) + +![输入图片说明](https://foruda.gitee.com/images/1678979231862359032/34f030c5_1766278.png "屏幕截图") + +### 使用方法 + +在Controller标注 `@RepeatSubmit` 注解即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979236772683145/9fa27e5b_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678979240831458322/8e1fac4b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md new file mode 100644 index 00000000..ce089802 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md @@ -0,0 +1,15 @@ +# 邮件功能 +- - - +## 配置功能 + +修改配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1663555260932007318/fabb2bfa_1766278.png "屏幕截图") + +* `enabled` 为邮件功能开关 + +## 功能使用 + +参考 `demo` 模块 `MailController` 邮件演示案例 + +![输入图片说明](https://foruda.gitee.com/images/1663555374113593089/885b4db2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md new file mode 100644 index 00000000..3e2d92ba --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md @@ -0,0 +1,33 @@ +# 数据脱敏 +- - - +## 功能说明 + +系统使用 `Jackson` 序列化策略 对标注了 `Sensitive` 注解的属性进行脱敏处理 + +## 使用教程 + +> 使用注解标注需要脱敏的字段 选择对应的策略 + +![输入图片说明](https://foruda.gitee.com/images/1699523591703893602/ffd6dba2_1766278.png "屏幕截图") + +* strategy 脱敏策略 +* roleKey 角色code(判断用户是否拥有角色权限) +* perms 权限code(判断用户是否拥有标识符权限) + +![输入图片说明](https://foruda.gitee.com/images/1678979315796014155/614adf91_1766278.png "屏幕截图") + +> 可再 `SensitiveStrategy` 内自定义策略 + +![输入图片说明](https://foruda.gitee.com/images/1678979319996224858/3b3e3c8b_1766278.png "屏幕截图") + +## 脱敏逻辑修改 + +> 系统使用通用接口处理是否需要脱敏 多个系统可以自定义不同的脱敏逻辑实现 + +![输入图片说明](https://foruda.gitee.com/images/1678979325448998856/b262e425_1766278.png "屏幕截图") + +> 系统默认处理逻辑为 根据角色与标识符或非管理员脱敏 可自行修改默认实现 + +![输入图片说明](https://foruda.gitee.com/images/1699523752627488891/f82f2f50_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md new file mode 100644 index 00000000..81fb345a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md @@ -0,0 +1,51 @@ +# 短信模块 +- - - + +# 配置功能 + +### 版本: >= v2.1.0 + +已完成 sms4j 项目整合 文档地址: https://sms4j.com/doc3 + +配置方式 具体厂商配置扩展 可以查看sms4j文档 + +![输入图片说明](https://foruda.gitee.com/images/1705573035997239848/2ca8512d_1766278.png "屏幕截图") + +使用方式 参考文档各种写法 下方为 demo 模块提供示例 + +![输入图片说明](https://foruda.gitee.com/images/1705573001447394180/2bd726d0_1766278.png "屏幕截图") + +### 版本: v1.2.0 提供短信模块 + +短信模块采用SPI加载
+使用哪家的短信 引入哪家的依赖 即可动态加载
+目前支持: `阿里云` `腾讯云` 欢迎扩展PR其他 + +> 参考 `ruoyi-demo` pom文件写法 + +![输入图片说明](https://foruda.gitee.com/images/1678979157797419426/cc9b7444_1766278.png "屏幕截图") + +> 修改配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1678979163029635375/e5fd6e20_1766278.png "屏幕截图") + +* `enabled` 为短信功能开关 +* `endpoint` 为域名 各厂家域名固定 按照文档配置即可 +* `accessKeyId` 密钥id +* `accessKeySecret` 密钥密匙 +* `signName` 签名 +* `sdkAppId` 应用id 腾讯专用 + +## 功能使用 + +参考 `demo` 模块 `SmsController` 短信演示案例
+功能采用 `模板模式` 动态加载对应厂家的工具模板
+引入 `SmsTemplate` 即可使用 + +![输入图片说明](https://foruda.gitee.com/images/1678979168699323982/e9301e84_1766278.png "屏幕截图") + +## 重点须知 + +由于各厂家参数解析不一致 请遵守以下规则 + +![输入图片说明](https://foruda.gitee.com/images/1678979172581090456/ac1f10e8_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md new file mode 100644 index 00000000..ec51df7c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md @@ -0,0 +1,24 @@ +# SSE功能 +- - - + +## 框架版本 >= 2.2.1 + +## 配置说明 + +配置在 `ruoyi-resource` 目录下 远程调用可直接使用 `RemoteMessageService` 接口 + +![输入图片说明](https://foruda.gitee.com/images/1721986989993234455/4214cbbd_1766278.png "屏幕截图") + +* enabled 是否开启此功能 +* path 应用路径 + +## 使用方法 + +前端连接方式: `http://后端ip:端口/resource/sse?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` + +其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 + +`SseMessageUtils.sendMessage` 推送单机消息(特殊需求使用)
+`SseMessageUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
+`SseMessageUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
+`SseMessageUtils.publishAll` 群发消息给所有连接人
\ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md new file mode 100644 index 00000000..d0834ab8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md @@ -0,0 +1,44 @@ +# 翻译功能 +- - - +## 框架版本 >= 1.6.0 + +## 引入依赖包 + +```xml + + com.ruoyi + ruoyi-common-translation + +``` + +## 注解 + +![输入图片说明](https://foruda.gitee.com/images/1675575648043199227/d04b3e21_1766278.png "屏幕截图") + +`@Translation` 翻译注解 用于实体类字段上
+`@TranslationType` 翻译类别注解 用于实现类上标注与 `@Translation` 注解相同的 `type` 类型 实现翻译功能 + + +## 用法说明 + +默认提供功能 `用户id转账号(用户名)` `部门id转名称` `字典type转label` `ossId转url` + +![输入图片说明](https://foruda.gitee.com/images/1675575977860232549/143b74f8_1766278.png "屏幕截图") + +用户名翻译(映射翻译) 根据另一个映射字段 翻译保存到此字段 + +![输入图片说明](https://foruda.gitee.com/images/1675576044011477847/13eb9f57_1766278.png "屏幕截图") + +ossUrl翻译(直接翻译) 直接根据此字段值翻译后替换此字段值 + +![输入图片说明](https://foruda.gitee.com/images/1675576265894720924/70792f66_1766278.png "屏幕截图") + +字典翻译(其他扩展条件翻译) 根据`other`条件 自行定义如何使用 例如字典翻译`other`条件就是字典的唯一值 + +![输入图片说明](https://foruda.gitee.com/images/1675576391012282823/f95c5d78_1766278.png "屏幕截图") + +## 自定义扩展 + +实现接口 `TranslationInterface` 标注注解 `@TranslationType` 可参考框架默认实现 + +![输入图片说明](https://foruda.gitee.com/images/1676735454308997001/cfcf3590_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md new file mode 100644 index 00000000..55145bad --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md @@ -0,0 +1,39 @@ +# WebSocket功能 +- - - + +## 框架版本 >= 2.1.0 + +## 配置说明 + +配置在 `ruoyi-resource` 目录下 + +![输入图片说明](https://foruda.gitee.com/images/1688356273985385949/5e4d1de8_1766278.png "屏幕截图") + +* enabled 是否开启此功能 +* path 应用路径 +* allowedOrigins 设置访问源地址 + +**重点: 如关闭ws功能需连同前端ws开关一同关闭 不然前端启动会报错** + +![输入图片说明](https://foruda.gitee.com/images/1700644877512019497/052d2f46_1766278.png "屏幕截图") + +## 使用方法 + +前端连接方式: `ws://后端ip:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` + +**由于js不支持请求头传输故而采用参数传输 如支持请求头传输建议使用请求头传输** + +传输方式: +```js +headers: { + Authorization: "Bearer " + getToken(), + clientid: import.meta.env.VITE_APP_CLIENT_ID +} +``` + +其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 + +`WebSocketUtils.sendMessage` 推送单机消息(特殊需求使用)
+`WebSocketUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
+`WebSocketUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
+`WebSocketUtils.publishAll` 群发消息给所有连接人
\ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md new file mode 100644 index 00000000..f649197c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md @@ -0,0 +1,91 @@ +# 项目结构 +- - - +## 目录结构 +v2.2.1 +~~~ +RuoYi-Cloud-Plus +├─ ruoyi-api // api模块 +│ └─ ruoyi-api-bom // api模块依赖管理 +│ └─ ruoyi-api-resource // 资源api模块 +│ └─ ruoyi-api-system // 系统api模块 +│ └─ ruoyi-api-workflow // 工作流api模块 +├─ ruoyi-auth // 认证服务 [9210] +├─ ruoyi-common // 通用模块 +│ └─ ruoyi-common-alibaba-bom // alibaba 依赖管理 +│ └─ ruoyi-common-bom // common 依赖管理 +│ └─ ruoyi-common-bus // 消息总线模块 +│ └─ ruoyi-common-core // 核心功能模块 +│ └─ ruoyi-common-dict // 字典集成模块 +│ └─ ruoyi-common-doc // 文档集成模块 +│ └─ ruoyi-common-dubbo // dubbo集成模块 +│ └─ ruoyi-common-elasticsearch // ES集成模块 +│ └─ ruoyi-common-encrypt // 数据加解密模块 +│ └─ ruoyi-common-excel // excel集成模块 +│ └─ ruoyi-common-idempotent // 幂等功能模块 +│ └─ ruoyi-common-job // job定时任务集成模块 +│ └─ ruoyi-common-json // json集成模块 +│ └─ ruoyi-common-loadbalancer // 团队负载均衡集成模块 +│ └─ ruoyi-common-log // 日志集成模块 +│ └─ ruoyi-common-logstash // elk日志集成模块 +│ └─ ruoyi-common-mail // 邮件集成模块 +│ └─ ruoyi-common-mybatis // mybatis数据库相关集成模块 +│ └─ ruoyi-common-oss // oss相关集成模块 +│ └─ ruoyi-common-prometheus // prometheus监控 +│ └─ ruoyi-common-redis // redis集成模块 +│ └─ ruoyi-common-satoken // satoken集成模块 +│ └─ ruoyi-common-seata // seata分布式事务集成模块 +│ └─ ruoyi-common-security // 框架权限鉴权集成模块 +│ └─ ruoyi-common-sensitive // 脱敏功能模块 +│ └─ ruoyi-common-sentinel // sentinel集成模块 +│ └─ ruoyi-common-skylog // skywalking日志收集模块 +│ └─ ruoyi-common-sms // 短信集成模块 +│ └─ ruoyi-common-social // 社交三方功能模块 +│ └─ ruoyi-common-sse // sse流推送模块 +│ └─ ruoyi-common-tenant // 租户功能模块 +│ └─ ruoyi-common-translation // 通用翻译功能 +│ └─ ruoyi-common-web // web服务集成模块 +│ └─ ruoyi-common-websocket // websocket服务集成模块 +├─ ruoyi-example // 例子模块 +│ └─ ruoyi-demo // 演示模块 [9401] +│ └─ ruoyi-test-mq // mq演示模块 [9402] +├─ ruoyi-gateway // 网关模块 [8080] +├─ ruoyi-modules // 功能模块 +│ └─ ruoyi-gen // 代码生成模块 [9202] +│ └─ ruoyi-job // 任务调度模块 [9203,9901] +│ └─ ruoyi-resource // 资源模块 [9204] +│ └─ ruoyi-system // 系统模块 [9201] +│ └─ ruoyi-workflow // 工作流模块 [9205] +├─ ruoyi-visual // 可视化模块 +│ └─ ruoyi-monitor // 服务监控模块 [9100] +│ └─ ruoyi-nacos // nacos服务模块 [8848,9848,9849] +│ └─ ruoyi-seata-server // seata服务模块 [7091,8091] +│ └─ ruoyi-sentinel-dashboard // sentinel控制台模块 [8718] +│ └─ ruoyi-snailjob-server // 任务调度控制台模块 [8800,17888] +├─ plus-ui // 前端框架 [80] +├─ config/nacos // nacos配置文件(需复制到nacos配置中心使用) +│ └─ sentinel-ruoyi-gateway.json // sentinel对接gateway限流配置文件 +│ └─ seata-server.properties // seata服务配置文件 +│ └─ application-common.yml // 所有应用主共享配置文件 +│ └─ datasource.yml // 所有应用共享数据源配置文件 +│ └─ ruoyi-auth.yml // auth 模块配置文件 +│ └─ ruoyi-gateway.yml // gateway 模块配置文件 +│ └─ ruoyi-gen.yml // gen 模块配置文件 +│ └─ ruoyi-job.yml // job 模块配置文件 +│ └─ ruoyi-monitor.yml // monitor 模块配置文件 +│ └─ ruoyi-resource.yml // resource 模块配置文件 +│ └─ ruoyi-sentinel-dashboard.yml // sentinel 控制台 模块配置文件 +│ └─ ruoyi-snailjob-server.yml // snailjob 控制台 模块配置文件 +│ └─ ruoyi-system.yml // systen 模块配置文件 +│ └─ ruoyi-workflow.yml // workflow 模块配置文件 +├─ config/grafana // grafana配置文件(需复制到grafana使用) +│ └─ Nacos.json // Nacos监控页面 +│ └─ SLS JVM监控大盘.json // JVM监控页面 +│ └─ Spring Boot 2.1 Statistics.json // SpringBoot监控页面 +├─ sql // sql脚本 +├─ docker // docker 配置脚本 +├─ .run // 执行脚本文件 +├─ .editorconfig // 编辑器编码格式配置 +├─ LICENSE // 开源协议 +├─ pom.xml // 公共依赖 +├─ README.md // 框架说明文件 +~~~ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md new file mode 100644 index 00000000..290a4f9c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md @@ -0,0 +1,137 @@ + +
+ +- - - +# 平台简介 +
+ +[![码云Gitee](https://gitee.com/dromara/RuoYi-Cloud-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Cloud-Plus) +[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Cloud-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Cloud-Plus) +[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Cloud-Plus/blob/master/LICENSE) +[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Cloud-Plus) +
+[![RuoYi-Cloud-Plus](https://img.shields.io/badge/RuoYi_Cloud_Plus-2.2.1-success.svg)](https://gitee.com/dromara/RuoYi-Cloud-Plus) +[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.1-blue.svg)]() +[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() +[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() + +> RuoYi-Cloud-Plus `微服务通用权限管理系统` 重写 RuoYi-Cloud 全方位升级(不兼容原框架) + +> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
+活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 + +> 系统演示: [传送门](https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4836388&doc_id=1469725) 分布式集群版本(功能一致) + +# 本框架与RuoYi的功能差异 + +| 功能 | 本框架 | RuoYi | +|-------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| +| 前端项目 | 采用 Vue3 + TS + ElementPlus 重写 | 基于Vue2/Vue3 + JS | +| 后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 | 模块相互注入耦合严重难以扩展 | +| 后端代码风格 | 严格遵守Alibaba规范与项目统一配置的代码格式化 | 代码书写与常规结构不同阅读障碍大 | +| 分布式注册中心 | 采用 Alibaba Nacos 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Nacos 自行搭建纯官方版本不可靠 | +| 分布式配置中心 | 采用 Alibaba Nacos 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Nacos 自行搭建纯官方版本不可靠 | +| 服务网关 | 采用 SpringCloud Gateway 框架扩展了多种功能
例如:内网鉴权、请求体缓存、跨域配置、请求响应日志等 | 采用 SpringCloud Gateway 功能单一 | +| 负载均衡 | 采用 SpringCloud Loadbalancer 扩展支持了开发团队路由 便于多团队开发调试 | 采用 SpringCloud Loadbalancer 功能单一 | +| RPC远程调用 | 采用 全新 Apache Dubbo 3.X 历史悠远不用多说 | 采用 feign 功能有限编写方式 网络波动大 不稳定 | +| 分布式限流熔断 | 采用 Alibaba Sentinel 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Sentinel 自行搭建纯官方版本不可靠 | +| 分布式事务 | 采用 Alibaba Seata 源码集成对接了Nacos与各种监控 简化了搭建部署流程 | 采用 Alibaba Seata 自行搭建纯官方版本 搭建繁琐与Nacos不挂钩 代码内使用方式怪异等 | +| Web容器 | 采用 Undertow 基于 XNIO 的高性能容器 | 采用 Tomcat | +| 权限认证 | 采用 Sa-Token、Jwt 静态使用功能齐全 低耦合 高扩展 | Spring Security 配置繁琐扩展性极差 | +| 权限注解 | 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验
角色与权限校验支持多种条件 如 `AND` `OR` 或 `权限 OR 角色` 等复杂表达式 | 只支持是否存在匹配 | +| 关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer
可同时使用异构切换(支持其他 mybatis-plus 支持的所有数据库 只需要增加jdbc依赖即可使用 达梦金仓等均有成功案例) | 支持 Mysql、Oracle 不支持同时使用、不支持异构切换 | +| 缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 | Redis 简单 get set 支持 | +| Redis客户端 | 采用 Redisson Redis官方推荐 基于Netty的客户端工具
支持Redis 90%以上的命令 底层优化规避很多不正确的用法 例如: keys被转换为scan
支持单机、哨兵、单主集群、多主集群等模式 | Lettuce + RedisTemplate 支持模式少 工具使用繁琐
连接池采用 common-pool Bug多经常性出问题 | +| 缓存注解 | 采用 Spring-Cache 注解 对其扩展了实现支持了更多功能
例如 过期时间 最大空闲时间 组最大长度等 只需一个注解即可完成数据自动缓存 | 需手动编写Redis代码逻辑 | +| ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多
例如多租户插件 分页插件 乐观锁插件等等 | 采用 Mybatis 基于XML需要手写SQL | +| SQL监控 | 采用 p6spy 可输出完整SQL与执行时间监控 | log输出 需手动拼接sql与参数无法快速查看调试问题 | +| 数据分页 | 采用 Mybatis-Plus 分页插件
框架对其进行了扩展 对象化分页对象 支持多种方式传参 支持前端多排序 复杂排序 | 采用 PageHelper 仅支持单查询分页 参数只能从param传 只能单排序 功能扩展性差 体验不好 | +| 数据权限 | 采用 Mybatis-Plus 插件 自行分析拼接SQL 无感式过滤
只需为Mapper设置好注解条件 支持多种自定义 不限于部门角色 | 采用 注解+aop 实现 基于部门角色 生成的sql兼容性差 不支持其他业务扩展
生成sql后需手动拼接到具体业务sql上 对于多个Mapper查询不起作用 | +| 数据脱敏 | 采用 注解 + jackson 序列化期间脱敏 支持不同模块不同的脱敏条件
支持多种策略 如身份证、手机号、地址、邮箱、银行卡等 可自行扩展 | 无 | +| 数据加解密 | 采用 注解 + mybatis 拦截器 对存取数据期间自动加解密
支持多种策略 如BASE64、AES、RSA、SM2、SM4等 | 无 | +| 数据翻译 | 采用 注解 + jackson 序列化期间动态修改数据 数据进行翻译
支持多种模式: `映射翻译` `直接翻译` `其他扩展条件翻译` 接口化两步即可完成自定义扩展 内置多种翻译实现 | 无 | +| 多数据源框架 | 采用 dynamic-datasource 支持市面大部分数据库
通过yml配置即可动态管理异构不同种类的数据库 也可通过前端页面添加数据源
支持spel表达式从请求头参数等条件切换数据源 | 基于 druid 手动编写代码配置数据源 配置繁琐 支持性差 | +| 多数据源事务 | 采用 dynamic-datasource 支持多数据源不同种类的数据库事务回滚 | 不支持 | +| 数据库连接池 | 采用 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下 | 采用 druid bug众多 社区维护差 活跃度低 配置众多繁琐性能一般 | +| 数据库主键 | 采用 雪花ID 基于时间戳的 有序增长 唯一ID 再也不用为分库分表 数据合并主键冲突重复而发愁 | 采用 数据库自增ID 支持数据量有限 不支持多数据源主键唯一 | +| WebSocket协议 | 基于 Spring 封装的 WebSocket 协议 扩展了Token鉴权与分布式会话同步 不再只是基于单机的废物 | 无 | +| SSE推送 | 采用 Spring SSE 实现 扩展了Token鉴权与分布式会话同步 | 无 | +| 序列化 | 采用 Jackson Spring官方内置序列化 靠谱!!! | 采用 fastjson bugjson 远近闻名 | +| 分布式幂等 | 参考美团GTIS防重系统简化实现(细节可看文档) | 手动编写注解基于aop实现 | +| 分布式任务调度 | 采用 SnailJob 天生支持分布式 统一的管理中心 支持多种数据库 支持分片重试DAG任务流等 | 采用 Quartz 基于数据库锁性能差 集群需要做很多配置与改造 | +| 分布式日志中心 | 采用 ELK 业界成熟解决方案 实时收集所有服务的运行日志 快速发现定位问题 | 无 | +| 分布式搜索引擎 | 采用 ElasticSearch、Easy-Es 以 Mybatis-Plus 方式操作 ElasticSearch | 无 | +| 分布式消息队列 | 采用 支持 Kafka、RocketMQ、RabbitMQ 各种 延迟消息 事务消息 流消息 | 无 | +| 分布式消息总线 | 采用 SpringCloud Bus 实现事件总线 跨服务通知 支持 Kafka、RocketMQ、RabbitMQ | 无 | +| 分库分表功能 | 采用 Apache Sharding-Proxy 代理服务无入侵支持分库分表 只需编写分库分表规则即可 | 无 | +| 文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储
支持权限管理 安全可靠 文件可加密存储 | 采用 本机文件存储 文件裸漏 易丢失泄漏 不支持集群有单点效应 | +| 云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 | 不支持 | +| 短信 | 支持 阿里、腾讯 只需在yml配置好厂家密钥即可使用 接口化支持扩展其他厂家 | 不支持 | +| 邮件 | 采用 mail-api 通用协议支持大部分邮件厂商 | 不支持 | +| 接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释
只需把注释写好 无需再写一大堆的文档注解了 | 采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成 | +| 校验框架 | 采用 Validation 支持注解与工具类校验 注解支持国际化 | 仅支持注解 且注解不支持国际化 | +| Excel框架 | 采用 Alibaba EasyExcel 基于插件化
框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等 | 基于 POI 手写实现 功能有限 复杂 扩展性差 | +| 工作流支持 | 支持各种复杂审批 转办 委派 加减签 会签 或签 票签 等功能 | 无 | +| 工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 | 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等 | +| 服务监控框架 | 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
实时监控服务状态 框架还为其扩展了在线日志查看监控 | 无 | +| 全方位监控报警 | 采用 Prometheus、Grafana 多样化采集 多模板大屏展示 实时报警监控 提供详细的搭建文档 | 无 | +| 链路追踪 | 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
用了它即可实时查看请求经过的每一处每一个节点 | 无 | +| 代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面
降低80%的开发量 把精力都投入到业务设计上
框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 | 代码生成原生结构 只支持单数据源生成 | +| 部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 | 原生jar部署 其他环境需手动下载安装 自行搭建 | +| 项目路径修改 | 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 | 需要做很多改造 文档说明有限 | +| 国际化 | 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 | 只提供基础功能 其他需自行编写扩展 | +| 代码单例测试 | 提供单例测试 使用方式编写方法与maven多环境单测插件 | 只提供基础功能 其他需自行编写扩展 | +| Demo案例 | 提供框架功能的实际使用案例 单独一个模块提供了很多很全 | 无 | + +## 本框架与RuoYi的业务差异 + +| 业务 | 功能说明 | 本框架 | RuoYi | +|--------|-----------------------------------------|-----|------------------| +| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | +| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | +| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | +| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | +| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | +| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | +| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | +| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | +| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | +| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | +| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | +| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | +| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | +| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | +| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | +| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | +| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | +| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | +| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | +| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | +| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | +| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | + +## 演示图例 + +| | | +|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| +| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md new file mode 100644 index 00000000..19492b1e --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md @@ -0,0 +1,87 @@ +# 1.X项目初始化 +- - - +### 项目分支说明 +`master` 主分支 稳定发布分支
+`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
+`2.X` 新2.X大版本分支
+`future/*` 新功能预览分支 + +### 项目必备环境 +> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 + +* oracle jdk 8 11 (暂时不支持 17 不支持大于 jdk8_202 因为202是最后一个免费版本) +* mysql 5.7 8.0 (5.6未适配可能会有问题) +* oracle 11g 12c +* postgres 13 14 +* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) +* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 +* maven 3.6.3 3.8.X +* nodejs >= 12 +* npm 6.X 8.X (7.X确认有问题) +* nacos >= 2.X(框架1.3.0内置nacos) +* sentinel 框架内置 +* seata 框架内置 + +### 需勾选 maven 对应环境 +![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") + +### 默认 `JDK8` 如有变动 需更改以下配置 + +![输入图片说明](https://foruda.gitee.com/images/1686813181851830778/2dd7954c_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1686813189749486666/c526486c_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1686813196981178511/cd218705_1766278.png "屏幕截图") + +### sql导入 +将sql导入到与sql文件名对应的数据库(不要放到一个库下)
+ +![输入图片说明](https://foruda.gitee.com/images/1678981513725772842/8097a816_1766278.png "屏幕截图") + +### 使用内置 `ruoyi-naocs` 服务 从这开始 + +> 更改 ruoyi-nacos 数据库地址 + +![输入图片说明](https://foruda.gitee.com/images/1664422006264405180/cac5afc6_1766278.png "屏幕截图") + +**其余流程同下方步骤一致** + +### 自建 Nacos 从这开始 + +**Nacos 数据库指向 ry-config 数据库(此处重点: 此数据库为定制数据 未使用此库会无法读取配置)** + +> 将项目 `config/nacos` 下所有配置 复制到 `nacos` 内(建议手动复制内容 防止编码不一致问题) + +![输入图片说明](https://foruda.gitee.com/images/1678979826345958752/913142c9_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678979856705927770/75cc1e8c_1766278.png "屏幕截图") + +> 更改 `主pom文件` 对应环境的 `nacos` 地址 + +![输入图片说明](https://foruda.gitee.com/images/1678979881888833924/7e6a191f_1766278.png "屏幕截图") + +### 更改 `Nacos` 自定义配置 + +**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改** + +> `application-common.yml` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979889410167794/100db4ab_1766278.png "屏幕截图") + +> `datasource.yml` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979894464784408/0d020c07_1766278.png "屏幕截图") + +> `seata-server.properties` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979902433843257/12da2839_1766278.png "屏幕截图") + +### 使用内置 `ruoyi-seata-server` 服务 从这开始 + +执行 `ry-seata.sql` 文件 初始化服务端数据库
+修改 `nacos` 内的 `seata-server.properties` 的数据库地址
+启动 `ruoyi-seata-server` 服务即可 + +### 服务启动顺序说明 + +1. 必须启动基础建设: mysql redis nacos
+2. 可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启) sentinel(影响熔断限流) monitor(影响监控) xxljob(影响定时任务)
+3. 必须启动应用服务: gateway auth system
+4. 可选启动应用服务: resource(影响资源使用 文件上传 邮件 短信等) gen(代码生成) job(影响定时任务) demo(影响demo使用) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md new file mode 100644 index 00000000..bdc653bc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md @@ -0,0 +1,118 @@ +# 应用部署 +- - - +## 版本 >= 1.3.0 + +### 请优先阅读 [idea环境配置](/ruoyi-cloud-plus/quickstart/idea_environment.md) + +## 手动部署 + +在服务器安装 `mysql` `redis` `nginx` `minio` 等其他组件 + +将项目内 `docker/` 文件夹下的文件内容 放到对应的组件内
+例如: 将项目内 `docker/nginx/nginx.conf` 配置文件 复制到 `nginx` 配置内
+将项目内 `docker/redis/redis.conf` 配置文件 复制到 `redis` 配置内
+ +并修改相关参数如 `前端页面存放位置` `后端Ip地址` 等使其生效 + +jar包部署后端服务 打包命令如下 +```mvn +mvn clean install -D maven.test.skip=true -P prod +``` +前端参考下方前端部署章节 + + +## docker 后端部署 + +### 请优先阅读 [idea环境配置](https://gitee.com/dromara/RuoYi-Cloud-Plus/wikis/pages?sort_id=5985190&doc_id=2056143) + +**重点: 一知半解的必看** +> [docker安装](https://lionli.blog.csdn.net/article/details/83153029)
+> [docker-compose安装](https://lionli.blog.csdn.net/article/details/111220320)
+> [docker网络模式讲解](https://lionli.blog.csdn.net/article/details/109603785)
+> [docker 开启端口 2375 供外部程序访问](https://lionli.blog.csdn.net/article/details/92627962) + +### 将配置使用FTP上传到根目录 +idea拖拽文件到远程目录即可上传
+![输入图片说明](https://foruda.gitee.com/images/1662109450908169859/eaac9299_1766278.png "屏幕截图") + +### 给docker分配文件夹权限 +**重点注意: 一定要确保目录 `/docker` 及其所有子目录 具有写权限 如果后续出现权限异常问题 重新执行一遍分配权限** +![输入图片说明](https://foruda.gitee.com/images/1662109847279259882/3a2202c1_1766278.png "屏幕截图") +```shell +chmod -R 777 /docker +``` +### 构建应用镜像 + +**1.需要先使用maven打包成jar包**
+![输入图片说明](https://foruda.gitee.com/images/1662110477410977621/c6931c42_1766278.png "屏幕截图") + +**2.执行构建**
+> 项目初始化后会自动生成构建镜像的运行配置
+配置好docker连接之后 运行如下即可构建对应的应用镜像 + +**重点注意: idea2024及以上版本要求必须在本地安装docker才可以执行如下操作** + +![输入图片说明](https://foruda.gitee.com/images/1662110192257483752/0f754b47_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1662120029312793237/89dee3e5_1766278.png "屏幕截图") + +**3.结构讲解**
+右键编辑 即可看到内部配置
+ +![输入图片说明](https://foruda.gitee.com/images/1662458355500139498/eaa26036_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1662458446794722159/32c086a7_1766278.png "屏幕截图") + + +### 创建基础服务 + +```shell +docker-compose up -d mysql nginx-web redis minio +``` + +### 创建中心服务(需要先构建服务镜像) + +1.X +```shell +docker-compose up -d nacos seata-server sentinel ruoyi-monitor ruoyi-xxl-job-admin +``` + +2.X +```shell +docker-compose up -d nacos seata-server sentinel ruoyi-monitor ruoyi-snailjob-server +``` + +### 创建业务服务(需要先构建服务镜像) + +```shell +docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system ruoyi-resource +``` + +### docker其他操作(idea的docker插件 推荐使用) +![输入图片说明](https://foruda.gitee.com/images/1662458296425228696/90b4b4f8_1766278.png "屏幕截图") + + +## 前端部署 + +执行打包命令 +```shell +# 打包正式环境 +npm run build:prod +``` +打包后生成打包文件在 `ruoyi-ui/dist` 目录
+将 `dist` 目录下文件(不包含 `dist` 目录) 上传到部署服务器 `docker/nginx/html` 目录下(手动部署放入自己配置的路径即可)
+![输入图片说明](https://foruda.gitee.com/images/1662110914769648699/07f344c4_1766278.png "屏幕截图")
+重启 `nginx` 服务即可 + + +### 如需更改后端代理路径或者后端ip地址的话往下看 + +更改`nginx.conf`配置文件代理路径(注意: /开头/结尾) + +![输入图片说明](https://foruda.gitee.com/images/1660185698211067202/屏幕截图.png "屏幕截图.png") + +更改前端`.env.环境` 文件内的 `VITE_APP_BASE_API` + +![输入图片说明](https://foruda.gitee.com/images/1724318035232137124/5d035a09_1766278.png "屏幕截图") + +更改`nginx.conf`配置文件后端ip地址 + +![输入图片说明](https://foruda.gitee.com/images/1660185711265558730/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md new file mode 100644 index 00000000..8d68fa4d --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md @@ -0,0 +1,42 @@ +# 基于 RuoYi-Cloud-Plus 的扩展项目列表 +- - - +### 精品PR 欢迎投稿 +| 功能介绍 | PR地址 | +|-------------------------------------|------------------------------------------------------| +| 拖拽图片调整显示顺序 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/173 | +| 增加Jasypt加密库对配置文件加密 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/177 | +| 使用富文本wangeditor5替换Quill | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/213 | +| sentinel持久化nacos动态更改 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/37 | +| 集成screw数据库文档功能模块 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/42 | +| Excel导入模板增加批注支持 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/222 | +| 压缩包处理工具 支持本地文件/目录+oss文件/网络文件混合 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/44 | +| 添加websocket模块 支持satoken鉴权 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/65 | +| 数据库字段加解密(支持 base64 aes rsa sm2 sm4) | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/274 | +| 增加liquibase迁移数据库 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/299 | +| 增加OSS模块支持本地环境 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/353 | +| 扩展模块独立集成flyway | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/439 | +| 扩展模块独立集成go-view大屏看板 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/445 | +| 基于AmazonS3协议的分片上传 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/130 | +| 扩展forest http客户端 声明式http请求 二次封装像工具类 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/547 | +| 增加短链接生成工具 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/515 | +| 新增oss预签名上传工具组合使用异步客户端分片 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/522 | +| 新增规则引擎LiteFlow,SQL持久化接入,支持可视化页面 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/552 | +| 一键部署到私有Nexus仓库 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/181 | +| 服务状态监控发送邮件钉钉等 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/568 | +| 登录验证支持2FA验证 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/578 | + +### 欢迎投稿 项目介绍+项目地址 + + +| 项目介绍 | 项目地址 | +|--------------------------------|-------------------------------------------------------------------------| +| 分布式集群扩展 | https://gitee.com/dromara/RuoYi-Vue-Plus | +| Plus学习笔记(常规功能) | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-vue-plus/home | +| Plus学习笔记(微服务组件) | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-cloud-plus/home | +| 基于uniapp+TmUI从0开发 支持H5/小程序/安卓 | https://gitee.com/dapppp/ruoyi-plus-miniapp | +| 基于RuoYi-App框架二次修改使用Uniapp+Vue3 | https://gitee.com/wangying110166/ruo-yi-uni-app-plus | +| 基于RuoYi-App框架对接Plus后端 | https://gitee.com/FnTop/RuoYi-App-Plus | +| 基于vben(ant-design-vue)前端项目 | https://gitee.com/dapppp/ruoyi-plus-vben | +| 基于vue-next-admin的vue3+ts前端 | https://gitee.com/thiszhc/RuoYi-Vue3-UI | +| MybatisFlex版本 | https://gitee.com/yhan219/ruoyi-cloud-flex | + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md new file mode 100644 index 00000000..25a5fa3c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md @@ -0,0 +1,38 @@ +# idea环境配置 +- - - +## 配置项目编码 +![输入图片说明](https://foruda.gitee.com/images/1662107706295343419/e27065a9_1766278.png "屏幕截图") + +## 配置运行看板 +![输入图片说明](https://foruda.gitee.com/images/1662108673306567278/8af97b47_1766278.png "屏幕截图") +### 配置spring与docker看板 +![输入图片说明](https://foruda.gitee.com/images/1662111392476935892/6b6760fb_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1662108865191892425/3c045999_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1662108877322329668/ddb6d93d_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1662108894122798039/6a53a38c_1766278.png "屏幕截图") + +## 配置服务器SSH连接 +进入 `Settings -> Tools -> SSH Configurations` 点击加号创建SSH连接配置
+填写 服务器IP 用户名 密码 端口号 点击 Test Connection 测试连接
+![输入图片说明](https://foruda.gitee.com/images/1662107776533098115/bd78467b_1766278.png "屏幕截图") +使用Terminal 工具 点击箭头找到上方创建的SSH连接配置
+选择即可进入SSH连接界面 在这里可以对服务器进行命令操作
+![输入图片说明](https://foruda.gitee.com/images/1662108010120640495/c70f9f9a_1766278.png "屏幕截图") + +## 配置服务器FTP连接 +进入 `Settings -> Build-> Deployment` 点击加号 选择SFTP 创建 FTP 连接配置
+选择之前创建好的SSH配置 点击 Test Connection 测试连接
+![输入图片说明](https://foruda.gitee.com/images/1662107899553257979/e2eeb7fd_1766278.png "屏幕截图") +在IDEA上方工具栏 找到 `Tools -> Deployment -> Browse Remote Host` 打开远程界面
+点击箭头找到我们上方配置的SFTP连接配置 即可连接到服务器的文件目录
+![输入图片说明](https://foruda.gitee.com/images/1662107974682787233/b8a601fd_1766278.png "屏幕截图") + +## 配置Docker连接 +### 可操作远程docker与构建上传docker镜像(代替原来maven docker插件) +tcp连接需要开放服务器2375端口
+ssh需要使用上方的SSH连接配置
+建议使用SSH连接
+![输入图片说明](https://foruda.gitee.com/images/1662108188005932060/75872bf8_1766278.png "屏幕截图") +配置好之后 在运行窗口会多出一个Docker图标 双击即可连接远程docker
+可以查看容器实时日志 启动 重启 停止 等操作
+![输入图片说明](https://foruda.gitee.com/images/1662108250902891875/b82d022b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md new file mode 100644 index 00000000..f6d4fadc --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md @@ -0,0 +1,102 @@ +# 2.X项目初始化 +- - - +### 项目分支说明 + +`2.X` 主分支 新2.X版本 稳定发布分支
+`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
+`future/*` 新功能预览分支 + +### 项目必备环境 +> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 + +**注意: 禁止使用 `oraclejdk`(由于spring的bug导致打包运行会报错)** + +**Spring官方推荐使用JDK https://bell-sw.com/pages/downloads/** + +![输入图片说明](https://foruda.gitee.com/images/1720080025744223375/0213a652_1766278.png "屏幕截图") + +* openjdk-17/21 或 graalvm-community-jdk-17/21 [下载地址](https://github.com/graalvm/graalvm-ce-builds/releases) 版本 +* mysql 5.7 8.0 (其他版本未测试 如其他版本没问题 可以告知咱们) +* oracle >= 12c (其他版本未测试 如其他版本没问题 可以告知咱们) +* postgres 13 14 (其他版本未测试 如其他版本没问题 可以告知咱们) +* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) +* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 +* maven >= 3.8.X +* nodejs 18.18 (其他版本未测试 如其他版本没问题 可以告知咱们) +* npm >= 8.X (7.X确认有问题) +* idea 2022 2024 (一定不要使用2023后果自负 bug太多影响项目开发) +* nacos >= 2.X(框架已经内置 采用nacos官方jar包) +* sentinel 框架内置(采用sentinel官方jar包) +* seata 框架内置(采用seata官方jar包) + +### 需勾选 maven 对应环境 + +![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") + +### 默认 `JDK17` 如有变动 需更改以下配置 + +![输入图片说明](https://foruda.gitee.com/images/1678941027820943505/c688e01e_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678941120518807034/4d56fcc9_1766278.png "屏幕截图") + +### sql导入 + +将sql导入到与sql文件名对应的数据库(不要放到一个库下)
+默认数据库为mysql如需使用其他数据库 看这里 => [多数据库数据源](../framework/extend/dynamic_datasource.md)
+ +![输入图片说明](https://foruda.gitee.com/images/1717122730708924506/7f3aaecf_1766278.png "屏幕截图") + +### 使用内置 `ruoyi-naocs` 服务 从这开始 + +> 更改 ruoyi-nacos 数据库地址 + +![输入图片说明](https://foruda.gitee.com/images/1664422006264405180/cac5afc6_1766278.png "屏幕截图") + +**其余流程同下方步骤一致** + +### 自建 Nacos 从这开始 + +**Nacos 数据库指向 ry-config 数据库(此处重点: 此数据库为定制数据 未使用此库会无法读取配置)** + +> 将项目 `config/nacos` 下所有配置 复制到 `nacos` 内(建议手动复制内容 防止编码不一致问题) + +**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
+**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
+**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
+ +![输入图片说明](https://foruda.gitee.com/images/1678979826345958752/913142c9_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678979856705927770/75cc1e8c_1766278.png "屏幕截图") + +> 更改 `主pom文件` 对应环境的 `nacos` 地址 + +![输入图片说明](https://foruda.gitee.com/images/1678979881888833924/7e6a191f_1766278.png "屏幕截图") + +### 更改 `Nacos` 自定义配置 + +**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
+**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
+**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
+ +> `application-common.yml` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979889410167794/100db4ab_1766278.png "屏幕截图") + +> `datasource.yml` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979894464784408/0d020c07_1766278.png "屏幕截图") + +> `seata-server.properties` 更改 + +![输入图片说明](https://foruda.gitee.com/images/1678979902433843257/12da2839_1766278.png "屏幕截图") + +### 使用内置 `ruoyi-seata-server` 服务 从这开始 + +执行 `ry-seata.sql` 文件 初始化服务端数据库
+修改 `nacos` 内的 `seata-server.properties` 的数据库地址
+启动 `ruoyi-seata-server` 服务即可 + +### 服务启动顺序说明 + +1. 必须启动基础建设: mysql redis nacos
+2. 可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启) sentinel(影响熔断限流) monitor(影响监控) snailjob(影响定时任务)
+3. 必须启动应用服务: gateway auth system
+4. 可选启动应用服务: resource(影响资源使用 websocket 文件上传 邮件 短信等) workflow(工作流) gen(代码生成) job(影响定时任务) demo(影响demo使用) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md new file mode 100644 index 00000000..907c7fc7 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md @@ -0,0 +1,33 @@ +# 搭建PowerJob任务调度中心(2.X分支已废弃) +- - - +### 废弃原因 + +接到大量投诉 使用困难 用法诡异 各种问题等 + +### 配置调度中心客户端 +> 查看ruoyi-job配置文件(默认情况下无需做任何更改) +> +![输入图片说明](https://foruda.gitee.com/images/1688013407489024239/9b619e0d_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `server-address` 为调度中心地址 +* `server-name` 为调度中心服务名 +* `app-name` 为执行器组账户名(需在调度中心注册方可登录查看) + +### 启用调度中心 +**需执行 ry-job.sql 默认账号密码 `ruoyi-worker` `123456` 账号在数据库里 可以在页面修改密码** +
+ +![输入图片说明](https://foruda.gitee.com/images/1688634898607827011/8853b387_1766278.png "屏幕截图") + +> 在 `ruoyi-visual -> ruoyi-powerjob-server` 启动 +> +![输入图片说明](https://foruda.gitee.com/images/1688013606234848334/cf2028cd_1766278.png "屏幕截图") + +> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-powerjob-server服务的配置文件**) +> +![输入图片说明](https://foruda.gitee.com/images/1688013663152608235/6c5d6a9c_1766278.png "屏幕截图") + +> 也可配置邮件发送 钉钉推送 和 mongodb存储 +> +![输入图片说明](https://foruda.gitee.com/images/1687335842722317559/f875c07a_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md new file mode 100644 index 00000000..25c21ebb --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md @@ -0,0 +1,38 @@ +# 搭建SnailJob任务调度中心(2.2.0新功能) +- - - + +### 视频介绍 + +[Snail job任务调度中心:轻松掌握任务管理、重试机制和任务编排](https://www.bilibili.com/video/BV19i421m7GL/) + +### 配置调度中心客户端 +> 修改主服务配置文件 +> + +![输入图片说明](https://foruda.gitee.com/images/1716175076777941469/db565dc1_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `server.server-name` 为调度中心服务名(自动从Nacos获取服务 支持动态扩容调度中心) +* `server.address` 为调度中心地址(服务名优先 ip垫底) +* `server.port` 为调度中心通信端口 +* `token` 为组通信校验token(可在调度中心组配置更换) +* `group-name` 为执行器组 +* `namespace` 作用域(不同作用域相互隔离请勿填错) + +### 启用调度中心 +**需执行 ruoyi-job.sql 默认账号密码 `admin` `admin` 账号在数据库里 可以在页面修改密码** +
+ +![输入图片说明](https://foruda.gitee.com/images/1688634898607827011/8853b387_1766278.png "屏幕截图") + +> 在 `ruoyi-visual -> ruoyi-snailjob-server` 模块启动 +> +![输入图片说明](https://foruda.gitee.com/images/1716175119324078438/ca667a0c_1766278.png "屏幕截图") + +> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-snailjob-server服务的配置文件 支持多种不同数据库**) +> +![输入图片说明](https://foruda.gitee.com/images/1688013663152608235/6c5d6a9c_1766278.png "屏幕截图") + +### 快速入门 + +[Snailjob快速入门 基本使用介绍](https://juejin.cn/post/7412955032092442675) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md new file mode 100644 index 00000000..121a094d --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md @@ -0,0 +1,52 @@ +# 工作流初始化 +- - - + +### 注意事项 + +设置 RabbitMQ 配置 `application-common.yml` 配置文件 (可使用其他例如 kafka、rocketmq 详见 ruoyi-common-bus 模块) + +此功能用于跨服务同步流程与业务状态 MQ安装方式可参考文档扩展功能 + +![输入图片说明](https://foruda.gitee.com/images/1718728432072816698/47eadbb1_1766278.png "屏幕截图") + + +### 工作流使用及配置方式 + +1.找到项目中bpmn文件夹 + +![输入图片说明](https://foruda.gitee.com/images/1714211764058540441/5c8b97af_5363069.png "屏幕截图") + +2.启动项目找到流程定义通过**部署流程文件**将bpmn文件夹下**模型.zip**上传 + +![输入图片说明](https://foruda.gitee.com/images/1714211950485333575/1e2b3ff4_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212113004821592/96586e69_5363069.png "屏幕截图") + +3.导入**模型.zip**后将会出现以下列表,默认使用**leave1**,test_leave为请假申请表名称 + +![输入图片说明](https://foruda.gitee.com/images/1714212222766335759/1227bbd6_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212493602552742/9e0258b1_5363069.png "屏幕截图") + +**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** + +![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") + + +4.新增一条请假申请,提交后将会得到如下信息 + +![输入图片说明](https://foruda.gitee.com/images/1714212617432902105/3609f6ef_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212630860787365/2922d38e_5363069.png "屏幕截图") + +5.关于如何切换一个新的流程使用,当前默认使用得KEY为leave1 ,我们切换到leave2使用,我们只需点击绑定业务将表名绑定,重新发起一个新的请假申请就可以得到一个新的流程信息 + +![输入图片说明](https://foruda.gitee.com/images/1714212876442323110/4554ea95_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714213037864274694/613149f5_5363069.png "屏幕截图") + +**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** + +![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212963457174382/add768db_5363069.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md new file mode 100644 index 00000000..9fd7aad1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md @@ -0,0 +1,64 @@ + +- **特别赞助** +- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) +- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) +- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) + + +* **简介** + * [项目简介](/ruoyi-vue-plus/home.md) + * [更新日志](/ruoyi-vue-plus/changlog.md) +* **快速开始** + * [项目初始化](/ruoyi-vue-plus/quickstart/init.md) + * [5.X新功能介绍](/ruoyi-vue-plus/quickstart/5.Xnew.md) + * [4.X项目初始化](/ruoyi-vue-plus/quickstart/4.Xinit.md) + * [工作流初始化](/ruoyi-vue-plus/quickstart/worker_init.md) + * [搭建Admin监控](/ruoyi-vue-plus/quickstart/admin_init.md) + * [搭建SnailJob调度中心](/ruoyi-vue-plus/quickstart/snail_job_init.md) + * [(废弃)搭建PowerJob调度中心](/ruoyi-vue-plus/quickstart/power_job_init.md) + * [(废弃)搭建XXLJob调度中心](/ruoyi-vue-plus/quickstart/xxl_job_init.md) + * [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) + * [应用部署](/ruoyi-vue-plus/quickstart/deploy.md) + * [扩展项目](/ruoyi-vue-plus/quickstart/extend_project.md) +* **框架功能** + * [项目结构](/ruoyi-vue-plus/framework/tree.md) + * [软件架构图](/ruoyi-vue-plus/framework/architecture_diagram.md) + * 框架相关 + * [创建新模块](/ruoyi-vue-plus/framework/association/new_module.md) + * [修改包名](/ruoyi-vue-plus/framework/association/update_package_name.md) + * [接口文档](/ruoyi-vue-plus/framework/association/doc.md) + * [修改应用路径](/ruoyi-vue-plus/framework/association/update_url.md) + * [国际化](/ruoyi-vue-plus/framework/association/i18n.md) + * 基础功能 + * [系统用户相关](/ruoyi-vue-plus/framework/basic/user.md) + * [权限控制](/ruoyi-vue-plus/framework/basic/permissions_control.md) + * [导出功能](/ruoyi-vue-plus/framework/basic/export.md) + * [导入功能](/ruoyi-vue-plus/framework/basic/import.md) + * [参数校验](/ruoyi-vue-plus/framework/basic/param_check.md) + * [代码生成](/ruoyi-vue-plus/framework/basic/code_generate.md) + * [分页功能](/ruoyi-vue-plus/framework/basic/page.md) + * [OSS功能](/ruoyi-vue-plus/framework/basic/oss.md) + * [数据权限](/ruoyi-vue-plus/framework/basic/permissions.md) + * [接口放行](/ruoyi-vue-plus/framework/basic/interface_release.md) + * [多租户功能](/ruoyi-vue-plus/framework/basic/tenant.md) + * [第三方授权功能](/ruoyi-vue-plus/framework/basic/social.md) + * [客户端管理功能](/ruoyi-vue-plus/framework/basic/client.md) + * 扩展功能 + * [多数据源](/ruoyi-vue-plus/framework/extend/dynamic_datasource.md) + * [短信模块](/ruoyi-vue-plus/framework/extend/sms.md) + * [邮件功能](/ruoyi-vue-plus/framework/extend/mail.md) + * [防重幂等](/ruoyi-vue-plus/framework/extend/idempotent.md) + * [数据脱敏](/ruoyi-vue-plus/framework/extend/sensitive.md) + * [API加解密](/ruoyi-vue-plus/framework/extend/api_encrypt.md) + * [数据加解密](/ruoyi-vue-plus/framework/extend/encrypt.md) + * [翻译功能](/ruoyi-vue-plus/framework/extend/translation.md) + * [WebSocket功能](/ruoyi-vue-plus/framework/extend/websocket.md) + * [SSE功能](/ruoyi-vue-plus/framework/extend/sse.md) + * [Skywalking链路监控](/ruoyi-vue-plus/framework/extend/skywalking.md) + * [对接MaxKey单点登录](/ruoyi-vue-plus/framework/extend/maxkey.md) + * [对接TOPIAM单点登录](/ruoyi-vue-plus/framework/extend/topiam.md) + * 功能说明 + * [事务相关](/ruoyi-vue-plus/framework/explain/transaction.md) + * [单元测试](/ruoyi-vue-plus/framework/explain/test.md) + * [主键使用说明](/ruoyi-vue-plus/framework/explain/key.md) + * [关于多表查询](/ruoyi-vue-plus/framework/explain/about_join.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md new file mode 100644 index 00000000..ac8eb907 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md @@ -0,0 +1,2028 @@ +# 更新日志 +- - - + +## v5.2.2 - 2024-08-26 + +### 重大改动 + +* 增加 ruoyi-common-sse 模块 支持SSE推送 比ws更轻量更稳定的推送 +* 增加 springboot snailjob 等 actuator 账号密码认证 杜绝内外网信息泄漏问题 +* 增加 重构代码生成器 集成anyline开源框架 支持400+种数据库适配 + +### 依赖升级 + +* update springboot 3.2.6 => 3.2.9 +* update snailjob 1.0.1 => 1.1.2 +* update mapstruct-plus 1.4.3 => 1.4.4 +* update hutool 5.8.27 => 5.8.31 解决hutool不兼容jakarta问题 +* update anyline 8.7.2-20240808 +* update sms4j 3.2.1 => 3.3.2 +* update redisson 3.31.0 => 3.34.1 +* update mapstruct-plus 1.3.6 => 1.4.3 +* update lombok 1.18.32 => 1.18.34 +* update easyexcel 3.3.4 => 4.0.2 +* update springdoc 2.5.0 => 2.6.0 +* update flowable 7.0.0 => 7.0.1 + +### 功能更新 + +* update 优化 去除日志部署环境判断 通过日志级别控制 +* update 优化 忽略租户与忽略数据权限支持嵌套使用(感谢 amadeus5201) +* update 优化 租户相关controller 增加租户开关配置控制是否注册 +* update 优化 移除 alibaba ttl 与线程池搭配有问题(可传递但无法清除与更新) +* update 优化 个人中心编辑 忽略数据权限 +* update 优化 兼容部分用户不想给用户分配角色与部门的场景 +* update 优化 租户套餐重名校验 +* update 优化 部门下存在岗位不允许删除 +* update 优化 角色编辑状态未校验问题 +* update 优化 用户脱敏增加编辑权限标识符 +* update 优化 代码生成器 自动适配oss翻译 +* update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题 +* update 优化 支持通过配置文件关闭工作流 +* update 优化 增加mybatis-plus填充器兜底策略 +* update 优化 TenantSpringCacheManager 处理逻辑 +* update 优化 角色权限判断 +* update 优化 增加删除标志位常量优化查询代码 +* update 优化 监控使用独立web依赖 +* update 优化 更多脱敏策略(感谢 hemengji) +* update 优化 设置nginx sse相关代理参数 +* update 优化 调整默认推送使用SSE +* update 优化 Monitor监控服务通知分类打印(感谢 AprilWind) +* update 优化 限流注解 又写key又不是表达式的情况 +* update 优化 WorkflowUtils查询用户信息发送消息未查询邮件和手机号(感谢 yanzy) +* update 优化 注释掉其他数据库 jdbc 依赖 由用户手动添加 +* update 优化 oracle snailjob 兼容低版本oracle索引名称长度限制 +* update 优化 数据权限支持通过菜单标识符获取数据所有权 +* update 优化 数据权限支持自定义连接符 +* update 优化 TestDemo 删除前校验数据权限 +* update 优化 更换docker镜像底层系统 避免无字体情况 + +### 问题修复 + +* fix 修复 三方登录构建去除无用代码 +* fix 修复 多线程对同一个session发送ws消息报错问题 +* fix 修复 依赖漏洞 限制部分依赖版本 +* fix 修复 excel 基于其他字段 合并错误问题 +* fix 修复 一级缓存key未区分租户问题 +* fix 修复 id字符串格式转换错误问题 +* fix 修复 登出无法正确删除对应的租户数据问题 +* fix 修复 登录错误锁定不区分租户问题 +* fix 修复 转换模型缺少分类字段 +* fix 修复 权限标识符处理未设置成功状态问题 +* fix 修复 无法导入 bpmn 类型文件问题 + +### 前端改动 + +* update element-plus 2.7.5 => 2.7.8 +* update vue 3.4.25 => 3.4.34 +* update vite 5.2.10 => 5.2.12 +* add 增加 使用 vueuse 编写 sse 推送功能 +* update 优化 使用匹配模式简化预编译配置 +* update 优化 时间搜索组件统一 +* update 优化 oss 配置按钮 使用ossConfig权限标识符与oss权限分离 +* update 优化 类型报错问题 +* update 优化 切换租户后刷新首页 +* update 优化 实现表格行选中切换 +* update 优化 使用 vueuse 重构 websocket 实现 +* update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题 +* update 优化 调整默认推送使用SSE +* fix 修复 租户套餐导出路径错误问题 +* fix 修复 登出后重新登录 sse推送报错问题 + + +## v5.2.1 - 2024-07-09 + +### 功能更新 + +* update 优化 更改prod环境 snailjob状态 默认启用 +* update 优化 替换过期方法 +* update 优化 租户列表接口 避免登录之后列表被域名过滤 +* update 优化 获取用户账户方法 LoginHelper#getUsername(感谢 AprilWind) +* update 优化 用户ID查询角色列表代码实现(感谢 AprilWind) +* update 优化 大数据量下join卡顿问题 使用子查询提高性能 +* update 优化 修改路由name命名规则 防止重复路由覆盖问题(感谢 玲娜贝er) +* update 优化 修改 snailjob 默认端口 避免与系统内置端口冲突问题 +* update 优化 isTenantAdmin 空校验 +* update 优化 webscoket 配置与异常拦截 +* update 优化 更新 redis 密码策略(密码必填 升级需注意) +* update 优化 更新使用 Spring 官方推荐 JDK +* update 优化 StreamUtils 抽取 findFirst findAny 方法 +* update 优化 工作流相关代码方法 + +### 问题修复 + +* fix 修复 postgres flowable sql 缺失字段问题 +* fix 修复 新版上传未设置acl问题 +* fix 修复 get路径特殊规则 导致 actuator 泄漏问题 [issue#4f9ceb0a](https://gitee.com/dromara/RuoYi-Vue-Plus/commit/4f9ceb0a8057284a0d9d69da58df630d8bc2e84f) +* fix 修复 pg数据库 用户查询报错问题 +* fix 修复 isLogin 方法抛异常无法正常返回值问题 + +### 前端改动 + +* update 优化 工作流选人改为懒加载窗口 +* update 优化 路由name重复检查 +* update 优化 eslint 语法 +* update 优化 动态创建组件实例时, 设置路由name为组件名 解决缓存问题 +* fix 修复 由于没有await 导致执行顺序不可控 +* fix 修复 富文本编辑器 添加之后内容未清理问题 + +## v5.2.0 - 2024-06-20 + +### 重大改动 + +* 集成 flowable 增加工作流相关功能(感谢 May) +* 集成 snailjob 移除 powerjob(投诉的人太多使用成本太高)(感谢 dhb52) +* 升级 aws s3 升级到 2.X 性能大幅提升 +* 优化 数据权限 数据加密 使用预扫描mapper注解提升代码性能(感谢 老马) +* 新增 caffeine 减少将近90%的redis查询提高性能 + +### 依赖升级 + +* update springboot 3.1.7 => 3.2.6 支持虚拟线程 +* update springboot-admin 3.1.8 => 3.2.3 +* update mybatis-plus 3.5.4 => 3.5.7 适配更改代码 +* update springdoc 2.2.0 => 2.5.0 +* update easyexcel 3.3.3 => 3.3.4 +* update redisson 3.24.3 => 3.31.0 +* update lombok 1.18.30 => 1.18.32 +* update sms4j 2.2.0 => 3.2.1 支持自定义配置key 可用于多厂商多租户等 +* update satoken 1.37.0 -> 1.38.0 +* update hutool 5.8.22 => 5.8.26 +* update mapstruct-plus 1.3.5 => 1.3.6 +* update lock4j 2.2.5 => 2.2.7 +* update dynamic-ds 4.2.0 => 4.3.1 + +### 功能更新 + +* update 优化 三方登录不同域名问题 采用新方案 +* update 优化 获取aop代理的方式 减少与其他使用aop的功能冲突的概率 +* update 优化 token无效时关闭ws连接(感谢 AprilWind) +* update 优化 移除表单构建菜单(没有可用组件 用处不大以后再考虑) +* update 优化 切换动态租户 默认线程内切换(如需全局 手动传参) +* update 优化 代码生成注释,删除无用引入(感谢 AprilWind) +* update 优化 代码生成 el-radio 标签过期属性 +* update 优化 异常处理器自动配置 +* update 优化 文件下载使用对流下载降低内存使用(感谢 PhoenixL) +* update 优化 去除gc日志参数(有需要自己加) +* update 优化 拆分异常处理器 +* update 优化 常规web异常状态码 +* update 优化 设置静态资源路径防止所有请求都可以访问静态资源 +* update 优化 redis 对Long值的存储类型不同问题 +* update 优化 去除加密请求类型限制 +* update 优化 mp多租户插件注入逻辑 +* update 优化 RedisUtils 支持忽略租户 +* update 优化 更新ip地址xdb文件 +* update 优化 验证码背景色改为浅灰色 +* update 优化 mybatis依赖设置为可选依赖 避免出现不应该注入的情况 +* update 优化 GET 方法响应体支持加密 +* update 优化 excel插件合并策略 去除被合并单元格的非首行内容(感谢 司猫子) +* update 优化 下拉选接口数据权限 +* update 优化 OssFactory 获取实例锁性能 +* update 优化 使用翻译注解简化用户查询 调整用户查询逻辑 +* update 优化 框架整体提高查询性能 +* update 优化 将p6spy配置文件统一放置到 common-mybatis 插件包内 + +### 新增功能 + +* add 新增 分布式锁Lock4j异常拦截器 +* add 新增 个人中心-在线设备管理 +* add 新增 岗位编码与部门编码并将岗位调整到部门下(感谢 AprilWind) +* add 新增 BaseMapperPlus提供可选是否抛异常selectVoOne方法(感谢 秋辞未寒) +* add 新增 用户、部门、角色、岗位 下拉选接口与代码实现优化 +* add 增加 StringUtils.isVirtual 方法 +* add 增加 JustAuth 整合 TopIam 单点登录 + +### 问题修复 + +* fix 修复 websocket clientid 参数不走mvc拦截器 无法生效问题 +* fix 修复 oss未使用租户 拼接租户id null问题 +* fix 修复 用户昵称修改后未清除对应缓存问题(感谢 zhuweitung) +* fix 修复 图片预览问题(感谢 AprilWind) +* fix 修复 三方账号可以绑定多平台账号问题 +* fix 修复 主建错别字(感谢 good) +* fix 修复 兼容redis5.0出现的问题 +* fix 修复 部分浏览器无法获取加密响应头问题 +* fix 修复 用户未设置部门 登录报错问题 +* fix 修复 excel 表达式字典 下拉框导出格式错误 +* fix 修复 提升锁的作用域 并采用双重校验锁(感谢 fanc) +* fix 修复 用户登录查询部门缓存无法获取租户id问题 +* fix 修复 关闭租户功能 三方登录报错问题 + + +### 前端改动 + +* update element-plus 2.7.5 +* update vite 5.2.10 +* update vue 3.4.25 +* update vue-router 4.3.2 +* update nodejs 升级到最低 18.18.0 +* update 优化 跟密码相关的默认前端关闭防重功能 +* update 优化 点击左边菜单时页面空白或者刷新整个页面的问题 +* update 优化 el-select 与 el-input 全局样式 +* update 优化 首页打开topNav不展开菜单问题 +* update 优化 支持全局开启或关闭接口加密功能 +* update 优化 密码校验策略增加非法字符限制 +* update 优化 图片上传组件增加压缩功能支持 可自行开关(感谢 fengheguai) +* update 优化 request请求类判断请求头方式 +* update 优化 更改客户端状态接口 使用clientId传参 +* update 优化 ws开关改为常开(vite5修复了崩溃bug) +* fix 修复 移动端下 无法展开菜单问题 +* fix 修复 面板因为min width原因收缩不全 +* fix 修复 文件预览大写后缀不展示的问题(感谢 北桥) +* fix 修复 i18n无感刷新问题 +* fix 修复 websocket 非index页面刷新无法重连问题 + +## v5.1.2 - 2023-12-22 + +### 依赖升级 + +* update springboot 3.1.5 => 3.1.7 +* update mybatis-boot 3.0.2 => 3.0.3 优化依赖传递 +* update powerjob 4.3.3 => 4.3.6 +* update easyexcel 3.3.2 => 3.3.3 +* update transmittable-thread-local 2.14.2 => 2.14.4 +* update justauth 1.16.5 => 1.16.6 +* update redisson 3.24.1 => 3.24.3 修复订阅重启连接超时问题 + +### 功能更新 + +* update 优化 为 admin 模块 单独增加 ratelimiter 模块 +* update 优化 验证码接口 增加限流配置 +* update 优化 excel合并注解会根据第一合并列的结果来决定后续的列合并 (感谢 Simple) +* update 优化 SocialUtils 代码 +* update 优化 删除无用异常类 +* update 优化 补全三方登录校验国际化 +* update 优化 sms组件 预留自动配置类 +* update 更新 关于数据库的说明 +* update 优化 sms组件 预留自动配置类 +* update 优化 将 OSS配置 改为全局模式 降低使用难度 保留sql便于用户自行扩展(常规项目用不上配置分多租户) +* update 优化 细化oss配置管理权限控制 +* update 优化 开启 redisson 脚本缓存 减少网络传输 +* update 优化 删除 hikaricp 官方不推荐使用的配置 jdbc4 协议自带校验方法 +* update 优化 减少 PlusSaTokenDao 不必要的查询优化性能 +* update 优化 更新用户异常提示 使用登录账号 +* update 优化 使用登录用户判断是否登录 提高效率 +* update 优化 重构 LoginHelper 将本地存储代码操作封装 +* update 优化 getTenantId 判断是否开启多租户 +* update 优化 Dockerfile 使用shell模式 支持环境变量传入jvm参数 +* update 优化 WebSocketUtils 连接关闭改为警告 +* update 优化 excel多sheet页导出 (感谢 May) +* update 优化 删除无用接口实现 +* update 优化 jvm参数调整 全面启用zgc +* update 优化 使用动态租户重构业务对租户的逻辑 +* update 优化 TenantHelper 动态租户支持函数式方法 +* update 优化 支持多租户绑定相同的三方登录 +* update 优化 更新用户登录信息方法忽略数据权限 +* update 优化 补全三方绑定时间字段 删除无用excel注解 +* update 优化 将登录记录抽取到监听器统一处理 +* update 优化 租户插件 ignoreTable 方法支持动态租户 + +### 新增功能 + +* add 新增 RedisUtils.setObjectIfExists 如果存在则设置方法 +* add 新增 丰富RedisUtils对List Set类型的操作 +* add 新增 翻译组件 用户昵称翻译实现 +* add 新增 响应加密功能 支持注解强制加密接口数据 (感谢 MichelleChung) + +### 问题修复 + +* fix 修复 selectDictTypeByType 查询方法错误问题 +* fix 修复 一些不正常类无法加载报错问题 +* fix 修复 powerjob sql脚本针对其他数据库转义符问题 (感谢 branches) +* fix 修复 MybatisSystemException 空指针问题 +* fix 修复 excel合并注解会根据第一合并列的结果来决定后续的列合并 +* fix 修复 session 多账号共用覆盖问题 改为 tokenSession 独立存储 +* fix 修复 token 失效后 登录获取用户null问题 +* fix 修复 powerjob部署方案 高版本nginx不生效问题 +* fix 修复 OssFactory 并发多创建实例问题 +* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 + +### 前端改动 + +* update 优化 用户头像 img 变量无确定类型问题 +* update 优化 细化oss配置管理权限控制 +* update 优化 明确打包命令 +* update 优化 代码中存在的警告 +* update 优化 前端白名单页面放行逻辑 +* update 优化 页面关于权限标识符说明 +* fix 修复 append-to-body 编写错误 (感谢 Ai3_刘小龙) +* fix 关闭动态路由tab页签时不清理组件缓存 (感谢 NickLuo) +* fix 删除重复环境变量ElUploadInstance (感谢 棉花) +* fix 修复 在线用户 强推按钮点击取消控制台警告问题 +* fix 修复 字典使用 default 样式报警告问题 + +## v4.8.2 - 2023-11-27 + +### 依赖升级 + +* update springboot 2.7.17 => 2.7.18 升级到2.X最终版本(官方停更) +* update mybatis-plus 3.5.3.2 => 3.5.4 +* update springboot 2.7.14 => 2.7.17 +* update satoken 1.36.0 => 1.37.0 +* update aws-java-sdk-s3 1.12.400 => 1.12.540 +* update vue-quill 1.1.0 => 1.2.0 + +### 功能更新 + +* update 优化 页面关于权限标识符说明 +* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 +* update 优化 部门数据权限使用默认兜底方案 +* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) +* update 优化 补全代码生成 columnList 接口参数注解缺失 +* update 优化 操作日志 部门信息完善 vue3页面 +* update 优化 AddressUtils 兼容linux系统本地ip +* update 优化 操作日志 部门信息完善 (感谢 柏竹) +* update 优化 数据权限 减少二次校验查询 +* update 优化 vue3 版本用户初始密码从字典查询 +* update 优化 富文本Editor组件检验图片格式 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 全局数据存储用户编号 +* update 优化 菜单管理类型为按钮状态可选 + +### 问题修复 + +* fix 修复 OssFactory 并发多创建实例问题 +* fix 修复 demo的form字段有误 (感谢 dhb52) +* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 +* fix 修复 数据权限优化后 update delete 报null问题 +* fix 修复 五级路由缓存无效问题 +* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 +* fix 修复 内链iframe没有传递参数问题 +* fix 修复 外链带端口出现的异常 +* fix 修复 普通角色编辑使用内置管理员code越权问题 +* fix 修复 代码生成 是否必填与数据库不匹配问题 +* fix 修复 HeaderSearch组件跳转query参数丢失问题 +* fix 修复 树结构代码生成新增方法赋值错误 (感谢 这夏天依然平凡) + +## v5.1.1 - 2023-11-14 + +### 依赖升级 + +* update springboot 3.1.3 => 3.1.5 +* update springboot 2.7.14 => 2.7.17(扩展服务) +* update springboot-admin 3.1.5 => 3.1.7 +* update satoken 1.35.0.RC => 1.37.0 +* update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 +* update dynamic-ds 4.1.3 => 4.2.0 +* update bouncycastle 1.72 => 1.76 +* update poi 5.2.3 => 5.2.4 +* update redisson 3.23.2 => 3.24.1 +* update hutool 5.8.20 => 5.8.22 +* update lombok 1.18.26 => 1.18.30(适配支持jdk21) +* update vue-quill 1.1.0 => 1.2.0 + +### 功能更新 + +* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 +* update 优化 适配 maxkey 新版本 +* update 优化 @Sensitive脱敏增加角色和权限校验 (感谢 盘古给你一斧) +* update 优化 部门数据权限使用默认兜底方案 +* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) +* update 优化 登录策略代码优化(感谢 David Wei) +* update 优化 补全代码生成 columnList 接口参数注解缺失 +* update 优化 nginx 配置支持 websocket +* update 优化 notice 新增通知公告发送ws推送 +* update 优化 websocket 模块减少日志输出 增加登录推送 +* update 优化 重构登录策略增加扩展性降低复杂度 +* update 优化 addressUtils 兼容linux系统本地ip +* update 优化 补全操作日志部门数据 +* update 优化 支持数据库操作在非web环境下切换租户 +* update 优化 排除powerjob无用的依赖 减少打包30M体积 +* update 优化 删除 satoken yml 时间配置 此功能已迁移至客户端管理 +* update 优化 redis 集群模式注释说明 +* update 优化 客户端禁用限制 +* update 优化 登录日志, 在线用户展示信息(增加 客户端, 设备类型)(感谢 MichelleChung) +* update 优化 限制框架中的fastjson版本 +* update 优化 数据权限 减少二次校验查询 +* update 优化 将部门id存入token避免过度查询redis +* update 优化 增加租户ID为Null错误日志 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) +* update 优化 为 sys_grant_type 字典增加样式 +* update 优化 代码生成 页面输入框样式 +* update 优化 全业务分页查询增加排序规则避免因where条件导致乱序问题 +* update 优化 登录接口租户id被强制校验问题 +* update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge) +* update 优化 将graalvm镜像更新为openjdk镜像 需要的人自行切换即可 +* update 优化 部分使用者乱设权限导致无法获取用户信息 增加权限提示 +* update 优化 表格列的显示与隐藏小组件(感谢 bestrevens) +* update 优化 增加表单构建不能使用说明 +* update 优化 富文本Editor组件检验图片格式 +* update 优化 操作日志列表新增IP地址查询 +* update 优化 菜单管理类型为按钮状态可选 +* update 优化 用户初始密码从参数配置查询 +* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) +* update 优化 字典标签支持数组和多标签(感谢 抓蛙师) + +### 新增功能 + +* add 新增 websocket 群发功能 +* add 新增 前端接入websocket接收消息(感谢 三个三) + +### 问题修复 + +* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 +* fix 修复 租户id为null 无法匹配字符串导致的嵌套key问题 +* fix 修复 部门管理orderNum排序失效问题 +* fix 修复 外链带端口出现的异常 +* fix 修复 普通角色编辑使用内置管理员code越权问题 +* fix 修复 代码生成 是否必填与数据库不匹配问题 +* fix 修复 用户注册接口校验用户名不区分租户问题 +* fix 修复 错误增加组导致的校验不生效问题 +* fix 修复 新增校验主键id问题 +* fix 修复 powerjob 使用 nginx 部署无法访问的问题 +* fix 修复 SysUserMapper 内标签使用错误(不影响使用) +* fix 修复 新增或编辑 SysOssConfig 数据后 推送到 redis 数据不完整 +* fix 修复 树表生成查询变量使用错误 +* fix 修复 个人信息修改密码接口隐藏新旧密码参数明文(感谢 bleachtred) +* fix 修复 删除字段后 * update sql 未更新问题 +* fix 修复 三方登录支付宝source与实际支付宝业务code不匹配问题 +* fix 修复 五级路由缓存无效问题 +* fix 修复 内链iframe没有传递参数问题 +* fix 修复 绑定第三方帐号参数“wechar”更正为“wechat” (感谢 scmiot) +* fix 修复 用户注册缺失 clientid 问题 +* fix 修复 HeaderSearch组件跳转query参数丢失问题 +* fix 修复 自定义字典样式不生效的问题 +* fix 修复 login 页面 loading 未关闭问题 + +## v4.8.1 - 2023-09-25 + +### 依赖升级 + +* update springboot 2.7.15 => 2.7.16 +* update springboot-admin 2.7.10 => 2.7.11 +* update satoken 1.35.0.RC => 1.36.0 +* update lombok 1.18.26 =. 1.18.30 +* update mybatis-plus 3.5.3.1 => 3.5.3.2 +* update easyexcel 3.3.1 => 3.3.2 +* update hutool 5.8.18 => 5.8.20 + +### 功能更新 + +* update 优化 重置密码注释参数中文解释错误 +* update 优化 getTokenActivityTimeout => getTokenActiveTimeout +* update 优化字典标签支持传分隔符分隔的字符串和数组,优化渲染效果 +* update 优化 控制台debuger位置错误问题 +* update 优化 TopNav 菜单样式 +* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 +* update 优化 用户管理 只查询未禁用的部门角色岗位数据 +* update 优化 岗位如果绑定了用户则不允许禁用 +* update 优化 部门与角色如果绑定了用户则不允许禁用 +* update 优化 加密实现 使用 EncryptUtils 统一处理 +* update 优化 excel导出字典转下拉框 无需标记index自动处理 +* update 优化 excel 导出字典默认转为下拉框 +* update 优化 删除一些跟 swagger 有关的字眼 避免误解 +* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 +* update 优化 RedisCacheController 注释错误 +* update 优化 xxljob 端口随着主应用端口飘逸 避免集群冲突 +* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 + +### 问题修复 + +* fix 修复 代码生成后 vo 定义 'serialVersionUID' 字段的不可序列化类 +* fix 修复 自定义字典样式不生效的问题 +* fix 修复 布局配置失效问题 +* fix 修复 新建用户可能会存在的越权行为 +* fix 修复 字典缓存删除方法参数错误问题 +* fix 修复 修复树模板父级编码变量错误 +* fix 修复 有界队列与优先队列 错误使用问题 +* fix 修复 升级 mp 版本导致的问题 +* fix 修复 vue3 版本注册页验证码不显示问题 +* fix 修复 加密模块数据转换异常问题 +* fix 修复 动态设置 token 有效期不生效问题 +* fix 修复 token 过期登出无法清理在线用户问题 + + +## v5.1.0 - 2023-09-05 + +# 开发历程 + +* 2023年5月 开始 5.1.0 计划 历经1个月的设计与讨论 +* 2023年6月 开始着手开发 历经2个多月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 +* 2023年8月 开始公测 历经将近1个月的公测与修复工作(期间成功支持多位使用者生产使用) +* 2023年9月初 正式发布(经过多个小伙伴的生产实践 已基本可尝试生产使用) +> 关于4.X的说明 由于SpringBoot2.X与vue2.X均在11月底停止维护
+> 故而咱们vue版本4.X也无法再继续更新
+> 介于4.X的用户量特别庞大 功能也非常的稳定
+> 计划于11月底同Boot2.X一同停止更新但还会持续维护修复bug(修复的形式为直接提交到4.X分支停止发版)
+ +# 视频介绍 + +为了更好的让大家了解 5.1.0 作者录制了相关的视频 供大家快速了解上手 + +* 5.1.0 新功能与变更介绍: https://www.bilibili.com/video/BV1fj411y71X/ +* 搭建与运行: https://www.bilibili.com/video/BV1Fg4y137JK/ +* 生产环境搭建部署: https://www.bilibili.com/video/BV1mL411e7ha/ + +# 更新日志 + +### 重大更新 + +* [重大更新] 优化 相关代码 完成代码生成多数据源统一存储(感谢 WangBQ !pr349) +* [不兼容更新] 移除 原短信功能 集成更强大的 sms4j 短信工具包(感谢 友杰 !pr367) +* [不兼容更新] 对接 powerjob 实现分布式任务调度 删除原有 xxljob 原因为社区不更新功能太少只支持mysql(感谢 yhan219 !pr359) +* [重大更新] 新增 三方授权绑定登录功能 基于 justauth 支持市面上大部分三方登录(感谢 三个三 !pr370) +* [不兼容更新] 新增 客户端授权功能 不需要更改任何代码即可完成多端动态对接(感谢 Michelle.Chung !pr379) +* [重大更新] 新增 前后端接口请求加密传输 基于AES+RSA动态高强度加密(感谢 wdhcr !pr377) +* [重大更新] 新增 三方授权登录 对接 maxkey 单点登录 +* [不兼容更新] 优化 redis序列化配置 更改为通用格式(升级需清除redis所有数据) + +### 依赖升级 + +* update springboot 3.0.7 => 3.1.3 +* update springboot-admin 3.1.3 => 3.1.5 +* update springdoc 2.1.0 => 2.2.0 +* update spring-mybatis 3.0.1 => 3.0.2 +* update mybatis-plus 3.5.3.1 => 3.5.3.2 +* update easyexcel 3.2.1 => 3.3.2 +* update mapstruct-plus 1.2.3 => 1.3.5 解决修改实体类 idea不编译问题 +* update satoken 1.34.0 => 1.35.0.RC 优化过期配置 支持多端token自定义有效期 +* update dynamic-ds 3.6.1 => 4.1.3 支持 SpringBoot3 +* update sms4j 2.2.0 +* update hutool 5.8.18 => 5.8.20 +* update redisson 3.20.1 => 3.23.4 +* update lock4j 2.2.4 => 2.2.5 +* update aws-java-sdk-s3 1.12.400 => 1.12.540 +* update maven-surefire-plugin 3.0.0 => 3.1.2 + +### 功能更新 + +* update 优化 excel 导出合并 在初始化类时进行数据的处理 +* update 优化 简化 flatten 插件语法写法 +* update 优化 支持本地虚拟域名调试(感谢 代星登 !pr363) +* update 重构 将框架内的 swagger 命名更改为 springdoc 命名避免误解 +* update 重构 将系统内置配置放置到 common 包内独立加载 不允许用户随意修改 +* update 优化 切换 maven 仓库到 华为云(aliyun依赖不更新拉取不到) +* update 优化 升级 satoken 支持多端 token 自定义有效期功能 +* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 +* update 优化 在全局异常拦截器中增加两类异常处理 +* update 优化 提供powerjob完整sql脚本 降低用户使用难度 +* update 优化 StreamUtils 其他方法过滤null值(感谢 bleachtred !pr390) +* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 +* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 +* update 修改代码生成模版,日期范围统一采用addDateRange方法(感谢 LiuHao !pr397) +* update 优化 树表生成前端缺少 children 字段 +* update 优化 CryptoFilter null判断工具 +* update 优化 websocket 路径与 cloud 版本保持一致 +* update 优化 更新登录策略返回值(感谢 zlyx) +* update 修改代码生成模板,调整列表打开对话框和接口请求顺序 +* update 优化 SaInterceptor 拦截器判断 token 客户端id是否有效(感谢 zlyx !pr402) +* update 优化 excel 导出字典默认转为下拉框 +* update 优化 兼容 clientid 通过 param 传输 +* update 优化 excel导出字典转下拉框 无需标记index自动处理(感谢 一夏coco) +* update 优化 简化线程池配置 +* update 优化 屏蔽 powerjob 无用的心跳日志 +* update 优化 适配 mysql 8.0.34 升级连接机制 +* update 优化 加密实现 使用 EncryptUtils 统一处理 +* update 优化 删除字典无用状态字段(基本用不上 禁用后还会导致回显问题) +* update 优化 部门与角色如果绑定了用户则不允许禁用 +* update 优化 岗位如果绑定了用户则不允许禁用 +* update 优化 用户管理 只查询未禁用的部门角色岗位数据 +* update 优化 登录用户增加昵称返回 +* update 优化 将部门管理 负责人选项改为下拉框选择(感谢 Lionel !pr410) +* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 +* update 优化 登录用户缓存 去除冗余统一存储 +* update 优化 放宽菜单权限 角色关联菜单无需管理员 + +### 新增功能 + +* add 增加 RedisUtils 批量删除 hash key 方法 +* add 新增 Oss 上传 File 文件方法(感谢 jenn !pr362) +* add 增加 excel 导出下拉框功能 +* add 新增 RedisUtils.setObjectIfAbsent 如果不存在则设置方法 + +### 修复问题 + +* fix 修复 脱敏注解标记位置错误 +* fix 修复 OssClient 实例多租户相同key缓存覆盖问题 +* fix 修复 关闭多租户 脱敏判断问题 +* fix 修复 OssClient 切换服务 实例不正确问题(感谢 jenn !pr360) +* fix 修复 传参类型不正确导致 postgreSql 同步套餐报错问题 +* fix 修复 参数类型修改 未修改校验注解 +* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题(感谢 konbai !pr366) +* fix 修复 common-core 包使用aop注解 但未添加aop实现类导致单独使用报错问题 +* fix 修复 Mapper 多参数未加 @Param 注解问题 +* fix 修复 邮箱登录 查询值错误问题 +* fix 修复 用户篡改管理员角色标识符越权问题 +* fix 修复 字典缓存注解使用错误问题 +* fix 修复 查询部门下拉树未过滤数据权限问题 +* fix 修复 CacheName 缓存key存储错误问题 +* fix 修复 代码生成 前端添加或修改表单修改列生成问题 +* fix 修复 新增角色使用内置管理员标识符问题 +* fix 修复 代码生成 前端添加或修改表单修改列生成问题 +* fix 修复 token 过期登出无法清理在线用户问题 +* fix 修复 加密模块数据转换异常问题 +* fix 修复 可能导致异常类无法反序列化问题 +* fix 修复 代码生成 编辑按钮刷新列表问题 +* fix 修复 客户端编辑时授权类型变更未保存的问题(感谢 David Wei !pr400) +* fix 修复 有界队列与优先队列 错误使用问题 +* fix 修复 修复树模板父级编码变量错误 +* fix 修复 部署部分系统出现乱码问题 +* fix 修复 一级菜单无法显示问题 +* fix 修复 可能会存在的越权行为(感谢 丶Stone !pr416) +* fix 修复 代码生成页面参数缺少逗号问题 + +### 移除功能 + +* remove 移除原有短信功能(建议使用sms4j) +* remove 移除xxljob功能(建议使用powerjob) + + +## v4.8.0 - 2023-07-10 + +### 重大更新 + +* [重大更新] 新增 sms4j 短信融合框架整合(支持数十种短信厂商接入、发送限制、负载均衡等功能) +* [不兼容更新] 移除 原短信功能(建议使用新 sms4j 功能) +* [重要迁移] 迁移 vue3 前端到主仓库统一维护 + +### 依赖升级 + +* update springboot 2.7.11 => 2.7.13 +* update satoken 1.34.0 => 1.35.0.RC +* update easyexcel 3.2.1 => 3.3.1 +* update sms4j 2.2.0 + +### 功能更新 + +* update 优化 StreamUtils 方法过滤null值 +* update 优化 页签在Firefox浏览器被遮挡 +* update 优化 在全局异常拦截器中增加两类异常处理 +* update 优化 下载zip方法增加遮罩层(感谢@梁剑锋) +* update 优化 用户昵称非空校验 +* update 优化 修改角色如果未绑定用户则无需清理 +* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 +* update 优化 satoken 过期配置 支持多端token自定义有效期 +* update 优化 加密注解注释错误 +* update 优化 切换 maven 仓库到华为云(aliyun 不可用) +* update 优化 excel 导出存在合并项时在初始化类时进行数据的处理避免多次调用(感谢@yueye) +* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 + +### 新增功能 + +* add 新增 RedisUtils.setObjectIfAbsent 不存在则设置方法 +* add 新增 Excel 导出附带有下拉框(字典自动导出为下拉框) 可自定义多级下拉框(感谢@Emil.Zhang) +* add 新增 OssClient File 文件上传方法 +* add 增加 RedisUtils 批量删除 hash key 方法 + +### 问题修复 + +* fix 修复 新增角色使用内置管理员标识符问题 +* fix 修复 缓存监控图表 支持跟随屏幕大小自适应调整(感谢@抓蛙师) +* fix 修复 防重组件 错删注解问题 +* fix 修复 CacheName 缓存key存储错误问题 +* fix 修复 字典缓存注解使用错误问题 +* fix 修复 用户篡改管理员角色标识符越权问题 +* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 +* fix 修复 OssClient 切换服务 实例不正确问题 +* fix 修复 element ui 因版本而未被工具识别问题(感谢@梁剑锋) +* fix 修复 admin监控 切换tab页需要重复登录问题 + +## v5.0.0 - 2023-05-19 + +# 开发历程 + +* 2022年11月 开始5.X计划 历经2个月的设计与讨论 +* 2023年1月 开始着手开发 历经3个月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 +* 2023年4月 开始公测 历经将近2个月的公测与修复工作(期间成功支持多位使用者生产使用) +* 2023年5月底 正式发布 虽然已经有生产实践 但是springboot3.0与jdk17使用者还处于少数 另外5.X后续还有一些不兼容更新 求稳者建议在等一等 +* 关于4.X的说明 由于springboot2.X 与 vue2.X 匀在年底停止维护 故此4.X也将于年底同boot2一同停止维护 + +# 视频介绍 + +为了更好的让大家了解 5.X 作者录制了相关的视频 供大家快速了解上手 + +* 搭建与运行: https://www.bilibili.com/video/BV1Fg4y137JK/ +* 新功能与变更介绍: https://www.bilibili.com/video/BV1Us4y1m7ky/ +* 生产环境搭建部署: https://www.bilibili.com/video/BV1mL411e7ha/ + +# 更新日志 + +### 重大更新 + +* [不兼容升级] java 版本从 jdk 8 升级到 jdk 17 且需要使用 graalvm 运行(暂时未解决原生jdk存在的问题) +* [不兼容升级] springboot 升级 3.0 版本 +* [不兼容升级] 重构 项目模块结构 采用插件化结构 易扩展易解耦 +* [不兼容升级] com.sun.mail 更改为 jakarta.mail 修改最新写法 +* [不兼容升级] javax.servlet 替换为 jakarta.servlet 更新所有代码 +* [简化性升级] 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) +* [数据库改动] 更新 create_by update_by 字段类型 (保存用户id) +* [数据库改动] 新增 create_dept 字段 (保存创建部门id) +* [不兼容更新] system 模块 所有实体类均使用 bo|vo 规范化 +* [重大更新] 新增 多租户功能设计 整体框架代码结构与数据库更改 +* [重大更新] 新增 mapstruct-plus 替换 BeanUtil 与 BeanCopyUtils 工具 +* [不兼容更新] 重构 登录注解接口与cloud版本统一接口路径 +* [不兼容更新] 重构 BaseMapperPlus接口 去除 `@param Mapper` 泛型 +* [不兼容更新] 移除 vue2 前端工程 全面启用 vue3 +* [重大更新] 新增 vue3 + TS 版本前端(独立仓库后续与Cloud版本共用) +* [重大更新] 增加 websocket 模块 支持token鉴权 支持分布式集群消息同步 +* [重大更新] 框架文档全面翻新 https://plus-doc.dromara.org + +### 依赖升级 + +* update java 1.8 => 17 +* update springboot 2.7.7 => 3.0.7 +* update springboot-admin 2.7.10 => 3.0.4 +* update springdoc 1.6.14 => 2.1.0 +* update lock4j 2.2.3 => 2.2.4 +* update dynamic-ds 3.5.2 => 3.6.1 +* update easyexcel 3.1.5 => 3.2.1 +* update hutool 5.8.11 => 5.8.18 +* update redisson 3.19.2 => 3.20.1 +* update lombok 1.18.24 => 1.18.26 +* update spring-boot.mybatis 2.2.2 => 3.0.1 +* update mapstruct-plus 1.2.3 +* update maven-compiler-plugin 3.10.1 => 3.11.0 +* update maven-surefire-plugin 3.0.0-M7 => 3.0.0 +* update docker mysql 8.0.31 => 8.0.33 +* update docker nginx 1.22.1 => 1.32.4 +* update docker redis 6.2.7 => 6.2.12 +* update docker minio RELEASE.2023-04-13T03-08-07Z + +### 功能更新 + +* update 适配 AsyncConfig 替换过期继承类改为实现 AsyncConfigurer 接口 +* update 适配 redis 新版本配置文件写法 +* update 适配 获取redis 监控参数接口 替换过期语法 +* update 适配 sa-token 替换新依赖 sa-token-spring-boot3-starter +* update 适配 springboot-admin 改为最新 spring-security 写法 +* update 适配 springdoc 新版本配置方式 +* update 适配 ServletUtils 更换继承 JakartaServletUtil +* update 适配 新序列化注解 +* update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套) +* update 优化 调整 system entity 实体与 controller 包结构 +* update 优化 实体类中校验注解的提示信息 +* update 优化 使用 jdk17 语法优化代码 +* update 优化 所有 properties 文件改为注解启用 +* update 更新 docker 基础镜像 graalvm java17 +* update 优化 用户头像 改为存储 ossId 使用转换模块转为 url 展示 +* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 +* update 优化 登录流程代码注释 + +### 新增功能 + +* add 新增 flatten-maven-plugin 插件统一版本号管理 +* add 新增 ip2region 实现离线IP地址定位库 + +### 移除功能 + +* remove 移除 BeanCopyUtils 工具类 与 JDK17 不兼容 +* remove 移除 devtools 依赖 并不好用(建议直接用idea自带的热更) +* remove 移除 vue2 前端工程 统一使用 vue3 工程 + +## v4.7.0 - 2023-05-08 + +### 依赖升级 + +* update springboot 2.7.9 => 2.7.11 修复 DoS 漏洞 +* update xxljob 2.3.1 => 2.4.0 +* update minio 升级至最新版 避免低版本信息泄漏问题 +* update hutool 5.8.15 => 5.8.18 +* update redisson 3.20.0 => 3.20.1 + +### 功能更新 + +* update 优化 更改 sys_oss_config 表注释 避免误解 +* update 项目正式入驻 dromara 开源社区 更改项目地址 +* update 全新 logo 全新背景图(设计师打造) +* update 优化代码生成 同步操作使用批量处理 +* update 重写项目 readme 说明 +* update 修改controller中校验直接返回R.fail +* update 更换默认用户头像 +* update 优化 限流注解 key 支持简单 spel 表达式 +* update 优化弹窗后导航栏偏移的问题 +* update 优化$tab.closePage后存在非首页页签时不应该跳转首页 +* update delete build style +* update 优化选择图标组件 +* update 移除vue-multiselect样式 +* update 优化固定头部页签滚动条被隐藏的问题 +* update 按代码规范补全重写注解 +* update 优化 极端情况获取LoginUser可能为null问题 +* update 优化 更改系统所有服务日志配置文件命名为 logback-plus.xml 避免与其他框架默认配置冲突 +* update 优化 加解密模块 将null判断下推防止任何可能的null出现 +* update 优化 调整配置文件错误注释 +* update 优化 在线用户token获取方式 +* update 优化 用户更改角色 踢掉角色相关所有在线用户 +* update 优化 下拉图标选择组件优化:1.已选择图标高亮回显 2.滚动条采用el-scrollbar +* update 优化 Vue的DictTag组件 当value没有匹配的值时 展示空value +* update 优化 恢复翻页/切换路由滚动功能 + +### 新增功能 + +* add 新增 ip2region 实现离线IP地址定位库 +* add 增加 邮箱验证码发送接口 +* add 增加 邮箱登陆接口 +* add 增加 EncryptUtils 加解密安全工具类 可以处理base64,aes,sm4,sm2,rsa,md5,sha256加解密 +* add 增加 EncryptUtils 类中增加国密sm3的不可逆加密算法 +* add 新增 忽略数据权限写法 防止异常不执行关闭问题 + +### 问题修复 + +* fix 修复 代码生成 点选按钮不生效问题 +* fix 修复 用户密码更新无效问题 +* fix 修复 findInSet 在mysql下方法搜索非数字字段时 无引号报错问题 +* fix 修复 oracle postgres 数据库日志表索引创建错误 +* fix 角色列表关联多表sort值都一样 导致排序不稳定、临时表没有原来的主键顺序 +* fix 修复 DefaultExcelResult 单词拼写错误 +* fix 修复页面切换时布局错乱的问题 +* fix 修复tab栏“关闭其他”异常的问题 +* fix 修复 加解密拦截器 对象属性为null问题 +* fix 修复 取消oss预览状态修改 图标变化不正常问题 +* fix 修复 开启TopNav后一级菜单路由参数设置无效问题 +* fix 修复 路由跳转被阻止时vue-router内部产生报错信息问题 +* fix 修复 缓存列表:多次清除操作,提示不变的问题 + +## v4.6.0 - 2023-03-13 + +### 重大更新 + +[重大更新] add 新增 基于 Mybatis 实现数据库字段加解密功能 +[重大更新] add 新增 通用翻译注解及实现(部门名、字典、oss、用户名) + +### 依赖升级 + +* update springboot 2.7.7 => 2.7.9 +* update easyexcel 3.1.5 => 3.2.1 +* update redisson 3.19.1 => 3.20.0 +* update hutool 5.8.11 => 5.8.15 (13与14有问题勿使用) +* update springdoc 1.6.14 => 1.6.15 +* update aws-java-sdk-s3 1.12.373 => 1.12.400 +* update element-ui 2.15.10 => 2.15.12 +* update lombok 1.18.24 => 1.18.26 + +### 功能更新 + +* update 优化 实体类中校验注解的提示信息 +* update 优化 修改 oss 配置页面开关说明 避免造成误解 +* update 优化 框架代码书写格式 +* update 优化 调整连接池默认参数 +* update 优化 `DictDataMapper` 注解标注过期 推荐使用 `@Translation` 注解 +* update 优化 部门更新接口 清理缓存 +* update 优化 获取菜单数据权限接口 删除无用角色属性与逻辑 +* update 优化 调整连接池最长生命周期 防止出现警告 +* update 优化 连接池增加 `keepaliveTime` 探活参数 +* update 优化 `DataPermissionHelper` 增加 `开启/关闭` 忽略数据权限功能 +* update 重构 `OssFactory` 加载方式 改为每次比对配置做实例更新 +* update 优化 `SaToken` 自定义扩展类 改为配置类注入 便于扩展 +* update 优化 启用 `sqlserver` 高版本语法 简化sql脚本语法 +* update 优化 更新角色后踢掉所有相关的登录用户 用户量过大会导致redis阻塞卡顿(应粉丝要求) +* update 优化 翻译组件 支持返回值泛型 支持多种类型数据翻译(例如: 根据主键翻译成对象) +* update 优化 限流注解使用 `SpringEl` 表达式动态定义 Key 与 message 国际化支持 +* update 优化 限流功能 `redis key` 生成规则 以 `功能头+url+ip+key` 格式 +* update 优化 只拦截系统内存在的路径 减少不必要的拦截造成的性能消耗 +* update 优化 `tagsView` 右选框,首页不应该存在关闭左侧选项 +* update 优化 `copyright 2023` +* update 优化 监控页面图标显示 +* update 优化 日志注解支持排除指定的请求参数 +* update 优化 业务校验优化代码 +* update 优化 日志管理使用索引提升查询性能 +* update 优化 框架时间检索使用时间默认值 `00:00:00 - 23:59:59` +* update 优化 oss 预览使用 `ImagePreview` 组件 + + +### 新增功能 + +* add 新增 `BeanCopyUtils#mapToMap` 方法 +* add 新增 `StringUtils` `splitTo` 与 `splitList` 方法 优化业务代码 +* add 新增 `EasyExcel` `@ExcelEnumFormat` 枚举类数据翻译注解 + + +### 问题修复 + +* fix 修复 新版本 `Redisson` 存在与 `springboot 2.X` 的兼容性问题 +* fix 修复 vue3 模板点击删除按钮后弹框显示`[object Object]`或控制台报错的问题 +* fix 修复 接口问题开关不生效问题 +* fix 修复 前端优化文件下载出现的异常 +* fix 修复 修改密码日志存储明文问题 +* fix 修复 用户密码注解误删暴露问题 +* fix 修复 代码生成 使用 `postgreSQL` 数据库查出已删除的字段 + + +## v4.5.0 - 2023-01-12 + +### 重大更新 + +* [重大更新] 使用 spring 事件发布机制 重构登录日志与操作日志 支持多事件监听无入侵扩展 +* 例如: 可以增加一个监听者将日志上传至ES等存储 对原有逻辑无影响 + +### 依赖升级 + +* update springboot 2.7.6 => 2.7.7 +* update springboot-admin 2.7.7 => 2.7.10 +* update mybatis-plus 3.5.2 => 3.5.3.1 +* update redisson 3.18.0 => 3.19.1 +* update sa-token 1.33.0 => 1.34.0 +* update easyexcel 3.1.3 => 3.1.5 +* update springdoc 1.6.13 => 1.6.14 +* update snakeyaml 1.32 => 1.33 +* update hutool 5.8.10 => 5.8.11 +* update aws-s3 1.12.349 => 1.12.373 +* update aliyun-sms 2.0.22 => 2.0.23 +* update tencent-sms 3.1.635 => 3.1.660 +* update echarts 4.9.0 => 5.4.0 +* update vue3 element-plus 2.2.21 => 2.2.27 + +### 功能更新 + +* update 优化 BaseMapperPlus 使用 MP V3.5.3 新工具类 Db 简化批处理操作实现 +* update 优化 将环境配置放到 pom 文件上方 便于查看使用 +* update 优化 代码生成与框架主体使用相同的主键生成器 全局统一避免问题 +* update 优化 系统登录 使用单表查询校验用户 避免多次 join 查询 +* update 优化 删除 vue3 模板无用参数 +* update 优化 xss 包装器 变量命名错误 +* update 优化 重构 ExcelUtil 全导出方法支持 OutputStream 流导出 不局限于 response +* update 优化 maven 地址切换回 aliyun 仓库 +* update 优化 去除无用 guava 依赖管理 项目中已无此依赖 +* update 优化 springdoc 配置鉴权头写死问题 增加持久化鉴权头配置 +* update 优化 验证码结果使用 spel 引擎自动计算 +* update 优化 弹窗内容过多展示不全问题 +* update 优化 删除 fuse 无效选项 maxPatternLength +* update 优化 minio 安装警告 使用新版本参数 +* update 优化 使用 spring 事件机制 重构 OssConfig 缓存更新 +* update 优化 抽取 SysLoginService recordLogininfor 记录登录信息方法 简化日志记录 +* update 优化 使用 spring 事件发布机制 重构登录日志与操作日志 +* update 优化 单元格合并判断 cellValue 是否相等方法调整 +* update 优化 去除 RedisConfig 无用继承 + +### 新增功能 + +* add 增加 GET 请求提交日期参数 默认格式化配置 +* add 增加 RedisUtils 检查缓存对象是否存在方法 + +### 问题修复 + +* fix 修复 根据 key 更新参数配置报null问题 +* fix 修复 树形下拉不能默认选中 +* fix 修复 读取 generator.yml 中文乱码问题 +* fix 修复 代码生成图片/文件/单选时选择必填无法校验问题 +* fix 修复 修改参数键名时 未移除过期缓存配置 +* fix 修复 用户注册 用户类型字段书写错误 +* fix 修复 文件名包含特殊字符(+、-、*...)的文件无法下载问题 +* fix 修复 短信校验模板参数传参错误 +* fix 修复 vue3 closeSidebar 这个方法定义的参数没有解构问题 + +## v4.4.0 - 2022-11-28 + +### 重大更新 +* [重大更新] 优化支持 oss 私有库功能(数据库字段改动) #cd9c3c3f +* [重大更新] 连接池由 druid 修改为 hikari 更新相关配置(原因可看文档) #1f42bd3d +* [重大更新] 移除 tlog(不支持UI界面 使用的人太少) 建议使用 skywalking +* [重大更新] 增加 skywalking 集成 默认注释不开启(使用看文档) + +### 依赖升级 +* update springboot 2.7.5 => 2.7.6 +* update springboot-admin 2.7.6 => 2.7.7 +* update satoken 1.31.0 => 1.33.0 +* update spring-doc 1.6.12 => 1.6.13 +* update easyexcel 3.1.1 => 3.1.3 +* update hutool 5.8.8 => 5.8.10 +* update redisson 3.17.7 => 3.18.0 +* update lock4j 2.2.2 => 2.2.3 +* update s3-adk 1.12.324 => 1.12.349 +* update mysql-docker 8.0.29 => 8.0.31 + +### 功能更新 +* update 优化 oss 云厂商增加 华为obs关键字 +* update 优化 冗余的三元表达式 +* update 优化 重置时取消部门选中 +* update 优化 新增返回警告消息提示 +* update 优化 hikari 参数顺序 最常用的放上面 删除无用 druid 监控页面 +* update 优化 p6spy 排除健康检查 sql 执行记录 +* update 优化 Dockerfile 创建目录命令 +* update 优化 将空‘catch’块形参重命名为‘ignored’ +* update 优化 使用本地缓存优化 excel 导出 数据量大字典转换慢问题 +* update 优化 字典转换实现 去除字符串查找拼接优化效率 +* update 优化 减小腾讯短信引入jar包的体积 +* update 消除Vue3控制台出现的警告信息 +* update 忽略不必要的属性数据返回 +* update 替换 mysql-jdbc 最新坐标 + +### 新增功能 +* add 新增 junit5 单元测试案例 #6e8ef308 +* add 增加 sys_oss_config access_policy 桶权限类型字段 +* add 增加 4.3-4.4 更新 sql 文件 +* add 新增 字典数据映射注解 #da94e898 +* add 增加 RedisUtils 获取缓存Map的key列表 + +### 问题修复 +* fix 修复 上传png透明图片 生成头像透明部分变成黑色 +* fix 修复 sqlserver sql文件 重复主键数据问题 +* fix 修复 sqlserver 特定情况下报 ssl 证书问题 默认关闭 ssl 认证 +* fix 修复 table中更多按钮切换主题色未生效修复问题 +* fix 修复 菜单激活无法修改其填充颜色 去除某些svg图标的fill="#bfbfbf"属性 +* fix 修复 使用缓冲流 导致上传异常问题 +* fix 修复 过滤器链使用IoUtil.read方法导致request流关闭 +* fix 修复 Log注解GET请求记录不到参数问题 +* fix 修复 某些特性的环境生成代码变乱码TXT文件问题 +* fix 修复 开启TopNav没有子菜单隐藏侧边栏 +* fix 修复 回显数据字典数组异常问题 + +### 移除功能 +* remove 移除过期 Anonymous 注解与其实现代码 +* remove 移除 tlog(不支持UI界面 使用的人太少) 建议使用 skywalking + +## v4.3.1 - 2022-10-24 + +### 依赖升级 +* update springboot 2.7.3 => 2.7.5 +* update springboot-admin 2.7.4 => 2.7.6 +* update sa-token 1.30.0 => 1.31.0 +* update springdoc 1.6.11 => 1.6.12 +* update poi 5.2.2 => 5.2.3 +* update hutool 5.8.6 => 5.8.8 +* update aws-s3 1.12.300 => 1.12.324 +* update aliyun-sms 2.0.18 => 2.0.22 +* update tencent-sms 3.1.591 => 3.1.611 +* update tlog 1.4.3 => 1.5.0 安全性升级 +* update snakeyaml 1.30 => 1.32 存在漏洞 +* update redisson 3.17.6 => 3.17.7 +* update nginx 1.21.6 => 1.22.1 存在漏洞 +* update element-ui 2.15.8 => 2.15.10 +* update core-js 3.19.1 => 3.25.3 + +### 功能更新 +* update 修改 差异命名与镜像名同步 +* update 优化 通用下载方法新增config配置选项 +* update 优化 日志操作中重置按钮时重复查询的问题 +* update 优化 `@Anonymous` 注解标注过期 使用 `@SaIgnore` 替换 +* update 优化 前端可以配置多排序参数支持依次排序 +* update 优化 oss管理 支持时间排序 +* update 优化 替换 sa-token 过期配置 +* update 优化 sa-token 拦截器注册 `SaTokenConfig#addInterceptors` 排除拦截路径配置 +* update 优化 vue3说明文件 编码问题 +* update 优化 导入更新用户数据前校验数据权限 +* update 优化 `R` 类 `isError` 和 `isSuccess` 改为静态方法 +* update 优化 获取用户信息getInfo接口 使用缓存数据获取 +* update 优化 选择按钮宽度 + +### 问题修复 +* fix 修复 用户导入存在则更新不生效 +* fix 修复 日志转换非json数据导致报错 +* fix 修复 控制台SQL日志打印时间格式化问题 +* fix 修复 不同网段因reset请求头导致下载导出跨域问题 +* fix 修复 在线用户设置永不过期 被过滤问题 +* fix 修复 在线用户设置永不过期 超时时间-1推送redis无效问题 +* fix 修复 snakeyaml 漏洞 强制升级依赖版本(临时处理等boot升级) +* fix 修复 开启账号同端互斥登录 被顶掉后登出报null异常问题 +* fix 修复 Redisson 设置 `NameMapper` 导致队列功能异常问题 +* fix 修复 文件上传组件格式验证问题 +* fix 修复 内部调用缓存不生效问题 +* fix 修复 主题颜色在Drawer组件不会加载问题 +* fix 修复 小屏幕上修改头像界面布局错位的问题 +* fix 修复 内链域名特殊字符替换 合并错误导致问题 +* fix 修复 nginx 漏洞 https://www.oschina.net/news/214309 + +## v4.3.0 - 2022-09-14 + +### 重大更新 +* [重大更新] 整合 springdoc 基于 javadoc 实现无注解零入侵生成接口文档 +* [重大更新] 重写 spring-cache 实现 更人性化的操作 支持注解指定ttl等一些参数 +* [不兼容更新] 移除 swagger 所属所有功能 建议使用 springdoc +* [重大更新] 移除maven docker插件 过于老旧功能缺陷大 使用idea自带的docker插件替代 + +### 依赖升级 +* update springboot 2.6.9 => 2.7.3 +* update springboot-admin 2.7.2 => 2.7.4 +* update redisson 3.17.4 => 3.17.6 +* update hutool 5.8.3 => 5.8.6 +* update okhttp 4.9.1 => 4.10.0 +* update lock4j 2.2.1 => 2.2.2 +* update aws-java-sdk-s3 1.12.248 => 1.12.300 修复依赖安全漏洞 +* update aliyun.sms 2.0.9 => 2.0.18 +* update tencent.sms 3.1.537 => 3.1.591 +* update guava 30.0-jre => 31.1-jre +* update springdoc 1.6.9 => 1.6.11 +* update druid 1.2.11 => 1.2.12 +* update dynamic-ds 3.5.1 => 3.5.2 + +### 功能更新 +* update 优化 短信接口实现类 `@Override` 注解 +* update 优化 登出方法代码逻辑 +* update 优化 代码中的一些魔法值 +* update 优化 使用 StreamUtils 简化业务流操纵 +* update 修改 oss 客户端自定义域名 统一使用https开关控制协议头 +* update 更新 监控过时配置 WebSecurityConfigurerAdapter 改为 bean 注入 +* update 修改 生成错误注释 +* update 优化 docker 部署方式 使用 host 模式简化部署流程 降低使用成本 +* update 修改 验证码开关变量名 +* update 优化 DateColumn 支持单模板多key场景 +* update 优化 redission 处理增加前缀 +* update 优化 缓存监控 相关代码 +* update 优化 部署脚本 防止出现权限问题 +* update 优化 多个相同角色数据导致权限SQL重复问题 +* update 优化 字典数据使用store存取 +* update 优化 布局设置使用el-drawer抽屉显示 +* update 更新框架文档 专栏与视频 链接地址 +* update 优化 OSS文件上传 主动设置文件公共读 适配天翼云OSS +* update 优化 表格上右侧工具条(搜索按钮显隐&右侧样式凸出) +* update 优化 前后端多环境部署保持一致 删除无用环境文件 +* update 优化 错误登录锁定与新增解锁功能 +* update 优化 getLoginId 增加必要参数空校验 +* update 使用 SpringCache注解 优化参数管理、字典管理、在线用户等业务缓存 +* update 优化 多角色数据权限匹配规则 +* update 优化 页面内嵌iframe切换tab不刷新数据 +* update 优化 调整 oss表key 与 ossconfig的service 字段长度不匹配 +* update 优化 操作日志密码脱敏 +* update 重构 QueueUtils 抽取通用方法 统一使用 适配优先队列新用法 + +### 新功能 +* add 增加 StreamUtils 流工具 简化 stream 流操纵 +* add 新增 缓存列表菜单功能 +* add 新增 获取oss对象元数据方法 +* add 增加 QueueUtils 操作普通队列的方法 + +### 问题修复 +* fix 修复 mysql sys_notice 与 sys_config 表主键类型长度不够问题 +* fix 修复 获取 SensitiveService 空问题 增加空兼容 +* fix 修复 代码生成首字母大写问题 +* fix 修复 minio 上传自定义域名回显路径错误问题 +* fix 修复 短信功能返回实体 SysSms 序列化问题 +* fix 修复 sqlserver 更新sql错误提交 +* fix 修复 RedisUtils 并发 set ttl 错误问题 +* fix 修复 防止主键字段名与'row'或'ids'一致导致报错的问题 +* fix 修复 幂等组件 逻辑问题导致线程变量未清除 +* fix 修复 脱敏没有实现类导致返回数据异常问题 +* fix 修复 用户导出字典使用错误 +* fix 修复 用户登录与短信登录 国际化格式不一致 +* fix 修复 BaseMapperPlus 方法命令不一致问题 +* fix 修复 短信功能是否启用判断不生效BUG +* fix 修复 xxljob prod 环境配置文件 数据库ip漏改 +* fix 修复 部署脚本 cp 命令缺少参数问题 +* fix 修复 菜单管理的一些操作问题 +* fix 修复 国际化文件提交为特殊编码问题 +* fix 修复 minio配置https遇到的问题 +* fix 修复 点击删除后点击取消控制台报错问题 +* fix 修复 文件/图片上传组件 第一次上传报错导致后续上传无限loading问题 +* fix 修复 postgresql 时间查询类型转换报错问题 +* fix 修复 部门与角色 状态导出字典使用错误 +* fix 修复 openapi结构体 因springdoc缓存导致多次拼接接口路径问题 +* fix 修复 没有权限的用户编辑部门缺少数据 +* fix 修复 oss配置删除内部数据id匹配类型问题 +* fix 修复 用户导入存在则更新不生效 +* fix 修复 日志转换非json数据导致报错 + +## v4.2.0 - 2022-06-28 +### 重大更新 +* [重大更新] 增加 `ruoyi-sms` 短信模块 整合 阿里云、腾讯云 短信功能 +* [重大改动] 基于 `AWS S3` 协议重新实现 OSS模块 支持自定义域名 +* [安全性] 优化 nginx 限制外网访问内网 actuator 相关路径(建议升级) +* [不兼容] 优化 文件与图片上传组件 使用id存储回显(升级的用户需要注意 上传组件返回值变成了 ossid 便于关联) +* [不兼容] 升级 mybatis-plus 3.5.2 解决新版本兼容性问题 关键字冲突修改(新增了很多关键字 升级的需要注意 冲突的关键字建议换一个命名) + +### 依赖升级 +* update springboot-admin 2.6.6 => 2.6.9 +* update springboot-mybatis 2.2.0 => 2.2.2 +* update sa-token 1.29.0 => 1.30.0 +* update hutool 5.7.22 => 5.8.3 +* update druid 1.2.8 => 1.2.11 +* update tlog 1.3.6 => 1.4.3 +* update easyexcel 3.0.5 => 3.1.1 去除cglib 支持jdk17 +* update xxl-job 2.3.0 => 2.3.1 +* update redisson 3.17.0 => 3.17.4 +* update mybatis-plus 3.5.1 => 3.5.2 +* update poi 4.1.2 => 5.2.2 性能大幅提升 +* update docker mysql 8.0.27 => 8.0.29 +* update docker nginx 1.21.3 => 1.21.6 +* update docker redis 6.2.6 => 6.2.7 +* update docker minio 2021-10-27 => 2022-05-26 + +### 功能更新 +* update 优化 redis 序列化 使用系统自带json工具 全局统一 +* update 优化 RedisUtils 重构过期方法 +* update 完善短信验证码发送接口 +* update 优化 弹窗点击遮罩层 默认不关闭 可在 main.js 修改 +* update 调整 CacheManager 使用系统 系统序列化器 +* update 调整 图片预览组件 去除无用根目录拼接 +* update 用户管理左侧树型组件增加选中高亮保持 +* update 优化 DataPermissionHelper 上下文存储 使用 SaToken 的请求存储器 +* update 优化 用户头像上传限制只能为图片格式 +* update 优化 redis 与 jackson 使用自动装配定制器简化配置 +* update 优化 getLoginUser 获取 使用一级缓存 +* update 增加 redis 无密码使用说明 +* update 手动配置 Undertow 缓冲池 消除运行警告 +* update 优化 表单构建按钮不显示正则校验 +* update 优化 oss 回显查询 使用 redis 缓存 +* update 优化 用户列表查询 剔除密码字段 +* update 优化 验证码 登录 登出 注册 等接口 使用匿名注解放行 +* update 修改 代码生成 controller 去除查询校验 由用户自行选择是否校验 +* update 优化 ExcelUtil 工具支持合并处理器 +* update 使用 SaStorage 优化 LoginHelper 一级缓存 避免 ThreadLocal 清理不干净问题 +* update 优化 新增用户与角色信息、用户与岗位信息逻辑 +* update 优化 代码生成 业务接口 增加事务回滚 +* update 优化 logback 删除无用配置 + +### 新功能 +* add 增加 MailUtils 邮件工具 +* add 增加 RedisUtils 操作原子值方法 +* add 增加 demo 短信演示案例 +* add 增加 获取短信验证码接口 +* add 新增 SpringUtils 获取配置文件中的属性值方法 +* add 新增 Anonymous 匿名访问不鉴权注解 +* add 新增 easyexcel 单元格合并注解与处理器 +* add 增加 ExcelUtil 模板导出方法 支持 单列表/多列表 +* add 增加 Excel 模板导出 测试类 + +### 问题修复 +* fix 修复 ExcelUtil 表达式解析 参数添反导致无法解析问题 +* fix 修复 全局线程池配置 核心线程与最大线程 参数填反问题 +* fix 修复 查询未分配用户角色列表 角色无绑定用户情况下 空列表问题 +* fix 修复 sqlserver 新增数据 id 错误 +* fix 修复 token 超时时间设置 -1 导致的单位转换问题 +* fix 修复 编辑 OssConfig 在 postgres 字段重复报错 补全 remark 字段 +* fix 修复 postgres 数据库 菜单部分字段类型无法转换问题 +* fix 修复 脱敏实现逻辑问题 +* fix 修复 登录未选部门报空问题 +* fix 修复 用户注销时记录注销日志异常问题 +* fix 修复 代码生成表字段类型不匹配 导致查询不准确问题 + +## v4.1.0 - 2022-04-24 +### 重大更新 +* [重大更新] 增加应用适配 oracle +* [重大更新] 增加应用适配 SQL Server +* [重大更新] 增加应用适配 postgresql +* [重大更新] 确保更好的适配 多数据库 主键策略统一改为 雪花ID + +### 依赖升级 +* update springboot 2.6.4 => 2.6.7 修复 CVE-2022-22965 漏洞 +* update springboot-admin 2.6.2 => 2.6.6 +* update hutool 5.7.21 => 5.7.22 +* update dynamic-datasource 3.5.0 => 3.5.1 +* update redisson 3.16.8 => 3.17.0 +* update qiniu 7.9.3 => 7.9.5 +* update qcloud 5.6.68 => 5.6.72 +* update minio 8.3.7 => 8.3.8 +* update okhttp 4.9.2 => 4.9.3 + +### 功能更新 +* update 简化查询 部门、菜单、角色、用户、代码生成列表 功能 +* update 优化 部门修改子元素关系 使用批量更新 +* update 优化去除sql差异化 时间范围统一使用 between 处理 +* update 优化 RepeatSubmit 注解 支持业务处理失败 与 异常快速放行 +* update 优化 防重 与 限流 功能支持国际化消息返回 +* update 开启TopNav没有子菜单情况隐藏侧边栏 +* update 更新minio压缩配置 +* update 重命名 菜单字段 query -> query_param 解决系统关键字问题 +* update 使用 in 优化 or 提升索引命中率 +* update 优化 TreeEntity 树实体 去除未知泛型 +* update 优化菜单名称过长悬停显示标题 +* update 优化固定Header后顶部导航栏样式问题 +* update 优化 logback 日志 异步输出 +* update 全局异常处理器引入DuplicateKeyException主键冲突异常拦截 +* update topNav自定义隐藏侧边栏路由 +* update 更名 SaInterfaceImpl 为 SaPermissionImpl 完善相关注释 +* update 优化 sa-token 路由拦截器语法 增加注释 避免误操作 +* update 优化文件上传、图片上传组件 文件列表展示文件原名便于后续处理, 完善组件删除功能 +* update 优化登录失败相关部分代码结构 +* update 使用 spring cglib 替换 停止维护的 cglib +* update 简化 全局线程池配置 使用cpu核心数自动处理 +* update 移除 重复提交 配置文件全局配置 使用注解默认值替代 + +### 新功能 +* add 增加 4.0 升级 4.1 的 sql 脚本(升级需执行此sql) +* add 增加 DataBaseHelper 数据库助手 用于屏蔽多类型数据库sql语句差异 +* add 增加 短信登录 与 小程序登录 示例 +* add 增加 Mybatis 全局异常处理 开启多数据源切换 严格模式 找不到数据源报错 + +### 问题修复 +* fix 修复 数据权限 从 aop 切换到 拦截器 导致获取代理失败问题 +* fix 修复表单清除元素位置未垂直居中问题 +* fix 修复 poi 组件漏洞 与 mysql jdbc 漏洞 +* fix 修复单独访问 接口文档 请求 favicon.ico 报错问题 +* fix 修复 minio 上传, 因 socket 导致 available 获取数值不精确问题 +* fix 修复 cos_api bcprov-jdk15on 漏洞 +* fix 修复 guava 漏洞 统一依赖版本 +* fix 修复 tlog 依赖漏洞 + +## v4.0.1 - 2022-03-01 +### 依赖升级 +* update springboot 2.6.3 => 2.6.4 +* update hutool 5.7.20 => 5.7.21 +* update qiniu 7.9.2 => 7.9.3 +* update minio 8.3.5 => 8.3.7 + +### 功能更新 +* update 图片上传 文件上传 支持并发上传 +* update 组件ImageUpload支持多图同时选择上传 +* udpate 组件fileUpload支持多文件同时选择上传 +* update 优化 R 默认返回 msg +* update 增加 用户注册 用户类型默认值 +* update 增加用户登出日志 +* update 更新 多用户多设备的注释说明 +* update 优化 是否为管理员的判断 +* update 优化 页面若未匹配到字典标签则返回原字典值 +* update 调整用户登录 将日志调整到最后 防止获取不到用户警告 +* update 优化随机数生成方式 避免容易生成两个相同随机数的问题 + +### 问题修复 +* fix 修复代码生成 基于路径生成 路径为空问题 +* fix 恢复误删 `@Async` 注解线程池配置类 +* fix 修复 minio 适配 https 导致的问题 +* fix 修复分页组件请求两次问题 + +## v4.0.0 - 2022-02-18 +### 重大更新 +* [重大更新] 重写项目整体结构 数据处理下沉至Mapper符合MVC规范 减少循环依赖 +* [重磅更新] 主分支与satoken分支合并 权限统一使用 sa-token +* [重磅更新] 适配升级 SpringBoot 2.6 +* [重磅更新] EasyExcel大版本升级3.X +* [重磅更新] 移除链式调用注解 因链式调用不符合java规范 导致很多问题 +* [重磅更新] 增加 轻量级 分布式队列 支持 +* [重磅更新] 增加 数据脱敏注解 使用序列化控制脱敏 支持多种表达式 +* [重磅更新] 重构 使用 Spring 简化 oss 模块代码 +* [重磅更新] 重构 调整返回类型为 R 精简 Controller 代码 + +### 依赖升级 +* update springboot 2.5.8 => 2.6.3 +* update mybatis-plus 3.4.3.4 => 3.5.1 +* update maven-jar-plugin 3.2.0 => 3.2.2 +* update maven-war-plugin 3.2.0 => 3.2.2 +* update maven-compiler-plugin 3.1 => 3.9.0 +* update hutool 5.7.18 => 5.7.20 +* update springboot-admin 2.6.0 => 2.6.2 +* update redisson 3.16.7 => 3.16.8 +* update qiniu 7.9.0 => 7.9.2 +* update aliyun 3.13.1 => 3.14.0 +* update qcloud 5.6.58 => 5.6.68 +* update minio 8.3.4 => 8.3.5 + +### 功能更新 +* update 用户管理部门查询选择节点后分页参数初始 +* update 防重复提交标识组合(key + url + header) +* update 接口文档增加 basic 账号密码验证 +* update 用户修改减少一次角色列表关联查询 +* update 优化部门修改缩放后出现的错位问题 +* update 指定 maven 资源过滤为具体文件 防止错误过滤 +* update hutool 引入改为 bom 依赖项引入 +* update 降低开发环境 redis连接池数量 +* update 升级 springboot 2.6.X 解决 springfox 兼容性问题 +* update 优化多用户体系处理 更名 LoginUtils 为 LoginHelper 支持 LoginUser 多级缓存 +* update 优化加载字典缓存数据 +* update 数据库更改 对接多用户体系 +* update 移除掉 StringUtils 语义不明确的api方法 使用特定工具替换 +* update 优化登录、注册在接口通过`@Validated`注解进行数据基础校验 +* update 优化 查询登录用户数据 统一走缓存 +* update 优化 redisson 配置 去除掉不常用的配置 使用默认配置 +* update 用户访问控制时校验数据权限,防止越权 +* update 修改用户注册报未登录警告 +* update 调整oss预览开关 使用前端直接调用更改配置参数 +* update 使用 satoken 自带的 BCrypt 工具 替换 Security 加密工具 减少依赖 +* update 优化 TreeBuildUtils 工具 使用反射自动获取顶级父id +* update 使用 hutool Dict 优化 JsonUtils 防止类型解析异常 +* update 优化代码生成 使用新 JsonUtils.parseMap 方法 +* update 更新 所有 oss 均支持 https 配置 + +### 新功能 +* add 增加 RedisUtils 工具 hasKey 检查key存在方法 +* add 增加 监控中心 自定义事件通知 +* add 增加 3.X update 4.0 更新sql + +### 问题修复 +* fix 修复登录失效后多次请求提示多次弹窗问题 +* fix 修复 StringUtils 通配符匹配无效 +* fix 修复选项卡点击右键刷新丢失参数问题 +* fix 修复 数据权限 缓存方法名错误问题 +* fix 修复自定义组件`file-upload`无法显示第一个文件,列表显示的文件比实际文件少一个的问题 +* fix 修复因升级 sa-token 导致 doLogin 无法获取 token 问题 +* fix 修复分页组件请求两次问题 + +### 移除功能 +* remove 移除过期代码 分页工具相关 +* remove 移除过期代码 多数据源切换 +* remove 移除过期代码 数据权限 + +### 其他 +* 3.X 版本进入维护阶段 不进行更新 只修复bug 持续维护到2022年10月 +* 4.X 版本公测将近一个月 大部分bug已修复 官网主分支更改为 4.X 版本 推荐使用 + + +## v3.5.0 - 2021-12-28 +### 重大更新 +* [重大更新] 重写数据权限实现 +* [重磅更新] 重构分页 简化使用 +* [重磅更新] 用户登录 支持校验错误次数锁定登录 +* [重磅更新] 增加 jdbc 批处理参数 大幅提升批量操作性能 对原生语句与 MP 均有效 + +### 依赖升级 +* update springboot 2.5.7 => 2.5.8 升级预防 log4j2 问题 +* update springboot-admin 2.5.4 => 2.5.5 +* update hutool 5.7.16 => 5.7.18 +* update redisson 3.16.4 => 3.16.7 +* update dynamic-ds 3.4.1 => 3.5.0 +* update qiniu 7.8.0 => 7.9.0 +* update minio 8.3.3 => 8.3.4 +* update tlog 1.3.4 => 1.3.6 启用 tlog 自动配置 +* update clipboard 2.0.6 => 2.0.8 + +### 功能更新 +* update 多数据源切换标注过期 3.6.0 移除 推荐使用原生注解 +* update 通用权限服务 迁移回 ruoyi-framework 模块 +* update 使用 hutool-jwt 替换老旧 jjwt 依赖 +* update 调整 OSS 表字段内容长度 +* update LoginUser 增加角色缓存 优化角色权限代码 +* update 使用 Cglib 重构 BeanCopyUtils 性能优异 +* update 禁止所有工具类实例化 优化代码书写规范 +* update 优化查询用户的角色组、岗位组代码 +* update 更新 RedisUtils 返回客户端实例 +* update 修改 健康检查权限 改为用户放行 提高安全性 +* update hutool 工具 改为单包引入 减少无用依赖 +* update ServicePlusImpl 功能 下沉到 BaseMapperPlus +* update 去除 jdk17 标签 由于很多组件还未适配 导致一些问题 +* udpate 代码生成预览支持复制内容 +* update 用户导入提示溢出则显示滚动条 +* update 路由支持单独配置菜单或角色权限 +* update 优化web拦截器 使用原生接口处理 默认非生产环境开启 +* update 调整监控依赖 从 common 迁移到 framework + +### 新功能 +* add 新增 Vue3 分支 与 代码生成模板(由于组件还未完善 仅供学习) +* add 增加 RedisUtils 注册监听器方法 +* add 增加 自定义 Xss 校验注解 用户导入增加 Bean 校验 +* add oss下载增加 loading 层 +* add 新增图片预览组件 +* add 集成compression-webpack-plugin插件实现打包Gzip压缩 +* add 新增 SqlUtils 检查关键字方法 + +### 问题修复 +* fix 修复 集群雪花id重复问题 使用网卡信息绑定生成 +* fix 修复 count 语法异常 +* fix 修复更改密码问题 +* fix 修复sql关键字处理 防止解析器报错 +* fix 修复 TreeBuildUtils 顶节点不为 0 问题 +* fix 修复 SysOssConfig 主键类型错误 +* fix 修复代码生成 导出注解错误 +* fix 修复 redisson 集群模式 路径未匹配协议头问题 +* fix 修复打包后字体图标偶现的乱码问题 +* fix 修复版本差异导致的懒加载报错问题 +* fix 修复代码生成字典组重复问题 + +### 移除功能 +* remove 删除 jjwt 无用依赖 +* remove 移除过期 用户导入 +* remove 移除过期工具 DictUtils + +## v3.4.0 - 2021-11-29 + +### 重磅更新 +* update [重磅更新] 重构 Excel 导入 支持 Validator 校验 支持自定义监听器 +* update [重磅更新] Validator 校验框架支持国际化 + +### 依赖升级 +* update springboot 2.5.6 => 2.5.7 +* update hutool 5.7.15 => 5.7.16 +* update okhttp 4.9.1 => 4.9.2 +* update spring-boot-admin 2.5.2 => 2.5.4 +* update redisson 3.16.3 => 3.16.4 +* update tlog 1.3.3 => 1.3.4 +* update axios 0.21.0 => 0.24.0 +* update core-js 3.8.1 => 3.19.1 +* update js-cookie 2.2.1 => 3.0.1 +* update velocity 1.7 => 2.3 +* update 升级 docker 基础镜像 + +### 功能更新 +* update 基于 hutool 封装树构建工具 重构部门与菜单树结构返回 +* update 减少使用特定数据库函数 +* update 配置应用前缀路径 改为配置文件统一配置 +* update 升级 swagger 配置 使用 knife4j 增强模式 +* update 监控中心 集成监控客户端 实现自监控 +* update 调度中心 集成监控客户端 注册到监控中心 +* update 优化 tab 对象简化页签操作 +* update 解耦 LoginUser 与 SysUser 强关联 +* update 更新 RepeatSubmit 注解 aop 处理 针对特殊参数进行过滤 +* update DictUtils 字典工具类 标记过期 3.5.0 版本移除 使用 DictService 代替 +* update 抽象 DictService 通用 字典服务 +* update 抽象 ConfigService 通用 参数配置服务 +* update 基于 DictService 重构 Excel 内字典查询功能 +* update OSS 模块 整体重命名 消除歧义 +* update 更新 redis.conf 存储策略 aof 与 rdb 配置参数 +* update 初始化数据转移到 ApplicationRunner 统一处理 +* update 优化时间查询语句 + +### 新功能 +* add 增加 框架缓存懒加载 开关 +* add 新增 监控中心 Bean 初始化 startup trace 监控插件 +* add 增加 ValidatorUtils 校验框架工具 用于在非 Controller 的地方校验对象 + +### 漏洞修复 +* fix 修复 SysOss、SysOssConfig 未继承 BaseEntity 基础实体问题 +* fix 修复 xxl-job-admin 部署问题 +* fix 修复 回显数据字典键值修正 +* fix 修复 Linux 清除临时目录 导致上传找不到目录报错问题 +* fix 修复通用实体 传参无法接收问题 +* fix 修复 SysLoginController 接口文档书写错误问题 +* fix 修复 用户逻辑删除 差异问题 +* fix 修复 OSS 七牛云 token 过期未刷新问题 +* fix 修复 分页工具 排序字段 null 处理 +* fix 修复 用户导入字典使用错误 +* fix 修复 关闭 xss 功能导致可重复读 RepeatableFilter 失效 +* fix 修复 使用 this.$options.data 报错问题 +* fix 修复 代码生成复选框字典遗漏问题 +* fix 修复 重复提交不生效问题 由于概念不同 使用 RedisUtils 重构 +* fix 修复 OSS 工厂 未实例化服务更新加载问题 + +### 功能移除 +* remove 移除 quartz 相关代码与依赖 +* remove 移除 feign 相关代码与依赖 +* remove 移除 MybatisPlusRedisCache 二级缓存 + +## v3.3.0 - 2021-10-29 + +### 重磅更新 +* add [重磅更新] 增加分布式日志框架 TLog +* add [重磅更新] 增加分布式任务调度系统 Xxl-Job +* add [重大更新] 增加 ruoyi-job 任务调度模块(基于xxl-job) +* update [重大更新]全业务 增加 接口文档注解 格式化代码 + +### 依赖更新 +* update springboot 2.5.5 => 2.5.6 +* update springboot-admin 2.5.1 => 2.5.2 +* update element-ui 2.15.5 => 2.15.6 +* update hutool 5.7.13 => 5.7.15 +* update qcloud.cos 5.6.55 => 5.6.58 +* update minio 8.3.0 => 8.3.3 + +### 功能更新 +* update 更新 element 2.15.6 表格样式 +* update 优化 代码生成常量 关于 BO VO 注释 +* update 优化代码生成 导入表 列表返回 主键默认选中 +* update MybatisPlusRedisCache 标记过期 推荐使用 spring-cache +* update Quartz 标记过期 推荐迁移至新框架 xxl-job +* update Feign 标记过期 +* update 前端增加默认国际化参数 +* update 更新 Admin 监控 注释 避免错误使用 +* update Admin 监控增加日志文件输出 +* update 优化 xxl-job-admin 增加格式化日志输出与 docker 镜像 +* update 更新 xxl-job 执行器开关功能 +* update 代码生成 改为生成抽象实体 +* update 代码生成 搜索框 更新文本域生成 用于模糊查询 +* update 通用数据注入改为适配通用实体类 +* update 使用路由懒加载提升页面响应速度 +* update 迁移所有脚本文件至 script 目录 +* update swagger 组顺序配置 +* update sql 文件更新 xxljob 控制台菜单 +* update 前端增加 任务调度中心页面与环境及 nginx 配置 +* update 合并 oss.sql 至主 sql +* update 补全国际化文件(英文) +* update 更新关于全局路径设置与文档链接 +* update 删除无用 setUsername 使用自动注入 +* update RedisUtils 更新删除 hash 数据方法 + +### 漏洞修复 +* fix 修复 多数据源 aop 语法错误 +* fix 修复 子菜单无 query 参数问题 +* fix 修复 oss 配置删除时删除缓存 bug +* fix 修复无权限获取请求头 download-filename 导致文件名为空问题 + +## v3.2.0 - 2021-9-28 + +### 重大更新 +* update [重大改动]接口文档 支持分组配置 +* update [重大改动]security 路径配置抽取到配置文件 +* update [重大改动] 将 framework 与 system 模块 解耦 调整依赖结构 解决依赖冲突 +* update [重大改动]重写 防重提交实现 使用分布式锁 解决并发问题 压测通过 + +### 依赖更新 +* update springboot 2.5.4 => 2.5.5 bugfix版本 +* update mybatis-plus 3.4.3.3 => 3.4.3.4 bugfix版本 +* update redisson 3.16.2 => 3.16.3 bugfix版本 +* update easyexcel 2.2.10 => 2.2.11 +* update hutool 5.7.11 => 5.7.13 +* update file-saver 2.0.4 => 2.0.5 +* update dart-sass 1.32.0 => 1.32.13 +* update sass-loader 10.1.0 => 10.1.1 + +### 功能更新 +* update 优化代码生成 根据MP生成特性 调整导入表结构默认值合理化 +* update 将所有 云存储字样 改为 对象存储 避免误解 +* update 更新 @Cacheable 错误用法 注意事项 +* update 优化 AddressUtils 空校验处理 +* update 菜单管理支持配置路由参数 +* update 优化aop语法 使用spring自动注入注解 +* update 使用 Redisson 限流工具 重写限流实现 +* update 使用 vue-data-dict 简化数据字典使用 +* update 增加日志注解新增是否保存响应参数开关 +* update 用户未登录日志改为 warn 级别 +* update OSS模块 关于下载403报错信息优化 +* update 更新 Actuator prod 默认暴漏端点 增加暴漏 logfile 日志端点 +* update 默认适配jdk11 测试 jdk17 无异常 +* update 封装通用下载方法简化下载使用 + +### 新功能 +* add 新增通用方法简化模态/缓存使用 +* add 增加 限流演示案例 +* add 增加 redis redisson 集群配置 + +### 漏洞修复 +* fix Cron表达式生成器关闭时销毁,避免再次打开时存在上一次修改的数据 +* fix 全局限流key会多出一个"-" 将其移动到IP后面 去除多余的空格 +* fix 修复多主键代码生成bug +* fix 修复 @Cacheable 与 @DataScope 冲突问题 +* fix 修复代码生成页面数据编辑保存之后总是跳转第一页的问题 + +### 功能移除 +* remove 移除过期工具 RedisCache +* remove 移除无用配置类 ServerConfig +* remove 移除 SysUser 无用字段 salt + +## v3.1.0 - 2021-9-7 + +### 重大更新 +* add [重大改动] 过期 RedisCache 新增 RedisUtils 工具类 新增 发布订阅功能 更灵巧便于使用 +* add [重大改动] 新增 saveOrUpdateAll 方法 可完美替代 saveOrUpdateBatch 高性能 +* update [重大改动] 重写 InsertAll 方法实现 可完美替代 saveBatch 秒级插入上万数据 +* update [重大改动] 更改OSS上传通用路径生成 按照年月日分三级目录 +* update [重大改动] MP字段验证策略更改为 NOT_NULL 个别特殊字段使用注解单独处理 +* update [重大改动] 所有业务适配 RedisUtils 新工具 + +### 依赖升级 +* update springboot 2.5.3 => 2.5.4 +* update spring-boot-admin 2.5.0 => 2.5.1 +* update mybatis-plus 3.4.3 => 3.4.3.3 适配升级 (包含不兼容升级) +* update aliyun.oss 3.13.0 => 3.13.1 +* update qcloud.cos 5.6.47 => 5.6.51 +* update hutool 5.7.9 => 5.7.11 +* update maven-jar-plugin 3.1.1 => 3.2.0 +* update feign-okhttp 11.2 => 11.6 +* update redisson 3.16.1 => 3.16.2 + +### 新功能 +* add 优化 docker 增加 redis 配置文件 +* add 新增暗色菜单风格主题 +* add 菜单&部门新增展开/折叠功能 +* add 页签右键按钮添加图标 页签新增关闭左侧 + +### 功能更新 +* update 优化 OSS 模块与上传组件 异常处理 +* update 更新 jackson 配置 支持 LocalDateTime 全局格式化 +* update 优化 使用权限工具 获取用户信息 +* update 自定义可拖动弹窗宽度指令 +* update 重构 将下载excel工具提取到全局 +* update 定时任务对检查异常进行事务回滚 +* update 优化spy配置文件为 UTF8编码 解决中文注释乱码问题 +* update 修改时检查用户数据权限范围 +* update 解决 logout 写死 无法扩展路径问题 +* update 优化代码生成 导入与同步 批处理效率 +* update 修改时检查用户数据权限范围 +* update 修改代码生成字典回显样式 +* update 修改数据字典回显 +* update 优化验证码配置 使用泛型 防止错误输入 +* update 优化全局线程池配置 使用泛型 防止错误输入 +* update 使用 MP 全局配置分页溢出 +* update 代码生成器 导入表时查询 新创建表的优先排序在前面 +* update 定时任务支持在线生成cron表达式 +* update 自定义弹层溢出滚动样式 +* update 优化分页工具排序处理 +* update 优化 oss配置 使用发布订阅工具 刷新配置 +* update 代码生成 查询数据库列表 按照时间倒序 +* update 使用MP自行判断数据库类型 + +### 漏洞修复 +* fix 修复保存配置主题颜色失效问题 +* fix 修复 导出雪花id excel失真问题 +* fix 修复 druid 监控 集群模式下 无法路由到同一台服务器问题 +* fix 解决搜索校验不通过问题 +* fix 修复定时器工具编写错误问题 +* fix 修复 minio 无 perfix 问题 +* fix 修复 富文本图片路径错误问题 +* fix 修复 OSS配置清空被过滤问题 +* fix 修复 excel 导入与 class 未对应问题 +* fix 修复字典组件值为整形不显示问题 + +## v3.0.0 - 2021-8-18 + +### 重大更新 +* add [重大更新]重写 OSS 模块相关实现 支持动态配置(页面配置) +* add [重大更新]增加 jackson 超出 JS 最大数值自动转字符串(雪花id序列化)处理 +* add [重大更新]重写 防重提交拦截器 支持全局与注解自定义 拦截时间配置配置 优化逻辑 +* add [重大更新]新增是否开启用户注册功能 +* add [重大更新]增加 easyexcel 工具类 +* add [重大更新]集成 性能分析插件 p6spy 更强劲的 SQL 分析 +* add [重大更新]增加 完整国际化解决方案 +* add [重大更新]支持自定义注解实现接口限流 + +### 依赖升级 +* update feign-okhttp 11.0 => 11.2 +* update okhttp 3.19.4 => 4.9.1 +* update minio 8.2.0 => 8.3.0 +* update hutool 5.7.6 => 5.7.7 +* update element-ui 2.15.2 => 2.15.5 +* update springboot admin 2.4.3 => 2.5.0 (新增 Quartz 专属监控页) + +### 新功能 +* add 增加 admin 监控客户端开关 +* add 增加 国际化演示demo + +### 依赖更新 +* update 更新软件架构图 +* update 优化XSS跨站脚本过滤 +* update 优化BLOB下载时清除URL对象引用 +* update 更新 防重提交拦截器 demo演示案例 +* update 日常字符串校验 统一重构到 StringUtils 便于维护扩展 +* update 修改 自动注入器 用户未登录异常拦截抛出警告 返回Null +* update 重构 统一使用 流工具下载 +* update 重写 所有业务导出 适配easyexcel工具 +* update 移动文件存储业务到 system 模块 +* update 代码生成模板 适配新excel导出 +* update 将 Actuator 配置 移动到全局配置 +* update 统一镜像时区配置 移除主机时间映射 +* update 更改多数据源框架更清晰的依赖名 +* update 更新 阿里云 maven源 新地址 +* update 补全基础实体 文档注解 +* update 代码生成文档注解 增加必填判断配置 +* update 注入器 insert 增加 update 字段处理 +* update 默认首页使用keep-alive缓存 + +### 漏洞修复 +* fix 生产minio回显问题 +* fix 修复角色分配用户页面接收参数与传递参数类型不一致导致的错误 +* fix 修复代码生成 删除按钮报错 loading 不取消问题 +* fix 解决登录后浏览器后台Breadcrumb组件报错 +* fix 修复DictUtils方法报错 +* fix 头像上传 未走OSS存储问题 +* fix oss列表 jpeg 不回显问题 +* fix 修复操作日志根据状态查询异常问题 + +### 功能移除 +* remove 移除原生excel工具 +* remove 移除通用上传下载接口与配置 + +## v2.6.0 - 2021-7-28 + +### 重大更新 +* add [重大新增] 增加 OSS 对象存储模块 +* remove [重大改动] 删除 自带通用上传 接口 使用OSS模块替换 +* update [重大改动] 重写VO转换 支持深拷贝 将VO类抽象到 ServicePlus 泛型处理 +* update [重大改动] 多BO合并 使用分组校验 生成BO代码 +* update [重大改动] 重构 IServicePlus 功能 增加 BeanCopyUtils 深拷贝工具 + +### 依赖升级 +* update springboot 2.4.9 => 2.5.3 +* update hutool 5.7.4 => 5.7.6 +* update minio 8.2.2 => 8.3.0 +* update docker plugin 1.2.0 => 1.2.2 +* update redisson 3.16.0 => 3.16.1 +* update datasource 3.4.0 => 3.4.1 +* update element-ui 2.15.2 => 2.15.3 + +### 新功能 +* add 演示Demo增加自定义分页接口案例 +* add 角色&菜单新增字段属性提示信息 + +### 功能更新 +* update 更新druid配置 独立配置更明显 +* update 顶部菜单排除隐藏的默认路由 +* update 富文本新增上传文件大小限制 +* update 导入用户样式调整 +* update 顶部菜单样式调整 +* update 密码框新增显示切换密码图标 +* update 内链设置meta信息 +* update 跳转路由高亮相对应的菜单栏 + +### 漏洞修复 +* fix 修复多数据源druid全局配置缩进错误 引起无效配置问题 +* fix 修复定时任务日志执行状态显示 +* fix 修复 授权角色空数据问题 +* fix 修复 DictData 删除逻辑问题 +* fix 修复任意账户越权漏洞 + +## v2.5.2 - 2021-7-19 + +### 功能更新 +* update 优化代码生成器注释格式 + +### 漏洞修复 +* fix 回滚代码生成 批处理优化 +* fix 代码生成 queryType 重复勾选数据库无默认值问题 +* fix 修复接口单参数校验无效问题 +* fix 代码生成 queryType >= <= 标识符错误问题 +* fix 修复代码生成字典问题 +* fix 修复 thread-pool: enabled 配置不生效问题 + +### 功能移除 +* remove 删除无用文档与脚本 + +## v2.5.1 - 2021-7-13 +* update 验证码开关 转移到表 参数管理 内 +* update 使用hutool重构 判断是否url + +### 漏洞修复 + +### 功能更新 +* fix 修复 docker业务集群部署与文件上传的问题 +* fix 修复代码生成同步表结构id冲突问题 +* fix 修复代码生成选择字典 无法取消问题 +* fix 修复代码生成字典为null问题 +* fix 图片上传 多图时无法删除相应图片修复 + +### 功能移除 +* remove 删除富文本video事件 + +## v2.5.0 - 2021-7-12 + +### 依赖升级 +* update springboot 2.4.7 => 2.4.8 +* update knife4j 3.0.2 => 3.0.3 +* update hutool 5.7.2 => 5.7.4 +* update spring-boot-admin 2.4.1 => 2.4.3 +* update redisson 3.15.2 => 3.16.0 + +### 新功能 +* add 增加 docker 编排 与 shell 脚本 +* add 增加 feign 熔断 自定义结构体解析方法 与 demo 注释 +* add 用户管理新增分配角色功能 +* add 角色管理新增分配用户功能 +* add 增加spring-cache演示案例 + +### 功能更新 +* update 独立 springboot-admin 监控到扩展模块项目 +* update springboot-admin 监控 增加用户登录权限管理 +* update 优化代码生成器 批量导入 +* update 优化 增加MP注入异常拦截 +* update 关闭默认二级缓存 推荐使用 spring-cache 注解手动缓存 +* update FileUpload ImageUpload组件 支持多图片上传 +* update 优化中英文语言配置 +* update 规范maven写法 + +### 漏洞修复 +* fix redis获取map属性bug修复。 +* fix 修复 按钮loading 后端500卡死问题 +* fix 相对路径下载问题 +* fix 修复 hutool 工具返回结果不一致问题 + +## v2.4.0 - 2021-6-24 + +### 依赖升级 +* update springboot 2.3.11 => 2.4.7 +* update springboot-admin 2.3.1 => 2.4.1 +* update feign 2.2.6 => 3.0.3 +* update hutool 5.6.7 => 5.7.2 + +### 功能更新 +* update 多数据源替换成dynamic-datasource +* update 适配 jdk11 +* update 集成 Lock4j 分布式锁 +* update 移除 fastjson 增加 jackson 工具类 重写相关业务 +* update 优化 异步工厂重写 使用 spring 异步处理 +* update 全局挂载字典标签组件 +* update 日志列表支持排序操作 +* update 更新 feign demo 更清晰的用法 +* update 更新多数据源演示案例 + +### 新功能 +* add 增加 ServicePlusImpl 自动以实现类 重写移除事务注解方法 防止多数据源失效 +* add 增加 自定义 批量insert方法 +* add 增加 Swagger3 用法示例 + +### 漏洞修复 +* fix 修复地址ip地址特殊回环问题 + +## v2.3.2 - 2021-6-11 + +### 新功能 +* add redis锁工具类编写 + +### 功能更新 +* update spring-cache 整合 redisson +* update MybatisPlus整合Redis二级缓存 +* update swagger 升级为 3.0.0 使用 OAS_30 协议 +* update 优化 代码生成器 增加表单防重注解 +* update 优化 锁切面代码 key到常量类 + +### 漏洞修复 +* fix 修复相对路径上传异常问题 + +## v2.3.1 - 2021-6-4 + +### 新功能 +* add 增加 redisson 分布式锁 注解与demo案例 +* add 增加 Oracle 分支 + +### 功能更新 +* update 优化 redis 空密码兼容性 +* update 优化前端代码生成按钮增加 loading + +### 漏洞修复 +* fix 修复 redisson 不能批量删除的bug +* fix 修复表单构建选择下拉选择控制台报错问题 +* fix 修复 vo 代码生成 主键列表显示 重复生成bug +* fix 修复上传路径 win 打包编译为 win 路径, linux 报错bug + +## v2.3.0 - 2021-6-1 + +### 新功能 +* add 升级 luttuce 为 redisson 性能更强 工具更全 +* add 增加测试数据sql文件 +* add 增加demo模块 单表演示案例(包含数据权限) + +### 功能更新 +* update 完美修复 数据权限功能(支持单表多表过滤) +* update 优化代码生成模板 +* update 优化 system 模块 批量操作性能 + +## v2.2.1 - 2021-5-29 + +### 新功能 +* add 增加 security 权限框架 `@Async` 异步注解配置 + +### 功能更新 +* update 优化dataScope参数防止注入 +* update 优化参数&字典缓存操作 +* update 增加修改包名文档 +* update 文档增加演示图例 + +### 漏洞修复 +* fix 修复部门类sql符号错误 + +## v2.2.0 - 2021-5-25 + +* 同步升级 RuoYi-Vue 3.5.0 + +### 新功能 +* add 增加验证码开关 +* add 新增IE浏览器版本过低提示页面 + +### 功能更新 +* update 升级druid到最新版本v1.2.6 +* update 升级fastjson到最新版1.2.76 +* update 修改bo加入判断是否设置必填再加载必填注解 +* update 生成vue模板导出按钮点击后添加遮罩 +* update Redis设置HashKey序列化 +* update 优化Redis序列化配置 + +### 漏洞修复 +* fix 修复代码生成器中表字段取消必填无法更新问题 + +## v2.1.2 - 2021-5-21 + +### 功能更新 +* update springboot 升级 2.3.11 +* update mybatis-plus 升级 3.4.3 分页Plus对象适配更新 +* update 验证码生成更新为无符号整数计算 +* update 请求响应对象 与 分页对象 结构修改 适配接口文档配置 +* update swagger增加请求前缀 + +## v2.1.1 - 2021-5-19 + +### 功能更新 +* update 配置统一提取为 properties 配置类 +* update 分页工具 删除过期方法 +* update admin 实时监控日志 改为保留一天 + +### 漏洞修复 +* fix 修复swagger开关无法控制关闭问题 +* fix maven install 异常 + +## v2.1.0 - 2021-5-17 + +### 功能更新 +* update knife4j升级3.0.2 +* update 增强分页工具兼容性 +* update 通用Service接口 增加自定义vo转换函数 + +### 移除功能 +* remove 移除ruoyi自带服务监控(Admin已全部包含) + +## v2.0.0 - 2021-5-15 + +### 依赖升级 +* springboot 升级 2.3.10 依赖全面升级适配 + +### 新功能 +* add 增加分页工具 +* add 增加 增强Mapper 与 增强Service 重写业务适配 +* add 代码生成器 增加校验注解 + +### 功能更新 +* update 代码生成器修改为MP分页 +* update 使用 MP 分页工具 重构业务 +* update 重写文档介绍 + +### 移除功能 +* remove 移除 pagehelper 分页工具 + +### 漏洞修复 +* fix 修复代码生成 数据权限问题 + +## v1.0.2 - 2021-5-13 + +### 功能更新 +* update 更新整合打包文档 重新排版 + +### 漏洞修复 +* fix vue与boot整合打包与admin页面路由冲突 + +## v1.0.1 - 2021-5-11 + +### 依赖更新 +* update 更新banner +* update 配置转移到 yml 文件 统一管理 +* update 上传媒体类型添加视频格式 +* update 树级结构更新子节点使用replaceFirst +* update 删除操作日志记录日志 + +### 漏洞修复 +* fix 修正导入表权限标识 +* fix 文件上传时报错 + +## v1.0.0 - 2021-5-10 +* 基于 ruoyi-vue 3.4.0 发布 v1.0.0 稳定版 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md new file mode 100644 index 00000000..ef65fef3 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md @@ -0,0 +1,3 @@ +# 软件架构图 +- - - +![输入图片说明](https://foruda.gitee.com/images/1722569328704494018/e84442b6_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md new file mode 100644 index 00000000..06e62dc5 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md @@ -0,0 +1,89 @@ +# 接口文档 +- - - +## 版本 >= `4.3.0` +## 说明 + +由于 `springfox` 与 `knife4j` 均停止维护 bug众多
+故从 `4.3.0` 开始 迁移到 `springdoc` 框架
+基于 `javadoc` 无注解零入侵生成规范的 `openapi` 结构体
+由于框架自带文档UI功能单一扩展性差 故移除自带UI 建议使用外置文档工具 + +## 文档工具使用 +由于框架采用 `openapi` 行业规范 故市面上大部分的框架均支持 可自行选择
+例如: `apifox` `apipost` `postman` `torna` `knife4j` 等 根据对应工具的文档接入即可 + +## Swagger升级SpringDoc指南 + +常见功能如下 其他功能自行挖掘
+**注意: `javadoc` 只能替换基础功能 特殊功能还需要使用注解实现** + +| swagger | springdoc | javadoc | +|----------------------------------|---------------------------------|--------------------| +| @Api(name = "xxx") | @Tag(name = "xxx") | java类注释第一行 | +| @Api(description= "xxx") | @Tag(description= "xxx") | java类注释 | +| @ApiOperation | @Operation | java方法注释 | +| @ApiIgnore | @Hidden | 无 | +| @ApiParam | @Parameter | java方法@param参数注释 | +| @ApiImplicitParam | @Parameter | java方法@param参数注释 | +| @ApiImplicitParams | @Parameters | 多个@param参数注释 | +| @ApiModel | @Schema | java实体类注释 | +| @ApiModelProperty | @Schema | java属性注释 | +| @ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) | 无 | +| @ApiResponse | @ApiResponse | java方法@return返回值注释 | + +# 建议使用 `Apifox`(常见问题有其他对接方式) + +官网连接: [https://www.apifox.cn/](https://www.apifox.cn/)
+视频教程: [springdoc与apifox配合使用](https://www.bilibili.com/video/BV1mr4y1j75M?p=8&vd_source=8f52c77be3233dbdd1c5e332d4d45bfb) + +![输入图片说明](https://foruda.gitee.com/images/1678976476639902970/f1617b40_1766278.png "屏幕截图") + +支持 文档编写 接口调试 Mock 接口压测 自动化测试 等一系列功能 + +### 接入框架 + +> 1.下载或使用web在线版 创建一个自己的项目 + +![输入图片说明](https://foruda.gitee.com/images/1678976502850663851/7bbd8728_1766278.png "屏幕截图") + +> 2.进入项目 选择项目设置 找到自动同步 + +![输入图片说明](https://foruda.gitee.com/images/1678976508918240326/6a4a61a8_1766278.png "屏幕截图") + +> 3.根据项目内所有文档组完成所有数据源创建(拉取后端`openapi`结构体)
+数据源URL格式 `http://后端ip:端口/v3/api-docs/组名`
+项目内所需:
+`http://localhost:8080/v3/api-docs/1.演示模块`
+`http://localhost:8080/v3/api-docs/2.通用模块`
+`http://localhost:8080/v3/api-docs/3.系统模块`
+`http://localhost:8080/v3/api-docs/4.代码生成模块`
+也可不分组统一导入: `http://localhost:8080/v3/api-docs`
+ +![输入图片说明](https://foruda.gitee.com/images/1678976514385097727/05c7e0a6_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1686626073422245046/df4b6a54_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678976527495742967/79836e7f_1766278.png "屏幕截图") + +> 4.选择 接口管理 项目概览 点击立即导入 并等待导入完成
+后续会根据策略每3个小时自动导入一次
+每次重新进入apifox也会自动同步一次
+后端有改动也可以手动点击导入
+ +![输入图片说明](https://foruda.gitee.com/images/1678976534677430926/f32c64c5_1766278.png "屏幕截图") + +> 5.(注意版本号)设置鉴权 选择接口管理 项目概览 找到Auth 按照如下配置 + +**版本号: >= 5.X** + +![输入图片说明](https://foruda.gitee.com/images/1690966897370710566/6a688aea_1766278.png "屏幕截图") + +**版本号: 4.X** + +![输入图片说明](https://foruda.gitee.com/images/1678976539608390075/77246461_1766278.png "屏幕截图") + +> key对应项目配置 默认为 `Authorization` + +![输入图片说明](https://foruda.gitee.com/images/1678976544342001474/c2ff85d3_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678976549237304743/bcdfadda_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md new file mode 100644 index 00000000..4052979a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md @@ -0,0 +1,33 @@ +# 国际化方案 +- - - +* 前端国际化参考 [ruoyi前端国际化文档](http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#前端国际化流程)
+* 后端国际化(2.7.0 以上增加) +* 3.4.0 以上支持 `Validator` 校验框架 +* 参考 `demo` 模块 `TestI18nController` 国际化演示案例 + 在 `Header` 请求头 增加上下文语言参数 `content-language` 参数需与国际化配置文件后缀对应 + 如 `zh_CN` `en_US` 等
+ +![输入图片说明](https://foruda.gitee.com/images/1678976722892396585/60917594_1766278.png "屏幕截图") + +## 获取 `code` 对应国际化内容 + +![输入图片说明](https://foruda.gitee.com/images/1678976728533100954/0ab8e36a_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976733019209506/a16574d6_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976738409745057/a073b425_1766278.png "屏幕截图") + +## 使用 `Validator` 框架校验 `controller` 参数返回国际化 + +`controller` 校验接口参数 需要在类增加 `@Validated` 注解
+![输入图片说明](https://foruda.gitee.com/images/1678976741834729507/6c19b9cc_1766278.png "屏幕截图")
+参数对应校验注解 使用 `{code}` 形式标注使用国际化处理
+![输入图片说明](https://foruda.gitee.com/images/1678976746093285542/ad0989db_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976750822808564/56bd60d7_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976754755107198/b89bf173_1766278.png "屏幕截图") + +## 使用 `Validator` 框架校验 `Bean` 返回国际化 + +`Bean` 校验需要在接口校验 `Bean` 参数使用 `@Validated` 注解
+![输入图片说明](https://foruda.gitee.com/images/1678976761015767874/729da3bc_1766278.png "屏幕截图")
+`Bean` 内属性校验注解 使用 `{code}` 形式标注使用国际化处理
+![输入图片说明](https://foruda.gitee.com/images/1678976765122587920/0b1027af_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976769965314387/0c416ede_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md new file mode 100644 index 00000000..87b992aa --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md @@ -0,0 +1,15 @@ +# 关于如何创建新模块 +- - - +* 参考ruoyi-demo模块 +* 需要改动: 父pom 与 admin模块pom + +![输入图片说明](https://foruda.gitee.com/images/1719814203987728184/6940ecf8_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1719814254968294155/70fe6d77_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1719814280768521481/14fb11cd_1766278.png "屏幕截图") + +### 注意事项 +如果是两个不同包名的模块 需要修改如下配置 + +![输入图片说明](https://foruda.gitee.com/images/1719813861680271619/82435586_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1692006501957936219/059f8526_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md new file mode 100644 index 00000000..2dcab848 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md @@ -0,0 +1,33 @@ +# 关于修改包名 +- - - + +**注意: 老包名为 com.ruoyi** + +## 1.随便找个地方新建 org.dromara 包 +![输入图片说明](https://foruda.gitee.com/images/1708491220807198688/b95c0c34_1766278.png "屏幕截图") + +## 2.在包上右键选择 refactor -> rename 选择 All Directories +![输入图片说明](https://foruda.gitee.com/images/1683276891079076405/79808b22_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1708491697128844860/1e87ad39_1766278.png "屏幕截图") + +**因为dromara组织下有很多依赖导致idea无法识别完整包名** +
+![输入图片说明](https://foruda.gitee.com/images/1708490576909691001/692e5b37_1766278.png "屏幕截图") + +**需要先将dromara修改为 例如: ruoyi 然后重复上述步骤 这样就可以整包修改了** +
+![输入图片说明](https://foruda.gitee.com/images/1708490906933084793/ff104cd7_1766278.png "屏幕截图") + +## 3.使用IDEA全局替换 org.dromara 替换为 com.xxx + +![输入图片说明](https://foruda.gitee.com/images/1708491055347995519/dedda0d1_1766278.png "屏幕截图") + +**注意: 由于dromara组织下项目很多 非本框架的依赖模块 请勿修改 例如上图中的 org.dromara.sms4j** + +## 4.如有需要 将所有模块名逐一修改即可 + +## 5.修改完成后需查看所有common包下模块spi文件是否修改正确 + +**老版本idea或者未按照教程修改包名可能导致文件丢包问题** + +![输入图片说明](https://foruda.gitee.com/images/1708491365841192006/8bc337c2_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md new file mode 100644 index 00000000..0f5f106b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md @@ -0,0 +1,26 @@ +# 修改应用路径 +- - - +## 修改后端路径 + +更改 `application.yml` 的 `server.servlet.context-path` 即可更改后端容器路径 + +![输入图片说明](https://foruda.gitee.com/images/1724316662536650741/41d534b1_1766278.png "屏幕截图") + +与之对应前端 `dev`环境 需更改 `vite.config.ts` 的代理路径 + +![输入图片说明](https://foruda.gitee.com/images/1724316844091667249/9b0badc5_1766278.png "屏幕截图") + +`prod` 生产环境需修改 `nginx.conf` 后端代理路径 + +![输入图片说明](https://foruda.gitee.com/images/1661823876773225117/f1f912a9_1766278.png "屏幕截图") + +## 修改前端路径 +### 注意: 3.4.0 提供便捷更改方式 +直接修改对应环境的 `.env.环境` 文件内的 `VITE_APP_CONTEXT_PATH` 应用访问路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1724317049535973756/0a2cc43b_1766278.png "屏幕截图") + +生产环境 `nginx.conf` 与之对应修改即可
+**注意: 文件真实目录为 `/usr/share/nginx/html/admin/index.html` 此功能一般为多项目部署需要 故会增加一层目录 如不需要可以自行修改**
+![输入图片说明](https://foruda.gitee.com/images/1678976662194341301/2720b7e9_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md new file mode 100644 index 00000000..bec103d8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md @@ -0,0 +1,85 @@ +# 客户端管理功能 +- - - +## 版本 >= 5.X + +## 客户端管理页面 + +![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图") + +### 客户端管理字段说明 +| 字段名称 | 取值说明 | 注意事项 | +|----------------|----------------------------|--------------------------------| +| 客户端id | 由后端生成,用于前端登录校验以及接口数据加密 | 无法修改,不要删除默认数据,否则会报错 | +| 客户端key | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | +| 客户端秘钥 | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | +| 授权类型 | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式 | +| 设备类型 | PC端、APP端 | | +| Token活跃超时时间 | 自定义 | 指定时间无操作则过期(单位:秒),默认30分钟(1800秒) | +| Token固定超时时间 | 自定义 | 指定时间必定过期(单位:秒),默认七天(604800秒) | + +### 前后端使用新的客户端id + +步骤如下: +1. 前端管理页面生成新的客户端id。 +2. 将新的客户端id复制到前端配置文件。 + +![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图") + +## 新增自定义客户端 + +### 步骤一:新增客户端数据(例如增加小程序端) + +![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图") + +### 步骤二:配置前端请求头信息 + +需要在全局请求头 header 中增加 cientid
+确保客户端所有请求都携带此id 可参考项目 `request.ts` + +![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图") + +`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。 + +**重点:不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)** + +## 新增自定义登录方式授权类型 + +**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可** + +如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md) + +### 步骤一:新增字典数据 + +![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图") + +### 步骤二:新增/修改客户端数据 + +### 步骤三:后端新增认证策略 + +新增策略实现类实现 `IAuthStrategy` 接口。
+ +![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图") + +参照已有策略实现类实现自定义参数校验登录方法逻辑。
+ +![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图") + +**注意修改 `@Service` 名称保证规范性** + +![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图") + +`LoginBody` 校验参数(可自定义)
+ +![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图") + +例如 扩展小程序登录参数 只需要继承 `LoginBody
+ +![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")` + +校验分组(可自定义)
+ +![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md new file mode 100644 index 00000000..e20e09ac --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md @@ -0,0 +1,85 @@ +# 代码生成 +- - - +## 功能介绍 + +### 数据源配置 + +![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图") + +**>= 4.1.0版本 项目适配多种类型数据库 可以在代码生成页面切换**
+ +> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源
+ +![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图") + +**>= 5.2.2版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**
+ +![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图") + +### 导入数据表 + +> 点击导入按钮 会加载系统数据库所有的表
+ +![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图") + +> 选择需要的表 点击确定即可
+ +![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图") + +### 编辑表生成结构 + +> 点击表对应的编辑按钮
+ +![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图") + +> 更改要生成表的数据
+ +![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图") + +### 生成条件影响 + +![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图") + + +* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段 +* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段 +* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件 +* `查询方式` 影响生成查询条件的类型 +* `必填` 影响 BO 类 与 页面是否强制校验 +* `显示类型` 影响生成页面使用何种展示组件 +* `字典类型` 影响页面是否生成与字典的关联 + +### 树表配置 + +> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可
+ +![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图") + +### 主子表说明 + +框架不支持也不推荐使用主子表
+原因一般业务场景 基本都是一对N表 多表关联场景
+还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现
+另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景
+所以建议大家都按照 单表生成 自行编写业务逻辑 + +### 预览功能 + +> 配置好生成信息后 可以点击预览按钮
+ +![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图") + +> 系统会根据已经配置好的数据 生成对应的代码预览
+> 可以再此处观察代码的生成结构和数据是否正确等
+ +![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图") + + +### 代码结构同步 + +> 实际开发中 难免会有表结构更改的需求
+> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步
+ +![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md new file mode 100644 index 00000000..1dd01c17 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md @@ -0,0 +1,249 @@ +# 导出功能 + +- - - + +在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导出操作(即写 Excel)。 + +[EasyExcel 文档地址](https://easyexcel.opensource.alibaba.com/) + +## 导出功能使用流程说明 + +### 步骤一:定义导出实体对象 + +以框架中 `SysUserExportVo` 为例: + +```Java + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + // ....................... + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; +``` + +> 说明:
+> 1. 使用 `@ExcelProperty` 注解标注需要导出的属性。 +> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 +> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 + +### 步骤二:使用导出方法 + +以框架中 `SysUserController#export` 方法为例: + +```Java + /** + * 导出用户列表 + */ + @PostMapping("/export") + public void export(SysUserBo user, HttpServletResponse response) { + // 根据参数查询导出的用户列表数据 + List list = userService.selectUserList(user); + // 将列表转换为导出对象列表 + List listVo = MapstructUtils.convert(list, SysUserExportVo.class); + // 导出方法 + ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); + } +``` + +> 说明:
+> 使用 `ExcelUtil.exportExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导出对象集合,Excel sheet 表名称,导出对象类型,response。 + +## 框架工具使用说明 + +### 1:字典转换器 + +字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 + +使用方式一: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; +``` + +使用方式二: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") + private String sex; +``` + +`@ExcelDictFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|------------------|--------|-----|-----------------------------------| +| dictType | String | "" | 字典的type值 (如: sys_user_sex) | +| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | +| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | + +### 2:枚举转换器 + +字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 + +使用方式: + +```Java + /** + * 用户类型 + *

+ * 使用ExcelEnumFormat注解需要进行下拉选的部分 + */ + @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") + private String userStatus; +``` + +`@ExcelEnumFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|-----------|------------|------|------------------------------| +| enumClass | Enum Class | - | 字典枚举类型 | +| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | +| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | + +### 3:合并单元格 + +`@CellMerge` 注解用于合并相同的列数据,需要结合 `CellMergeStrategy` 策略使用,标注在需要转换的属性上。 + +使用方式: + +步骤一:在属性标注 `@CellMerge` 注解: +```Java + /** + * 部门id + */ + @CellMerge + @ExcelProperty(value = "部门id") + private Long deptId; +``` + +`@CellMerge` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|---------|----------|-----|------------------------------| +| index | int | -1 | 合并列的下标,建议使用默认值 | +| mergeBy | String[] | {} | 合并需要依赖的其他字段名称(基于这个字段内容做合并条件) | + +步骤二:导出方法开启合并: +```Java + /** + * 导出测试单表列表 + */ + @PostMapping("/export") + public void export(@Validated TestDemoBo bo, HttpServletResponse response) { + List list = testDemoService.queryList(bo); + // 参数 true 表示开启合并单元格策略 + ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, true, response); + } +``` +![输入图片说明](https://foruda.gitee.com/images/1700128921644543994/e8d4704f_1766278.png "屏幕截图") + +### 4:复杂 Excel 导出示例 +`TestExcelController` 提供了几种导出示例,如果需要可以参照相应方法进行导出。 + +#### 4.1:单列表多数据导出(模板导出) + +模板内容: + +![输入图片说明](https://foruda.gitee.com/images/1700124852002972562/d9f57a8c_4959041.png "屏幕截图") + +模板位置:`ruoyi-modules/ruoyi-demo/src/main/resources/excel/` + +导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700124885532359879/0d011d05_4959041.png "屏幕截图") + +#### 4.2:多列表多数据导出(模板导出) + +模板内容: + +![输入图片说明](https://foruda.gitee.com/images/1700125025931981176/105dbaaa_4959041.png "屏幕截图") + +模板位置:`ruoyi-modules/ruoyi-demo/src/main/resources/excel/` + +导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700125054011300002/71869c1d_4959041.png "屏幕截图") + +#### 4.3:导出下拉框 + +`ExcelDictFormat` 注解指定的字典项默认都会转换成下拉框 + +自定义导出省市区下拉框示例代码:参考 demo 模块 `TestExcelController` + +导出结果: + +![输入图片说明](https://foruda.gitee.com/images/1700125265411678973/7f767719_4959041.png "屏幕截图") + +## Easy Excel 常用注解 + +`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解,自定义注解会结合转换器一起进行说明。 + +| 类型 | 注解名称 | 使用举例 | 说明 | +|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | +| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | +| 样式注解 | @ColumnWidth | @ColumnWidth(value=值) | 设置列宽 | +| 样式注解 | @ContentFontStyle | @ContentFontStyle(color=颜色) | 可以设置字体类型,颜色,粗细,是否斜体,下划线等,具体可查看注解 `@ContentFontStyle` | +| 样式注解 | @ContentLoopMerge | @ContentLoopMerge(eachRow=行值, columnExtend=列值) | 设置循环合并的区域 | +| 样式注解 | @ContentRowHeight | @ContentRowHeight(value=值) | 设置内容行高 | +| 样式注解 | @ContentStyle | - | 设置单元格样式,具体可查看注解 `@ContentStyle` | +| 样式注解 | @HeadFontStyle | @HeadFontStyle(color=颜色) | 设置表头字体格式,类似 `@ContentFontStyle`,具体可查看注解 `@HeadFontStyle` | +| 样式注解 | @HeadRowHeight | @HeadRowHeight(value=值) | 设置表头行高 | +| 样式注解 | @HeadStyle | - | 设置表头样式,具体可查看注解 `@HeadStyle` | +| 样式注解 | @OnceAbsoluteMerge | @OnceAbsoluteMerge(firstRowIndex=开始行下标, lastRowIndex=结束行下标, firstColumnIndex=开始列下标, lastColumnIndex=结束列下标) | 根据设置值合并单元格 | +| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | +| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | +| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | + +## 扩展说明 + +### 自定义转换器实现 + +由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 +以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 + +字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 + +_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ + +#### 实现方式 + +自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") + +转换方法 `ExcelDictConvert#convertToExcelData` : + +![输入图片说明](https://foruda.gitee.com/images/1700104426131801297/72931ef0_4959041.png "屏幕截图") + +## 更多功能 + +更多导出功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/api/write)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md new file mode 100644 index 00000000..f1bbca7d --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md @@ -0,0 +1,202 @@ +# 导入功能 +- - - + +在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导入操作(即读 Excel)。 + +## 导入功能使用流程说明 + +### 步骤一:定义导入实体对象 + +以框架中 `SysUserImportVo` 为例: + +```java + /** + * 用户ID + */ + @ExcelProperty(value = "用户序号") + private Long userId; + + // ....................... + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + /** + * 帐号状态(0正常 1停用) + */ + @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; +``` + +> 说明:
+> 1. 使用 `@ExcelProperty` 注解标注需要导入的属性。 +> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 +> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 +> 4. 对象禁止使用链式注解 `@Accessors(chain = true)`,会找不到set方法。 + +### 步骤二:使用导入方法 + +以框架中 `SysUserController#importData` 方法为例: + +```Java + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @SaCheckPermission("system:user:import") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { + // 导入方法 + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); + return R.ok(result.getAnalysis()); + } +``` +> 说明:
+> 使用 `ExcelUtil.importExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导入文件流,导入对象类型,导入监听器 `SysUserImportListener`。 + +## 框架工具使用说明 + +### 1:字典转换器 + +字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 + +使用方式一: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; +``` + +使用方式二: + +```Java + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") + private String sex; +``` + +`@ExcelDictFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|------------------|--------|-----|-----------------------------------| +| dictType | String | "" | 字典的type值 (如: sys_user_sex) | +| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | +| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | + +### 2:枚举转换器 + +字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 + +使用方式: + +```Java + /** + * 用户类型 + *

+ * 使用ExcelEnumFormat注解需要进行下拉选的部分 + */ + @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) + @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") + private String userStatus; +``` + +`@ExcelEnumFormat` 注解属性说明: + +| 属性名称 | 属性类型 | 默认值 | 说明 | +|-----------|------------|------|------------------------------| +| enumClass | Enum Class | - | 字典枚举类型 | +| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | +| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | + + +### 3:导入监听器 + +#### 3.1:ExcelListener 监听器接口 + +`ExcelListener` 扩展了 `ReadListener` 接口,增加了获取结果方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700181723794469524/99bf83c9_4959041.png "屏幕截图") + +#### 3.2:DefaultExcelListener 默认监听器 + +`DefaultExcelListener` 默认监听器在读 Excel 时调用,主要对数据进行校验、解析、异常处理、返回结果等。导入操作时如果没有特别指定则使用该监听器。 + +#### 3.3:SysUserImportListener 用户导入监听器 + +`SysUserImportListener` 用户导入监听器是在用户导入时调用的监听器。 + +该监听器重写了 `invoke` 反射接口,对导入的用户数据进行了校验;重写了 `getExcelResult` 获取结果接口,返回结果数据。 + +#### 3.4:ExportDemoListener 带下拉框的导入监听器 + +`ExportDemoListener` 是对带有下拉框的 Excel 进行处理的导入监听器。 + +## Easy Excel 常用注解 + +`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解。 + +| 类型 | 注解名称 | 使用举例 | 说明 | +|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | +| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | +| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | +| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | +| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | + +## 扩展使用 + +### 扩展一:自定义转换器实现 + +由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 +以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 + +字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 + +_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ + +#### 实现方式 + +自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 + +![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") + +转换方法 `ExcelDictConvert#convertToJavaData` : + +![输入图片说明](https://foruda.gitee.com/images/1700182975516396213/d3c020f9_4959041.png "屏幕截图") + +### 扩展二:自定义监听器实现 + +自定义监听器主要用于在读取解析 Excel 数据时进行自定义操作。 +以下以框架中的用户导入监听器 `SysUserImportListener` 为例进行说明。 + +#### 实现方式 +1. 继承分析事件监听器 `AnalysisEventListener` 以及实现 Excel 监听器 `ExcelListener`。 + +![输入图片说明](https://foruda.gitee.com/images/1700184652693497753/09333dac_4959041.png "屏幕截图") + +2. 显示使用构造函数,否则将导致空指针。 + +![输入图片说明](https://foruda.gitee.com/images/1700184759075616584/cf05b0ed_4959041.png "屏幕截图") + +3. 实现 `invoke` 方法,对数据进行解析操作,可以在此方法对数据进行合法性判断。 + +4. 实现 `getExcelResult` 方法,对结果进行操作,例如返回成功、失败的统计数据。 + +## 更多功能 + +更多导入功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md new file mode 100644 index 00000000..a3e6e6b6 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md @@ -0,0 +1,25 @@ +# 接口放行 +- - - +## 使用方式 + +在配置文件填写路径放行
+![输入图片说明](https://foruda.gitee.com/images/1678979039071447990/8b272aba_1766278.png "屏幕截图") + +### 注解放行 +版本 4.3.1 以上 建议使用 `@SaIgnore` 忽略注解
+ +支持在类或方法上放行
+**注意: 动态路径会解析成通配符 请设计好接口路径避免问题** + +**例如: `/get/{userId}` 会解析成 `/get/*`**
+![输入图片说明](https://foruda.gitee.com/images/1666595109409104199/5b7d75c7_1766278.png "屏幕截图") + +## 注意事项 + +接口放行后不需要token即可访问
+但是没有token也就无法获取用户信息与鉴权 + +### 解决方案 +删除接口上的鉴权注解
+删除接口内获取用户信息功能
+删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md new file mode 100644 index 00000000..47484ab2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md @@ -0,0 +1,124 @@ +# 关于OSS模块使用 +- - - +## 重点注意事项 + +`桶/存储区域` 系统会根据配置自行创建分配权限
+~~如手动配置需要设置 `公有读` 权限 否则文件无法访问~~(`aliyun` 还需开通跨域配置)
+4.4.0 版本支持配置`公有/私有`权限(`aliyun` 还需开通跨域配置)
+访问站点 后严禁携带其他 `url` 例如: `/`, `/ruoyi` 等
+**阿里云与腾讯云SDK访问站点中不能包含桶名 系统会自动处理**
+**minio 站点不允许使用 localhost 请使用 127.0.0.1**
+**访问站点与自定义域名 都不要包含 `http` `https` 前缀 设置`https`请使用选项处理** + +## 代码使用 + +> 参考 `SysOssService.upload` 用法
+> 使用 `OssFactory.instance()` 获取当前启用的 `OssClient` 实例
+> 进行功能调用 获取返回值后 存储到对应的业务表 + +![输入图片说明](https://foruda.gitee.com/images/1678978345529639839/d350ec0b_1766278.png "屏幕截图") + + +## 功能配置 + +### 配置OSS + +> 进入 `系统管理 -> 文件管理 -> 配置管理` 填写对应的OSS服务相关配置
+ +![输入图片说明](https://foruda.gitee.com/images/1678978349820700551/1f91a237_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978354387669856/3a91a3a9_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978358019307086/0c2523e4_1766278.png "屏幕截图") + +**重点说明** + +> 云厂商只需修改 `访问站点`对应的域 切勿乱改(云厂商强烈建议绑定自定义域名使用 七牛云必须绑定[官方规定])
+ +![输入图片说明](https://foruda.gitee.com/images/1678978362358100362/5c2c4d20_1766278.png "屏幕截图") + +> 七牛云 访问站点
+ + +![输入图片说明](https://foruda.gitee.com/images/1678978366254745764/e93a65ff_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978369853348732/79e8950e_1766278.png "屏幕截图") + +> 阿里云 访问站点 + +![输入图片说明](https://foruda.gitee.com/images/1678978373981462025/56a70398_1766278.png "屏幕截图") + +> 腾讯云 访问站点 + +![输入图片说明](https://foruda.gitee.com/images/1678978378697093134/785517f3_1766278.png "屏幕截图") + +### MinIO 使用 https访问站点 + +**注意:S3 API 签名计算算法不支持托管 MinIO Server API 的代理方案** + +[ minio https 配置方式](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) + +### 切换OSS + +> 再配置列表点击 `状态` 按钮开启即可(注意: 只能开启一个OSS默认配置)
+> 手动使用 `OssFactory.instance("configKey")`
+ +![输入图片说明](https://foruda.gitee.com/images/1678978383700118702/7f3fa0c5_1766278.png "屏幕截图") + +### 扩展分类 + +> 如有文件分类 建议创建多个 oss配置 进行切换存储
+ +例如: 创建一个 图片存储的 oss配置
+指定唯一的 `configKey` 与 `前缀目录` 或 直接使用独立的`桶`
+独立桶的特点 可以自定义访问权限
+例如: 创建一个私有文件存储桶 不对外开放
+ +![输入图片说明](https://foruda.gitee.com/images/1678978389139754119/140be1df_1766278.png "屏幕截图") + +> 指定需要使用的配置
+> 使用 `OssFactory.instance("image")` 获取的 `OssClient` 会加载上图的配置 从而达到上传不同的目录或桶 + + +![输入图片说明](https://foruda.gitee.com/images/1678978397550123641/1b536881_1766278.png "屏幕截图") + + +### 上传图片或文件 + +> 进入 `系统管理 -> 文件管理` 点击 `上传文件` 或 `上传图片` 根据选项选择即可 会对应上传到配置开启的OSS内
+ +![输入图片说明](https://foruda.gitee.com/images/1678978401028132972/445d058e_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978404388284503/5459da29_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978408761764835/c81651fc_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978412748494539/7bae621f_1766278.png "屏幕截图") + +### 列表展示 + +> 默认展示图片(可预览) 文件会展示路径
+ +![输入图片说明](https://foruda.gitee.com/images/1678978416327601385/af1ecb3b_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678978422249633007/19d68eaa_1766278.png "屏幕截图") + +> 可以点击 `预览禁用启用` 按钮对是否展示进行更改 + +![输入图片说明](https://foruda.gitee.com/images/1678978426017014926/4f7fa3f3_1766278.png "屏幕截图") + +> 点击禁用后 图片会变成路径展示 + +![输入图片说明](https://foruda.gitee.com/images/1678978429692592556/0231d778_1766278.png "屏幕截图") + +> 也可再 `参数设置` 更改预览状态 将 `OSS预览列表资源` 改为 `false` 即可关闭预览 + +![输入图片说明](https://foruda.gitee.com/images/1678978433769403801/7d480e76_1766278.png "屏幕截图") + +### 删除功能 + +> 点击列表上方或后方 `删除` 按钮 会根据OSS服务商类型 调用对应的删除(注意: 需确保对应的服务商配置正确)
+> 可勾选多服务商类型的文件进行删除 系统会自动判断 + +![输入图片说明](https://foruda.gitee.com/images/1678978438265941745/f32edc72_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678978441938542080/43ed7c3d_1766278.png "屏幕截图") + +### 下载功能 + +> 点击列表后方对应资源的 `下载` 按钮 根据需求填写文件名 点击确认即可完成下载 + +![输入图片说明](https://foruda.gitee.com/images/1678978448927336261/409af888_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678978452761792483/ed0a4a72_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md new file mode 100644 index 00000000..97b6c525 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md @@ -0,0 +1,32 @@ +# 分页功能 +- - - +## 对应版本 + +> 3.5.0 版本 + +## 重点说明 + +> 项目使用 `mybatis-plus` 分页插件 实现分页功能 大致用法与 MP 一致 [MP分页文档](https://baomidou.com/pages/97710a/)
+> 项目已配置分页合理化 页数溢出 例如: 一共5页 查了第6页 默认返回第一页
+ +![输入图片说明](https://foruda.gitee.com/images/1678977804058241635/b5cb362d_1766278.png "屏幕截图") + +## 代码用法 + +> `Controller` 使用 `PageQuery` 接收分页参数 具体参数参考 `PageQuery` + +![输入图片说明](https://foruda.gitee.com/images/1678977844048821356/1f994221_1766278.png "屏幕截图") + +> 构建 `Mybatis-Plus` 分页对象
+> 使用 `PageQuery#build()` 方法 可快速(基于当前对象数据)构建 `MP` 分页对象 + +![输入图片说明](https://foruda.gitee.com/images/1678977862816976499/b82c1638_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678977876194578744/eaa7b854_1766278.png "屏幕截图")
+ +具体用法与 `MP` 一致 + +> 自定义 `SQL` 方法分页
+> 只需在 `Mapper` 方法第一个参数和返回值 重点: 第一个参数 标注分页对象 + +![输入图片说明](https://foruda.gitee.com/images/1678977898181729571/6e102731_1766278.png "屏幕截图")
+![输入图片说明](https://foruda.gitee.com/images/1678977906788451483/70979292_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md new file mode 100644 index 00000000..95ee19d8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md @@ -0,0 +1,158 @@ +# 参数校验 +- - - + +参数校验在日常开发中十分常见,在本框架中引入了 `spring-boot-starter-validation` 依赖,底层基于 `hibernate-validator`,可以对参数进行校验。 + +## 参数校验使用 + +### 方法一:使用 `@Validated` 注解 + +#### 步骤一:标注 `@Validated` + +`@Validated` 可以标注在类上,或者是参数前。 + +```Java +/** 标注在类上 **/ +@Validated +@RestController +@RequestMapping("/auth") +public class AuthController { + + @PostMapping("/login") + public R login(@RequestBody LoginBody body) { + // ... + } + +} +``` + +```Java +/** 标注在参数前 **/ +@PostMapping +public R add(@Validated @RequestBody SysUserBo user) { + // ... +} +``` + +#### 步骤二:标注校验注解 + +在参数中加入校验注解。 + +```Java +public class SysUserBo { + + @NotBlank(message = "用户账号不能为空") + @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") + private String userName; + + @NotBlank(message = "用户昵称不能为空") + @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") + private String nickName; + + @Email(message = "邮箱格式不正确") + @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") + private String email; + +} +``` + +常见校验注解见文末附表。 + +_注:message 支持 EL 表达式,{max} 直接读取前面的参数值。_ + +### 方法二:使用校验工具类 `ValidatorUtils` + +`org.dromara.common.core.utils.ValidatorUtils` + +![输入图片说明](https://foruda.gitee.com/images/1700050047426137432/206bd032_4959041.png "屏幕截图") + +使用方式 1:校验所有带有校验注解的属性 + +```Java +// 校验所有带有校验注解的属性 +ValidatorUtils.validate(object); +``` + +使用方式 2:按照分组校验属性(可以传多个分组) + +```Java +// 按照分组校验属性(可以传多个分组) +ValidatorUtils.validate(object, group); +``` + +## 扩展使用 + +### 扩展一:自定义校验注解 + +除了已有的校验注解以外,可以结合业务进行自定义。 + +以框架中的 `@Xss` 注解为例进行说明。 + +```Java +@Xss(message = "用户账号不能包含脚本字符") +@NotBlank(message = "用户账号不能为空") +@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") +private String userName; +``` + +#### 1:新增 `@Xss` 注解 + +`org.dromara.common.core.xss.Xss` + +![输入图片说明](https://foruda.gitee.com/images/1700048074014527096/b4e230c2_4959041.png "屏幕截图") + +#### 2:自定义校验器 + +自定义校验器实现 `jakarta.validation.ConstraintValidator` 接口。 + +`org.dromara.common.core.xss.XssValidator` + +![输入图片说明](https://foruda.gitee.com/images/1700048474563719650/f9172bdc_4959041.png "屏幕截图") + +### 扩展二:自定义分组校验 + +同一个对象在不同的请求中需要校验的参数不同,则可以使用分组校验。 + +#### 1:自定义分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049439236073123/9e0d2e16_4959041.png "屏幕截图") + +#### 2:`@Validated` 注解指定分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049302803077030/c2a985aa_4959041.png "屏幕截图") + +#### 3:校验注解中指定分组 + +![输入图片说明](https://foruda.gitee.com/images/1700049205699437759/96babbd6_4959041.png "屏幕截图") + +## 附录:常用校验注解 + +| 注解 | 使用(只列举特殊参数值) | 参数类型 | 说明 | +|------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| +| @AssertFalse | @AssertFalse | boolean / Boolean | 元素值必须为 false | +| @AssertTrue | @AssertTrue | boolean / Boolean | 元素值必须为 true | +| @DecimalMax | @DecimalMax(value=值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | +| @DecimalMin | @DecimalMin(value=值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | +| @Digits | @Digits(integer=整数位值, fraction=小数位值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 元素必须符合整数位以及小数位范围值 | +| @Email | @Email(regexp=正则表达式, flags=标志) | CharSequence | 元素是否符合正则表达式(正则表达式非必传) | +| @Future | @Future | - java.util.Date
- java.util.Calendar
- java.time.Instant
- java.time.LocalDate
- java.time.LocalDateTime
- java.time.LocalTime
- java.time.MonthDay
- java.time.OffsetDateTime
- java.time.OffsetTime
- java.time.Year
- java.time.YearMonth
- java.time.ZonedDateTime
- java.time.chrono.HijrahDate
- java.time.chrono.JapaneseDate
- java.time.chrono.MinguoDate
- java.time.chrono.ThaiBuddhistDate | 元素必须是未来的时刻、日期或时间 | +| @FutureOrPresent | @FutureOrPresent | 同 @Future | 元素必须是当前或未来的时刻、日期或时间 | +| @Length | @Length(min=最小值, max=最大值) | - CharSequence | 验证字符串是否在包含的 min 和 max 之间 | +| @Max | @Max(value=值) | - BigDecimal
- BigInteger
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | +| @Min | @Min(value=值) | - BigDecimal
- BigInteger
- byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | +| @Negative | @Negative | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的负数(即 0 被视为无效值) | +| @NegativeOrZero | @NegativeOrZero | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须为负数或 0 | +| @NotBlank | @NotBlank | CharSequence | 元素不能为 null,并且必须至少包含一个非空白字符 | +| @NotEmpty | @NotEmpty | - CharSequence
- Collection
- Map
- Array | 元素不能为 null 或空集合 | +| @NotNull | @NotNull | 不限类型 | 元素不能为 null | +| @Null | @Null | 不限类型 | 元素必须为 null | +| @Past | @Past | 同 @Future | 元素必须是过去的瞬间、日期或时间 | +| @PastOrPresent | @PastOrPresent | 同 @Future | 元素必须是过去或现在的瞬间、日期或时间 | +| @Pattern | @Pattern(regexp=正则表达式, flags=标志) | CharSequence | 元素必须与指定的正则表达式匹配(正则表达式遵循 Java 正则表达式约定) | +| @Positive | @Positive | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的正数(即 0 被视为无效值) | +| @PositiveOrZero | @PositiveOrZero | - BigDecimal
- BigInteger
- byte,short,int,long,float,double 及其包装类 | 元素必须为正数或 0 | +| @Range | @Range(min=最小值, max=最大值) | - BigDecimal
- BigInteger
- CharSequence
- byte, short, int, long 及其包装类 | 验证元素是否在包含的 min 和 max 之间 | +| @Size | @Size(min=最小值, max=最大值) | - CharSequence
- Collection
- Map
- Array | 验证元素是否在包含的 min 和 max 之间 | +| @Valid | @Valid | 对象 | 级联验证 | + +更多注解可参考包: `org.hibernate.validator` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md new file mode 100644 index 00000000..384b7749 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md @@ -0,0 +1,144 @@ +# 关于数据权限 +- - - +* 参考 demo 模块用法(需导入 test.sql 文件) + +### 新版数据权限功能: +1.支持自动注入 sql 数据过滤
+2.查询、更新、删除 限制
+3.支持自定义数据字段过滤
+4.模板支持 spel 语法实现动态 Bean 处理
+5.支持与菜单权限标识符联合使用(5.2.X新功能) + +### 数据权限相关代码 + +| 类 | 说明 | 功能 | +|-------------------------------|-----------------|----------------------------------------| +| DataScopeType | 数据权限模板定义 | 用于定义数据权限模板 | +| DataPermission | 数据权限组注解 | 用于标注开启数据权限 (默认过滤部门权限) | +| DataColumn | 具体的数据权限字段标注 | 用于替换数据权限模板内的 key 变量 | +| PlusDataPermissionInterceptor | 数据权限 sql 拦截器 | 用于拦截所有 sql 检查是否标注了 `DataPermission` 注解 | +| PlusDataPermissionHandler | 数据权限处理器 | 用于处理被拦截到的 sql 为其添加数据权限过滤条件 | +| DataPermissionHelper | 数据权限助手 | 操作数据权限上下文变量 | +| SysDataScopeService | 自定义 Bean 处理数据权限 | 用于自定义扩展 | + +## 忽略数据权限 + +1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: +``` +@InterceptorIgnore(dataPermission = "true") +``` + +2.如果需要在业务层忽略数据权限,可调用以下方法: +``` +# 无返回值 +DataPermissionHelper.ignore(() -> { 业务代码 }); +# 有返回值 +Class result = DataPermissionHelper.ignore(() -> { return 业务代码 }); +``` + +### 使用方式 `参考demo模块` +数据权限体系 `用户 -> 多角色 => 角色 -> 单数据权限` +> 例子: 用户A 拥有两个角色
+> 角色A 部门经理 可查看 本部门及以下部门的数据
+> 角色B 兼职开发 可查看 仅自己的数据 + +> 创建角色 test1 为 本部门及以下 + +![输入图片说明](https://foruda.gitee.com/images/1678978669666831574/b51ed0a3_1766278.png "屏幕截图") + +> 创建角色 test2 为 仅本人 + +![输入图片说明](https://foruda.gitee.com/images/1678978674159035056/69cf32ad_1766278.png "屏幕截图") + +> 将其分配给用户 test + +![输入图片说明](https://foruda.gitee.com/images/1678978680492570269/a47b6afc_1766278.png "屏幕截图") + +### 编写列表查询(注意: 数据权限注解只能在 Mapper 层使用) + +> 标注数据权限注解 `dept_id` 为过滤部门字段 `user_id` 为过滤创建用户 + +![输入图片说明](https://foruda.gitee.com/images/1678978687179608427/d6b83c30_1766278.png "屏幕截图") + +### 重点注意: 如下情况不生效 + +> 有自定义实现方法 最终执行的mapper不是这个方法 所以无法生效 +> +> 解决方案: 一直往下点 找到最终的执行mapper重写即可 + +![输入图片说明](https://foruda.gitee.com/images/1678978692558777291/78b0a3dd_1766278.png "屏幕截图") + +### 编写数据权限模板 + +![输入图片说明](https://foruda.gitee.com/images/1678978697141183499/cfc1cb6a_1766278.png "屏幕截图") + +1.`code` 为关联角色的数据权限 `code`
+2.`sqlTemplate` 为 sql 模板
+`#{#deptName}` 为模板变量 对应权限注解的 `key`
+`#{@sdss}` 为模板 Bean 调用 调用其 Bean 的处理方法
+3.`elseSql` 为兜底 sql 处理当前角色与标注的注解 无对应的情况
+例如 数据权限为仅本人 且 方法并未标注具体过滤注解 则 填充 `1 = 0` 使条件不满足 不允许查看
+更详细用法可以参考 `DataScopeType` 注释 + +### 测试代码 + +> 使用 `管理员` 用户优先测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978703250082481/e93a68a5_1766278.png "屏幕截图") + +> 使用 `test` 用户测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978710644676604/d7f80487_1766278.png "屏幕截图") + +> 使用 `test` 删除一条不属于自己的数据 +> sql执行为不满足条件 不允许删除 + +![输入图片说明](https://foruda.gitee.com/images/1678978715711122947/441d61f7_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678978720298532619/a35b1147_1766278.png "屏幕截图") + + +> 使用 `test` 修改与删除同理
+> 具体实现为 更新和删除方法 标注数据权限注解 + +![输入图片说明](https://foruda.gitee.com/images/1678978725329242504/a70491a1_1766278.png "屏幕截图") + +### 自定义SQL模板 + +> 1.首先在角色管理 数据权限下拉框 添加自定义模板
+> 为什么不放置到系统字典问题: 因数据权限与模板绑定 不应随意改动 最好事先定义好 + +![输入图片说明](https://foruda.gitee.com/images/1678978730563169865/3459ee17_1766278.png "屏幕截图") + +> 2.代码 `DataScopeType` 自定义一个SQL模板 + +![输入图片说明](https://foruda.gitee.com/images/1678978735588305505/3f030c67_1766278.png "屏幕截图") + +> 3.标注权限注解 + +![输入图片说明](https://foruda.gitee.com/images/1678978742259837391/eabe5caa_1766278.png "屏幕截图") + +> 4.设置数据权限变量 + +![输入图片说明](https://foruda.gitee.com/images/1678978746778429543/e211201f_1766278.png "屏幕截图") + +> 5.测试 + +![输入图片说明](https://foruda.gitee.com/images/1678978751875467640/7d210cf4_1766278.png "屏幕截图") + +### mybatis-plus 原生方法 增加数据权限过滤 + +> 首先查看需要重写的方法源码 重点`方法源码` `方法源码` `方法源码`
+> 例如重写 `selectPage` 方法
+ +![输入图片说明](https://foruda.gitee.com/images/1678978757955000897/8315695c_1766278.png "屏幕截图") + +> 复制源码到自己的 `Mapper` 并增加数据权限注解 注意左边出现重写图标 即为重写成功
+ +![输入图片说明](https://foruda.gitee.com/images/1678978763224011694/bbea25a1_1766278.png "屏幕截图") + +### 支持类标注 + +> 获取规则 `方法 > 类` 注意: 类标注后 所有方法(包括父类方法) 都会进行数据权限过滤 + +![输入图片说明](https://foruda.gitee.com/images/1678978767336534896/fb13ee99_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md new file mode 100644 index 00000000..fa3a079c --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md @@ -0,0 +1,180 @@ +# 权限控制 +- - - + +本文采用 `Sa-Token` 框架实现权限控制。[官方文档传送门](https://sa-token.cc/doc.html#/) + +## 权限校验 +权限校验指的是校验用户是否拥有访问某个 API 的能力。 + +通常情况下,一个 API 对应一个权限码,如果用户具备当前 API 的权限码,即代表有能力访问该 API。 + +### 1:权限标识 +在本系统中,每一个菜单功能都有对应的权限标识,可以在菜单管理中进行设置。 + +> 注: +> 1. 前后端的权限标识要保持一致。 +> 2. 权限标识可以使用通配符`*`。 + +![输入图片说明](https://foruda.gitee.com/images/1701086497939145368/133fb327_4959041.png "屏幕截图") + + +### 2:校验方法 +#### 2.1:使用 `@SaCheckPermission` 注解进行校验 +`@SaCheckPermission` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 + +- 单个权限校验: + +```Java +@SaCheckPermission("system:user:list") +``` + +- 多个权限校验(或模式,满足任意一个权限即可): + +```Java +@SaCheckPermission( + value = { + "system:user:list", + "system:user:query" + }, + mode = SaMode.OR +) +``` + +- 多个权限校验(与模式,必须满足所有权限): + +```Java +@SaCheckPermission( + value = { + "system:user:list", + "system:user:query" + }, + mode = SaMode.AND +) +``` + +#### 2.2:使用 `StpUtil` 工具类校验 +`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 + +- 判断当前用户是否拥有某个权限(返回 `boolean`): + +```Java +StpUtil.hasPermission("system:user:list"); +``` + +- 单个权限校验: + +```Java +StpUtil.checkPermission("system:user:list"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +- 多个权限校验(或模式,满足任意一个权限即可): + +```Java +StpUtil.checkPermissionOr("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +- 多个权限校验(与模式,必须满足所有权限): + +```Java +StpUtil.checkPermissionAnd("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotPermissionException` + +## 角色校验 +角色校验指的是校验用户是否拥有某个指定角色。 + +### 1:权限标识 +在本系统中,每个角色都拥有唯一的权限字符。 + +除了超级管理员角色外,其他角色的权限字符可以通过角色管理进行设置。 + +![输入图片说明](https://foruda.gitee.com/images/1701085080527279823/3255961d_4959041.png "屏幕截图") + +### 2:校验方法 +#### 2.1:使用 `@SaCheckRole` 注解校验 +`@SaCheckRole` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 + +- 单个角色校验 + +```Java +@SaCheckRole("superadmin") +``` + +- 多个角色校验(或模式,满足任意一个角色即可): + +```Java +@SaCheckRole( + value = { + "superadmin", + "admin" + }, + mode = SaMode.OR +) +``` + +- 多个角色校验(与模式,必须满足所有角色): + +```Java +@SaCheckRole( + value = { + "superadmin", + "admin" + }, + mode = SaMode.AND +) +``` + +#### 2.2:使用 `StpUtil` 工具类校验 +`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 + +- 判断当前用户是否拥有某个角色(返回 `boolean`): + +```Java +StpUtil.hasRole("superadmin") +``` + +- 单个权限校验: + +```Java +StpUtil.checkRole("system:user:list"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +- 多个权限校验(或模式,满足任意一个角色即可): + +```Java +StpUtil.checkRoleOr("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +- 多个权限校验(与模式,必须满足所有角色): + +```Java +StpUtil.checkRoleAnd("system:user:list", "system:user:query"); +``` +如果验证未通过,则抛出异常: `NotRoleException` + +## 角色权限双重 `OR` 校验 +除了分开校验以外,权限和角色也可以进行组合,表示备选校验。 + +简单举个例子: + +假设某个 API 的权限码为 `system:user:list`,角色 `admin` 可以调用,则可以这样写: + +```Java +@SaCheckPermission(value = "system:user:list", orRole = "admin") +``` + +以上权限只需要满足任意一项即可。更多写法可以参考 `Sa-Token` [官方文档](https://sa-token.cc/doc.html#/use/at-check?id=_4%e3%80%81%e8%a7%92%e8%89%b2%e6%9d%83%e9%99%90%e5%8f%8c%e9%87%8d-or%e6%a0%a1%e9%aa%8c)。 + +## 当前用户的所有权限 +本系统中实现了 `StpInterface` 接口,可以对用户的权限以及角色进行管理,并且可以根据不同的用户类型进行设置。 + +具体参考类:`org.dromara.common.satoken.core.service.SaPermissionImpl` + +## 忽略权限校验 +请参考文档:[接口放行](/ruoyi-vue-plus/framework/basic/interface_release?id=接口放行) + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md new file mode 100644 index 00000000..a004434b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md @@ -0,0 +1,68 @@ +# 第三方授权功能 +- - - +## 版本 >= 5.X + +## 前置说明 +1. 该功能基于 `JustAuth` 实现,支持多家平台实现第三方授权登录。 +2. 以 `Gitee` 授权登录为例进行本功能的使用说明。 +3. 其他第三方授权配置信息获取方式可参考 `JustAuth` [官方文档](https://www.justauth.cn/guide/)。
+ + ![输入图片说明](https://foruda.gitee.com/images/1690937097426867003/91d80587_4959041.png "屏幕截图") + +## 第三方授权配置 + +### 申请三方应用(以gitee为例) + +![输入图片说明](https://foruda.gitee.com/images/1700641775779304627/1cf1b56f_1766278.png "屏幕截图") + +### 更改后端配置 `application-dev.yml` + +![输入图片说明](https://foruda.gitee.com/images/1690936741844431943/580f8998_4959041.png "屏幕截图") + +**注:内网地址无法回调,请使用外网可以访问的地址。** + +![输入图片说明](https://foruda.gitee.com/images/1690940457570856867/ce22df18_4959041.png "屏幕截图") + +### 更改前端配置 `login.vue` + +![输入图片说明](https://foruda.gitee.com/images/1690937306197173754/5c1ece29_4959041.png "屏幕截图") + +## 授权登录(未绑定第三方平台) + +### 步骤一:个人中心授权第三方应用 + +![输入图片说明](https://foruda.gitee.com/images/1690938449386201097/ea375106_4959041.png "屏幕截图") + +### 步骤二:同意授权 + +![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") + +顶部出现授权成功,并跳转到系统首页。
+ +![输入图片说明](https://foruda.gitee.com/images/1690938559178527841/563168e4_4959041.png "屏幕截图")
+ +![输入图片说明](https://foruda.gitee.com/images/1690938636375977741/8ceb77cf_4959041.png "屏幕截图") + +查看第三方应用可看到授权成功的个人信息。
+ +![输入图片说明](https://foruda.gitee.com/images/1690938725512311321/5532a2a9_4959041.png "屏幕截图") + +## 授权登录(已绑定第三方平台) + +### 步骤一:点击登录页面图标 + +![输入图片说明](https://foruda.gitee.com/images/1690938908352243992/fd044381_4959041.png "屏幕截图") + +### 步骤二:同意授权 + +![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") + +## 解除授权绑定 + +### 步骤一:个人中心点击解绑第三方应用 + +![输入图片说明](https://foruda.gitee.com/images/1690939087877969002/4ef324e7_4959041.png "屏幕截图") + +### 步骤二:点击确定完成解绑 + +![输入图片说明](https://foruda.gitee.com/images/1690939108017661775/7236088d_4959041.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md new file mode 100644 index 00000000..33953086 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md @@ -0,0 +1,121 @@ +# 多租户功能 +- - - +## 版本 >= 5.X + +## 前置说明(重要) +1. 本框架多租户功能的实现是基于 [MyBatis-Plus 多租户插件](https://baomidou.com/pages/aef2f2/#tenantlineinnerinterceptor) 的,只支持最简单的隔离。 +2. 本系统默认开启多租户功能。 +3. 多租户业务表建表需要加上租户id `tenant_id`,可参考其他系统表。 +4. 非多租户表可在配置文件进行配置排除。 +5. 只有超级管理员支持切换租户。 + +## 多租户使用流程(先说结论再展开!) +0. 开启多租户配置(系统默认已经开启) +1. 登录界面(可以选择不同租户) +> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 +2. 设置多租户套餐 +3. 新增/修改租户(需要选择套餐) +4. 切换租户(仅超级管理员可操作) + +## 多租户配置 +`application.yml`
+ +> 开关 `enable` 节点不用废话。
+> 如果不需要过滤租户的表可在 `excludes` 节点下添加。 + +**注意: 如果已经基于租户模式启动了程序 关闭租户必须删除mysql与redis内的相关数据重新导入sql** + +![输入图片说明](https://foruda.gitee.com/images/1680168468127690787/2cd3279e_4959041.png "屏幕截图") + +## 忽略租户 + +1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: +``` +@InterceptorIgnore(tenantLine = "true", dataPermission = "false") +``` +**此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效** + +2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用): +``` +# 无返回值 +TenantHelper.ignore(() -> { 业务代码 }); +# 有返回值 +Class result = TenantHelper.ignore(() -> { return 业务代码 }); +``` + +## 动态切换租户 + +**仅适用于特殊需求业务(例如: 创建租户时, 对该租户操作一些数据, 或者需要去其他租户查一些数据等) 禁止乱用后果自负** + +``` +# 无返回值 +TenantHelper.dynamic(租户id, () -> { 业务代码 }); +# 有返回值 +Class result = TenantHelper.dynamic(租户id, () -> { return 业务代码 }); +``` + +## 登录界面 + +![输入图片说明](https://foruda.gitee.com/images/1680173982933030545/bca146d7_4959041.png "屏幕截图") + +> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 + +## 租户套餐管理 +### 租户套餐新增 +![输入图片说明](https://foruda.gitee.com/images/1680174317475230288/352957a1_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680174602877523112/fc194f17_4959041.png "屏幕截图") + +> 注: +> 1、先新增套餐再新增租户,因为租户新增之后无法修改所选套餐。 +> 2、租户所关联的套餐如果后续有修改可以进行同步。 + + +## 租户管理 +### 默认租户 +> 注:默认租户无法修改 + +![输入图片说明](https://foruda.gitee.com/images/1680174738913576400/b6aca11a_4959041.png "屏幕截图") + +### 新增租户 +#### 填写表单 +![输入图片说明](https://foruda.gitee.com/images/1680174945220618443/f7181b51_4959041.png "屏幕截图") + +#### 选择新增的租户套餐 +![输入图片说明](https://foruda.gitee.com/images/1680174991869792688/0dbaadd6_4959041.png "屏幕截图") + +#### 新增完成 +![输入图片说明](https://foruda.gitee.com/images/1680175033853525725/42e64b4d_4959041.png "屏幕截图") + +#### 登录租户 +![输入图片说明](https://foruda.gitee.com/images/1680176145378931134/e05f347e_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176208161104366/44a935f1_4959041.png "屏幕截图") + +### 修改租户 +#### 配置域名 +![输入图片说明](https://foruda.gitee.com/images/1680175251192690133/141fa6a6_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680175431036971650/db522d39_4959041.png "屏幕截图") + +#### 没有配置域名 +![输入图片说明](https://foruda.gitee.com/images/1680175541165540240/95e211f7_4959041.png "屏幕截图") + +#### 强调一下:这不是bug! +> 注:域名的配置就是为了绑定特定租户! + +### 同步套餐 +应用场景:租户套餐进行了修改,配置的菜单需要同步到特定租户。 +(不是所有租户都有更新套餐的权利, 这是跟钱挂钩的) + +> 点一下按钮的事,图略。 + +## 切换租户(仅超级管理员) +> 注:管理员切换租户不是切换用户,切换的只是数据,管理员拥有所有权限。 + +![输入图片说明](https://foruda.gitee.com/images/1680176324802967804/5c5d6fc3_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176431031189788/0c3f924c_4959041.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1680176496555243569/624ec677_4959041.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md new file mode 100644 index 00000000..b665ac5a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md @@ -0,0 +1,85 @@ +# 系统用户相关 +- - - + +> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装
+ +## 用户登录 + +> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录
+> 例如: `同表不同类型` `不同表` `同表+扩展表`
+ +![输入图片说明](https://foruda.gitee.com/images/1699590555824776931/63d493fc_1766278.png "屏幕截图") + +## 获取用户信息 + +> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息 + +请求头传递格式: `Authorization: Bearer token` + +后端获取用户信息: +```java +LoginUser user = LoginHelper.getLoginUser(); +``` + +## 获取用户信息(基于token) +```java +LoginUser user = LoginHelper.getLoginUser(token); +``` + +## 获取登录用户id +```java +Long userId = LoginHelper.getUserId(); +``` + +## 获取登录用户账户名 +```java +String username = LoginHelper.getUsername(); +``` + +## 获取登录用户所属租户id +```java +String tenantId = LoginHelper.getTenantId(); +``` + +## 获取登录用户所属部门id +```java +Long deptId = LoginHelper.getDeptId(); +``` + +## 获取登录用户类型 +```java +UserType userType = LoginHelper.getUserType(); +``` + +## 获取登录用户其他扩展属性 +```java +Object obj = LoginHelper.getExtra(key); +``` + +## 设置登录用户其他扩展属性 + +参考登录设置 `clientId` 属性 + +![输入图片说明](https://foruda.gitee.com/images/1699591164562734430/42730add_1766278.png "屏幕截图") + +## 判断用户是否为超级管理员 + +```java +// 判断当前登录用户 +boolean b = LoginHelper.isSuperAdmin(); +// 判断用户基于id +boolean b = LoginHelper.isSuperAdmin(userId); +``` + +## 判断用户是否为租户管理员 + +```java +// 判断当前登录用户 +boolean b = LoginHelper.isTenantAdmin(); +// 判断用户基于角色组 +boolean b = LoginHelper.isSuperAdmin(rolePermission); +``` + +## 其他更多操作 +[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth) + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md new file mode 100644 index 00000000..593129e8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md @@ -0,0 +1,14 @@ +# 关于多表查询 +- - - +## 建议单表查询 + +文章连接: [大连接查询分解好处](https://java.isture.com/db/mysql/mysql-x-optimize-decompose-connection.html) +文章连接: [如何用mp多表查询性能测试](https://developer.aliyun.com/article/858927) + +![输入图片说明](https://foruda.gitee.com/images/1678979482724037085/1e74f3e1_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1666336728402711844/52788205_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1666336945935088277/f60e3288_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1666336954686520161/c6c83adc_1766278.png "屏幕截图") + +**(上图出自 <高性能MySql>)** \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md new file mode 100644 index 00000000..3ec55fec --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md @@ -0,0 +1,19 @@ +# 主键使用说明 +- - - +## 关于如何使用分布式id或雪花id + +参考 `MybatisPlusConfig` 如需自定义 修改 `Bean` 实现即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979401707903546/e25f6c06_1766278.png "屏幕截图") + +框架默认集成 雪花ID 只需全局更改 主键类型即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979411517764918/1470df04_1766278.png "屏幕截图") + +如单表使用 可单独配置注解 + +![输入图片说明](https://foruda.gitee.com/images/1678979416033986923/2a4c3736_1766278.png "屏幕截图") + +### 重点说明 +* 由于雪花id位数过长 `Long` 类型在前端会失真 +* 框架已配置序列化方案 超越 `JS` 最大值自动转字符串 参考 `BigNumberSerializer` 类 (3.0.0 及以上新增) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md new file mode 100644 index 00000000..c6dbfe99 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md @@ -0,0 +1,6 @@ +# 单元测试 +- - - +## 参考文章 +[SpringBoot 2.X 整合 JUnit5 及全方位使用手册](https://lionli.blog.csdn.net/article/details/127576604) +## 参考代码(4.4.0新增) +![输入图片说明](https://foruda.gitee.com/images/1666973091281055549/6e8f58c3_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md new file mode 100644 index 00000000..dfad76f8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md @@ -0,0 +1,45 @@ +# 事务相关 +- - - +若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86) 以下对多数据源事务做补充: + +## 多后端多数据源事务 + +框架支持对接 `seata` 保证分布式多数据源事务
+详情参考多数据源框架文档连接: https://www.kancloud.cn/tracy5546/dynamic-datasource/2268607 + +## 本地多数据源事务 +请使用 `@DSTransactional` 注解 会代理 `@DS` 注解切换后的数据源事务做回滚处理
+只要 `@DSTransactional` 注解下任一环节发生异常,则全局多数据源事务回滚。
+如果BC上也有 `@DSTransactional` 会有影响吗?答:没有影响的。 + +```java +//如AService调用BService和CService的方法,A,B,C分别对应不同数据源。 + +public class AService { + + @DS("a")//如果a是默认数据源则不需要DS注解。 + @DSTransactional + public void dosomething(){ + BService.dosomething(); + CService.dosomething(); + } +} + +public class BService { + + @DS("b") + public void dosomething(){ + //dosomething + } +} + +public class CService { + + @DS("c") + public void dosomething(){ + //dosomething + } +} +``` + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md new file mode 100644 index 00000000..fc56df31 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md @@ -0,0 +1,38 @@ +# 数据加解密 +- - - + +## 1:API 加密注解 `@ApiEncrypt` +1. 对于标注了 `@ApiEncrypt` 注解的接口,请求参数都必须进行加密。 +2. 注解的参数 `response` 为响应加密标识,默认 `false` 不加密,为 `true` 表示响应加密。 +3. 加密解密逻辑由过滤器实现,详情可参考 `org.dromara.common.encrypt.filter.CryptoFilter`。 + +## 2:API 加密配置 +`application.yml` + +![输入图片说明](https://foruda.gitee.com/images/1701131796468961065/83c464cd_4959041.png "屏幕截图") + +`.env.development` / `.env.production` + +![输入图片说明](https://foruda.gitee.com/images/1709533252413969800/1d0dff25_1766278.png "屏幕截图") + +> 注: +> 1. 公私钥与前端配置文件互为配对,如果需要更换请一同更换。 +> 2. 后端公钥对应前端私钥;后端私钥对应前端公钥。 + +## 3:前端开启加密 +如果需要开启 API 加密,则需要修改 `request` 的 `headers` 内容: +```Javascript +headers: { + isEncrypt: true +} +``` + +![输入图片说明](https://foruda.gitee.com/images/1701137141916998346/5e839bbe_4959041.png "屏幕截图") + +## 4.关于请求响应参数加解密说明 + +如何加解密请求响应参数看这里 -> [关于请求响应参数解密](/questions/api_encrypt.md) + +## 密钥生成说明 + +![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md new file mode 100644 index 00000000..1e81b5e0 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md @@ -0,0 +1,45 @@ +# 多数据源 +- - - + +### 框架默认 mysql 其他数据库使用说明 + +找到 `ruoyi-admin` 模块在 pom 文件内增加对应的jdbc依赖 + +![输入图片说明](https://foruda.gitee.com/images/1721098535176969987/d42870ca_1766278.png "屏幕截图") + + +### 关于多数据源事务 具体参考 `事务相关` 文档说明 + +### 多数据源框架功能介绍 +多数据源框架官方文档: [dynamic-datasource文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611) + +* 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 +* 支持数据库敏感配置信息 加密 ENC()。 +* 支持每个数据库独立初始化表结构schema和数据库database。 +* 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 +* 支持 自定义注解 ,需继承DS(3.2.0+)。 +* 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。 +* 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。 +* 提供 自定义数据源来源 方案(如全从数据库加载)。 +* 提供项目启动后 动态增加移除数据源 方案。 +* 提供Mybatis环境下的 纯读写分离 方案。 +* 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。 +* 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。 +* 提供 基于seata的分布式事务方案。 +* 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。 + +### 用法说明 + +> 加载顺序 `方法 => 类 => 默认`
+ +![输入图片说明](https://foruda.gitee.com/images/1678979069737596299/abe8ae7f_1766278.png "屏幕截图") + +### 配置方式 + +![输入图片说明](https://foruda.gitee.com/images/1678979074000345758/b9238f0b_1766278.png "屏幕截图") + +### 数据库异构 + +例如: `mysql + oracle` 参考对应多数据源框架文档 [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource) + +![输入图片说明](https://foruda.gitee.com/images/1678979078387192317/2de94a78_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md new file mode 100644 index 00000000..19d726cd --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md @@ -0,0 +1,28 @@ +# 数据加解密 +- - - +## 框架版本 >= 4.6.0 +## 功能说明 + +数据库 数据存储加密 查询解密功能
+支持加密算法: `BASE64` `AES` `RSA` `SM2` `SM4` + +## 注解 `@EncryptField` + +![输入图片说明](https://foruda.gitee.com/images/1675577493013639395/cd920f15_1766278.png "屏幕截图") + +## 用法说明 + +**详细用法可参考案例 TestEncryptController 测试数据库加解密功能** + +全局默认加密配置(如果注解不配置则使用全局配置) + +![输入图片说明](https://foruda.gitee.com/images/1675577674063566357/dee94786_1766278.png "屏幕截图") + +注解可自定义算法与配置 + +![输入图片说明](https://foruda.gitee.com/images/1675577725117970708/7ee7a833_1766278.png "屏幕截图") + +## 密钥生成说明 + +![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md new file mode 100644 index 00000000..46c7f423 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md @@ -0,0 +1,29 @@ +# 防重幂等 +- - - +### 功能介绍 + +防重功能为防止两条相同的数据重复提交导致脏数据或业务错乱
+**注意: 重复提交属于小概率事件 请不要拿并发压测与之相提并论**
+框架防重功能参考 `美团GTIS防重系统` 使用 请求参数与用户Token或URL 生成全局业务ID
+有效防止 `同一个用户` 在 `限制时间` 内对 `同一个业务` 提交 `相同的数据` + +框架防重处理 `支持业务失败或异常` 快速释放限制
+业务处理成功后 会在设置时间内 限制同一条数据的提交
+**注意: 只对同一个用户的同一个接口提交相同的数据有效** + + + + +### 美团GTIS系统流程图 + +[美团 分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html) + +![输入图片说明](https://foruda.gitee.com/images/1678979231862359032/34f030c5_1766278.png "屏幕截图") + +### 使用方法 + +在Controller标注 `@RepeatSubmit` 注解即可 + +![输入图片说明](https://foruda.gitee.com/images/1678979236772683145/9fa27e5b_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678979240831458322/8e1fac4b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md new file mode 100644 index 00000000..6e7413ed --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md @@ -0,0 +1,17 @@ +# 邮件功能 +- - - +## 配置功能 + +版本: v4.2.0 提供邮件功能 + +修改配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1663555260932007318/fabb2bfa_1766278.png "屏幕截图") + +* `enabled` 为邮件功能开关 + +## 功能使用 + +参考 `demo` 模块 `MailController` 邮件演示案例 + +![输入图片说明](https://foruda.gitee.com/images/1663555374113593089/885b4db2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md new file mode 100644 index 00000000..a0b51d24 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md @@ -0,0 +1,20 @@ +# 对接 MaxKey 单点登录 +- - - + +# 安装 MaxKey 应用服务 + +参考 MaxKey 官方文档安装 [MaxKey安装部署](http://www.maxkey.top/doc/docs/intro/) + +# 配置应用 OAuth2.0 认证注册 + +![输入图片说明](https://foruda.gitee.com/images/1693377802128677240/0927270a_1766278.png "屏幕截图") + +# 配置后端服务 + +找到框架 `application-环境.yml` 配置文件 + +修改 `maxkey` 对应的 `client-id` 与 `client-secret` + +![输入图片说明](https://foruda.gitee.com/images/1693378118762354596/2f02c8a3_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1693378168538263792/24476d2a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md new file mode 100644 index 00000000..3e2d92ba --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md @@ -0,0 +1,33 @@ +# 数据脱敏 +- - - +## 功能说明 + +系统使用 `Jackson` 序列化策略 对标注了 `Sensitive` 注解的属性进行脱敏处理 + +## 使用教程 + +> 使用注解标注需要脱敏的字段 选择对应的策略 + +![输入图片说明](https://foruda.gitee.com/images/1699523591703893602/ffd6dba2_1766278.png "屏幕截图") + +* strategy 脱敏策略 +* roleKey 角色code(判断用户是否拥有角色权限) +* perms 权限code(判断用户是否拥有标识符权限) + +![输入图片说明](https://foruda.gitee.com/images/1678979315796014155/614adf91_1766278.png "屏幕截图") + +> 可再 `SensitiveStrategy` 内自定义策略 + +![输入图片说明](https://foruda.gitee.com/images/1678979319996224858/3b3e3c8b_1766278.png "屏幕截图") + +## 脱敏逻辑修改 + +> 系统使用通用接口处理是否需要脱敏 多个系统可以自定义不同的脱敏逻辑实现 + +![输入图片说明](https://foruda.gitee.com/images/1678979325448998856/b262e425_1766278.png "屏幕截图") + +> 系统默认处理逻辑为 根据角色与标识符或非管理员脱敏 可自行修改默认实现 + +![输入图片说明](https://foruda.gitee.com/images/1699523752627488891/f82f2f50_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md new file mode 100644 index 00000000..283eb221 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md @@ -0,0 +1,20 @@ +# Skywalking链路监控 +- - - +## skywalking服务搭建 + +参考文章: https://lionli.blog.csdn.net/article/details/127656534
+多种搭建方式 也可以参考百度 + +## 代码改动 + +https://gitee.com/dromara/RuoYi-Vue-Plus/commit/4d02466fed4f3ea012a80c3359cde9af0737141f
+根据上方commit提交记录 开启注释掉的代码 + +## 本地使用 + +参考文章: https://lionli.blog.csdn.net/article/details/127656534 + +## docker部署使用 + +完成上方代码改动 将下载好的 `agent` 探针 放入服务器 `/docker/skywalking/agent/` 目录下 赋予所有权限即可
+![输入图片说明](https://foruda.gitee.com/images/1669032573170837535/d9901f53_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md new file mode 100644 index 00000000..a2308ecd --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md @@ -0,0 +1,51 @@ +# 短信模块 +- - - + +# 配置功能 + +### 版本: >= v5.1.0 + +已完成 sms4j 项目整合 文档地址: https://sms4j.com/doc3 + +配置方式 具体厂商配置扩展 可以查看sms4j文档 + +![输入图片说明](https://foruda.gitee.com/images/1705573035997239848/2ca8512d_1766278.png "屏幕截图") + +使用方式 参考文档各种写法 下方为 demo 模块提供示例 + +![输入图片说明](https://foruda.gitee.com/images/1705573001447394180/2bd726d0_1766278.png "屏幕截图") + +### 版本: v4.2.0 提供短信模块 + +短信模块采用SPI加载
+使用哪家的短信 引入哪家的依赖 即可动态加载
+目前支持: `阿里云` `腾讯云` 欢迎扩展PR其他 + +> 参考 `ruoyi-demo` pom文件写法 + +![输入图片说明](https://foruda.gitee.com/images/1678979157797419426/cc9b7444_1766278.png "屏幕截图") + +> 修改配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1678979163029635375/e5fd6e20_1766278.png "屏幕截图") + +* `enabled` 为短信功能开关 +* `endpoint` 为域名 各厂家域名固定 按照文档配置即可 +* `accessKeyId` 密钥id +* `accessKeySecret` 密钥密匙 +* `signName` 签名 +* `sdkAppId` 应用id 腾讯专用 + +## 功能使用 + +参考 `demo` 模块 `SmsController` 短信演示案例
+功能采用 `模板模式` 动态加载对应厂家的工具模板
+引入 `SmsTemplate` 即可使用 + +![输入图片说明](https://foruda.gitee.com/images/1678979168699323982/e9301e84_1766278.png "屏幕截图") + +## 重点须知 + +由于各厂家参数解析不一致 请遵守以下规则 + +![输入图片说明](https://foruda.gitee.com/images/1678979172581090456/ac1f10e8_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md new file mode 100644 index 00000000..8a738329 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md @@ -0,0 +1,22 @@ +# SSE功能 +- - - + +## 框架版本 >= 5.2.2 + +## 配置说明 + +![输入图片说明](https://foruda.gitee.com/images/1721986820599622433/1abe5d60_1766278.png "屏幕截图") + +* enabled 是否开启此功能 +* path 应用路径 + +## 使用方法 + +前端连接方式: `http://后端ip:端口/resource/sse?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` + +其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 + +`SseMessageUtils.sendMessage` 推送单机消息(特殊需求使用)
+`SseMessageUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
+`SseMessageUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
+`SseMessageUtils.publishAll` 群发消息给所有连接人
\ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md new file mode 100644 index 00000000..4778d0f9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md @@ -0,0 +1,30 @@ +# 对接 TOPIAM 单点登录 +- - - + +# 安装 TOPIAM 应用服务 + +参考 TOPIAM 官方文档安装 [TOPIAM安装部署](https://eiam.topiam.cn/docs/deployment/) + +# 配置 OIDC 应用 + +在 `登录 Redirect URI` 中填写 `http://localhost:80/oauth/callback?source=topiam` + +# 配置后端服务 + +找到框架 `application-环境.yml` 配置文件 + +修改 `topiam` 对应的 `client-id` 与 `client-secret` + +```yaml +justauth: + # 前端外网访问地址 + address: http://localhost:80 + type: + topiam: + # topiam 服务器地址,可在【应用配置信息】中找到 + server-url: http://127.0.0.1:1989/api/v1/authorize/y0q************spq***********8ol + client-id: 449c4*********937************759 + client-secret: ac7***********1e0************28d + redirect-uri: ${justauth.address}/social-callback?source=topiam + scopes: [openid] +``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md new file mode 100644 index 00000000..547b15ff --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md @@ -0,0 +1,34 @@ +# 翻译功能 +- - - +## 框架版本 >= 4.6.0 +## 注解 + +![输入图片说明](https://foruda.gitee.com/images/1675575648043199227/d04b3e21_1766278.png "屏幕截图") + +`@Translation` 翻译注解 用于实体类字段上
+`@TranslationType` 翻译类别注解 用于实现类上标注与 `@Translation` 注解相同的 `type` 类型 实现翻译功能 + + +## 用法说明 + +默认提供功能 `用户id转账号(用户名)` `部门id转名称` `字典type转label` `ossId转url` + +![输入图片说明](https://foruda.gitee.com/images/1675575977860232549/143b74f8_1766278.png "屏幕截图") + +用户名翻译(映射翻译) 根据另一个映射字段 翻译保存到此字段 + +![输入图片说明](https://foruda.gitee.com/images/1675576044011477847/13eb9f57_1766278.png "屏幕截图") + +ossUrl翻译(直接翻译) 直接根据此字段值翻译后替换此字段值 + +![输入图片说明](https://foruda.gitee.com/images/1675576265894720924/70792f66_1766278.png "屏幕截图") + +字典翻译(其他扩展条件翻译) 根据`other`条件 自行定义如何使用 例如字典翻译`other`条件就是字典的唯一值 + +![输入图片说明](https://foruda.gitee.com/images/1675576391012282823/f95c5d78_1766278.png "屏幕截图") + +## 自定义扩展 + +实现接口 `TranslationInterface` 标注注解 `@TranslationType` 可参考框架默认实现 + +![输入图片说明](https://foruda.gitee.com/images/1676735436673932715/c3caa8d7_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md new file mode 100644 index 00000000..9e74e1e3 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md @@ -0,0 +1,37 @@ +# WebSocket功能 +- - - + +## 框架版本 >= 5.1.0 + +## 配置说明(默认关闭 推送建议使用SSE) + +![输入图片说明](https://foruda.gitee.com/images/1688356273985385949/5e4d1de8_1766278.png "屏幕截图") + +* enabled 是否开启此功能 +* path 应用路径 +* allowedOrigins 设置访问源地址 + +**重点: 如关闭ws功能需连同前端ws开关一同关闭 不然前端启动会报错** + +![输入图片说明](https://foruda.gitee.com/images/1700644877512019497/052d2f46_1766278.png "屏幕截图") + +## 使用方法 + +前端连接方式: `ws://后端ip:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` + +**由于js不支持请求头传输故而采用参数传输 如支持请求头传输建议使用请求头传输** + +传输方式: +```js +headers: { + Authorization: "Bearer " + getToken(), + clientid: import.meta.env.VITE_APP_CLIENT_ID +} +``` + +其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 + +`WebSocketUtils.sendMessage` 推送单机消息(特殊需求使用)
+`WebSocketUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
+`WebSocketUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
+`WebSocketUtils.publishAll` 群发消息给所有连接人
\ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md new file mode 100644 index 00000000..329cce21 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md @@ -0,0 +1,61 @@ +# 目录结构 +- - - +v5.2.2 +~~~ +RuoYi-Vue-Plus +├─ ruoyi-admin // 管理模块 [8080,28080] +│ └─ RuoYiApplication // 启动类 +│ └─ RuoYiServletInitializer // 容器部署初始化类 +│ └─ resources // 资源文件 +│ └─ i18n/messages.properties // 国际化配置文件 +│ └─ application.yml // 框架总配置文件 +│ └─ application-dev.yml // 开发环境配置文件 +│ └─ application-prod.yml // 生产环境配置文件 +│ └─ banner.txt // 框架启动图标 +│ └─ logback-plus.xml // 日志配置文件 +│ └─ ip2region.xdb // IP区域地址库 +├─ ruoyi-extend // 扩展模块 +│ └─ ruoyi-monitor-admin // admin监控模块 [9090] +│ └─ ruoyi-snailjob-server // 任务调度中心模块 [8800,17888] +├─ ruoyi-common // 通用模块 +│ └─ ruoyi-common-bom // common依赖包管理 +│ └─ ruoyi-common-core // 核心模块 +│ └─ ruoyi-common-doc // 系统接口模块 +│ └─ ruoyi-common-encrypt // 数据加解密模块 +│ └─ ruoyi-common-excel // excel模块 +│ └─ ruoyi-common-idempotent // 幂等功能模块 +│ └─ ruoyi-common-job // 定时任务模块 +│ └─ ruoyi-common-json // 序列化模块 +│ └─ ruoyi-common-log // 日志模块 +│ └─ ruoyi-common-mail // 邮件模块 +│ └─ ruoyi-common-mybatis // 数据库模块 +│ └─ ruoyi-common-oss // oss服务模块 +│ └─ ruoyi-common-ratelimiter // 限流功能模块 +│ └─ ruoyi-common-redis // 缓存服务模块 +│ └─ ruoyi-common-satoken // satoken模块 +│ └─ ruoyi-common-security // 安全模块 +│ └─ ruoyi-common-sensitive // 脱敏模块 +│ └─ ruoyi-common-sms // 短信模块 +│ └─ ruoyi-common-social // 社交三方模块 +│ └─ ruoyi-common-sse // sse流推送模块 +│ └─ ruoyi-common-tenant // 租户模块 +│ └─ ruoyi-common-translation // 通用翻译模块 +│ └─ ruoyi-common-web // web模块 +│ └─ ruoyi-common-websocket // websocket服务集成模块 +├─ ruoyi-modules // 模块组 +│ └─ ruoyi-demo // 演示模块 +│ └─ ruoyi-generator // 代码生成模块 +│ └─ ruoyi-job // 任务调度服务 +│ └─ ruoyi-system // 业务模块 +│ └─ ruoyi-workflow // 工作流模块 +├─ plus-ui // 前端框架 [80] +├─ script // 系统脚本包 +│ └─ bin // 运行脚本包 +│ └─ docker // docker相关脚本 +│ └─ sql // sql脚本 +├─ .run // 执行脚本文件 +├─ .editorconfig // 编辑器编码格式配置 +├─ LICENSE // 开源协议 +├─ pom.xml // 公共依赖 +├─ README.md // 框架说明文件 +~~~ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md new file mode 100644 index 00000000..ff4de9ef --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md @@ -0,0 +1,127 @@ + +
+ +- - - +# 平台简介 +
+ +[![码云Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Vue-Plus) +[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Vue-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) +[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/master/LICENSE) +[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus) +
+[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-5.2.2-success.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus) +[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() +[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() +[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() + +> RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 `分布式集群与多租户` 场景全方位升级(不兼容原框架) + +> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
+活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 + +# 本框架与RuoYi的功能差异 + +| 功能 | 本框架 | RuoYi | +|-------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| +| 前端项目 | 采用 Vue3 + TS + ElementPlus 重写 | 基于Vue2/Vue3 + JS | +| 后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 | 模块相互注入耦合严重难以扩展 | +| 后端代码风格 | 严格遵守Alibaba规范与项目统一配置的代码格式化 | 代码书写与常规结构不同阅读障碍大 | +| Web容器 | 采用 Undertow 基于 XNIO 的高性能容器 | 采用 Tomcat | +| 权限认证 | 采用 Sa-Token、Jwt 静态使用功能齐全 低耦合 高扩展 | Spring Security 配置繁琐扩展性极差 | +| 权限注解 | 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验
角色与权限校验支持多种条件 如 `AND` `OR` 或 `权限 OR 角色` 等复杂表达式 | 只支持是否存在匹配 | +| 三方鉴权 | 采用 JustAuth 第三方登录组件 支持微信、钉钉等数十种三方认证 | 无 | +| 关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer
可同时使用异构切换(支持其他 mybatis-plus 支持的所有数据库 只需要增加jdbc依赖即可使用 达梦金仓等均有成功案例) | 支持 Mysql、Oracle 不支持同时使用、不支持异构切换 | +| 缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 | Redis 简单 get set 支持 | +| Redis客户端 | 采用 Redisson Redis官方推荐 基于Netty的客户端工具
支持Redis 90%以上的命令 底层优化规避很多不正确的用法 例如: keys被转换为scan
支持单机、哨兵、单主集群、多主集群等模式 | Lettuce + RedisTemplate 支持模式少 工具使用繁琐
连接池采用 common-pool Bug多经常性出问题 | +| 缓存注解 | 采用 Spring-Cache 注解 对其扩展了实现支持了更多功能
例如 过期时间 最大空闲时间 组最大长度等 只需一个注解即可完成数据自动缓存 | 需手动编写Redis代码逻辑 | +| ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多
例如多租户插件 分页插件 乐观锁插件等等 | 采用 Mybatis 基于XML需要手写SQL | +| SQL监控 | 采用 p6spy 可输出完整SQL与执行时间监控 | log输出 需手动拼接sql与参数无法快速查看调试问题 | +| 数据分页 | 采用 Mybatis-Plus 分页插件
框架对其进行了扩展 对象化分页对象 支持多种方式传参 支持前端多排序 复杂排序 | 采用 PageHelper 仅支持单查询分页 参数只能从param传 只能单排序 功能扩展性差 体验不好 | +| 数据权限 | 采用 Mybatis-Plus 插件 自行分析拼接SQL 无感式过滤
只需为Mapper设置好注解条件 支持多种自定义 不限于部门角色 | 采用 注解+aop 实现 基于部门角色 生成的sql兼容性差 不支持其他业务扩展
生成sql后需手动拼接到具体业务sql上 对于多个Mapper查询不起作用 | +| 数据脱敏 | 采用 注解 + jackson 序列化期间脱敏 支持不同模块不同的脱敏条件
支持多种策略 如身份证、手机号、地址、邮箱、银行卡等 可自行扩展 | 无 | +| 数据加解密 | 采用 注解 + mybatis 拦截器 对存取数据期间自动加解密
支持多种策略 如BASE64、AES、RSA、SM2、SM4等 | 无 | +| 接口传输加密 | 采用 动态 AES + RSA 加密请求 body 每一次请求秘钥都不同大幅度降低可破解性 | 无 | +| 数据翻译 | 采用 注解 + jackson 序列化期间动态修改数据 数据进行翻译
支持多种模式: `映射翻译` `直接翻译` `其他扩展条件翻译` 接口化两步即可完成自定义扩展 内置多种翻译实现 | 无 | +| 多数据源框架 | 采用 dynamic-datasource 支持市面大部分数据库
通过yml配置即可动态管理异构不同种类的数据库 也可通过前端页面添加数据源
支持spel表达式从请求头参数等条件切换数据源 | 基于 druid 手动编写代码配置数据源 配置繁琐 支持性差 | +| 多数据源事务 | 采用 dynamic-datasource 支持多数据源不同种类的数据库事务回滚 | 不支持 | +| 数据库连接池 | 采用 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下 | 采用 druid bug众多 社区维护差 活跃度低 配置众多繁琐性能一般 | +| 数据库主键 | 采用 雪花ID 基于时间戳的 有序增长 唯一ID 再也不用为分库分表 数据合并主键冲突重复而发愁 | 采用 数据库自增ID 支持数据量有限 不支持多数据源主键唯一 | +| WebSocket协议 | 基于 Spring 封装的 WebSocket 协议 扩展了Token鉴权与分布式会话同步 不再只是基于单机的废物 | 无 | +| SSE推送 | 采用 Spring SSE 实现 扩展了Token鉴权与分布式会话同步 | 无 | +| 序列化 | 采用 Jackson Spring官方内置序列化 靠谱!!! | 采用 fastjson bugjson 远近闻名 | +| 分布式幂等 | 参考美团GTIS防重系统简化实现(细节可看文档) | 手动编写注解基于aop实现 | +| 分布式锁 | 采用 Lock4j 底层基于 Redisson | 无 | +| 分布式任务调度 | 采用 SnailJob 天生支持分布式 统一的管理中心 支持多种数据库 支持分片重试DAG任务流等 | 采用 Quartz 基于数据库锁性能差 集群需要做很多配置与改造 | +| 文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储
支持权限管理 安全可靠 文件可加密存储 | 采用 本机文件存储 文件裸漏 易丢失泄漏 不支持集群有单点效应 | +| 云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 | 不支持 | +| 短信 | 采用 sms4j 短信融合包 支持数十种短信厂家 只需在yml配置好厂家密钥即可使用 可多厂家共用 | 不支持 | +| 邮件 | 采用 mail-api 通用协议支持大部分邮件厂商 | 不支持 | +| 接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释
只需把注释写好 无需再写一大堆的文档注解了 | 采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成 | +| 校验框架 | 采用 Validation 支持注解与工具类校验 注解支持国际化 | 仅支持注解 且注解不支持国际化 | +| Excel框架 | 采用 Alibaba EasyExcel 基于插件化
框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等 | 基于 POI 手写实现 功能有限 复杂 扩展性差 | +| 工作流支持 | 支持各种复杂审批 转办 委派 加减签 会签 或签 票签 等功能 | 无 | +| 工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 | 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等 | +| 监控框架 | 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
实时监控服务状态 框架还为其扩展了在线日志查看监控 | 无 | +| 链路追踪 | 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
用了它即可实时查看请求经过的每一处每一个节点 | 无 | +| 代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面
降低80%的开发量 把精力都投入到业务设计上
框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 | 代码生成原生结构 只支持单数据源生成 | +| 部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 | 原生jar部署 其他环境需手动下载安装 自行搭建 | +| 项目路径修改 | 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 | 需要做很多改造 文档说明有限 | +| 国际化 | 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 | 只提供基础功能 其他需自行编写扩展 | +| 代码单例测试 | 提供单例测试 使用方式编写方法与maven多环境单测插件 | 只提供基础功能 其他需自行编写扩展 | +| Demo案例 | 提供框架功能的实际使用案例 单独一个模块提供了很多很全 | 无 | + + +## 本框架与RuoYi的业务差异 + +| 业务 | 功能说明 | 本框架 | RuoYi | +|--------|----------------------------------------------------------------------|-----|------------------| +| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | +| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | +| 客户端管理 | 系统内对接的所有客户端管理 如: pc端、小程序端等
支持动态授权登录方式 如: 短信登录、密码登录等 支持动态控制token时效 | 支持 | 无 | +| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | +| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | +| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | +| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | +| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | +| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | +| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | +| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | +| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | +| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | +| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | +| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | +| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | +| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | +| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | +| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | +| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | +| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | +| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | +| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | + + +## 演示图例 + +| | | +|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| +| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | +| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md new file mode 100644 index 00000000..73a6dbc4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md @@ -0,0 +1,67 @@ +# 4.X项目初始化 +- - - +### 项目分支说明 +`4.X` 主分支 4.X版本 稳定发布分支
+`fast` 单体分支 功能与主分支相同 结构为单模块
+`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
+`future/*` 新功能预览分支
+ +### 项目必备环境 +> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 +* oracle jdk 8 11 (暂时不支持 17 不支持大于 jdk8_202 因为202是最后一个免费版本) +* mysql 5.7 8.0 (5.6未适配可能会有问题) +* oracle 11g 12c +* postgres 13 14 +* sqlserver 2017 2019 +* redis 5.X 6.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/tporadowski/redis)) +* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 +* maven 3.6.3 3.8.X +* nodejs >= 12 < 18 +* npm 6.X 8.X (7.X确认有问题) + +### 3.2.0及以上 只需勾选对应环境即可 +![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") + +### 默认 `JDK1.8` 如有变动 需更改以下配置 + +![输入图片说明](https://foruda.gitee.com/images/1681017282888708602/09da902f_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1681017287160367631/3a033268_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1681017292933832275/0bdf875e_1766278.png "屏幕截图") + +### sql导入 + +请按照以下顺序依次导入 + +![输入图片说明](https://foruda.gitee.com/images/1681017239000759855/ad43a5b2_1766278.png "屏幕截图") + +默认为 `mysql` 其他数据库需导入对应的sql文件 + +![输入图片说明](https://foruda.gitee.com/images/1681017245687923510/1b444bc4_1766278.png "屏幕截图") + +**多数据库仅支持主应用 扩展应用需自行适配(例如: xxl-job仅支持mysql)** + +### 服务启动顺序说明 + +1. 必须启动基础建设: mysql redis admin
+2. 可选启动基础建设: minio(影响文件上传) monitor(影响监控) xxljob(影响定时任务)
+ +![输入图片说明](https://foruda.gitee.com/images/1678976302776168895/7333341c_1766278.png "屏幕截图") + +* `MonitorAdminApplication` 为 Admin监控服务(非必要 可参考对应文档关闭) +* `XxlJobAdminApplication` 为 任务调度中心服务(非必要 可参考对应文档关闭) +* `RuoYiApplication` 为 主应用服务 +> 需优先启动 `MonitorAdminApplication` 与 `XxlJobAdminApplication` 具体配置方式参考对应文档 +> 最后启动 主服务 `RuoYiApplication` + +### 主服务配置方式 + +在勾选对应环境的配置文件内 填写 mysql 与 redis 配置信息 + +![输入图片说明](https://foruda.gitee.com/images/1678941357316005626/70559736_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1681017185596156350/d4607b5b_1766278.png "屏幕截图") + +其他数据库配置 按照系统自带的配置更改即可 + +![输入图片说明](https://foruda.gitee.com/images/1678941444707120259/b274592a_1766278.png "屏幕截图") + + diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md new file mode 100644 index 00000000..a966adad --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md @@ -0,0 +1,5 @@ +### 视频讲解 + +[RuoYi-Vue-Plus 5.0.0 新功能与变更介绍](https://www.bilibili.com/video/BV1Us4y1m7ky/) + +[RuoYi-Vue-Plus 5.1.0 新功能与变更介绍](https://www.bilibili.com/video/BV1fj411y71X/) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md new file mode 100644 index 00000000..0a317a83 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md @@ -0,0 +1,32 @@ +# 搭建Admin监控 +- - - +### 配置监控客户端 + +> 修改主服务配置文件 + +![输入图片说明](https://foruda.gitee.com/images/1678941504260707700/68ab99e5_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `url` 为监控中心地址 +* `username 与 password` 为监控中心的账号密码 + +### 启用监控中心 +在 `扩展项目 -> 监控模块` 启动 + +![输入图片说明](https://foruda.gitee.com/images/1678976327174539378/df97e36e_1766278.png "屏幕截图") + +在监控模块对应的 `yml` 配置文件 可设置登录的账号密码与访问路径 + +![输入图片说明](https://foruda.gitee.com/images/1678941572583282843/28117457_1766278.png "屏幕截图") + +### 前端修改admin监控访问路径 +`dev`环境 默认使用 `.env.development` 配置文件内地址 + +![输入图片说明](https://foruda.gitee.com/images/1678941607472644388/460e8eea_1766278.png "屏幕截图") + +`prod`环境 使用 `.env.production` 本机路由 + +![输入图片说明](https://foruda.gitee.com/images/1678941644784144830/6293ab1c_1766278.png "屏幕截图") +故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1678981483900657668/31fd1aad_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md new file mode 100644 index 00000000..37e184c4 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md @@ -0,0 +1,126 @@ +# 应用部署 +- - - +## 版本 >= 4.3.0 + +### 请优先阅读 [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) + +## 手动部署 + +在服务器安装 `mysql` `redis` `nginx` `minio` + +将项目内 `script/docker/nginx/nginx.conf` 配置文件 复制到 `nginx` 配置内
+将项目内 `script/docker/redis/redis.conf` 配置文件 复制到 `redis` 配置内 + +并修改相关参数如 `前端页面存放位置` `后端Ip地址` 等使其生效 + +jar包部署后端服务 打包命令如下 + +3.2.0及以上 +```mvn +mvn clean package -D maven.test.skip=true -P prod +``` +服务器需创建临时文件存储目录与配置文件对应(无此目录上传文件会报错) + +![输入图片说明](https://foruda.gitee.com/images/1659951373949149804/屏幕截图.png "屏幕截图.png") + +前端参考下方前端部署章节 + +## 部署视频 + +[RuoYi-Vue-Plus 5.0 生产环境搭建部署](https://www.bilibili.com/video/BV1mL411e7ha/) + +## docker 后端部署 + +### 请优先阅读 [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) + +**重点: 一知半解的必看** +> [docker安装](https://lionli.blog.csdn.net/article/details/83153029)
+> [docker-compose安装](https://lionli.blog.csdn.net/article/details/111220320)
+> [docker网络模式讲解](https://lionli.blog.csdn.net/article/details/109603785)
+> [docker 开启端口 2375 供外部程序访问](https://lionli.blog.csdn.net/article/details/92627962) + +### 将配置使用FTP上传到根目录 +idea拖拽文件到远程目录即可上传 + +![输入图片说明](https://foruda.gitee.com/images/1662109450908169859/eaac9299_1766278.png "屏幕截图") + +### 给docker分配文件夹权限 +**重点注意: 一定要确保目录 `/docker` 及其所有子目录 具有写权限 如果后续出现权限异常问题 重新执行一遍分配权限** + +![输入图片说明](https://foruda.gitee.com/images/1662109847279259882/3a2202c1_1766278.png "屏幕截图") +```shell +chmod -R 777 /docker +``` +### 构建应用镜像 + +**1.需要先使用maven打包成jar包** + +![输入图片说明](https://foruda.gitee.com/images/1662110477410977621/c6931c42_1766278.png "屏幕截图") + +**2.执行构建** +> 项目初始化后会自动生成构建镜像的运行配置
+> 配置好docker连接之后 运行如下即可构建对应的应用镜像 + +**重点注意: idea2024及以上版本要求必须在本地安装docker才可以执行如下操作** + +![输入图片说明](https://foruda.gitee.com/images/1662110192257483752/0f754b47_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1662120004773449909/9fdef59c_1766278.png "屏幕截图") + +**3.结构讲解** +右键编辑 即可看到内部配置 + +![输入图片说明](https://foruda.gitee.com/images/1662458355500139498/eaa26036_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1662458446794722159/32c086a7_1766278.png "屏幕截图") + + +### 创建基础服务 + +```shell +docker-compose up -d mysql nginx-web redis minio +``` + +### 创建业务服务(需要先构建服务镜像) + +4.X +```shell +docker-compose up -d ruoyi-monitor-admin ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 +``` + +5.X +```shell +docker-compose up -d ruoyi-monitor-admin ruoyi-snailjob-server ruoyi-server1 ruoyi-server2 +``` + +### docker其他操作(idea的docker插件 推荐使用) +![输入图片说明](https://foruda.gitee.com/images/1662458271941863770/cd180a04_1766278.png "屏幕截图") + +## 前端部署 + +执行打包命令 +```shell +# 打包正式环境 +npm run build:prod +``` +打包后生成打包文件在 `ruoyi-ui/dist` 目录 +将 `dist` 目录下文件(不包含 `dist` 目录) 上传到部署服务器 `docker/nginx/html` 目录下(手动部署放入自己配置的路径即可) + +![输入图片说明](https://foruda.gitee.com/images/1662110914769648699/07f344c4_1766278.png "屏幕截图") + +重启 `nginx` 服务即可 + + +### 如需更改后端代理路径或者后端ip地址的话往下看 + +更改`nginx.conf`配置文件代理路径(注意: /开头/结尾) + +![输入图片说明](https://foruda.gitee.com/images/1660185698211067202/屏幕截图.png "屏幕截图.png") + +更改前端`.env.环境` 文件内的 `VITE_APP_BASE_API` + +![输入图片说明](https://foruda.gitee.com/images/1724318035232137124/5d035a09_1766278.png "屏幕截图") + +更改`nginx.conf`配置文件后端ip地址 + +![输入图片说明](https://foruda.gitee.com/images/1660185711265558730/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md new file mode 100644 index 00000000..0c6f33ac --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md @@ -0,0 +1,49 @@ +# 基于 RuoYi-Vue-Plus 的扩展项目列表 +- - - +### 精品PR 欢迎投稿 +| 功能介绍 | PR地址 | +|-------------------------------------|------------------------------------------------------| +| 拖拽图片调整显示顺序 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/173 | +| 增加Jasypt加密库对配置文件加密 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/177 | +| 使用富文本wangeditor5替换Quill | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/213 | +| 集成screw数据库文档功能模块 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/42 | +| Excel导入模板增加批注支持 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/222 | +| 压缩包处理工具 支持本地文件/目录+oss文件/网络文件混合 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/44 | +| 添加websocket模块 支持satoken鉴权 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/65 | +| 数据库字段加解密(支持 base64 aes rsa sm2 sm4) | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/274 | +| 增加liquibase迁移数据库 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/299 | +| 增加OSS模块支持本地环境 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/353 | +| 扩展模块独立集成flyway | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/439 | +| 扩展模块独立集成go-view大屏看板 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/445 | +| 基于AmazonS3协议的分片上传 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/130 | +| 扩展forest http客户端 声明式http请求 二次封装像工具类 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/547 | +| 增加短链接生成工具 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/515 | +| 新增oss预签名上传工具组合使用异步客户端分片 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/522 | +| 新增规则引擎LiteFlow,SQL持久化接入,支持可视化页面 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/552 | +| 一键部署到私有Nexus仓库 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/181 | +| 服务状态监控发送邮件钉钉等 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/568 | +| 登录验证支持2FA验证 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/578 | + +### 项目介绍+项目地址 欢迎投稿 + + +| 项目介绍 | 项目地址 | +|--------------------------------|---------------------------------------------------------------------------| +| 微服务扩展 | https://gitee.com/dromara/RuoYi-Cloud-Plus | +| Plus学习笔记 | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-vue-plus/home | +| 基于uniapp+TmUI从0开发 支持H5/小程序/安卓 | https://gitee.com/dapppp/ruoyi-plus-miniapp | +| 基于RuoYi-App框架二次修改使用Uniapp+Vue3 | https://gitee.com/wangying110166/ruo-yi-uni-app-plus | +| 基于RuoYi-App框架对接Plus后端 | https://gitee.com/FnTop/RuoYi-App-Plus | +| 基于vben(ant-design-vue)前端项目 | https://gitee.com/dapppp/ruoyi-plus-vben | +| 基于vue-next-admin的vue3+ts前端 | https://gitee.com/thiszhc/RuoYi-Vue3-UI | +| 集成GoView版本 | https://gitee.com/kdwqjwgqxx/RuoYi-Vue-Plus-GoView | +| mybatis-flex版本 | https://gitee.com/dataprince/ruoyi-flex | +| blog博客系统 | https://gitee.com/kalashok-pan/zhi-blog-plus | +| tdengine时序数据库扩展 | https://gitee.com/zhangbg/ruoyi-plus-tdengine | +| 重构项目结构(参考springboot源码) | https://gitee.com/denghuafeng/ruoyi-boot-plus | +| Activiti扩展 | https://gitee.com/sgs98/RuoYi-Vue-Plus-Activiti | +| flowable扩展 | https://gitee.com/sgs98/RuoYi-Vue-Plus-Flowable | +| flowable扩展 | https://gitee.com/KonBAI-Q/ruoyi-flowable-plus | +| mybatis-flex版本 | https://gitee.com/yhan219/ruoyi-vue-flex | +| weblog博客系统 | https://gitee.com/fu-zhanshuai/fzshuai-weblog | +| Annlcc博客 | https://gitee.com/ahcode/ann-blog-plus | \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md new file mode 100644 index 00000000..5995e0ff --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md @@ -0,0 +1,50 @@ +# idea环境配置 +- - - +## 配置项目编码 +![输入图片说明](https://foruda.gitee.com/images/1662107706295343419/e27065a9_1766278.png "屏幕截图") + +## 配置运行看板 +![输入图片说明](https://foruda.gitee.com/images/1662108673306567278/8af97b47_1766278.png "屏幕截图") +### 配置spring与docker看板 +![输入图片说明](https://foruda.gitee.com/images/1662111392476935892/6b6760fb_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1662108865191892425/3c045999_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1662108877322329668/ddb6d93d_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1662108894122798039/6a53a38c_1766278.png "屏幕截图") + +## 配置服务器SSH连接 +进入 `Settings -> Tools -> SSH Configurations` 点击加号创建SSH连接配置
+填写 服务器IP 用户名 密码 端口号 点击 Test Connection 测试连接 + +![输入图片说明](https://foruda.gitee.com/images/1662107776533098115/bd78467b_1766278.png "屏幕截图") + +使用Terminal 工具 点击箭头找到上方创建的SSH连接配置
+选择即可进入SSH连接界面 在这里可以对服务器进行命令操作 + +![输入图片说明](https://foruda.gitee.com/images/1662108010120640495/c70f9f9a_1766278.png "屏幕截图") + +## 配置服务器FTP连接 +进入 `Settings -> Build-> Deployment` 点击加号 选择SFTP 创建 FTP 连接配置
+选择之前创建好的SSH配置 点击 Test Connection 测试连接 + +![输入图片说明](https://foruda.gitee.com/images/1662107899553257979/e2eeb7fd_1766278.png "屏幕截图") + +在IDEA上方工具栏 找到 `Tools -> Deployment -> Browse Remote Host` 打开远程界面
+点击箭头找到我们上方配置的SFTP连接配置 即可连接到服务器的文件目录 + +![输入图片说明](https://foruda.gitee.com/images/1662107974682787233/b8a601fd_1766278.png "屏幕截图") + +## 配置Docker连接 +### 可操作远程docker与构建上传docker镜像(代替原来maven docker插件) +tcp连接需要开放服务器2375端口
+ssh需要使用上方的SSH连接配置
+建议使用SSH连接 + +![输入图片说明](https://foruda.gitee.com/images/1662108188005932060/75872bf8_1766278.png "屏幕截图") + +配置好之后 在运行窗口会多出一个Docker图标 双击即可连接远程docker
+可以查看容器实时日志 启动 重启 停止 等操作 + +![输入图片说明](https://foruda.gitee.com/images/1662108250902891875/b82d022b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md new file mode 100644 index 00000000..dba09058 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md @@ -0,0 +1,73 @@ +# 5.X项目初始化 +- - - +### 项目分支说明 + +`5.X` 主分支 5.X版本 稳定发布分支
+`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
+`future/*` 新功能预览分支
+ +### 项目必备环境 +> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 + +**注意: 禁止使用 `oraclejdk`(由于spring的bug导致打包运行会报错)** + +**Spring官方推荐使用JDK https://bell-sw.com/pages/downloads/** + +![输入图片说明](https://foruda.gitee.com/images/1720080025744223375/0213a652_1766278.png "屏幕截图") + +* openjdk-17/21 或 graalvm-community-jdk-17/21 [下载地址](https://github.com/graalvm/graalvm-ce-builds/releases) 版本 +* mysql 5.7 8.0 (其他版本未测试 如其他版本没问题 可以告知咱们) +* oracle >= 12c (其他版本未测试 如其他版本没问题 可以告知咱们) +* postgres 13 14 (其他版本未测试 如其他版本没问题 可以告知咱们) +* sqlserver 2017 2019 (其他版本未测试 如其他版本没问题 可以告知咱们) +* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) +* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 +* maven >= 3.8.X +* nodejs >= 18.18 (其他版本未测试 如其他版本没问题 可以告知咱们) +* npm >= 8.X (7.X确认有问题) +* idea 2022 2024 (一定不要使用2023后果自负 bug太多影响项目开发) + +### 搭建视频 + +[RuoYi-Vue-Plus 5.0 搭建与运行](https://www.bilibili.com/video/BV1Fg4y137JK/) + +### 勾选maven对应环境 +![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") + +### 默认 `JDK17` 如有变动 需更改以下配置 + +![输入图片说明](https://foruda.gitee.com/images/1678941027820943505/c688e01e_1766278.png "屏幕截图") +![输入图片说明](https://foruda.gitee.com/images/1678941120518807034/4d56fcc9_1766278.png "屏幕截图") + +### sql导入 + +请按照以下顺序依次导入 默认为 `mysql` 其他数据库需导入对应的sql文件
+如需使用其他数据库 看这里 => [多数据库数据源](../framework/extend/dynamic_datasource.md)
+ +![输入图片说明](https://foruda.gitee.com/images/1725853192789853346/a0d3f0b7_1766278.png "屏幕截图") + +### 服务启动顺序说明 + +1. 必须启动基础建设: mysql redis admin
+2. 可选启动基础建设: minio(影响文件上传) monitor(影响监控) snailjob(影响定时任务)
+ +![输入图片说明](https://foruda.gitee.com/images/1716175484919688429/8b9a79b7_1766278.png "屏幕截图") + +* `MonitorAdminApplication` 为 Admin监控服务(非必要 可参考对应文档关闭 [搭建Admin监控](/ruoyi-vue-plus/quickstart/admin_init.md)) +* `SnailJobServerApplication` 为 任务调度中心服务(非必要 可参考对应文档关闭 [搭建调度中心](/ruoyi-vue-plus/quickstart/snail_job_init.md)) +* `DromaraApplication` 为 主应用服务 +> 需优先启动 `MonitorAdminApplication` 与 `SnailJobServerApplication` 具体配置方式参考对应文档
+> 最后启动 主服务 `DromaraApplication`
+> 工作流相关初始化使用 [工作流初始化](/ruoyi-vue-plus/quickstart/worker_init.md) + +### 主服务配置方式 + +在勾选对应环境的配置文件内 填写 mysql 与 redis 配置信息 + +![输入图片说明](https://foruda.gitee.com/images/1678941357316005626/70559736_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1678941405169571070/0d06a955_1766278.png "屏幕截图") + +其他数据库配置 按照系统自带的配置更改即可 + +![输入图片说明](https://foruda.gitee.com/images/1678941444707120259/b274592a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md new file mode 100644 index 00000000..863971b1 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md @@ -0,0 +1,48 @@ +# 搭建PowerJob任务调度中心(5.X分支已废弃) +- - - +### 废弃原因 + +接到大量投诉 使用困难 用法诡异 各种问题等 + +### 配置调度中心客户端 +> 修改主服务配置文件 +> + +![输入图片说明](https://foruda.gitee.com/images/1687656939847353725/951c1af7_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1687335574708412835/41d6c9d7_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `server-address` 为调度中心地址 +* `app-name` 为执行器组账户名(需在调度中心注册方可登录查看) + +### 启用调度中心 +**需执行 powerjob.sql 默认账号密码 `ruoyi-worker` `123456` 账号在数据库里 可以在页面修改密码** +
+ +![输入图片说明](https://foruda.gitee.com/images/1688634469876143273/c89455c0_1766278.png "屏幕截图") + +> 在 `扩展项目 -> powerjob-server模块` 启动 +> +![输入图片说明](https://foruda.gitee.com/images/1687335752250147336/17abe410_1766278.png "屏幕截图") + +> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-powerjob-server服务的配置文件**) +> +![输入图片说明](https://foruda.gitee.com/images/1687335802095066722/569d92be_1766278.png "屏幕截图") + +> 也可配置邮件发送 钉钉推送 和 mongodb存储 +> +![输入图片说明](https://foruda.gitee.com/images/1687335842722317559/f875c07a_1766278.png "屏幕截图") + +### 前端修改任务调度中心访问路径 +`dev`环境 默认使用 `.env.development` 配置文件内地址 + +![输入图片说明](https://foruda.gitee.com/images/1687335909698376722/7efa7539_1766278.png "屏幕截图") + +`prod`环境 使用 `.env.production` 本机路由 + +![输入图片说明](https://foruda.gitee.com/images/1687335937599399056/dd769ef5_1766278.png "屏幕截图") + +故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1687335979933648639/6a43b749_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md new file mode 100644 index 00000000..4c6d353b --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md @@ -0,0 +1,52 @@ +# 搭建SnailJob任务调度中心(5.2.0新功能) +- - - + +### 视频介绍 + +[Snail job任务调度中心:轻松掌握任务管理、重试机制和任务编排](https://www.bilibili.com/video/BV19i421m7GL/) + +### 配置调度中心客户端 +> 修改主服务配置文件 +> + +![输入图片说明](https://foruda.gitee.com/images/1687656939847353725/951c1af7_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1716174758437043952/de28db71_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `server.address` 为调度中心地址 +* `server.port` 为调度中心通信端口 +* `token` 为组通信校验token(可在调度中心组配置更换) +* `group-name` 为执行器组 +* `namespace` 作用域(不同作用域相互隔离请勿填错) + +### 启用调度中心 +**需执行 snail_job.sql 默认账号密码 `admin` `admin` 账号在数据库里 可以在页面修改密码** +
+ +![输入图片说明](https://foruda.gitee.com/images/1714355875395308961/adc21668_1766278.png "屏幕截图") + +> 在 `ruoyi-extend -> ruoyi-snailjob-server` 模块启动 +> +![输入图片说明](https://foruda.gitee.com/images/1716174842485474283/78cec86d_1766278.png "屏幕截图") + +> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-snailjob-server服务的配置文件 支持多种不同数据库**) +> +![输入图片说明](https://foruda.gitee.com/images/1714356048711590477/13289085_1766278.png "屏幕截图") + +### 快速入门 + +[Snailjob快速入门 基本使用介绍](https://juejin.cn/post/7412955032092442675) + +### 前端修改任务调度中心访问路径 +`dev`环境 默认使用 `.env.development` 配置文件内地址 + +![输入图片说明](https://foruda.gitee.com/images/1716174933143893408/58d47bbc_1766278.png "屏幕截图") + +`prod`环境 使用 `.env.production` 本机路由 + +![输入图片说明](https://foruda.gitee.com/images/1716174973454805690/0d6f20fb_1766278.png "屏幕截图") + +故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1716174998979181179/2f9e4e4a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md new file mode 100644 index 00000000..da09117a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md @@ -0,0 +1,43 @@ +# 工作流初始化 +- - - + +### 工作流使用及配置方式 + +1.找到项目中script下bpmn文件夹 + +![输入图片说明](https://foruda.gitee.com/images/1714211764058540441/5c8b97af_5363069.png "屏幕截图") + +2.启动项目找到流程定义通过**部署流程文件**将bpmn文件夹下**模型.zip**上传 + +![输入图片说明](https://foruda.gitee.com/images/1714211950485333575/1e2b3ff4_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212113004821592/96586e69_5363069.png "屏幕截图") + +3.导入**模型.zip**后将会出现以下列表,默认使用**leave1**,test_leave为请假申请表名称 + +![输入图片说明](https://foruda.gitee.com/images/1714212222766335759/1227bbd6_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212493602552742/9e0258b1_5363069.png "屏幕截图") + +**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** + +![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") + + +4.新增一条请假申请,提交后将会得到如下信息 + +![输入图片说明](https://foruda.gitee.com/images/1714212617432902105/3609f6ef_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212630860787365/2922d38e_5363069.png "屏幕截图") + +5.关于如何切换一个新的流程使用,当前默认使用得KEY为leave1 ,我们切换到leave2使用,我们只需点击绑定业务将表名绑定,重新发起一个新的请假申请就可以得到一个新的流程信息 + +![输入图片说明](https://foruda.gitee.com/images/1714212876442323110/4554ea95_5363069.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714213037864274694/613149f5_5363069.png "屏幕截图") + +**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** + +![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") + +![输入图片说明](https://foruda.gitee.com/images/1714212963457174382/add768db_5363069.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md new file mode 100644 index 00000000..f2751e9f --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md @@ -0,0 +1,43 @@ +# 搭建Xxl-Job任务调度中心(5.X分支已废弃) +- - - +### 废弃原因 + +长时间不维护 社区冰点 不支持jdk17 不支持boot3 不支持其他数据库等 + +### 配置调度中心客户端 +> 修改主服务配置文件 +> +![输入图片说明](https://foruda.gitee.com/images/1678941760168414366/b81e023b_1766278.png "屏幕截图") + +* `enabled` 可启用或关闭客户端注册 +* `admin-addresses` 为调度中心地址 +* `access-token` 为调度中心交互鉴权token +* `executor` 为执行器配置 一个客户端为一个执行器 可配置执行器集群 使用分片任务处理 + +### 启用调度中心 +**默认账号密码 `admin` `123456` 账号在数据库里 可以在页面修改密码** + +> 在 `扩展项目 -> xxl-job-admin模块` 启动 +> +![输入图片说明](https://foruda.gitee.com/images/1678976353500205883/058fef13_1766278.png "屏幕截图") + +> 需修改配置文件数据库连接地址(**注意: 此处为xxl-job-admin服务的配置文件**) +> +![输入图片说明](https://foruda.gitee.com/images/1678941813423551656/04c32a5b_1766278.png "屏幕截图") + +> 也可配置邮件发送 +> +![输入图片说明](https://foruda.gitee.com/images/1678941825447455298/1baa5e43_1766278.png "屏幕截图") + +### 前端修改任务调度中心访问路径 +`dev`环境 默认使用 `.env.development` 配置文件内地址 + +![输入图片说明](https://foruda.gitee.com/images/1678976378255854583/8cdbf4e3_1766278.png "屏幕截图") + +`prod`环境 使用 `.env.production` 本机路由 + +![输入图片说明](https://foruda.gitee.com/images/1678976382819019066/96288331_1766278.png "屏幕截图") + +故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 + +![输入图片说明](https://foruda.gitee.com/images/1678976386764602366/55894f85_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/static/css/vue.css b/ruoyi-admin/src/main/resources/static/static/css/vue.css new file mode 100644 index 00000000..847f385a --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/css/vue.css @@ -0,0 +1 @@ +@import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}img.emoji{height:1.2em}img.emoji,span.emoji{vertical-align:middle}span.emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1.2em}.progress{background-color:#42b983;background-color:var(--theme-color,#42b983);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:999999}.search .search-keyword,.search a:hover{color:#42b983;color:var(--theme-color,#42b983)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}li input[type=checkbox]{margin:0 .2em .25em 0;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:10}.app-nav.no-badge{margin-right:25px}.app-nav p{margin:0}.app-nav>a{margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#42b983;color:var(--theme-color,#42b983)}.app-nav a.active{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983)}.app-nav li{display:inline-block;margin:0 1rem;padding:5px 0;position:relative;cursor:pointer}.app-nav li ul{background-color:#fff;border:1px solid;border-color:#ddd #ddd #ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:1rem;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner:hover .octo-arm{animation:octocat-wave .56s ease-in-out}.github-corner svg{color:#fff;fill:#42b983;fill:var(--theme-color,#42b983);height:80px;width:80px}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;position:absolute;top:0;bottom:0;left:0;transition:transform .25s ease-out;width:300px;z-index:20}.sidebar>h1{margin:0 auto 1rem;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0 0 0 15px;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53.3%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53.3%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;position:absolute;bottom:0;left:0;text-align:center;transition:opacity .3s;width:284px;z-index:30;cursor:pointer}.sidebar-toggle:hover .sidebar-toggle-button{opacity:.4}.sidebar-toggle span{background-color:#42b983;background-color:var(--theme-color,#42b983);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;position:absolute;top:0;right:0;bottom:0;left:300px;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:80%;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee;width:1px;min-width:100%}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;height:20px;width:20px;text-align:center;top:14px}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#34495e}.markdown-section p.warn{background:rgba(66,185,131,.1);border-radius:2px;padding:1rem}.markdown-section ul.task-list>li{list-style-type:none}body.close .sidebar{transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;min-height:100vh;overflow-x:hidden}.sidebar{left:-300px;transition:transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:transform .25s ease}.app-nav,.github-corner{transition:transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave .56s ease-in-out}}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}section.cover{position:relative;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;min-height:100vh;width:100%;display:none}section.cover.show{display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;bottom:0;width:100%}section.cover .cover-main{flex:1;margin:0 16px;text-align:center;position:relative}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:2.5rem;font-weight:300;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-.4375rem;font-size:1rem;position:absolute}section.cover blockquote{font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-radius:2rem;border:1px solid #42b983;border-color:var(--theme-color,#42b983);box-sizing:border-box;color:#42b983;color:var(--theme-color,#42b983);display:inline-block;font-size:1.05rem;letter-spacing:.1rem;margin:.5rem 1rem;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#42b983;background-color:var(--theme-color,#42b983);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983);transition:color .3s}section.cover blockquote>p>a:hover{color:#42b983;color:var(--theme-color,#42b983)}.sidebar,body{background-color:#fff}.sidebar{color:#364149}.sidebar li{margin:6px 0}.sidebar ul li a{color:#505d6b;font-size:14px;font-weight:400;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{border-right:2px solid;color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.app-sub-sidebar li:before{content:"-";padding-right:4px;float:left}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#2c3e50;font-weight:600}.markdown-section a{color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.markdown-section h1{font-size:2rem;margin:0 0 1rem}.markdown-section h2{font-size:1.75rem;margin:45px 0 .8rem}.markdown-section h3{font-size:1.5rem;margin:40px 0 .6rem}.markdown-section h4{font-size:1.25rem}.markdown-section h5{font-size:1rem}.markdown-section h6{color:#777;font-size:1rem}.markdown-section figure,.markdown-section p{margin:1.2em 0}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:1.6rem;word-spacing:.05rem}.markdown-section ol,.markdown-section ul{padding-left:1.5rem}.markdown-section blockquote{border-left:4px solid #42b983;border-left:4px solid var(--theme-color,#42b983);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code,.markdown-section output:after,.markdown-section pre{font-family:Roboto Mono,Monaco,courier,monospace}.markdown-section code,.markdown-section pre{background-color:#f8f8f8}.markdown-section output,.markdown-section pre{margin:1.2em 0;position:relative}.markdown-section output,.markdown-section pre>code{border-radius:2px;display:block}.markdown-section output:after,.markdown-section pre>code{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial}.markdown-section code{border-radius:2px;color:#e96900;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-section>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code{font-size:.8rem}.markdown-section pre{padding:0 1.4rem;line-height:1.5rem;overflow:auto;word-wrap:normal}.markdown-section pre>code{color:#525252;font-size:.8rem;padding:2.2em 5px;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;white-space:inherit}.markdown-section output{padding:1.7rem 1.4rem;border:1px dotted #ccc}.markdown-section output>:first-child{margin-top:0}.markdown-section output>:last-child{margin-bottom:0}.markdown-section code:after,.markdown-section code:before,.markdown-section output:after,.markdown-section output:before{letter-spacing:.05rem}.markdown-section output:after,.markdown-section pre:after{color:#ccc;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0;content:attr(data-lang)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#42b983;color:var(--theme-color,#42b983)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#42b983;color:var(--theme-color,#42b983)}.token.function,.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:1.5rem;position:relative;left:auto} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/image/favicon.ico b/ruoyi-admin/src/main/resources/static/static/image/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3f919d85a5d1e093fd8d80ebcbe9987a3bdbb54f GIT binary patch literal 8131 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 d+2AD?_zza93G2_wa8hsDrQ(_BS&^YK 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%0Ar%T_GGt_c=};c*I8x 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

dIu3Tej*vo(mDIg8|V;jXGB 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

?JiY|_3D6mUw3i~oxC;N{ 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�US*X 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 Oe-a`x!WDwLzW)mfk=W({ literal 0 HcmV?d00001 diff --git a/ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png b/ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png new file mode 100644 index 0000000000000000000000000000000000000000..d0eba10d14c6b8b30f8b7229685da338d2a168b4 GIT binary patch literal 54652 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 literal 0 HcmV?d00001 diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js new file mode 100644 index 00000000..02a83a31 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js @@ -0,0 +1,9 @@ +/*! + * docsify-copy-code + * v3.0.0 + * https://github.com/jperasmus/docsify-copy-code + * (c) 2017-2023 JP Erasmus + * MIT license + */ +!function(){"use strict";function e(o){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(o)}!function(e,o){void 0===o&&(o={});var t=o.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=e:c.appendChild(document.createTextNode(e))}}(".docsify-copy-code-button,.docsify-copy-code-button>span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{background:grey;background:var(--theme-color,grey);border:0;border-radius:0;color:#fff;font-size:1em;opacity:0;outline:0;overflow:visible;padding:.65em .8em;position:absolute;right:0;top:0;z-index:1}.docsify-copy-code-button>span{background:inherit;border-radius:3px;pointer-events:none}.docsify-copy-code-button>.error,.docsify-copy-code-button>.success{font-size:.825em;opacity:0;padding:.5em .65em;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:-100}.docsify-copy-code-button.error>.error,.docsify-copy-code-button.success>.success{opacity:1;right:100%;transform:translate(-25%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}.docsify-copy-code-button>[aria-live]{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(e,o){e.ready((function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")}))}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,t){var n={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};o.doneEach((function(){var o=Array.from(document.querySelectorAll("pre[data-lang]"));t.config.copyCode&&Object.keys(n).forEach((function(o){var c=t.config.copyCode[o];"string"==typeof c?n[o]=c:"object"===e(c)&&Object.keys(c).some((function(e){var t=location.href.indexOf(e)>-1;return n[o]=t?c[e]:n[o],t}))}));var c=['"].join("");o.forEach((function(e){e.insertAdjacentHTML("beforeend",c)}))})),o.mounted((function(){var e=document.querySelector(".content");e&&e.addEventListener("click",(function(e){if(e.target.classList.contains("docsify-copy-code-button")){var o="BUTTON"===e.target.tagName?e.target:e.target.parentNode,t=document.createRange(),c=o.parentNode.querySelector("code"),i=o.querySelector("[aria-live]"),r=window.getSelection();t.selectNode(c),r&&(r.removeAllRanges(),r.addRange(t));try{document.execCommand("copy")&&(o.classList.add("success"),i.innerText=n.successText,setTimeout((function(){o.classList.remove("success"),i.innerText=""}),1e3))}catch(e){console.error("docsify-copy-code: ".concat(e)),o.classList.add("error"),i.innerText=n.errorText,setTimeout((function(){o.classList.remove("error"),i.innerText=""}),1e3)}(r=window.getSelection())&&("function"==typeof r.removeRange?r.removeRange(t):"function"==typeof r.removeAllRanges&&r.removeAllRanges())}}))}))}].concat(window.$docsify.plugins||[])}(); +//# sourceMappingURL=docsify-copy-code.min.js.map \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js new file mode 100644 index 00000000..b4262116 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js @@ -0,0 +1,4 @@ +parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c ul > li"),c("p",e)),this.hyperlink=m(t))}var b=function(){return'

'},k=function(t,e){a=e,r=t.route.path,o={},["previousText","nextText"].forEach(function(n){var i=a[n];"string"==typeof i?o[n]=i:Object.keys(i).some(function(t){var e=r&&-1\n \n
\n \n \n \n '+i+'\n
\n
'+t.prev.name+"
\n ",t.prev&&e.crossChapterText&&'
'+t.prev.chapterName+"
",t.prev&&"
\n \n ",t.next&&'\n \n "].filter(Boolean).join("")};window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(t,e){var n=d({},(e.config,{previousText:"PREVIOUS",nextText:"NEXT",crossChapter:!1,crossChapterText:!1}),e.config.pagination||{});function i(){var t=c("."+h);t&&(t.innerHTML=k(function(t,e){e=e.crossChapter;try{var n=t.router.toURL(t.route.path),i=g(c.all(".sidebar-nav li a")).filter(function(t){return!s(t,".section-link")}),a=i.find(x(n)),r=g((p(a,"ul")||{}).children).filter(function(t){return"LI"===t.tagName.toUpperCase()}),o=e?i.findIndex(x(n)):r.findIndex(function(t){t=m(t);return t&&x(n,t)}),l=e?i:r;return{route:t.route,prev:new y(l[o-1]).toJSON(),next:new y(l[o+1]).toJSON()}}catch(t){return{route:{}}}}(e,n),n))}t.afterEach(function(t){return t+b()}),t.doneEach(i)}].concat(window.$docsify.plugins||[])}); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js new file mode 100644 index 00000000..c5ed3ca2 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js @@ -0,0 +1 @@ +var CONFIG={auto:true,text:"Top",right:15,bottom:15,offset:500};var install=function(hook,vm){var opts=vm.config.scrollToTop||CONFIG;CONFIG.auto=opts.auto&&typeof opts.auto==="boolean"?opts.auto:CONFIG.auto;CONFIG.text=opts.text&&typeof opts.text==="string"?opts.text:CONFIG.text;CONFIG.right=opts.right&&typeof opts.right==="number"?opts.right:CONFIG.right;CONFIG.bottom=opts.bottom&&typeof opts.bottom==="number"?opts.bottom:CONFIG.bottom;CONFIG.offset=opts.offset&&typeof opts.offset==="number"?opts.offset:CONFIG.offset;var onScroll=function(e){if(!CONFIG.auto){return}var offset=window.document.documentElement.scrollTop;var $scrollBtn=Docsify.dom.find("span.scroll-to-top");$scrollBtn.style.display=offset>=CONFIG.offset?"block":"none"};hook.mounted(function(){var scrollBtn=document.createElement("span");scrollBtn.className="scroll-to-top";scrollBtn.style.display=CONFIG.auto?"none":"block";scrollBtn.style.overflow="hidden";scrollBtn.style.position="fixed";scrollBtn.style.right=CONFIG.right+"px";scrollBtn.style.bottom=CONFIG.bottom+"px";scrollBtn.style.width="50px";scrollBtn.style.height="50px";scrollBtn.style.background="white";scrollBtn.style.color="#666";scrollBtn.style.border="1px solid #ddd";scrollBtn.style.borderRadius="4px";scrollBtn.style.lineHeight="42px";scrollBtn.style.fontSize="16px";scrollBtn.style.textAlign="center";scrollBtn.style.boxShadow="0px 0px 6px #eee";scrollBtn.style.cursor="pointer";var textNode=document.createTextNode(CONFIG.text);scrollBtn.appendChild(textNode);document.body.appendChild(scrollBtn);window.addEventListener("scroll",onScroll);scrollBtn.onclick=function(e){e.stopPropagation();var step=window.scrollY/15;var scroll=function(){window.scrollTo(0,window.scrollY-step);if(window.scrollY>0){setTimeout(scroll,15)}};scroll()}})};$docsify.plugins=[].concat(install,$docsify.plugins); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js new file mode 100644 index 00000000..18e85aa9 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js @@ -0,0 +1 @@ +!function(){function c(i){var o=Object.create(null);return function(e){var n=f(e)?e:JSON.stringify(e);return o[n]||(o[n]=i(e))}}var a=c(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),u=Object.prototype.hasOwnProperty,m=Object.assign||function(e){for(var n=arguments,i=1;i=e||n.classList.contains("hidden")?S(h,"add","sticky"):S(h,"remove","sticky"))}function ee(e,n,o,i){var t=[];null!=(n=l(n))&&(t=k(n,"a"));var a,r=decodeURI(e.toURL(e.getCurrentPath()));return t.sort(function(e,n){return n.href.length-e.href.length}).forEach(function(e){var n=decodeURI(e.getAttribute("href")),i=o?e.parentNode:e;e.title=e.title||e.innerText,0!==r.indexOf(n)||a?S(i,"remove","active"):(a=e,S(i,"add","active"))}),i&&(v.title=a?a.title||a.innerText+" - "+J:J),a}function ne(e,n){for(var i=0;ithis.end&&e>=this.next}[this.direction]}},{key:"_defaultEase",value:function(e,n,i,o){return(e/=o/2)<1?i/2*e*e+n:-i/2*(--e*(e-2)-1)+n}}]),re);function re(){var e=0c){n=n||p;break}n=p}!n||(r=fe[ve(e,n.getAttribute("data-id"))])&&r!==a&&(a&&a.classList.remove("active"),r.classList.add("active"),a=r,!pe&&h.classList.contains("sticky")&&(e=i.clientHeight,r=a.offsetTop+a.clientHeight+40,a=a.offsetTop>=t.scrollTop&&r<=t.scrollTop+e,i.scrollTop=a?t.scrollTop:+r"']/),xe=/[&<>"']/g,Se=/[<>"']|&(?!#?\w+;)/,Ae=/[<>"']|&(?!#?\w+;)/g,$e={"&":"&","<":"<",">":">",'"':""","'":"'"};var ze=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Fe(e){return e.replace(ze,function(e,n){return"colon"===(n=n.toLowerCase())?":":"#"===n.charAt(0)?"x"===n.charAt(1)?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""})}var Ee=/(^|[^\[])\^/g;var Re=/[^\w:]/g,Te=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var Ce={},je=/^[^:]+:\/*[^/]*$/,Le=/^([^:]+:)[\s\S]*$/,Oe=/^([^:]+:\/*[^/]*)[\s\S]*$/;function qe(e,n){Ce[" "+e]||(je.test(e)?Ce[" "+e]=e+"/":Ce[" "+e]=Pe(e,"/",!0));var i=-1===(e=Ce[" "+e]).indexOf(":");return"//"===n.substring(0,2)?i?n:e.replace(Le,"$1")+n:"/"===n.charAt(0)?i?n:e.replace(Oe,"$1")+n:e+n}function Pe(e,n,i){var o=e.length;if(0===o)return"";for(var t=0;tn)i.splice(n);else for(;i.length>=1,e+=e;return i+e},We=we.defaults,Xe=Be,Qe=Ze,Je=Me,Ke=Ve;function en(e,n,i){var o=n.href,t=n.title?Je(n.title):null,n=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:i,href:o,title:t,text:n}:{type:"image",raw:i,href:o,title:t,text:Je(n)}}var nn=function(){function e(e){this.options=e||We}return e.prototype.space=function(e){e=this.rules.block.newline.exec(e);if(e)return 1=i.length?e.slice(i.length):e}).join("\n")}(i,n[3]||"");return{type:"code",raw:i,lang:n[2]&&n[2].trim(),text:e}}},e.prototype.heading=function(e){var n=this.rules.block.heading.exec(e);if(n){var i=n[2].trim();return/#$/.test(i)&&(e=Xe(i,"#"),!this.options.pedantic&&e&&!/ $/.test(e)||(i=e.trim())),{type:"heading",raw:n[0],depth:n[1].length,text:i}}},e.prototype.nptable=function(e){e=this.rules.block.nptable.exec(e);if(e){var n={type:"table",header:Qe(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(n.header.length===n.align.length){for(var i=n.align.length,o=0;o ?/gm,"");return{type:"blockquote",raw:n[0],text:e}}},e.prototype.list=function(e){e=this.rules.block.list.exec(e);if(e){for(var n,i,o,t,a,r=e[0],c=e[2],u=1s[1].length:o[1].length>s[0].length||3/i.test(e[0])&&(n=!1),!i&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?i=!0:i&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(i=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:n,inRawBlock:i,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Je(e[0]):e[0]}},e.prototype.link=function(e){var n=this.rules.inline.link.exec(e);if(n){e=n[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;var i=Xe(e.slice(0,-1),"\\");if((e.length-i.length)%2==0)return}else{var o=Ke(n[2],"()");-1$/.test(e)?i.slice(1):i.slice(1,-1):i)&&i.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},n[0])}},e.prototype.reflink=function(e,n){if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){var e=(i[2]||i[1]).replace(/\s+/g," ");if((e=n[e.toLowerCase()])&&e.href)return en(i,e,i[0]);var i=i[0].charAt(0);return{type:"text",raw:i,text:i}}},e.prototype.strong=function(e,n,i){void 0===i&&(i="");var o=this.rules.inline.strong.start.exec(e);if(o&&(!o[1]||o[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){n=n.slice(-1*e.length);var t,a="**"===o[0]?this.rules.inline.strong.endAst:this.rules.inline.strong.endUnd;for(a.lastIndex=0;null!=(o=a.exec(n));)if(t=this.rules.inline.strong.middle.exec(n.slice(0,o.index+3)))return{type:"strong",raw:e.slice(0,t[0].length),text:e.slice(2,t[0].length-2)}}},e.prototype.em=function(e,n,i){void 0===i&&(i="");var o=this.rules.inline.em.start.exec(e);if(o&&(!o[1]||o[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){n=n.slice(-1*e.length);var t,a="*"===o[0]?this.rules.inline.em.endAst:this.rules.inline.em.endUnd;for(a.lastIndex=0;null!=(o=a.exec(n));)if(t=this.rules.inline.em.middle.exec(n.slice(0,o.index+2)))return{type:"em",raw:e.slice(0,t[0].length),text:e.slice(1,t[0].length-1)}}},e.prototype.codespan=function(e){var n=this.rules.inline.code.exec(e);if(n){var i=n[2].replace(/\n/g," "),o=/[^ ]/.test(i),e=/^ /.test(i)&&/ $/.test(i);return o&&e&&(i=i.substring(1,i.length-1)),i=Je(i,!0),{type:"codespan",raw:n[0],text:i}}},e.prototype.br=function(e){e=this.rules.inline.br.exec(e);if(e)return{type:"br",raw:e[0]}},e.prototype.del=function(e){e=this.rules.inline.del.exec(e);if(e)return{type:"del",raw:e[0],text:e[2]}},e.prototype.autolink=function(e,n){e=this.rules.inline.autolink.exec(e);if(e){var i,n="@"===e[2]?"mailto:"+(i=Je(this.options.mangle?n(e[1]):e[1])):i=Je(e[1]);return{type:"link",raw:e[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}}},e.prototype.url=function(e,n){var i,o,t,a;if(i=this.rules.inline.url.exec(e)){if("@"===i[2])t="mailto:"+(o=Je(this.options.mangle?n(i[0]):i[0]));else{for(;a=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0],a!==i[0];);o=Je(i[0]),t="www."===i[1]?"http://"+o:o}return{type:"link",raw:i[0],text:o,href:t,tokens:[{type:"text",raw:o,text:o}]}}},e.prototype.inlineText=function(e,n,i){e=this.rules.inline.text.exec(e);if(e){i=n?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Je(e[0]):e[0]:Je(this.options.smartypants?i(e[0]):e[0]);return{type:"text",raw:e[0],text:i}}},e}(),Ze=De,Ve=Ne,De=Ue,Ne={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Ze,table:Ze,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Ne.def=Ve(Ne.def).replace("label",Ne._label).replace("title",Ne._title).getRegex(),Ne.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ne.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,Ne.item=Ve(Ne.item,"gm").replace(/bull/g,Ne.bullet).getRegex(),Ne.listItemStart=Ve(/^( *)(bull)/).replace("bull",Ne.bullet).getRegex(),Ne.list=Ve(Ne.list).replace(/bull/g,Ne.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ne.def.source+")").getRegex(),Ne._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ne._comment=/|$)/,Ne.html=Ve(Ne.html,"i").replace("comment",Ne._comment).replace("tag",Ne._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ne.paragraph=Ve(Ne._paragraph).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.blockquote=Ve(Ne.blockquote).replace("paragraph",Ne.paragraph).getRegex(),Ne.normal=De({},Ne),Ne.gfm=De({},Ne.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Ne.gfm.nptable=Ve(Ne.gfm.nptable).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.gfm.table=Ve(Ne.gfm.table).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.pedantic=De({},Ne.normal,{html:Ve("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ne._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ze,paragraph:Ve(Ne.normal._paragraph).replace("hr",Ne.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ne.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});Ze={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ze,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",strong:{start:/^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,middle:/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,endAst:/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/},em:{start:/^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,middle:/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,endAst:/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Ze,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};Ze.punctuation=Ve(Ze.punctuation).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze._blockSkip="\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>",Ze._overlapSkip="__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*",Ze._comment=Ve(Ne._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Ze.em.start=Ve(Ze.em.start).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.em.middle=Ve(Ze.em.middle).replace(/punctuation/g,Ze._punctuation).replace(/overlapSkip/g,Ze._overlapSkip).getRegex(),Ze.em.endAst=Ve(Ze.em.endAst,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.em.endUnd=Ve(Ze.em.endUnd,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.start=Ve(Ze.strong.start).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.middle=Ve(Ze.strong.middle).replace(/punctuation/g,Ze._punctuation).replace(/overlapSkip/g,Ze._overlapSkip).getRegex(),Ze.strong.endAst=Ve(Ze.strong.endAst,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.endUnd=Ve(Ze.strong.endUnd,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.blockSkip=Ve(Ze._blockSkip,"g").getRegex(),Ze.overlapSkip=Ve(Ze._overlapSkip,"g").getRegex(),Ze._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Ze._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Ze._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Ze.autolink=Ve(Ze.autolink).replace("scheme",Ze._scheme).replace("email",Ze._email).getRegex(),Ze._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Ze.tag=Ve(Ze.tag).replace("comment",Ze._comment).replace("attribute",Ze._attribute).getRegex(),Ze._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Ze._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Ze._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Ze.link=Ve(Ze.link).replace("label",Ze._label).replace("href",Ze._href).replace("title",Ze._title).getRegex(),Ze.reflink=Ve(Ze.reflink).replace("label",Ze._label).getRegex(),Ze.reflinkSearch=Ve(Ze.reflinkSearch,"g").replace("reflink",Ze.reflink).replace("nolink",Ze.nolink).getRegex(),Ze.normal=De({},Ze),Ze.pedantic=De({},Ze.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Ve(/^!?\[(label)\]\((.*?)\)/).replace("label",Ze._label).getRegex(),reflink:Ve(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ze._label).getRegex()}),Ze.gfm=De({},Ze.normal,{escape:Ve(Ze.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\'+(i?e:gn(e,!0))+"\n":"
"+(i?e:gn(e,!0))+"
\n"},e.prototype.blockquote=function(e){return"
\n"+e+"
\n"},e.prototype.html=function(e){return e},e.prototype.heading=function(e,n,i,o){return this.options.headerIds?"'+e+"\n":""+e+"\n"},e.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},e.prototype.list=function(e,n,i){var o=n?"ol":"ul";return"<"+o+(n&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"},e.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},e.prototype.checkbox=function(e){return" "},e.prototype.paragraph=function(e){return"

    "+e+"

    \n"},e.prototype.table=function(e,n){return"\n\n"+e+"\n"+(n=n&&""+n+"")+"
    \n"},e.prototype.tablerow=function(e){return"\n"+e+"\n"},e.prototype.tablecell=function(e,n){var i=n.header?"th":"td";return(n.align?"<"+i+' align="'+n.align+'">':"<"+i+">")+e+"\n"},e.prototype.strong=function(e){return""+e+""},e.prototype.em=function(e){return""+e+""},e.prototype.codespan=function(e){return""+e+""},e.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},e.prototype.del=function(e){return""+e+""},e.prototype.link=function(e,n,i){if(null===(e=dn(this.options.sanitize,this.options.baseUrl,e)))return i;e='"},e.prototype.image=function(e,n,i){if(null===(e=dn(this.options.sanitize,this.options.baseUrl,e)))return i;i=''+i+'":">"},e.prototype.text=function(e){return e},e}(),ln=function(){function e(){}return e.prototype.strong=function(e){return e},e.prototype.em=function(e){return e},e.prototype.codespan=function(e){return e},e.prototype.del=function(e){return e},e.prototype.html=function(e){return e},e.prototype.text=function(e){return e},e.prototype.link=function(e,n,i){return""+i},e.prototype.image=function(e,n,i){return""+i},e.prototype.br=function(){return""},e}(),vn=function(){function e(){this.seen={}}return e.prototype.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},e.prototype.getNextSafeSlug=function(e,n){var i=e,o=0;if(this.seen.hasOwnProperty(i))for(o=this.seen[e];i=e+"-"+ ++o,this.seen.hasOwnProperty(i););return n||(this.seen[e]=o,this.seen[i]=0),i},e.prototype.slug=function(e,n){void 0===n&&(n={});e=this.serialize(e);return this.getNextSafeSlug(e,n.dryrun)},e}(),hn=we.defaults,_n=Ie,mn=function(){function i(e){this.options=e||hn,this.options.renderer=this.options.renderer||new sn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ln,this.slugger=new vn}return i.parse=function(e,n){return new i(n).parse(e)},i.parseInline=function(e,n){return new i(n).parseInline(e)},i.prototype.parse=function(e,n){void 0===n&&(n=!0);for(var i,o,t,a,r,c,u,f,p,d,g,s,l,v,h,_="",m=e.length,b=0;bAn error occurred:

    "+wn(e.message+"",!0)+"
    ";throw e}}xn.options=xn.setOptions=function(e){return bn(xn.defaults,e),yn(xn.defaults),xn},xn.getDefaults=Me,xn.defaults=we,xn.use=function(a){var n,e=bn({},a);if(a.renderer){var i,r=xn.defaults.renderer||new sn;for(i in a.renderer)!function(o){var t=r[o];r[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var i=a.renderer[o].apply(r,e);return i=!1===i?t.apply(r,e):i}}(i);e.renderer=r}if(a.tokenizer){var t,c=xn.defaults.tokenizer||new nn;for(t in a.tokenizer)!function(){var o=c[t];c[t]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var i=a.tokenizer[t].apply(c,e);return i=!1===i?o.apply(c,e):i}}();e.tokenizer=c}a.walkTokens&&(n=xn.defaults.walkTokens,e.walkTokens=function(e){a.walkTokens(e),n&&n(e)}),xn.setOptions(e)},xn.walkTokens=function(e,n){for(var i=0,o=e;iAn error occurred:

    "+wn(e.message+"",!0)+"
    ";throw e}},xn.Parser=mn,xn.parser=mn.parse,xn.Renderer=sn,xn.TextRenderer=ln,xn.Lexer=fn,xn.lexer=fn.lex,xn.Tokenizer=nn,xn.Slugger=vn;var Sn=xn.parse=xn;function An(e,i){if(void 0===i&&(i='
      {inner}
    '),!e||!e.length)return"";var o="";return e.forEach(function(e){var n=e.title.replace(/(<([^>]+)>)/g,"");o+='
  • '+e.title+"
  • ",e.children&&(o+=An(e.children,i))}),i.replace("{inner}",o)}function $n(e,n){return'

    '+n.slice(5).trim()+"

    "}function zn(e,o){var t=[],a={};return e.forEach(function(e){var n=e.level||1,i=n-1;o?@[\]^`{|}~]/g;function Rn(e){return e.toLowerCase()}function Tn(e){if("string"!=typeof e)return"";var n=e.trim().replace(/[A-Z]+/g,Rn).replace(/<[^>]+>/g,"").replace(En,"").replace(/\s/g,"-").replace(/-+/g,"-").replace(/^(\d)/,"_$1"),e=Fn[n],e=u.call(Fn,n)?e+1:0;return n=(Fn[n]=e)?n+"-"+e:n}Tn.clear=function(){Fn={}};var Cn={baseURL:"https://github.githubassets.com/images/icons/emoji/",data:{100:"unicode/1f4af.png?v8",1234:"unicode/1f522.png?v8","+1":"unicode/1f44d.png?v8","-1":"unicode/1f44e.png?v8","1st_place_medal":"unicode/1f947.png?v8","2nd_place_medal":"unicode/1f948.png?v8","3rd_place_medal":"unicode/1f949.png?v8","8ball":"unicode/1f3b1.png?v8",a:"unicode/1f170.png?v8",ab:"unicode/1f18e.png?v8",abacus:"unicode/1f9ee.png?v8",abc:"unicode/1f524.png?v8",abcd:"unicode/1f521.png?v8",accept:"unicode/1f251.png?v8",accessibility:"accessibility.png?v8",accordion:"unicode/1fa97.png?v8",adhesive_bandage:"unicode/1fa79.png?v8",adult:"unicode/1f9d1.png?v8",aerial_tramway:"unicode/1f6a1.png?v8",afghanistan:"unicode/1f1e6-1f1eb.png?v8",airplane:"unicode/2708.png?v8",aland_islands:"unicode/1f1e6-1f1fd.png?v8",alarm_clock:"unicode/23f0.png?v8",albania:"unicode/1f1e6-1f1f1.png?v8",alembic:"unicode/2697.png?v8",algeria:"unicode/1f1e9-1f1ff.png?v8",alien:"unicode/1f47d.png?v8",ambulance:"unicode/1f691.png?v8",american_samoa:"unicode/1f1e6-1f1f8.png?v8",amphora:"unicode/1f3fa.png?v8",anatomical_heart:"unicode/1fac0.png?v8",anchor:"unicode/2693.png?v8",andorra:"unicode/1f1e6-1f1e9.png?v8",angel:"unicode/1f47c.png?v8",anger:"unicode/1f4a2.png?v8",angola:"unicode/1f1e6-1f1f4.png?v8",angry:"unicode/1f620.png?v8",anguilla:"unicode/1f1e6-1f1ee.png?v8",anguished:"unicode/1f627.png?v8",ant:"unicode/1f41c.png?v8",antarctica:"unicode/1f1e6-1f1f6.png?v8",antigua_barbuda:"unicode/1f1e6-1f1ec.png?v8",apple:"unicode/1f34e.png?v8",aquarius:"unicode/2652.png?v8",argentina:"unicode/1f1e6-1f1f7.png?v8",aries:"unicode/2648.png?v8",armenia:"unicode/1f1e6-1f1f2.png?v8",arrow_backward:"unicode/25c0.png?v8",arrow_double_down:"unicode/23ec.png?v8",arrow_double_up:"unicode/23eb.png?v8",arrow_down:"unicode/2b07.png?v8",arrow_down_small:"unicode/1f53d.png?v8",arrow_forward:"unicode/25b6.png?v8",arrow_heading_down:"unicode/2935.png?v8",arrow_heading_up:"unicode/2934.png?v8",arrow_left:"unicode/2b05.png?v8",arrow_lower_left:"unicode/2199.png?v8",arrow_lower_right:"unicode/2198.png?v8",arrow_right:"unicode/27a1.png?v8",arrow_right_hook:"unicode/21aa.png?v8",arrow_up:"unicode/2b06.png?v8",arrow_up_down:"unicode/2195.png?v8",arrow_up_small:"unicode/1f53c.png?v8",arrow_upper_left:"unicode/2196.png?v8",arrow_upper_right:"unicode/2197.png?v8",arrows_clockwise:"unicode/1f503.png?v8",arrows_counterclockwise:"unicode/1f504.png?v8",art:"unicode/1f3a8.png?v8",articulated_lorry:"unicode/1f69b.png?v8",artificial_satellite:"unicode/1f6f0.png?v8",artist:"unicode/1f9d1-1f3a8.png?v8",aruba:"unicode/1f1e6-1f1fc.png?v8",ascension_island:"unicode/1f1e6-1f1e8.png?v8",asterisk:"unicode/002a-20e3.png?v8",astonished:"unicode/1f632.png?v8",astronaut:"unicode/1f9d1-1f680.png?v8",athletic_shoe:"unicode/1f45f.png?v8",atm:"unicode/1f3e7.png?v8",atom:"atom.png?v8",atom_symbol:"unicode/269b.png?v8",australia:"unicode/1f1e6-1f1fa.png?v8",austria:"unicode/1f1e6-1f1f9.png?v8",auto_rickshaw:"unicode/1f6fa.png?v8",avocado:"unicode/1f951.png?v8",axe:"unicode/1fa93.png?v8",azerbaijan:"unicode/1f1e6-1f1ff.png?v8",b:"unicode/1f171.png?v8",baby:"unicode/1f476.png?v8",baby_bottle:"unicode/1f37c.png?v8",baby_chick:"unicode/1f424.png?v8",baby_symbol:"unicode/1f6bc.png?v8",back:"unicode/1f519.png?v8",bacon:"unicode/1f953.png?v8",badger:"unicode/1f9a1.png?v8",badminton:"unicode/1f3f8.png?v8",bagel:"unicode/1f96f.png?v8",baggage_claim:"unicode/1f6c4.png?v8",baguette_bread:"unicode/1f956.png?v8",bahamas:"unicode/1f1e7-1f1f8.png?v8",bahrain:"unicode/1f1e7-1f1ed.png?v8",balance_scale:"unicode/2696.png?v8",bald_man:"unicode/1f468-1f9b2.png?v8",bald_woman:"unicode/1f469-1f9b2.png?v8",ballet_shoes:"unicode/1fa70.png?v8",balloon:"unicode/1f388.png?v8",ballot_box:"unicode/1f5f3.png?v8",ballot_box_with_check:"unicode/2611.png?v8",bamboo:"unicode/1f38d.png?v8",banana:"unicode/1f34c.png?v8",bangbang:"unicode/203c.png?v8",bangladesh:"unicode/1f1e7-1f1e9.png?v8",banjo:"unicode/1fa95.png?v8",bank:"unicode/1f3e6.png?v8",bar_chart:"unicode/1f4ca.png?v8",barbados:"unicode/1f1e7-1f1e7.png?v8",barber:"unicode/1f488.png?v8",baseball:"unicode/26be.png?v8",basecamp:"basecamp.png?v8",basecampy:"basecampy.png?v8",basket:"unicode/1f9fa.png?v8",basketball:"unicode/1f3c0.png?v8",basketball_man:"unicode/26f9-2642.png?v8",basketball_woman:"unicode/26f9-2640.png?v8",bat:"unicode/1f987.png?v8",bath:"unicode/1f6c0.png?v8",bathtub:"unicode/1f6c1.png?v8",battery:"unicode/1f50b.png?v8",beach_umbrella:"unicode/1f3d6.png?v8",bear:"unicode/1f43b.png?v8",bearded_person:"unicode/1f9d4.png?v8",beaver:"unicode/1f9ab.png?v8",bed:"unicode/1f6cf.png?v8",bee:"unicode/1f41d.png?v8",beer:"unicode/1f37a.png?v8",beers:"unicode/1f37b.png?v8",beetle:"unicode/1fab2.png?v8",beginner:"unicode/1f530.png?v8",belarus:"unicode/1f1e7-1f1fe.png?v8",belgium:"unicode/1f1e7-1f1ea.png?v8",belize:"unicode/1f1e7-1f1ff.png?v8",bell:"unicode/1f514.png?v8",bell_pepper:"unicode/1fad1.png?v8",bellhop_bell:"unicode/1f6ce.png?v8",benin:"unicode/1f1e7-1f1ef.png?v8",bento:"unicode/1f371.png?v8",bermuda:"unicode/1f1e7-1f1f2.png?v8",beverage_box:"unicode/1f9c3.png?v8",bhutan:"unicode/1f1e7-1f1f9.png?v8",bicyclist:"unicode/1f6b4.png?v8",bike:"unicode/1f6b2.png?v8",biking_man:"unicode/1f6b4-2642.png?v8",biking_woman:"unicode/1f6b4-2640.png?v8",bikini:"unicode/1f459.png?v8",billed_cap:"unicode/1f9e2.png?v8",biohazard:"unicode/2623.png?v8",bird:"unicode/1f426.png?v8",birthday:"unicode/1f382.png?v8",bison:"unicode/1f9ac.png?v8",black_cat:"unicode/1f408-2b1b.png?v8",black_circle:"unicode/26ab.png?v8",black_flag:"unicode/1f3f4.png?v8",black_heart:"unicode/1f5a4.png?v8",black_joker:"unicode/1f0cf.png?v8",black_large_square:"unicode/2b1b.png?v8",black_medium_small_square:"unicode/25fe.png?v8",black_medium_square:"unicode/25fc.png?v8",black_nib:"unicode/2712.png?v8",black_small_square:"unicode/25aa.png?v8",black_square_button:"unicode/1f532.png?v8",blond_haired_man:"unicode/1f471-2642.png?v8",blond_haired_person:"unicode/1f471.png?v8",blond_haired_woman:"unicode/1f471-2640.png?v8",blonde_woman:"unicode/1f471-2640.png?v8",blossom:"unicode/1f33c.png?v8",blowfish:"unicode/1f421.png?v8",blue_book:"unicode/1f4d8.png?v8",blue_car:"unicode/1f699.png?v8",blue_heart:"unicode/1f499.png?v8",blue_square:"unicode/1f7e6.png?v8",blueberries:"unicode/1fad0.png?v8",blush:"unicode/1f60a.png?v8",boar:"unicode/1f417.png?v8",boat:"unicode/26f5.png?v8",bolivia:"unicode/1f1e7-1f1f4.png?v8",bomb:"unicode/1f4a3.png?v8",bone:"unicode/1f9b4.png?v8",book:"unicode/1f4d6.png?v8",bookmark:"unicode/1f516.png?v8",bookmark_tabs:"unicode/1f4d1.png?v8",books:"unicode/1f4da.png?v8",boom:"unicode/1f4a5.png?v8",boomerang:"unicode/1fa83.png?v8",boot:"unicode/1f462.png?v8",bosnia_herzegovina:"unicode/1f1e7-1f1e6.png?v8",botswana:"unicode/1f1e7-1f1fc.png?v8",bouncing_ball_man:"unicode/26f9-2642.png?v8",bouncing_ball_person:"unicode/26f9.png?v8",bouncing_ball_woman:"unicode/26f9-2640.png?v8",bouquet:"unicode/1f490.png?v8",bouvet_island:"unicode/1f1e7-1f1fb.png?v8",bow:"unicode/1f647.png?v8",bow_and_arrow:"unicode/1f3f9.png?v8",bowing_man:"unicode/1f647-2642.png?v8",bowing_woman:"unicode/1f647-2640.png?v8",bowl_with_spoon:"unicode/1f963.png?v8",bowling:"unicode/1f3b3.png?v8",bowtie:"bowtie.png?v8",boxing_glove:"unicode/1f94a.png?v8",boy:"unicode/1f466.png?v8",brain:"unicode/1f9e0.png?v8",brazil:"unicode/1f1e7-1f1f7.png?v8",bread:"unicode/1f35e.png?v8",breast_feeding:"unicode/1f931.png?v8",bricks:"unicode/1f9f1.png?v8",bride_with_veil:"unicode/1f470-2640.png?v8",bridge_at_night:"unicode/1f309.png?v8",briefcase:"unicode/1f4bc.png?v8",british_indian_ocean_territory:"unicode/1f1ee-1f1f4.png?v8",british_virgin_islands:"unicode/1f1fb-1f1ec.png?v8",broccoli:"unicode/1f966.png?v8",broken_heart:"unicode/1f494.png?v8",broom:"unicode/1f9f9.png?v8",brown_circle:"unicode/1f7e4.png?v8",brown_heart:"unicode/1f90e.png?v8",brown_square:"unicode/1f7eb.png?v8",brunei:"unicode/1f1e7-1f1f3.png?v8",bubble_tea:"unicode/1f9cb.png?v8",bucket:"unicode/1faa3.png?v8",bug:"unicode/1f41b.png?v8",building_construction:"unicode/1f3d7.png?v8",bulb:"unicode/1f4a1.png?v8",bulgaria:"unicode/1f1e7-1f1ec.png?v8",bullettrain_front:"unicode/1f685.png?v8",bullettrain_side:"unicode/1f684.png?v8",burkina_faso:"unicode/1f1e7-1f1eb.png?v8",burrito:"unicode/1f32f.png?v8",burundi:"unicode/1f1e7-1f1ee.png?v8",bus:"unicode/1f68c.png?v8",business_suit_levitating:"unicode/1f574.png?v8",busstop:"unicode/1f68f.png?v8",bust_in_silhouette:"unicode/1f464.png?v8",busts_in_silhouette:"unicode/1f465.png?v8",butter:"unicode/1f9c8.png?v8",butterfly:"unicode/1f98b.png?v8",cactus:"unicode/1f335.png?v8",cake:"unicode/1f370.png?v8",calendar:"unicode/1f4c6.png?v8",call_me_hand:"unicode/1f919.png?v8",calling:"unicode/1f4f2.png?v8",cambodia:"unicode/1f1f0-1f1ed.png?v8",camel:"unicode/1f42b.png?v8",camera:"unicode/1f4f7.png?v8",camera_flash:"unicode/1f4f8.png?v8",cameroon:"unicode/1f1e8-1f1f2.png?v8",camping:"unicode/1f3d5.png?v8",canada:"unicode/1f1e8-1f1e6.png?v8",canary_islands:"unicode/1f1ee-1f1e8.png?v8",cancer:"unicode/264b.png?v8",candle:"unicode/1f56f.png?v8",candy:"unicode/1f36c.png?v8",canned_food:"unicode/1f96b.png?v8",canoe:"unicode/1f6f6.png?v8",cape_verde:"unicode/1f1e8-1f1fb.png?v8",capital_abcd:"unicode/1f520.png?v8",capricorn:"unicode/2651.png?v8",car:"unicode/1f697.png?v8",card_file_box:"unicode/1f5c3.png?v8",card_index:"unicode/1f4c7.png?v8",card_index_dividers:"unicode/1f5c2.png?v8",caribbean_netherlands:"unicode/1f1e7-1f1f6.png?v8",carousel_horse:"unicode/1f3a0.png?v8",carpentry_saw:"unicode/1fa9a.png?v8",carrot:"unicode/1f955.png?v8",cartwheeling:"unicode/1f938.png?v8",cat:"unicode/1f431.png?v8",cat2:"unicode/1f408.png?v8",cayman_islands:"unicode/1f1f0-1f1fe.png?v8",cd:"unicode/1f4bf.png?v8",central_african_republic:"unicode/1f1e8-1f1eb.png?v8",ceuta_melilla:"unicode/1f1ea-1f1e6.png?v8",chad:"unicode/1f1f9-1f1e9.png?v8",chains:"unicode/26d3.png?v8",chair:"unicode/1fa91.png?v8",champagne:"unicode/1f37e.png?v8",chart:"unicode/1f4b9.png?v8",chart_with_downwards_trend:"unicode/1f4c9.png?v8",chart_with_upwards_trend:"unicode/1f4c8.png?v8",checkered_flag:"unicode/1f3c1.png?v8",cheese:"unicode/1f9c0.png?v8",cherries:"unicode/1f352.png?v8",cherry_blossom:"unicode/1f338.png?v8",chess_pawn:"unicode/265f.png?v8",chestnut:"unicode/1f330.png?v8",chicken:"unicode/1f414.png?v8",child:"unicode/1f9d2.png?v8",children_crossing:"unicode/1f6b8.png?v8",chile:"unicode/1f1e8-1f1f1.png?v8",chipmunk:"unicode/1f43f.png?v8",chocolate_bar:"unicode/1f36b.png?v8",chopsticks:"unicode/1f962.png?v8",christmas_island:"unicode/1f1e8-1f1fd.png?v8",christmas_tree:"unicode/1f384.png?v8",church:"unicode/26ea.png?v8",cinema:"unicode/1f3a6.png?v8",circus_tent:"unicode/1f3aa.png?v8",city_sunrise:"unicode/1f307.png?v8",city_sunset:"unicode/1f306.png?v8",cityscape:"unicode/1f3d9.png?v8",cl:"unicode/1f191.png?v8",clamp:"unicode/1f5dc.png?v8",clap:"unicode/1f44f.png?v8",clapper:"unicode/1f3ac.png?v8",classical_building:"unicode/1f3db.png?v8",climbing:"unicode/1f9d7.png?v8",climbing_man:"unicode/1f9d7-2642.png?v8",climbing_woman:"unicode/1f9d7-2640.png?v8",clinking_glasses:"unicode/1f942.png?v8",clipboard:"unicode/1f4cb.png?v8",clipperton_island:"unicode/1f1e8-1f1f5.png?v8",clock1:"unicode/1f550.png?v8",clock10:"unicode/1f559.png?v8",clock1030:"unicode/1f565.png?v8",clock11:"unicode/1f55a.png?v8",clock1130:"unicode/1f566.png?v8",clock12:"unicode/1f55b.png?v8",clock1230:"unicode/1f567.png?v8",clock130:"unicode/1f55c.png?v8",clock2:"unicode/1f551.png?v8",clock230:"unicode/1f55d.png?v8",clock3:"unicode/1f552.png?v8",clock330:"unicode/1f55e.png?v8",clock4:"unicode/1f553.png?v8",clock430:"unicode/1f55f.png?v8",clock5:"unicode/1f554.png?v8",clock530:"unicode/1f560.png?v8",clock6:"unicode/1f555.png?v8",clock630:"unicode/1f561.png?v8",clock7:"unicode/1f556.png?v8",clock730:"unicode/1f562.png?v8",clock8:"unicode/1f557.png?v8",clock830:"unicode/1f563.png?v8",clock9:"unicode/1f558.png?v8",clock930:"unicode/1f564.png?v8",closed_book:"unicode/1f4d5.png?v8",closed_lock_with_key:"unicode/1f510.png?v8",closed_umbrella:"unicode/1f302.png?v8",cloud:"unicode/2601.png?v8",cloud_with_lightning:"unicode/1f329.png?v8",cloud_with_lightning_and_rain:"unicode/26c8.png?v8",cloud_with_rain:"unicode/1f327.png?v8",cloud_with_snow:"unicode/1f328.png?v8",clown_face:"unicode/1f921.png?v8",clubs:"unicode/2663.png?v8",cn:"unicode/1f1e8-1f1f3.png?v8",coat:"unicode/1f9e5.png?v8",cockroach:"unicode/1fab3.png?v8",cocktail:"unicode/1f378.png?v8",coconut:"unicode/1f965.png?v8",cocos_islands:"unicode/1f1e8-1f1e8.png?v8",coffee:"unicode/2615.png?v8",coffin:"unicode/26b0.png?v8",coin:"unicode/1fa99.png?v8",cold_face:"unicode/1f976.png?v8",cold_sweat:"unicode/1f630.png?v8",collision:"unicode/1f4a5.png?v8",colombia:"unicode/1f1e8-1f1f4.png?v8",comet:"unicode/2604.png?v8",comoros:"unicode/1f1f0-1f1f2.png?v8",compass:"unicode/1f9ed.png?v8",computer:"unicode/1f4bb.png?v8",computer_mouse:"unicode/1f5b1.png?v8",confetti_ball:"unicode/1f38a.png?v8",confounded:"unicode/1f616.png?v8",confused:"unicode/1f615.png?v8",congo_brazzaville:"unicode/1f1e8-1f1ec.png?v8",congo_kinshasa:"unicode/1f1e8-1f1e9.png?v8",congratulations:"unicode/3297.png?v8",construction:"unicode/1f6a7.png?v8",construction_worker:"unicode/1f477.png?v8",construction_worker_man:"unicode/1f477-2642.png?v8",construction_worker_woman:"unicode/1f477-2640.png?v8",control_knobs:"unicode/1f39b.png?v8",convenience_store:"unicode/1f3ea.png?v8",cook:"unicode/1f9d1-1f373.png?v8",cook_islands:"unicode/1f1e8-1f1f0.png?v8",cookie:"unicode/1f36a.png?v8",cool:"unicode/1f192.png?v8",cop:"unicode/1f46e.png?v8",copyright:"unicode/00a9.png?v8",corn:"unicode/1f33d.png?v8",costa_rica:"unicode/1f1e8-1f1f7.png?v8",cote_divoire:"unicode/1f1e8-1f1ee.png?v8",couch_and_lamp:"unicode/1f6cb.png?v8",couple:"unicode/1f46b.png?v8",couple_with_heart:"unicode/1f491.png?v8",couple_with_heart_man_man:"unicode/1f468-2764-1f468.png?v8",couple_with_heart_woman_man:"unicode/1f469-2764-1f468.png?v8",couple_with_heart_woman_woman:"unicode/1f469-2764-1f469.png?v8",couplekiss:"unicode/1f48f.png?v8",couplekiss_man_man:"unicode/1f468-2764-1f48b-1f468.png?v8",couplekiss_man_woman:"unicode/1f469-2764-1f48b-1f468.png?v8",couplekiss_woman_woman:"unicode/1f469-2764-1f48b-1f469.png?v8",cow:"unicode/1f42e.png?v8",cow2:"unicode/1f404.png?v8",cowboy_hat_face:"unicode/1f920.png?v8",crab:"unicode/1f980.png?v8",crayon:"unicode/1f58d.png?v8",credit_card:"unicode/1f4b3.png?v8",crescent_moon:"unicode/1f319.png?v8",cricket:"unicode/1f997.png?v8",cricket_game:"unicode/1f3cf.png?v8",croatia:"unicode/1f1ed-1f1f7.png?v8",crocodile:"unicode/1f40a.png?v8",croissant:"unicode/1f950.png?v8",crossed_fingers:"unicode/1f91e.png?v8",crossed_flags:"unicode/1f38c.png?v8",crossed_swords:"unicode/2694.png?v8",crown:"unicode/1f451.png?v8",cry:"unicode/1f622.png?v8",crying_cat_face:"unicode/1f63f.png?v8",crystal_ball:"unicode/1f52e.png?v8",cuba:"unicode/1f1e8-1f1fa.png?v8",cucumber:"unicode/1f952.png?v8",cup_with_straw:"unicode/1f964.png?v8",cupcake:"unicode/1f9c1.png?v8",cupid:"unicode/1f498.png?v8",curacao:"unicode/1f1e8-1f1fc.png?v8",curling_stone:"unicode/1f94c.png?v8",curly_haired_man:"unicode/1f468-1f9b1.png?v8",curly_haired_woman:"unicode/1f469-1f9b1.png?v8",curly_loop:"unicode/27b0.png?v8",currency_exchange:"unicode/1f4b1.png?v8",curry:"unicode/1f35b.png?v8",cursing_face:"unicode/1f92c.png?v8",custard:"unicode/1f36e.png?v8",customs:"unicode/1f6c3.png?v8",cut_of_meat:"unicode/1f969.png?v8",cyclone:"unicode/1f300.png?v8",cyprus:"unicode/1f1e8-1f1fe.png?v8",czech_republic:"unicode/1f1e8-1f1ff.png?v8",dagger:"unicode/1f5e1.png?v8",dancer:"unicode/1f483.png?v8",dancers:"unicode/1f46f.png?v8",dancing_men:"unicode/1f46f-2642.png?v8",dancing_women:"unicode/1f46f-2640.png?v8",dango:"unicode/1f361.png?v8",dark_sunglasses:"unicode/1f576.png?v8",dart:"unicode/1f3af.png?v8",dash:"unicode/1f4a8.png?v8",date:"unicode/1f4c5.png?v8",de:"unicode/1f1e9-1f1ea.png?v8",deaf_man:"unicode/1f9cf-2642.png?v8",deaf_person:"unicode/1f9cf.png?v8",deaf_woman:"unicode/1f9cf-2640.png?v8",deciduous_tree:"unicode/1f333.png?v8",deer:"unicode/1f98c.png?v8",denmark:"unicode/1f1e9-1f1f0.png?v8",department_store:"unicode/1f3ec.png?v8",dependabot:"dependabot.png?v8",derelict_house:"unicode/1f3da.png?v8",desert:"unicode/1f3dc.png?v8",desert_island:"unicode/1f3dd.png?v8",desktop_computer:"unicode/1f5a5.png?v8",detective:"unicode/1f575.png?v8",diamond_shape_with_a_dot_inside:"unicode/1f4a0.png?v8",diamonds:"unicode/2666.png?v8",diego_garcia:"unicode/1f1e9-1f1ec.png?v8",disappointed:"unicode/1f61e.png?v8",disappointed_relieved:"unicode/1f625.png?v8",disguised_face:"unicode/1f978.png?v8",diving_mask:"unicode/1f93f.png?v8",diya_lamp:"unicode/1fa94.png?v8",dizzy:"unicode/1f4ab.png?v8",dizzy_face:"unicode/1f635.png?v8",djibouti:"unicode/1f1e9-1f1ef.png?v8",dna:"unicode/1f9ec.png?v8",do_not_litter:"unicode/1f6af.png?v8",dodo:"unicode/1f9a4.png?v8",dog:"unicode/1f436.png?v8",dog2:"unicode/1f415.png?v8",dollar:"unicode/1f4b5.png?v8",dolls:"unicode/1f38e.png?v8",dolphin:"unicode/1f42c.png?v8",dominica:"unicode/1f1e9-1f1f2.png?v8",dominican_republic:"unicode/1f1e9-1f1f4.png?v8",door:"unicode/1f6aa.png?v8",doughnut:"unicode/1f369.png?v8",dove:"unicode/1f54a.png?v8",dragon:"unicode/1f409.png?v8",dragon_face:"unicode/1f432.png?v8",dress:"unicode/1f457.png?v8",dromedary_camel:"unicode/1f42a.png?v8",drooling_face:"unicode/1f924.png?v8",drop_of_blood:"unicode/1fa78.png?v8",droplet:"unicode/1f4a7.png?v8",drum:"unicode/1f941.png?v8",duck:"unicode/1f986.png?v8",dumpling:"unicode/1f95f.png?v8",dvd:"unicode/1f4c0.png?v8","e-mail":"unicode/1f4e7.png?v8",eagle:"unicode/1f985.png?v8",ear:"unicode/1f442.png?v8",ear_of_rice:"unicode/1f33e.png?v8",ear_with_hearing_aid:"unicode/1f9bb.png?v8",earth_africa:"unicode/1f30d.png?v8",earth_americas:"unicode/1f30e.png?v8",earth_asia:"unicode/1f30f.png?v8",ecuador:"unicode/1f1ea-1f1e8.png?v8",egg:"unicode/1f95a.png?v8",eggplant:"unicode/1f346.png?v8",egypt:"unicode/1f1ea-1f1ec.png?v8",eight:"unicode/0038-20e3.png?v8",eight_pointed_black_star:"unicode/2734.png?v8",eight_spoked_asterisk:"unicode/2733.png?v8",eject_button:"unicode/23cf.png?v8",el_salvador:"unicode/1f1f8-1f1fb.png?v8",electric_plug:"unicode/1f50c.png?v8",electron:"electron.png?v8",elephant:"unicode/1f418.png?v8",elevator:"unicode/1f6d7.png?v8",elf:"unicode/1f9dd.png?v8",elf_man:"unicode/1f9dd-2642.png?v8",elf_woman:"unicode/1f9dd-2640.png?v8",email:"unicode/1f4e7.png?v8",end:"unicode/1f51a.png?v8",england:"unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8",envelope:"unicode/2709.png?v8",envelope_with_arrow:"unicode/1f4e9.png?v8",equatorial_guinea:"unicode/1f1ec-1f1f6.png?v8",eritrea:"unicode/1f1ea-1f1f7.png?v8",es:"unicode/1f1ea-1f1f8.png?v8",estonia:"unicode/1f1ea-1f1ea.png?v8",ethiopia:"unicode/1f1ea-1f1f9.png?v8",eu:"unicode/1f1ea-1f1fa.png?v8",euro:"unicode/1f4b6.png?v8",european_castle:"unicode/1f3f0.png?v8",european_post_office:"unicode/1f3e4.png?v8",european_union:"unicode/1f1ea-1f1fa.png?v8",evergreen_tree:"unicode/1f332.png?v8",exclamation:"unicode/2757.png?v8",exploding_head:"unicode/1f92f.png?v8",expressionless:"unicode/1f611.png?v8",eye:"unicode/1f441.png?v8",eye_speech_bubble:"unicode/1f441-1f5e8.png?v8",eyeglasses:"unicode/1f453.png?v8",eyes:"unicode/1f440.png?v8",face_exhaling:"unicode/1f62e-1f4a8.png?v8",face_in_clouds:"unicode/1f636-1f32b.png?v8",face_with_head_bandage:"unicode/1f915.png?v8",face_with_spiral_eyes:"unicode/1f635-1f4ab.png?v8",face_with_thermometer:"unicode/1f912.png?v8",facepalm:"unicode/1f926.png?v8",facepunch:"unicode/1f44a.png?v8",factory:"unicode/1f3ed.png?v8",factory_worker:"unicode/1f9d1-1f3ed.png?v8",fairy:"unicode/1f9da.png?v8",fairy_man:"unicode/1f9da-2642.png?v8",fairy_woman:"unicode/1f9da-2640.png?v8",falafel:"unicode/1f9c6.png?v8",falkland_islands:"unicode/1f1eb-1f1f0.png?v8",fallen_leaf:"unicode/1f342.png?v8",family:"unicode/1f46a.png?v8",family_man_boy:"unicode/1f468-1f466.png?v8",family_man_boy_boy:"unicode/1f468-1f466-1f466.png?v8",family_man_girl:"unicode/1f468-1f467.png?v8",family_man_girl_boy:"unicode/1f468-1f467-1f466.png?v8",family_man_girl_girl:"unicode/1f468-1f467-1f467.png?v8",family_man_man_boy:"unicode/1f468-1f468-1f466.png?v8",family_man_man_boy_boy:"unicode/1f468-1f468-1f466-1f466.png?v8",family_man_man_girl:"unicode/1f468-1f468-1f467.png?v8",family_man_man_girl_boy:"unicode/1f468-1f468-1f467-1f466.png?v8",family_man_man_girl_girl:"unicode/1f468-1f468-1f467-1f467.png?v8",family_man_woman_boy:"unicode/1f468-1f469-1f466.png?v8",family_man_woman_boy_boy:"unicode/1f468-1f469-1f466-1f466.png?v8",family_man_woman_girl:"unicode/1f468-1f469-1f467.png?v8",family_man_woman_girl_boy:"unicode/1f468-1f469-1f467-1f466.png?v8",family_man_woman_girl_girl:"unicode/1f468-1f469-1f467-1f467.png?v8",family_woman_boy:"unicode/1f469-1f466.png?v8",family_woman_boy_boy:"unicode/1f469-1f466-1f466.png?v8",family_woman_girl:"unicode/1f469-1f467.png?v8",family_woman_girl_boy:"unicode/1f469-1f467-1f466.png?v8",family_woman_girl_girl:"unicode/1f469-1f467-1f467.png?v8",family_woman_woman_boy:"unicode/1f469-1f469-1f466.png?v8",family_woman_woman_boy_boy:"unicode/1f469-1f469-1f466-1f466.png?v8",family_woman_woman_girl:"unicode/1f469-1f469-1f467.png?v8",family_woman_woman_girl_boy:"unicode/1f469-1f469-1f467-1f466.png?v8",family_woman_woman_girl_girl:"unicode/1f469-1f469-1f467-1f467.png?v8",farmer:"unicode/1f9d1-1f33e.png?v8",faroe_islands:"unicode/1f1eb-1f1f4.png?v8",fast_forward:"unicode/23e9.png?v8",fax:"unicode/1f4e0.png?v8",fearful:"unicode/1f628.png?v8",feather:"unicode/1fab6.png?v8",feelsgood:"feelsgood.png?v8",feet:"unicode/1f43e.png?v8",female_detective:"unicode/1f575-2640.png?v8",female_sign:"unicode/2640.png?v8",ferris_wheel:"unicode/1f3a1.png?v8",ferry:"unicode/26f4.png?v8",field_hockey:"unicode/1f3d1.png?v8",fiji:"unicode/1f1eb-1f1ef.png?v8",file_cabinet:"unicode/1f5c4.png?v8",file_folder:"unicode/1f4c1.png?v8",film_projector:"unicode/1f4fd.png?v8",film_strip:"unicode/1f39e.png?v8",finland:"unicode/1f1eb-1f1ee.png?v8",finnadie:"finnadie.png?v8",fire:"unicode/1f525.png?v8",fire_engine:"unicode/1f692.png?v8",fire_extinguisher:"unicode/1f9ef.png?v8",firecracker:"unicode/1f9e8.png?v8",firefighter:"unicode/1f9d1-1f692.png?v8",fireworks:"unicode/1f386.png?v8",first_quarter_moon:"unicode/1f313.png?v8",first_quarter_moon_with_face:"unicode/1f31b.png?v8",fish:"unicode/1f41f.png?v8",fish_cake:"unicode/1f365.png?v8",fishing_pole_and_fish:"unicode/1f3a3.png?v8",fishsticks:"fishsticks.png?v8",fist:"unicode/270a.png?v8",fist_left:"unicode/1f91b.png?v8",fist_oncoming:"unicode/1f44a.png?v8",fist_raised:"unicode/270a.png?v8",fist_right:"unicode/1f91c.png?v8",five:"unicode/0035-20e3.png?v8",flags:"unicode/1f38f.png?v8",flamingo:"unicode/1f9a9.png?v8",flashlight:"unicode/1f526.png?v8",flat_shoe:"unicode/1f97f.png?v8",flatbread:"unicode/1fad3.png?v8",fleur_de_lis:"unicode/269c.png?v8",flight_arrival:"unicode/1f6ec.png?v8",flight_departure:"unicode/1f6eb.png?v8",flipper:"unicode/1f42c.png?v8",floppy_disk:"unicode/1f4be.png?v8",flower_playing_cards:"unicode/1f3b4.png?v8",flushed:"unicode/1f633.png?v8",fly:"unicode/1fab0.png?v8",flying_disc:"unicode/1f94f.png?v8",flying_saucer:"unicode/1f6f8.png?v8",fog:"unicode/1f32b.png?v8",foggy:"unicode/1f301.png?v8",fondue:"unicode/1fad5.png?v8",foot:"unicode/1f9b6.png?v8",football:"unicode/1f3c8.png?v8",footprints:"unicode/1f463.png?v8",fork_and_knife:"unicode/1f374.png?v8",fortune_cookie:"unicode/1f960.png?v8",fountain:"unicode/26f2.png?v8",fountain_pen:"unicode/1f58b.png?v8",four:"unicode/0034-20e3.png?v8",four_leaf_clover:"unicode/1f340.png?v8",fox_face:"unicode/1f98a.png?v8",fr:"unicode/1f1eb-1f1f7.png?v8",framed_picture:"unicode/1f5bc.png?v8",free:"unicode/1f193.png?v8",french_guiana:"unicode/1f1ec-1f1eb.png?v8",french_polynesia:"unicode/1f1f5-1f1eb.png?v8",french_southern_territories:"unicode/1f1f9-1f1eb.png?v8",fried_egg:"unicode/1f373.png?v8",fried_shrimp:"unicode/1f364.png?v8",fries:"unicode/1f35f.png?v8",frog:"unicode/1f438.png?v8",frowning:"unicode/1f626.png?v8",frowning_face:"unicode/2639.png?v8",frowning_man:"unicode/1f64d-2642.png?v8",frowning_person:"unicode/1f64d.png?v8",frowning_woman:"unicode/1f64d-2640.png?v8",fu:"unicode/1f595.png?v8",fuelpump:"unicode/26fd.png?v8",full_moon:"unicode/1f315.png?v8",full_moon_with_face:"unicode/1f31d.png?v8",funeral_urn:"unicode/26b1.png?v8",gabon:"unicode/1f1ec-1f1e6.png?v8",gambia:"unicode/1f1ec-1f1f2.png?v8",game_die:"unicode/1f3b2.png?v8",garlic:"unicode/1f9c4.png?v8",gb:"unicode/1f1ec-1f1e7.png?v8",gear:"unicode/2699.png?v8",gem:"unicode/1f48e.png?v8",gemini:"unicode/264a.png?v8",genie:"unicode/1f9de.png?v8",genie_man:"unicode/1f9de-2642.png?v8",genie_woman:"unicode/1f9de-2640.png?v8",georgia:"unicode/1f1ec-1f1ea.png?v8",ghana:"unicode/1f1ec-1f1ed.png?v8",ghost:"unicode/1f47b.png?v8",gibraltar:"unicode/1f1ec-1f1ee.png?v8",gift:"unicode/1f381.png?v8",gift_heart:"unicode/1f49d.png?v8",giraffe:"unicode/1f992.png?v8",girl:"unicode/1f467.png?v8",globe_with_meridians:"unicode/1f310.png?v8",gloves:"unicode/1f9e4.png?v8",goal_net:"unicode/1f945.png?v8",goat:"unicode/1f410.png?v8",goberserk:"goberserk.png?v8",godmode:"godmode.png?v8",goggles:"unicode/1f97d.png?v8",golf:"unicode/26f3.png?v8",golfing:"unicode/1f3cc.png?v8",golfing_man:"unicode/1f3cc-2642.png?v8",golfing_woman:"unicode/1f3cc-2640.png?v8",gorilla:"unicode/1f98d.png?v8",grapes:"unicode/1f347.png?v8",greece:"unicode/1f1ec-1f1f7.png?v8",green_apple:"unicode/1f34f.png?v8",green_book:"unicode/1f4d7.png?v8",green_circle:"unicode/1f7e2.png?v8",green_heart:"unicode/1f49a.png?v8",green_salad:"unicode/1f957.png?v8",green_square:"unicode/1f7e9.png?v8",greenland:"unicode/1f1ec-1f1f1.png?v8",grenada:"unicode/1f1ec-1f1e9.png?v8",grey_exclamation:"unicode/2755.png?v8",grey_question:"unicode/2754.png?v8",grimacing:"unicode/1f62c.png?v8",grin:"unicode/1f601.png?v8",grinning:"unicode/1f600.png?v8",guadeloupe:"unicode/1f1ec-1f1f5.png?v8",guam:"unicode/1f1ec-1f1fa.png?v8",guard:"unicode/1f482.png?v8",guardsman:"unicode/1f482-2642.png?v8",guardswoman:"unicode/1f482-2640.png?v8",guatemala:"unicode/1f1ec-1f1f9.png?v8",guernsey:"unicode/1f1ec-1f1ec.png?v8",guide_dog:"unicode/1f9ae.png?v8",guinea:"unicode/1f1ec-1f1f3.png?v8",guinea_bissau:"unicode/1f1ec-1f1fc.png?v8",guitar:"unicode/1f3b8.png?v8",gun:"unicode/1f52b.png?v8",guyana:"unicode/1f1ec-1f1fe.png?v8",haircut:"unicode/1f487.png?v8",haircut_man:"unicode/1f487-2642.png?v8",haircut_woman:"unicode/1f487-2640.png?v8",haiti:"unicode/1f1ed-1f1f9.png?v8",hamburger:"unicode/1f354.png?v8",hammer:"unicode/1f528.png?v8",hammer_and_pick:"unicode/2692.png?v8",hammer_and_wrench:"unicode/1f6e0.png?v8",hamster:"unicode/1f439.png?v8",hand:"unicode/270b.png?v8",hand_over_mouth:"unicode/1f92d.png?v8",handbag:"unicode/1f45c.png?v8",handball_person:"unicode/1f93e.png?v8",handshake:"unicode/1f91d.png?v8",hankey:"unicode/1f4a9.png?v8",hash:"unicode/0023-20e3.png?v8",hatched_chick:"unicode/1f425.png?v8",hatching_chick:"unicode/1f423.png?v8",headphones:"unicode/1f3a7.png?v8",headstone:"unicode/1faa6.png?v8",health_worker:"unicode/1f9d1-2695.png?v8",hear_no_evil:"unicode/1f649.png?v8",heard_mcdonald_islands:"unicode/1f1ed-1f1f2.png?v8",heart:"unicode/2764.png?v8",heart_decoration:"unicode/1f49f.png?v8",heart_eyes:"unicode/1f60d.png?v8",heart_eyes_cat:"unicode/1f63b.png?v8",heart_on_fire:"unicode/2764-1f525.png?v8",heartbeat:"unicode/1f493.png?v8",heartpulse:"unicode/1f497.png?v8",hearts:"unicode/2665.png?v8",heavy_check_mark:"unicode/2714.png?v8",heavy_division_sign:"unicode/2797.png?v8",heavy_dollar_sign:"unicode/1f4b2.png?v8",heavy_exclamation_mark:"unicode/2757.png?v8",heavy_heart_exclamation:"unicode/2763.png?v8",heavy_minus_sign:"unicode/2796.png?v8",heavy_multiplication_x:"unicode/2716.png?v8",heavy_plus_sign:"unicode/2795.png?v8",hedgehog:"unicode/1f994.png?v8",helicopter:"unicode/1f681.png?v8",herb:"unicode/1f33f.png?v8",hibiscus:"unicode/1f33a.png?v8",high_brightness:"unicode/1f506.png?v8",high_heel:"unicode/1f460.png?v8",hiking_boot:"unicode/1f97e.png?v8",hindu_temple:"unicode/1f6d5.png?v8",hippopotamus:"unicode/1f99b.png?v8",hocho:"unicode/1f52a.png?v8",hole:"unicode/1f573.png?v8",honduras:"unicode/1f1ed-1f1f3.png?v8",honey_pot:"unicode/1f36f.png?v8",honeybee:"unicode/1f41d.png?v8",hong_kong:"unicode/1f1ed-1f1f0.png?v8",hook:"unicode/1fa9d.png?v8",horse:"unicode/1f434.png?v8",horse_racing:"unicode/1f3c7.png?v8",hospital:"unicode/1f3e5.png?v8",hot_face:"unicode/1f975.png?v8",hot_pepper:"unicode/1f336.png?v8",hotdog:"unicode/1f32d.png?v8",hotel:"unicode/1f3e8.png?v8",hotsprings:"unicode/2668.png?v8",hourglass:"unicode/231b.png?v8",hourglass_flowing_sand:"unicode/23f3.png?v8",house:"unicode/1f3e0.png?v8",house_with_garden:"unicode/1f3e1.png?v8",houses:"unicode/1f3d8.png?v8",hugs:"unicode/1f917.png?v8",hungary:"unicode/1f1ed-1f1fa.png?v8",hurtrealbad:"hurtrealbad.png?v8",hushed:"unicode/1f62f.png?v8",hut:"unicode/1f6d6.png?v8",ice_cream:"unicode/1f368.png?v8",ice_cube:"unicode/1f9ca.png?v8",ice_hockey:"unicode/1f3d2.png?v8",ice_skate:"unicode/26f8.png?v8",icecream:"unicode/1f366.png?v8",iceland:"unicode/1f1ee-1f1f8.png?v8",id:"unicode/1f194.png?v8",ideograph_advantage:"unicode/1f250.png?v8",imp:"unicode/1f47f.png?v8",inbox_tray:"unicode/1f4e5.png?v8",incoming_envelope:"unicode/1f4e8.png?v8",india:"unicode/1f1ee-1f1f3.png?v8",indonesia:"unicode/1f1ee-1f1e9.png?v8",infinity:"unicode/267e.png?v8",information_desk_person:"unicode/1f481.png?v8",information_source:"unicode/2139.png?v8",innocent:"unicode/1f607.png?v8",interrobang:"unicode/2049.png?v8",iphone:"unicode/1f4f1.png?v8",iran:"unicode/1f1ee-1f1f7.png?v8",iraq:"unicode/1f1ee-1f1f6.png?v8",ireland:"unicode/1f1ee-1f1ea.png?v8",isle_of_man:"unicode/1f1ee-1f1f2.png?v8",israel:"unicode/1f1ee-1f1f1.png?v8",it:"unicode/1f1ee-1f1f9.png?v8",izakaya_lantern:"unicode/1f3ee.png?v8",jack_o_lantern:"unicode/1f383.png?v8",jamaica:"unicode/1f1ef-1f1f2.png?v8",japan:"unicode/1f5fe.png?v8",japanese_castle:"unicode/1f3ef.png?v8",japanese_goblin:"unicode/1f47a.png?v8",japanese_ogre:"unicode/1f479.png?v8",jeans:"unicode/1f456.png?v8",jersey:"unicode/1f1ef-1f1ea.png?v8",jigsaw:"unicode/1f9e9.png?v8",jordan:"unicode/1f1ef-1f1f4.png?v8",joy:"unicode/1f602.png?v8",joy_cat:"unicode/1f639.png?v8",joystick:"unicode/1f579.png?v8",jp:"unicode/1f1ef-1f1f5.png?v8",judge:"unicode/1f9d1-2696.png?v8",juggling_person:"unicode/1f939.png?v8",kaaba:"unicode/1f54b.png?v8",kangaroo:"unicode/1f998.png?v8",kazakhstan:"unicode/1f1f0-1f1ff.png?v8",kenya:"unicode/1f1f0-1f1ea.png?v8",key:"unicode/1f511.png?v8",keyboard:"unicode/2328.png?v8",keycap_ten:"unicode/1f51f.png?v8",kick_scooter:"unicode/1f6f4.png?v8",kimono:"unicode/1f458.png?v8",kiribati:"unicode/1f1f0-1f1ee.png?v8",kiss:"unicode/1f48b.png?v8",kissing:"unicode/1f617.png?v8",kissing_cat:"unicode/1f63d.png?v8",kissing_closed_eyes:"unicode/1f61a.png?v8",kissing_heart:"unicode/1f618.png?v8",kissing_smiling_eyes:"unicode/1f619.png?v8",kite:"unicode/1fa81.png?v8",kiwi_fruit:"unicode/1f95d.png?v8",kneeling_man:"unicode/1f9ce-2642.png?v8",kneeling_person:"unicode/1f9ce.png?v8",kneeling_woman:"unicode/1f9ce-2640.png?v8",knife:"unicode/1f52a.png?v8",knot:"unicode/1faa2.png?v8",koala:"unicode/1f428.png?v8",koko:"unicode/1f201.png?v8",kosovo:"unicode/1f1fd-1f1f0.png?v8",kr:"unicode/1f1f0-1f1f7.png?v8",kuwait:"unicode/1f1f0-1f1fc.png?v8",kyrgyzstan:"unicode/1f1f0-1f1ec.png?v8",lab_coat:"unicode/1f97c.png?v8",label:"unicode/1f3f7.png?v8",lacrosse:"unicode/1f94d.png?v8",ladder:"unicode/1fa9c.png?v8",lady_beetle:"unicode/1f41e.png?v8",lantern:"unicode/1f3ee.png?v8",laos:"unicode/1f1f1-1f1e6.png?v8",large_blue_circle:"unicode/1f535.png?v8",large_blue_diamond:"unicode/1f537.png?v8",large_orange_diamond:"unicode/1f536.png?v8",last_quarter_moon:"unicode/1f317.png?v8",last_quarter_moon_with_face:"unicode/1f31c.png?v8",latin_cross:"unicode/271d.png?v8",latvia:"unicode/1f1f1-1f1fb.png?v8",laughing:"unicode/1f606.png?v8",leafy_green:"unicode/1f96c.png?v8",leaves:"unicode/1f343.png?v8",lebanon:"unicode/1f1f1-1f1e7.png?v8",ledger:"unicode/1f4d2.png?v8",left_luggage:"unicode/1f6c5.png?v8",left_right_arrow:"unicode/2194.png?v8",left_speech_bubble:"unicode/1f5e8.png?v8",leftwards_arrow_with_hook:"unicode/21a9.png?v8",leg:"unicode/1f9b5.png?v8",lemon:"unicode/1f34b.png?v8",leo:"unicode/264c.png?v8",leopard:"unicode/1f406.png?v8",lesotho:"unicode/1f1f1-1f1f8.png?v8",level_slider:"unicode/1f39a.png?v8",liberia:"unicode/1f1f1-1f1f7.png?v8",libra:"unicode/264e.png?v8",libya:"unicode/1f1f1-1f1fe.png?v8",liechtenstein:"unicode/1f1f1-1f1ee.png?v8",light_rail:"unicode/1f688.png?v8",link:"unicode/1f517.png?v8",lion:"unicode/1f981.png?v8",lips:"unicode/1f444.png?v8",lipstick:"unicode/1f484.png?v8",lithuania:"unicode/1f1f1-1f1f9.png?v8",lizard:"unicode/1f98e.png?v8",llama:"unicode/1f999.png?v8",lobster:"unicode/1f99e.png?v8",lock:"unicode/1f512.png?v8",lock_with_ink_pen:"unicode/1f50f.png?v8",lollipop:"unicode/1f36d.png?v8",long_drum:"unicode/1fa98.png?v8",loop:"unicode/27bf.png?v8",lotion_bottle:"unicode/1f9f4.png?v8",lotus_position:"unicode/1f9d8.png?v8",lotus_position_man:"unicode/1f9d8-2642.png?v8",lotus_position_woman:"unicode/1f9d8-2640.png?v8",loud_sound:"unicode/1f50a.png?v8",loudspeaker:"unicode/1f4e2.png?v8",love_hotel:"unicode/1f3e9.png?v8",love_letter:"unicode/1f48c.png?v8",love_you_gesture:"unicode/1f91f.png?v8",low_brightness:"unicode/1f505.png?v8",luggage:"unicode/1f9f3.png?v8",lungs:"unicode/1fac1.png?v8",luxembourg:"unicode/1f1f1-1f1fa.png?v8",lying_face:"unicode/1f925.png?v8",m:"unicode/24c2.png?v8",macau:"unicode/1f1f2-1f1f4.png?v8",macedonia:"unicode/1f1f2-1f1f0.png?v8",madagascar:"unicode/1f1f2-1f1ec.png?v8",mag:"unicode/1f50d.png?v8",mag_right:"unicode/1f50e.png?v8",mage:"unicode/1f9d9.png?v8",mage_man:"unicode/1f9d9-2642.png?v8",mage_woman:"unicode/1f9d9-2640.png?v8",magic_wand:"unicode/1fa84.png?v8",magnet:"unicode/1f9f2.png?v8",mahjong:"unicode/1f004.png?v8",mailbox:"unicode/1f4eb.png?v8",mailbox_closed:"unicode/1f4ea.png?v8",mailbox_with_mail:"unicode/1f4ec.png?v8",mailbox_with_no_mail:"unicode/1f4ed.png?v8",malawi:"unicode/1f1f2-1f1fc.png?v8",malaysia:"unicode/1f1f2-1f1fe.png?v8",maldives:"unicode/1f1f2-1f1fb.png?v8",male_detective:"unicode/1f575-2642.png?v8",male_sign:"unicode/2642.png?v8",mali:"unicode/1f1f2-1f1f1.png?v8",malta:"unicode/1f1f2-1f1f9.png?v8",mammoth:"unicode/1f9a3.png?v8",man:"unicode/1f468.png?v8",man_artist:"unicode/1f468-1f3a8.png?v8",man_astronaut:"unicode/1f468-1f680.png?v8",man_beard:"unicode/1f9d4-2642.png?v8",man_cartwheeling:"unicode/1f938-2642.png?v8",man_cook:"unicode/1f468-1f373.png?v8",man_dancing:"unicode/1f57a.png?v8",man_facepalming:"unicode/1f926-2642.png?v8",man_factory_worker:"unicode/1f468-1f3ed.png?v8",man_farmer:"unicode/1f468-1f33e.png?v8",man_feeding_baby:"unicode/1f468-1f37c.png?v8",man_firefighter:"unicode/1f468-1f692.png?v8",man_health_worker:"unicode/1f468-2695.png?v8",man_in_manual_wheelchair:"unicode/1f468-1f9bd.png?v8",man_in_motorized_wheelchair:"unicode/1f468-1f9bc.png?v8",man_in_tuxedo:"unicode/1f935-2642.png?v8",man_judge:"unicode/1f468-2696.png?v8",man_juggling:"unicode/1f939-2642.png?v8",man_mechanic:"unicode/1f468-1f527.png?v8",man_office_worker:"unicode/1f468-1f4bc.png?v8",man_pilot:"unicode/1f468-2708.png?v8",man_playing_handball:"unicode/1f93e-2642.png?v8",man_playing_water_polo:"unicode/1f93d-2642.png?v8",man_scientist:"unicode/1f468-1f52c.png?v8",man_shrugging:"unicode/1f937-2642.png?v8",man_singer:"unicode/1f468-1f3a4.png?v8",man_student:"unicode/1f468-1f393.png?v8",man_teacher:"unicode/1f468-1f3eb.png?v8",man_technologist:"unicode/1f468-1f4bb.png?v8",man_with_gua_pi_mao:"unicode/1f472.png?v8",man_with_probing_cane:"unicode/1f468-1f9af.png?v8",man_with_turban:"unicode/1f473-2642.png?v8",man_with_veil:"unicode/1f470-2642.png?v8",mandarin:"unicode/1f34a.png?v8",mango:"unicode/1f96d.png?v8",mans_shoe:"unicode/1f45e.png?v8",mantelpiece_clock:"unicode/1f570.png?v8",manual_wheelchair:"unicode/1f9bd.png?v8",maple_leaf:"unicode/1f341.png?v8",marshall_islands:"unicode/1f1f2-1f1ed.png?v8",martial_arts_uniform:"unicode/1f94b.png?v8",martinique:"unicode/1f1f2-1f1f6.png?v8",mask:"unicode/1f637.png?v8",massage:"unicode/1f486.png?v8",massage_man:"unicode/1f486-2642.png?v8",massage_woman:"unicode/1f486-2640.png?v8",mate:"unicode/1f9c9.png?v8",mauritania:"unicode/1f1f2-1f1f7.png?v8",mauritius:"unicode/1f1f2-1f1fa.png?v8",mayotte:"unicode/1f1fe-1f1f9.png?v8",meat_on_bone:"unicode/1f356.png?v8",mechanic:"unicode/1f9d1-1f527.png?v8",mechanical_arm:"unicode/1f9be.png?v8",mechanical_leg:"unicode/1f9bf.png?v8",medal_military:"unicode/1f396.png?v8",medal_sports:"unicode/1f3c5.png?v8",medical_symbol:"unicode/2695.png?v8",mega:"unicode/1f4e3.png?v8",melon:"unicode/1f348.png?v8",memo:"unicode/1f4dd.png?v8",men_wrestling:"unicode/1f93c-2642.png?v8",mending_heart:"unicode/2764-1fa79.png?v8",menorah:"unicode/1f54e.png?v8",mens:"unicode/1f6b9.png?v8",mermaid:"unicode/1f9dc-2640.png?v8",merman:"unicode/1f9dc-2642.png?v8",merperson:"unicode/1f9dc.png?v8",metal:"unicode/1f918.png?v8",metro:"unicode/1f687.png?v8",mexico:"unicode/1f1f2-1f1fd.png?v8",microbe:"unicode/1f9a0.png?v8",micronesia:"unicode/1f1eb-1f1f2.png?v8",microphone:"unicode/1f3a4.png?v8",microscope:"unicode/1f52c.png?v8",middle_finger:"unicode/1f595.png?v8",military_helmet:"unicode/1fa96.png?v8",milk_glass:"unicode/1f95b.png?v8",milky_way:"unicode/1f30c.png?v8",minibus:"unicode/1f690.png?v8",minidisc:"unicode/1f4bd.png?v8",mirror:"unicode/1fa9e.png?v8",mobile_phone_off:"unicode/1f4f4.png?v8",moldova:"unicode/1f1f2-1f1e9.png?v8",monaco:"unicode/1f1f2-1f1e8.png?v8",money_mouth_face:"unicode/1f911.png?v8",money_with_wings:"unicode/1f4b8.png?v8",moneybag:"unicode/1f4b0.png?v8",mongolia:"unicode/1f1f2-1f1f3.png?v8",monkey:"unicode/1f412.png?v8",monkey_face:"unicode/1f435.png?v8",monocle_face:"unicode/1f9d0.png?v8",monorail:"unicode/1f69d.png?v8",montenegro:"unicode/1f1f2-1f1ea.png?v8",montserrat:"unicode/1f1f2-1f1f8.png?v8",moon:"unicode/1f314.png?v8",moon_cake:"unicode/1f96e.png?v8",morocco:"unicode/1f1f2-1f1e6.png?v8",mortar_board:"unicode/1f393.png?v8",mosque:"unicode/1f54c.png?v8",mosquito:"unicode/1f99f.png?v8",motor_boat:"unicode/1f6e5.png?v8",motor_scooter:"unicode/1f6f5.png?v8",motorcycle:"unicode/1f3cd.png?v8",motorized_wheelchair:"unicode/1f9bc.png?v8",motorway:"unicode/1f6e3.png?v8",mount_fuji:"unicode/1f5fb.png?v8",mountain:"unicode/26f0.png?v8",mountain_bicyclist:"unicode/1f6b5.png?v8",mountain_biking_man:"unicode/1f6b5-2642.png?v8",mountain_biking_woman:"unicode/1f6b5-2640.png?v8",mountain_cableway:"unicode/1f6a0.png?v8",mountain_railway:"unicode/1f69e.png?v8",mountain_snow:"unicode/1f3d4.png?v8",mouse:"unicode/1f42d.png?v8",mouse2:"unicode/1f401.png?v8",mouse_trap:"unicode/1faa4.png?v8",movie_camera:"unicode/1f3a5.png?v8",moyai:"unicode/1f5ff.png?v8",mozambique:"unicode/1f1f2-1f1ff.png?v8",mrs_claus:"unicode/1f936.png?v8",muscle:"unicode/1f4aa.png?v8",mushroom:"unicode/1f344.png?v8",musical_keyboard:"unicode/1f3b9.png?v8",musical_note:"unicode/1f3b5.png?v8",musical_score:"unicode/1f3bc.png?v8",mute:"unicode/1f507.png?v8",mx_claus:"unicode/1f9d1-1f384.png?v8",myanmar:"unicode/1f1f2-1f1f2.png?v8",nail_care:"unicode/1f485.png?v8",name_badge:"unicode/1f4db.png?v8",namibia:"unicode/1f1f3-1f1e6.png?v8",national_park:"unicode/1f3de.png?v8",nauru:"unicode/1f1f3-1f1f7.png?v8",nauseated_face:"unicode/1f922.png?v8",nazar_amulet:"unicode/1f9ff.png?v8",neckbeard:"neckbeard.png?v8",necktie:"unicode/1f454.png?v8",negative_squared_cross_mark:"unicode/274e.png?v8",nepal:"unicode/1f1f3-1f1f5.png?v8",nerd_face:"unicode/1f913.png?v8",nesting_dolls:"unicode/1fa86.png?v8",netherlands:"unicode/1f1f3-1f1f1.png?v8",neutral_face:"unicode/1f610.png?v8",new:"unicode/1f195.png?v8",new_caledonia:"unicode/1f1f3-1f1e8.png?v8",new_moon:"unicode/1f311.png?v8",new_moon_with_face:"unicode/1f31a.png?v8",new_zealand:"unicode/1f1f3-1f1ff.png?v8",newspaper:"unicode/1f4f0.png?v8",newspaper_roll:"unicode/1f5de.png?v8",next_track_button:"unicode/23ed.png?v8",ng:"unicode/1f196.png?v8",ng_man:"unicode/1f645-2642.png?v8",ng_woman:"unicode/1f645-2640.png?v8",nicaragua:"unicode/1f1f3-1f1ee.png?v8",niger:"unicode/1f1f3-1f1ea.png?v8",nigeria:"unicode/1f1f3-1f1ec.png?v8",night_with_stars:"unicode/1f303.png?v8",nine:"unicode/0039-20e3.png?v8",ninja:"unicode/1f977.png?v8",niue:"unicode/1f1f3-1f1fa.png?v8",no_bell:"unicode/1f515.png?v8",no_bicycles:"unicode/1f6b3.png?v8",no_entry:"unicode/26d4.png?v8",no_entry_sign:"unicode/1f6ab.png?v8",no_good:"unicode/1f645.png?v8",no_good_man:"unicode/1f645-2642.png?v8",no_good_woman:"unicode/1f645-2640.png?v8",no_mobile_phones:"unicode/1f4f5.png?v8",no_mouth:"unicode/1f636.png?v8",no_pedestrians:"unicode/1f6b7.png?v8",no_smoking:"unicode/1f6ad.png?v8","non-potable_water":"unicode/1f6b1.png?v8",norfolk_island:"unicode/1f1f3-1f1eb.png?v8",north_korea:"unicode/1f1f0-1f1f5.png?v8",northern_mariana_islands:"unicode/1f1f2-1f1f5.png?v8",norway:"unicode/1f1f3-1f1f4.png?v8",nose:"unicode/1f443.png?v8",notebook:"unicode/1f4d3.png?v8",notebook_with_decorative_cover:"unicode/1f4d4.png?v8",notes:"unicode/1f3b6.png?v8",nut_and_bolt:"unicode/1f529.png?v8",o:"unicode/2b55.png?v8",o2:"unicode/1f17e.png?v8",ocean:"unicode/1f30a.png?v8",octocat:"octocat.png?v8",octopus:"unicode/1f419.png?v8",oden:"unicode/1f362.png?v8",office:"unicode/1f3e2.png?v8",office_worker:"unicode/1f9d1-1f4bc.png?v8",oil_drum:"unicode/1f6e2.png?v8",ok:"unicode/1f197.png?v8",ok_hand:"unicode/1f44c.png?v8",ok_man:"unicode/1f646-2642.png?v8",ok_person:"unicode/1f646.png?v8",ok_woman:"unicode/1f646-2640.png?v8",old_key:"unicode/1f5dd.png?v8",older_adult:"unicode/1f9d3.png?v8",older_man:"unicode/1f474.png?v8",older_woman:"unicode/1f475.png?v8",olive:"unicode/1fad2.png?v8",om:"unicode/1f549.png?v8",oman:"unicode/1f1f4-1f1f2.png?v8",on:"unicode/1f51b.png?v8",oncoming_automobile:"unicode/1f698.png?v8",oncoming_bus:"unicode/1f68d.png?v8",oncoming_police_car:"unicode/1f694.png?v8",oncoming_taxi:"unicode/1f696.png?v8",one:"unicode/0031-20e3.png?v8",one_piece_swimsuit:"unicode/1fa71.png?v8",onion:"unicode/1f9c5.png?v8",open_book:"unicode/1f4d6.png?v8",open_file_folder:"unicode/1f4c2.png?v8",open_hands:"unicode/1f450.png?v8",open_mouth:"unicode/1f62e.png?v8",open_umbrella:"unicode/2602.png?v8",ophiuchus:"unicode/26ce.png?v8",orange:"unicode/1f34a.png?v8",orange_book:"unicode/1f4d9.png?v8",orange_circle:"unicode/1f7e0.png?v8",orange_heart:"unicode/1f9e1.png?v8",orange_square:"unicode/1f7e7.png?v8",orangutan:"unicode/1f9a7.png?v8",orthodox_cross:"unicode/2626.png?v8",otter:"unicode/1f9a6.png?v8",outbox_tray:"unicode/1f4e4.png?v8",owl:"unicode/1f989.png?v8",ox:"unicode/1f402.png?v8",oyster:"unicode/1f9aa.png?v8",package:"unicode/1f4e6.png?v8",page_facing_up:"unicode/1f4c4.png?v8",page_with_curl:"unicode/1f4c3.png?v8",pager:"unicode/1f4df.png?v8",paintbrush:"unicode/1f58c.png?v8",pakistan:"unicode/1f1f5-1f1f0.png?v8",palau:"unicode/1f1f5-1f1fc.png?v8",palestinian_territories:"unicode/1f1f5-1f1f8.png?v8",palm_tree:"unicode/1f334.png?v8",palms_up_together:"unicode/1f932.png?v8",panama:"unicode/1f1f5-1f1e6.png?v8",pancakes:"unicode/1f95e.png?v8",panda_face:"unicode/1f43c.png?v8",paperclip:"unicode/1f4ce.png?v8",paperclips:"unicode/1f587.png?v8",papua_new_guinea:"unicode/1f1f5-1f1ec.png?v8",parachute:"unicode/1fa82.png?v8",paraguay:"unicode/1f1f5-1f1fe.png?v8",parasol_on_ground:"unicode/26f1.png?v8",parking:"unicode/1f17f.png?v8",parrot:"unicode/1f99c.png?v8",part_alternation_mark:"unicode/303d.png?v8",partly_sunny:"unicode/26c5.png?v8",partying_face:"unicode/1f973.png?v8",passenger_ship:"unicode/1f6f3.png?v8",passport_control:"unicode/1f6c2.png?v8",pause_button:"unicode/23f8.png?v8",paw_prints:"unicode/1f43e.png?v8",peace_symbol:"unicode/262e.png?v8",peach:"unicode/1f351.png?v8",peacock:"unicode/1f99a.png?v8",peanuts:"unicode/1f95c.png?v8",pear:"unicode/1f350.png?v8",pen:"unicode/1f58a.png?v8",pencil:"unicode/1f4dd.png?v8",pencil2:"unicode/270f.png?v8",penguin:"unicode/1f427.png?v8",pensive:"unicode/1f614.png?v8",people_holding_hands:"unicode/1f9d1-1f91d-1f9d1.png?v8",people_hugging:"unicode/1fac2.png?v8",performing_arts:"unicode/1f3ad.png?v8",persevere:"unicode/1f623.png?v8",person_bald:"unicode/1f9d1-1f9b2.png?v8",person_curly_hair:"unicode/1f9d1-1f9b1.png?v8",person_feeding_baby:"unicode/1f9d1-1f37c.png?v8",person_fencing:"unicode/1f93a.png?v8",person_in_manual_wheelchair:"unicode/1f9d1-1f9bd.png?v8",person_in_motorized_wheelchair:"unicode/1f9d1-1f9bc.png?v8",person_in_tuxedo:"unicode/1f935.png?v8",person_red_hair:"unicode/1f9d1-1f9b0.png?v8",person_white_hair:"unicode/1f9d1-1f9b3.png?v8",person_with_probing_cane:"unicode/1f9d1-1f9af.png?v8",person_with_turban:"unicode/1f473.png?v8",person_with_veil:"unicode/1f470.png?v8",peru:"unicode/1f1f5-1f1ea.png?v8",petri_dish:"unicode/1f9eb.png?v8",philippines:"unicode/1f1f5-1f1ed.png?v8",phone:"unicode/260e.png?v8",pick:"unicode/26cf.png?v8",pickup_truck:"unicode/1f6fb.png?v8",pie:"unicode/1f967.png?v8",pig:"unicode/1f437.png?v8",pig2:"unicode/1f416.png?v8",pig_nose:"unicode/1f43d.png?v8",pill:"unicode/1f48a.png?v8",pilot:"unicode/1f9d1-2708.png?v8",pinata:"unicode/1fa85.png?v8",pinched_fingers:"unicode/1f90c.png?v8",pinching_hand:"unicode/1f90f.png?v8",pineapple:"unicode/1f34d.png?v8",ping_pong:"unicode/1f3d3.png?v8",pirate_flag:"unicode/1f3f4-2620.png?v8",pisces:"unicode/2653.png?v8",pitcairn_islands:"unicode/1f1f5-1f1f3.png?v8",pizza:"unicode/1f355.png?v8",placard:"unicode/1faa7.png?v8",place_of_worship:"unicode/1f6d0.png?v8",plate_with_cutlery:"unicode/1f37d.png?v8",play_or_pause_button:"unicode/23ef.png?v8",pleading_face:"unicode/1f97a.png?v8",plunger:"unicode/1faa0.png?v8",point_down:"unicode/1f447.png?v8",point_left:"unicode/1f448.png?v8",point_right:"unicode/1f449.png?v8",point_up:"unicode/261d.png?v8",point_up_2:"unicode/1f446.png?v8",poland:"unicode/1f1f5-1f1f1.png?v8",polar_bear:"unicode/1f43b-2744.png?v8",police_car:"unicode/1f693.png?v8",police_officer:"unicode/1f46e.png?v8",policeman:"unicode/1f46e-2642.png?v8",policewoman:"unicode/1f46e-2640.png?v8",poodle:"unicode/1f429.png?v8",poop:"unicode/1f4a9.png?v8",popcorn:"unicode/1f37f.png?v8",portugal:"unicode/1f1f5-1f1f9.png?v8",post_office:"unicode/1f3e3.png?v8",postal_horn:"unicode/1f4ef.png?v8",postbox:"unicode/1f4ee.png?v8",potable_water:"unicode/1f6b0.png?v8",potato:"unicode/1f954.png?v8",potted_plant:"unicode/1fab4.png?v8",pouch:"unicode/1f45d.png?v8",poultry_leg:"unicode/1f357.png?v8",pound:"unicode/1f4b7.png?v8",pout:"unicode/1f621.png?v8",pouting_cat:"unicode/1f63e.png?v8",pouting_face:"unicode/1f64e.png?v8",pouting_man:"unicode/1f64e-2642.png?v8",pouting_woman:"unicode/1f64e-2640.png?v8",pray:"unicode/1f64f.png?v8",prayer_beads:"unicode/1f4ff.png?v8",pregnant_woman:"unicode/1f930.png?v8",pretzel:"unicode/1f968.png?v8",previous_track_button:"unicode/23ee.png?v8",prince:"unicode/1f934.png?v8",princess:"unicode/1f478.png?v8",printer:"unicode/1f5a8.png?v8",probing_cane:"unicode/1f9af.png?v8",puerto_rico:"unicode/1f1f5-1f1f7.png?v8",punch:"unicode/1f44a.png?v8",purple_circle:"unicode/1f7e3.png?v8",purple_heart:"unicode/1f49c.png?v8",purple_square:"unicode/1f7ea.png?v8",purse:"unicode/1f45b.png?v8",pushpin:"unicode/1f4cc.png?v8",put_litter_in_its_place:"unicode/1f6ae.png?v8",qatar:"unicode/1f1f6-1f1e6.png?v8",question:"unicode/2753.png?v8",rabbit:"unicode/1f430.png?v8",rabbit2:"unicode/1f407.png?v8",raccoon:"unicode/1f99d.png?v8",racehorse:"unicode/1f40e.png?v8",racing_car:"unicode/1f3ce.png?v8",radio:"unicode/1f4fb.png?v8",radio_button:"unicode/1f518.png?v8",radioactive:"unicode/2622.png?v8",rage:"unicode/1f621.png?v8",rage1:"rage1.png?v8",rage2:"rage2.png?v8",rage3:"rage3.png?v8",rage4:"rage4.png?v8",railway_car:"unicode/1f683.png?v8",railway_track:"unicode/1f6e4.png?v8",rainbow:"unicode/1f308.png?v8",rainbow_flag:"unicode/1f3f3-1f308.png?v8",raised_back_of_hand:"unicode/1f91a.png?v8",raised_eyebrow:"unicode/1f928.png?v8",raised_hand:"unicode/270b.png?v8",raised_hand_with_fingers_splayed:"unicode/1f590.png?v8",raised_hands:"unicode/1f64c.png?v8",raising_hand:"unicode/1f64b.png?v8",raising_hand_man:"unicode/1f64b-2642.png?v8",raising_hand_woman:"unicode/1f64b-2640.png?v8",ram:"unicode/1f40f.png?v8",ramen:"unicode/1f35c.png?v8",rat:"unicode/1f400.png?v8",razor:"unicode/1fa92.png?v8",receipt:"unicode/1f9fe.png?v8",record_button:"unicode/23fa.png?v8",recycle:"unicode/267b.png?v8",red_car:"unicode/1f697.png?v8",red_circle:"unicode/1f534.png?v8",red_envelope:"unicode/1f9e7.png?v8",red_haired_man:"unicode/1f468-1f9b0.png?v8",red_haired_woman:"unicode/1f469-1f9b0.png?v8",red_square:"unicode/1f7e5.png?v8",registered:"unicode/00ae.png?v8",relaxed:"unicode/263a.png?v8",relieved:"unicode/1f60c.png?v8",reminder_ribbon:"unicode/1f397.png?v8",repeat:"unicode/1f501.png?v8",repeat_one:"unicode/1f502.png?v8",rescue_worker_helmet:"unicode/26d1.png?v8",restroom:"unicode/1f6bb.png?v8",reunion:"unicode/1f1f7-1f1ea.png?v8",revolving_hearts:"unicode/1f49e.png?v8",rewind:"unicode/23ea.png?v8",rhinoceros:"unicode/1f98f.png?v8",ribbon:"unicode/1f380.png?v8",rice:"unicode/1f35a.png?v8",rice_ball:"unicode/1f359.png?v8",rice_cracker:"unicode/1f358.png?v8",rice_scene:"unicode/1f391.png?v8",right_anger_bubble:"unicode/1f5ef.png?v8",ring:"unicode/1f48d.png?v8",ringed_planet:"unicode/1fa90.png?v8",robot:"unicode/1f916.png?v8",rock:"unicode/1faa8.png?v8",rocket:"unicode/1f680.png?v8",rofl:"unicode/1f923.png?v8",roll_eyes:"unicode/1f644.png?v8",roll_of_paper:"unicode/1f9fb.png?v8",roller_coaster:"unicode/1f3a2.png?v8",roller_skate:"unicode/1f6fc.png?v8",romania:"unicode/1f1f7-1f1f4.png?v8",rooster:"unicode/1f413.png?v8",rose:"unicode/1f339.png?v8",rosette:"unicode/1f3f5.png?v8",rotating_light:"unicode/1f6a8.png?v8",round_pushpin:"unicode/1f4cd.png?v8",rowboat:"unicode/1f6a3.png?v8",rowing_man:"unicode/1f6a3-2642.png?v8",rowing_woman:"unicode/1f6a3-2640.png?v8",ru:"unicode/1f1f7-1f1fa.png?v8",rugby_football:"unicode/1f3c9.png?v8",runner:"unicode/1f3c3.png?v8",running:"unicode/1f3c3.png?v8",running_man:"unicode/1f3c3-2642.png?v8",running_shirt_with_sash:"unicode/1f3bd.png?v8",running_woman:"unicode/1f3c3-2640.png?v8",rwanda:"unicode/1f1f7-1f1fc.png?v8",sa:"unicode/1f202.png?v8",safety_pin:"unicode/1f9f7.png?v8",safety_vest:"unicode/1f9ba.png?v8",sagittarius:"unicode/2650.png?v8",sailboat:"unicode/26f5.png?v8",sake:"unicode/1f376.png?v8",salt:"unicode/1f9c2.png?v8",samoa:"unicode/1f1fc-1f1f8.png?v8",san_marino:"unicode/1f1f8-1f1f2.png?v8",sandal:"unicode/1f461.png?v8",sandwich:"unicode/1f96a.png?v8",santa:"unicode/1f385.png?v8",sao_tome_principe:"unicode/1f1f8-1f1f9.png?v8",sari:"unicode/1f97b.png?v8",sassy_man:"unicode/1f481-2642.png?v8",sassy_woman:"unicode/1f481-2640.png?v8",satellite:"unicode/1f4e1.png?v8",satisfied:"unicode/1f606.png?v8",saudi_arabia:"unicode/1f1f8-1f1e6.png?v8",sauna_man:"unicode/1f9d6-2642.png?v8",sauna_person:"unicode/1f9d6.png?v8",sauna_woman:"unicode/1f9d6-2640.png?v8",sauropod:"unicode/1f995.png?v8",saxophone:"unicode/1f3b7.png?v8",scarf:"unicode/1f9e3.png?v8",school:"unicode/1f3eb.png?v8",school_satchel:"unicode/1f392.png?v8",scientist:"unicode/1f9d1-1f52c.png?v8",scissors:"unicode/2702.png?v8",scorpion:"unicode/1f982.png?v8",scorpius:"unicode/264f.png?v8",scotland:"unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8",scream:"unicode/1f631.png?v8",scream_cat:"unicode/1f640.png?v8",screwdriver:"unicode/1fa9b.png?v8",scroll:"unicode/1f4dc.png?v8",seal:"unicode/1f9ad.png?v8",seat:"unicode/1f4ba.png?v8",secret:"unicode/3299.png?v8",see_no_evil:"unicode/1f648.png?v8",seedling:"unicode/1f331.png?v8",selfie:"unicode/1f933.png?v8",senegal:"unicode/1f1f8-1f1f3.png?v8",serbia:"unicode/1f1f7-1f1f8.png?v8",service_dog:"unicode/1f415-1f9ba.png?v8",seven:"unicode/0037-20e3.png?v8",sewing_needle:"unicode/1faa1.png?v8",seychelles:"unicode/1f1f8-1f1e8.png?v8",shallow_pan_of_food:"unicode/1f958.png?v8",shamrock:"unicode/2618.png?v8",shark:"unicode/1f988.png?v8",shaved_ice:"unicode/1f367.png?v8",sheep:"unicode/1f411.png?v8",shell:"unicode/1f41a.png?v8",shield:"unicode/1f6e1.png?v8",shinto_shrine:"unicode/26e9.png?v8",ship:"unicode/1f6a2.png?v8",shipit:"shipit.png?v8",shirt:"unicode/1f455.png?v8",shit:"unicode/1f4a9.png?v8",shoe:"unicode/1f45e.png?v8",shopping:"unicode/1f6cd.png?v8",shopping_cart:"unicode/1f6d2.png?v8",shorts:"unicode/1fa73.png?v8",shower:"unicode/1f6bf.png?v8",shrimp:"unicode/1f990.png?v8",shrug:"unicode/1f937.png?v8",shushing_face:"unicode/1f92b.png?v8",sierra_leone:"unicode/1f1f8-1f1f1.png?v8",signal_strength:"unicode/1f4f6.png?v8",singapore:"unicode/1f1f8-1f1ec.png?v8",singer:"unicode/1f9d1-1f3a4.png?v8",sint_maarten:"unicode/1f1f8-1f1fd.png?v8",six:"unicode/0036-20e3.png?v8",six_pointed_star:"unicode/1f52f.png?v8",skateboard:"unicode/1f6f9.png?v8",ski:"unicode/1f3bf.png?v8",skier:"unicode/26f7.png?v8",skull:"unicode/1f480.png?v8",skull_and_crossbones:"unicode/2620.png?v8",skunk:"unicode/1f9a8.png?v8",sled:"unicode/1f6f7.png?v8",sleeping:"unicode/1f634.png?v8",sleeping_bed:"unicode/1f6cc.png?v8",sleepy:"unicode/1f62a.png?v8",slightly_frowning_face:"unicode/1f641.png?v8",slightly_smiling_face:"unicode/1f642.png?v8",slot_machine:"unicode/1f3b0.png?v8",sloth:"unicode/1f9a5.png?v8",slovakia:"unicode/1f1f8-1f1f0.png?v8",slovenia:"unicode/1f1f8-1f1ee.png?v8",small_airplane:"unicode/1f6e9.png?v8",small_blue_diamond:"unicode/1f539.png?v8",small_orange_diamond:"unicode/1f538.png?v8",small_red_triangle:"unicode/1f53a.png?v8",small_red_triangle_down:"unicode/1f53b.png?v8",smile:"unicode/1f604.png?v8",smile_cat:"unicode/1f638.png?v8",smiley:"unicode/1f603.png?v8",smiley_cat:"unicode/1f63a.png?v8",smiling_face_with_tear:"unicode/1f972.png?v8",smiling_face_with_three_hearts:"unicode/1f970.png?v8",smiling_imp:"unicode/1f608.png?v8",smirk:"unicode/1f60f.png?v8",smirk_cat:"unicode/1f63c.png?v8",smoking:"unicode/1f6ac.png?v8",snail:"unicode/1f40c.png?v8",snake:"unicode/1f40d.png?v8",sneezing_face:"unicode/1f927.png?v8",snowboarder:"unicode/1f3c2.png?v8",snowflake:"unicode/2744.png?v8",snowman:"unicode/26c4.png?v8",snowman_with_snow:"unicode/2603.png?v8",soap:"unicode/1f9fc.png?v8",sob:"unicode/1f62d.png?v8",soccer:"unicode/26bd.png?v8",socks:"unicode/1f9e6.png?v8",softball:"unicode/1f94e.png?v8",solomon_islands:"unicode/1f1f8-1f1e7.png?v8",somalia:"unicode/1f1f8-1f1f4.png?v8",soon:"unicode/1f51c.png?v8",sos:"unicode/1f198.png?v8",sound:"unicode/1f509.png?v8",south_africa:"unicode/1f1ff-1f1e6.png?v8",south_georgia_south_sandwich_islands:"unicode/1f1ec-1f1f8.png?v8",south_sudan:"unicode/1f1f8-1f1f8.png?v8",space_invader:"unicode/1f47e.png?v8",spades:"unicode/2660.png?v8",spaghetti:"unicode/1f35d.png?v8",sparkle:"unicode/2747.png?v8",sparkler:"unicode/1f387.png?v8",sparkles:"unicode/2728.png?v8",sparkling_heart:"unicode/1f496.png?v8",speak_no_evil:"unicode/1f64a.png?v8",speaker:"unicode/1f508.png?v8",speaking_head:"unicode/1f5e3.png?v8",speech_balloon:"unicode/1f4ac.png?v8",speedboat:"unicode/1f6a4.png?v8",spider:"unicode/1f577.png?v8",spider_web:"unicode/1f578.png?v8",spiral_calendar:"unicode/1f5d3.png?v8",spiral_notepad:"unicode/1f5d2.png?v8",sponge:"unicode/1f9fd.png?v8",spoon:"unicode/1f944.png?v8",squid:"unicode/1f991.png?v8",sri_lanka:"unicode/1f1f1-1f1f0.png?v8",st_barthelemy:"unicode/1f1e7-1f1f1.png?v8",st_helena:"unicode/1f1f8-1f1ed.png?v8",st_kitts_nevis:"unicode/1f1f0-1f1f3.png?v8",st_lucia:"unicode/1f1f1-1f1e8.png?v8",st_martin:"unicode/1f1f2-1f1eb.png?v8",st_pierre_miquelon:"unicode/1f1f5-1f1f2.png?v8",st_vincent_grenadines:"unicode/1f1fb-1f1e8.png?v8",stadium:"unicode/1f3df.png?v8",standing_man:"unicode/1f9cd-2642.png?v8",standing_person:"unicode/1f9cd.png?v8",standing_woman:"unicode/1f9cd-2640.png?v8",star:"unicode/2b50.png?v8",star2:"unicode/1f31f.png?v8",star_and_crescent:"unicode/262a.png?v8",star_of_david:"unicode/2721.png?v8",star_struck:"unicode/1f929.png?v8",stars:"unicode/1f320.png?v8",station:"unicode/1f689.png?v8",statue_of_liberty:"unicode/1f5fd.png?v8",steam_locomotive:"unicode/1f682.png?v8",stethoscope:"unicode/1fa7a.png?v8",stew:"unicode/1f372.png?v8",stop_button:"unicode/23f9.png?v8",stop_sign:"unicode/1f6d1.png?v8",stopwatch:"unicode/23f1.png?v8",straight_ruler:"unicode/1f4cf.png?v8",strawberry:"unicode/1f353.png?v8",stuck_out_tongue:"unicode/1f61b.png?v8",stuck_out_tongue_closed_eyes:"unicode/1f61d.png?v8",stuck_out_tongue_winking_eye:"unicode/1f61c.png?v8",student:"unicode/1f9d1-1f393.png?v8",studio_microphone:"unicode/1f399.png?v8",stuffed_flatbread:"unicode/1f959.png?v8",sudan:"unicode/1f1f8-1f1e9.png?v8",sun_behind_large_cloud:"unicode/1f325.png?v8",sun_behind_rain_cloud:"unicode/1f326.png?v8",sun_behind_small_cloud:"unicode/1f324.png?v8",sun_with_face:"unicode/1f31e.png?v8",sunflower:"unicode/1f33b.png?v8",sunglasses:"unicode/1f60e.png?v8",sunny:"unicode/2600.png?v8",sunrise:"unicode/1f305.png?v8",sunrise_over_mountains:"unicode/1f304.png?v8",superhero:"unicode/1f9b8.png?v8",superhero_man:"unicode/1f9b8-2642.png?v8",superhero_woman:"unicode/1f9b8-2640.png?v8",supervillain:"unicode/1f9b9.png?v8",supervillain_man:"unicode/1f9b9-2642.png?v8",supervillain_woman:"unicode/1f9b9-2640.png?v8",surfer:"unicode/1f3c4.png?v8",surfing_man:"unicode/1f3c4-2642.png?v8",surfing_woman:"unicode/1f3c4-2640.png?v8",suriname:"unicode/1f1f8-1f1f7.png?v8",sushi:"unicode/1f363.png?v8",suspect:"suspect.png?v8",suspension_railway:"unicode/1f69f.png?v8",svalbard_jan_mayen:"unicode/1f1f8-1f1ef.png?v8",swan:"unicode/1f9a2.png?v8",swaziland:"unicode/1f1f8-1f1ff.png?v8",sweat:"unicode/1f613.png?v8",sweat_drops:"unicode/1f4a6.png?v8",sweat_smile:"unicode/1f605.png?v8",sweden:"unicode/1f1f8-1f1ea.png?v8",sweet_potato:"unicode/1f360.png?v8",swim_brief:"unicode/1fa72.png?v8",swimmer:"unicode/1f3ca.png?v8",swimming_man:"unicode/1f3ca-2642.png?v8",swimming_woman:"unicode/1f3ca-2640.png?v8",switzerland:"unicode/1f1e8-1f1ed.png?v8",symbols:"unicode/1f523.png?v8",synagogue:"unicode/1f54d.png?v8",syria:"unicode/1f1f8-1f1fe.png?v8",syringe:"unicode/1f489.png?v8","t-rex":"unicode/1f996.png?v8",taco:"unicode/1f32e.png?v8",tada:"unicode/1f389.png?v8",taiwan:"unicode/1f1f9-1f1fc.png?v8",tajikistan:"unicode/1f1f9-1f1ef.png?v8",takeout_box:"unicode/1f961.png?v8",tamale:"unicode/1fad4.png?v8",tanabata_tree:"unicode/1f38b.png?v8",tangerine:"unicode/1f34a.png?v8",tanzania:"unicode/1f1f9-1f1ff.png?v8",taurus:"unicode/2649.png?v8",taxi:"unicode/1f695.png?v8",tea:"unicode/1f375.png?v8",teacher:"unicode/1f9d1-1f3eb.png?v8",teapot:"unicode/1fad6.png?v8",technologist:"unicode/1f9d1-1f4bb.png?v8",teddy_bear:"unicode/1f9f8.png?v8",telephone:"unicode/260e.png?v8",telephone_receiver:"unicode/1f4de.png?v8",telescope:"unicode/1f52d.png?v8",tennis:"unicode/1f3be.png?v8",tent:"unicode/26fa.png?v8",test_tube:"unicode/1f9ea.png?v8",thailand:"unicode/1f1f9-1f1ed.png?v8",thermometer:"unicode/1f321.png?v8",thinking:"unicode/1f914.png?v8",thong_sandal:"unicode/1fa74.png?v8",thought_balloon:"unicode/1f4ad.png?v8",thread:"unicode/1f9f5.png?v8",three:"unicode/0033-20e3.png?v8",thumbsdown:"unicode/1f44e.png?v8",thumbsup:"unicode/1f44d.png?v8",ticket:"unicode/1f3ab.png?v8",tickets:"unicode/1f39f.png?v8",tiger:"unicode/1f42f.png?v8",tiger2:"unicode/1f405.png?v8",timer_clock:"unicode/23f2.png?v8",timor_leste:"unicode/1f1f9-1f1f1.png?v8",tipping_hand_man:"unicode/1f481-2642.png?v8",tipping_hand_person:"unicode/1f481.png?v8",tipping_hand_woman:"unicode/1f481-2640.png?v8",tired_face:"unicode/1f62b.png?v8",tm:"unicode/2122.png?v8",togo:"unicode/1f1f9-1f1ec.png?v8",toilet:"unicode/1f6bd.png?v8",tokelau:"unicode/1f1f9-1f1f0.png?v8",tokyo_tower:"unicode/1f5fc.png?v8",tomato:"unicode/1f345.png?v8",tonga:"unicode/1f1f9-1f1f4.png?v8",tongue:"unicode/1f445.png?v8",toolbox:"unicode/1f9f0.png?v8",tooth:"unicode/1f9b7.png?v8",toothbrush:"unicode/1faa5.png?v8",top:"unicode/1f51d.png?v8",tophat:"unicode/1f3a9.png?v8",tornado:"unicode/1f32a.png?v8",tr:"unicode/1f1f9-1f1f7.png?v8",trackball:"unicode/1f5b2.png?v8",tractor:"unicode/1f69c.png?v8",traffic_light:"unicode/1f6a5.png?v8",train:"unicode/1f68b.png?v8",train2:"unicode/1f686.png?v8",tram:"unicode/1f68a.png?v8",transgender_flag:"unicode/1f3f3-26a7.png?v8",transgender_symbol:"unicode/26a7.png?v8",triangular_flag_on_post:"unicode/1f6a9.png?v8",triangular_ruler:"unicode/1f4d0.png?v8",trident:"unicode/1f531.png?v8",trinidad_tobago:"unicode/1f1f9-1f1f9.png?v8",tristan_da_cunha:"unicode/1f1f9-1f1e6.png?v8",triumph:"unicode/1f624.png?v8",trolleybus:"unicode/1f68e.png?v8",trollface:"trollface.png?v8",trophy:"unicode/1f3c6.png?v8",tropical_drink:"unicode/1f379.png?v8",tropical_fish:"unicode/1f420.png?v8",truck:"unicode/1f69a.png?v8",trumpet:"unicode/1f3ba.png?v8",tshirt:"unicode/1f455.png?v8",tulip:"unicode/1f337.png?v8",tumbler_glass:"unicode/1f943.png?v8",tunisia:"unicode/1f1f9-1f1f3.png?v8",turkey:"unicode/1f983.png?v8",turkmenistan:"unicode/1f1f9-1f1f2.png?v8",turks_caicos_islands:"unicode/1f1f9-1f1e8.png?v8",turtle:"unicode/1f422.png?v8",tuvalu:"unicode/1f1f9-1f1fb.png?v8",tv:"unicode/1f4fa.png?v8",twisted_rightwards_arrows:"unicode/1f500.png?v8",two:"unicode/0032-20e3.png?v8",two_hearts:"unicode/1f495.png?v8",two_men_holding_hands:"unicode/1f46c.png?v8",two_women_holding_hands:"unicode/1f46d.png?v8",u5272:"unicode/1f239.png?v8",u5408:"unicode/1f234.png?v8",u55b6:"unicode/1f23a.png?v8",u6307:"unicode/1f22f.png?v8",u6708:"unicode/1f237.png?v8",u6709:"unicode/1f236.png?v8",u6e80:"unicode/1f235.png?v8",u7121:"unicode/1f21a.png?v8",u7533:"unicode/1f238.png?v8",u7981:"unicode/1f232.png?v8",u7a7a:"unicode/1f233.png?v8",uganda:"unicode/1f1fa-1f1ec.png?v8",uk:"unicode/1f1ec-1f1e7.png?v8",ukraine:"unicode/1f1fa-1f1e6.png?v8",umbrella:"unicode/2614.png?v8",unamused:"unicode/1f612.png?v8",underage:"unicode/1f51e.png?v8",unicorn:"unicode/1f984.png?v8",united_arab_emirates:"unicode/1f1e6-1f1ea.png?v8",united_nations:"unicode/1f1fa-1f1f3.png?v8",unlock:"unicode/1f513.png?v8",up:"unicode/1f199.png?v8",upside_down_face:"unicode/1f643.png?v8",uruguay:"unicode/1f1fa-1f1fe.png?v8",us:"unicode/1f1fa-1f1f8.png?v8",us_outlying_islands:"unicode/1f1fa-1f1f2.png?v8",us_virgin_islands:"unicode/1f1fb-1f1ee.png?v8",uzbekistan:"unicode/1f1fa-1f1ff.png?v8",v:"unicode/270c.png?v8",vampire:"unicode/1f9db.png?v8",vampire_man:"unicode/1f9db-2642.png?v8",vampire_woman:"unicode/1f9db-2640.png?v8",vanuatu:"unicode/1f1fb-1f1fa.png?v8",vatican_city:"unicode/1f1fb-1f1e6.png?v8",venezuela:"unicode/1f1fb-1f1ea.png?v8",vertical_traffic_light:"unicode/1f6a6.png?v8",vhs:"unicode/1f4fc.png?v8",vibration_mode:"unicode/1f4f3.png?v8",video_camera:"unicode/1f4f9.png?v8",video_game:"unicode/1f3ae.png?v8",vietnam:"unicode/1f1fb-1f1f3.png?v8",violin:"unicode/1f3bb.png?v8",virgo:"unicode/264d.png?v8",volcano:"unicode/1f30b.png?v8",volleyball:"unicode/1f3d0.png?v8",vomiting_face:"unicode/1f92e.png?v8",vs:"unicode/1f19a.png?v8",vulcan_salute:"unicode/1f596.png?v8",waffle:"unicode/1f9c7.png?v8",wales:"unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8",walking:"unicode/1f6b6.png?v8",walking_man:"unicode/1f6b6-2642.png?v8",walking_woman:"unicode/1f6b6-2640.png?v8",wallis_futuna:"unicode/1f1fc-1f1eb.png?v8",waning_crescent_moon:"unicode/1f318.png?v8",waning_gibbous_moon:"unicode/1f316.png?v8",warning:"unicode/26a0.png?v8",wastebasket:"unicode/1f5d1.png?v8",watch:"unicode/231a.png?v8",water_buffalo:"unicode/1f403.png?v8",water_polo:"unicode/1f93d.png?v8",watermelon:"unicode/1f349.png?v8",wave:"unicode/1f44b.png?v8",wavy_dash:"unicode/3030.png?v8",waxing_crescent_moon:"unicode/1f312.png?v8",waxing_gibbous_moon:"unicode/1f314.png?v8",wc:"unicode/1f6be.png?v8",weary:"unicode/1f629.png?v8",wedding:"unicode/1f492.png?v8",weight_lifting:"unicode/1f3cb.png?v8",weight_lifting_man:"unicode/1f3cb-2642.png?v8",weight_lifting_woman:"unicode/1f3cb-2640.png?v8",western_sahara:"unicode/1f1ea-1f1ed.png?v8",whale:"unicode/1f433.png?v8",whale2:"unicode/1f40b.png?v8",wheel_of_dharma:"unicode/2638.png?v8",wheelchair:"unicode/267f.png?v8",white_check_mark:"unicode/2705.png?v8",white_circle:"unicode/26aa.png?v8",white_flag:"unicode/1f3f3.png?v8",white_flower:"unicode/1f4ae.png?v8",white_haired_man:"unicode/1f468-1f9b3.png?v8",white_haired_woman:"unicode/1f469-1f9b3.png?v8",white_heart:"unicode/1f90d.png?v8",white_large_square:"unicode/2b1c.png?v8",white_medium_small_square:"unicode/25fd.png?v8",white_medium_square:"unicode/25fb.png?v8",white_small_square:"unicode/25ab.png?v8",white_square_button:"unicode/1f533.png?v8",wilted_flower:"unicode/1f940.png?v8",wind_chime:"unicode/1f390.png?v8",wind_face:"unicode/1f32c.png?v8",window:"unicode/1fa9f.png?v8",wine_glass:"unicode/1f377.png?v8",wink:"unicode/1f609.png?v8",wolf:"unicode/1f43a.png?v8",woman:"unicode/1f469.png?v8",woman_artist:"unicode/1f469-1f3a8.png?v8",woman_astronaut:"unicode/1f469-1f680.png?v8",woman_beard:"unicode/1f9d4-2640.png?v8",woman_cartwheeling:"unicode/1f938-2640.png?v8",woman_cook:"unicode/1f469-1f373.png?v8",woman_dancing:"unicode/1f483.png?v8",woman_facepalming:"unicode/1f926-2640.png?v8",woman_factory_worker:"unicode/1f469-1f3ed.png?v8",woman_farmer:"unicode/1f469-1f33e.png?v8",woman_feeding_baby:"unicode/1f469-1f37c.png?v8",woman_firefighter:"unicode/1f469-1f692.png?v8",woman_health_worker:"unicode/1f469-2695.png?v8",woman_in_manual_wheelchair:"unicode/1f469-1f9bd.png?v8",woman_in_motorized_wheelchair:"unicode/1f469-1f9bc.png?v8",woman_in_tuxedo:"unicode/1f935-2640.png?v8",woman_judge:"unicode/1f469-2696.png?v8",woman_juggling:"unicode/1f939-2640.png?v8",woman_mechanic:"unicode/1f469-1f527.png?v8",woman_office_worker:"unicode/1f469-1f4bc.png?v8",woman_pilot:"unicode/1f469-2708.png?v8",woman_playing_handball:"unicode/1f93e-2640.png?v8",woman_playing_water_polo:"unicode/1f93d-2640.png?v8",woman_scientist:"unicode/1f469-1f52c.png?v8",woman_shrugging:"unicode/1f937-2640.png?v8",woman_singer:"unicode/1f469-1f3a4.png?v8",woman_student:"unicode/1f469-1f393.png?v8",woman_teacher:"unicode/1f469-1f3eb.png?v8",woman_technologist:"unicode/1f469-1f4bb.png?v8",woman_with_headscarf:"unicode/1f9d5.png?v8",woman_with_probing_cane:"unicode/1f469-1f9af.png?v8",woman_with_turban:"unicode/1f473-2640.png?v8",woman_with_veil:"unicode/1f470-2640.png?v8",womans_clothes:"unicode/1f45a.png?v8",womans_hat:"unicode/1f452.png?v8",women_wrestling:"unicode/1f93c-2640.png?v8",womens:"unicode/1f6ba.png?v8",wood:"unicode/1fab5.png?v8",woozy_face:"unicode/1f974.png?v8",world_map:"unicode/1f5fa.png?v8",worm:"unicode/1fab1.png?v8",worried:"unicode/1f61f.png?v8",wrench:"unicode/1f527.png?v8",wrestling:"unicode/1f93c.png?v8",writing_hand:"unicode/270d.png?v8",x:"unicode/274c.png?v8",yarn:"unicode/1f9f6.png?v8",yawning_face:"unicode/1f971.png?v8",yellow_circle:"unicode/1f7e1.png?v8",yellow_heart:"unicode/1f49b.png?v8",yellow_square:"unicode/1f7e8.png?v8",yemen:"unicode/1f1fe-1f1ea.png?v8",yen:"unicode/1f4b4.png?v8",yin_yang:"unicode/262f.png?v8",yo_yo:"unicode/1fa80.png?v8",yum:"unicode/1f60b.png?v8",zambia:"unicode/1f1ff-1f1f2.png?v8",zany_face:"unicode/1f92a.png?v8",zap:"unicode/26a1.png?v8",zebra:"unicode/1f993.png?v8",zero:"unicode/0030-20e3.png?v8",zimbabwe:"unicode/1f1ff-1f1fc.png?v8",zipper_mouth_face:"unicode/1f910.png?v8",zombie:"unicode/1f9df.png?v8",zombie_man:"unicode/1f9df-2642.png?v8",zombie_woman:"unicode/1f9df-2640.png?v8",zzz:"unicode/1f4a4.png?v8"}};function jn(e,t){return e.replace(/<(code|pre|script|template)[^>]*?>[\s\S]+?<\/(code|pre|script|template)>/g,function(e){return e.replace(/:/g,"__colon__")}).replace(//g,function(e){return e.replace(/:/g,"__colon__")}).replace(/([a-z]{2,}:)?\/\/[^\s'">)]+/gi,function(e){return e.replace(/:/g,"__colon__")}).replace(/:([a-z0-9_\-+]+?):/g,function(e,n){return i=e,o=n,e=t,n=Cn.data[o],i,i=n?e&&/unicode/.test(n)?''+n.replace("unicode/","").replace(/\.png.*/,"").split("-").map(function(e){return"&#x"+e+";"}).join("‍").concat("︎")+"":''+o+'':i;var i,o}).replace(/__colon__/g,":")}function Ln(e){var o={};return{str:e=(e=void 0===e?"":e)&&e.replace(/^('|")/,"").replace(/('|")$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,i){return-1===n.indexOf(":")?(o[n]=i&&i.replace(/"/g,"")||!0,""):e}).trim(),config:o}}function On(e){return(e=void 0===e?"":e).replace(/(<\/?a.*?>)/gi,"")}var qn,Pn=be(function(e){var u,f,p,d,n,g=function(u){var i=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,e={},R={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof T?new T(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=r.reach);m+=_.value.length,_=_.next){var b=_.value;if(i.length>n.length)return;if(!(b instanceof T)){var k,w=1;if(l){if(!(k=C(h,m,n,s))||k.index>=n.length)break;var y=k.index,x=k.index+k[0].length,S=m;for(S+=_.value.length;S<=y;)_=_.next,S+=_.value.length;if(S-=_.value.length,m=S,_.value instanceof T)continue;for(var A=_;A!==i.tail&&(Sr.reach&&(r.reach=E);b=_.prev;z&&(b=j(i,b,z),m+=z.length),L(i,b,w);$=new T(c,g?R.tokenize($,g):$,v,$);_=j(i,b,$),F&&j(i,_,F),1r.reach&&(r.reach=E.reach))}}}}}(e,t,n,t.head,0),function(e){var n=[],i=e.head.next;for(;i!==e.tail;)n.push(i.value),i=i.next;return n}(t)},hooks:{all:{},add:function(e,n){var i=R.hooks.all;i[e]=i[e]||[],i[e].push(n)},run:function(e,n){var i=R.hooks.all[e];if(i&&i.length)for(var o,t=0;o=i[t++];)o(n)}},Token:T};function T(e,n,i,o){this.type=e,this.content=n,this.alias=i,this.length=0|(o||"").length}function C(e,n,i,o){e.lastIndex=n;i=e.exec(i);return i&&o&&i[1]&&(o=i[1].length,i.index+=o,i[0]=i[0].slice(o)),i}function a(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function j(e,n,i){var o=n.next,i={value:i,prev:n,next:o};return n.next=i,o.prev=i,e.length++,i}function L(e,n,i){for(var o=n.next,t=0;t"+t.content+""},!u.document)return u.addEventListener&&(R.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),i=n.language,e=n.code,n=n.immediateClose;u.postMessage(R.highlight(e,R.languages[i],i)),n&&u.close()},!1)),R;var o=R.util.currentScript();function t(){R.manual||R.highlightAll()}return o&&(R.filename=o.src,o.hasAttribute("data-manual")&&(R.manual=!0)),R.manual||("loading"===(e=document.readyState)||"interactive"===e&&o&&o.defer?document.addEventListener("DOMContentLoaded",t):window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,16)),R}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=g),void 0!==me&&(me.Prism=g),g.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},g.languages.markup.tag.inside["attr-value"].inside.entity=g.languages.markup.entity,g.languages.markup.doctype.inside["internal-subset"].inside=g.languages.markup,g.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(g.languages.markup.tag,"addInlined",{value:function(e,n){var i={};i["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:g.languages[n]},i.cdata=/^$/i;i={"included-cdata":{pattern://i,inside:i}};i["language-"+n]={pattern:/[\s\S]+/,inside:g.languages[n]};n={};n[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:i},g.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(g.languages.markup.tag,"addAttribute",{value:function(e,n){g.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:g.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),g.languages.html=g.languages.markup,g.languages.mathml=g.languages.markup,g.languages.svg=g.languages.markup,g.languages.xml=g.languages.extend("markup",{}),g.languages.ssml=g.languages.xml,g.languages.atom=g.languages.xml,g.languages.rss=g.languages.xml,function(e){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+n.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;e=e.languages.markup;e&&(e.tag.addInlined("style","css"),e.tag.addAttribute("style","css"))}(g),g.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},g.languages.javascript=g.languages.extend("clike",{"class-name":[g.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),g.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,g.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:g.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:g.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:g.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:g.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:g.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),g.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:g.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),g.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),g.languages.markup&&(g.languages.markup.tag.addInlined("script","javascript"),g.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),g.languages.js=g.languages.javascript,void 0!==g&&"undefined"!=typeof document&&(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),u={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},d="pre[data-src]:not(["+(f="data-src-status")+'="loaded"]):not(['+f+'="'+(p="loading")+'"])',g.hooks.add("before-highlightall",function(e){e.selector+=", "+d}),g.hooks.add("before-sanity-check",function(e){var t,n,i,o,a,r,c=e.element;c.matches(d)&&(e.code="",c.setAttribute(f,p),(t=c.appendChild(document.createElement("CODE"))).textContent="Loading…",i=c.getAttribute("data-src"),"none"===(e=e.language)&&(n=(/\.(\w+)$/.exec(i)||[,"none"])[1],e=u[n]||n),g.util.setLanguage(t,e),g.util.setLanguage(c,e),(n=g.plugins.autoloader)&&n.loadLanguages(e),i=i,o=function(e){c.setAttribute(f,"loaded");var n,i,o=function(e){if(i=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"")){var n=Number(i[1]),e=i[2],i=i[3];return e?i?[n,Number(i)]:[n,void 0]:[n,n]}}(c.getAttribute("data-range"));o&&(n=e.split(/\r\n?|\n/g),i=o[0],o=null==o[1]?n.length:o[1],i<0&&(i+=n.length),i=Math.max(0,Math.min(i-1,n.length)),o<0&&(o+=n.length),o=Math.max(0,Math.min(o,n.length)),e=n.slice(i,o).join("\n"),c.hasAttribute("data-start")||c.setAttribute("data-start",String(i+1))),t.textContent=e,g.highlightElement(t)},a=function(e){c.setAttribute(f,"failed"),t.textContent=e},(r=new XMLHttpRequest).open("GET",i,!0),r.onreadystatechange=function(){4==r.readyState&&(r.status<400&&r.responseText?o(r.responseText):400<=r.status?a("✖ Error "+r.status+" while fetching file: "+r.statusText):a("✖ Error: File does not exist or is empty"))},r.send(null))}),n=!(g.plugins.fileHighlight={highlight:function(e){for(var n,i=(e||document).querySelectorAll(d),o=0;n=i[o++];)g.highlightElement(n)}}),g.fileHighlight=function(){n||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),n=!0),g.plugins.fileHighlight.highlight.apply(this,arguments)})});function Mn(e,n){return"___"+e.toUpperCase()+n+"___"}qn=Prism,Object.defineProperties(qn.languages["markup-templating"]={},{buildPlaceholders:{value:function(o,t,e,a){var r;o.language===t&&(r=o.tokenStack=[],o.code=o.code.replace(e,function(e){if("function"==typeof a&&!a(e))return e;for(var n,i=r.length;-1!==o.code.indexOf(n=Mn(t,i));)++i;return r[i]=e,n}),o.grammar=qn.languages.markup)}},tokenizePlaceholders:{value:function(f,p){var d,g;f.language===p&&f.tokenStack&&(f.grammar=qn.languages[p],d=0,g=Object.keys(f.tokenStack),function e(n){for(var i=0;i=g.length);i++){var o,t,a,r,c,u=n[i];"string"==typeof u||u.content&&"string"==typeof u.content?(t=g[d],a=f.tokenStack[t],o="string"==typeof u?u:u.content,c=Mn(p,t),-1<(r=o.indexOf(c))&&(++d,t=o.substring(0,r),a=new qn.Token(p,qn.tokenize(a,f.grammar),"language-"+p,a),r=o.substring(r+c.length),c=[],t&&c.push.apply(c,e([t])),c.push(a),r&&c.push.apply(c,e([r])),"string"==typeof u?n.splice.apply(n,[i,1].concat(c)):u.content=c)):u.content&&e(u.content)}return n}(f.tokens))}}});function In(t,e){var a=this;this.config=t,this.router=e,this.cacheTree={},this.toc=[],this.cacheTOC={},this.linkTarget=t.externalLinkTarget||"_blank",this.linkRel="_blank"===this.linkTarget?t.externalLinkRel||"noopener":"",this.contentBase=e.getBasePath();var n=this._initRenderer();this.heading=n.heading;var r=o(e=t.markdown||{})?e(Sn,n):(Sn.setOptions(m(e,{renderer:m(n,e.renderer)})),Sn);this._marked=r,this.compile=function(i){var o=!0,e=c(function(e){o=!1;var n="";return i&&(n=f(i)?r(i):r.parser(i),n=t.noEmoji?n:jn(n,t.nativeEmoji),Tn.clear(),n)})(i),n=a.router.parse().file;return o?a.toc=a.cacheTOC[n]:a.cacheTOC[n]=[].concat(a.toc),e}}var Nn={},Hn={markdown:function(e){return{url:e}},mermaid:function(e){return{url:e}},iframe:function(e,n){return{html:'"}},video:function(e,n){return{html:'"}},audio:function(e,n){return{html:'"}},code:function(e,n){var i=e.match(/\.(\w+)$/);return{url:e,lang:i="md"===(i=n||i&&i[1])?"markdown":i}}};In.prototype.compileEmbed=function(e,n){var i,o,t=Ln(n),a=t.str,t=t.config;if(n=a,t.include)return R(e)||(e=q(this.contentBase,C(this.router.getCurrentPath()),e)),t.type&&(o=Hn[t.type])?(i=o.call(this,e,n)).type=t.type:(o="code",/\.(md|markdown)/.test(e)?o="markdown":/\.mmd/.test(e)?o="mermaid":/\.html?/.test(e)?o="iframe":/\.(mp4|ogg)/.test(e)?o="video":/\.mp3/.test(e)&&(o="audio"),(i=Hn[o].call(this,e,n)).type=o),i.fragment=t.fragment,i},In.prototype._matchNotCompileLink=function(e){for(var n=this.config.noCompileLinks||[],i=0;i/g.test(o)&&(o=o.replace("\x3c!-- {docsify-ignore} --\x3e",""),e.title=On(o),e.ignoreSubHeading=!0),/{docsify-ignore}/g.test(o)&&(o=o.replace("{docsify-ignore}",""),e.title=On(o),e.ignoreSubHeading=!0),//g.test(o)&&(o=o.replace("\x3c!-- {docsify-ignore-all} --\x3e",""),e.title=On(o),e.ignoreAllSubs=!0),/{docsify-ignore-all}/g.test(o)&&(o=o.replace("{docsify-ignore-all}",""),e.title=On(o),e.ignoreAllSubs=!0);i=Tn(t.id||o),t=a.toURL(a.getCurrentPath(),{id:i});return e.slug=t,g.toc.push(e),"'+o+""},t.code={renderer:e}.renderer.code=function(e,n){var i=Pn.languages[n=void 0===n?"markup":n]||Pn.languages.markup;return'
    '+Pn.highlight(e.replace(/@DOCSIFY_QM@/g,"`"),i,n)+"
    "},t.link=(i=(n={renderer:e,router:a,linkTarget:n,linkRel:i,compilerClass:g}).renderer,c=n.router,u=n.linkTarget,n.linkRel,f=n.compilerClass,i.link=function(e,n,i){var o=[],t=Ln(n=void 0===n?"":n),a=t.str,t=t.config;return u=t.target||u,r="_blank"===u?f.config.externalLinkRel||"noopener":"",n=a,R(e)||f._matchNotCompileLink(e)||t.ignore?(R(e)||"./"!==e.slice(0,2)||(e=document.URL.replace(/\/(?!.*\/).*/,"/").replace("#/./","")+e),o.push(0===e.indexOf("mailto:")?"":'target="'+u+'"'),o.push(0!==e.indexOf("mailto:")&&""!==r?' rel="'+r+'"':"")):(e===f.config.homepage&&(e="README"),e=c.toURL(e,null,c.getCurrentPath())),t.disabled&&(o.push("disabled"),e="javascript:void(0)"),t.class&&o.push('class="'+t.class+'"'),t.id&&o.push('id="'+t.id+'"'),n&&o.push('title="'+n+'"'),'"+i+""}),t.paragraph={renderer:e}.renderer.paragraph=function(e){e=/^!>/.test(e)?$n("tip",e):/^\?>/.test(e)?$n("warn",e):"

    "+e+"

    ";return e},t.image=(o=(i={renderer:e,contentBase:o,router:a}).renderer,p=i.contentBase,d=i.router,o.image=function(e,n,i){var o=e,t=[],a=Ln(n),r=a.str,a=a.config;return n=r,a["no-zoom"]&&t.push("data-no-zoom"),n&&t.push('title="'+n+'"'),a.size&&(n=(r=a.size.split("x"))[0],(r=r[1])?t.push('width="'+n+'" height="'+r+'"'):t.push('width="'+n+'"')),a.class&&t.push('class="'+a.class+'"'),a.id&&t.push('id="'+a.id+'"'),R(e)||(o=q(p,C(d.getCurrentPath()),e)),0":''+i+'"}),t.list={renderer:e}.renderer.list=function(e,n,i){n=n?"ol":"ul";return"<"+n+" "+[/
  • /.test(e.split('class="task-list"')[0])?'class="task-list"':"",i&&1"+e+""},t.listitem={renderer:e}.renderer.listitem=function(e){return/^(]*>)/.test(e)?'
  • ":"
  • "+e+"
  • "},e.origin=t,e},In.prototype.sidebar=function(e,n){var i=this.toc,o=this.router.getCurrentPath(),t="";if(e)t=this.compile(e);else{for(var a=0;a{inner}");this.cacheTree[o]=n}return t},In.prototype.subSidebar=function(e){if(e){var n=this.router.getCurrentPath(),i=this.cacheTree,o=this.toc;o[0]&&o[0].ignoreAllSubs&&o.splice(0),o[0]&&1===o[0].level&&o.shift();for(var t=0;t\n'+e+"\n"}]).links={}:(n=[{type:"html",text:e}]).links={}),a({token:t,embedToken:n}),++u>=c&&a({})}}(n);n.embed.url?X(n.embed.url).then(o):o(n.embed.html)}}({compile:i,embedTokens:c,fetch:n},function(e){var n,i=e.embedToken,e=e.token;e?(n=e.index,p.forEach(function(e){n>e.start&&(n+=e.length)}),m(f,i.links),r=r.slice(0,n).concat(i,r.slice(n+1)),p.push({start:n,length:i.length-1})):(Bn[t]=r.concat(),r.links=Bn[t].links=f,o(r))})}function Yn(e,n,i){var o,t,a,r;return n="function"==typeof i?i(n):"string"==typeof i?(a=[],r=0,(o=i).replace(V,function(n,e,i){a.push(o.substring(r,i-1)),r=i+=n.length+1,a.push(t&&t[n]||function(e){return("00"+("string"==typeof Y[n]?e[Y[n]]():Y[n](e))).slice(-n.length)})}),r!==o.length&&a.push(o.substring(r)),function(e){for(var n="",i=0,o=e||new Date;i404 - Not found","Vue"in window)for(var a=0,r=k(".markdown-section > *").filter(n);ascript").filter(function(e){return!/template/.test(e.type)})[0])||(e=e.innerText.trim())&&new Function(e)()),"Vue"in window){var u,f,p=[],d=Object.keys(i.vueComponents||{});2===t&&d.length&&d.forEach(function(e){window.Vue.options.components[e]||window.Vue.component(e,i.vueComponents[e])}),!Un&&i.vueGlobalOptions&&"function"==typeof i.vueGlobalOptions.data&&(Un=i.vueGlobalOptions.data()),p.push.apply(p,Object.keys(i.vueMounts||{}).map(function(e){return[b(o,e),i.vueMounts[e]]}).filter(function(e){var n=e[0];e[1];return n})),(i.vueGlobalOptions||d.length)&&(u=/{{2}[^{}]*}{2}/,f=/<[^>/]+\s([@:]|v-)[\w-:.[\]]+[=>\s]/,p.push.apply(p,k(".markdown-section > *").filter(function(i){return!p.some(function(e){var n=e[0];e[1];return n===i})}).filter(function(e){return e.tagName.toLowerCase()in(i.vueComponents||{})||e.querySelector(d.join(",")||null)||u.test(e.outerHTML)||f.test(e.outerHTML)}).map(function(e){var n=m({},i.vueGlobalOptions||{});return Un&&(n.data=function(){return Un}),[e,n]})));for(var g=0,s=p;g([^<]*?)

    $'))&&("color"===n[2]?o.style.background=n[1]+(n[3]||""):(e=n[1],S(o,"add","has-mask"),R(n[1])||(e=q(this.router.getBasePath(),n[1])),o.style.backgroundImage="url("+e+")",o.style.backgroundSize="cover",o.style.backgroundPosition="center center"),i=i.replace(n[0],"")),this._renderTo(".cover-main",i),K()):S(o,"remove","show")},n.prototype._updateRender=function(){var e,n,i,o;e=this,n=l(".app-name-link"),i=e.config.nameLink,o=e.route.path,n&&(f(e.config.nameLink)?n.setAttribute("href",i):"object"==typeof i&&(e=Object.keys(i).filter(function(e){return-1':"")),e.coverpage&&(f+=(o=", 100%, 85%",'
    \x3c!--cover--\x3e
    ')),e.logo&&(o=/^data:image/.test(e.logo),n=/(?:http[s]?:)?\/\//.test(e.logo),i=/^\./.test(e.logo),o||n||i||(e.logo=q(this.router.getBasePath(),e.logo))),f+=(i=(n=e).name||"","
    "+('')+'
    \x3c!--main--\x3e
    '),this._renderTo(u,f,!0)):this.rendered=!0,e.mergeNavbar&&s?p=b(".sidebar"):(c.classList.add("app-nav"),e.repo||c.classList.add("no-badge")),e.loadNavbar&&y(p,c),e.themeColor&&(v.head.appendChild(w("div","").firstElementChild),a=e.themeColor,window.CSS&&window.CSS.supports&&window.CSS.supports("(--v:red)")||(e=k("style:not(.inserted),link"),[].forEach.call(e,function(e){"STYLE"===e.nodeName?Q(e,a):"LINK"===e.nodeName&&(e=e.getAttribute("href"),/\.css$/.test(e)&&X(e).then(function(e){e=w("style",e);_.appendChild(e),Q(e,a)}))}))),this._updateRender(),S(h,"ready")},n}(function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),((n.prototype=Object.create(e&&e.prototype)).constructor=n).prototype.routes=function(){return this.config.routes||{}},n.prototype.matchVirtualRoute=function(t){var a=this.routes(),r=Object.keys(a),c=function(){return null};function u(){var e=r.shift();if(!e)return c(null);var n=A(o=(i="^",0===(o=e).indexOf(i)?o:"^"+o),"$")?o:o+"$",i=t.match(n);if(!i)return u();var o=a[e];if("string"==typeof o)return c(o);if("function"!=typeof o)return u();n=o,e=Xn(),o=e[0];return(0,e[1])(function(e){return"string"==typeof e?c(e):!1===e?c(null):u()}),n.length<=2?o(n(t,i)):n(t,i,o)}return{then:function(e){c=e,u()}}},n}(function(i){function e(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];i.apply(this,e),this.route={}}return i&&(e.__proto__=i),((e.prototype=Object.create(i&&i.prototype)).constructor=e).prototype.updateRender=function(){this.router.normalize(),this.route=this.router.parse(),h.setAttribute("data-page",this.route.file)},e.prototype.initRouter=function(){var n=this,e=this.config,e=new("history"===(e.routerMode||"hash")&&t?D:H)(e);this.router=e,this.updateRender(),U=this.route,e.onchange(function(e){n.updateRender(),n._updateRender(),U.path!==n.route.path?(n.$fetch(d,n.$resetEvents.bind(n,e.source)),U=n.route):n.$resetEvents(e.source)})},e}(function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),((n.prototype=Object.create(e&&e.prototype)).constructor=n).prototype.initLifecycle=function(){var i=this;this._hooks={},this._lifecycle={},["init","mounted","beforeEach","afterEach","doneEach","ready"].forEach(function(e){var n=i._hooks[e]=[];i._lifecycle[e]=function(e){return n.push(e)}})},n.prototype.callHook=function(e,t,a){void 0===a&&(a=d);var r=this._hooks[e],c=this.config.catchPluginErrors,u=function(n){var e=r[n];if(n>=r.length)a(t);else if("function"==typeof e){var i="Docsify plugin error";if(2===e.length)try{e(t,function(e){t=e,u(n+1)})}catch(e){if(!c)throw e;console.error(i,e),u(n+1)}else try{var o=e(t);t=void 0===o?t:o,u(n+1)}catch(e){if(!c)throw e;console.error(i,e),u(n+1)}}else u(n+1)};u(0)},n}(we))))))));function Kn(e,n,i){return Qn&&Qn.abort&&Qn.abort(),Qn=X(e,!0,i)}window.Docsify={util:Me,dom:n,get:X,slugify:Tn,version:"4.13.1"},window.DocsifyCompiler=In,window.marked=Sn,window.Prism=Pn,e(function(e){return new Jn})}(); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js b/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js new file mode 100644 index 00000000..89151602 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js @@ -0,0 +1 @@ +!function(){var o="https://github.githubassets.com/images/icons/emoji/",i={100:"unicode/1f4af.png?v8",1234:"unicode/1f522.png?v8","+1":"unicode/1f44d.png?v8","-1":"unicode/1f44e.png?v8","1st_place_medal":"unicode/1f947.png?v8","2nd_place_medal":"unicode/1f948.png?v8","3rd_place_medal":"unicode/1f949.png?v8","8ball":"unicode/1f3b1.png?v8",a:"unicode/1f170.png?v8",ab:"unicode/1f18e.png?v8",abacus:"unicode/1f9ee.png?v8",abc:"unicode/1f524.png?v8",abcd:"unicode/1f521.png?v8",accept:"unicode/1f251.png?v8",accessibility:"accessibility.png?v8",accordion:"unicode/1fa97.png?v8",adhesive_bandage:"unicode/1fa79.png?v8",adult:"unicode/1f9d1.png?v8",aerial_tramway:"unicode/1f6a1.png?v8",afghanistan:"unicode/1f1e6-1f1eb.png?v8",airplane:"unicode/2708.png?v8",aland_islands:"unicode/1f1e6-1f1fd.png?v8",alarm_clock:"unicode/23f0.png?v8",albania:"unicode/1f1e6-1f1f1.png?v8",alembic:"unicode/2697.png?v8",algeria:"unicode/1f1e9-1f1ff.png?v8",alien:"unicode/1f47d.png?v8",ambulance:"unicode/1f691.png?v8",american_samoa:"unicode/1f1e6-1f1f8.png?v8",amphora:"unicode/1f3fa.png?v8",anatomical_heart:"unicode/1fac0.png?v8",anchor:"unicode/2693.png?v8",andorra:"unicode/1f1e6-1f1e9.png?v8",angel:"unicode/1f47c.png?v8",anger:"unicode/1f4a2.png?v8",angola:"unicode/1f1e6-1f1f4.png?v8",angry:"unicode/1f620.png?v8",anguilla:"unicode/1f1e6-1f1ee.png?v8",anguished:"unicode/1f627.png?v8",ant:"unicode/1f41c.png?v8",antarctica:"unicode/1f1e6-1f1f6.png?v8",antigua_barbuda:"unicode/1f1e6-1f1ec.png?v8",apple:"unicode/1f34e.png?v8",aquarius:"unicode/2652.png?v8",argentina:"unicode/1f1e6-1f1f7.png?v8",aries:"unicode/2648.png?v8",armenia:"unicode/1f1e6-1f1f2.png?v8",arrow_backward:"unicode/25c0.png?v8",arrow_double_down:"unicode/23ec.png?v8",arrow_double_up:"unicode/23eb.png?v8",arrow_down:"unicode/2b07.png?v8",arrow_down_small:"unicode/1f53d.png?v8",arrow_forward:"unicode/25b6.png?v8",arrow_heading_down:"unicode/2935.png?v8",arrow_heading_up:"unicode/2934.png?v8",arrow_left:"unicode/2b05.png?v8",arrow_lower_left:"unicode/2199.png?v8",arrow_lower_right:"unicode/2198.png?v8",arrow_right:"unicode/27a1.png?v8",arrow_right_hook:"unicode/21aa.png?v8",arrow_up:"unicode/2b06.png?v8",arrow_up_down:"unicode/2195.png?v8",arrow_up_small:"unicode/1f53c.png?v8",arrow_upper_left:"unicode/2196.png?v8",arrow_upper_right:"unicode/2197.png?v8",arrows_clockwise:"unicode/1f503.png?v8",arrows_counterclockwise:"unicode/1f504.png?v8",art:"unicode/1f3a8.png?v8",articulated_lorry:"unicode/1f69b.png?v8",artificial_satellite:"unicode/1f6f0.png?v8",artist:"unicode/1f9d1-1f3a8.png?v8",aruba:"unicode/1f1e6-1f1fc.png?v8",ascension_island:"unicode/1f1e6-1f1e8.png?v8",asterisk:"unicode/002a-20e3.png?v8",astonished:"unicode/1f632.png?v8",astronaut:"unicode/1f9d1-1f680.png?v8",athletic_shoe:"unicode/1f45f.png?v8",atm:"unicode/1f3e7.png?v8",atom:"atom.png?v8",atom_symbol:"unicode/269b.png?v8",australia:"unicode/1f1e6-1f1fa.png?v8",austria:"unicode/1f1e6-1f1f9.png?v8",auto_rickshaw:"unicode/1f6fa.png?v8",avocado:"unicode/1f951.png?v8",axe:"unicode/1fa93.png?v8",azerbaijan:"unicode/1f1e6-1f1ff.png?v8",b:"unicode/1f171.png?v8",baby:"unicode/1f476.png?v8",baby_bottle:"unicode/1f37c.png?v8",baby_chick:"unicode/1f424.png?v8",baby_symbol:"unicode/1f6bc.png?v8",back:"unicode/1f519.png?v8",bacon:"unicode/1f953.png?v8",badger:"unicode/1f9a1.png?v8",badminton:"unicode/1f3f8.png?v8",bagel:"unicode/1f96f.png?v8",baggage_claim:"unicode/1f6c4.png?v8",baguette_bread:"unicode/1f956.png?v8",bahamas:"unicode/1f1e7-1f1f8.png?v8",bahrain:"unicode/1f1e7-1f1ed.png?v8",balance_scale:"unicode/2696.png?v8",bald_man:"unicode/1f468-1f9b2.png?v8",bald_woman:"unicode/1f469-1f9b2.png?v8",ballet_shoes:"unicode/1fa70.png?v8",balloon:"unicode/1f388.png?v8",ballot_box:"unicode/1f5f3.png?v8",ballot_box_with_check:"unicode/2611.png?v8",bamboo:"unicode/1f38d.png?v8",banana:"unicode/1f34c.png?v8",bangbang:"unicode/203c.png?v8",bangladesh:"unicode/1f1e7-1f1e9.png?v8",banjo:"unicode/1fa95.png?v8",bank:"unicode/1f3e6.png?v8",bar_chart:"unicode/1f4ca.png?v8",barbados:"unicode/1f1e7-1f1e7.png?v8",barber:"unicode/1f488.png?v8",baseball:"unicode/26be.png?v8",basecamp:"basecamp.png?v8",basecampy:"basecampy.png?v8",basket:"unicode/1f9fa.png?v8",basketball:"unicode/1f3c0.png?v8",basketball_man:"unicode/26f9-2642.png?v8",basketball_woman:"unicode/26f9-2640.png?v8",bat:"unicode/1f987.png?v8",bath:"unicode/1f6c0.png?v8",bathtub:"unicode/1f6c1.png?v8",battery:"unicode/1f50b.png?v8",beach_umbrella:"unicode/1f3d6.png?v8",bear:"unicode/1f43b.png?v8",bearded_person:"unicode/1f9d4.png?v8",beaver:"unicode/1f9ab.png?v8",bed:"unicode/1f6cf.png?v8",bee:"unicode/1f41d.png?v8",beer:"unicode/1f37a.png?v8",beers:"unicode/1f37b.png?v8",beetle:"unicode/1fab2.png?v8",beginner:"unicode/1f530.png?v8",belarus:"unicode/1f1e7-1f1fe.png?v8",belgium:"unicode/1f1e7-1f1ea.png?v8",belize:"unicode/1f1e7-1f1ff.png?v8",bell:"unicode/1f514.png?v8",bell_pepper:"unicode/1fad1.png?v8",bellhop_bell:"unicode/1f6ce.png?v8",benin:"unicode/1f1e7-1f1ef.png?v8",bento:"unicode/1f371.png?v8",bermuda:"unicode/1f1e7-1f1f2.png?v8",beverage_box:"unicode/1f9c3.png?v8",bhutan:"unicode/1f1e7-1f1f9.png?v8",bicyclist:"unicode/1f6b4.png?v8",bike:"unicode/1f6b2.png?v8",biking_man:"unicode/1f6b4-2642.png?v8",biking_woman:"unicode/1f6b4-2640.png?v8",bikini:"unicode/1f459.png?v8",billed_cap:"unicode/1f9e2.png?v8",biohazard:"unicode/2623.png?v8",bird:"unicode/1f426.png?v8",birthday:"unicode/1f382.png?v8",bison:"unicode/1f9ac.png?v8",black_cat:"unicode/1f408-2b1b.png?v8",black_circle:"unicode/26ab.png?v8",black_flag:"unicode/1f3f4.png?v8",black_heart:"unicode/1f5a4.png?v8",black_joker:"unicode/1f0cf.png?v8",black_large_square:"unicode/2b1b.png?v8",black_medium_small_square:"unicode/25fe.png?v8",black_medium_square:"unicode/25fc.png?v8",black_nib:"unicode/2712.png?v8",black_small_square:"unicode/25aa.png?v8",black_square_button:"unicode/1f532.png?v8",blond_haired_man:"unicode/1f471-2642.png?v8",blond_haired_person:"unicode/1f471.png?v8",blond_haired_woman:"unicode/1f471-2640.png?v8",blonde_woman:"unicode/1f471-2640.png?v8",blossom:"unicode/1f33c.png?v8",blowfish:"unicode/1f421.png?v8",blue_book:"unicode/1f4d8.png?v8",blue_car:"unicode/1f699.png?v8",blue_heart:"unicode/1f499.png?v8",blue_square:"unicode/1f7e6.png?v8",blueberries:"unicode/1fad0.png?v8",blush:"unicode/1f60a.png?v8",boar:"unicode/1f417.png?v8",boat:"unicode/26f5.png?v8",bolivia:"unicode/1f1e7-1f1f4.png?v8",bomb:"unicode/1f4a3.png?v8",bone:"unicode/1f9b4.png?v8",book:"unicode/1f4d6.png?v8",bookmark:"unicode/1f516.png?v8",bookmark_tabs:"unicode/1f4d1.png?v8",books:"unicode/1f4da.png?v8",boom:"unicode/1f4a5.png?v8",boomerang:"unicode/1fa83.png?v8",boot:"unicode/1f462.png?v8",bosnia_herzegovina:"unicode/1f1e7-1f1e6.png?v8",botswana:"unicode/1f1e7-1f1fc.png?v8",bouncing_ball_man:"unicode/26f9-2642.png?v8",bouncing_ball_person:"unicode/26f9.png?v8",bouncing_ball_woman:"unicode/26f9-2640.png?v8",bouquet:"unicode/1f490.png?v8",bouvet_island:"unicode/1f1e7-1f1fb.png?v8",bow:"unicode/1f647.png?v8",bow_and_arrow:"unicode/1f3f9.png?v8",bowing_man:"unicode/1f647-2642.png?v8",bowing_woman:"unicode/1f647-2640.png?v8",bowl_with_spoon:"unicode/1f963.png?v8",bowling:"unicode/1f3b3.png?v8",bowtie:"bowtie.png?v8",boxing_glove:"unicode/1f94a.png?v8",boy:"unicode/1f466.png?v8",brain:"unicode/1f9e0.png?v8",brazil:"unicode/1f1e7-1f1f7.png?v8",bread:"unicode/1f35e.png?v8",breast_feeding:"unicode/1f931.png?v8",bricks:"unicode/1f9f1.png?v8",bride_with_veil:"unicode/1f470-2640.png?v8",bridge_at_night:"unicode/1f309.png?v8",briefcase:"unicode/1f4bc.png?v8",british_indian_ocean_territory:"unicode/1f1ee-1f1f4.png?v8",british_virgin_islands:"unicode/1f1fb-1f1ec.png?v8",broccoli:"unicode/1f966.png?v8",broken_heart:"unicode/1f494.png?v8",broom:"unicode/1f9f9.png?v8",brown_circle:"unicode/1f7e4.png?v8",brown_heart:"unicode/1f90e.png?v8",brown_square:"unicode/1f7eb.png?v8",brunei:"unicode/1f1e7-1f1f3.png?v8",bubble_tea:"unicode/1f9cb.png?v8",bucket:"unicode/1faa3.png?v8",bug:"unicode/1f41b.png?v8",building_construction:"unicode/1f3d7.png?v8",bulb:"unicode/1f4a1.png?v8",bulgaria:"unicode/1f1e7-1f1ec.png?v8",bullettrain_front:"unicode/1f685.png?v8",bullettrain_side:"unicode/1f684.png?v8",burkina_faso:"unicode/1f1e7-1f1eb.png?v8",burrito:"unicode/1f32f.png?v8",burundi:"unicode/1f1e7-1f1ee.png?v8",bus:"unicode/1f68c.png?v8",business_suit_levitating:"unicode/1f574.png?v8",busstop:"unicode/1f68f.png?v8",bust_in_silhouette:"unicode/1f464.png?v8",busts_in_silhouette:"unicode/1f465.png?v8",butter:"unicode/1f9c8.png?v8",butterfly:"unicode/1f98b.png?v8",cactus:"unicode/1f335.png?v8",cake:"unicode/1f370.png?v8",calendar:"unicode/1f4c6.png?v8",call_me_hand:"unicode/1f919.png?v8",calling:"unicode/1f4f2.png?v8",cambodia:"unicode/1f1f0-1f1ed.png?v8",camel:"unicode/1f42b.png?v8",camera:"unicode/1f4f7.png?v8",camera_flash:"unicode/1f4f8.png?v8",cameroon:"unicode/1f1e8-1f1f2.png?v8",camping:"unicode/1f3d5.png?v8",canada:"unicode/1f1e8-1f1e6.png?v8",canary_islands:"unicode/1f1ee-1f1e8.png?v8",cancer:"unicode/264b.png?v8",candle:"unicode/1f56f.png?v8",candy:"unicode/1f36c.png?v8",canned_food:"unicode/1f96b.png?v8",canoe:"unicode/1f6f6.png?v8",cape_verde:"unicode/1f1e8-1f1fb.png?v8",capital_abcd:"unicode/1f520.png?v8",capricorn:"unicode/2651.png?v8",car:"unicode/1f697.png?v8",card_file_box:"unicode/1f5c3.png?v8",card_index:"unicode/1f4c7.png?v8",card_index_dividers:"unicode/1f5c2.png?v8",caribbean_netherlands:"unicode/1f1e7-1f1f6.png?v8",carousel_horse:"unicode/1f3a0.png?v8",carpentry_saw:"unicode/1fa9a.png?v8",carrot:"unicode/1f955.png?v8",cartwheeling:"unicode/1f938.png?v8",cat:"unicode/1f431.png?v8",cat2:"unicode/1f408.png?v8",cayman_islands:"unicode/1f1f0-1f1fe.png?v8",cd:"unicode/1f4bf.png?v8",central_african_republic:"unicode/1f1e8-1f1eb.png?v8",ceuta_melilla:"unicode/1f1ea-1f1e6.png?v8",chad:"unicode/1f1f9-1f1e9.png?v8",chains:"unicode/26d3.png?v8",chair:"unicode/1fa91.png?v8",champagne:"unicode/1f37e.png?v8",chart:"unicode/1f4b9.png?v8",chart_with_downwards_trend:"unicode/1f4c9.png?v8",chart_with_upwards_trend:"unicode/1f4c8.png?v8",checkered_flag:"unicode/1f3c1.png?v8",cheese:"unicode/1f9c0.png?v8",cherries:"unicode/1f352.png?v8",cherry_blossom:"unicode/1f338.png?v8",chess_pawn:"unicode/265f.png?v8",chestnut:"unicode/1f330.png?v8",chicken:"unicode/1f414.png?v8",child:"unicode/1f9d2.png?v8",children_crossing:"unicode/1f6b8.png?v8",chile:"unicode/1f1e8-1f1f1.png?v8",chipmunk:"unicode/1f43f.png?v8",chocolate_bar:"unicode/1f36b.png?v8",chopsticks:"unicode/1f962.png?v8",christmas_island:"unicode/1f1e8-1f1fd.png?v8",christmas_tree:"unicode/1f384.png?v8",church:"unicode/26ea.png?v8",cinema:"unicode/1f3a6.png?v8",circus_tent:"unicode/1f3aa.png?v8",city_sunrise:"unicode/1f307.png?v8",city_sunset:"unicode/1f306.png?v8",cityscape:"unicode/1f3d9.png?v8",cl:"unicode/1f191.png?v8",clamp:"unicode/1f5dc.png?v8",clap:"unicode/1f44f.png?v8",clapper:"unicode/1f3ac.png?v8",classical_building:"unicode/1f3db.png?v8",climbing:"unicode/1f9d7.png?v8",climbing_man:"unicode/1f9d7-2642.png?v8",climbing_woman:"unicode/1f9d7-2640.png?v8",clinking_glasses:"unicode/1f942.png?v8",clipboard:"unicode/1f4cb.png?v8",clipperton_island:"unicode/1f1e8-1f1f5.png?v8",clock1:"unicode/1f550.png?v8",clock10:"unicode/1f559.png?v8",clock1030:"unicode/1f565.png?v8",clock11:"unicode/1f55a.png?v8",clock1130:"unicode/1f566.png?v8",clock12:"unicode/1f55b.png?v8",clock1230:"unicode/1f567.png?v8",clock130:"unicode/1f55c.png?v8",clock2:"unicode/1f551.png?v8",clock230:"unicode/1f55d.png?v8",clock3:"unicode/1f552.png?v8",clock330:"unicode/1f55e.png?v8",clock4:"unicode/1f553.png?v8",clock430:"unicode/1f55f.png?v8",clock5:"unicode/1f554.png?v8",clock530:"unicode/1f560.png?v8",clock6:"unicode/1f555.png?v8",clock630:"unicode/1f561.png?v8",clock7:"unicode/1f556.png?v8",clock730:"unicode/1f562.png?v8",clock8:"unicode/1f557.png?v8",clock830:"unicode/1f563.png?v8",clock9:"unicode/1f558.png?v8",clock930:"unicode/1f564.png?v8",closed_book:"unicode/1f4d5.png?v8",closed_lock_with_key:"unicode/1f510.png?v8",closed_umbrella:"unicode/1f302.png?v8",cloud:"unicode/2601.png?v8",cloud_with_lightning:"unicode/1f329.png?v8",cloud_with_lightning_and_rain:"unicode/26c8.png?v8",cloud_with_rain:"unicode/1f327.png?v8",cloud_with_snow:"unicode/1f328.png?v8",clown_face:"unicode/1f921.png?v8",clubs:"unicode/2663.png?v8",cn:"unicode/1f1e8-1f1f3.png?v8",coat:"unicode/1f9e5.png?v8",cockroach:"unicode/1fab3.png?v8",cocktail:"unicode/1f378.png?v8",coconut:"unicode/1f965.png?v8",cocos_islands:"unicode/1f1e8-1f1e8.png?v8",coffee:"unicode/2615.png?v8",coffin:"unicode/26b0.png?v8",coin:"unicode/1fa99.png?v8",cold_face:"unicode/1f976.png?v8",cold_sweat:"unicode/1f630.png?v8",collision:"unicode/1f4a5.png?v8",colombia:"unicode/1f1e8-1f1f4.png?v8",comet:"unicode/2604.png?v8",comoros:"unicode/1f1f0-1f1f2.png?v8",compass:"unicode/1f9ed.png?v8",computer:"unicode/1f4bb.png?v8",computer_mouse:"unicode/1f5b1.png?v8",confetti_ball:"unicode/1f38a.png?v8",confounded:"unicode/1f616.png?v8",confused:"unicode/1f615.png?v8",congo_brazzaville:"unicode/1f1e8-1f1ec.png?v8",congo_kinshasa:"unicode/1f1e8-1f1e9.png?v8",congratulations:"unicode/3297.png?v8",construction:"unicode/1f6a7.png?v8",construction_worker:"unicode/1f477.png?v8",construction_worker_man:"unicode/1f477-2642.png?v8",construction_worker_woman:"unicode/1f477-2640.png?v8",control_knobs:"unicode/1f39b.png?v8",convenience_store:"unicode/1f3ea.png?v8",cook:"unicode/1f9d1-1f373.png?v8",cook_islands:"unicode/1f1e8-1f1f0.png?v8",cookie:"unicode/1f36a.png?v8",cool:"unicode/1f192.png?v8",cop:"unicode/1f46e.png?v8",copyright:"unicode/00a9.png?v8",corn:"unicode/1f33d.png?v8",costa_rica:"unicode/1f1e8-1f1f7.png?v8",cote_divoire:"unicode/1f1e8-1f1ee.png?v8",couch_and_lamp:"unicode/1f6cb.png?v8",couple:"unicode/1f46b.png?v8",couple_with_heart:"unicode/1f491.png?v8",couple_with_heart_man_man:"unicode/1f468-2764-1f468.png?v8",couple_with_heart_woman_man:"unicode/1f469-2764-1f468.png?v8",couple_with_heart_woman_woman:"unicode/1f469-2764-1f469.png?v8",couplekiss:"unicode/1f48f.png?v8",couplekiss_man_man:"unicode/1f468-2764-1f48b-1f468.png?v8",couplekiss_man_woman:"unicode/1f469-2764-1f48b-1f468.png?v8",couplekiss_woman_woman:"unicode/1f469-2764-1f48b-1f469.png?v8",cow:"unicode/1f42e.png?v8",cow2:"unicode/1f404.png?v8",cowboy_hat_face:"unicode/1f920.png?v8",crab:"unicode/1f980.png?v8",crayon:"unicode/1f58d.png?v8",credit_card:"unicode/1f4b3.png?v8",crescent_moon:"unicode/1f319.png?v8",cricket:"unicode/1f997.png?v8",cricket_game:"unicode/1f3cf.png?v8",croatia:"unicode/1f1ed-1f1f7.png?v8",crocodile:"unicode/1f40a.png?v8",croissant:"unicode/1f950.png?v8",crossed_fingers:"unicode/1f91e.png?v8",crossed_flags:"unicode/1f38c.png?v8",crossed_swords:"unicode/2694.png?v8",crown:"unicode/1f451.png?v8",cry:"unicode/1f622.png?v8",crying_cat_face:"unicode/1f63f.png?v8",crystal_ball:"unicode/1f52e.png?v8",cuba:"unicode/1f1e8-1f1fa.png?v8",cucumber:"unicode/1f952.png?v8",cup_with_straw:"unicode/1f964.png?v8",cupcake:"unicode/1f9c1.png?v8",cupid:"unicode/1f498.png?v8",curacao:"unicode/1f1e8-1f1fc.png?v8",curling_stone:"unicode/1f94c.png?v8",curly_haired_man:"unicode/1f468-1f9b1.png?v8",curly_haired_woman:"unicode/1f469-1f9b1.png?v8",curly_loop:"unicode/27b0.png?v8",currency_exchange:"unicode/1f4b1.png?v8",curry:"unicode/1f35b.png?v8",cursing_face:"unicode/1f92c.png?v8",custard:"unicode/1f36e.png?v8",customs:"unicode/1f6c3.png?v8",cut_of_meat:"unicode/1f969.png?v8",cyclone:"unicode/1f300.png?v8",cyprus:"unicode/1f1e8-1f1fe.png?v8",czech_republic:"unicode/1f1e8-1f1ff.png?v8",dagger:"unicode/1f5e1.png?v8",dancer:"unicode/1f483.png?v8",dancers:"unicode/1f46f.png?v8",dancing_men:"unicode/1f46f-2642.png?v8",dancing_women:"unicode/1f46f-2640.png?v8",dango:"unicode/1f361.png?v8",dark_sunglasses:"unicode/1f576.png?v8",dart:"unicode/1f3af.png?v8",dash:"unicode/1f4a8.png?v8",date:"unicode/1f4c5.png?v8",de:"unicode/1f1e9-1f1ea.png?v8",deaf_man:"unicode/1f9cf-2642.png?v8",deaf_person:"unicode/1f9cf.png?v8",deaf_woman:"unicode/1f9cf-2640.png?v8",deciduous_tree:"unicode/1f333.png?v8",deer:"unicode/1f98c.png?v8",denmark:"unicode/1f1e9-1f1f0.png?v8",department_store:"unicode/1f3ec.png?v8",dependabot:"dependabot.png?v8",derelict_house:"unicode/1f3da.png?v8",desert:"unicode/1f3dc.png?v8",desert_island:"unicode/1f3dd.png?v8",desktop_computer:"unicode/1f5a5.png?v8",detective:"unicode/1f575.png?v8",diamond_shape_with_a_dot_inside:"unicode/1f4a0.png?v8",diamonds:"unicode/2666.png?v8",diego_garcia:"unicode/1f1e9-1f1ec.png?v8",disappointed:"unicode/1f61e.png?v8",disappointed_relieved:"unicode/1f625.png?v8",disguised_face:"unicode/1f978.png?v8",diving_mask:"unicode/1f93f.png?v8",diya_lamp:"unicode/1fa94.png?v8",dizzy:"unicode/1f4ab.png?v8",dizzy_face:"unicode/1f635.png?v8",djibouti:"unicode/1f1e9-1f1ef.png?v8",dna:"unicode/1f9ec.png?v8",do_not_litter:"unicode/1f6af.png?v8",dodo:"unicode/1f9a4.png?v8",dog:"unicode/1f436.png?v8",dog2:"unicode/1f415.png?v8",dollar:"unicode/1f4b5.png?v8",dolls:"unicode/1f38e.png?v8",dolphin:"unicode/1f42c.png?v8",dominica:"unicode/1f1e9-1f1f2.png?v8",dominican_republic:"unicode/1f1e9-1f1f4.png?v8",door:"unicode/1f6aa.png?v8",doughnut:"unicode/1f369.png?v8",dove:"unicode/1f54a.png?v8",dragon:"unicode/1f409.png?v8",dragon_face:"unicode/1f432.png?v8",dress:"unicode/1f457.png?v8",dromedary_camel:"unicode/1f42a.png?v8",drooling_face:"unicode/1f924.png?v8",drop_of_blood:"unicode/1fa78.png?v8",droplet:"unicode/1f4a7.png?v8",drum:"unicode/1f941.png?v8",duck:"unicode/1f986.png?v8",dumpling:"unicode/1f95f.png?v8",dvd:"unicode/1f4c0.png?v8","e-mail":"unicode/1f4e7.png?v8",eagle:"unicode/1f985.png?v8",ear:"unicode/1f442.png?v8",ear_of_rice:"unicode/1f33e.png?v8",ear_with_hearing_aid:"unicode/1f9bb.png?v8",earth_africa:"unicode/1f30d.png?v8",earth_americas:"unicode/1f30e.png?v8",earth_asia:"unicode/1f30f.png?v8",ecuador:"unicode/1f1ea-1f1e8.png?v8",egg:"unicode/1f95a.png?v8",eggplant:"unicode/1f346.png?v8",egypt:"unicode/1f1ea-1f1ec.png?v8",eight:"unicode/0038-20e3.png?v8",eight_pointed_black_star:"unicode/2734.png?v8",eight_spoked_asterisk:"unicode/2733.png?v8",eject_button:"unicode/23cf.png?v8",el_salvador:"unicode/1f1f8-1f1fb.png?v8",electric_plug:"unicode/1f50c.png?v8",electron:"electron.png?v8",elephant:"unicode/1f418.png?v8",elevator:"unicode/1f6d7.png?v8",elf:"unicode/1f9dd.png?v8",elf_man:"unicode/1f9dd-2642.png?v8",elf_woman:"unicode/1f9dd-2640.png?v8",email:"unicode/1f4e7.png?v8",end:"unicode/1f51a.png?v8",england:"unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8",envelope:"unicode/2709.png?v8",envelope_with_arrow:"unicode/1f4e9.png?v8",equatorial_guinea:"unicode/1f1ec-1f1f6.png?v8",eritrea:"unicode/1f1ea-1f1f7.png?v8",es:"unicode/1f1ea-1f1f8.png?v8",estonia:"unicode/1f1ea-1f1ea.png?v8",ethiopia:"unicode/1f1ea-1f1f9.png?v8",eu:"unicode/1f1ea-1f1fa.png?v8",euro:"unicode/1f4b6.png?v8",european_castle:"unicode/1f3f0.png?v8",european_post_office:"unicode/1f3e4.png?v8",european_union:"unicode/1f1ea-1f1fa.png?v8",evergreen_tree:"unicode/1f332.png?v8",exclamation:"unicode/2757.png?v8",exploding_head:"unicode/1f92f.png?v8",expressionless:"unicode/1f611.png?v8",eye:"unicode/1f441.png?v8",eye_speech_bubble:"unicode/1f441-1f5e8.png?v8",eyeglasses:"unicode/1f453.png?v8",eyes:"unicode/1f440.png?v8",face_exhaling:"unicode/1f62e-1f4a8.png?v8",face_in_clouds:"unicode/1f636-1f32b.png?v8",face_with_head_bandage:"unicode/1f915.png?v8",face_with_spiral_eyes:"unicode/1f635-1f4ab.png?v8",face_with_thermometer:"unicode/1f912.png?v8",facepalm:"unicode/1f926.png?v8",facepunch:"unicode/1f44a.png?v8",factory:"unicode/1f3ed.png?v8",factory_worker:"unicode/1f9d1-1f3ed.png?v8",fairy:"unicode/1f9da.png?v8",fairy_man:"unicode/1f9da-2642.png?v8",fairy_woman:"unicode/1f9da-2640.png?v8",falafel:"unicode/1f9c6.png?v8",falkland_islands:"unicode/1f1eb-1f1f0.png?v8",fallen_leaf:"unicode/1f342.png?v8",family:"unicode/1f46a.png?v8",family_man_boy:"unicode/1f468-1f466.png?v8",family_man_boy_boy:"unicode/1f468-1f466-1f466.png?v8",family_man_girl:"unicode/1f468-1f467.png?v8",family_man_girl_boy:"unicode/1f468-1f467-1f466.png?v8",family_man_girl_girl:"unicode/1f468-1f467-1f467.png?v8",family_man_man_boy:"unicode/1f468-1f468-1f466.png?v8",family_man_man_boy_boy:"unicode/1f468-1f468-1f466-1f466.png?v8",family_man_man_girl:"unicode/1f468-1f468-1f467.png?v8",family_man_man_girl_boy:"unicode/1f468-1f468-1f467-1f466.png?v8",family_man_man_girl_girl:"unicode/1f468-1f468-1f467-1f467.png?v8",family_man_woman_boy:"unicode/1f468-1f469-1f466.png?v8",family_man_woman_boy_boy:"unicode/1f468-1f469-1f466-1f466.png?v8",family_man_woman_girl:"unicode/1f468-1f469-1f467.png?v8",family_man_woman_girl_boy:"unicode/1f468-1f469-1f467-1f466.png?v8",family_man_woman_girl_girl:"unicode/1f468-1f469-1f467-1f467.png?v8",family_woman_boy:"unicode/1f469-1f466.png?v8",family_woman_boy_boy:"unicode/1f469-1f466-1f466.png?v8",family_woman_girl:"unicode/1f469-1f467.png?v8",family_woman_girl_boy:"unicode/1f469-1f467-1f466.png?v8",family_woman_girl_girl:"unicode/1f469-1f467-1f467.png?v8",family_woman_woman_boy:"unicode/1f469-1f469-1f466.png?v8",family_woman_woman_boy_boy:"unicode/1f469-1f469-1f466-1f466.png?v8",family_woman_woman_girl:"unicode/1f469-1f469-1f467.png?v8",family_woman_woman_girl_boy:"unicode/1f469-1f469-1f467-1f466.png?v8",family_woman_woman_girl_girl:"unicode/1f469-1f469-1f467-1f467.png?v8",farmer:"unicode/1f9d1-1f33e.png?v8",faroe_islands:"unicode/1f1eb-1f1f4.png?v8",fast_forward:"unicode/23e9.png?v8",fax:"unicode/1f4e0.png?v8",fearful:"unicode/1f628.png?v8",feather:"unicode/1fab6.png?v8",feelsgood:"feelsgood.png?v8",feet:"unicode/1f43e.png?v8",female_detective:"unicode/1f575-2640.png?v8",female_sign:"unicode/2640.png?v8",ferris_wheel:"unicode/1f3a1.png?v8",ferry:"unicode/26f4.png?v8",field_hockey:"unicode/1f3d1.png?v8",fiji:"unicode/1f1eb-1f1ef.png?v8",file_cabinet:"unicode/1f5c4.png?v8",file_folder:"unicode/1f4c1.png?v8",film_projector:"unicode/1f4fd.png?v8",film_strip:"unicode/1f39e.png?v8",finland:"unicode/1f1eb-1f1ee.png?v8",finnadie:"finnadie.png?v8",fire:"unicode/1f525.png?v8",fire_engine:"unicode/1f692.png?v8",fire_extinguisher:"unicode/1f9ef.png?v8",firecracker:"unicode/1f9e8.png?v8",firefighter:"unicode/1f9d1-1f692.png?v8",fireworks:"unicode/1f386.png?v8",first_quarter_moon:"unicode/1f313.png?v8",first_quarter_moon_with_face:"unicode/1f31b.png?v8",fish:"unicode/1f41f.png?v8",fish_cake:"unicode/1f365.png?v8",fishing_pole_and_fish:"unicode/1f3a3.png?v8",fishsticks:"fishsticks.png?v8",fist:"unicode/270a.png?v8",fist_left:"unicode/1f91b.png?v8",fist_oncoming:"unicode/1f44a.png?v8",fist_raised:"unicode/270a.png?v8",fist_right:"unicode/1f91c.png?v8",five:"unicode/0035-20e3.png?v8",flags:"unicode/1f38f.png?v8",flamingo:"unicode/1f9a9.png?v8",flashlight:"unicode/1f526.png?v8",flat_shoe:"unicode/1f97f.png?v8",flatbread:"unicode/1fad3.png?v8",fleur_de_lis:"unicode/269c.png?v8",flight_arrival:"unicode/1f6ec.png?v8",flight_departure:"unicode/1f6eb.png?v8",flipper:"unicode/1f42c.png?v8",floppy_disk:"unicode/1f4be.png?v8",flower_playing_cards:"unicode/1f3b4.png?v8",flushed:"unicode/1f633.png?v8",fly:"unicode/1fab0.png?v8",flying_disc:"unicode/1f94f.png?v8",flying_saucer:"unicode/1f6f8.png?v8",fog:"unicode/1f32b.png?v8",foggy:"unicode/1f301.png?v8",fondue:"unicode/1fad5.png?v8",foot:"unicode/1f9b6.png?v8",football:"unicode/1f3c8.png?v8",footprints:"unicode/1f463.png?v8",fork_and_knife:"unicode/1f374.png?v8",fortune_cookie:"unicode/1f960.png?v8",fountain:"unicode/26f2.png?v8",fountain_pen:"unicode/1f58b.png?v8",four:"unicode/0034-20e3.png?v8",four_leaf_clover:"unicode/1f340.png?v8",fox_face:"unicode/1f98a.png?v8",fr:"unicode/1f1eb-1f1f7.png?v8",framed_picture:"unicode/1f5bc.png?v8",free:"unicode/1f193.png?v8",french_guiana:"unicode/1f1ec-1f1eb.png?v8",french_polynesia:"unicode/1f1f5-1f1eb.png?v8",french_southern_territories:"unicode/1f1f9-1f1eb.png?v8",fried_egg:"unicode/1f373.png?v8",fried_shrimp:"unicode/1f364.png?v8",fries:"unicode/1f35f.png?v8",frog:"unicode/1f438.png?v8",frowning:"unicode/1f626.png?v8",frowning_face:"unicode/2639.png?v8",frowning_man:"unicode/1f64d-2642.png?v8",frowning_person:"unicode/1f64d.png?v8",frowning_woman:"unicode/1f64d-2640.png?v8",fu:"unicode/1f595.png?v8",fuelpump:"unicode/26fd.png?v8",full_moon:"unicode/1f315.png?v8",full_moon_with_face:"unicode/1f31d.png?v8",funeral_urn:"unicode/26b1.png?v8",gabon:"unicode/1f1ec-1f1e6.png?v8",gambia:"unicode/1f1ec-1f1f2.png?v8",game_die:"unicode/1f3b2.png?v8",garlic:"unicode/1f9c4.png?v8",gb:"unicode/1f1ec-1f1e7.png?v8",gear:"unicode/2699.png?v8",gem:"unicode/1f48e.png?v8",gemini:"unicode/264a.png?v8",genie:"unicode/1f9de.png?v8",genie_man:"unicode/1f9de-2642.png?v8",genie_woman:"unicode/1f9de-2640.png?v8",georgia:"unicode/1f1ec-1f1ea.png?v8",ghana:"unicode/1f1ec-1f1ed.png?v8",ghost:"unicode/1f47b.png?v8",gibraltar:"unicode/1f1ec-1f1ee.png?v8",gift:"unicode/1f381.png?v8",gift_heart:"unicode/1f49d.png?v8",giraffe:"unicode/1f992.png?v8",girl:"unicode/1f467.png?v8",globe_with_meridians:"unicode/1f310.png?v8",gloves:"unicode/1f9e4.png?v8",goal_net:"unicode/1f945.png?v8",goat:"unicode/1f410.png?v8",goberserk:"goberserk.png?v8",godmode:"godmode.png?v8",goggles:"unicode/1f97d.png?v8",golf:"unicode/26f3.png?v8",golfing:"unicode/1f3cc.png?v8",golfing_man:"unicode/1f3cc-2642.png?v8",golfing_woman:"unicode/1f3cc-2640.png?v8",gorilla:"unicode/1f98d.png?v8",grapes:"unicode/1f347.png?v8",greece:"unicode/1f1ec-1f1f7.png?v8",green_apple:"unicode/1f34f.png?v8",green_book:"unicode/1f4d7.png?v8",green_circle:"unicode/1f7e2.png?v8",green_heart:"unicode/1f49a.png?v8",green_salad:"unicode/1f957.png?v8",green_square:"unicode/1f7e9.png?v8",greenland:"unicode/1f1ec-1f1f1.png?v8",grenada:"unicode/1f1ec-1f1e9.png?v8",grey_exclamation:"unicode/2755.png?v8",grey_question:"unicode/2754.png?v8",grimacing:"unicode/1f62c.png?v8",grin:"unicode/1f601.png?v8",grinning:"unicode/1f600.png?v8",guadeloupe:"unicode/1f1ec-1f1f5.png?v8",guam:"unicode/1f1ec-1f1fa.png?v8",guard:"unicode/1f482.png?v8",guardsman:"unicode/1f482-2642.png?v8",guardswoman:"unicode/1f482-2640.png?v8",guatemala:"unicode/1f1ec-1f1f9.png?v8",guernsey:"unicode/1f1ec-1f1ec.png?v8",guide_dog:"unicode/1f9ae.png?v8",guinea:"unicode/1f1ec-1f1f3.png?v8",guinea_bissau:"unicode/1f1ec-1f1fc.png?v8",guitar:"unicode/1f3b8.png?v8",gun:"unicode/1f52b.png?v8",guyana:"unicode/1f1ec-1f1fe.png?v8",haircut:"unicode/1f487.png?v8",haircut_man:"unicode/1f487-2642.png?v8",haircut_woman:"unicode/1f487-2640.png?v8",haiti:"unicode/1f1ed-1f1f9.png?v8",hamburger:"unicode/1f354.png?v8",hammer:"unicode/1f528.png?v8",hammer_and_pick:"unicode/2692.png?v8",hammer_and_wrench:"unicode/1f6e0.png?v8",hamster:"unicode/1f439.png?v8",hand:"unicode/270b.png?v8",hand_over_mouth:"unicode/1f92d.png?v8",handbag:"unicode/1f45c.png?v8",handball_person:"unicode/1f93e.png?v8",handshake:"unicode/1f91d.png?v8",hankey:"unicode/1f4a9.png?v8",hash:"unicode/0023-20e3.png?v8",hatched_chick:"unicode/1f425.png?v8",hatching_chick:"unicode/1f423.png?v8",headphones:"unicode/1f3a7.png?v8",headstone:"unicode/1faa6.png?v8",health_worker:"unicode/1f9d1-2695.png?v8",hear_no_evil:"unicode/1f649.png?v8",heard_mcdonald_islands:"unicode/1f1ed-1f1f2.png?v8",heart:"unicode/2764.png?v8",heart_decoration:"unicode/1f49f.png?v8",heart_eyes:"unicode/1f60d.png?v8",heart_eyes_cat:"unicode/1f63b.png?v8",heart_on_fire:"unicode/2764-1f525.png?v8",heartbeat:"unicode/1f493.png?v8",heartpulse:"unicode/1f497.png?v8",hearts:"unicode/2665.png?v8",heavy_check_mark:"unicode/2714.png?v8",heavy_division_sign:"unicode/2797.png?v8",heavy_dollar_sign:"unicode/1f4b2.png?v8",heavy_exclamation_mark:"unicode/2757.png?v8",heavy_heart_exclamation:"unicode/2763.png?v8",heavy_minus_sign:"unicode/2796.png?v8",heavy_multiplication_x:"unicode/2716.png?v8",heavy_plus_sign:"unicode/2795.png?v8",hedgehog:"unicode/1f994.png?v8",helicopter:"unicode/1f681.png?v8",herb:"unicode/1f33f.png?v8",hibiscus:"unicode/1f33a.png?v8",high_brightness:"unicode/1f506.png?v8",high_heel:"unicode/1f460.png?v8",hiking_boot:"unicode/1f97e.png?v8",hindu_temple:"unicode/1f6d5.png?v8",hippopotamus:"unicode/1f99b.png?v8",hocho:"unicode/1f52a.png?v8",hole:"unicode/1f573.png?v8",honduras:"unicode/1f1ed-1f1f3.png?v8",honey_pot:"unicode/1f36f.png?v8",honeybee:"unicode/1f41d.png?v8",hong_kong:"unicode/1f1ed-1f1f0.png?v8",hook:"unicode/1fa9d.png?v8",horse:"unicode/1f434.png?v8",horse_racing:"unicode/1f3c7.png?v8",hospital:"unicode/1f3e5.png?v8",hot_face:"unicode/1f975.png?v8",hot_pepper:"unicode/1f336.png?v8",hotdog:"unicode/1f32d.png?v8",hotel:"unicode/1f3e8.png?v8",hotsprings:"unicode/2668.png?v8",hourglass:"unicode/231b.png?v8",hourglass_flowing_sand:"unicode/23f3.png?v8",house:"unicode/1f3e0.png?v8",house_with_garden:"unicode/1f3e1.png?v8",houses:"unicode/1f3d8.png?v8",hugs:"unicode/1f917.png?v8",hungary:"unicode/1f1ed-1f1fa.png?v8",hurtrealbad:"hurtrealbad.png?v8",hushed:"unicode/1f62f.png?v8",hut:"unicode/1f6d6.png?v8",ice_cream:"unicode/1f368.png?v8",ice_cube:"unicode/1f9ca.png?v8",ice_hockey:"unicode/1f3d2.png?v8",ice_skate:"unicode/26f8.png?v8",icecream:"unicode/1f366.png?v8",iceland:"unicode/1f1ee-1f1f8.png?v8",id:"unicode/1f194.png?v8",ideograph_advantage:"unicode/1f250.png?v8",imp:"unicode/1f47f.png?v8",inbox_tray:"unicode/1f4e5.png?v8",incoming_envelope:"unicode/1f4e8.png?v8",india:"unicode/1f1ee-1f1f3.png?v8",indonesia:"unicode/1f1ee-1f1e9.png?v8",infinity:"unicode/267e.png?v8",information_desk_person:"unicode/1f481.png?v8",information_source:"unicode/2139.png?v8",innocent:"unicode/1f607.png?v8",interrobang:"unicode/2049.png?v8",iphone:"unicode/1f4f1.png?v8",iran:"unicode/1f1ee-1f1f7.png?v8",iraq:"unicode/1f1ee-1f1f6.png?v8",ireland:"unicode/1f1ee-1f1ea.png?v8",isle_of_man:"unicode/1f1ee-1f1f2.png?v8",israel:"unicode/1f1ee-1f1f1.png?v8",it:"unicode/1f1ee-1f1f9.png?v8",izakaya_lantern:"unicode/1f3ee.png?v8",jack_o_lantern:"unicode/1f383.png?v8",jamaica:"unicode/1f1ef-1f1f2.png?v8",japan:"unicode/1f5fe.png?v8",japanese_castle:"unicode/1f3ef.png?v8",japanese_goblin:"unicode/1f47a.png?v8",japanese_ogre:"unicode/1f479.png?v8",jeans:"unicode/1f456.png?v8",jersey:"unicode/1f1ef-1f1ea.png?v8",jigsaw:"unicode/1f9e9.png?v8",jordan:"unicode/1f1ef-1f1f4.png?v8",joy:"unicode/1f602.png?v8",joy_cat:"unicode/1f639.png?v8",joystick:"unicode/1f579.png?v8",jp:"unicode/1f1ef-1f1f5.png?v8",judge:"unicode/1f9d1-2696.png?v8",juggling_person:"unicode/1f939.png?v8",kaaba:"unicode/1f54b.png?v8",kangaroo:"unicode/1f998.png?v8",kazakhstan:"unicode/1f1f0-1f1ff.png?v8",kenya:"unicode/1f1f0-1f1ea.png?v8",key:"unicode/1f511.png?v8",keyboard:"unicode/2328.png?v8",keycap_ten:"unicode/1f51f.png?v8",kick_scooter:"unicode/1f6f4.png?v8",kimono:"unicode/1f458.png?v8",kiribati:"unicode/1f1f0-1f1ee.png?v8",kiss:"unicode/1f48b.png?v8",kissing:"unicode/1f617.png?v8",kissing_cat:"unicode/1f63d.png?v8",kissing_closed_eyes:"unicode/1f61a.png?v8",kissing_heart:"unicode/1f618.png?v8",kissing_smiling_eyes:"unicode/1f619.png?v8",kite:"unicode/1fa81.png?v8",kiwi_fruit:"unicode/1f95d.png?v8",kneeling_man:"unicode/1f9ce-2642.png?v8",kneeling_person:"unicode/1f9ce.png?v8",kneeling_woman:"unicode/1f9ce-2640.png?v8",knife:"unicode/1f52a.png?v8",knot:"unicode/1faa2.png?v8",koala:"unicode/1f428.png?v8",koko:"unicode/1f201.png?v8",kosovo:"unicode/1f1fd-1f1f0.png?v8",kr:"unicode/1f1f0-1f1f7.png?v8",kuwait:"unicode/1f1f0-1f1fc.png?v8",kyrgyzstan:"unicode/1f1f0-1f1ec.png?v8",lab_coat:"unicode/1f97c.png?v8",label:"unicode/1f3f7.png?v8",lacrosse:"unicode/1f94d.png?v8",ladder:"unicode/1fa9c.png?v8",lady_beetle:"unicode/1f41e.png?v8",lantern:"unicode/1f3ee.png?v8",laos:"unicode/1f1f1-1f1e6.png?v8",large_blue_circle:"unicode/1f535.png?v8",large_blue_diamond:"unicode/1f537.png?v8",large_orange_diamond:"unicode/1f536.png?v8",last_quarter_moon:"unicode/1f317.png?v8",last_quarter_moon_with_face:"unicode/1f31c.png?v8",latin_cross:"unicode/271d.png?v8",latvia:"unicode/1f1f1-1f1fb.png?v8",laughing:"unicode/1f606.png?v8",leafy_green:"unicode/1f96c.png?v8",leaves:"unicode/1f343.png?v8",lebanon:"unicode/1f1f1-1f1e7.png?v8",ledger:"unicode/1f4d2.png?v8",left_luggage:"unicode/1f6c5.png?v8",left_right_arrow:"unicode/2194.png?v8",left_speech_bubble:"unicode/1f5e8.png?v8",leftwards_arrow_with_hook:"unicode/21a9.png?v8",leg:"unicode/1f9b5.png?v8",lemon:"unicode/1f34b.png?v8",leo:"unicode/264c.png?v8",leopard:"unicode/1f406.png?v8",lesotho:"unicode/1f1f1-1f1f8.png?v8",level_slider:"unicode/1f39a.png?v8",liberia:"unicode/1f1f1-1f1f7.png?v8",libra:"unicode/264e.png?v8",libya:"unicode/1f1f1-1f1fe.png?v8",liechtenstein:"unicode/1f1f1-1f1ee.png?v8",light_rail:"unicode/1f688.png?v8",link:"unicode/1f517.png?v8",lion:"unicode/1f981.png?v8",lips:"unicode/1f444.png?v8",lipstick:"unicode/1f484.png?v8",lithuania:"unicode/1f1f1-1f1f9.png?v8",lizard:"unicode/1f98e.png?v8",llama:"unicode/1f999.png?v8",lobster:"unicode/1f99e.png?v8",lock:"unicode/1f512.png?v8",lock_with_ink_pen:"unicode/1f50f.png?v8",lollipop:"unicode/1f36d.png?v8",long_drum:"unicode/1fa98.png?v8",loop:"unicode/27bf.png?v8",lotion_bottle:"unicode/1f9f4.png?v8",lotus_position:"unicode/1f9d8.png?v8",lotus_position_man:"unicode/1f9d8-2642.png?v8",lotus_position_woman:"unicode/1f9d8-2640.png?v8",loud_sound:"unicode/1f50a.png?v8",loudspeaker:"unicode/1f4e2.png?v8",love_hotel:"unicode/1f3e9.png?v8",love_letter:"unicode/1f48c.png?v8",love_you_gesture:"unicode/1f91f.png?v8",low_brightness:"unicode/1f505.png?v8",luggage:"unicode/1f9f3.png?v8",lungs:"unicode/1fac1.png?v8",luxembourg:"unicode/1f1f1-1f1fa.png?v8",lying_face:"unicode/1f925.png?v8",m:"unicode/24c2.png?v8",macau:"unicode/1f1f2-1f1f4.png?v8",macedonia:"unicode/1f1f2-1f1f0.png?v8",madagascar:"unicode/1f1f2-1f1ec.png?v8",mag:"unicode/1f50d.png?v8",mag_right:"unicode/1f50e.png?v8",mage:"unicode/1f9d9.png?v8",mage_man:"unicode/1f9d9-2642.png?v8",mage_woman:"unicode/1f9d9-2640.png?v8",magic_wand:"unicode/1fa84.png?v8",magnet:"unicode/1f9f2.png?v8",mahjong:"unicode/1f004.png?v8",mailbox:"unicode/1f4eb.png?v8",mailbox_closed:"unicode/1f4ea.png?v8",mailbox_with_mail:"unicode/1f4ec.png?v8",mailbox_with_no_mail:"unicode/1f4ed.png?v8",malawi:"unicode/1f1f2-1f1fc.png?v8",malaysia:"unicode/1f1f2-1f1fe.png?v8",maldives:"unicode/1f1f2-1f1fb.png?v8",male_detective:"unicode/1f575-2642.png?v8",male_sign:"unicode/2642.png?v8",mali:"unicode/1f1f2-1f1f1.png?v8",malta:"unicode/1f1f2-1f1f9.png?v8",mammoth:"unicode/1f9a3.png?v8",man:"unicode/1f468.png?v8",man_artist:"unicode/1f468-1f3a8.png?v8",man_astronaut:"unicode/1f468-1f680.png?v8",man_beard:"unicode/1f9d4-2642.png?v8",man_cartwheeling:"unicode/1f938-2642.png?v8",man_cook:"unicode/1f468-1f373.png?v8",man_dancing:"unicode/1f57a.png?v8",man_facepalming:"unicode/1f926-2642.png?v8",man_factory_worker:"unicode/1f468-1f3ed.png?v8",man_farmer:"unicode/1f468-1f33e.png?v8",man_feeding_baby:"unicode/1f468-1f37c.png?v8",man_firefighter:"unicode/1f468-1f692.png?v8",man_health_worker:"unicode/1f468-2695.png?v8",man_in_manual_wheelchair:"unicode/1f468-1f9bd.png?v8",man_in_motorized_wheelchair:"unicode/1f468-1f9bc.png?v8",man_in_tuxedo:"unicode/1f935-2642.png?v8",man_judge:"unicode/1f468-2696.png?v8",man_juggling:"unicode/1f939-2642.png?v8",man_mechanic:"unicode/1f468-1f527.png?v8",man_office_worker:"unicode/1f468-1f4bc.png?v8",man_pilot:"unicode/1f468-2708.png?v8",man_playing_handball:"unicode/1f93e-2642.png?v8",man_playing_water_polo:"unicode/1f93d-2642.png?v8",man_scientist:"unicode/1f468-1f52c.png?v8",man_shrugging:"unicode/1f937-2642.png?v8",man_singer:"unicode/1f468-1f3a4.png?v8",man_student:"unicode/1f468-1f393.png?v8",man_teacher:"unicode/1f468-1f3eb.png?v8",man_technologist:"unicode/1f468-1f4bb.png?v8",man_with_gua_pi_mao:"unicode/1f472.png?v8",man_with_probing_cane:"unicode/1f468-1f9af.png?v8",man_with_turban:"unicode/1f473-2642.png?v8",man_with_veil:"unicode/1f470-2642.png?v8",mandarin:"unicode/1f34a.png?v8",mango:"unicode/1f96d.png?v8",mans_shoe:"unicode/1f45e.png?v8",mantelpiece_clock:"unicode/1f570.png?v8",manual_wheelchair:"unicode/1f9bd.png?v8",maple_leaf:"unicode/1f341.png?v8",marshall_islands:"unicode/1f1f2-1f1ed.png?v8",martial_arts_uniform:"unicode/1f94b.png?v8",martinique:"unicode/1f1f2-1f1f6.png?v8",mask:"unicode/1f637.png?v8",massage:"unicode/1f486.png?v8",massage_man:"unicode/1f486-2642.png?v8",massage_woman:"unicode/1f486-2640.png?v8",mate:"unicode/1f9c9.png?v8",mauritania:"unicode/1f1f2-1f1f7.png?v8",mauritius:"unicode/1f1f2-1f1fa.png?v8",mayotte:"unicode/1f1fe-1f1f9.png?v8",meat_on_bone:"unicode/1f356.png?v8",mechanic:"unicode/1f9d1-1f527.png?v8",mechanical_arm:"unicode/1f9be.png?v8",mechanical_leg:"unicode/1f9bf.png?v8",medal_military:"unicode/1f396.png?v8",medal_sports:"unicode/1f3c5.png?v8",medical_symbol:"unicode/2695.png?v8",mega:"unicode/1f4e3.png?v8",melon:"unicode/1f348.png?v8",memo:"unicode/1f4dd.png?v8",men_wrestling:"unicode/1f93c-2642.png?v8",mending_heart:"unicode/2764-1fa79.png?v8",menorah:"unicode/1f54e.png?v8",mens:"unicode/1f6b9.png?v8",mermaid:"unicode/1f9dc-2640.png?v8",merman:"unicode/1f9dc-2642.png?v8",merperson:"unicode/1f9dc.png?v8",metal:"unicode/1f918.png?v8",metro:"unicode/1f687.png?v8",mexico:"unicode/1f1f2-1f1fd.png?v8",microbe:"unicode/1f9a0.png?v8",micronesia:"unicode/1f1eb-1f1f2.png?v8",microphone:"unicode/1f3a4.png?v8",microscope:"unicode/1f52c.png?v8",middle_finger:"unicode/1f595.png?v8",military_helmet:"unicode/1fa96.png?v8",milk_glass:"unicode/1f95b.png?v8",milky_way:"unicode/1f30c.png?v8",minibus:"unicode/1f690.png?v8",minidisc:"unicode/1f4bd.png?v8",mirror:"unicode/1fa9e.png?v8",mobile_phone_off:"unicode/1f4f4.png?v8",moldova:"unicode/1f1f2-1f1e9.png?v8",monaco:"unicode/1f1f2-1f1e8.png?v8",money_mouth_face:"unicode/1f911.png?v8",money_with_wings:"unicode/1f4b8.png?v8",moneybag:"unicode/1f4b0.png?v8",mongolia:"unicode/1f1f2-1f1f3.png?v8",monkey:"unicode/1f412.png?v8",monkey_face:"unicode/1f435.png?v8",monocle_face:"unicode/1f9d0.png?v8",monorail:"unicode/1f69d.png?v8",montenegro:"unicode/1f1f2-1f1ea.png?v8",montserrat:"unicode/1f1f2-1f1f8.png?v8",moon:"unicode/1f314.png?v8",moon_cake:"unicode/1f96e.png?v8",morocco:"unicode/1f1f2-1f1e6.png?v8",mortar_board:"unicode/1f393.png?v8",mosque:"unicode/1f54c.png?v8",mosquito:"unicode/1f99f.png?v8",motor_boat:"unicode/1f6e5.png?v8",motor_scooter:"unicode/1f6f5.png?v8",motorcycle:"unicode/1f3cd.png?v8",motorized_wheelchair:"unicode/1f9bc.png?v8",motorway:"unicode/1f6e3.png?v8",mount_fuji:"unicode/1f5fb.png?v8",mountain:"unicode/26f0.png?v8",mountain_bicyclist:"unicode/1f6b5.png?v8",mountain_biking_man:"unicode/1f6b5-2642.png?v8",mountain_biking_woman:"unicode/1f6b5-2640.png?v8",mountain_cableway:"unicode/1f6a0.png?v8",mountain_railway:"unicode/1f69e.png?v8",mountain_snow:"unicode/1f3d4.png?v8",mouse:"unicode/1f42d.png?v8",mouse2:"unicode/1f401.png?v8",mouse_trap:"unicode/1faa4.png?v8",movie_camera:"unicode/1f3a5.png?v8",moyai:"unicode/1f5ff.png?v8",mozambique:"unicode/1f1f2-1f1ff.png?v8",mrs_claus:"unicode/1f936.png?v8",muscle:"unicode/1f4aa.png?v8",mushroom:"unicode/1f344.png?v8",musical_keyboard:"unicode/1f3b9.png?v8",musical_note:"unicode/1f3b5.png?v8",musical_score:"unicode/1f3bc.png?v8",mute:"unicode/1f507.png?v8",mx_claus:"unicode/1f9d1-1f384.png?v8",myanmar:"unicode/1f1f2-1f1f2.png?v8",nail_care:"unicode/1f485.png?v8",name_badge:"unicode/1f4db.png?v8",namibia:"unicode/1f1f3-1f1e6.png?v8",national_park:"unicode/1f3de.png?v8",nauru:"unicode/1f1f3-1f1f7.png?v8",nauseated_face:"unicode/1f922.png?v8",nazar_amulet:"unicode/1f9ff.png?v8",neckbeard:"neckbeard.png?v8",necktie:"unicode/1f454.png?v8",negative_squared_cross_mark:"unicode/274e.png?v8",nepal:"unicode/1f1f3-1f1f5.png?v8",nerd_face:"unicode/1f913.png?v8",nesting_dolls:"unicode/1fa86.png?v8",netherlands:"unicode/1f1f3-1f1f1.png?v8",neutral_face:"unicode/1f610.png?v8",new:"unicode/1f195.png?v8",new_caledonia:"unicode/1f1f3-1f1e8.png?v8",new_moon:"unicode/1f311.png?v8",new_moon_with_face:"unicode/1f31a.png?v8",new_zealand:"unicode/1f1f3-1f1ff.png?v8",newspaper:"unicode/1f4f0.png?v8",newspaper_roll:"unicode/1f5de.png?v8",next_track_button:"unicode/23ed.png?v8",ng:"unicode/1f196.png?v8",ng_man:"unicode/1f645-2642.png?v8",ng_woman:"unicode/1f645-2640.png?v8",nicaragua:"unicode/1f1f3-1f1ee.png?v8",niger:"unicode/1f1f3-1f1ea.png?v8",nigeria:"unicode/1f1f3-1f1ec.png?v8",night_with_stars:"unicode/1f303.png?v8",nine:"unicode/0039-20e3.png?v8",ninja:"unicode/1f977.png?v8",niue:"unicode/1f1f3-1f1fa.png?v8",no_bell:"unicode/1f515.png?v8",no_bicycles:"unicode/1f6b3.png?v8",no_entry:"unicode/26d4.png?v8",no_entry_sign:"unicode/1f6ab.png?v8",no_good:"unicode/1f645.png?v8",no_good_man:"unicode/1f645-2642.png?v8",no_good_woman:"unicode/1f645-2640.png?v8",no_mobile_phones:"unicode/1f4f5.png?v8",no_mouth:"unicode/1f636.png?v8",no_pedestrians:"unicode/1f6b7.png?v8",no_smoking:"unicode/1f6ad.png?v8","non-potable_water":"unicode/1f6b1.png?v8",norfolk_island:"unicode/1f1f3-1f1eb.png?v8",north_korea:"unicode/1f1f0-1f1f5.png?v8",northern_mariana_islands:"unicode/1f1f2-1f1f5.png?v8",norway:"unicode/1f1f3-1f1f4.png?v8",nose:"unicode/1f443.png?v8",notebook:"unicode/1f4d3.png?v8",notebook_with_decorative_cover:"unicode/1f4d4.png?v8",notes:"unicode/1f3b6.png?v8",nut_and_bolt:"unicode/1f529.png?v8",o:"unicode/2b55.png?v8",o2:"unicode/1f17e.png?v8",ocean:"unicode/1f30a.png?v8",octocat:"octocat.png?v8",octopus:"unicode/1f419.png?v8",oden:"unicode/1f362.png?v8",office:"unicode/1f3e2.png?v8",office_worker:"unicode/1f9d1-1f4bc.png?v8",oil_drum:"unicode/1f6e2.png?v8",ok:"unicode/1f197.png?v8",ok_hand:"unicode/1f44c.png?v8",ok_man:"unicode/1f646-2642.png?v8",ok_person:"unicode/1f646.png?v8",ok_woman:"unicode/1f646-2640.png?v8",old_key:"unicode/1f5dd.png?v8",older_adult:"unicode/1f9d3.png?v8",older_man:"unicode/1f474.png?v8",older_woman:"unicode/1f475.png?v8",olive:"unicode/1fad2.png?v8",om:"unicode/1f549.png?v8",oman:"unicode/1f1f4-1f1f2.png?v8",on:"unicode/1f51b.png?v8",oncoming_automobile:"unicode/1f698.png?v8",oncoming_bus:"unicode/1f68d.png?v8",oncoming_police_car:"unicode/1f694.png?v8",oncoming_taxi:"unicode/1f696.png?v8",one:"unicode/0031-20e3.png?v8",one_piece_swimsuit:"unicode/1fa71.png?v8",onion:"unicode/1f9c5.png?v8",open_book:"unicode/1f4d6.png?v8",open_file_folder:"unicode/1f4c2.png?v8",open_hands:"unicode/1f450.png?v8",open_mouth:"unicode/1f62e.png?v8",open_umbrella:"unicode/2602.png?v8",ophiuchus:"unicode/26ce.png?v8",orange:"unicode/1f34a.png?v8",orange_book:"unicode/1f4d9.png?v8",orange_circle:"unicode/1f7e0.png?v8",orange_heart:"unicode/1f9e1.png?v8",orange_square:"unicode/1f7e7.png?v8",orangutan:"unicode/1f9a7.png?v8",orthodox_cross:"unicode/2626.png?v8",otter:"unicode/1f9a6.png?v8",outbox_tray:"unicode/1f4e4.png?v8",owl:"unicode/1f989.png?v8",ox:"unicode/1f402.png?v8",oyster:"unicode/1f9aa.png?v8",package:"unicode/1f4e6.png?v8",page_facing_up:"unicode/1f4c4.png?v8",page_with_curl:"unicode/1f4c3.png?v8",pager:"unicode/1f4df.png?v8",paintbrush:"unicode/1f58c.png?v8",pakistan:"unicode/1f1f5-1f1f0.png?v8",palau:"unicode/1f1f5-1f1fc.png?v8",palestinian_territories:"unicode/1f1f5-1f1f8.png?v8",palm_tree:"unicode/1f334.png?v8",palms_up_together:"unicode/1f932.png?v8",panama:"unicode/1f1f5-1f1e6.png?v8",pancakes:"unicode/1f95e.png?v8",panda_face:"unicode/1f43c.png?v8",paperclip:"unicode/1f4ce.png?v8",paperclips:"unicode/1f587.png?v8",papua_new_guinea:"unicode/1f1f5-1f1ec.png?v8",parachute:"unicode/1fa82.png?v8",paraguay:"unicode/1f1f5-1f1fe.png?v8",parasol_on_ground:"unicode/26f1.png?v8",parking:"unicode/1f17f.png?v8",parrot:"unicode/1f99c.png?v8",part_alternation_mark:"unicode/303d.png?v8",partly_sunny:"unicode/26c5.png?v8",partying_face:"unicode/1f973.png?v8",passenger_ship:"unicode/1f6f3.png?v8",passport_control:"unicode/1f6c2.png?v8",pause_button:"unicode/23f8.png?v8",paw_prints:"unicode/1f43e.png?v8",peace_symbol:"unicode/262e.png?v8",peach:"unicode/1f351.png?v8",peacock:"unicode/1f99a.png?v8",peanuts:"unicode/1f95c.png?v8",pear:"unicode/1f350.png?v8",pen:"unicode/1f58a.png?v8",pencil:"unicode/1f4dd.png?v8",pencil2:"unicode/270f.png?v8",penguin:"unicode/1f427.png?v8",pensive:"unicode/1f614.png?v8",people_holding_hands:"unicode/1f9d1-1f91d-1f9d1.png?v8",people_hugging:"unicode/1fac2.png?v8",performing_arts:"unicode/1f3ad.png?v8",persevere:"unicode/1f623.png?v8",person_bald:"unicode/1f9d1-1f9b2.png?v8",person_curly_hair:"unicode/1f9d1-1f9b1.png?v8",person_feeding_baby:"unicode/1f9d1-1f37c.png?v8",person_fencing:"unicode/1f93a.png?v8",person_in_manual_wheelchair:"unicode/1f9d1-1f9bd.png?v8",person_in_motorized_wheelchair:"unicode/1f9d1-1f9bc.png?v8",person_in_tuxedo:"unicode/1f935.png?v8",person_red_hair:"unicode/1f9d1-1f9b0.png?v8",person_white_hair:"unicode/1f9d1-1f9b3.png?v8",person_with_probing_cane:"unicode/1f9d1-1f9af.png?v8",person_with_turban:"unicode/1f473.png?v8",person_with_veil:"unicode/1f470.png?v8",peru:"unicode/1f1f5-1f1ea.png?v8",petri_dish:"unicode/1f9eb.png?v8",philippines:"unicode/1f1f5-1f1ed.png?v8",phone:"unicode/260e.png?v8",pick:"unicode/26cf.png?v8",pickup_truck:"unicode/1f6fb.png?v8",pie:"unicode/1f967.png?v8",pig:"unicode/1f437.png?v8",pig2:"unicode/1f416.png?v8",pig_nose:"unicode/1f43d.png?v8",pill:"unicode/1f48a.png?v8",pilot:"unicode/1f9d1-2708.png?v8",pinata:"unicode/1fa85.png?v8",pinched_fingers:"unicode/1f90c.png?v8",pinching_hand:"unicode/1f90f.png?v8",pineapple:"unicode/1f34d.png?v8",ping_pong:"unicode/1f3d3.png?v8",pirate_flag:"unicode/1f3f4-2620.png?v8",pisces:"unicode/2653.png?v8",pitcairn_islands:"unicode/1f1f5-1f1f3.png?v8",pizza:"unicode/1f355.png?v8",placard:"unicode/1faa7.png?v8",place_of_worship:"unicode/1f6d0.png?v8",plate_with_cutlery:"unicode/1f37d.png?v8",play_or_pause_button:"unicode/23ef.png?v8",pleading_face:"unicode/1f97a.png?v8",plunger:"unicode/1faa0.png?v8",point_down:"unicode/1f447.png?v8",point_left:"unicode/1f448.png?v8",point_right:"unicode/1f449.png?v8",point_up:"unicode/261d.png?v8",point_up_2:"unicode/1f446.png?v8",poland:"unicode/1f1f5-1f1f1.png?v8",polar_bear:"unicode/1f43b-2744.png?v8",police_car:"unicode/1f693.png?v8",police_officer:"unicode/1f46e.png?v8",policeman:"unicode/1f46e-2642.png?v8",policewoman:"unicode/1f46e-2640.png?v8",poodle:"unicode/1f429.png?v8",poop:"unicode/1f4a9.png?v8",popcorn:"unicode/1f37f.png?v8",portugal:"unicode/1f1f5-1f1f9.png?v8",post_office:"unicode/1f3e3.png?v8",postal_horn:"unicode/1f4ef.png?v8",postbox:"unicode/1f4ee.png?v8",potable_water:"unicode/1f6b0.png?v8",potato:"unicode/1f954.png?v8",potted_plant:"unicode/1fab4.png?v8",pouch:"unicode/1f45d.png?v8",poultry_leg:"unicode/1f357.png?v8",pound:"unicode/1f4b7.png?v8",pout:"unicode/1f621.png?v8",pouting_cat:"unicode/1f63e.png?v8",pouting_face:"unicode/1f64e.png?v8",pouting_man:"unicode/1f64e-2642.png?v8",pouting_woman:"unicode/1f64e-2640.png?v8",pray:"unicode/1f64f.png?v8",prayer_beads:"unicode/1f4ff.png?v8",pregnant_woman:"unicode/1f930.png?v8",pretzel:"unicode/1f968.png?v8",previous_track_button:"unicode/23ee.png?v8",prince:"unicode/1f934.png?v8",princess:"unicode/1f478.png?v8",printer:"unicode/1f5a8.png?v8",probing_cane:"unicode/1f9af.png?v8",puerto_rico:"unicode/1f1f5-1f1f7.png?v8",punch:"unicode/1f44a.png?v8",purple_circle:"unicode/1f7e3.png?v8",purple_heart:"unicode/1f49c.png?v8",purple_square:"unicode/1f7ea.png?v8",purse:"unicode/1f45b.png?v8",pushpin:"unicode/1f4cc.png?v8",put_litter_in_its_place:"unicode/1f6ae.png?v8",qatar:"unicode/1f1f6-1f1e6.png?v8",question:"unicode/2753.png?v8",rabbit:"unicode/1f430.png?v8",rabbit2:"unicode/1f407.png?v8",raccoon:"unicode/1f99d.png?v8",racehorse:"unicode/1f40e.png?v8",racing_car:"unicode/1f3ce.png?v8",radio:"unicode/1f4fb.png?v8",radio_button:"unicode/1f518.png?v8",radioactive:"unicode/2622.png?v8",rage:"unicode/1f621.png?v8",rage1:"rage1.png?v8",rage2:"rage2.png?v8",rage3:"rage3.png?v8",rage4:"rage4.png?v8",railway_car:"unicode/1f683.png?v8",railway_track:"unicode/1f6e4.png?v8",rainbow:"unicode/1f308.png?v8",rainbow_flag:"unicode/1f3f3-1f308.png?v8",raised_back_of_hand:"unicode/1f91a.png?v8",raised_eyebrow:"unicode/1f928.png?v8",raised_hand:"unicode/270b.png?v8",raised_hand_with_fingers_splayed:"unicode/1f590.png?v8",raised_hands:"unicode/1f64c.png?v8",raising_hand:"unicode/1f64b.png?v8",raising_hand_man:"unicode/1f64b-2642.png?v8",raising_hand_woman:"unicode/1f64b-2640.png?v8",ram:"unicode/1f40f.png?v8",ramen:"unicode/1f35c.png?v8",rat:"unicode/1f400.png?v8",razor:"unicode/1fa92.png?v8",receipt:"unicode/1f9fe.png?v8",record_button:"unicode/23fa.png?v8",recycle:"unicode/267b.png?v8",red_car:"unicode/1f697.png?v8",red_circle:"unicode/1f534.png?v8",red_envelope:"unicode/1f9e7.png?v8",red_haired_man:"unicode/1f468-1f9b0.png?v8",red_haired_woman:"unicode/1f469-1f9b0.png?v8",red_square:"unicode/1f7e5.png?v8",registered:"unicode/00ae.png?v8",relaxed:"unicode/263a.png?v8",relieved:"unicode/1f60c.png?v8",reminder_ribbon:"unicode/1f397.png?v8",repeat:"unicode/1f501.png?v8",repeat_one:"unicode/1f502.png?v8",rescue_worker_helmet:"unicode/26d1.png?v8",restroom:"unicode/1f6bb.png?v8",reunion:"unicode/1f1f7-1f1ea.png?v8",revolving_hearts:"unicode/1f49e.png?v8",rewind:"unicode/23ea.png?v8",rhinoceros:"unicode/1f98f.png?v8",ribbon:"unicode/1f380.png?v8",rice:"unicode/1f35a.png?v8",rice_ball:"unicode/1f359.png?v8",rice_cracker:"unicode/1f358.png?v8",rice_scene:"unicode/1f391.png?v8",right_anger_bubble:"unicode/1f5ef.png?v8",ring:"unicode/1f48d.png?v8",ringed_planet:"unicode/1fa90.png?v8",robot:"unicode/1f916.png?v8",rock:"unicode/1faa8.png?v8",rocket:"unicode/1f680.png?v8",rofl:"unicode/1f923.png?v8",roll_eyes:"unicode/1f644.png?v8",roll_of_paper:"unicode/1f9fb.png?v8",roller_coaster:"unicode/1f3a2.png?v8",roller_skate:"unicode/1f6fc.png?v8",romania:"unicode/1f1f7-1f1f4.png?v8",rooster:"unicode/1f413.png?v8",rose:"unicode/1f339.png?v8",rosette:"unicode/1f3f5.png?v8",rotating_light:"unicode/1f6a8.png?v8",round_pushpin:"unicode/1f4cd.png?v8",rowboat:"unicode/1f6a3.png?v8",rowing_man:"unicode/1f6a3-2642.png?v8",rowing_woman:"unicode/1f6a3-2640.png?v8",ru:"unicode/1f1f7-1f1fa.png?v8",rugby_football:"unicode/1f3c9.png?v8",runner:"unicode/1f3c3.png?v8",running:"unicode/1f3c3.png?v8",running_man:"unicode/1f3c3-2642.png?v8",running_shirt_with_sash:"unicode/1f3bd.png?v8",running_woman:"unicode/1f3c3-2640.png?v8",rwanda:"unicode/1f1f7-1f1fc.png?v8",sa:"unicode/1f202.png?v8",safety_pin:"unicode/1f9f7.png?v8",safety_vest:"unicode/1f9ba.png?v8",sagittarius:"unicode/2650.png?v8",sailboat:"unicode/26f5.png?v8",sake:"unicode/1f376.png?v8",salt:"unicode/1f9c2.png?v8",samoa:"unicode/1f1fc-1f1f8.png?v8",san_marino:"unicode/1f1f8-1f1f2.png?v8",sandal:"unicode/1f461.png?v8",sandwich:"unicode/1f96a.png?v8",santa:"unicode/1f385.png?v8",sao_tome_principe:"unicode/1f1f8-1f1f9.png?v8",sari:"unicode/1f97b.png?v8",sassy_man:"unicode/1f481-2642.png?v8",sassy_woman:"unicode/1f481-2640.png?v8",satellite:"unicode/1f4e1.png?v8",satisfied:"unicode/1f606.png?v8",saudi_arabia:"unicode/1f1f8-1f1e6.png?v8",sauna_man:"unicode/1f9d6-2642.png?v8",sauna_person:"unicode/1f9d6.png?v8",sauna_woman:"unicode/1f9d6-2640.png?v8",sauropod:"unicode/1f995.png?v8",saxophone:"unicode/1f3b7.png?v8",scarf:"unicode/1f9e3.png?v8",school:"unicode/1f3eb.png?v8",school_satchel:"unicode/1f392.png?v8",scientist:"unicode/1f9d1-1f52c.png?v8",scissors:"unicode/2702.png?v8",scorpion:"unicode/1f982.png?v8",scorpius:"unicode/264f.png?v8",scotland:"unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8",scream:"unicode/1f631.png?v8",scream_cat:"unicode/1f640.png?v8",screwdriver:"unicode/1fa9b.png?v8",scroll:"unicode/1f4dc.png?v8",seal:"unicode/1f9ad.png?v8",seat:"unicode/1f4ba.png?v8",secret:"unicode/3299.png?v8",see_no_evil:"unicode/1f648.png?v8",seedling:"unicode/1f331.png?v8",selfie:"unicode/1f933.png?v8",senegal:"unicode/1f1f8-1f1f3.png?v8",serbia:"unicode/1f1f7-1f1f8.png?v8",service_dog:"unicode/1f415-1f9ba.png?v8",seven:"unicode/0037-20e3.png?v8",sewing_needle:"unicode/1faa1.png?v8",seychelles:"unicode/1f1f8-1f1e8.png?v8",shallow_pan_of_food:"unicode/1f958.png?v8",shamrock:"unicode/2618.png?v8",shark:"unicode/1f988.png?v8",shaved_ice:"unicode/1f367.png?v8",sheep:"unicode/1f411.png?v8",shell:"unicode/1f41a.png?v8",shield:"unicode/1f6e1.png?v8",shinto_shrine:"unicode/26e9.png?v8",ship:"unicode/1f6a2.png?v8",shipit:"shipit.png?v8",shirt:"unicode/1f455.png?v8",shit:"unicode/1f4a9.png?v8",shoe:"unicode/1f45e.png?v8",shopping:"unicode/1f6cd.png?v8",shopping_cart:"unicode/1f6d2.png?v8",shorts:"unicode/1fa73.png?v8",shower:"unicode/1f6bf.png?v8",shrimp:"unicode/1f990.png?v8",shrug:"unicode/1f937.png?v8",shushing_face:"unicode/1f92b.png?v8",sierra_leone:"unicode/1f1f8-1f1f1.png?v8",signal_strength:"unicode/1f4f6.png?v8",singapore:"unicode/1f1f8-1f1ec.png?v8",singer:"unicode/1f9d1-1f3a4.png?v8",sint_maarten:"unicode/1f1f8-1f1fd.png?v8",six:"unicode/0036-20e3.png?v8",six_pointed_star:"unicode/1f52f.png?v8",skateboard:"unicode/1f6f9.png?v8",ski:"unicode/1f3bf.png?v8",skier:"unicode/26f7.png?v8",skull:"unicode/1f480.png?v8",skull_and_crossbones:"unicode/2620.png?v8",skunk:"unicode/1f9a8.png?v8",sled:"unicode/1f6f7.png?v8",sleeping:"unicode/1f634.png?v8",sleeping_bed:"unicode/1f6cc.png?v8",sleepy:"unicode/1f62a.png?v8",slightly_frowning_face:"unicode/1f641.png?v8",slightly_smiling_face:"unicode/1f642.png?v8",slot_machine:"unicode/1f3b0.png?v8",sloth:"unicode/1f9a5.png?v8",slovakia:"unicode/1f1f8-1f1f0.png?v8",slovenia:"unicode/1f1f8-1f1ee.png?v8",small_airplane:"unicode/1f6e9.png?v8",small_blue_diamond:"unicode/1f539.png?v8",small_orange_diamond:"unicode/1f538.png?v8",small_red_triangle:"unicode/1f53a.png?v8",small_red_triangle_down:"unicode/1f53b.png?v8",smile:"unicode/1f604.png?v8",smile_cat:"unicode/1f638.png?v8",smiley:"unicode/1f603.png?v8",smiley_cat:"unicode/1f63a.png?v8",smiling_face_with_tear:"unicode/1f972.png?v8",smiling_face_with_three_hearts:"unicode/1f970.png?v8",smiling_imp:"unicode/1f608.png?v8",smirk:"unicode/1f60f.png?v8",smirk_cat:"unicode/1f63c.png?v8",smoking:"unicode/1f6ac.png?v8",snail:"unicode/1f40c.png?v8",snake:"unicode/1f40d.png?v8",sneezing_face:"unicode/1f927.png?v8",snowboarder:"unicode/1f3c2.png?v8",snowflake:"unicode/2744.png?v8",snowman:"unicode/26c4.png?v8",snowman_with_snow:"unicode/2603.png?v8",soap:"unicode/1f9fc.png?v8",sob:"unicode/1f62d.png?v8",soccer:"unicode/26bd.png?v8",socks:"unicode/1f9e6.png?v8",softball:"unicode/1f94e.png?v8",solomon_islands:"unicode/1f1f8-1f1e7.png?v8",somalia:"unicode/1f1f8-1f1f4.png?v8",soon:"unicode/1f51c.png?v8",sos:"unicode/1f198.png?v8",sound:"unicode/1f509.png?v8",south_africa:"unicode/1f1ff-1f1e6.png?v8",south_georgia_south_sandwich_islands:"unicode/1f1ec-1f1f8.png?v8",south_sudan:"unicode/1f1f8-1f1f8.png?v8",space_invader:"unicode/1f47e.png?v8",spades:"unicode/2660.png?v8",spaghetti:"unicode/1f35d.png?v8",sparkle:"unicode/2747.png?v8",sparkler:"unicode/1f387.png?v8",sparkles:"unicode/2728.png?v8",sparkling_heart:"unicode/1f496.png?v8",speak_no_evil:"unicode/1f64a.png?v8",speaker:"unicode/1f508.png?v8",speaking_head:"unicode/1f5e3.png?v8",speech_balloon:"unicode/1f4ac.png?v8",speedboat:"unicode/1f6a4.png?v8",spider:"unicode/1f577.png?v8",spider_web:"unicode/1f578.png?v8",spiral_calendar:"unicode/1f5d3.png?v8",spiral_notepad:"unicode/1f5d2.png?v8",sponge:"unicode/1f9fd.png?v8",spoon:"unicode/1f944.png?v8",squid:"unicode/1f991.png?v8",sri_lanka:"unicode/1f1f1-1f1f0.png?v8",st_barthelemy:"unicode/1f1e7-1f1f1.png?v8",st_helena:"unicode/1f1f8-1f1ed.png?v8",st_kitts_nevis:"unicode/1f1f0-1f1f3.png?v8",st_lucia:"unicode/1f1f1-1f1e8.png?v8",st_martin:"unicode/1f1f2-1f1eb.png?v8",st_pierre_miquelon:"unicode/1f1f5-1f1f2.png?v8",st_vincent_grenadines:"unicode/1f1fb-1f1e8.png?v8",stadium:"unicode/1f3df.png?v8",standing_man:"unicode/1f9cd-2642.png?v8",standing_person:"unicode/1f9cd.png?v8",standing_woman:"unicode/1f9cd-2640.png?v8",star:"unicode/2b50.png?v8",star2:"unicode/1f31f.png?v8",star_and_crescent:"unicode/262a.png?v8",star_of_david:"unicode/2721.png?v8",star_struck:"unicode/1f929.png?v8",stars:"unicode/1f320.png?v8",station:"unicode/1f689.png?v8",statue_of_liberty:"unicode/1f5fd.png?v8",steam_locomotive:"unicode/1f682.png?v8",stethoscope:"unicode/1fa7a.png?v8",stew:"unicode/1f372.png?v8",stop_button:"unicode/23f9.png?v8",stop_sign:"unicode/1f6d1.png?v8",stopwatch:"unicode/23f1.png?v8",straight_ruler:"unicode/1f4cf.png?v8",strawberry:"unicode/1f353.png?v8",stuck_out_tongue:"unicode/1f61b.png?v8",stuck_out_tongue_closed_eyes:"unicode/1f61d.png?v8",stuck_out_tongue_winking_eye:"unicode/1f61c.png?v8",student:"unicode/1f9d1-1f393.png?v8",studio_microphone:"unicode/1f399.png?v8",stuffed_flatbread:"unicode/1f959.png?v8",sudan:"unicode/1f1f8-1f1e9.png?v8",sun_behind_large_cloud:"unicode/1f325.png?v8",sun_behind_rain_cloud:"unicode/1f326.png?v8",sun_behind_small_cloud:"unicode/1f324.png?v8",sun_with_face:"unicode/1f31e.png?v8",sunflower:"unicode/1f33b.png?v8",sunglasses:"unicode/1f60e.png?v8",sunny:"unicode/2600.png?v8",sunrise:"unicode/1f305.png?v8",sunrise_over_mountains:"unicode/1f304.png?v8",superhero:"unicode/1f9b8.png?v8",superhero_man:"unicode/1f9b8-2642.png?v8",superhero_woman:"unicode/1f9b8-2640.png?v8",supervillain:"unicode/1f9b9.png?v8",supervillain_man:"unicode/1f9b9-2642.png?v8",supervillain_woman:"unicode/1f9b9-2640.png?v8",surfer:"unicode/1f3c4.png?v8",surfing_man:"unicode/1f3c4-2642.png?v8",surfing_woman:"unicode/1f3c4-2640.png?v8",suriname:"unicode/1f1f8-1f1f7.png?v8",sushi:"unicode/1f363.png?v8",suspect:"suspect.png?v8",suspension_railway:"unicode/1f69f.png?v8",svalbard_jan_mayen:"unicode/1f1f8-1f1ef.png?v8",swan:"unicode/1f9a2.png?v8",swaziland:"unicode/1f1f8-1f1ff.png?v8",sweat:"unicode/1f613.png?v8",sweat_drops:"unicode/1f4a6.png?v8",sweat_smile:"unicode/1f605.png?v8",sweden:"unicode/1f1f8-1f1ea.png?v8",sweet_potato:"unicode/1f360.png?v8",swim_brief:"unicode/1fa72.png?v8",swimmer:"unicode/1f3ca.png?v8",swimming_man:"unicode/1f3ca-2642.png?v8",swimming_woman:"unicode/1f3ca-2640.png?v8",switzerland:"unicode/1f1e8-1f1ed.png?v8",symbols:"unicode/1f523.png?v8",synagogue:"unicode/1f54d.png?v8",syria:"unicode/1f1f8-1f1fe.png?v8",syringe:"unicode/1f489.png?v8","t-rex":"unicode/1f996.png?v8",taco:"unicode/1f32e.png?v8",tada:"unicode/1f389.png?v8",taiwan:"unicode/1f1f9-1f1fc.png?v8",tajikistan:"unicode/1f1f9-1f1ef.png?v8",takeout_box:"unicode/1f961.png?v8",tamale:"unicode/1fad4.png?v8",tanabata_tree:"unicode/1f38b.png?v8",tangerine:"unicode/1f34a.png?v8",tanzania:"unicode/1f1f9-1f1ff.png?v8",taurus:"unicode/2649.png?v8",taxi:"unicode/1f695.png?v8",tea:"unicode/1f375.png?v8",teacher:"unicode/1f9d1-1f3eb.png?v8",teapot:"unicode/1fad6.png?v8",technologist:"unicode/1f9d1-1f4bb.png?v8",teddy_bear:"unicode/1f9f8.png?v8",telephone:"unicode/260e.png?v8",telephone_receiver:"unicode/1f4de.png?v8",telescope:"unicode/1f52d.png?v8",tennis:"unicode/1f3be.png?v8",tent:"unicode/26fa.png?v8",test_tube:"unicode/1f9ea.png?v8",thailand:"unicode/1f1f9-1f1ed.png?v8",thermometer:"unicode/1f321.png?v8",thinking:"unicode/1f914.png?v8",thong_sandal:"unicode/1fa74.png?v8",thought_balloon:"unicode/1f4ad.png?v8",thread:"unicode/1f9f5.png?v8",three:"unicode/0033-20e3.png?v8",thumbsdown:"unicode/1f44e.png?v8",thumbsup:"unicode/1f44d.png?v8",ticket:"unicode/1f3ab.png?v8",tickets:"unicode/1f39f.png?v8",tiger:"unicode/1f42f.png?v8",tiger2:"unicode/1f405.png?v8",timer_clock:"unicode/23f2.png?v8",timor_leste:"unicode/1f1f9-1f1f1.png?v8",tipping_hand_man:"unicode/1f481-2642.png?v8",tipping_hand_person:"unicode/1f481.png?v8",tipping_hand_woman:"unicode/1f481-2640.png?v8",tired_face:"unicode/1f62b.png?v8",tm:"unicode/2122.png?v8",togo:"unicode/1f1f9-1f1ec.png?v8",toilet:"unicode/1f6bd.png?v8",tokelau:"unicode/1f1f9-1f1f0.png?v8",tokyo_tower:"unicode/1f5fc.png?v8",tomato:"unicode/1f345.png?v8",tonga:"unicode/1f1f9-1f1f4.png?v8",tongue:"unicode/1f445.png?v8",toolbox:"unicode/1f9f0.png?v8",tooth:"unicode/1f9b7.png?v8",toothbrush:"unicode/1faa5.png?v8",top:"unicode/1f51d.png?v8",tophat:"unicode/1f3a9.png?v8",tornado:"unicode/1f32a.png?v8",tr:"unicode/1f1f9-1f1f7.png?v8",trackball:"unicode/1f5b2.png?v8",tractor:"unicode/1f69c.png?v8",traffic_light:"unicode/1f6a5.png?v8",train:"unicode/1f68b.png?v8",train2:"unicode/1f686.png?v8",tram:"unicode/1f68a.png?v8",transgender_flag:"unicode/1f3f3-26a7.png?v8",transgender_symbol:"unicode/26a7.png?v8",triangular_flag_on_post:"unicode/1f6a9.png?v8",triangular_ruler:"unicode/1f4d0.png?v8",trident:"unicode/1f531.png?v8",trinidad_tobago:"unicode/1f1f9-1f1f9.png?v8",tristan_da_cunha:"unicode/1f1f9-1f1e6.png?v8",triumph:"unicode/1f624.png?v8",trolleybus:"unicode/1f68e.png?v8",trollface:"trollface.png?v8",trophy:"unicode/1f3c6.png?v8",tropical_drink:"unicode/1f379.png?v8",tropical_fish:"unicode/1f420.png?v8",truck:"unicode/1f69a.png?v8",trumpet:"unicode/1f3ba.png?v8",tshirt:"unicode/1f455.png?v8",tulip:"unicode/1f337.png?v8",tumbler_glass:"unicode/1f943.png?v8",tunisia:"unicode/1f1f9-1f1f3.png?v8",turkey:"unicode/1f983.png?v8",turkmenistan:"unicode/1f1f9-1f1f2.png?v8",turks_caicos_islands:"unicode/1f1f9-1f1e8.png?v8",turtle:"unicode/1f422.png?v8",tuvalu:"unicode/1f1f9-1f1fb.png?v8",tv:"unicode/1f4fa.png?v8",twisted_rightwards_arrows:"unicode/1f500.png?v8",two:"unicode/0032-20e3.png?v8",two_hearts:"unicode/1f495.png?v8",two_men_holding_hands:"unicode/1f46c.png?v8",two_women_holding_hands:"unicode/1f46d.png?v8",u5272:"unicode/1f239.png?v8",u5408:"unicode/1f234.png?v8",u55b6:"unicode/1f23a.png?v8",u6307:"unicode/1f22f.png?v8",u6708:"unicode/1f237.png?v8",u6709:"unicode/1f236.png?v8",u6e80:"unicode/1f235.png?v8",u7121:"unicode/1f21a.png?v8",u7533:"unicode/1f238.png?v8",u7981:"unicode/1f232.png?v8",u7a7a:"unicode/1f233.png?v8",uganda:"unicode/1f1fa-1f1ec.png?v8",uk:"unicode/1f1ec-1f1e7.png?v8",ukraine:"unicode/1f1fa-1f1e6.png?v8",umbrella:"unicode/2614.png?v8",unamused:"unicode/1f612.png?v8",underage:"unicode/1f51e.png?v8",unicorn:"unicode/1f984.png?v8",united_arab_emirates:"unicode/1f1e6-1f1ea.png?v8",united_nations:"unicode/1f1fa-1f1f3.png?v8",unlock:"unicode/1f513.png?v8",up:"unicode/1f199.png?v8",upside_down_face:"unicode/1f643.png?v8",uruguay:"unicode/1f1fa-1f1fe.png?v8",us:"unicode/1f1fa-1f1f8.png?v8",us_outlying_islands:"unicode/1f1fa-1f1f2.png?v8",us_virgin_islands:"unicode/1f1fb-1f1ee.png?v8",uzbekistan:"unicode/1f1fa-1f1ff.png?v8",v:"unicode/270c.png?v8",vampire:"unicode/1f9db.png?v8",vampire_man:"unicode/1f9db-2642.png?v8",vampire_woman:"unicode/1f9db-2640.png?v8",vanuatu:"unicode/1f1fb-1f1fa.png?v8",vatican_city:"unicode/1f1fb-1f1e6.png?v8",venezuela:"unicode/1f1fb-1f1ea.png?v8",vertical_traffic_light:"unicode/1f6a6.png?v8",vhs:"unicode/1f4fc.png?v8",vibration_mode:"unicode/1f4f3.png?v8",video_camera:"unicode/1f4f9.png?v8",video_game:"unicode/1f3ae.png?v8",vietnam:"unicode/1f1fb-1f1f3.png?v8",violin:"unicode/1f3bb.png?v8",virgo:"unicode/264d.png?v8",volcano:"unicode/1f30b.png?v8",volleyball:"unicode/1f3d0.png?v8",vomiting_face:"unicode/1f92e.png?v8",vs:"unicode/1f19a.png?v8",vulcan_salute:"unicode/1f596.png?v8",waffle:"unicode/1f9c7.png?v8",wales:"unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8",walking:"unicode/1f6b6.png?v8",walking_man:"unicode/1f6b6-2642.png?v8",walking_woman:"unicode/1f6b6-2640.png?v8",wallis_futuna:"unicode/1f1fc-1f1eb.png?v8",waning_crescent_moon:"unicode/1f318.png?v8",waning_gibbous_moon:"unicode/1f316.png?v8",warning:"unicode/26a0.png?v8",wastebasket:"unicode/1f5d1.png?v8",watch:"unicode/231a.png?v8",water_buffalo:"unicode/1f403.png?v8",water_polo:"unicode/1f93d.png?v8",watermelon:"unicode/1f349.png?v8",wave:"unicode/1f44b.png?v8",wavy_dash:"unicode/3030.png?v8",waxing_crescent_moon:"unicode/1f312.png?v8",waxing_gibbous_moon:"unicode/1f314.png?v8",wc:"unicode/1f6be.png?v8",weary:"unicode/1f629.png?v8",wedding:"unicode/1f492.png?v8",weight_lifting:"unicode/1f3cb.png?v8",weight_lifting_man:"unicode/1f3cb-2642.png?v8",weight_lifting_woman:"unicode/1f3cb-2640.png?v8",western_sahara:"unicode/1f1ea-1f1ed.png?v8",whale:"unicode/1f433.png?v8",whale2:"unicode/1f40b.png?v8",wheel_of_dharma:"unicode/2638.png?v8",wheelchair:"unicode/267f.png?v8",white_check_mark:"unicode/2705.png?v8",white_circle:"unicode/26aa.png?v8",white_flag:"unicode/1f3f3.png?v8",white_flower:"unicode/1f4ae.png?v8",white_haired_man:"unicode/1f468-1f9b3.png?v8",white_haired_woman:"unicode/1f469-1f9b3.png?v8",white_heart:"unicode/1f90d.png?v8",white_large_square:"unicode/2b1c.png?v8",white_medium_small_square:"unicode/25fd.png?v8",white_medium_square:"unicode/25fb.png?v8",white_small_square:"unicode/25ab.png?v8",white_square_button:"unicode/1f533.png?v8",wilted_flower:"unicode/1f940.png?v8",wind_chime:"unicode/1f390.png?v8",wind_face:"unicode/1f32c.png?v8",window:"unicode/1fa9f.png?v8",wine_glass:"unicode/1f377.png?v8",wink:"unicode/1f609.png?v8",wolf:"unicode/1f43a.png?v8",woman:"unicode/1f469.png?v8",woman_artist:"unicode/1f469-1f3a8.png?v8",woman_astronaut:"unicode/1f469-1f680.png?v8",woman_beard:"unicode/1f9d4-2640.png?v8",woman_cartwheeling:"unicode/1f938-2640.png?v8",woman_cook:"unicode/1f469-1f373.png?v8",woman_dancing:"unicode/1f483.png?v8",woman_facepalming:"unicode/1f926-2640.png?v8",woman_factory_worker:"unicode/1f469-1f3ed.png?v8",woman_farmer:"unicode/1f469-1f33e.png?v8",woman_feeding_baby:"unicode/1f469-1f37c.png?v8",woman_firefighter:"unicode/1f469-1f692.png?v8",woman_health_worker:"unicode/1f469-2695.png?v8",woman_in_manual_wheelchair:"unicode/1f469-1f9bd.png?v8",woman_in_motorized_wheelchair:"unicode/1f469-1f9bc.png?v8",woman_in_tuxedo:"unicode/1f935-2640.png?v8",woman_judge:"unicode/1f469-2696.png?v8",woman_juggling:"unicode/1f939-2640.png?v8",woman_mechanic:"unicode/1f469-1f527.png?v8",woman_office_worker:"unicode/1f469-1f4bc.png?v8",woman_pilot:"unicode/1f469-2708.png?v8",woman_playing_handball:"unicode/1f93e-2640.png?v8",woman_playing_water_polo:"unicode/1f93d-2640.png?v8",woman_scientist:"unicode/1f469-1f52c.png?v8",woman_shrugging:"unicode/1f937-2640.png?v8",woman_singer:"unicode/1f469-1f3a4.png?v8",woman_student:"unicode/1f469-1f393.png?v8",woman_teacher:"unicode/1f469-1f3eb.png?v8",woman_technologist:"unicode/1f469-1f4bb.png?v8",woman_with_headscarf:"unicode/1f9d5.png?v8",woman_with_probing_cane:"unicode/1f469-1f9af.png?v8",woman_with_turban:"unicode/1f473-2640.png?v8",woman_with_veil:"unicode/1f470-2640.png?v8",womans_clothes:"unicode/1f45a.png?v8",womans_hat:"unicode/1f452.png?v8",women_wrestling:"unicode/1f93c-2640.png?v8",womens:"unicode/1f6ba.png?v8",wood:"unicode/1fab5.png?v8",woozy_face:"unicode/1f974.png?v8",world_map:"unicode/1f5fa.png?v8",worm:"unicode/1fab1.png?v8",worried:"unicode/1f61f.png?v8",wrench:"unicode/1f527.png?v8",wrestling:"unicode/1f93c.png?v8",writing_hand:"unicode/270d.png?v8",x:"unicode/274c.png?v8",yarn:"unicode/1f9f6.png?v8",yawning_face:"unicode/1f971.png?v8",yellow_circle:"unicode/1f7e1.png?v8",yellow_heart:"unicode/1f49b.png?v8",yellow_square:"unicode/1f7e8.png?v8",yemen:"unicode/1f1fe-1f1ea.png?v8",yen:"unicode/1f4b4.png?v8",yin_yang:"unicode/262f.png?v8",yo_yo:"unicode/1fa80.png?v8",yum:"unicode/1f60b.png?v8",zambia:"unicode/1f1ff-1f1f2.png?v8",zany_face:"unicode/1f92a.png?v8",zap:"unicode/26a1.png?v8",zebra:"unicode/1f993.png?v8",zero:"unicode/0030-20e3.png?v8",zimbabwe:"unicode/1f1ff-1f1fc.png?v8",zipper_mouth_face:"unicode/1f910.png?v8",zombie:"unicode/1f9df.png?v8",zombie_man:"unicode/1f9df-2642.png?v8",zombie_woman:"unicode/1f9df-2640.png?v8",zzz:"unicode/1f4a4.png?v8"};window&&window.console&&console.info("Docsify emoji plugin has been deprecated as of v4.13"),window.emojify=function(n,e){return!1===Object.prototype.hasOwnProperty.call(i,e)?n:''+e+''}}(); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js b/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js new file mode 100644 index 00000000..f1659f1e --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js @@ -0,0 +1 @@ +!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var s=e.languages.extend("typescript",{});delete s["class-name"],e.languages.typescript["class-name"].inside=s,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),e.languages.ts=e.languages.typescript}(Prism); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/search.min.js b/ruoyi-admin/src/main/resources/static/static/js/search.min.js new file mode 100644 index 00000000..9719f653 --- /dev/null +++ b/ruoyi-admin/src/main/resources/static/static/js/search.min.js @@ -0,0 +1 @@ +!function(){function u(e){return e.replace(//,"").replace(/{docsify-ignore}/,"").replace(//,"").replace(/{docsify-ignore-all}/,"").trim()}var f={},m={EXPIRE_KEY:"docsify.search.expires",INDEX_KEY:"docsify.search.index"};function g(e){var n={"&":"&","<":"<",">":">",'"':""","'":"'"};return String(e).replace(/[&<>"']/g,function(e){return n[e]})}function y(e){return e.text||"table"!==e.type||(e.cells.unshift(e.header),e.text=e.cells.map(function(e){return e.join(" | ")}).join(" |\n ")),e.text}function v(e){return e.text||"list"!==e.type||(e.text=e.raw),e.text}function b(o,e,s,c){void 0===e&&(e="");var d,e=window.marked.lexer(e),l=window.Docsify.slugify,p={},h="";return e.forEach(function(e,n){var t,a,i,r;"heading"===e.type&&e.depth<=c?(t=(a=(i=e.text,r={},{str:i=(i=void 0===i?"":i)&&i.replace(/^('|")/,"").replace(/('|")$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,t){return-1===n.indexOf(":")?(r[n]=t&&t.replace(/"/g,"")||!0,""):e}).trim(),config:r})).str,i=a.config,a=u(e.text),d=i.id?s.toURL(o,{id:l(i.id)}):s.toURL(o,{id:l(g(a))}),t&&(h=u(t)),p[d]={slug:d,title:h,body:""}):(0===n&&(d=s.toURL(o),p[d]={slug:d,title:"/"!==o?o.slice(1):"Home Page",body:e.text||""}),d&&(p[d]?p[d].body?(e.text=y(e),e.text=v(e),p[d].body+="\n"+(e.text||"")):(e.text=y(e),e.text=v(e),p[d].body=e.text||""):p[d]={slug:d,title:"",body:""}))}),l.clear(),p}function p(e){return e&&e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function o(e){var n=[],t=[];Object.keys(f).forEach(function(n){t=t.concat(Object.keys(f[n]).map(function(e){return f[n][e]}))});var a=(e=e.trim()).split(/[\s\-,\\/]+/);1!==a.length&&(a=[].concat(e,a));for(var i=0;il.length&&(t=l.length),a=c&&"..."+c.substring(n,t).replace(a,function(e){return''+e+""})+"...",o+=a)}),0\n\n

    '+e.title+"

    \n

    "+e.content+"

    \n
    \n"}),t.classList.add("show"),a.classList.add("show"),t.innerHTML=r||'

    '+c+"

    ",s.hideOtherSidebarContent&&(i&&i.classList.add("hide"),n&&n.classList.add("hide"))}function l(e){s=e}function h(e,n){var t,a,i=n.router.parse().query.s;l(e),Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0.6em 7px;\n font-size: inherit;\n border: 1px solid transparent;\n}\n\n.search input:focus {\n box-shadow: 0 0 5px var(--theme-color, #42b983);\n border: 1px solid var(--theme-color, #42b983);\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.search input::-ms-clear {\n display: none;\n height: 0;\n width: 0;\n}\n\n.search .clear-button {\n cursor: pointer;\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}"),function(e){void 0===e&&(e="");var n=Docsify.dom.create("div",'
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n '),e=Docsify.dom.find("aside");Docsify.dom.toggleClass(n,"search"),Docsify.dom.before(e,n)}(i),n=Docsify.dom.find("div.search"),a=Docsify.dom.find(n,"input"),e=Docsify.dom.find(n,".input-wrap"),Docsify.dom.on(n,"click",function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()}),Docsify.dom.on(a,"input",function(n){clearTimeout(t),t=setTimeout(function(e){return d(n.target.value.trim())},100)}),Docsify.dom.on(e,"click",function(e){"INPUT"!==e.target.tagName&&(a.value="",d())}),i&&setTimeout(function(e){return d(i)},500)}function x(e,n){var t,a,i,r,o;l(e),t=e.placeholder,a=n.route.path,(r=Docsify.dom.getNode('.search input[type="search"]'))&&("string"==typeof t?r.placeholder=t:(i=Object.keys(t).filter(function(e){return-1u.scrollOffset&&setTimeout(a,150))}),window.addEventListener("resize",a);var f={open:i,close:a,toggle:o,update:function(){var e=0org.springframework.ai spring-ai-ollama-spring-boot-starter + + + org.springframework.ai + spring-ai-core + + + + org.springframework.ai + spring-ai-ollama + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java index 6fd54c42..097d90a9 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAgentManageBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatAgentManage; +import org.ruoyi.domain.ChatAgentManage; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java index b77431b5..36a8aca3 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatAppStoreBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatAppStore; +import org.ruoyi.domain.ChatAppStore; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java index 2c77aa18..5c97704e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatGptsBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatGpts; +import org.ruoyi.domain.ChatGpts; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java index ac0fdc14..ab000479 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPackagePlanBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatPackagePlan; +import org.ruoyi.domain.ChatPackagePlan; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java index 41191d55..e427c15f 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPayOrderBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatPayOrder; +import org.ruoyi.domain.ChatPayOrder; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java index 4f6357ba..b96d6fcf 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/bo/ChatPluginBo.java @@ -2,7 +2,7 @@ package org.ruoyi.domain.bo; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; -import org.ruoyi.system.domain.ChatPlugin; +import org.ruoyi.domain.ChatPlugin; import org.ruoyi.common.mybatis.core.domain.BaseEntity; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java index bb18e7f5..3ccc1760 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAgentManageVo.java @@ -1,16 +1,16 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; + -import org.ruoyi.system.domain.ChatAgentManage; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import annotation.excel.common.org.ruoyi.ExcelDictFormat; -import convert.excel.common.org.ruoyi.ExcelDictConvert; + import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatAgentManage; import java.io.Serial; import java.io.Serializable; -import java.util.Date; + diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java index 24af7081..94840abb 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatAppStoreVo.java @@ -1,11 +1,12 @@ -package org.ruoyi.system.domain.vo; +package org.ruoyi.domain.vo; + -import org.ruoyi.system.domain.ChatAppStore; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatAppStore; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java index 1148b3dc..9d515d40 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatGptsVo.java @@ -1,11 +1,12 @@ package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatGpts; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatGpts; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java index bbc6867f..501a1b6d 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatMessageVo.java @@ -1,12 +1,13 @@ package org.ruoyi.domain.vo; import java.math.BigDecimal; -import org.ruoyi.system.domain.ChatMessage; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatMessage; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java index 3e256946..56efb598 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatModelVo.java @@ -1,11 +1,12 @@ package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatModel; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatModel; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java index 484c3d47..39236aee 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPackagePlanVo.java @@ -1,12 +1,13 @@ package org.ruoyi.domain.vo; import java.math.BigDecimal; -import org.ruoyi.system.domain.ChatPackagePlan; + import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatPackagePlan; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java index 220d1afd..cfe47330 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPayOrderVo.java @@ -1,12 +1,12 @@ package org.ruoyi.domain.vo; import java.math.BigDecimal; -import org.ruoyi.system.domain.ChatPayOrder; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.ruoyi.domain.ChatPayOrder; import java.io.Serial; import java.io.Serializable; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java index 5246b585..3e900e6f 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/ChatPluginVo.java @@ -1,6 +1,6 @@ package org.ruoyi.domain.vo; -import org.ruoyi.system.domain.ChatPlugin; +import org.ruoyi.domain.ChatPlugin; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java index 978b213a..7e0769ec 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAgentManageMapper.java @@ -2,7 +2,7 @@ package org.ruoyi.mapper; import org.ruoyi.domain.ChatAgentManage; -import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.domain.vo.ChatAgentManageVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java index 22aef7b3..8d9e8e8e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/mapper/ChatAppStoreMapper.java @@ -2,7 +2,7 @@ package org.ruoyi.mapper; import org.ruoyi.domain.ChatAppStore; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; +import org.ruoyi.domain.vo.ChatAppStoreVo; import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; /** diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java index bf511ddc..61310d08 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAgentManageService.java @@ -2,7 +2,7 @@ package org.ruoyi.service; import org.ruoyi.domain.bo.ChatAgentManageBo; -import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.domain.vo.ChatAgentManageVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java index 03a55b8c..495db04e 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/IChatAppStoreService.java @@ -2,7 +2,7 @@ package org.ruoyi.service; import org.ruoyi.domain.bo.ChatAppStoreBo; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; +import org.ruoyi.domain.vo.ChatAppStoreVo; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java index abcb4f72..29acb655 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAgentManageServiceImpl.java @@ -1,10 +1,10 @@ package org.ruoyi.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.ruoyi.common.core.utils.MapstructUtils; import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; @@ -14,7 +14,7 @@ import org.ruoyi.mapper.ChatAgentManageMapper; import org.ruoyi.service.IChatAgentManageService; import org.springframework.stereotype.Service; -import org.ruoyi.system.domain.vo.ChatAgentManageVo; +import org.ruoyi.domain.vo.ChatAgentManageVo; import java.util.List; diff --git a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java index 55a63408..b0e48896 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java +++ b/ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatAppStoreServiceImpl.java @@ -13,9 +13,7 @@ import org.ruoyi.domain.bo.ChatAppStoreBo; import org.ruoyi.mapper.ChatAppStoreMapper; import org.ruoyi.service.IChatAppStoreService; import org.springframework.stereotype.Service; - -import org.ruoyi.system.domain.vo.ChatAppStoreVo; - +import org.ruoyi.domain.vo.ChatAppStoreVo; import java.util.List; import java.util.Map; import java.util.Collection; diff --git a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java index 6aca9009..aa72d761 100644 --- a/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java +++ b/ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/chain/loader/ResourceLoaderFactory.java @@ -1,13 +1,12 @@ package org.ruoyi.chain.loader; import lombok.AllArgsConstructor; -import org.ruoyi.chain.loader.ResourceLoader; -import org.ruoyi.chain.loader.TextFileLoader; import org.ruoyi.chain.split.CharacterTextSplitter; import org.ruoyi.chain.split.CodeTextSplitter; import org.ruoyi.chain.split.MarkdownTextSplitter; import org.ruoyi.chain.split.TokenTextSplitter; -import org.ruoyi.knowledge.constant.FileType; + +import org.ruoyi.constant.FileType; import org.springframework.stereotype.Component; @AllArgsConstructor diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index 877d990a..34b27cd5 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -22,8 +22,14 @@ ruoyi-chat ruoyi-system ruoyi-generator + ruoyi-admin + + 4.5.14 + 2.15.2 + + org.ruoyi @@ -34,6 +40,34 @@ org.ruoyi ruoyi-common-idempotent + + + org.ruoyi + ruoyi-common-security + + + + org.ruoyi + ruoyi-common-sensitive + + + + org.ruoyi + ruoyi-common-tenant + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + ${jackson.version} + + + + org.apache.httpcomponents + httpmime + ${httpclient.version} + + diff --git a/ruoyi-modules/ruoyi-chat/pom.xml b/ruoyi-modules/ruoyi-chat/pom.xml index 5749f4e8..2a14fb14 100644 --- a/ruoyi-modules/ruoyi-chat/pom.xml +++ b/ruoyi-modules/ruoyi-chat/pom.xml @@ -114,20 +114,6 @@ ruoyi-system-api - - org.springframework.ai - spring-ai-core - 1.0.0-M6 - compile - - - - org.springframework.ai - spring-ai-ollama - 1.0.0-M6 - compile - - diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java index 935725d2..fbc94aa1 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAgentManageController.java @@ -8,8 +8,10 @@ import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.ruoyi.common.excel.utils.ExcelUtil; import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.common.web.core.BaseController; import org.ruoyi.domain.bo.ChatAgentManageBo; +import org.ruoyi.domain.vo.ChatAgentManageVo; import org.ruoyi.service.IChatAgentManageService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -19,8 +21,6 @@ import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.system.domain.vo.ChatAgentManageVo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; /** * 智能体管理 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java index 4d3ae9d2..fc5c9862 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatAppStoreController.java @@ -8,7 +8,9 @@ import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.ruoyi.common.excel.utils.ExcelUtil; import org.ruoyi.common.idempotent.annotation.RepeatSubmit; +import org.ruoyi.common.mybatis.core.page.TableDataInfo; import org.ruoyi.domain.bo.ChatAppStoreBo; +import org.ruoyi.domain.vo.ChatAppStoreVo; import org.ruoyi.service.IChatAppStoreService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -19,8 +21,6 @@ import org.ruoyi.common.core.domain.R; import org.ruoyi.common.core.validate.AddGroup; import org.ruoyi.common.core.validate.EditGroup; import org.ruoyi.common.log.enums.BusinessType; -import org.ruoyi.system.domain.vo.ChatAppStoreVo; -import org.ruoyi.common.mybatis.core.page.TableDataInfo; /** * 应用商店 diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java index aa70c9ae..83f27001 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java @@ -12,8 +12,8 @@ import okhttp3.sse.EventSource; import okhttp3.sse.EventSourceListener; import org.jetbrains.annotations.NotNull; import org.ruoyi.chat.service.chat.IChatCostService; -import org.ruoyi.common.chat.domain.request.ChatRequest; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.core.utils.SpringUtils; import org.ruoyi.common.core.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/MjOkHttpUtil.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/MjOkHttpUtil.java index f7d056af..f7b43f7a 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/MjOkHttpUtil.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/MjOkHttpUtil.java @@ -5,12 +5,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import okhttp3.*; import org.ruoyi.common.core.service.ConfigService; -import org.ruoyi.system.domain.bo.SysModelBo; -import org.ruoyi.system.domain.vo.SysModelVo; -import org.ruoyi.system.service.ISysModelService; +import org.ruoyi.domain.bo.ChatModelBo; +import org.ruoyi.domain.vo.ChatModelVo; +import org.ruoyi.service.IChatModelService; import org.springframework.stereotype.Component; import java.io.IOException; + import java.util.List; import java.util.concurrent.TimeUnit; @@ -22,7 +23,7 @@ import java.util.concurrent.TimeUnit; @Slf4j public class MjOkHttpUtil { - private final ISysModelService sysModelService; + private final IChatModelService chatModelService; private final ConfigService configService; @@ -70,13 +71,12 @@ public class MjOkHttpUtil { @PostConstruct public void init() { - SysModelBo sysModelBo = new SysModelBo(); - sysModelBo.setModelName("midjourney"); - List sysModelList = sysModelService.queryList(sysModelBo); - if (!sysModelList.isEmpty()) { - SysModelVo model = sysModelList.get(0); - this.apiKey = model.getApiKey(); - this.apiHost = model.getApiHost(); + ChatModelBo sysModelBo = new ChatModelBo(); + sysModelBo.setModelName(""); + ChatModelVo midjourney = chatModelService.selectModelByName("midjourney"); + if (midjourney != null) { + this.apiKey = midjourney.getApiKey(); + this.apiHost = midjourney.getApiHost(); } } diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 5290a5f8..3f7085d5 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -16,11 +16,6 @@ system系统模块 - - 4.5.14 - 2.15.2 - - @@ -51,37 +46,6 @@ ruoyi-common-sms - - org.ruoyi - ruoyi-common-tenant - - - - org.ruoyi - ruoyi-common-security - - - - org.ruoyi - ruoyi-common-web - - - - org.ruoyi - ruoyi-common-idempotent - - - - org.ruoyi - ruoyi-common-sensitive - - - - - org.ruoyi - ruoyi-common-chat - - org.ruoyi ruoyi-common-mail @@ -92,18 +56,6 @@ ruoyi-system-api - - com.fasterxml.jackson.dataformat - jackson-dataformat-xml - ${jackson.version} - - - - org.apache.httpcomponents - httpmime - ${httpclient.version} - - From 731352fd04a6e8b483a8490fe1a833439302591c Mon Sep 17 00:00:00 2001 From: ageer Date: Mon, 14 Apr 2025 00:22:21 +0800 Subject: [PATCH 17/27] =?UTF-8?q?feat:=20mcp=E6=B5=8B=E8=AF=95=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 61 +- ruoyi-admin/pom.xml | 42 +- .../org/ruoyi/controller/AuthController.java | 17 +- .../org/ruoyi/controller/IndexController.java | 14 +- .../src/main/resources/application-dev.yml | 22 - .../src/main/resources/application.yml | 17 +- .../src/main/resources/static/.gitignore | 46 - .../src/main/resources/static/.nojekyll | 0 ruoyi-admin/src/main/resources/static/CNAME | 1 - .../src/main/resources/static/README.md | 74 - .../src/main/resources/static/_coverpage.md | 32 - .../src/main/resources/static/_footer.md | 2 - .../src/main/resources/static/_navbar.md | 9 - .../src/main/resources/static/_sidebar.md | 16 - .../main/resources/static/common/add_group.md | 27 - .../main/resources/static/common/blacklist.md | 7 - .../main/resources/static/common/column.md | 18 - .../resources/static/common/contribution.md | 69 - .../resources/static/common/demo_system.md | 13 - .../src/main/resources/static/common/pr.md | 37 - .../resources/static/common/user_register.md | 80 - .../src/main/resources/static/common/video.md | 85 - .../src/main/resources/static/index.html | 74 - .../main/resources/static/plus-ui/_sidebar.md | 22 - .../static/plus-ui/devdoc/common_func.md | 234 -- .../static/plus-ui/devdoc/component_use.md | 55 - .../static/plus-ui/devdoc/content_copy.md | 4 - .../static/plus-ui/devdoc/dev_norm.md | 16 - .../static/plus-ui/devdoc/dict_use.md | 4 - .../plus-ui/devdoc/exception_handling.md | 4 - .../static/plus-ui/devdoc/icon_use.md | 4 - .../static/plus-ui/devdoc/page_cache.md | 4 - .../static/plus-ui/devdoc/param_use.md | 4 - .../static/plus-ui/devdoc/permissions_use.md | 4 - .../static/plus-ui/devdoc/request_process.md | 65 - .../static/plus-ui/devdoc/router_use.md | 82 - .../src/main/resources/static/plus-ui/home.md | 53 - .../resources/static/questions/_sidebar.md | 34 - .../resources/static/questions/api_encrypt.md | 148 -- .../resources/static/questions/bean_null.md | 10 - .../resources/static/questions/deploy_vue.md | 13 - .../static/questions/domestic_databases.md | 41 - .../resources/static/questions/dubbo_ip.md | 18 - .../static/questions/https_config.md | 27 - .../static/questions/identify_fail.md | 10 - .../static/questions/import_excel.md | 4 - .../static/questions/jar_run_fail.md | 12 - .../resources/static/questions/jce_cannot.md | 3 - .../resources/static/questions/kinfe4j.md | 66 - .../resources/static/questions/login_step.md | 69 - .../main/resources/static/questions/lombok.md | 4 - .../nacos_naming_instance_metadata.md | 35 - .../static/questions/nacos_read_fail.md | 15 - .../static/questions/only_one_subscriber.md | 11 - .../static/questions/parse_exception.md | 40 - .../static/questions/permission_denied.md | 15 - .../static/questions/read_metadata.md | 11 - .../static/questions/sentinel_404.md | 8 - .../static/questions/st_not_support.md | 11 - .../resources/static/questions/swagger.md | 3 - .../static/questions/synchronous_update.md | 3 - .../resources/static/questions/use_druid.md | 20 - .../resources/static/questions/use_tomcat.md | 9 - .../static/ruoyi-cloud-plus/_sidebar.md | 70 - .../static/ruoyi-cloud-plus/changlog.md | 1385 ----------- .../ruoyi-cloud-plus/extend-function/elk.md | 37 - .../ruoyi-cloud-plus/extend-function/es.md | 26 - .../ruoyi-cloud-plus/extend-function/kafka.md | 9 - .../extend-function/maxkey.md | 20 - .../ruoyi-cloud-plus/extend-function/nacos.md | 13 - .../extend-function/prometheus_grafana.md | 45 - .../extend-function/rabbitmq.md | 10 - .../extend-function/rocketmq.md | 9 - .../extend-function/shardingproxy.md | 75 - .../extend-function/skywalking.md | 41 - .../framework/architecture_diagram.md | 3 - .../framework/association/collaboration.md | 27 - .../framework/association/doc.md | 88 - .../framework/association/i18n.md | 31 - .../association/inner_authentication.md | 19 - .../framework/association/new_module.md | 39 - .../association/update_package_name.md | 33 - .../framework/association/update_url.md | 25 - .../framework/basic/client.md | 85 - .../framework/basic/code_generate.md | 86 - .../framework/basic/export.md | 250 -- .../framework/basic/import.md | 202 -- .../ruoyi-cloud-plus/framework/basic/oss.md | 124 - .../ruoyi-cloud-plus/framework/basic/page.md | 29 - .../framework/basic/param_check.md | 158 -- .../framework/basic/permissions.md | 144 -- .../framework/basic/permissions_control.md | 178 -- .../framework/basic/router_release.md | 26 - .../framework/basic/social.md | 68 - .../framework/basic/tenant.md | 121 - .../ruoyi-cloud-plus/framework/basic/user.md | 85 - .../framework/explain/about_join.md | 12 - .../ruoyi-cloud-plus/framework/explain/key.md | 19 - .../framework/explain/test.md | 6 - .../framework/explain/transaction.md | 45 - .../framework/extend/api_encrypt.md | 39 - .../framework/extend/dynamic_datasource.md | 45 - .../framework/extend/encrypt.md | 38 - .../framework/extend/idempotent.md | 29 - .../ruoyi-cloud-plus/framework/extend/mail.md | 15 - .../framework/extend/sensitive.md | 33 - .../ruoyi-cloud-plus/framework/extend/sms.md | 51 - .../ruoyi-cloud-plus/framework/extend/sse.md | 24 - .../framework/extend/translation.md | 44 - .../framework/extend/websocket.md | 39 - .../static/ruoyi-cloud-plus/framework/tree.md | 91 - .../resources/static/ruoyi-cloud-plus/home.md | 137 -- .../ruoyi-cloud-plus/quickstart/1.Xinit.md | 87 - .../ruoyi-cloud-plus/quickstart/deploy.md | 118 - .../quickstart/extend_project.md | 42 - .../quickstart/idea_environment.md | 38 - .../ruoyi-cloud-plus/quickstart/init.md | 102 - .../quickstart/power_job_init.md | 33 - .../quickstart/snail_job_init.md | 38 - .../quickstart/worker_init.md | 52 - .../static/ruoyi-vue-plus/_sidebar.md | 64 - .../static/ruoyi-vue-plus/changlog.md | 2028 ----------------- .../framework/architecture_diagram.md | 3 - .../framework/association/doc.md | 89 - .../framework/association/i18n.md | 33 - .../framework/association/new_module.md | 15 - .../association/update_package_name.md | 33 - .../framework/association/update_url.md | 26 - .../ruoyi-vue-plus/framework/basic/client.md | 85 - .../framework/basic/code_generate.md | 85 - .../ruoyi-vue-plus/framework/basic/export.md | 249 -- .../ruoyi-vue-plus/framework/basic/import.md | 202 -- .../framework/basic/interface_release.md | 25 - .../ruoyi-vue-plus/framework/basic/oss.md | 124 - .../ruoyi-vue-plus/framework/basic/page.md | 32 - .../framework/basic/param_check.md | 158 -- .../framework/basic/permissions.md | 144 -- .../framework/basic/permissions_control.md | 180 -- .../ruoyi-vue-plus/framework/basic/social.md | 68 - .../ruoyi-vue-plus/framework/basic/tenant.md | 121 - .../ruoyi-vue-plus/framework/basic/user.md | 85 - .../framework/explain/about_join.md | 14 - .../ruoyi-vue-plus/framework/explain/key.md | 19 - .../ruoyi-vue-plus/framework/explain/test.md | 6 - .../framework/explain/transaction.md | 45 - .../framework/extend/api_encrypt.md | 38 - .../framework/extend/dynamic_datasource.md | 45 - .../framework/extend/encrypt.md | 28 - .../framework/extend/idempotent.md | 29 - .../ruoyi-vue-plus/framework/extend/mail.md | 17 - .../ruoyi-vue-plus/framework/extend/maxkey.md | 20 - .../framework/extend/sensitive.md | 33 - .../framework/extend/skywalking.md | 20 - .../ruoyi-vue-plus/framework/extend/sms.md | 51 - .../ruoyi-vue-plus/framework/extend/sse.md | 22 - .../ruoyi-vue-plus/framework/extend/topiam.md | 30 - .../framework/extend/translation.md | 34 - .../framework/extend/websocket.md | 37 - .../static/ruoyi-vue-plus/framework/tree.md | 61 - .../resources/static/ruoyi-vue-plus/home.md | 127 -- .../ruoyi-vue-plus/quickstart/4.Xinit.md | 67 - .../ruoyi-vue-plus/quickstart/5.Xnew.md | 5 - .../ruoyi-vue-plus/quickstart/admin_init.md | 32 - .../ruoyi-vue-plus/quickstart/deploy.md | 126 - .../quickstart/extend_project.md | 49 - .../quickstart/idea_environment.md | 50 - .../static/ruoyi-vue-plus/quickstart/init.md | 73 - .../quickstart/power_job_init.md | 48 - .../quickstart/snail_job_init.md | 52 - .../ruoyi-vue-plus/quickstart/worker_init.md | 43 - .../ruoyi-vue-plus/quickstart/xxl_job_init.md | 43 - .../main/resources/static/static/css/vue.css | 1 - .../resources/static/static/image/favicon.ico | Bin 8131 -> 0 bytes .../resources/static/static/image/logo.png | Bin 119264 -> 0 bytes .../static/static/image/ruoyicloudplus.png | Bin 49107 -> 0 bytes .../static/static/image/ruoyivueplus.png | Bin 54652 -> 0 bytes .../static/static/js/docsify-copy-code.min.js | 9 - .../static/static/js/docsify-footer.min.js | 4 - .../static/js/docsify-pagination.min.js | 1 - .../static/js/docsify-scroll-to-top.min.js | 1 - .../resources/static/static/js/docsify.min.js | 1 - .../resources/static/static/js/emoji.min.js | 1 - .../static/static/js/prism-bash.min.js | 1 - .../static/static/js/prism-typescript.min.js | 1 - .../resources/static/static/js/search.min.js | 1 - .../static/static/js/zoom-image.min.js | 1 - ruoyi-common/ruoyi-common-core/pom.xml | 3 + .../common/core/constant/RegexConstants.java | 59 + .../common/core/constant/SystemConstants.java | 80 + .../core/factory/RegexPatternPoolFactory.java | 53 + .../factory/YmlPropertySourceFactory.java | 32 + .../ruoyi/common/core/utils/ObjectUtils.java | 60 + .../ruoyi/common/core/utils/SpringUtils.java | 9 +- ruoyi-common/ruoyi-common-encrypt/pom.xml | 22 +- ruoyi-common/ruoyi-common-live/pom.xml | 2 +- ruoyi-common/ruoyi-common-mybatis/pom.xml | 10 +- .../jakarta/DsJakartaHeaderProcessor.java | 45 - .../jakarta/DsJakartaSessionProcessor.java | 46 - .../java/org/ruoyi/annotation/DataColumn.java | 40 + .../org/ruoyi/annotation/DataPermission.java | 30 + .../ruoyi/aspect/DataPermissionAspect.java | 50 + .../common/mybatis/annotation/DataColumn.java | 28 - .../mybatis/annotation/DataPermission.java | 18 - .../mybatis/core/mapper/BaseMapperPlus.java | 198 -- .../common/mybatis/enums/DataScopeType.java | 73 - .../handler/InjectionMetaObjectHandler.java | 81 - .../handler/PlusDataPermissionHandler.java | 198 -- .../mybatis/helper/DataPermissionHelper.java | 93 - .../PlusDataPermissionInterceptor.java | 107 - .../jakarta/DsJakartaHeaderProcessor.java | 45 - .../jakarta/DsJakartaSessionProcessor.java | 46 - .../config/MybatisPlusConfig.java | 52 +- .../mybatis => }/core/domain/BaseEntity.java | 3 +- .../org/ruoyi/core/mapper/BaseMapperPlus.java | 335 +++ .../mybatis => }/core/page/PageQuery.java | 17 +- .../mybatis => }/core/page/TableDataInfo.java | 14 +- .../mybatis => }/enums/DataBaseType.java | 12 +- .../java/org/ruoyi/enums/DataScopeType.java | 87 + .../handler/InjectionMetaObjectHandler.java | 103 + .../handler/MybatisExceptionHandler.java | 8 +- .../handler/PlusDataPermissionHandler.java | 359 +++ .../handler/PlusPostInitTableInfoHandler.java | 28 + .../mybatis => }/helper/DataBaseHelper.java | 10 +- .../ruoyi/helper/DataPermissionHelper.java | 176 ++ .../PlusDataPermissionInterceptor.java | 181 ++ ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../src/main/resources/common-mybatis.yml | 33 + .../src/main/resources/spy.properties | 20 + .../common/satoken/utils/LoginHelper.java | 12 + .../common/tenant/config/TenantConfig.java | 3 +- .../common/tenant/core/TenantEntity.java | 3 +- .../common/tenant/helper/TenantHelper.java | 35 + ruoyi-extend/pom.xml | 20 + .../ruoyi-mcp-server/pom.xml | 29 +- .../org/ruoyi/mcp/McpServerApplication.java | 0 .../org/ruoyi/mcp/config/McpServerConfig.java | 0 .../ruoyi/mcp/service/McpCustomService.java | 27 + .../src/main/resources/application-dev.yml | 97 + .../src/main/resources/application-mcp.yml | 0 .../src/main/resources/application.yml | 332 +++ ruoyi-modules-api/ruoyi-chat-api/pom.xml | 41 +- .../org/ruoyi/domain/ChatAgentManage.java | 2 +- .../java/org/ruoyi/domain/ChatAppStore.java | 2 +- .../main/java/org/ruoyi/domain/ChatGpts.java | 2 +- .../java/org/ruoyi/domain/ChatMessage.java | 2 +- .../main/java/org/ruoyi/domain/ChatModel.java | 2 +- .../org/ruoyi/domain/ChatPackagePlan.java | 2 +- .../java/org/ruoyi/domain/ChatPayOrder.java | 2 +- .../java/org/ruoyi/domain/ChatPlugin.java | 2 +- .../java/org/ruoyi/domain/ChatRobConfig.java | 2 +- .../java/org/ruoyi/domain/ChatUsageToken.java | 2 +- .../org/ruoyi/domain/ChatVisitorUsage.java | 2 +- .../java/org/ruoyi/domain/ChatVoucher.java | 2 +- .../ruoyi/domain/bo/ChatAgentManageBo.java | 2 +- .../org/ruoyi/domain/bo/ChatAppStoreBo.java | 2 +- .../java/org/ruoyi/domain/bo/ChatGptsBo.java | 2 +- .../org/ruoyi/domain/bo/ChatMessageBo.java | 2 +- .../java/org/ruoyi/domain/bo/ChatModelBo.java | 2 +- .../ruoyi/domain/bo/ChatPackagePlanBo.java | 2 +- .../org/ruoyi/domain/bo/ChatPayOrderBo.java | 2 +- .../org/ruoyi/domain/bo/ChatPluginBo.java | 2 +- .../org/ruoyi/domain/bo/ChatRobConfigBo.java | 2 +- .../org/ruoyi/domain/bo/ChatUsageTokenBo.java | 2 +- .../ruoyi/domain/bo/ChatVisitorUsageBo.java | 2 +- .../org/ruoyi/domain/bo/ChatVoucherBo.java | 2 +- .../org/ruoyi/domain/vo/CacheListInfoVo.java | 23 - .../java/org/ruoyi/domain/vo/CaptchaVo.java | 25 - .../ruoyi/mapper/ChatAgentManageMapper.java | 2 +- .../org/ruoyi/mapper/ChatAppStoreMapper.java | 2 +- .../java/org/ruoyi/mapper/ChatGptsMapper.java | 2 +- .../org/ruoyi/mapper/ChatMessageMapper.java | 2 +- .../org/ruoyi/mapper/ChatModelMapper.java | 2 +- .../ruoyi/mapper/ChatPackagePlanMapper.java | 2 +- .../org/ruoyi/mapper/ChatPayOrderMapper.java | 2 +- .../org/ruoyi/mapper/ChatPluginMapper.java | 2 +- .../org/ruoyi/mapper/ChatRobConfigMapper.java | 2 +- .../org/ruoyi/mapper/ChatTokenMapper.java | 2 +- .../ruoyi/mapper/ChatUsageTokenMapper.java | 2 +- .../ruoyi/mapper/ChatVisitorUsageMapper.java | 2 +- .../org/ruoyi/mapper/ChatVoucherMapper.java | 2 +- .../service/IChatAgentManageService.java | 4 +- .../ruoyi/service/IChatAppStoreService.java | 4 +- .../org/ruoyi/service/IChatGptsService.java | 4 +- .../ruoyi/service/IChatMessageService.java | 4 +- .../org/ruoyi/service/IChatModelService.java | 4 +- .../service/IChatPackagePlanService.java | 4 +- .../ruoyi/service/IChatPayOrderService.java | 4 +- .../org/ruoyi/service/IChatPluginService.java | 4 +- .../ruoyi/service/IChatUsageTokenService.java | 4 +- .../service/IChatVisitorUsageService.java | 4 +- .../ruoyi/service/IChatVoucherService.java | 4 +- .../impl/ChatAgentManageServiceImpl.java | 4 +- .../service/impl/ChatAppStoreServiceImpl.java | 4 +- .../service/impl/ChatGptsServiceImpl.java | 4 +- .../service/impl/ChatMessageServiceImpl.java | 4 +- .../service/impl/ChatModelServiceImpl.java | 4 +- .../impl/ChatPackagePlanServiceImpl.java | 4 +- .../service/impl/ChatPayOrderServiceImpl.java | 4 +- .../service/impl/ChatPluginServiceImpl.java | 4 +- .../service/impl/ChatTokenServiceImpl.java | 56 + .../impl/ChatUsageTokenServiceImpl.java | 4 +- .../service/impl/ChatVoucherServiceImpl.java | 4 +- .../org/ruoyi/domain/KnowledgeAttach.java | 2 +- .../org/ruoyi/domain/KnowledgeFragment.java | 2 +- .../java/org/ruoyi/domain/KnowledgeInfo.java | 2 +- .../ruoyi/domain/bo/KnowledgeAttachBo.java | 2 +- .../ruoyi/domain/bo/KnowledgeFragmentBo.java | 2 +- .../org/ruoyi/domain/bo/KnowledgeInfoBo.java | 2 +- .../ruoyi/mapper/KnowledgeAttachMapper.java | 2 +- .../ruoyi/mapper/KnowledgeFragmentMapper.java | 2 +- .../org/ruoyi/mapper/KnowledgeInfoMapper.java | 2 +- .../service/IKnowledgeAttachService.java | 4 +- .../service/IKnowledgeFragmentService.java | 4 +- .../ruoyi/service/IKnowledgeInfoService.java | 4 +- .../impl/KnowledgeAttachServiceImpl.java | 4 +- .../impl/KnowledgeFragmentServiceImpl.java | 4 +- .../impl/KnowledgeInfoServiceImpl.java | 4 +- .../service/impl/WeaviateVectorStoreImpl.java | 4 +- .../org/ruoyi/system/domain/ChatConfig.java | 2 +- .../java/org/ruoyi/system/domain/SysDept.java | 2 +- .../java/org/ruoyi/system/domain/SysMenu.java | 2 +- .../ruoyi/system/domain/SysNoticeState.java | 2 +- .../org/ruoyi/system/domain/SysTenant.java | 2 +- .../ruoyi/system/domain/SysTenantPackage.java | 2 +- .../ruoyi/system/domain/bo/ChatConfigBo.java | 3 +- .../ruoyi/system/domain/bo/SysConfigBo.java | 3 +- .../org/ruoyi/system/domain/bo/SysDeptBo.java | 2 +- .../ruoyi/system/domain/bo/SysDictDataBo.java | 2 +- .../ruoyi/system/domain/bo/SysDictTypeBo.java | 2 +- .../org/ruoyi/system/domain/bo/SysMenuBo.java | 2 +- .../ruoyi/system/domain/bo/SysNoticeBo.java | 2 +- .../system/domain/bo/SysNoticeStateBo.java | 2 +- .../org/ruoyi/system/domain/bo/SysOssBo.java | 2 +- .../system/domain/bo/SysOssConfigBo.java | 2 +- .../org/ruoyi/system/domain/bo/SysPostBo.java | 2 +- .../org/ruoyi/system/domain/bo/SysRoleBo.java | 2 +- .../ruoyi/system/domain/bo/SysTenantBo.java | 2 +- .../system/domain/bo/SysTenantPackageBo.java | 2 +- .../org/ruoyi/system/domain/bo/SysUserBo.java | 2 +- .../system/domain/bo/SysUserProfileBo.java | 2 +- .../ruoyi/system/mapper/ChatConfigMapper.java | 2 +- .../ruoyi/system/mapper/SysConfigMapper.java | 2 +- .../ruoyi/system/mapper/SysDeptMapper.java | 6 +- .../system/mapper/SysDictDataMapper.java | 2 +- .../system/mapper/SysDictTypeMapper.java | 2 +- .../system/mapper/SysLogininforMapper.java | 2 +- .../ruoyi/system/mapper/SysMenuMapper.java | 2 +- .../ruoyi/system/mapper/SysNoticeMapper.java | 2 +- .../system/mapper/SysNoticeStateMapper.java | 2 +- .../ruoyi/system/mapper/SysOperLogMapper.java | 2 +- .../system/mapper/SysOssConfigMapper.java | 2 +- .../org/ruoyi/system/mapper/SysOssMapper.java | 2 +- .../ruoyi/system/mapper/SysPostMapper.java | 2 +- .../system/mapper/SysRoleDeptMapper.java | 2 +- .../ruoyi/system/mapper/SysRoleMapper.java | 6 +- .../system/mapper/SysRoleMenuMapper.java | 2 +- .../ruoyi/system/mapper/SysTenantMapper.java | 2 +- .../system/mapper/SysTenantPackageMapper.java | 2 +- .../ruoyi/system/mapper/SysUserMapper.java | 6 +- .../system/mapper/SysUserPostMapper.java | 2 +- .../system/mapper/SysUserRoleMapper.java | 2 +- .../system/service/IChatConfigService.java | 4 +- .../system/service/ISysConfigService.java | 4 +- .../system/service/ISysDictDataService.java | 4 +- .../system/service/ISysDictTypeService.java | 4 +- .../system/service/ISysLogininforService.java | 4 +- .../system/service/ISysNoticeService.java | 4 +- .../service/ISysNoticeStateService.java | 4 +- .../system/service/ISysOperLogService.java | 4 +- .../system/service/ISysOssConfigService.java | 4 +- .../ruoyi/system/service/ISysOssService.java | 4 +- .../ruoyi/system/service/ISysPostService.java | 4 +- .../ruoyi/system/service/ISysRoleService.java | 4 +- .../service/ISysTenantPackageService.java | 4 +- .../system/service/ISysTenantService.java | 13 +- .../ruoyi/system/service/ISysUserService.java | 4 +- .../service/impl/ChatConfigServiceImpl.java | 4 +- .../service/impl/SysConfigServiceImpl.java | 4 +- .../service/impl/SysDataScopeServiceImpl.java | 2 +- .../service/impl/SysDeptServiceImpl.java | 2 +- .../service/impl/SysDictDataServiceImpl.java | 4 +- .../service/impl/SysDictTypeServiceImpl.java | 4 +- .../impl/SysLogininforServiceImpl.java | 4 +- .../service/impl/SysMenuServiceImpl.java | 8 +- .../service/impl/SysNoticeServiceImpl.java | 4 +- .../impl/SysNoticeStateServiceImpl.java | 4 +- .../service/impl/SysOperLogServiceImpl.java | 4 +- .../service/impl/SysOssConfigServiceImpl.java | 4 +- .../service/impl/SysOssServiceImpl.java | 4 +- .../service/impl/SysPostServiceImpl.java | 4 +- .../service/impl/SysRoleServiceImpl.java | 4 +- .../impl/SysTenantPackageServiceImpl.java | 4 +- .../service/impl/SysTenantServiceImpl.java | 170 +- .../service/impl/SysUserServiceImpl.java | 6 +- ruoyi-modules/pom.xml | 2 - ruoyi-modules/ruoyi-chat/pom.xml | 6 + .../chat/ChatAgentManageController.java | 4 +- .../chat/ChatAppStoreController.java | 4 +- .../controller/chat/ChatConfigController.java | 6 +- .../{api => chat}/ChatController.java | 6 +- .../controller/chat/ChatGptsController.java | 4 +- .../chat/ChatMessageController.java | 4 +- .../controller/chat/ChatModelController.java | 4 +- .../chat/ChatPackagePlanController.java | 4 +- .../chat/ChatPayOrderController.java | 4 +- .../controller/chat/ChatPluginController.java | 4 +- .../chat/ChatVoucherController.java | 4 +- .../{api => tripartite}/FaceController.java | 2 +- .../{api => tripartite}/LumaController.java | 2 +- .../{api => tripartite}/SubmitController.java | 2 +- .../{api => tripartite}/SunoController.java | 2 +- .../{api => tripartite}/TaskController.java | 2 +- .../ruoyi/chat/factory/SseServiceFactory.java | 24 - .../chat/factory/VectorStoreFactory.java | 44 - .../chat/factory/VectorizationFactory.java | 10 +- .../service/chat/impl/OllamaServiceImpl.java | 21 +- .../service/chat/impl/OpenAIServiceImpl.java | 114 - .../service/chat/impl/SseServiceImpl.java | 9 +- ...on.java => BgeLargeVectorizationImpl.java} | 6 +- ...tion.java => OpenAiVectorizationImpl.java} | 4 +- .../knowledge/VectorizationWrapper.java | 30 + .../vectorstore/MilvusVectorStore.java | 387 ---- .../demo/controller/TestDemoController.java | 4 +- .../org/ruoyi/demo/domain/bo/TestDemoBo.java | 2 +- .../org/ruoyi/demo/domain/bo/TestTreeBo.java | 2 +- .../demo/mapper/TestDemoEncryptMapper.java | 2 +- .../org/ruoyi/demo/mapper/TestDemoMapper.java | 6 +- .../org/ruoyi/demo/mapper/TestTreeMapper.java | 6 +- .../ruoyi/demo/service/ITestDemoService.java | 4 +- .../service/impl/TestDemoServiceImpl.java | 4 +- .../generator/controller/GenController.java | 6 +- .../org/ruoyi/generator/domain/GenTable.java | 2 +- .../generator/domain/GenTableColumn.java | 2 +- .../mapper/GenTableColumnMapper.java | 2 +- .../generator/mapper/GenTableMapper.java | 2 +- .../service/GenTableServiceImpl.java | 4 +- .../generator/service/IGenTableService.java | 4 +- .../ruoyi/generator/util/VelocityUtils.java | 2 +- .../mapper/generator/GenTableColumnMapper.xml | 8 +- .../mapper/generator/GenTableMapper.xml | 24 +- .../src/main/resources/vm/java/bo.java.vm | 2 +- .../main/resources/vm/java/controller.java.vm | 4 +- .../src/main/resources/vm/java/mapper.java.vm | 2 +- .../main/resources/vm/java/service.java.vm | 4 +- .../resources/vm/java/serviceImpl.java.vm | 4 +- .../ruoyi/mcp/service/McpCustomService.java | 24 - .../monitor/SysLogininforController.java | 4 +- .../monitor/SysOperlogController.java | 4 +- .../monitor/SysUserOnlineController.java | 2 +- .../system/SysConfigController.java | 4 +- .../system/SysDictDataController.java | 4 +- .../system/SysDictTypeController.java | 4 +- .../system/SysNoticeController.java | 4 +- .../system/SysNoticeStateController.java | 4 +- .../system/SysOssConfigController.java | 4 +- .../controller/system/SysOssController.java | 4 +- .../controller/system/SysPostController.java | 4 +- .../controller/system/SysRoleController.java | 4 +- .../system/SysTenantController.java | 38 +- .../system/SysTenantPackageController.java | 4 +- .../controller/system/SysUserController.java | 4 +- 461 files changed, 3110 insertions(+), 13838 deletions(-) delete mode 100644 ruoyi-admin/src/main/resources/static/.gitignore delete mode 100644 ruoyi-admin/src/main/resources/static/.nojekyll delete mode 100644 ruoyi-admin/src/main/resources/static/CNAME delete mode 100644 ruoyi-admin/src/main/resources/static/README.md delete mode 100644 ruoyi-admin/src/main/resources/static/_coverpage.md delete mode 100644 ruoyi-admin/src/main/resources/static/_footer.md delete mode 100644 ruoyi-admin/src/main/resources/static/_navbar.md delete mode 100644 ruoyi-admin/src/main/resources/static/_sidebar.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/add_group.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/blacklist.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/column.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/contribution.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/demo_system.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/pr.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/user_register.md delete mode 100644 ruoyi-admin/src/main/resources/static/common/video.md delete mode 100644 ruoyi-admin/src/main/resources/static/index.html delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md delete mode 100644 ruoyi-admin/src/main/resources/static/plus-ui/home.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/_sidebar.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/api_encrypt.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/bean_null.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/deploy_vue.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/domestic_databases.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/https_config.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/identify_fail.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/import_excel.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/jce_cannot.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/kinfe4j.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/login_step.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/lombok.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/parse_exception.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/permission_denied.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/read_metadata.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/sentinel_404.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/st_not_support.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/swagger.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/synchronous_update.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/use_druid.md delete mode 100644 ruoyi-admin/src/main/resources/static/questions/use_tomcat.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md delete mode 100644 ruoyi-admin/src/main/resources/static/static/css/vue.css delete mode 100644 ruoyi-admin/src/main/resources/static/static/image/favicon.ico delete mode 100644 ruoyi-admin/src/main/resources/static/static/image/logo.png delete mode 100644 ruoyi-admin/src/main/resources/static/static/image/ruoyicloudplus.png delete mode 100644 ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-pagination.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/docsify.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/emoji.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/prism-typescript.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/search.min.js delete mode 100644 ruoyi-admin/src/main/resources/static/static/js/zoom-image.min.js create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/RegexConstants.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/SystemConstants.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/RegexPatternPoolFactory.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/YmlPropertySourceFactory.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/ObjectUtils.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataColumn.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataPermission.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/aspect/DataPermissionAspect.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataColumn.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataPermission.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataScopeType.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/InjectionMetaObjectHandler.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataPermissionHelper.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaHeaderProcessor.java delete mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaSessionProcessor.java rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/config/MybatisPlusConfig.java (66%) rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/core/domain/BaseEntity.java (96%) create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/mapper/BaseMapperPlus.java rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/core/page/PageQuery.java (90%) rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/core/page/TableDataInfo.java (85%) rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/enums/DataBaseType.java (74%) create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataScopeType.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/InjectionMetaObjectHandler.java rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/handler/MybatisExceptionHandler.java (90%) create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusDataPermissionHandler.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusPostInitTableInfoHandler.java rename ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/{common/mybatis => }/helper/DataBaseHelper.java (91%) create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataPermissionHelper.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/interceptor/PlusDataPermissionInterceptor.java create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/resources/common-mybatis.yml create mode 100644 ruoyi-common/ruoyi-common-mybatis/src/main/resources/spy.properties create mode 100644 ruoyi-extend/pom.xml rename {ruoyi-modules => ruoyi-extend}/ruoyi-mcp-server/pom.xml (71%) rename {ruoyi-modules => ruoyi-extend}/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java (100%) rename {ruoyi-modules => ruoyi-extend}/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java (100%) create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-dev.yml rename ruoyi-modules/ruoyi-mcp-server/src/main/resources/application.yaml => ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-mcp.yml (100%) create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml delete mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CacheListInfoVo.java delete mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/domain/vo/CaptchaVo.java create mode 100644 ruoyi-modules-api/ruoyi-chat-api/src/main/java/org/ruoyi/service/impl/ChatTokenServiceImpl.java rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/WeaviateVectorStore.java => ruoyi-modules-api/ruoyi-knowledge-api/src/main/java/org/ruoyi/service/impl/WeaviateVectorStoreImpl.java (99%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => chat}/ChatController.java (95%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => tripartite}/FaceController.java (97%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => tripartite}/LumaController.java (97%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => tripartite}/SubmitController.java (99%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => tripartite}/SunoController.java (98%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/{api => tripartite}/TaskController.java (97%) delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/SseServiceFactory.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/factory/VectorStoreFactory.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/{vectorizer/BgeLargeVectorization.java => BgeLargeVectorizationImpl.java} (94%) rename ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/{vectorizer/OpenAiVectorization.java => OpenAiVectorizationImpl.java} (96%) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/VectorizationWrapper.java delete mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/knowledge/vectorstore/MilvusVectorStore.java delete mode 100644 ruoyi-modules/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java diff --git a/pom.xml b/pom.xml index 6798c157..fde84309 100644 --- a/pom.xml +++ b/pom.xml @@ -14,26 +14,26 @@ 1.0.0 - 3.0.6 + 3.4.4 UTF-8 UTF-8 17 8.0.33 - 3.0.1 + 3.5.16 2.1.0 0.15.0 5.2.3 3.2.1 2.3 1.34.0 - 3.5.3.1 + 3.5.11 3.9.1 - 5.8.18 + 5.8.35 4.10.0 + 4.3.1 3.0.3 3.20.1 2.2.4 - 3.6.1 2.14.2 2.4.0 1.2.1 @@ -42,10 +42,6 @@ 1.72 2.7.0 - - - 1.33 - 1.12.400 @@ -202,22 +198,22 @@ ${satoken.version} - - - com.baomidou - dynamic-datasource-spring-boot-starter - ${dynamic-ds.version} - - org.mybatis.spring.boot - mybatis-spring-boot-starter - ${spring-boot.mybatis} + org.mybatis + mybatis + ${mybatis.version} com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter + ${mybatis-plus.version} + + + + com.baomidou + mybatis-plus-jsqlparser ${mybatis-plus.version} @@ -227,6 +223,13 @@ ${mybatis-plus.version} + + + com.baomidou + dynamic-datasource-spring-boot3-starter + ${dynamic-ds.version} + + p6spy @@ -277,13 +280,6 @@ ${alibaba-ttl.version} - - - org.yaml - snakeyaml - ${snakeyaml.version} - - org.bouncycastle @@ -341,11 +337,11 @@ ${revision} - - org.ruoyi - ruoyi-demo - ${revision} - + + + + + @@ -354,7 +350,8 @@ ruoyi-common ruoyi-modules ruoyi-modules-api - ruoyi-modules/ruoyi-mcp-server + ruoyi-admin + ruoyi-extend pom diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index a8276a4c..89003c2a 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -42,10 +42,11 @@ mssql-jdbc - - org.ruoyi - ruoyi-common-doc - + + + + + org.ruoyi @@ -54,38 +55,7 @@ org.ruoyi - ruoyi-fusion - - - - org.ruoyi - ruoyi-knowledge - - - - - - org.ruoyi - ruoyi-demo - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - net.coobird - thumbnailator - 0.4.11 - - - io.github.ollama4j - ollama4j - 1.0.79 - compile + ruoyi-chat diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java index e78d09c0..5a7a514c 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/AuthController.java @@ -14,18 +14,17 @@ import org.ruoyi.common.core.utils.StreamUtils; import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.satoken.utils.LoginHelper; import org.ruoyi.common.tenant.helper.TenantHelper; -import org.ruoyi.system.domain.bo.SysTenantBo; -import org.ruoyi.system.domain.vo.LoginTenantVo; -import org.ruoyi.system.domain.vo.SysTenantVo; -import org.ruoyi.system.domain.vo.TenantListVo; -import org.ruoyi.system.service.ISysTenantService; - -import org.ruoyi.system.service.SysLoginService; -import org.ruoyi.system.service.SysRegisterService; -import org.ruoyi.system.domain.vo.LoginVo; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; +import org.ruoyi.system.domain.bo.SysTenantBo; +import org.ruoyi.system.domain.vo.LoginTenantVo; +import org.ruoyi.system.domain.vo.LoginVo; +import org.ruoyi.system.domain.vo.SysTenantVo; +import org.ruoyi.system.domain.vo.TenantListVo; +import org.ruoyi.system.service.ISysTenantService; +import org.ruoyi.system.service.SysLoginService; +import org.ruoyi.system.service.SysRegisterService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java index 4da12bc8..2a4ee1f0 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/IndexController.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; /** * 首页 @@ -11,8 +12,7 @@ import org.springframework.web.bind.annotation.GetMapping; * @author Lion Li */ @SaIgnore -@RequiredArgsConstructor -@Controller +@RestController public class IndexController { /** @@ -20,17 +20,9 @@ public class IndexController { */ @GetMapping("/") public String index() { - return "index.html"; + return "RuoYi AI启动成功!"; } - @GetMapping("/success") - public String success(){ - return "paySuccess.html"; - } - @GetMapping("/cancel") - public String cancel(){ - return "cancel"; - } } diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 09c609c3..66a63e71 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -60,9 +60,6 @@ spring.data: # password: 123456 # 连接超时时间 timeout: 10S - # 是否开启ssl - ssl: false - redisson: # redis key前缀 keyPrefix: @@ -97,22 +94,3 @@ sms: # 腾讯专用 sdkAppId: -spring: - ai: - openai: - api-key: sk-xX - base-url: https://api.pandarobot.chat - ollama: - base-url: http://localhost:11434 - init: - pull-model-strategy: always - timeout: 60s - max-retries: 1 - mcp: - client: - enabled: true - name: call-mcp-server - sse: - connections: - server1: - url: http://127.0.0.1:8080 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 26173564..84be163e 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -49,8 +49,10 @@ server: # 日志配置 logging: level: - org.ruoyi: @logging.level@ + org.dromara: @logging.level@ org.springframework: warn + org.mybatis.spring.mapper: error + org.apache.fury: warn config: classpath:logback-plus.xml # 用户配置 @@ -318,5 +320,16 @@ wechat: token: '' aesKey: '' - +spring: + ai: + ollama: + base-url: http://localhost:11434 + mcp: + client: + enabled: true + name: call-mcp-server + sse: + connections: + server1: + url: http://127.0.0.1:6040 diff --git a/ruoyi-admin/src/main/resources/static/.gitignore b/ruoyi-admin/src/main/resources/static/.gitignore deleted file mode 100644 index 9e339689..00000000 --- a/ruoyi-admin/src/main/resources/static/.gitignore +++ /dev/null @@ -1,46 +0,0 @@ -###################################################################### -# Build Tools - -.gradle -/build/ -!gradle/wrapper/gradle-wrapper.jar - -target/ -!.mvn/wrapper/maven-wrapper.jar - -###################################################################### -# IDE - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### JRebel ### -rebel.xml - -### NetBeans ### -nbproject/private/ -build/* -nbbuild/ -nbdist/ -.nb-gradle/ - -###################################################################### -# Others -*.log -*.xml.versionsBackup -*.swp - -!*/build/*.java -!*/build/*.html -!*/build/*.xml diff --git a/ruoyi-admin/src/main/resources/static/.nojekyll b/ruoyi-admin/src/main/resources/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/ruoyi-admin/src/main/resources/static/CNAME b/ruoyi-admin/src/main/resources/static/CNAME deleted file mode 100644 index 3a194c70..00000000 --- a/ruoyi-admin/src/main/resources/static/CNAME +++ /dev/null @@ -1 +0,0 @@ -plus-doc.dromara.org \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/README.md b/ruoyi-admin/src/main/resources/static/README.md deleted file mode 100644 index b50e2523..00000000 --- a/ruoyi-admin/src/main/resources/static/README.md +++ /dev/null @@ -1,74 +0,0 @@ -# 框架介绍 -- - - -- `RuoYi-Vue-Plus` 分布式集群框架 [文档跳转](/ruoyi-vue-plus/home.md) -- `RuoYi-Cloud-Plus` 微服务框架 [文档跳转](/ruoyi-cloud-plus/home.md) -- `plus-ui` 统一 Vue3 前端项目 [文档跳转](/plus-ui/home.md) -- `plus-doc` 统一文档项目 - -## 特别赞助 - - - -
    - - -
    - - -[如何成为赞助商 加群联系作者详谈](/common/add_group.md) - -## 代码地址 - -| 介绍 | 项目名 | 项目地址 | 注意事项 | -|------------|:-----------------|------------------------------------------------------------------------------------------------------------------------|----------------------------| -| 🔥 分布式集群框架 | RuoYi-Vue-Plus | - [Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus)
    - [GitHub](https://github.com/dromara/RuoYi-Vue-Plus) | 重写RuoYi-Vue全方位升级(不兼容原框架) | -| 🔥 微服务框架 | RuoYi-Cloud-Plus | - [Gitee](https://gitee.com/dromara/RuoYi-Cloud-Plus)
    - [GitHub](https://github.com/dromara/RuoYi-Cloud-Plus) | 重写RuoYi-Cloud全方位升级(不兼容原框架) | -| 🔥 统一前端项目 | plus-ui | - [Gitee](https://gitee.com/JavaLionLi/plus-ui)
    - [GitHub](https://github.com/JavaLionLi/plus-ui) | Vue与Cloud项目通用前端 | -| 🔥 统一文档项目 | plus-doc | - [Gitee](https://gitee.com/dromara/plus-doc)
    - [GitHub](https://github.com/dromara/plus-doc) | 通用文档 | - - -## 业务功能 - -| 功能 | 介绍 | -|-------|---------------------------------------| -| 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能。 | -| 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置。 | -| 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 | -| 岗位管理 | 配置系统用户所属担任职务。 | -| 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等。 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分。 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护。 | -| 参数管理 | 对系统动态配置常用参数。 | -| 通知公告 | 系统通知公告信息发布维护。 | -| 操作日志 | 系统正常操作日志记录和查询;系统异常信息日志记录和查询。 | -| 登录日志 | 系统登录日志记录查询包含登录异常。 | -| 文件管理 | 系统文件上传、下载等管理。 | -| 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志。 | -| 代码生成 | 前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 | -| 系统接口 | 根据业务代码自动生成相关的api接口文档。 | -| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等。 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | -| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | -| 使用案例 | 系统的一些功能案例 | - -## 关注作者 - -作者博客: [https://lionli.blog.csdn.net/?type=blog](https://lionli.blog.csdn.net/?type=blog) - -公众号: **<狮子领域 程序圈>** -
    -![输入图片说明](https://foruda.gitee.com/images/1678975769377570440/507062df_1766278.png "屏幕截图") - -## 捐献作者 - -**作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭** -
    - - -## Dromara 全家福 - -社区仓库地址: [dromara开源社区](https://gitee.com/organizations/dromara/projects) - -![输入图片说明](https://foruda.gitee.com/images/1706071866226295002/68cffcf6_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/_coverpage.md b/ruoyi-admin/src/main/resources/static/_coverpage.md deleted file mode 100644 index d84bf0dc..00000000 --- a/ruoyi-admin/src/main/resources/static/_coverpage.md +++ /dev/null @@ -1,32 +0,0 @@ - - - -
    -
    -
    百搭AI
    - - -[![码云Gitee](https://gitee.com/ageerle/ruoyi-ai/badge/star.svg?theme=blue)](https://gitee.com/ageerle/ruoyi-ai) -[![GitHub](https://img.shields.io/github/stars/ageerle/ruoyi-ai.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) -[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/ageerle/ruoyi-ai/blob/master/LICENSE) -
    -[![ruoyi-ai](https://img.shields.io/badge/ruoyi-ai-5.2.2-success.svg)](https://gitee.com/ageerle/ruoyi-ai) -[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() - -
    -
    - -
    - -
    - - -> 百搭AI是一个整合了多种大语言模型API的开源平台,实现了AI对话、绘图、声音克隆和私有知识库等功能。 -> -> 平台配备管理后台,支持微信支付、微信公众号、微信多开、Stripe国际支付和百度文本审核等运营功能。 -> -> 项目采用Java+Vue+Vben5技术栈构建,遵循MIT License,允许二次开发并用于商业销售。 - -Copyright © 2023-2024 版权所有:ageerle@163.com 备案号:鄂ICP备2023007672号 - -[开始使用 Let's Go](/README.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/_footer.md b/ruoyi-admin/src/main/resources/static/_footer.md deleted file mode 100644 index 7f5f9a3f..00000000 --- a/ruoyi-admin/src/main/resources/static/_footer.md +++ /dev/null @@ -1,2 +0,0 @@ - -对文档有疑问?欢迎您帮助我们 [完善此文档](https://gitee.com/JavaLionLi/plus-doc) ! \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/_navbar.md b/ruoyi-admin/src/main/resources/static/_navbar.md deleted file mode 100644 index e893825f..00000000 --- a/ruoyi-admin/src/main/resources/static/_navbar.md +++ /dev/null @@ -1,9 +0,0 @@ - - -* [文档导航](/README.md) -* [Vue版本](/ruoyi-vue-plus/home.md) -* [Cloud版本](/ruoyi-cloud-plus/home.md) -* [前端文档](/plus-ui/home.md) -* [常见问题](/questions/lombok.md) -* [视频教程](/common/video.md) -* [演示系统](/common/demo_system.md) diff --git a/ruoyi-admin/src/main/resources/static/_sidebar.md b/ruoyi-admin/src/main/resources/static/_sidebar.md deleted file mode 100644 index 0446edc6..00000000 --- a/ruoyi-admin/src/main/resources/static/_sidebar.md +++ /dev/null @@ -1,16 +0,0 @@ - -- **特别赞助** -- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) -- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) -- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) - -- **开始** - - [框架介绍](/README.md) - - [演示系统](/common/demo_system.md) - - [官方视频教程](/common/video.md) - - [粉丝专栏](/common/column.md) - - [参与贡献项目](/common/contribution.md) - - [如何提交PR](/common/pr.md) - - [如何加群](/common/add_group.md) - - [使用者登记](/common/user_register.md) - - [黑名单](/common/blacklist.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/common/add_group.md b/ruoyi-admin/src/main/resources/static/common/add_group.md deleted file mode 100644 index f6957bc4..00000000 --- a/ruoyi-admin/src/main/resources/static/common/add_group.md +++ /dev/null @@ -1,27 +0,0 @@ -# 加群方式 -- - - -### 交流群(不提供任何问题解答 纯交流) - -**加 <小助手> 微信备注 <加群>**
    -**视频课程咨询或其他问题咨询请查看下方信息(小助手是机器人)** - - - -### VIP群(付费加群 提供问题解答、技术支持、技术分享) - -首先感谢 `RuoYi` 提供分享开源 框架基于 `RuoYi` 重写大部分功能实现
    -项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
    -VIP群是作者提供的私人服务 不代表着项目收费 - -> 问问题等于做习题 听作者解答问题等于习题讲解
    -> 一个人接触的问题有限 一群人接触的问题无限 早进群早接触更多的问题(每天99+)
    -> 承诺: 看见必回复 让你感受作者有多话痨
    - -两种途径: -1. 购买官方视频进群 [官方视频](/common/video.md) -2. 扫描下方二维码付款进群(无视频) - -支付后申请加群即可 QQ群号 : **<637757165>**
    - -**加群扫码**
    - diff --git a/ruoyi-admin/src/main/resources/static/common/blacklist.md b/ruoyi-admin/src/main/resources/static/common/blacklist.md deleted file mode 100644 index 67594bd3..00000000 --- a/ruoyi-admin/src/main/resources/static/common/blacklist.md +++ /dev/null @@ -1,7 +0,0 @@ -# 黑名单 -- - - - -地址: https://github.com/QNAV/RuoYi-X-Plus -
    -上榜缘由 使用本框架二次开源并未有任何声明与标注 将所有代码的作者名全都改成了自己 剽窃本框架代码 - diff --git a/ruoyi-admin/src/main/resources/static/common/column.md b/ruoyi-admin/src/main/resources/static/common/column.md deleted file mode 100644 index b2155a3c..00000000 --- a/ruoyi-admin/src/main/resources/static/common/column.md +++ /dev/null @@ -1,18 +0,0 @@ -# 粉丝专栏 -- - - -**由上到下 从易到难** - -> 粉丝整理 欢迎投稿 - -| 作者 | 文档地址 | 说明 | -|---------------|---------------------------------------------------------------|--------------------| -| 抓蛙师 | https://www.bilibili.com/video/BV1TG41157Ef/ | 学会问问题(小白必看) | -| 抓蛙师 | https://www.bilibili.com/video/BV1mr4y1j75M | Vue框架基础视频专栏(新人必看) | -| 抓蛙师 | https://www.bilibili.com/video/BV1Na411u7eC | Vue框架改造视频专栏(新人必看) | -| 抓蛙师 | https://www.bilibili.com/video/BV1te4y1D7hi | 小程序鉴权与uniapp联动 | -| 抓蛙师 | https://www.bilibili.com/video/BV1zt4y137UP | 公众号集成 | -| mayuanfei | https://note.youdao.com/s/XpvKnxAb | 入门专栏(新人必看) | -| 程序猿一枚_ | https://blog.csdn.net/zhaozhiqiang1981/category_12221291.html | 玩转RuoYi-Cloud-Plus | -| 程序猿一枚_ | https://www.bilibili.com/video/BV1yA411r7ji/ | Cloud环境搭建以及进阶开发 | -| MichelleChung | https://blog.csdn.net/michelle_zhong/category_11109741.html | 源码解析专栏(进阶必看) | -| MichelleChung | https://blog.csdn.net/michelle_zhong/category_12058476.html | Cloud源码解析专栏 | diff --git a/ruoyi-admin/src/main/resources/static/common/contribution.md b/ruoyi-admin/src/main/resources/static/common/contribution.md deleted file mode 100644 index 6b5909e6..00000000 --- a/ruoyi-admin/src/main/resources/static/common/contribution.md +++ /dev/null @@ -1,69 +0,0 @@ -# 参与贡献的方式 -- - - -参与贡献开源的方式有很多种 听作者来介绍 - -## 为开源项目点一个Star - -> Star的多少关系到项目能否被更多人看到 -
    -同时Star也是作者前进的动力(作者每天都在盯着Star 涨了会开心 跌了会失落) -
    -
    -> 大家在寻找开源项目的时候, 大多数情况也是会先看Star比较多的项目 -
    -所以请给您觉得好的开源项目点一个小小的Star, 让好的项目能够被更多人看到 -
    - -![输入图片说明](https://foruda.gitee.com/images/1678934493115487351/0c45121e_1766278.png "屏幕截图") -
    -Vue版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Vue-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Vue-Plus) -
    -Cloud版本: [Gitee我要点Star](https://gitee.com/dromara/RuoYi-Cloud-Plus/stargazers) [Github我要点Star](https://github.com/dromara/RuoYi-Cloud-Plus) - -## 为社区处理问题 - -> Issue是社区的交流地 大家会在这里提出自己的问题 或者是项目的功能异常 - -> 提问的规范在Issue的模板里已经写好了 按照模板填写有助于作者或者其他社区人员快速有效的回答问题 -![输入图片说明](https://foruda.gitee.com/images/1678935068341532603/4b9d7af9_1766278.png "屏幕截图") - -> 为提出问题的小伙伴答疑 可以有效降的帮助别人
    -> 而且可以降低社区人员的精力分散 使精力全部投入到项目设计研发中 -![输入图片说明](https://foruda.gitee.com/images/1678935380481365514/dddc9ce9_1766278.png "屏幕截图") - -## 改进社区文档 - -> 大家都知道 我们程序员都不擅长写作
    -> 有时候作者把文档写完了也不知道用户是什么感觉 是否能看懂
    - -> 所以参与社区文档建设绝对是一件意义重大的事情
    -> 大家可以在Issue提出观后感 觉得哪看不懂 觉得哪应该详细说明
    -> 当然了 大家也可以对文档进行改进后提交PR修改申请 - -文档仓库: [plus-doc](https://gitee.com/JavaLionLi/plus-doc) 👈点他点他 -![输入图片说明](https://foruda.gitee.com/images/1678935992827063291/d7c4dc5b_1766278.png "屏幕截图") - -## 贡献代码 - -> 想参与贡献代码的小伙伴 重点来了: 作者会经常在Issue里发布需求认领
    -> 觉得自己能做的可以在Issue里跟作者讨论 如需求还不够清晰 或者做的过程中遇到了什么问题 - - - -> 需求确定了以后就可以开始专注的写代码了
    -> 但在开始写代码之前 一定要先看一下如何正确的提交PR - -一点要仔细看: [如何提交PR](/common/pr.md) 👈点他点他 - -## 如何成为项目成员 - -> 1.对框架有重大贡献者(由作者与团队成员判定)
    -> 2.完成社区发布的两项复杂任务
    -> 3.持续完成社区发布的简单任务若干(作者会关注到)
    -> 4.持续为社区优化文档或处理issue若干(作者会关注到)
    - -## 项目成员待遇 - -> 1.可免费进入vip收费群
    -> 2.每年还会发放IDEA正版授权
    - diff --git a/ruoyi-admin/src/main/resources/static/common/demo_system.md b/ruoyi-admin/src/main/resources/static/common/demo_system.md deleted file mode 100644 index 18424e90..00000000 --- a/ruoyi-admin/src/main/resources/static/common/demo_system.md +++ /dev/null @@ -1,13 +0,0 @@ -# 系统演示(请大家不要乱改数据 影响他人体验 谢谢配合) -- - - -**感谢 `孤舟烟雨` 贡献的演示服务器** - -**1核2G 小服务器 经不起压测 请理性操作 违者直接封IP** - -> 访问地址: [http://43.138.9.96/](http://43.138.9.96/) - -> 登录账户 admin/admin123 - -> Admin监控中心 ruoyi/123456 - -> 任务调度中心 admin/123456 diff --git a/ruoyi-admin/src/main/resources/static/common/pr.md b/ruoyi-admin/src/main/resources/static/common/pr.md deleted file mode 100644 index e9684dd4..00000000 --- a/ruoyi-admin/src/main/resources/static/common/pr.md +++ /dev/null @@ -1,37 +0,0 @@ -# 如何提交PR贡献代码 -- - - -### 步骤一 Fork项目到自己仓库 - -![输入图片说明](https://foruda.gitee.com/images/1673427084798343408/142a55d0_1766278.png "屏幕截图") - -### 步骤二 基于dev分支 新建一个此PR功能点的专属分支 - -![输入图片说明](https://foruda.gitee.com/images/1673427220695789412/14c4f4ff_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1673427193964585607/16ea99d9_1766278.png "屏幕截图") - -### 步骤三 使用Git工具 将自己仓库的项目拉去到本地做代码编写 - -![输入图片说明](https://foruda.gitee.com/images/1673427313201488937/f2df59bf_1766278.png "屏幕截图") - -### 步骤四 使用Idea打开项目 切换到新建的功能分支 - -![输入图片说明](https://foruda.gitee.com/images/1673427394686229310/c479a5a5_1766278.png "屏幕截图") - -### 步骤五 将编写好的代码 提交到自己的远程仓库 - -![输入图片说明](https://foruda.gitee.com/images/1673427519150795591/d88c2bc9_1766278.png "屏幕截图") - -### 步骤六 创建PR申请(此操作在自己仓库或者要PR的仓库都可以) - -![输入图片说明](https://foruda.gitee.com/images/1673427616155043776/fe2ce097_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1673427865031025513/0f58a137_1766278.png "屏幕截图") - -### 步骤七 等待作者评审 按要求更改 直到没有问题后被作者合并 - -![输入图片说明](https://foruda.gitee.com/images/1673428029932524584/93234628_1766278.png "屏幕截图") - -### 评审期间 如需对PR内容做更改 直接在新功能分支提交代码即可 -### 无需重复提交PR申请 这边会自动比对两个分支的差异 - -![输入图片说明](https://foruda.gitee.com/images/1673428054139366497/4ecb6e98_1766278.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/common/user_register.md b/ruoyi-admin/src/main/resources/static/common/user_register.md deleted file mode 100644 index 9c221cd1..00000000 --- a/ruoyi-admin/src/main/resources/static/common/user_register.md +++ /dev/null @@ -1,80 +0,0 @@ -# 使用者登记 -- - - -**使用此开源项目的公司或者组织** -> Vue版本登记地址: https://gitee.com/dromara/RuoYi-Vue-Plus/issues/I4QP39 - -> Cloud版本登记地址: https://gitee.com/dromara/RuoYi-Cloud-Plus/issues/I4VJ7G - -| 公司名 | 官网 | LOGO | -|-------------------|:-------------------------------|----------------------------------------------------------------------------------------------------------------| -| 中国联通(长春分公司) | http://www.10010.com | | -| 中国电信(湖南分公司) | http://www.189.cn/hn/ | | -| 南京感知信息技术有限公司 | https://njgzxx.cn/ | | -| 陕西骏景索道运营管理有限公司 | https://www.junjingsuodao.com/ | | -| 悠码科技有限公司 | https://orise.trytowish.cn/ | | -| 苏州龙的信息系统股份有限公司 | http://www.longdayinfo.com/ | | -| 北京数通智达科技有限公司 | http://www.bzdtech.com/ | | -| 广州六六七七科技有限公司 | https://artiversehub.ai/ | | -| 宁波三品软件科技有限公司 | http://nbsanpin.com/ | | -| 北京御一科技信息技术有限公司 | https://www.yudoctor.com | | -| 成都卡恩特医疗科技有限公司 | http://www.scknot.com | | -| 无锡科艾思科技有限公司 | https://www.kyoeis.com | | -| 深圳市海联天下科技有限公司 | www.sealinkin.com | | -| 上海非定义旅游服务有限公司 | http://www.anonymity.love/ | | -| 重庆威爱云科技有限公司 | https://www.51vive.com | | -| 中城智联(成都)创新科技有限公司 | http://www.zc-zl.com/ | | -| 浙江海亮股份有限公司 | https://www.hailiangstock.com | | -| 河北雄安山禾咨询工程有限公司 | https://shanheqei.club/ | | -| 数舵(河北雄安)信息科技有限公司 | http://www.shuduokeji.com | | -| 南昌鼎欣科技股份有限公司 | https://www.openzt.com | | -| 东莞市码载网络科技有限公司 | https://www.codeload.top | | -| 北京农信通科技有限责任公司 | http://www.nxt.com.cn | | -| 中康腾华网络科技(重庆)有限公司 | https://www.zkthwlkj.com/ | | -| 杭州码恒信息科技有限公司 | http://www.mh-barcode.com/ | | -| 南京晶益科技有限公司 | https://www.nanjingjingyi.com/ | | -| 合肥智享亿云科技有限公司 | http://www.izxyy.com | | -| 锡简科技 | https://www.xj-fast.com | | -| 福建亘前科技有限公司 | https://genqian.top | | -| 北京联宇信通科技有限公司 | http://www.lyxtkj.com/ | | -| 厦门市熵时光科技有限公司 | https://www.xetsoft.com | | -| 广州润沁教育科技有限公司 | https://www.ca163.net | | -| 广东乐善智能装备股份有限公司 | https://www.china-leshan.com/ | | -| 数字江西科技有限公司 | https://www.digitaljx.com/ | | -| 上海极锐星瀚传感技术有限公司 | http://www.jrsensing.com/ | | -| 北京数影互联科技有限公司 | http://www.dataflying.top/ | | -| 广州创服信息科技有限公司 | https://www.cfkjcloud.com | | -| 茂名云智科技有限公司 | http://www.winzkj.com | | -| 成都时光旅迹科技有限公司 | https://www.ttmup.com/ | | -| 成都炫影全息科技有限公司 | http://xyqxgs.com | | -| 中山厚德快速模具有限公司 | http://hordrt.com | | -| 深圳市深南夙星科技有限公司 | http://www.szsnsx.com/ | | -| 陕西华恒军创信息科技有限公司 | http://hhjc.cc | | -| 河南小牛信息科技有限公司 | http://www.hnxn888.com/ | | -| 武汉华智讯网络信息技术有限公司 | http://www.xun188.com | | -| 易税信息技术有限公司 | https://www.etax.top | | -| 广西华景城建筑设计有限公司 | http://www.hjcadc.com | | -| 铭创科技有限公司 | https://www.mcck.cn/ | | -| 西安鼎慧网络科技有限公司 | | | -| 营口鼎瑞网络科技有限公司 | | | -| 南昌漫库书店有限公司 | | | -| 广西文韬智能科技有限公司 | | | -| 贵州亿瑞祺科技有限公司 | | -| 贵州新绿视界环保科技有限公司 | | -| 湖南智才伯乐数据科技有限公司 | | -| 德州商储超市有限公司 | | -| 曲沃亿分科技中心 | | -| 南京杰度信息技术有限公司 | | -| 武汉忆秋科技有限公司 | | -| 济南千惠网络科技有限公司 | | -| 江苏泛联科技有限公司 | | -| 沈阳市果冻网络信息科技有限责任公司 | | -| 灵劲科技有限公司 | | -| 亿世达餐饮管理(北京)有限公司 | | -| 深圳市凯帝电子商务有限公司 | | -| 成都数智源蓉卡科技有限公司 | | -| 上海振福信息科技有限公司 | | -| 重庆六客会科技有限公司 | | -| 无限创优(西安)科技有限公司 | | -| 惠族网络科技发展有限公司 | | -| 纳森科技有限公司 | | - diff --git a/ruoyi-admin/src/main/resources/static/common/video.md b/ruoyi-admin/src/main/resources/static/common/video.md deleted file mode 100644 index 14fc2752..00000000 --- a/ruoyi-admin/src/main/resources/static/common/video.md +++ /dev/null @@ -1,85 +0,0 @@ -# 视频教程(联合出品) - -### 主讲与后期剪辑: `抓蛙师` - -抓蛙师简介: B站知名UP主 B站首页: https://space.bilibili.com/520725002 - -### 知识点统筹与内容审核: `疯狂的狮子Li` - -疯狂的狮子Li简介: RuoYi-Vue-Plus 与 RuoYi-Cloud-Plus 作者 - -## 已完结🎉🎉🎉 优惠价: 598(仅限前500名) ~~原价: 698~~ - -**注意: 视频采用 RuoYi-Vue-Plus 版本 4.X 分支讲解!!! (内容为通用技术与版本关联性不大)**
    -**内容为框架内所用到的技术与设计原理(打破不知道、不会用、不知应用场景等问题)** - -课程简介: https://www.bilibili.com/video/BV16j411D7BX/ -
    -试看课程: https://www.bilibili.com/video/BV1uS411P7JD/ -
    -试看课程: https://www.bilibili.com/video/BV1vLbNeuESn/ -
    -试看课程: https://www.bilibili.com/video/BV1xV4y127KM/ -
    -试看课程: https://www.bilibili.com/video/BV1W5v8eBEgs/ -
    -课程总结: https://www.bilibili.com/video/BV1734y1g7fk/ -
    - -## 购买方式 - -**小本生意 用心录制 拒绝砍价 已更新到 236 集 课程完结**
    -> 课程咨询或购买请联系 价格598
    -> QQ: 906670865 (疯狂的狮子Li)
    -> QQ: 770492966 (抓蛙师) - -## 购买前常见问题答疑 -> 问题1: 购买后是否有群可以解答问题
    -> 答: 购买后有专属课程付费群(千人大群)讲师在线答疑 -> -> 问题2: 是否持续更新 如新版本功能
    -> 答: 课程目录即为全部课程内容 以课程目录为准 明年大概会出二期来讲新版本内容
    -> 因为持续更新会导致前面的技术老旧 新购买的人无法及时学习新技术
    -> 故而采用分期出课程制度 已经购买过的老客户 再次购买下一次会给力度非常大的折扣 -> -> 问题3: 目前视频未全部录制完成 后续更新是否二次收费
    -> 答: 视频目录即为全部视频内容 一次收费后续更新仍然可看直到视频全部更新完成(明年出二期课程不算在内) -> -> 问题4: 视频如何下载如何观看
    -> 答: 视频文件已加密 采用专门的播放器(播放器只限制截图录屏等不限制其他软件使用) 由管理员发放授权码观看
    -> 支持通过 百度云 或者 阿里云 网盘下载视频资源 -> -> 问题5: 视频平均时长和总时长大概多久
    -> 答: 视频每集短的大概10分钟以上 长的大概40个分钟左右 平均时长20多分钟每集
    -> 目前已经录制了236集总时长为80多个小时 -> -> 问题6: 是否有讲解 Cloud 版本相关内容
    -> 答: 视频主要讲解内容为框架内所用到的技术与设计原理 无论什么版本 功能和设计都是一样的
    -> Cloud 版本只是多了 alibaba 的几个组件完全可以B站自学 - -## 课程目录 - -![输入图片说明](https://foruda.gitee.com/images/1695105467795304336/58fcd6db_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105494170842444/10f98fed_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105523526589287/f131c614_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105547992880680/9f4137f3_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105560849590514/d19fad6a_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105586641712428/349a971b_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105595501187093/fb819d35_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105609163585390/833dd89c_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105630469565265/8dbba1d2_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695105659037093525/09a4f6e1_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1695714493079698007/311980ee_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1697446957351573520/cab3617d_1766278.png "屏幕截图") - -## 学员观后感 - -| | | -|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| -| ![输入图片说明](https://foruda.gitee.com/images/1691386100129796781/44b69dae_1766278.jpeg "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1691386076834242484/a6073f7d_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1691386089186649583/98ac8b7c_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1691386108722171132/b937b23a_1766278.jpeg "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1695714607596127461/513b6893_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1692804549604261480/09ef12f6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1692804541482477905/578e5448_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1695714614517941469/cac681fb_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1698225407961714462/4d271901_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698225416488201339/30572e7f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1698807198508085566/16c37a1b_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698807208125772586/ceed632e_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1698807214013013096/ad3bc016_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1698807221010472627/72b10901_1766278.png "屏幕截图") | diff --git a/ruoyi-admin/src/main/resources/static/index.html b/ruoyi-admin/src/main/resources/static/index.html deleted file mode 100644 index 76e44328..00000000 --- a/ruoyi-admin/src/main/resources/static/index.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - plus-doc - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md b/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md deleted file mode 100644 index 00197250..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/_sidebar.md +++ /dev/null @@ -1,22 +0,0 @@ - -- **特别赞助** -- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) -- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) -- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) - - -* **简介** - * [项目简介](/plus-ui/home.md) -* **开发文档** - * [通用方法](/plus-ui/devdoc/common_func.md) - * [开发规范](/plus-ui/devdoc/dev_norm.md) - * [请求流程](/plus-ui/devdoc/request_process.md) - * [路由使用](/plus-ui/devdoc/router_use.md) - * [组件使用](/plus-ui/devdoc/component_use.md) - * [权限使用](/plus-ui/devdoc/permissions_use.md) - * [页签缓存](/plus-ui/devdoc/page_cache.md) - * [使用图标](/plus-ui/devdoc/icon_use.md) - * [使用字典](/plus-ui/devdoc/dict_use.md) - * [使用参数](/plus-ui/devdoc/param_use.md) - * [异常处理](/plus-ui/devdoc/exception_handling.md) - * [内容复制](/plus-ui/devdoc/content_copy.md) diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md deleted file mode 100644 index e359c03c..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/common_func.md +++ /dev/null @@ -1,234 +0,0 @@ -# 通用方法 -- - - - -### $tab对象 -> `$tab`对象用于做页签操作、刷新页签、关闭页签、打开页签、修改页签等,它定义在`plugins/tab.ts`文件中,它有如下方法 -* 打开页签 - -```typescript -// 打开页签 -proxy?.$tab.openPage('/system/user'); -// 打开页签并指定页签标题 -proxy?.$tab.openPage('/system/user', '用户管理'); -proxy?.$tab.openPage('/system/user', '用户管理').then(() => { - // 执行结束的逻辑 -}) -``` - -* 修改页签 - -```typescript -// 修改当前页签 -const obj = Object.assign({}, route, { title: '自定义标题' }); -proxy?.$tab.updatePage(obj); -``` -* 关闭页签 - -```typescript -// 关闭当前 -proxy?.$tab.closePage(); -// 关闭指定页签 -const obj = { path: "/system/user", name: "User" }; -proxy?.$tab.closePage(obj); - -proxy?.$tab.closePage(obj).then(() => { - // 执行结束的逻辑 -}) -``` - -* 刷新页签 - -```typescript -// 刷新当前页签 -proxy?.$tab.refreshPage(); - -// 刷新指定页签 -const obj = { path: "/system/user", name: "User" }; -proxy?.$tab.refreshPage(obj); - -proxy?.$tab.refreshPage(obj).then(() => { - // 执行结束的逻辑 -}) -``` - -* 关闭所有页签 - -```typescript -proxy?.$tab.closeAllPage(); - -proxy?.$tab.closeAllPage().then(() => { - // 执行结束的逻辑 -}) -``` - -* 关闭左侧页签 - -```typescript -// 关闭当前页签的左侧页签 -proxy?.$tab.closeLeftPage(); - -// 关闭指定页签的左侧页签 -const obj = { path: "/system/user", name: "User" }; -proxy?.$tab.closeLeftPage(obj); - -proxy?.$tab.closeLeftPage(obj).then(() => { - // 执行结束的逻辑 -}) -``` - -* 关闭右侧页签 - -```typescript -// 关闭当前页签的右侧页签 -proxy?.$tab.closeRightPage(); - -// 关闭指定页签的右侧页签 -const obj = { path: "/system/user", name: "User" }; -proxy?.$tab.closeRightPage(obj); - -proxy?.$tab.closeRightPage(obj).then(() => { - // 执行结束的逻辑 -}) -``` - -* 关闭其他页签 - -```typescript -proxy?.$tab.closeOtherPage(); - -const obj = { path: "/system/user", name: "User" }; -proxy?.$tab.closeOtherPage(obj); - -proxy?.$tab.closeOtherPage(obj).then(() => { - // 执行结束的逻辑 -}) -``` - -### $modal对象 -> `$modal`对象用于做消息提示、通知提示、对话框提醒、二次确认、遮罩等,它定义在`plugins/modal.ts`文件中,它有如下方法 - -* 提供成功、警告和错误等反馈信息 - -```typescript -proxy?.$modal.msg("默认反馈"); -proxy?.$modal.msgError("错误反馈"); -proxy?.$modal.msgSuccess("成功反馈"); -proxy?.$modal.msgWarning("警告反馈"); -``` - -* 提供成功、警告和错误等提示信息 - -```typescript -proxy?.$modal.alert("默认提示"); -proxy?.$modal.alertError("错误提示"); -proxy?.$modal.alertSuccess("成功提示"); -proxy?.$modal.alertWarning("警告提示"); -``` - -* 提供成功、警告和错误等通知信息 - -```typescript -proxy?.$modal.notify("默认通知"); -proxy?.$modal.notifyError("错误通知"); -proxy?.$modal.notifySuccess("成功通知"); -proxy?.$modal.notifyWarning("警告通知"); -``` - -* 提供确认窗体信息 - -```typescript -proxy?.$modal.confirm('确认信息').then(function() { - ... -}).then(() => { - ... -}).catch(() => {}); -``` - -* 提供遮罩层信息 - -```typescript -// 打开遮罩层 -proxy?.$modal.loading("正在导出数据,请稍后..."); - -// 关闭遮罩层 -proxy?.$modal.closeLoading(); -``` - -### $auth对象 -> `$auth`对象用于验证用户是否拥有某(些)权限或角色,它定义在`plugins/auth.ts`文件中,它有如下方法 - -* 验证用户权限 - -```typescript -// 验证用户是否具备某权限 -proxy?.$auth.hasPermi("system:user:add"); -// 验证用户是否含有指定权限,只需包含其中一个 -proxy?.$auth.hasPermiOr(["system:user:add", "system:user:update"]); -// 验证用户是否含有指定权限,必须全部拥有 -proxy?.$auth.hasPermiAnd(["system:user:add", "system:user:update"]); -``` - -* 验证用户角色 - -```typescript -// 验证用户是否具备某角色 -proxy?.$auth.hasRole("admin"); -// 验证用户是否含有指定角色,只需包含其中一个 -proxy?.$auth.hasRoleOr(["admin", "common"]); -// 验证用户是否含有指定角色,必须全部拥有 -proxy?.$auth.hasRoleAnd(["admin", "common"]); -``` - -### $cache对象 -> `$cache`对象用于处理缓存。我们并不建议您直接使用`sessionStorage`或`localStorage`(vue3版本推荐使用useStorage),因为项目的缓存策略可能发生变化,通过`$cache`对象做一层调用代理则是一个不错的选择。`$cache`提供`session`和`local`两种级别的缓存,如下: - -| 对象名称 | 缓存类型 | -| -------- | ---------------------------------- | -| session | 会话级缓存,通过sessionStorage实现 | -| local | 本地级缓存,通过localStorage实现 | - - -**示例** - -```typescript -// local 普通值 -proxy?.$cache.local.set('key', 'local value') -console.log(proxy?.$cache.local.get('key')) // 输出'local value' - -// session 普通值 -proxy?.$cache.session.set('key', 'session value') -console.log(proxy?.$cache.session.get('key')) // 输出'session value' - -// local JSON值 -proxy?.$cache.local.setJSON('jsonKey', { localProp: 1 }) -console.log(proxy?.$cache.local.getJSON('jsonKey')) // 输出'{localProp: 1}' - -// session JSON值 -proxy?.$cache.session.setJSON('jsonKey', { sessionProp: 1 }) -console.log(proxy?.$cache.session.getJSON('jsonKey')) // 输出'{sessionProp: 1}' - -// 删除值 -proxy?.$cache.local.remove('key') -proxy?.$cache.session.remove('key') -``` - -### $download对象 - -> `$download`对象用于文件下载,它定义在`plugins/download.ts`文件中,它有如下方法 - -* 通过ossId从存储中下载文件 - -``` typescript -// 默认下载方法 -proxy?.$download.oss(ossId); -``` - -* 根据请求地址下载zip包 - -```typescript -const url = '/tool/gen/batchGenCode?tables=' + tableNames; -const name = 'ruoyi'; - -// 默认方法 -proxy?.$download.zip(url, name); -``` diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md deleted file mode 100644 index 18886db5..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/component_use.md +++ /dev/null @@ -1,55 +0,0 @@ -# 组件使用 -- - - - -vue 注册组件的两种方式 -在 `@/components` 下创建的.vue文件自动为全局组件,可直接在任意位置使用。 - -### 局部注册 -在对应页使用`components`注册组件。 -```typescript - - - -``` - -### 全局注册 -我们可以使用[ Vue 应用实例](https://cn.vuejs.org/guide/essentials/application.html)的 `.component()` 方法,让组件在当前 Vue 应用中全局可用。 -```typescript -import { createApp } from 'vue' - -const app = createApp({}) - -app.component( - // 注册的名字 - 'MyComponent', - // 组件的实现 - { - /* ... */ - } -) -``` -如果使用单文件组件,你可以注册被导入的 `.vue` 文件: -```typescript -import MyComponent from './App.vue' - -app.component('MyComponent', MyComponent) -``` -`.component()` 方法可以被链式调用: -```typescript -app - .component('ComponentA', ComponentA) - .component('ComponentB', ComponentB) - .component('ComponentC', ComponentC) -``` -全局注册的组件可以在此应用的任意组件的模板中使用: -```Typescript -// 这在当前应用的任意组件中都可用 - - - -``` -所有的子组件也可以使用全局注册的组件,这意味着这三个组件也都可以在彼此内部使用。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md deleted file mode 100644 index a4150d72..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/content_copy.md +++ /dev/null @@ -1,4 +0,0 @@ -# 内容复制 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md deleted file mode 100644 index de714a13..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dev_norm.md +++ /dev/null @@ -1,16 +0,0 @@ -# 开发规范 -- - - - -### 新增view -> 在`@/views`文件下创建对应的文件夹,一般性一个路由对应一个文件, 该模块下的功能就建议在本文件夹下创建一个新文件夹,各个功能模块维护自己的`utils`或`components`组件。 - -### 新增api -> 在`@/api`文件夹下创建本模块对应的api服务。 -> 在api服务同级创建`types.ts`类型声明文件。 - -### 新增组件 -> 在全局的`@/components`写一些全局的组件,如富文本,各种搜索组件,封装的分页组件等等能被公用的组件。 每个页面或者模块特定的业务组件则会写在当前`@/views`下面。 -如:`@/views/system/user/components/xxx.vue`。这样拆分大大减轻了维护成本。 - -### 新增样式 -> 页面的样式和组件是一个道理,全局的`@/style`放置一下全局公用的样式,每一个页面的样式就写在当前 views下面,请记住加上scoped 就只会作用在当前组件内了,避免造成全局的样式污染。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md deleted file mode 100644 index 7c6f9ba5..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/dict_use.md +++ /dev/null @@ -1,4 +0,0 @@ -# 使用字典 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md deleted file mode 100644 index 8de87fa2..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/exception_handling.md +++ /dev/null @@ -1,4 +0,0 @@ -# 异常处理 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md deleted file mode 100644 index 923e66ae..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/icon_use.md +++ /dev/null @@ -1,4 +0,0 @@ -# 使用图标 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md deleted file mode 100644 index 0531b465..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/page_cache.md +++ /dev/null @@ -1,4 +0,0 @@ -# 页签缓存 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md deleted file mode 100644 index 0cd93759..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/param_use.md +++ /dev/null @@ -1,4 +0,0 @@ -# 使用参数 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md deleted file mode 100644 index e18642f4..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/permissions_use.md +++ /dev/null @@ -1,4 +0,0 @@ -# 权限使用 -- - - - -文档建设中 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md deleted file mode 100644 index 146f7a8c..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/request_process.md +++ /dev/null @@ -1,65 +0,0 @@ -# 请求流程 -- - - - -### 交互流程 -一个完整的前端UI交互到服务器端处理流程是这样的: - -1. UI 组件交互操作; -2. 调用统一管理的 api service 请求函数; -3. 使用封装的 request.js 发送请求; -4. 获取服务端返回; -5. 更新 data; - -为了方便管理维护,统一的请求处理都放在`@/src/api`文件夹中,并且一般按照`model`维度进行拆分文件,如: -``` -api/ - system/ - user/ - index.ts - types.ts - role/ - index.ts - types.ts - monitor/ - operlog/ - index.ts - types.ts - logininfor/ - index.ts - types.ts - ... -``` -> **提示** -> 其中`@/src/utils/request.ts`是基于 axios 的封装,便于统一处理 POST,GET 等请求参数,请求头,以及错误提示信息等。 它封装了全局request拦截器、response拦截器、统一的错误处理、统一做了超时处理、baseURL设置等。 - -### 请求示例 -```typescript -// @/api/system/user/index.ts -import request from '@/utils/request'; -import { AxiosPromise } from 'axios'; -import { UserQuery, UserVO } from './types'; - -export const listUser = (query: UserQuery): AxiosPromise => { - return request({ - url: '/system/user/list', - method: 'get', - params: query - }); -}; - -// @/views/system/user/index.vue -import api from '@/api/system/user'; -const res = await api.listUser(proxy?.addDateRange(queryParams.value, dateRange.value)); -``` -> **提示** -> 如果有不同的`baseURL`,直接通过覆盖的方式,让它具有不同的`baseURL`。 -> ```typescript -> export const listUser = (query: UserQuery): AxiosPromise => { -> return request({ -> url: '/system/user/list', -> method: 'get', -> params: query, -> baseURL: process.env.BASE_API -> }); -> }; -> ``` diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md b/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md deleted file mode 100644 index b13812bc..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/devdoc/router_use.md +++ /dev/null @@ -1,82 +0,0 @@ -# 路由使用 -- - - - -框架的核心是通过路由自动生成对应导航,所以除了路由的基本配置,还需要了解框架提供了哪些配置项。 -### 路由配置 -```typescript -// 当设置 true 的时候该路由不会在侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1 -hidden: true // (默认 false) - -//当设置 noRedirect 的时候该路由在面包屑导航中不可被点击 -redirect: 'noRedirect' - -// 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 -// 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面 -// 若你想不管路由下面的 children 声明的个数都显示你的根路由 -// 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由 -alwaysShow: true - -name: 'router-name' // 设定路由的名字,一定要填写不然使用时会出现各种问题 -query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数 -roles: ['admin', 'common'] // 访问路由的角色权限 -permissions: ['a:a:a', 'b:b:b'] // 访问路由的菜单权限 - -meta: { - title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字 - icon: 'svg-name' // 设置该路由的图标,支持 svg-class,也支持 el-icon-x element-ui 的 icon - noCache: true // 如果设置为true,则不会被 缓存(默认 false) - breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true) - affix: true // 如果设置为true,它则会固定在tags-view中(默认 false) - - // 当路由设置了该属性,则会高亮相对应的侧边栏。 - // 这在某些场景非常有用,比如:一个文章的列表页路由为:/article/list - // 点击文章进入文章详情页,这时候路由为/article/1,但你想在侧边栏高亮文章列表的路由,就可以进行如下设置 - activeMenu: '/article/list' -} -``` -**普通示例** -```json -{ - path: '/system/test', - component: Layout, - redirect: 'noRedirect', - hidden: false, - alwaysShow: true, - meta: { title: '系统管理', icon : "system" }, - children: [{ - path: 'index', - component: (resolve) => require(['@/views/index'], resolve), - name: 'Test', - meta: { - title: '测试管理', - icon: 'user' - } - }] -} -``` -**外链示例** -```json -{ - path: 'http://ruoyi.vip', - meta: { title: '若依官网', icon : "guide" } -} -``` -### 静态路由 -代表那些不需要动态判断权限的路由,如登录页、404、等通用页面,在`@/router/index.ts`配置对应的公共路由。 -### 动态路由 -代表那些需要根据用户动态判断权限并通过addRoutes动态添加的页面,在`@/store/modules/permission.ts`加载后端接口路由配置。 -> **提示** -> * 动态路由可以在系统管理-菜单管理进行新增和修改操作,前端加载会自动请求接口获取菜单信息并转换成前端对应的路由。 -> * 动态路由在生产环境下会默认使用路由懒加载,实现方式参考loadView方法的判断。 -### 常用方法 -想要跳转到不同的页面,使用`router.push`方法 -```Typescript -const router = useRouter(); -router.push({ path: "/system/user" }); -``` -跳转页面并设置请求参数,使用`query`属性 -```Typescript -const router = useRouter(); -router.push({ path: "/system/user", query: {id: "1", name: "若依"} }); -``` -更多使用可以参考[vue-router](https://router.vuejs.org/zh/)官方文档。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/plus-ui/home.md b/ruoyi-admin/src/main/resources/static/plus-ui/home.md deleted file mode 100644 index b389b5ca..00000000 --- a/ruoyi-admin/src/main/resources/static/plus-ui/home.md +++ /dev/null @@ -1,53 +0,0 @@ -# 项目简介 - ---- - -## 平台简介 - -- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 -- 配套后端代码仓库地址 -- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) -- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) - -## 前端运行 - -```bash -# 克隆项目 -git clone https://gitee.com/JavaLionLi/plus-ui.git - -# 安装依赖 -npm install --registry=https://registry.npmmirror.com - -# 启动服务 -npm run dev - -# 推荐使用yarn或pnpm包管理工具 -# 构建测试环境 yarn build:stage -# 构建生产环境 yarn build:prod -# 前端访问地址 http://localhost:80 -``` - -## 后端改造 - -参考后端代码内 `ruoyi-gen/resources/vm/vue/v3/readme.txt` 说明 - -## 内置功能 - -1. 租户管理:配置系统租户,支持 SaaS 场景下的多租户功能。 -2. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -3. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -4. 岗位管理:配置系统用户所属担任职务。 -5. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -6. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -7. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -8. 参数管理:对系统动态配置常用参数。 -9. 通知公告:系统通知公告信息发布维护。 -10. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -11. 登录日志:系统登录日志记录查询包含登录异常。 -12. 在线用户:当前系统中活跃用户状态监控。 -13. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 -14. 代码生成:前后端代码的生成(java、html、xml、sql)支持 CRUD 下载 。 -15. 系统接口:根据业务代码自动生成相关的 api 接口文档。 -16. 服务监控:监视当前系统 CPU、内存、磁盘、堆栈等相关信息。 -17. 缓存监控:对系统的缓存信息查询,命令统计等。 -18. 在线构建器:拖动表单元素生成相应的 HTML 代码。(TS 版本正在开发中。) diff --git a/ruoyi-admin/src/main/resources/static/questions/_sidebar.md b/ruoyi-admin/src/main/resources/static/questions/_sidebar.md deleted file mode 100644 index 2d74fb20..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/_sidebar.md +++ /dev/null @@ -1,34 +0,0 @@ - -- **特别赞助** -- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) -- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) -- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) - - - -* **常见问题** - * [Lombok注解爆红](/questions/lombok.md) - * [如何使用Tomcat](/questions/use_tomcat.md) - * [如何使用druid连接池](/questions/use_druid.md) - * [vue与boot整合部署](/questions/deploy_vue.md) - * [导入excel实体类为空](/questions/import_excel.md) - * [如何同步项目更新](/questions/synchronous_update.md) - * [ParseException SQL解析异常](/questions/parse_exception.md) - * [swagger相关问题](/questions/swagger.md) - * [实体bean为空问题](/questions/bean_null.md) - * [Redis 报错 Permission denied](/questions/permission_denied.md) - * [关于HTTPS配置](/questions/https_config.md) - * [放行接口提示认证失败](/questions/identify_fail.md) - * [打包jar运行报错](/questions/jar_run_fail.md) - * [如何指定dubbo注册ip](/questions/dubbo_ip.md) - * [Sentinel页面404问题](/questions/sentinel_404.md) - * [无法读取nacos配置](/questions/nacos_read_fail.md) - * [接口文档对接knife4j](/questions/kinfe4j.md) - * [不支持ST请求](/questions/st_not_support.md) - * [Only one connection receive subscriber allowed](/questions/only_one_subscriber.md) - * [nacos 报错 The Raft Group [naming_instance_metadata]](/questions/nacos_naming_instance_metadata.md) - * [unable to read meta-data for class xxx](/questions/read_metadata.md) - * [JCE cannot authenticate the provider BC](/questions/jce_cannot.md) - * [关于请求响应参数解密](/questions/api_encrypt.md) - * [关于登录调试步骤](/questions/login_step.md) - * [如何对接国产数据库](/questions/domestic_databases.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md b/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md deleted file mode 100644 index 95b516d4..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/api_encrypt.md +++ /dev/null @@ -1,148 +0,0 @@ -# 关于请求响应参数解密 ---- -## 1:前端加密请求 - -![输入图片说明](https://foruda.gitee.com/images/1717033672316716771/8e30a2f1_4959041.png "屏幕截图") - -通过控制台获取加密结果: - -![输入图片说明](https://foruda.gitee.com/images/1717033792384655437/900a0e0d_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1717033896868612970/55581f0a_4959041.png "屏幕截图") - - -加密密钥: - -``` -PAg/fZzpV/cz0T1fMUJMJo/LEZvwVLb4bZgtCHkbB6FQAJWlLm/RLKtQ5fOo1blMjAkY+9ryWhsAfCqoMPTU4w== -``` - -请求参数加密结果: - -``` -F+Qxq6PzShcudDsUZHhp50lA67eBeTe63x5uGbdm/HJGgcDmjKncUk5VQm0evD8pz1sbmCbmmSl3X1D07K/qgHvP1YhjYSRBJf/M0GTfMkfOZqIkOtvfE5Z6fSFd8RYf6ji/qYxAmCiRmP/uADyJUAoBY1gMi5+zuvyHH3In/FyoFeD0rmJWvO4o4fn3n5GElHMWbP0O/HWPfgHFfg1F7bZQPuf4zAuDKQIqUG3jJTem3O97kAbTWw6lSSuYi1/8tV4cE9rq8SMSjx36/ZLSog== -``` - -### 解密步骤 - -1. 使用配置文件私钥对加密密钥解密 - -```java -// 参数说明: -// requestKey:即请求标头加密密钥 -// privateKey:application.yml 配置文件私钥 -String decryptByRsa = EncryptUtils.decryptByRsa(requestKey, privateKey); -``` - -2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥 - -```java -String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa); -``` - -3. 使用步骤二得到的密钥,对请求参数进行解密 - -```java -String decryptBody = EncryptUtils.decryptByAes(requestBody, aesPassword); -``` - -得到解密请求参数(已格式化): - -```json -{ - "tenantId": "000000", - "username": "admin", - "password": "admin123", - "rememberMe": false, - "uuid": "a39962b22c874f60872ef5db1cd811f5", - "code": "5", - "clientId": "e5cd7e4891bf95d1d19206ce24a7b32e", - "grantType": "password" -} -``` - -|参数名|说明| -|---|---| -|tenantId| 租户id | -|username| 用户名 | -|password| 密码 | -|rememberMe| 记住密码 | -|uuid| - | -|code| 验证码结果 | -|clientId| 客户端id(表 sys_client) | -|grantType| 授权类型(表 sys_client) | - -## 2:后端加密响应 - -对请求使用了注解 `@ApiEncrypt(response = true)` - -![输入图片说明](https://foruda.gitee.com/images/1717035066844744866/2286b394_4959041.png "屏幕截图") - -通过控制台获取加密结果: - -![输入图片说明](https://foruda.gitee.com/images/1717035156784270596/156f2aa7_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1717035193189175688/214631e5_4959041.png "屏幕截图") - -加密密钥: - -``` -MXnKYnXcXeFYWKZg8utuhDtbz54cPDcov11E1KT5l19/vMt37d4NhzzwBWnqug72SOgOK5URGaWPJSs9VdaP0Q== -``` - -响应参数加密结果: - -``` -70 O63EMmwvbAyWPqDDmVOGTy+BOQnIVgKInMFNRtp8Zwzs8DEL20VgL2IslYrL8bc1u7lPhYNU/6 Q3iTYebm4EokwiG+styaT+LO3M9bUimggoAGpBTW8gCRF/34 kJaOITSRqYqYcXIJKn73+Gqn7jevyKUHyRXog/3 q/PlBdmUjNiB4gtxlOO/Vm+4 o+0 W4jcEe0xwwzV91+Ze3S6Eu/1 XN21g0iOsYT34emv/vhd9Hy3p5LfJlAHvn96x/c3MQBQUU32uM3Vkk3o6IpVHjJljE64gnGximSwB9vrmMA21xX+fq9HYioumknmDDbaY/JAKh32CDgn5M5hdaIklf08sU38r1IyvipySzrHX+ci9GmOZhP2ttCtoZ7SGvFFbNEuyojssxwxXEmJHAsG/OhIAeRXMUr3+dzDJ++XvvMuMgNJR0BMldNydFAjNOQEszgcVM1QEGwxfW5rElW8VxQaaqPyDATX+y2JrK1vdKxxdI/hF5dGpQMdU4FAEhHIftoIbD/FH4XcWJamZjJpbVtZvTkFYpbhiU7sz9MICSuKwaoSFJ8JGANc0bDdVoWpA8sXi7a27IM0pDzk9gD/FADcFGHXxPYUhENkXiUcnmg5LSdigiY4J6HrqEJdH6zNSwoGubcsXhiPdlB3V0DqcLAHFt+GYj5lcxZeqUAmixGVGCV7gSBWNiyo9/NnXcynA/EIlV3OZIvgzjWxiKzcVJ1HOKoXGEcg3Q54QNh5pCqEa7AtqVkKO7/Ffgg8nSEeCdJPzTV7zmr3n94Hn671OL8A== -``` - -### 解密步骤 - -1. 使用前端配置文件私钥对加密密钥解密 - -```java -// 参数说明: -// responseKey:即响应标头加密密钥 -// privateKey:前端 .env.development | .env.production 配置文件私钥,注意和后端私钥区分 -String decryptByRsa = EncryptUtils.decryptByRsa(responseKey, privateKey); -``` - -2. 对步骤一结果进行 Base64 解密,得到 AES 加密密钥 - -```java -String aesPassword = EncryptUtils.decryptByBase64(decryptByRsa); -``` - -3. 使用步骤二得到的密钥,对响应参数进行解密 - -```java -String decryptBody = EncryptUtils.decryptByAes(responseBody, aesPassword); -``` - -得到解密请求参数(已格式化): - -```json -{ - "code": 200, - "msg": "操作成功", - "data": { - "scope": null, - "openid": null, - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJzeXNfdXNlcjoxIiwicm5TdHIiOiJjOVNWU1hRRVY4QVhFRkt4b2FrbndSSWxPczd4ajdRZCIsImNsaWVudGlkIjoiZTVjZDdlNDg5MWJmOTVkMWQxOTIwNmNlMjRhN2IzMmUiLCJ0ZW5hbnRJZCI6IjAwMDAwMCIsInVzZXJJZCI6MSwidXNlck5hbWUiOiJhZG1pbiIsImRlcHRJZCI6MTAzLCJkZXB0TmFtZSI6IueglOWPkemDqOmXqCJ9.YuaXPu6eTzJVkLyQC3ekzmPS_jXp50ykaIB2nWy11qM", - "refresh_token": null, - "expire_in": 604799, - "refresh_expire_in": null, - "client_id": "e5cd7e4891bf95d1d19206ce24a7b32e" - } -} -``` - -|参数名|说明| -|---|---| -|scope| 令牌权限 | -|openid| 用户 openid | -|access_token| 授权令牌 | -|refresh_token| 刷新令牌 | -|expire_in| 授权令牌 access_token 的有效期 | -|refresh_expire_in| 刷新令牌 refresh_token 的有效期 | -|clientId| 客户端id(表 sys_client) | \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/bean_null.md b/ruoyi-admin/src/main/resources/static/questions/bean_null.md deleted file mode 100644 index bf04048c..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/bean_null.md +++ /dev/null @@ -1,10 +0,0 @@ -# 实体bean为空问题 -- - - -### 问题排查 - -检查是否存在 `链式调用` 注解 `@Accessors(chain = true)` 删除即可 - -### 原因 -java 规范 set 返回值为 `void` 链式调用 set 返回值为 `this`
    -故多数框架底层使用 jdk 工具导致找不到 set 方法
    -例如: `easyexcel` `cglib` `mybatis` 等 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md b/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md deleted file mode 100644 index 348a1680..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/deploy_vue.md +++ /dev/null @@ -1,13 +0,0 @@ -# 关于vue与boot整合部署 -- - - -* [前端静态资源如何整合到后端访问](https://doc.ruoyi.vip/ruoyi-vue/other/faq.html#前端静态资源如何整合到后端访问) - -3.X 需在 `pom.xml` 增加资源过滤排除 - -```xml - - src/main/resources/页面目录 - - false - -``` diff --git a/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md b/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md deleted file mode 100644 index e79762ba..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/domestic_databases.md +++ /dev/null @@ -1,41 +0,0 @@ -# 如何对接国产数据库 - -> 1. 框架采用 mybatis-plus 几乎支持大部分市面上的数据库且框架内几乎没有sql语句存在 -
    -所以不用担心兼容性问题(顶多就是有一些关键字什么的 对接很简单) -
    -> 2. 国产数据库大多都兼容主流三大数据库 mysql oracle postgresql -
    -例如 达梦兼容oracle 人大金仓兼容mysql oceanbase兼容mysql 等等 - -# 对接方式 - -### 这里用 `达梦` 数据库为例 - -1.首先增加 jdbc依赖包 `vue版本在ruoyi-admin模块下` `cloud版本在ruoyi-common-mybatis模块下` - -![输入图片说明](https://foruda.gitee.com/images/1723288594335994875/216ae8e7_1766278.png "屏幕截图") - -2.在配置文件yml内配置数据库连接 - -![输入图片说明](https://foruda.gitee.com/images/1723288760519808620/3db91ba5_1766278.png "屏幕截图") - -3.sql脚本使用框架内自带的sql文件根据兼容的数据库模式 例如 达梦用oracle的sql脚本 - -![输入图片说明](https://foruda.gitee.com/images/1723289018873298537/4d95c892_1766278.png "屏幕截图") - -4.在代码生成器内 增加对应的数据库生成器依赖 代码生成器使用 anyline 支持几百种数据库只需要增加对应的依赖即可 - -![输入图片说明](https://foruda.gitee.com/images/1723288974693848785/3e8fc61f_1766278.png "屏幕截图") - -这样基本就完成了所有需要做的事可以尝试启动项目了 - -5.如果项目启或者运行动过程中有sql报错 不要慌基本上都是一些关键字引起的 -
    -例如 达梦内的`domain`就是关键字 在我们的`SysOssConfig`表内使用`domain`进行自定义的域名存储 -
    -我们只需要在`SysOssConfig`实体类的`domain`属性增加一个注解即可解决此问题 -
    -**注意: 各种数据库处理关键字的标识符不一样注意替换** - -![输入图片说明](https://foruda.gitee.com/images/1723289232470339283/480d5172_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md b/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md deleted file mode 100644 index 43cb2346..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/dubbo_ip.md +++ /dev/null @@ -1,18 +0,0 @@ -# 如何指定dubbo注册ip -- - - -## 重点说明 -以下方法指定IP必须是本地有网卡的自己可以访问的IP 不可以随意乱写
    -(云服务器公网IP是没有网卡的) - -## 在`nacos`指定协议IP地址(全局生效) -```yml -dubbo: - protocol: - # 指定dubbo协议注册ip - host: 192.168.0.100 -``` - -## docker指定dubbo环境变量(单服务生效) - -![输入图片说明](https://foruda.gitee.com/images/1678981332028792584/7eeef9c5_1766278.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/questions/https_config.md b/ruoyi-admin/src/main/resources/static/questions/https_config.md deleted file mode 100644 index e590729e..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/https_config.md +++ /dev/null @@ -1,27 +0,0 @@ -# 关于HTTPS配置 -- - - -### 后端 HTTPS 改造 - -将申请的 `https` 证书放置到 `nginx` 对应目录内
    -根据框架 `nginx https` 示例 更改后端代理为 `https`
    - -![输入图片说明](https://foruda.gitee.com/images/1678981283573122208/87cf19ad_1766278.png "屏幕截图") - -### 监控中心 与 任务调度中心 改造 - -`监控中心` 与 `任务调度中心` 属于系统管控服务
    -应在内网使用 不应该暴漏到外网 也无需配置 `https` - -更改 `系统 -> 菜单管理 -> 监控中心 与 任务调度中心` 菜单配置
    -将其改为 `外链访问` 访问路径为 **注意: 如果是外网使用 url需配置为 http://外网ip:端口** - -![输入图片说明](https://foruda.gitee.com/images/1678981287686638349/3734f085_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678981292545287978/f2471f97_1766278.png "屏幕截图") - -`nginx` 配置 `独立的端口` 进行反向代理即可访问(代理编写方式参考后端反向代理) - -### Minio https 改造 - -下方链接包含 minio+nginx 与 minio本身配置https 两种方案
    -[终极版minio配置https教程](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/identify_fail.md b/ruoyi-admin/src/main/resources/static/questions/identify_fail.md deleted file mode 100644 index 4e258067..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/identify_fail.md +++ /dev/null @@ -1,10 +0,0 @@ -# 放行接口提示认证失败 -- - - -## 可能的原因 -接口放行后不需要token即可访问
    -但是没有token也就无法获取用户信息与鉴权 - -## 解决方案 -删除接口上的鉴权注解
    -删除接口内获取用户信息功能
    -删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/import_excel.md b/ruoyi-admin/src/main/resources/static/questions/import_excel.md deleted file mode 100644 index 431863e8..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/import_excel.md +++ /dev/null @@ -1,4 +0,0 @@ -# 关于导入excel实体类为空 -- - - -* 禁止在导入实体使用 `lombok` 链式调用注解 `@Accessors(chain = true)` -* 会导致找不到 `set` 方法无法注入内容 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md b/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md deleted file mode 100644 index cef9bcd2..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/jar_run_fail.md +++ /dev/null @@ -1,12 +0,0 @@ -# 打包jar运行报错问题 -- - - - -**常见于 windows 平台以命令方式启动** - -windows 平台默认编码为 GBK 所以读取到所有的配置都是乱码 - -## 解决方案 - -需要在命令增加 `-Dfile.encoding=utf-8` 指定文件编码 - -例如: `java -Dfile.encoding=utf-8 -jar ruoyi-xxx.jar` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md b/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md deleted file mode 100644 index a1baf9dd..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/jce_cannot.md +++ /dev/null @@ -1,3 +0,0 @@ -# 问题说明 由于 OracleJDK 强校验加密证书导致 - -解决方案 禁止使用 oraclejdk 更换为其他例如 openjdk \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md b/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md deleted file mode 100644 index 5051a782..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/kinfe4j.md +++ /dev/null @@ -1,66 +0,0 @@ -# 对接前声明 - -经常有小伙伴希望可以对接 knife4j - -那么这里将介绍如何使用 框架生成的 openapi 对接 knife4j - -# 如何对接 - -**重点声明: 本框架生成标准openapi结构 如对接后遇到不好用等问题 皆与本框架无关** - -knife4j 本身提供了独立的文档中间件 可以零成本的介入 openapi - -文档地址: https://doc.xiaominfo.com/docs/middleware-sources - -**注意: 此组件应单独搞一个boot项目 不要往框架里做任何代码上的更改** - -使用文档提供的 Cloud 模式 对接咱们框架的 openapi 地址即可完成对接 - -![输入图片说明](https://foruda.gitee.com/images/1685953873117929554/22dce56e_1766278.png "屏幕截图") - -vue版本对接配置如下: - -```yml -knife4j: - enable-aggregation: true - cloud: - enable: true - routes: - - name: 演示模块 - uri: localhost:8080 - location: /v3/api-docs/1.演示模块 - - name: 系统模块 - uri: localhost:8080 - location: /v3/api-docs/2.系统模块 - - name: 代码生成模块 - uri: localhost:8080 - location: /v3/api-docs/3.代码生成模块 -``` - -cloud版本对接配置如下: - -```yml -knife4j: - enable-aggregation: true - cloud: - enable: true - routes: - - name: 演示模块 - uri: localhost:8080 - location: /demo/v3/api-docs - - name: 认证服务 - uri: localhost:8080 - location: /auth/v3/api-docs - - name: 资源服务 - uri: localhost:8080 - location: /resource/v3/api-docs - - name: 系统服务 - uri: localhost:8080 - location: /system/v3/api-docs - - name: 监控服务 - uri: localhost:8080 - location: /monitor/v3/api-docs - - name: 代码生成服务 - uri: localhost:8080 - location: /gen/v3/api-docs -``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/login_step.md b/ruoyi-admin/src/main/resources/static/questions/login_step.md deleted file mode 100644 index c1d4fcc9..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/login_step.md +++ /dev/null @@ -1,69 +0,0 @@ -# 关于登录调试步骤 - -## 1:关闭 api 接口加密 - -1. 修改后端配置文件 `application.yml` - -![输入图片说明](https://foruda.gitee.com/images/1717037518256330645/c5a9f0fc_4959041.png "屏幕截图") - -2. 修改前端配置文件 `.env.development` | `.env.production` - -![输入图片说明](https://foruda.gitee.com/images/1717037555118359683/0e73a369_4959041.png "屏幕截图") - -## 2:登录参数 - -![输入图片说明](https://foruda.gitee.com/images/1717038201634120005/e02882d3_4959041.png "屏幕截图") - -|参数名|说明| -|---|---| -|tenantId| 租户id | -|username| 用户名 | -|password| 密码 | -|rememberMe| 记住密码 | -|uuid| - | -|code| 验证码结果 | -|clientId| 客户端id(表 sys_client) | -|grantType| 授权类型(表 sys_client) | - -## 3:使用接口文档调试 - -### 3.1:使用接口文档请求 - -1. 配置接口文档([参考文档](/ruoyi-vue-plus/framework/association/doc)) -2. 请求接口 `http://localhost:8080/auth/login` - -![输入图片说明](https://foruda.gitee.com/images/1717039200581756307/97efbc9c_4959041.png "屏幕截图") - -### 3.2:使用 idea 请求 - -![输入图片说明](https://foruda.gitee.com/images/1717039459944753490/040d2b9d_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1717039534863944601/df91df67_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1717039598067298052/cc9fe61b_4959041.png "屏幕截图") - -### 3.3:获取验证码以及 uuid - -!> 验证码以及 uuid 获取方式: Redis | 控制台 - -方式一、Redis: - -![输入图片说明](https://foruda.gitee.com/images/1717040260329977942/42f7ed62_4959041.png "屏幕截图") - -> **如果没有验证码相关 key,说明已经过期被清理了,去前端页面刷新一下即可。** - -方式二、控制台: - -![输入图片说明](https://foruda.gitee.com/images/1717040428227070908/1ef7562a_4959041.png "屏幕截图") - -### 3.4:关闭验证码 - -如果嫌验证码太麻烦,可以关闭,修改后端配置文件 `application.yml` - -![输入图片说明](https://foruda.gitee.com/images/1717040533266608114/054fd984_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1717040745251872562/374267e8_4959041.png "屏幕截图") - -请求参数: - -![输入图片说明](https://foruda.gitee.com/images/1717040762860943102/81c9b44a_4959041.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/lombok.md b/ruoyi-admin/src/main/resources/static/questions/lombok.md deleted file mode 100644 index 47125153..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/lombok.md +++ /dev/null @@ -1,4 +0,0 @@ -# 关于lombok注解爆红 -- - - -* 已知 lombok 插件与 idea中文插件 存在兼容性问题 -* 移除中文插件或手动关闭idea检查 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md b/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md deleted file mode 100644 index ae35d937..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/nacos_naming_instance_metadata.md +++ /dev/null @@ -1,35 +0,0 @@ -# nacos 报错 The Raft Group [naming_instance_metadata] -- - - -## Nacos 服务下线报错问题 - -问题描述: - -Nacos 服务管理 > 服务列表 > 详情 > 下线 报错 - - - -报错详情: - -``` -caused: errCode: 500, errMsg: do metadata operation failed ;caused: com.alibaba.nacos.consistency.exception.ConsistencyException: The Raft Group [naming_instance_metadata] did not find the Leader node;caused: The Raft Group [naming_instance_metadata] did not find the Leader node; -``` - - - -解决方案: - -**删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹** - -(推荐使用全局搜索软件查询,windows 环境根目录一般在 C:\Users\用户名\nacos) - - - -问题原因: - -> Nacos 采用 raft 算法来计算 Leader,并且会记录上次启动的集群地址,所以当我们自己的服务器 IP 改变时(网络环境不稳定,如WIFI, IP 地址也经常变化),导致 raft 记录的集群地址失效,导致选 Leader 出现问题。 - - - -参考目录: - -[解决疑难问题之服务下线报:The Raft Group naming_instance_metadata\] did not find the Leader node; - 嘉美祥瑞 - 博客园 (cnblogs.com)](https://www.cnblogs.com/whl-jx911/p/16736625.html) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md b/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md deleted file mode 100644 index f6cc36d9..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/nacos_read_fail.md +++ /dev/null @@ -1,15 +0,0 @@ -# 无法读取nacos配置 -- - - -### 检查 `group` 与 `namespace` 是否一致 - -如果未使用框架自带 `ry-config.sql` 文件进行配置 会导致 `namespace` 不一致 无法查询配置 - -### 检查 `8848` `9848` `9849` 端口是否开启可用 - -### 检查配置文件名是否一致 例如: "xxx" 与 "xxx.yml" 的区别 - -### 检查是否手动改过 `nacos` 数据库数据 - -`nacos` 数据表层层关联 不要自作聪明手动改数据库 - -已经改过的 需要重新导入 `ry-config.sql` 之后在页面进行改数据操作 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md b/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md deleted file mode 100644 index f8d690e1..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/only_one_subscriber.md +++ /dev/null @@ -1,11 +0,0 @@ -# Only one connection receive subscriber allowed -- - - -## 问题原因 -**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题** - -`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错 - -## 解决方案 - -方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)
    -方案2: `uniapp` 内的请求设置正确的 `Content-Type` diff --git a/ruoyi-admin/src/main/resources/static/questions/parse_exception.md b/ruoyi-admin/src/main/resources/static/questions/parse_exception.md deleted file mode 100644 index 67a7a114..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/parse_exception.md +++ /dev/null @@ -1,40 +0,0 @@ -# ParseException SQL解析异常 -- - - -## 异常内容 - -`net.sf.jsqlparser.parser.ParseException: Encountered unexpected token:` - -![输入图片说明](https://foruda.gitee.com/images/1678981169309778625/a17ff852_1766278.png "屏幕截图") - -此异常为 SQL 解析异常, 应检查 SQL 语句内是否包含 SQL 关键字 - -异常通常都会提供坐标 - -![输入图片说明](https://foruda.gitee.com/images/1678981173813116217/a6f9ee32_1766278.png "屏幕截图") - -检查报错 SQL 相关坐标位置 - -![输入图片说明](https://foruda.gitee.com/images/1678981179153564043/bf4912b4_1766278.png "屏幕截图") - -## 异常由来 -由 Mybatis-Plus 拦截器进行 SQL 解析导致
    -常见拦截器导致问题 `TenantLineInnerInterceptor` `DataPermissionInterceptor` - -## 解决方案 - -> 将关键字增加标识符区别开 - -1.实体类字段处理(以下仅限于mysql 其他数据库方法各不相同) - -![输入图片说明](https://foruda.gitee.com/images/1678981183515542682/fccd85ad_1766278.png "屏幕截图") - -2.自定义 SQL 或 XML 处理 - -![输入图片说明](https://foruda.gitee.com/images/1678981187926917963/38437edb_1766278.png "屏幕截图") - -3.Mapper排除 -> 查看具体使用了哪些拦截器导致问题 使用忽略注解依次进行排除即可 - -![输入图片说明](https://foruda.gitee.com/images/1678981192902044584/fb1c41eb_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/questions/permission_denied.md b/ruoyi-admin/src/main/resources/static/questions/permission_denied.md deleted file mode 100644 index 76d955db..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/permission_denied.md +++ /dev/null @@ -1,15 +0,0 @@ -# Redis 报错 Permission denied -- - - -### 此报错为无权限 - -需确保 redis 数据存储文件夹具有写权限 - -```shell -chmod 777 /docker/redis/data -``` - -没有写权限无法对数据进行存储 - -### 关于RDB报错 `/etc` 无权限问题 - -增加redis密码校验 无密码导致配置不安全 diff --git a/ruoyi-admin/src/main/resources/static/questions/read_metadata.md b/ruoyi-admin/src/main/resources/static/questions/read_metadata.md deleted file mode 100644 index b91165fd..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/read_metadata.md +++ /dev/null @@ -1,11 +0,0 @@ -# unable to read meta-data for class xxx -- - - -## 问题原因 - -此问题由改包名导致框架内组件 spring 的 spi 配置文件包名被改乱套 - -## 解决方案 - -更正组件包下的 spring spi 配置文件内的类包名 - -![输入图片说明](https://foruda.gitee.com/images/1668608724503582409/50a77b4b_1766278.jpeg "test.jpg") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md b/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md deleted file mode 100644 index 7e51fb58..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/sentinel_404.md +++ /dev/null @@ -1,8 +0,0 @@ -# Sentinel页面404问题 -- - - -## 原因 -检查 `webapp` 目录是否为资源目录 低版本 `idea` 不会自动解析 -## 解决方案 -手动设置 `webapp` 为资源目录即可
    - -![输入图片说明](https://foruda.gitee.com/images/1678981354612151228/52f2a886_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/questions/st_not_support.md b/ruoyi-admin/src/main/resources/static/questions/st_not_support.md deleted file mode 100644 index a3012805..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/st_not_support.md +++ /dev/null @@ -1,11 +0,0 @@ -# 不支持ST请求 -- - - -## 问题原因 -**经多人反馈 共同点为全都是做`小程序开发`使用的`uniapp`发送的网络请求而出现这种问题** - -`uniapp` 错误设置 `Content-Type` 将所有请求类型全都设置成了 `json` 导致不该读body的请求也读取了body 最终导致报错 - -## 解决方案 - -方案1: 升级 1.4.0 已经对这种不合规发的请求做了兼容处理(被迫)
    -方案2: `uniapp` 内的请求设置正确的 `Content-Type` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/swagger.md b/ruoyi-admin/src/main/resources/static/questions/swagger.md deleted file mode 100644 index 8b0a6e01..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/swagger.md +++ /dev/null @@ -1,3 +0,0 @@ -# 框架内没有任何swagger - -想使用接口文档功能 请查看框架接口文档说明 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md b/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md deleted file mode 100644 index 70803f58..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/synchronous_update.md +++ /dev/null @@ -1,3 +0,0 @@ -# 如何同步项目更新 -- - - -参考文章: [关于如何同步更新开源项目](https://blog.csdn.net/qq_31360283/article/details/118345795) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/use_druid.md b/ruoyi-admin/src/main/resources/static/questions/use_druid.md deleted file mode 100644 index 77f3f605..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/use_druid.md +++ /dev/null @@ -1,20 +0,0 @@ -# 如何使用druid连接池 -- - - -## 为何移除druid - -性能低下 bug频发 内含fastjson问题众多 监控不支持集群(鸡肋) 不支持一些高版本数据库 社区活跃度冰点 - -### 性能对比图 -![输入图片说明](https://foruda.gitee.com/images/1667888745256002635/1bbd3481_1766278.png "屏幕截图") -### 包大小对比图 -![输入图片说明](https://foruda.gitee.com/images/1667888760611300040/87af8d82_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1667888766932068690/7b379298_1766278.png "屏幕截图") - -## 为何使用hikari(中文: 光) - -spring默认自带 代码量少结构简单 稳定可靠 性能突出(自行百度一堆测评) - -## 参考提交记录反向操作即可 - -https://gitee.com/dromara/RuoYi-Vue-Plus/commit/1f42bd3d22c104aaa2d780c20a555b5e467858bf
    -https://gitee.com/dromara/RuoYi-Vue-Plus/commit/a63abbf268e4c0a60344f63b5cba828a1347e178 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md b/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md deleted file mode 100644 index 113d239f..00000000 --- a/ruoyi-admin/src/main/resources/static/questions/use_tomcat.md +++ /dev/null @@ -1,9 +0,0 @@ -# 关于如何使用Tomcat -- - - -### 查看ruoyi-framework模块的pom.xml文件,根据注释更改依赖 - -![输入图片说明](https://foruda.gitee.com/images/1678981109106652929/0803004d_1766278.png "屏幕截图") - -### 查看ruoyi-admin模块中的application.yml文件,根据注释更改配置 - -![输入图片说明](https://foruda.gitee.com/images/1678981112652965294/dda8df86_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md deleted file mode 100644 index 4580b86c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/_sidebar.md +++ /dev/null @@ -1,70 +0,0 @@ - -- **特别赞助** -- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) -- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) -- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) - - -* **简介** - * [项目简介](/ruoyi-cloud-plus/home.md) - * [更新日志](/ruoyi-cloud-plus/changlog.md) -* **快速开始** - * [项目初始化](/ruoyi-cloud-plus/quickstart/init.md) - * [1.X项目初始化](/ruoyi-cloud-plus/quickstart/1.Xinit.md) - * [工作流初始化](/ruoyi-cloud-plus/quickstart/worker_init.md) - * [idea环境配置](/ruoyi-cloud-plus/quickstart/idea_environment.md) - * [应用部署](/ruoyi-cloud-plus/quickstart/deploy.md) - * [扩展项目](/ruoyi-cloud-plus/quickstart/extend_project.md) - * [搭建SnailJob调度中心](/ruoyi-cloud-plus/quickstart/snail_job_init.md) - * [(废弃)搭建PowerJob调度中心](/ruoyi-cloud-plus/quickstart/power_job_init.md) -* **框架功能** - * [项目结构](/ruoyi-cloud-plus/framework/tree.md) - * [软件架构图](/ruoyi-cloud-plus/framework/architecture_diagram.md) - * 框架相关 - * [创建新服务](/ruoyi-cloud-plus/framework/association/new_module.md) - * [修改包名](/ruoyi-cloud-plus/framework/association/update_package_name.md) - * [接口文档](/ruoyi-cloud-plus/framework/association/doc.md) - * [修改应用路径](/ruoyi-cloud-plus/framework/association/update_url.md) - * [国际化](/ruoyi-cloud-plus/framework/association/i18n.md) - * [多团队开发](/ruoyi-cloud-plus/framework/association/collaboration.md) - * [内网鉴权](/ruoyi-cloud-plus/framework/association/inner_authentication.md) - * 基础功能 - * [系统用户相关](/ruoyi-cloud-plus/framework/basic/user.md) - * [权限控制](/ruoyi-cloud-plus/framework/basic/permissions_control.md) - * [导出功能](/ruoyi-cloud-plus/framework/basic/export.md) - * [导入功能](/ruoyi-cloud-plus/framework/basic/import.md) - * [参数校验](/ruoyi-cloud-plus/framework/basic/param_check.md) - * [代码生成](/ruoyi-cloud-plus/framework/basic/code_generate.md) - * [分页功能](/ruoyi-cloud-plus/framework/basic/page.md) - * [OSS功能](/ruoyi-cloud-plus/framework/basic/oss.md) - * [数据权限](/ruoyi-cloud-plus/framework/basic/permissions.md) - * [网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release.md) - * [多租户功能](/ruoyi-cloud-plus/framework/basic/tenant.md) - * [第三方授权功能](/ruoyi-cloud-plus/framework/basic/social.md) - * [客户端管理功能](/ruoyi-cloud-plus/framework/basic/client.md) - * 扩展功能 - * [多数据源](/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md) - * [短信模块](/ruoyi-cloud-plus/framework/extend/sms.md) - * [邮件功能](/ruoyi-cloud-plus/framework/extend/mail.md) - * [防重幂等](/ruoyi-cloud-plus/framework/extend/idempotent.md) - * [数据脱敏](/ruoyi-cloud-plus/framework/extend/sensitive.md) - * [API加解密](/ruoyi-cloud-plus/framework/extend/api_encrypt.md) - * [数据加解密](/ruoyi-cloud-plus/framework/extend/encrypt.md) - * [翻译功能](/ruoyi-cloud-plus/framework/extend/translation.md) - * [WebSocket功能](/ruoyi-cloud-plus/framework/extend/websocket.md) - * 功能说明 - * [事务相关](/ruoyi-cloud-plus/framework/explain/transaction.md) - * [单元测试](/ruoyi-cloud-plus/framework/explain/test.md) - * [主键使用说明](/ruoyi-cloud-plus/framework/explain/key.md) - * [关于多表查询](/ruoyi-cloud-plus/framework/explain/about_join.md) -* **扩展功能** - * [ELK搭建](/ruoyi-cloud-plus/extend-function/elk.md) - * [ES搜索引擎](/ruoyi-cloud-plus/extend-function/es.md) - * [RabbitMQ搭建](/ruoyi-cloud-plus/extend-function/rabbitmq.md) - * [RocketMQ搭建](/ruoyi-cloud-plus/extend-function/rocketmq.md) - * [Kafka搭建](/ruoyi-cloud-plus/extend-function/kafka.md) - * [Nacos集群搭建](/ruoyi-cloud-plus/extend-function/nacos.md) - * [SkyWalking搭建与集成](/ruoyi-cloud-plus/extend-function/skywalking.md) - * [Prometheus+Grafana搭建](/ruoyi-cloud-plus/extend-function/prometheus_grafana.md) - * [Sharding-Proxy搭建分库分表](/ruoyi-cloud-plus/extend-function/shardingproxy.md) - * [对接MaxKey单点登录](/ruoyi-cloud-plus/extend-function/maxkey.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md deleted file mode 100644 index 368844cb..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/changlog.md +++ /dev/null @@ -1,1385 +0,0 @@ -# 更新日志 -- - - - -## v2.2.1 - 2024-08-26 - -### 重大改动 - -* 增加 ruoyi-common-sse 模块 支持SSE推送 比ws更轻量更稳定的推送 -* 增加 springboot snailjob 等 actuator 账号密码认证 杜绝内外网信息泄漏问题 -* 增加 重构代码生成器 集成anyline开源框架 支持400+种数据库适配 - -### 依赖升级 - -* update springboot 3.2.6 => 3.2.9 -* update snailjob 1.0.1 => 1.1.2 -* update mapstruct-plus 1.4.3 => 1.4.4 -* update hutool 5.8.27 => 5.8.31 解决hutool不兼容jakarta问题 -* update anyline 8.7.2-20240808 -* update sms4j 3.2.1 => 3.3.2 -* update redisson 3.31.0 => 3.34.1 -* update mapstruct-plus 1.3.6 => 1.4.3 -* update lombok 1.18.32 => 1.18.34 -* update easyexcel 3.3.4 => 4.0.2 -* update springdoc 2.5.0 => 2.6.0 -* update flowable 7.0.0 => 7.0.1 - -### cloud内容更新 - -* update springcloud 2023.0.2 => 2023.0.3 -* update springcloud-alibaba 2023.0.1.0 => 2023.0.1.2 -* update redis 6.2.7 => 6.2.12 解决订阅key报错问题 -* update 优化 seata dockerfile 增加环境变量 -* update 优化 增加日志处理器顺序说明 -* update 优化 使用 seata-server 官方依赖简化seata集成方式 -* update 优化 屏蔽 sentinel 心跳日志 -* update 优化 dubbo元数据注册redis支持timeout(注意时间必须使用数字) -* update 优化 调整sentinel日志级别 屏蔽心跳日志 -* update 优化 sky-agent 默认开启即使连不上服务端也跟踪配置 (有些人就爱这么用) -* update 优化 kafka 自动创建 topic 部分人副本数不够报错问题 -* add 增加 nacos sentinel snailjob 健康检查 actuator 账号密码认证 -* fix 修复 dubbo redis元数据中心 获取监听器null问题 -* fix 修复 nacos sentinel seata 不适配新版undertow问题 先换回tomcat -* fix 修复 依赖漏洞 限制部分依赖版本 -* fix 修复 由于alibaba sentinel 初始化机制变更导致的无法连接问题 -* fix 修复 dubbo 日志输出异常判断错误 -* remove 删除 kafka-streams 所有人都不会用也不学怎么用 删除了事 - -### 功能更新 - -* update 优化 去除日志部署环境判断 通过日志级别控制 -* update 优化 忽略租户与忽略数据权限支持嵌套使用(感谢 amadeus5201) -* update 优化 租户相关controller 增加租户开关配置控制是否注册 -* update 优化 移除 alibaba ttl 与线程池搭配有问题(可传递但无法清除与更新) -* update 优化 个人中心编辑 忽略数据权限 -* update 优化 兼容部分用户不想给用户分配角色与部门的场景 -* update 优化 租户套餐重名校验 -* update 优化 部门下存在岗位不允许删除 -* update 优化 角色编辑状态未校验问题 -* update 优化 用户脱敏增加编辑权限标识符 -* update 优化 代码生成器 自动适配oss翻译 -* update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题 -* update 优化 支持通过配置文件关闭工作流 -* update 优化 增加mybatis-plus填充器兜底策略 -* update 优化 TenantSpringCacheManager 处理逻辑 -* update 优化 角色权限判断 -* update 优化 增加删除标志位常量优化查询代码 -* update 优化 监控使用独立web依赖 -* update 优化 更多脱敏策略(感谢 hemengji) -* update 优化 设置nginx sse相关代理参数 -* update 优化 调整默认推送使用SSE -* update 优化 Monitor监控服务通知分类打印(感谢 AprilWind) -* update 优化 限流注解 又写key又不是表达式的情况 -* update 优化 WorkflowUtils查询用户信息发送消息未查询邮件和手机号(感谢 yanzy) -* update 优化 注释掉其他数据库 jdbc 依赖 由用户手动添加 -* update 优化 oracle snailjob 兼容低版本oracle索引名称长度限制 -* update 优化 数据权限支持通过菜单标识符获取数据所有权 -* update 优化 数据权限支持自定义连接符 -* update 优化 TestDemo 删除前校验数据权限 -* update 优化 更换docker镜像底层系统 避免无字体情况 - -### 问题修复 - -* fix 修复 三方登录构建去除无用代码 -* fix 修复 多线程对同一个session发送ws消息报错问题 -* fix 修复 依赖漏洞 限制部分依赖版本 -* fix 修复 excel 基于其他字段 合并错误问题 -* fix 修复 一级缓存key未区分租户问题 -* fix 修复 id字符串格式转换错误问题 -* fix 修复 登出无法正确删除对应的租户数据问题 -* fix 修复 登录错误锁定不区分租户问题 -* fix 修复 转换模型缺少分类字段 -* fix 修复 权限标识符处理未设置成功状态问题 -* fix 修复 无法导入 bpmn 类型文件问题 - -### 前端改动 - -* update element-plus 2.7.5 => 2.7.8 -* update vue 3.4.25 => 3.4.34 -* update vite 5.2.10 => 5.2.12 -* add 增加 使用 vueuse 编写 sse 推送功能 -* update 优化 使用匹配模式简化预编译配置 -* update 优化 时间搜索组件统一 -* update 优化 oss 配置按钮 使用ossConfig权限标识符与oss权限分离 -* update 优化 类型报错问题 -* update 优化 切换租户后刷新首页 -* update 优化 实现表格行选中切换 -* update 优化 使用 vueuse 重构 websocket 实现 -* update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题 -* update 优化 调整默认推送使用SSE -* fix 修复 租户套餐导出路径错误问题 -* fix 修复 登出后重新登录 sse推送报错问题 - - -## v2.2.0 - 2024-07-09 - -### 重大更新 - -* [重大更新] 使用 caffeine 重构 PlusSaTokenDao 层实现 减少将近90%的redis查询提高性能 -* [重大更新] 新增 PlusCacheWrapper 装饰器 为 SpringCache 增加本地缓存减少redis查询提高性能 -* [重大更新] 升级 awsS3 到2.X版本 支持异步与自动分片上传下载(感谢 AprilWind) -* [重大更新] 新增 flowable 工作流功能(感谢 May) -* [重大更新] 新增 snailjob 调度中心 移除 powerjob (投诉的人太多) (感谢 dhb52) -* [重大更新] 重构 将spring-cloud-stream改为普通的mq依赖用法(感谢 Xbhog) -* [重大更新] 新增 ruoyi-common-bus 消息总线组件 基于MQ跨服务投递事件消息 - -### 依赖升级 - -* update springboot 3.1.7 => 3.2.6 支持虚拟线程 -* update springboot-admin 3.1.8 => 3.2.3 -* update springdoc 2.2.0 => 2.5.0 -* update redisson 3.24.3 => 3.29.0 支持虚拟线程 -* update hutool 5.8.22 => 5.8.26 -* update dynamic-ds 4.2.0 => 4.3.0 -* update mybatis-plus 3.5.4 => 3.5.7 修复与boot代码冲突问题 -* update lock4j 2.2.5 => 2.2.7 消除启动警告 -* update sms4j 2.2.0 => 3.2.1 支持自定义配置key 可用于多厂商多租户等 -* update mapstruct-plus 1.3.5 => 1.3.6 -* update easyexcel 3.3.3 => 3.3.4 -* update lombok 1.18.30 => 1.18.32 -* update satoken 1.37.0 -> 1.38.0 -* update aws-oss 1.12.600 => 2.25.15 - -### 功能更新 - -* update 优化 StreamUtils 抽取 findFirst findAny 方法 -* update 优化 更新使用 Spring 官方推荐 JDK -* update 优化 webscoket 配置与异常拦截 -* update 优化 isTenantAdmin 空校验 -* update 优化 修改路由name命名规则(感谢 玲娜贝er) -* update 优化 大数据量下join卡顿问题 使用子查询提高性能 -* update 优化 用户ID查询角色列表(感谢 AprilWind) -* update 优化 获取用户账户(感谢 AprilWind) -* update 优化 租户列表接口 避免登录之后列表被域名过滤 -* update 优化 三方登录不同域名获取不到租户id问题 -* update 优化 获取aop代理的方式 减少与其他使用aop的功能冲突的概率 -* update 优化 临时解决 spring 启动报 warn 问题 -* update 优化 移除表单构建菜单(没有可用组件 用处不大以后再考虑) -* update 优化 修改用户信息接口(感谢 AprilWind) -* update 优化 切换动态租户 默认线程内切换(如需全局 手动传参) -* update 优化 适配最新前端代码生成模板 -* update 优化 代码生成 el-radio 标签过期属性 -* update 优化 文件下载(使用对流传递 降低内存使用量)(感谢 秋辞未寒) -* update 优化 去除gc日志参数(有需要自己加) -* update 优化 拆分异常处理器 -* update 优化 常规web异常状态码 -* update 优化 设置静态资源路径防止所有请求都可以访问静态资源 -* update 优化 代码生成表导入 排除工作流相关表 -* update 优化 redis 对Long值的存储类型不同问题 -* update 优化 去除加密请求类型限制 -* update 优化 mp多租户插件注入逻辑 -* update 优化 移除删表语句 用户自行处理 -* update 优化 RedisUtils 支持忽略租户 -* update 更新 ip地址 xdb文件 -* update 优化 新增修改菜单权限字符校验 -* update 优化 验证码背景色改为浅灰色 -* update 优化 更新 mybatis 多包扫描配置 -* update 优化 RateLimiter 注解使用体验(感谢 ly-chn) -* update 优化 GET 方法响应体支持加密 -* update 优化 excel 单元格合并可以基于注解选择需要依赖哪些字段(感谢 司猫子) -* update 优化 OssFactory 获取实例锁性能(感谢 fanc) -* update 优化 登录消息 支持集群发送 -* update 优化 数据权限 使用预扫描mapper注解提升代码性能 -* update 优化 数据加密 使用预扫描实体类提升代码性能(感谢 老马) -* update 优化 Async 针对虚拟线程配置 与其他注意事项注释 -* update 优化 框架整体sql提高查询性能 -* update 优化 将p6spy配置文件统一放置到 common-mybatis 插件包内 -* update 优化 使用翻译注解简化用户查询 调整用户查询逻辑 - - -### 新增功能 - -* add 新增 SMS异常处理器(感谢 AprilWind) -* add 新增 在线设备管理(个人中心)(感谢 AprilWind) -* add 新增 岗位编码与部门编码 并将岗位放到部门下(感谢 秋辞未寒) -* add 新增 分布式锁Lock4j异常拦截(感谢 AprilWind) -* add 新增 BaseMapperPlus提供一组可选是否抛出异常的selectVoOne方法(感谢 秋辞未寒) -* add 新增 用户、部门、角色、岗位 下拉选接口与代码实现优化 -* add 新增 JustAuth 整合 TopIam 单点登录(感谢 马铃薯头) -* add 新增 StringUtils.isVirtual 方法 -* add 新增 正则工具类 字符串提取 字符串校验 - -### 问题修复 - -* fix 修复 isLogin 方法抛异常无法正常返回值问题 -* fix 修复 spring路径规则 导致 actuator 被特殊方式访问问题 -* fix 修复token无效时关闭ws(感谢 AprilWind) -* fix 修复 oss未使用租户 拼接租户id null问题 -* fix 修复 用户昵称修改后未清除对应缓存问题 -* fix 修复 文件上传图片预览问题 -* fix 修复 三方账号可以被同一个用户多次绑定问题 -* fix 修复 兼容redis5.0出现的问题 -* fix 修复 字典键值可重复配置问题 -* fix 修复 部分浏览器无法获取加密响应头问题 -* fix 修复 用户未设置部门 登录报错问题 -* fix 修复 全局异常处理器 空指针null问题 -* fix 修复 excel 表达式字典 下拉框导出格式错误 -* fix 修复 InjectionMetaObjectHandler 已存在数据依旧会获取用户信息报异常问题 -* fix 修复 关闭租户功能 三方登录报错问题 -* fix 修复 部门树排序问题 -* fix 修复 CryptoFilter 代码逻辑问题 - -### 前端改动 - -* update 升级 element vite 版本 最低nodejs版本提升到18.18.0 -* update 优化 更改客户端状态接口 使用clientId传参 -* update 优化 ws开关改为常开(vite5修复了崩溃bug) -* update 优化 移除cjs -* update 优化 对Volar支持 -* update 优化 富文本组件,修复两个组件上传图片位置错乱问题 -* update 优化 request请求类判断请求头方式 -* update 优化 密码校验策略增加非法字符限制 -* update 优化 支持全局开启或关闭接口加密功能 -* update 优化 暗黑模式,增加vxe的暗黑模式 -* update 优化 首页打开topNav不展开菜单问题 -* update 优化 el-select 与 el-input 全局样式 -* update 优化 跟密码相关的默认前端关闭防重功能 -* add 新增 社交登录整合 TopIam -* add 新增 图片上传组件增加压缩功能支持,可自行开关 -* add 新增 vxe-table依赖支持 -* add 新增 全局用户选择组件 -* add 新增 工作流相关页面与组件 -* add 新增 使用bpmnjs流程预览 -* add 新增 在线登录设备管理(感谢 AprilWind) -* add 新增 用户选择角色时 可搜索功能(感谢 追梦稻草人Li) -* fix 修复 登录失效,重新登录丢失参数问题(感谢 爱宇阳) -* fix 修复 websocket 非index页面刷新无法重连问题 -* fix 修复 全局属性找不到的问题(感谢 ahaos) -* fix 修复 vue 类型识别问题 -* fix 修复 富文本编辑器 单页面多实例图片混乱问题 -* fix 修复 i18n无感刷新问题 -* fix 修复 文件预览大写后缀不展示的问题(感谢 北桥) -* fix 修复 面板因为min width原因收缩不全 -* fix 修复 移动端下 无法展开菜单问题 -* fix 修复 菜单搜索下方出现白色区域 -* fix 修复 el-tag标签类型不一致问题 -* fix 修复 角色必填*号 - -### 微服务修改 - -* update springcloud 2022.0.4 => 2023.0.2 -* update springcloud-alibaba 2022.0.0.0 => 2023.0.1.0 -* update dubbo 3.2.7 => 3.2.14 -* update easy-es 2.0.0-beta4 => 2.0.0 正式版 -* update nacos 2.2.1 => 2.3.2 默认开启nacos服务端授权认证 (感谢 OldDriver9527) -* update rocketmq 4.9.4 => 5.2.0 docker镜像升级 -* update kafka 3.2.0 => 3.6.2 docker镜像升级 -* update rabbitmq 3.10.6 => 3.13.3 docker镜像升级 -* update sentinel 1.8.6 => 1.8.8 -* update skywalking 9.3.0 => 9.7.0 -* update skywalking-agent 8.16.0 => 9.2.0 -* update 优化 dubbo 使用 redis 作为元数据中心管理 支持过期时间 避免过期数据堆积 解放nacos存储空间 -* update 优化 调整配置文件语法 -* update 优化 使用spring工具自定义dubbo ip获取方法(针对多网卡ip获取不正确问题) -* update 优化 common-dubbo 删除无用依赖 -* update 优化 去除重复的扫描器 @EnableDubbo 会自行扫描包 -* update 优化 加密组件 mp依赖改为可选 -* update 优化 mybatis依赖设置为可选依赖 避免出现不应该注入的情况 -* fix 修复 sentinel-dashboard的pom引入logaback冲突问题 -* fix 修复 nacos 不兼容 logback 1.4 新版本问题 -* fix 修复 开启数据库加密 auth服务报错问题 -* fix 修复 gateway sentinel 限流报错问题(临时方案) https://github.com/alibaba/Sentinel/issues/3298 - - -## v2.1.2 - 2023-12-22 - -### 依赖升级 - -* update springboot 3.1.5 => 3.1.7 -* update springboot 2.7.17 => 2.7.18(扩展服务升级到boot2最终版本) -* update mybatis-boot 3.0.2 => 3.0.3 优化依赖传递 -* update powerjob 4.3.3 => 4.3.6 -* update easyexcel 3.3.2 => 3.3.3 -* update transmittable-thread-local 2.14.2 => 2.14.4 -* update justauth 1.16.5 => 1.16.6 -* update redisson 3.24.1 => 3.24.3 修复订阅重启连接超时问题 -* update easy-es 1.1.1 => 2.0.0-beta4 - -### 功能更新 - -* update 优化 oss 远程调用 支持降级处理 -* update 优化 丰富RedisUtils对List Set类型的操作 -* update 优化 为 admin 模块 单独增加ratelimiter模块 -* update 优化 验证码接口 增加限流配置 -* update 优化 excel合并注解会根据第一合并列的结果来决定后续的列合并 (感谢 Simple) -* update 优化 SocialUtils 代码 -* update 优化 删除无用异常类 -* update 优化 补全三方登录校验国际化 -* update 优化 sms组件 预留自动配置类 -* update 更新 关于数据库的说明 -* update 优化 sms组件 预留自动配置类 -* update 优化 将 OSS配置 改为全局模式 降低使用难度 保留sql便于用户自行扩展(常规项目用不上配置分多租户) -* update 优化 细化oss配置管理权限控制 -* update 优化 开启 redisson 脚本缓存 减少网络传输 -* update 优化 删除 hikaricp 官方不推荐使用的配置 jdbc4 协议自带校验方法 -* update 优化 减少 PlusSaTokenDao 不必要的查询优化性能 -* update 优化 更新用户异常提示 使用登录账号 -* update 优化 使用登录用户判断是否登录 提高效率 -* update 优化 重构 LoginHelper 将本地存储代码操作封装 -* update 优化 getTenantId 判断是否开启多租户 -* update 优化 Dockerfile 使用shell模式 支持环境变量传入jvm参数 -* update 优化 WebSocketUtils 连接关闭改为警告 -* update 优化 excel多sheet页导出 (感谢 May) -* update 优化 删除无用接口实现 -* update 优化 jvm参数调整 全面启用zgc -* update 优化 使用动态租户重构业务对租户的逻辑 -* update 优化 TenantHelper 动态租户支持函数式方法 -* update 优化 支持多租户绑定相同的三方登录 -* update 优化 更新用户登录信息方法忽略数据权限 -* update 优化 补全三方绑定时间字段 删除无用excel注解 -* update 优化 将登录记录抽取到监听器统一处理 -* update 优化 登录消息推送异常拦截(未启动resource也不耽误用) -* update 优化 租户插件 ignoreTable 方法支持动态租户 - -### 新增功能 - -* add 新增 RedisUtils.setObjectIfExists 如果存在则设置方法 -* add 新增 丰富RedisUtils对List Set类型的操作 -* add 新增 翻译组件 用户昵称翻译实现 -* add 新增 响应加密功能 支持注解强制加密接口数据 (感谢 MichelleChung) -* add 新增 common-ratelimiter 限流模块 用于自定义业务限流 与 sentinel不冲突 - -### 问题修复 - -* fix 修复 stream-mq 测试服务未导入租户模块 导致鉴权不一致问题 -* fix 修复 使用zgc导致seata报错(未知原因 将alibaba组件全还原) -* fix 修复 sentinel 镜像添加了多余接口参数 -* fix 修复 注册接口获取开关未在租户范围内问题 -* fix 修复 seata-server logback版本冲突问题 -* fix 修复 selectDictTypeByType 查询方法错误问题 -* fix 修复 一些不正常类无法加载报错问题 -* fix 修复 powerjob sql脚本针对其他数据库转义符问题 (感谢 branches) -* fix 修复 MybatisSystemException 空指针问题 -* fix 修复 excel合并注解会根据第一合并列的结果来决定后续的列合并 -* fix 修复 session 多账号共用覆盖问题 改为 tokenSession 独立存储 -* fix 修复 token 失效后 登录获取用户null问题 -* fix 修复 powerjob部署方案 高版本nginx不生效问题 -* fix 修复 OssFactory 并发多创建实例问题 -* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 - -### 前端改动 - -* update 优化 用户头像 img 变量无确定类型问题 -* update 优化 细化oss配置管理权限控制 -* update 优化 明确打包命令 -* update 优化 代码中存在的警告 -* update 优化 前端白名单页面放行逻辑 -* update 优化 页面关于权限标识符说明 -* fix 修复 append-to-body 编写错误 (感谢 Ai3_刘小龙) -* fix 关闭动态路由tab页签时不清理组件缓存 (感谢 NickLuo) -* fix 删除重复环境变量ElUploadInstance (感谢 棉花) -* fix 修复 在线用户 强推按钮点击取消控制台警告问题 -* fix 修复 字典使用 default 样式报警告问题 - -## v1.8.2 - 2023-11-27 - -### 依赖升级 - -* update springboot 2.7.16 => 2.7.18 升级到2.X最终版本(官方停更) -* update mybatis-plus 3.5.3.2 => 3.5.4 -* update satoken 1.36.0 => 1.37.0 -* update hutool 5.8.20 => 5.8.22 -* update aws-java-sdk-s3 1.12.400 => 1.12.540 -* update vue-quill 1.1.0 => 1.2.0 - -### 功能更新 - -* update 优化 页面关于权限标识符说明 -* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 -* update 优化 部门数据权限使用默认兜底方案 -* update 优化 补全代码生成 columnList 接口参数注解缺失 -* update 优化 AddressUtils 兼容linux系统本地ip -* update 优化 操作日志 部门信息完善 -* update 优化 数据权限 减少二次校验查询 -* update 修改 获取用户token和后端不一致的问题 (感谢 bestrevens) -* update 优化 vue3 版本用户初始密码从字典查询 -* update 优化 富文本Editor组件检验图片格式 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 全局数据存储用户编号 -* update 优化 菜单管理类型为按钮状态可选 - -### 问题修复 - -* fix 修复 OssFactory 并发多创建实例问题 -* fix 修复 demo页面字段编写错误 -* fix 修复 数据权限优化后 update delete 报null问题 -* fix 修复 五级路由缓存无效问题 -* fix 修复 oss服务无法连接 -* fix 修复 内链iframe没有传递参数问题 -* fix 修复 外链带端口出现的异常 -* fix 修复 普通角色编辑使用内置管理员code越权问题 -* fix 修复 seata XA模式缺失druid工具问题 -* fix 修复 代码生成 是否必填与数据库不匹配问题 -* fix 修复 富文本上传接口地址错误 -* fix 修复 HeaderSearch组件跳转query参数丢失问题 -* fix 修复树结构代码生成新增方法赋值错误 - -## v2.1.1 - 2023-11-14 - -### 依赖升级 - -* update springboot 3.1.3 => 3.1.5 -* update springboot 2.7.14 => 2.7.17(扩展服务) -* update springboot-admin 3.1.5 => 3.1.7 -* update satoken 1.35.0.RC => 1.37.0 -* update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 -* update dynamic-ds 4.1.3 => 4.2.0 -* update bouncycastle 1.72 => 1.76 -* update poi 5.2.3 => 5.2.4 -* update redisson 3.23.2 => 3.24.1 -* update hutool 5.8.20 => 5.8.22 -* update lombok 1.18.26 => 1.18.30(适配支持jdk21) -* update vue-quill 1.1.0 => 1.2.0 -* update seata 1.7.0 => 1.7.1 -* update dubbo 3.2.5 => 3.2.7 - -### 功能更新 - -* update 优化 移除不合理的方法 携带附件的邮件建议直接集成插件发送 -* update 优化 携带 clientid 跨域问题 -* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 -* update 优化 适配 maxkey 新版本 -* update 优化 @Sensitive脱敏增加角色和权限校验 (感谢 盘古给你一斧) -* update 优化 部门数据权限使用默认兜底方案 -* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) -* update 优化 登录策略代码优化(感谢 David Wei) -* update 优化 补全代码生成 columnList 接口参数注解缺失 -* update 优化 nginx 配置支持 websocket -* update 优化 notice 新增通知公告发送ws推送 -* update 优化 websocket 模块减少日志输出 增加登录推送 -* update 优化 重构登录策略增加扩展性降低复杂度 -* update 优化 addressUtils 兼容linux系统本地ip -* update 优化 补全操作日志部门数据 -* update 优化 支持数据库操作在非web环境下切换租户 -* update 优化 排除powerjob无用的依赖 减少打包30M体积 -* update 优化 删除 satoken yml 时间配置 此功能已迁移至客户端管理 -* update 优化 redis 集群模式注释说明 -* update 优化 客户端禁用限制 -* update 优化 登录日志, 在线用户展示信息(增加 客户端, 设备类型)(感谢 MichelleChung) -* update 优化 限制框架中的fastjson版本 -* update 优化 数据权限 减少二次校验查询 -* update 优化 将部门id存入token避免过度查询redis -* update 优化 增加租户ID为Null错误日志 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) -* update 优化 为 sys_grant_type 字典增加样式 -* update 优化 代码生成 页面输入框样式 -* update 优化 全业务分页查询增加排序规则避免因where条件导致乱序问题 -* update 优化 登录接口租户id被强制校验问题 -* update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge) -* update 优化 将graalvm镜像更新为openjdk镜像 需要的人自行切换即可 -* update 优化 部分使用者乱设权限导致无法获取用户信息 增加权限提示 -* update 优化 表格列的显示与隐藏小组件(感谢 bestrevens) -* update 优化 增加表单构建不能使用说明 -* update 优化 富文本Editor组件检验图片格式 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 菜单管理类型为按钮状态可选 -* update 优化 用户初始密码从参数配置查询 -* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) -* update 优化 字典标签支持数组和多标签(感谢 抓蛙师) - -### 新增功能 - -* add 新增 websocket 群发功能 -* add 新增 前端接入websocket接收消息(感谢 三个三) -* add 增加 rpc消息推送接口与实现 -* add 新增 CacheController Redis 缓存监控接口(感谢 Michelle.Chung) - -### 问题修复 - -* fix 修复 因扩展服务不支持boot3导致无法引入common-web包 日志写出不生效问题 -* fix 修复 seata XA模式缺失druid工具问题 -* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 -* fix 修复 租户id为null 无法匹配字符串导致的嵌套key问题 -* fix 修复 部门管理orderNum排序失效问题 -* fix 修复 外链带端口出现的异常 -* fix 修复 普通角色编辑使用内置管理员code越权问题 -* fix 修复 代码生成 是否必填与数据库不匹配问题 -* fix 修复 用户注册接口校验用户名不区分租户问题 -* fix 修复 错误增加组导致的校验不生效问题 -* fix 修复 新增校验主键id问题 -* fix 修复 powerjob 使用 nginx 部署无法访问的问题 -* fix 修复 SysUserMapper 内标签使用错误(不影响使用) -* fix 修复 新增或编辑 SysOssConfig 数据后 推送到 redis 数据不完整 -* fix 修复 树表生成查询变量使用错误 -* fix 修复 个人信息修改密码接口隐藏新旧密码参数明文(感谢 bleachtred) -* fix 修复 删除字段后 * update sql 未更新问题 -* fix 修复 三方登录支付宝source与实际支付宝业务code不匹配问题 -* fix 修复 五级路由缓存无效问题 -* fix 修复 内链iframe没有传递参数问题 -* fix 修复 绑定第三方帐号参数“wechar”更正为“wechat” (感谢 scmiot) -* fix 修复 用户注册缺失 clientid 问题 -* fix 修复 HeaderSearch组件跳转query参数丢失问题 -* fix 修复 自定义字典样式不生效的问题 -* fix 修复 login 页面 loading 未关闭问题 - -## v1.8.1 - 2023-09-26 - -### 依赖升级 - -* update springboot 2.7.14 => 2.7.16 -* update springboot-admin 2.7.10 => 2.7.11 -* update satoken 1.35.0.RC => 1.36.0 -* update lombok 1.18.26 =. 1.18.30 -* update springboot 2.7.13 => 2.7.14 -* update mybatis-plus 3.5.3.1 => 3.5.3.2 -* update easyexcel 3.3.1 => 3.3.2 -* update hutool 5.8.18 => 5.8.20 -* update dubbo 3.1.8 => 3.1.11 - -### 功能更新 - -* update 优化 代码生成 vo实体类序列化 -* update 优化 excel 导出不必要的请求头 -* update 优化 字典标签支持传分隔符分隔的字符串和数组 -* update 优化 控制台debuger位置错误问题 -* update 优化 TopNav 菜单样式 -* update 优化 注册用户异常报错不正确问题 -* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 -* update 优化 用户管理 只查询未禁用的部门角色岗位数据 -* update 优化 岗位如果绑定了用户则不允许禁用 -* update 优化 部门与角色如果绑定了用户则不允许禁用 -* update 优化 加密实现 使用 EncryptUtils 统一处理 -* update 优化 适配 mysql 8.0.34 升级连接机制 -* update 优化 excel导出字典转下拉框 无需标记index自动处理 -* update 优化 excel 导出字典默认转为下拉框 -* update 删除一些跟swagger有关的字眼 避免误解 -* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 -* update 优化 xxljob 端口随着主应用端口飘逸 避免集群冲突 - -### 问题修复 - -* fix 修复 自定义字典样式不生效的问题 -* fix 修复 新建用户可能会存在的越权行为 -* fix 修复 字典缓存删除方法参数错误问题 -* fix 修复 修复树模板父级编码变量错误 -* fix 修复 demo 模块缺少 security 依赖问题 -* fix 修复 升级 mp 版本导致的问题 -* fix 修复 加密模块数据转换异常问题 -* fix 修复 动态设置 token 有效期不生效问题 -* fix 修复 token 过期登出无法清理在线用户问题 - - -## v2.1.0 - 2023-09-06 - -# 开发历程 - -* 2023年5月 开始 2.1.0 计划 历经1个月的设计与讨论 -* 2023年6月 开始着手开发 历经2个多月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 -* 2023年8月 开始公测 历经将近1个月的公测与修复工作(期间成功支持多位使用者生产使用) -* 2023年9月初 正式发布(经过多个小伙伴的生产实践 已基本可尝试生产使用) -> 关于1.X的说明 由于SpringBoot2.X与vue2.X均在11月底停止维护
    -> 故而咱们vue版本1.X也无法再继续更新
    -> 介于1.X的用户量特别庞大 功能也非常的稳定
    -> 计划于11月底同Boot2.X一同停止更新但还会持续维护修复bug(修复的形式为直接提交到1.X分支停止发版)
    - -# 视频介绍 - -为了更好的让大家了解 2.1.0 作者录制了相关的视频 供大家快速了解上手 - -* 2.1.0 新功能与变更介绍: https://www.bilibili.com/video/BV1fj411y71X/ - -# 更新日志 - -### 重大更新 - -* [重大更新] 优化 相关代码 完成代码生成多数据源统一存储(感谢 WangBQ) -* [不兼容更新] 移除 原短信功能 集成更强大的 sms4j 短信工具包(感谢 友杰) -* [不兼容更新] 对接 powerjob 实现分布式任务调度 删除原有 xxljob 原因为社区不更新功能太少只支持mysql(感谢 yhan219) -* [重大更新] 新增 三方授权绑定登录功能 基于 justauth 支持市面上大部分三方登录(感谢 三个三) -* [不兼容更新] 新增 客户端授权功能 不需要更改任何代码即可完成多端动态对接(感谢 Michelle.Chung) -* [重大更新] 新增 前后端接口请求加密传输 基于AES+RSA动态高强度加密(感谢 wdhcr) -* [重大更新] 新增 三方授权登录 对接 maxkey 单点登录 -* [不兼容更新] 优化 redis序列化配置 更改为通用格式(升级需清除redis所有数据) -* [重大更新] 新增 通过 sharding-proxy 实现分库分表(感谢 rice666 !pr94) - -### 依赖升级 - -* update springboot 3.0.7 => 3.1.3 -* update springboot-admin 3.1.3 => 3.1.5 -* update springcloud 2022.0.2 => 2022.0.4 -* update springcloud-alibaba 2022.0.0.0-RC2 => 2022.0.0.0 -* update springdoc 2.1.0 => 2.2.0 -* update spring-mybatis 3.0.1 => 3.0.2 -* update mybatis-plus 3.5.3.1 => 3.5.3.2 -* update easyexcel 3.2.1 => 3.3.2 -* update mapstruct-plus 1.2.3 => 1.3.5 解决修改实体类 idea不编译问题 -* update satoken 1.34.0 => 1.35.0.RC 优化过期配置 支持多端token自定义有效期 -* update dynamic-ds 3.6.1 => 4.1.3 支持 SpringBoot3 -* update sms4j 2.2.0 -* update hutool 5.8.18 => 5.8.20 -* update redisson 3.20.1 => 3.23.4 -* update lock4j 2.2.4 => 2.2.5 -* update aws-java-sdk-s3 1.12.400 => 1.12.540 -* update maven-surefire-plugin 3.0.0 => 3.1.2 -* update seata 1.6.1 => 1.7.0 -* update sharding-proxy 5.4.0 -* update dubbo 3.2.2 => 3.2.5 -* update skywalking-toolkit 8.14.0 => 8.16.0 -* update logstash 7.2 => 7.4 - -### 功能更新 - -* update 优化 与 vue 版本同步代码结构 -* update 优化 放行springboot默认error接口 -* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 -* update 调整 gateway 访问日志输出等级 -* update 优化 修改角色如果未绑定用户则无需清理 -* update 优化 用户昵称非空校验 -* update 优化 在全局异常拦截器中增加两类异常处理 -* update 优化 StreamUtils 方法过滤null值 -* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 -* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 -* update 修改代码生成模版,日期范围统一采用addDateRange方法 -* update 优化 树表生成前端缺少 children 字段 -* update 优化 ruoyi-resource 服务添加 websocket 模块 -* update 优化 放行验证码接口、第三方登录请求与回调 -* update 更新 GlobalLogFilter#filter 根据请求头判断加密参数(感谢 Michelle.Chung !pr100) -* update 优化 SaReactorFilter 过滤器判断 token 客户端 id 是否有效(感谢 Michelle.Chung !pr101) -* update 删除一些跟swagger有关的字眼 避免误解 -* update 优化 兼容 clientid 通过 param 传输 -* update 优化 excel导出字典转下拉框 无需标记index自动处理(感谢 一夏coco) -* update 优化 增加线程池销毁配置 -* update 优化 屏蔽 powerjob 无用的心跳日志 -* update 优化 适配 mysql 8.0.34 升级连接机制 -* update 优化 加密实现 使用 EncryptUtils 统一处理 -* update 优化 删除字典无用状态字段(基本用不上 禁用后还会导致回显问题) -* update 优化 部门与角色如果绑定了用户则不允许禁用 -* update 优化 岗位如果绑定了用户则不允许禁用 -* update 优化 用户管理 只查询未禁用的部门角色岗位数据 -* update 优化 登录用户增加昵称返回 -* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 -* update 优化 将部门管理 负责人选项改为下拉框选择 -* update 优化 登录用户缓存 去除冗余统一存储 -* update 优化 注册用户异常报错不正确问题 -* update 优化 放宽菜单权限 角色关联菜单无需管理员 - -### 新增功能 - -* add 增加 RedisUtils 批量删除 hash key 方法 -* add 新增 Oss 上传 File 文件方法(感谢 jenn) -* add 增加 excel 导出下拉框功能 -* add 新增 RedisUtils.setObjectIfAbsent 如果不存在则设置方法 - -### 修复问题 - -* fix 修复 用户重名登录报错问题 -* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题 -* fix 修复 用户篡改管理员角色标识符越权问题 -* fix 修复 文件管理 创建人未翻译问题 -* fix 修复 monitor 监控无法展示数据问题 -* fix 修复 更换 satoken dubbo 插件导致包名不一致问题 -* fix 修复 字典缓存注解使用错误问题 -* fix 修复 接口文档未拼接服务路径问题 -* fix 修复 excel 枚举反向解析失败问题 -* fix 修复 查询部门下拉树未过滤数据权限问题 -* fix 修复 CacheName 缓存key存储错误问题 -* fix 修复 oss 列表 用户名回显错误 -* fix 修复 不同vo相同字段mybatis会自动赋值问题 -* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题 -* fix 修复 新增角色使用内置管理员标识符问题 -* fix 修复 token 过期登出无法清理在线用户问题 -* fix 修复 动态设置 token 有效期不生效问题 -* fix 修复 加密模块数据转换异常问题 -* fix 修复 dubbo 更改内部序列化方式 导致异常类无法反序列化问题 -* fix 修复 客户端编辑时授权类型变更未保存的问题 -* fix 修正 缺失 SysClientVoConvert 导致转换异常(感谢 Michelle.Chung) -* fix 修正 auth 模块缺失引用导致解密异常(感谢 Michelle.Chung) -* fix 修复 demo 与 stream-mq 模块缺少 security 依赖问题 -* fix 修复 导入用户数据 变量使用错误问题 -* fix 修复 验证码开关未动态刷新问题 -* fix 修复 自动填充数据 loginUser 为 null(感谢 charles !pr108) -* fix 修复 修复树模板父级编码变量错误 -* fix 修复 部署部分系统出现乱码问题 -* fix 修复 一级菜单无法显示问题 -* fix 修复 新建用户可能会存在的越权行为 -* fix 修复 代码生成页面参数缺少逗号问题 - -### 移除功能 - -* remove 移除原有短信功能(建议使用sms4j) -* remove 移除xxljob功能(建议使用powerjob) - - -## v1.8.0 - 2023-07-11 - -### 重大更新 - -* [重大更新] 新增 sms4j 短信融合框架整合(支持数十种短信厂商接入、发送限制、负载均衡等功能) -* [不兼容更新] 移除 原短信功能(建议使用新 sms4j 功能) -* [重要迁移] 迁移 vue3 前端到主仓库统一维护 - -### 依赖升级 - -* update springboot 2.7.11 => 2.7.13 -* update spring-cloud 2021.0.7 => 2021.0.8 -* update satoken 1.34.0 => 1.35.0.RC -* update easyexcel 3.2.1 => 3.3.1 -* update sms4j 2.2.0 -* update element 2.15.12 => 2.15.13 - -### 功能更新 - -* update 优化 StreamUtils 方法过滤null值 -* update 优化 页签在Firefox浏览器被遮挡 -* update 优化 在全局异常拦截器中增加两类异常处理 -* update 优化 下载zip方法增加遮罩层(感谢@梁剑锋) -* update 优化 用户昵称非空校验 -* update 优化 修改角色如果未绑定用户则无需清理 -* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 -* update 优化 satoken 过期配置 支持多端token自定义有效期 -* update 优化 加密注解注释错误 -* update 优化 切换 maven 仓库到华为云(aliyun 不可用) -* update 优化 excel 导出存在合并项时在初始化类时进行数据的处理避免多次调用(感谢@yueye) -* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 -* update 补全 SysLogininforMapper.xml 缺失字段 -* update 优化 demo 模块 路径适配统一前端 -* update 调整 gateway 访问日志输出等级 - -### 新增功能 - -* add 新增 RedisUtils.setObjectIfAbsent 不存在则设置方法 -* add 新增 Excel 导出附带有下拉框(字典自动导出为下拉框) 可自定义多级下拉框(感谢@Emil.Zhang) -* add 新增 OssClient File 文件上传方法 -* add 增加 RedisUtils 批量删除 hash key 方法 - -### 问题修复 - -* fix 修复 sa-token.check-same-token 开关对网关鉴权无效问题 -* fix 修复 服务未添加 common-security 模块导致异常拦截器不生效问题 -* fix 修复 删除 skywalking dubbo 2.X 插件避免与 3.X 出现兼容性问题 -* fix 修复 excel 枚举反向解析失败问题 -* fix 修复 字典缓存注解使用错误问题 -* fix 修复 新增角色使用内置管理员标识符问题 -* fix 修复 缓存监控图表 支持跟随屏幕大小自适应调整(感谢@抓蛙师) -* fix 修复 防重组件 错删注解问题 -* fix 修复 CacheName 缓存key存储错误问题 -* fix 修复 字典缓存注解使用错误问题 -* fix 修复 用户篡改管理员角色标识符越权问题 -* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 -* fix 修复 OssClient 切换服务 实例不正确问题 -* fix 修复 element ui 因版本而未被工具识别问题(感谢@梁剑锋) -* fix 修复 admin监控 切换tab页需要重复登录问题 -* fix 修复 个人中心tab栏关闭页面内容压缩问题 - -## v2.0.0 - 2023-06-15 - -**重点说明: 由于 SpringCloudAlibaba 一直未发布正式版 导致系统底层组件可能存在些许问题 故而不建议生产使用 框架也将直接开启后续 2.1.0 的开发工作** - -### 重大更新 - -* [不兼容升级] java 版本从 jdk 8 升级到 jdk 17 且需要使用 graalvm 运行(暂时未解决原生jdk存在的问题) -* [不兼容升级] springboot 升级 3.0 版本 -* [不兼容升级] 重构 项目模块结构 采用插件化结构 易扩展易解耦 -* [不兼容升级] com.sun.mail 更改为 jakarta.mail 修改最新写法 -* [不兼容升级] javax.servlet 替换为 jakarta.servlet 更新所有代码 -* [简化性升级] 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) -* [数据库改动] 更新 create_by update_by 字段类型 (保存用户id) -* [数据库改动] 新增 create_dept 字段 (保存创建部门id) -* [不兼容更新] system 模块 所有实体类均使用 bo|vo 规范化 -* [重大更新] 新增 多租户功能设计 整体框架代码结构与数据库更改 -* [重大更新] 新增 mapstruct-plus 替换 BeanUtil 与 BeanCopyUtils 工具 -* [不兼容更新] 重构 登录注解接口与cloud版本统一接口路径 -* [不兼容更新] 重构 BaseMapperPlus接口 去除 `@param Mapper` 泛型 -* [不兼容更新] 移除 vue2 前端工程 全面启用 vue3 -* [重大更新] 新增 vue3 + TS 版本前端(独立仓库后续与Cloud版本共用) -* [重大更新] 增加 websocket 模块 支持token鉴权 支持分布式集群消息同步 -* [重大更新] 框架文档全面翻新 https://plus-doc.dromara.org -* [不兼容更新] 代码生成 支持代码生成多数据源统一存储(主库存储子库的表 无需子库加gen表了) -* [不兼容更新] 重构 将系统内置配置放置到common包内独立加载 不允许用户随意修改 - -### 依赖升级 - -* update java 1.8 => 17 -* update springboot 2.7.7 => 3.0.7 -* update springcloud 2021.0.6 => 2022.0.2 -* update springcloud-alibaba 2022.0.0.0-RC2 -* update springboot-admin 2.7.10 => 3.0.4 -* update springdoc 1.6.14 => 2.1.0 -* udpate dubbo 3.1.8 => 3.2.2 -* update lock4j 2.2.3 => 2.2.4 -* update dynamic-ds 3.5.2 => 3.6.1 -* update easyexcel 3.1.5 => 3.2.1 -* update hutool 5.8.11 => 5.8.18 -* update redisson 3.19.2 => 3.20.1 -* update lombok 1.18.24 => 1.18.26 -* update spring-boot.mybatis 2.2.2 => 3.0.1 -* update mapstruct-plus 1.2.3 -* update maven-compiler-plugin 3.10.1 => 3.11.0 -* update maven-surefire-plugin 3.0.0-M7 => 3.0.0 -* update docker mysql 8.0.31 => 8.0.33 -* update docker nginx 1.22.1 => 1.32.4 -* update docker redis 6.2.7 => 6.2.12 -* update docker minio RELEASE.2023-04-13T03-08-07Z - -### 功能更新 - -* update 适配 AsyncConfig 替换过期继承类改为实现 AsyncConfigurer 接口 -* update 适配 redis 新版本配置文件写法 -* update 适配 获取redis 监控参数接口 替换过期语法 -* update 适配 sa-token 替换新依赖 sa-token-spring-boot3-starter -* update 适配 springboot-admin 改为最新 spring-security 写法 -* update 适配 springdoc 新版本配置方式 -* update 适配 ServletUtils 更换继承 JakartaServletUtil -* update 适配 新序列化注解 -* update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套) -* update 优化 调整 system entity 实体与 controller 包结构 -* update 优化 实体类中校验注解的提示信息 -* update 优化 使用 jdk17 语法优化代码 -* update 优化 所有 properties 文件改为注解启用 -* update 更新 docker 基础镜像 graalvm java17 -* update 优化 用户头像 改为存储 ossId 使用转换模块转为 url 展示 -* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 -* update 优化 登录流程代码注释 -* update 优化 将框架内的swagger命名更改为springdoc命名避免误解 - -### 新增功能 - -* add 新增 flatten-maven-plugin 插件统一版本号管理 -* add 新增 ip2region 实现离线IP地址定位库 - -### 移除功能 - -* remove 移除 BeanCopyUtils 工具类 与 JDK17 不兼容 -* remove 移除 devtools 依赖 并不好用(建议直接用idea自带的热更) -* remove 移除 vue2 前端工程 统一使用 vue3 工程 - -### 修复功能 - -* fix 修复 根据 seata 官方提交记录 临时修复 seata 关于jdk17代理的bug -* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 -* fix 修复 common-core 包使用aop注解 但未添加aop实现类导致单独使用报错问题 - -## v1.7.0 - 2023-05-10 - -### 依赖升级 - -* update springboot 2.7.9 => 2.7.11 修复 DoS 漏洞 修复CVE漏洞 -* update springcloud 2021.0.6 => 2021.0.7 -* update springcloud-alibaba 2021.0.4.0 => 2021.0.5.0 -* update dubbo 3.1.7 => 3.1.10 -* update nacos 2.2.0 => 2.2.1 -* update xxljob 2.3.1 => 2.4.0 -* update minio 升级至最新版 避免低版本信息泄漏问题 -* update hutool 5.8.15 => 5.8.18 -* update redisson 3.20.0 => 3.20.1 -* update lombok 1.18.24 => 1.18.26 - -### 功能更新 - -* update 优化 更改 sys_oss_config 表注释 避免误解 -* update 优化 sys_logininfor 丰富多种信息 -* update 项目正式入驻 dromara 开源社区 更改项目地址 -* update 全新 logo 全新背景图(设计师打造) -* update 优化 代码生成模块的数据同步功能 -* update 修改多团队开发插件,支持多网卡 -* update 修改controller中校验直接返回R.fail -* update 优化 角色sort值一样的排序问题 -* update 更换默认用户头像 -* update 优化 WebFluxUtils.getOriginalRequestUrl 方法获取空路径报错问题 -* update 去除same-token有限期配置,使用默认配置(一天) -* update 优化固定头部页签滚动条被隐藏的问题 -* update delete vue-multiselect style -* update 按代码规范补全重写注解 -* update 优化 极端情况获取LoginUser可能为null问题 -* update 优化 更改系统所有服务日志配置文件命名为 logback-plus.xml 避免与其他框架默认配置冲突 -* update 优化 skywalking-agent 探针日志等级调整为 WARN 减少无用日志输出 -* update 优化 加解密模块 将null判断下推防止任何可能的null出现 -* update 优化 在线用户token获取方式 -* update 优化 用户更改角色 踢掉角色相关所有在线用户 - -### 新功能 - -* add 集成 ip2region 实现离线IP地址定位库 -* add 增加 邮箱验证码发送接口 -* add 增加 邮箱登陆接口 -* add 增加 EncryptUtils 加解密安全工具类 可以处理base64,aes,sm4,sm2,rsa,md5,sha256加解密 -* add 增加 EncryptUtils 类中增加国密sm3的不可逆加密算法 -* add 新增 忽略数据权限写法 防止异常不执行关闭问题 - -### 问题修复 - -* fix 修复 MybatisExceptionHandler 未自动装载问题 -* fix 修复 代码生成 点选按钮不生效问题 -* fix 修复 Nacos 服务 SpringBoot-admin 客户端功能失效问题 -* fix 修复 findInSet 在mysql下方法搜索非数字字段时 无引号报错问题 -* fix 修复 ruoyi-demo postgres 数据库用户名密码变量错误 -* fix 修复 oracle postgres 数据库日志表索引创建错误 -* fix 修复 无法注入 mailProperties 导致 resource 模块无法启动问题 -* fix 修复tab栏”关闭其他“异常的问题 -* fix 修复 加解密拦截器 对象属性为null问题 -* fix 修复 取消oss预览状态修改 图标变化不正常问题 -* fix 修复 nacos 新版本升级后 与 docker 基础镜像系统存在兼容性问题 - - -## v1.6.0 - 2023-03-14 - -### 重大更新 - -[重大更新] add 新增 通用翻译模块 `ruoyi-common-translation` 实现(部门名、字典、oss、用户名) -[重大更新] add 新增 数据加解密模块 `ruoyi-common-encrypt` - - -### 依赖升级 - -* update springboot 2.7.7 => 2.7.9 -* update springcloud 2021.0.5 => 2021.0.6 -* update easyexcel 3.1.5 => 3.2.1 -* update redisson 3.19.1 => 3.20.0 -* update springdoc 1.6.14 => 1.6.15 -* update hutool 5.8.12 => 5.8.15 (13与14有问题勿使用) -* update logstash-sdk 7.1.1 => 7.2 -* update aws-java-sdk-s3 1.12.373 => 1.12.400 -* update tencent-sms 3.1.660 => 3.1.687 -* update skywalking 8.9.1 => 9.3.0 -* update skywalking-agent 8.13.0 => 8.14.0 -* update dubbo 3.1.4 => 3.1.7 解决dubbo报一些无用警告问题 -* update element-ui 2.15.10 => 2.15.12 - -### 功能更新 - -* update 优化 修改 oss 配置页面开关说明 避免造成误解 -* update 优化 `gateway` 对接 `sentinel` 使用网关特定模式 -* update 优化 转移 `logback-common` 配置到 `common-web` 模块 `gateway` 单独处理 -* update 优化 调整连接池默认参数 -* update 优化 `zookeeper` 自带控制台占用 `8080` 端口 -* update 优化 `DictDataMapper` 注解标注过期 推荐使用 `@Translation` 注解 -* update 优化 获取菜单数据权限接口 删除无用角色属性与逻辑 -* update 优化 调整连接池最长生命周期 防止出现警告 -* update 优化 连接池增加 `keepaliveTime` 探活参数 -* update 优化 `DataPermissionHelper` 增加 `开启/关闭` 忽略数据权限功能 -* update 重构 `OssFactory` 加载方式 改为每次比对配置做实例更新 -* update 优化 更新角色后踢掉所有相关的登录用户 用户量过大会导致redis阻塞卡顿(应粉丝要求) -* update 优化 翻译组件 支持返回值泛型 支持多种类型数据翻译(例如: 根据主键翻译成对象) -* update 优化 `tagsView` 右选框,首页不应该存在关闭左侧选项 -* update 优化 `copyright 2023` -* update 优化 日志注解支持排除指定的请求参数 -* update 优化 业务校验优化代码 -* update 优化 日志管理使用索引提升查询性能 -* update 优化 框架时间检索使用时间默认值 `00:00:00 - 23:59:59` -* update 优化 oss 预览使用 `ImagePreview` 组件 -* update 优化 统一登录接口令牌key - - -### 新功能 - -* add 新增 数据加解密模块 测试案例 -* add 新增 `StringUtils` `splitTo` 与 `splitList` 方法 优化业务代码 - -### 问题修复 - -* fix 修复 vue3模板 删除功能书写错误 -* fix 修复 部分服务未开启日志存储 -* fix 修复 接口问题开关不生效问题 -* fix 修复 优化文件下载出现的异常 -* fix 修复 修改密码日志存储明文问题 -* fix 修复 代码生成 `postgreSQL` 查出多余的已删除字段 - -## v1.5.0 - 2023-01-13 - -### 重大更新 - -* [重大更新] 框架主体业务与代码生成器 完成 oracle postgres 多数据库类型支持(中间件不支持) -* [重大更新] 使用 spring 事件发布机制 重构登录日志与操作日志 支持多事件监听无入侵扩展 -* 例如: 可以增加一个监听者将日志上传至ES等存储 对原有逻辑无影响 - -### 依赖升级 - -* update springboot 2.7.6 => 2.7.7 -* update springboot-admin 2.7.7 => 2.7.10 -* update dubbo 3.1.3 => 3.1.4 -* update seata 1.5.2 => 1.6.1 适配升级 -* update nacos 2.1.2 => 2.2.0 适配升级 -* update mybatis-plus 3.5.2 => 3.5.3.1 -* update sa-token 1.33.0 => 1.34.0 -* update springdoc 1.6.13 => 1.6.14 -* update snakeyaml 1.32 => 1.33 -* update easyexcel 3.1.3 => 3.1.5 -* update redisson 3.18.0 => 3.19.1 -* update easy-es 1.1.0 => 1.1.1 -* update hutool 5.8.10 => 5.8.11 -* update aws-s3 1.12.349 => 1.12.373 -* update aliyun-sms 2.0.22 => 2.0.23 -* update tencent-sms 3.1.635 => 3.1.660 -* update echarts 4.9.0 => 5.4.0 - -### 功能更新 - -* update 优化 BaseMapperPlus 使用 MP V3.5.3 新工具类 Db 简化批处理操作实现 -* update 优化 demo服务 过滤健康检查 sql 打印 -* update 优化 代码生成与框架主体使用相同的主键生成器 全局统一避免问题 -* update 优化 系统登录 使用单表查询校验用户 避免多次join查询 -* update 优化 适配框架多数据库支持 完成 oracle postgres 数据库适配(放弃 sqlserver 适配 原因: 基础中间件均不支持) -* update 优化 删除主 sql 内无用数据 -* update 优化 删除 vue3 模板无用参数 -* update 优化 重构 ExcelUtil 全导出方法支持 OutputStream 流导出 不局限于 response -* update 优化 maven 地址切换回 aliyun 仓库 -* update 优化 springdoc 配置鉴权头写死问题 增加持久化鉴权头配置 -* update 优化 actuator 依赖整合到 common-web 模块 -* update 优化 验证码结果使用 spel 引擎自动计算 -* update 优化 数据权限处理器 变量命名错误 -* update 优化 去除 RedisUtils 无用继承 -* update 优化 弹窗内容过多展示不全问题 -* update 优化 删除 fuse 无效选项 maxPatternLength -* update 优化 minio 安装警告 使用新版本参数 -* update 优化 使用 spring 事件发布机制 重构登录日志与操作日志 -* update 优化 使用 spring 事件机制 重构 OssConfig 缓存更新 -* update 优化 单元格合并判断cellValue是否相等方法 -* update 优化 调整 gateway 拦截器执行顺序 优先处理 xss 过滤 然后进行缓存处理 - -### 新功能 - -* add 增加 GET 请求提交日期参数 默认格式化配置 -* add 增加 RedisUtils 检查缓存对象是否存在方法 -* add 增加 oracle postgres docker编排 -* add 新增 代码生成器适配 多数据库可切换生成代码 -* add 新增 oracle postgres 数据库框架sql脚本 -* add 增加 DataBaseHelper 数据库助手 用于适配多类型数据库 -* add 新增 BeanCopyUtils#mapToMap 方法 - -### 问题修复 - -* fix 修复 注册页面 验证码开关不生效问题 -* fix 修复 新版本 dubbo-filter-seata 插件内核与seata不一致问题(临时) -* fix 修复 根据 key 更新参数配置报 null 问题 -* fix 修复 用户注册 用户类型字段书写错误 -* fix 修复 代码生成图片/文件/单选时选择必填无法校验问题 -* fix 修复 修改参数键名时 未移除过期缓存配置 -* fix 修复 内网鉴权 Filter 优先级问题 导致 websocket 连接失败 -* fix 修复 gateway 流控规则生效但不显示问题 -* fix 修复 新版本 Redisson 存在与 boot 2.X 的兼容性问题 - -## v1.4.0 - 2022-12-01 - -### 重大更新 -* [重大更新] 新增 对接 skywalking 全功能(详细看下方新功能列表) -* [重大更新] 重构 ruoyi-nacos 使用官方依赖整合 解决一些问题 并升级 2.1.2 版本 -* [重大更新] 新增 oss 私有库功能(数据库结构改动 需执行升级sql) -* [重大更新] 优化 数据源连接池从 druid 切换到 hikari(原因看文档) -* [重大更新] 新增 对接 prometheus + grafana 全功能(详细看下方新功能列表) - -### 依赖升级 -* update springcloud 2021.0.4 => 2021.0.5 -* update springboot 2.7.4 => 2.7.6 -* update springboot-admin 2.7.5 => 2.7.7 -* update springdoc 1.6.11 => 1.6.13 -* update poi 5.2.2 => 5.2.3 -* update hutool 5.8.6 => 5.8.10 -* update aliyun-sms 2.0.18 => 2.0.22 -* update tencent-sms 3.1.591 => 3.1.611 -* update sa-token 1.30.0 => 1.33.0 -* update redisson 3.17.6 => 3.18.0 -* update easy-es 1.0.2 => 1.1.0 -* update easyexcel 3.1.1 => 3.1.3 -* update lock4j 2.2.2 => 2.2.3 -* update s3-adk 1.12.300 => 1.12.349 -* update sentinel 1.8.5 => 1.8.6 -* update nacos 2.1.1 => 2.1.2 -* update ELK 7.17.2 => 7.17.6 升级镜像版本 -* update nginx 1.21.6 => 1.22.1 修复漏洞 -* update mysql-docker 8.0.29 => 8.0.31 - -### 功能更新 -* update 优化 分页对象 PageQuery 支持多排序 适配 文件管理 页面支持多排序 -* update 优化 获取用户信息getInfo接口 使用缓存数据获取 -* update 优化 rpc文件上传 增加 ossId 数据返回 -* update 优化 nacos 集群模式搭建 关于 nacos.home 注释说明 -* update 优化 修改头像在小屏幕上页面布局错位的问题 -* update 优化 oss 云厂商增加 华为obs关键字 -* update 优化 重置时取消部门选中 -* update 优化 新增返回警告消息提示 -* update 优化 抽取 logback 通用配置 logback-common.xml 简化其他服务日志文件书写 -* update 更改 nacos 配置文件目录 从dev文件夹迁移到nacos文件夹与其他配置区分 -* update 优化 gateway 只缓存body -* update 优化 Dockerfile 创建目录命令简化操作 -* update 优化 gateway filter顺序 与 代码工具封装 -* update 优化 将空 catch 块形参重命名为 ignored -* update 优化 satoken 依赖传递 -* update 优化 重写字典查询 使用本地缓存优化网络开销 提升到上级实现减少rpc调用频率 使用流处理减少字符串操作 -* update 优化 减小腾讯短信引入jar包的体积 -* update 优化 简化一些方法的写法 -* update 优化 消除Vue3控制台出现的警告信息 -* update 优化 忽略不必要的属性数据返回 -* update 优化 重构 mysql-jdbc 依赖到 mybatis 包内 替换为最新坐标 - -### 新功能 -* add 新增 所有服务 docker 部署对接 skywalking -* add 新增 三大 mq 整合 skywalking -* add 新增 seata 整合 skywalking 手动编译 seata 插件包 -* add 新增 ruoyi-common-skylog 整合 skywalking 日志推送 -* add 增加 skywalking docker编排 -* add 增加 ruoyi-seata-server redis模式配置 -* add 新增 ruoyi-common-prometheus 模块 用于对接 prometheus 监控 -* add 新增 docker prometheus + grafana 容器编排 -* add 新增 ruoyi-monitor 监控服务 提供 prometheus http_sd 服务发现功能 -* add 新增 所有服务整合 ruoyi-common-prometheus 模块 -* add 新增 grafana 监控大屏配置文件(框架定制) -* add 新增 使用 mica-metrics 为 undertow 提供健康检查 -* add 新增 字典数据映射翻译注解 -* add 增加 RedisUtils 获取缓存Map的key列表 - -### 问题修复 -* fix 修复 开启账号同端互斥登录 被顶掉后登出报null异常问题 -* fix 修复 设置NameMapper导致队列功能异常问题 -* fix 修复 EnvironmentPostProcessor 不生效问题 -* fix 修复 文件上传组件格式验证问题 -* fix 修复 ruoyi-xxl-job-admin 服务健康检查配置缺失问题 -* fix 修复 Excel导出字典值转换方法由于内部调用缓存不生效bug -* fix 修复 SysOss 方法内部调用导致缓存不生效 bug -* fix 修复 主题颜色在Drawer组件不会加载问题 -* fix 修复 修改用户信息 校验用户名未排除当前用户问题 -* fix 修复 升级 nginx 修复漏洞 https://www.oschina.net/news/214309 -* fix 修复 用户编辑时角色和部门存在无法修改情况 -* fix 修复 RemoteDictServiceImpl 代理对象获取异常bug -* fix 修复 菜单激活无法填充颜色 去除某些svg图标的fill属性 -* fix 修复 使用透明底png图片时, 自动填充黑色背景 -* fix 修复 table中更多按钮切换主题色未生效修复问题 -* fix 修复 dubbo 使用 tri 协议 header 请求头变为小写导致无法获取参数问题 -* fix 修复 DubboRequestFilter 优先级过高导致的 skywalking tid 取不到问题 -* fix 修复 前端脚本乱码问题 -* fix 修复 WebFluxUtils 读取空 body 报 null 问题 -* fix 修复 Log注解GET请求记录不到参数问题 -* fix 修复 某些特性的环境生成代码变乱码TXT文件问题 -* fix 修复 开启TopNav没有子菜单隐藏侧边栏 -* fix 修复 回显数据字典数组异常问题 -* fix 修复 升级 satoken 导致白名单热更不生效问题 -* fix 修复 swagger 版本与 springdoc 版本不一致导致找不到class问题 -* fix 修复 grafana 监控模板绑定数据源ID 导致无法正常读取数据问题 - -## v1.3.0 - 2022-09-29 - -### 重大更新 - -* [重大更新] 新增 ruoyi-nacos 源码集成 nacos 服务端控制台 支持单机/集群模式 -* [重大更新] 重写 spring-cache 实现 更人性化的操作 支持注解指定ttl等一些参数 -* [重大更新] 新增 RuoYi-Cloud-Plus-UI 项目 Vue3 前端分支 -* [重大更新] 移除maven docker插件 过于老旧功能缺陷大 使用idea自带的docker插件替代 -* [重大更新] 优化 ruoyi-common-job 支持通过调度中心服务名注册 xxl-job-admin -* [重大更新] 新增 ruoyi-common-sentinel 模块 支持使用服务名注册 sentinel 控制台 - -### 依赖升级 - -* update spring-cloud 2021.0.3 => 2021.0.4 -* update springboot 2.7.2 => 2.7.4 -* update springboot-admin 2.7.3 => 2.7.5 -* update sentinel 1.8.4 => 1.8.5 集成新 dubbo3 插件 -* update springdoc 1.6.9 => 1.6.11 -* update easy-es 0.9.80 => 1.0.2 -* update dubbo 3.0.10 => 3.1.1 -* update redisson 3.17.5 => 3.17.6 -* update druid 1.2.11 => 1.2.12 -* update hutool 5.8.5 => 5.8.6 -* update dynamic-ds 3.5.1 => 3.5.2 -* update aws-java-sdk-s3 1.12.264 => 1.12.300 -* update aliyun-sms 2.0.16 => 2.0.18 -* update tencent-sms 3.1.555 => 3.1.591 -* update snakeyaml 1.30 => 1.32 - -### 功能更新 - -* update 优化 getLoginId 增加必要参数空校验 -* update 优化 将 elasticsearch 解压后放入 避免造成用户误解 -* update 优化 修改资料头像与部门被覆盖的问题 -* update 优化 字典管理操作类型新增其他 -* update 优化 使用 spring-cache 注解优化缓存 -* update 优化 easy-es.enable=false 关闭 actuator 健康检查 -* update 优化 优化多角色数据权限匹配规则 -* update dubbo 升级 3.1.0 删除自行处理的源码修复 采用官方修复后的代码 -* update 优化 页面内嵌iframe切换tab不刷新数据 -* update 优化 调整 oss表key 与 ossconfig的service 字段长度不匹配 -* update 优化 操作日志密码脱敏 -* update 优化 补全缺失的接口 更改更新日志链接 -* update 优化 插入 SysOperLog 时, 限制 operUrl 属性的长度 -* update 优化 satoken 鉴权拦截器 优化多次校验 - -### 新功能 - -* add 增加 项目中使用到的请求头放行跨域 -* add 新增 获取oss对象元数据方法 -* add 新增 字典管理操作类型 其他 - -### 问题修复 - -* fix 修复 个人中心卡死或鼠标点击和键盘输入无效 -* fix 修复 BaseMapperPlus 方法命令不一致问题 -* fix 修复 图片预览组件src属性为null值控制台报错问 -* fix 修复 短信功能是否启用判断不生效 -* fix 修复 web模块 不引入nacos依赖报错问题 -* fix 修复 sentinel 构建无法读取webapp目录问题 -* fix 修复 菜单管理遗漏的prop属性 -* fix 修复 minio配置https遇到的问题 -* fix 修复 点击删除后点击取消控制台报错问题 -* fix 修复 文件/图片上传组件 第一次上传报错导致后续上传无限loading问题 -* fix 修复 ruoyi-auth 服务与 elasticsearch 端口号冲突问题 -* fix 修复 ruoyi-resource 服务与 elasticsearch 端口号冲突问题 -* fix 修复 角色部门状态字典错误 与 菜单注释错误 -* fix 修复 hutool 存在多版本问题 -* fix 修复 openapi结构体 因springdoc缓存导致多次拼接接口路径问题 -* fix 修复 oss配置删除内部数据id匹配类型问题 -* fix 修复 没有权限的用户编辑部门缺少数据 -* fix 修复 用户导入存在则更新不生效 -* fix 修复 日志转换非json数据导致报错 -* fix 修复 p6spy输出sql语句时间格式化不正确问题 -* fix 修复 不同网段因reset请求头导致下载导出跨域问题 -* fix 修复 在线用户设置永不过期 超时时间-1推送redis无效问题 -* fix 修复 snakeyaml 1.31 依旧存在漏洞 升级 1.32 - -## v1.2.0 - 2022-08-09 - -### 重大更新 - -* [重大更新] 新增 ruoyi-common-elasticsearch 模块 集成 easy-es 傻瓜式操作搜索引擎 -* [重大更新] 新增 ruoyi-common-doc 整合 springdoc 基于 javadoc 实现无注解零入侵生成接口文档 -* [不兼容更新] 移除 swagger 所属 ruoyi-doc ruoyi-common-swagger 两个模块 建议使用 ruoyi-common-doc 模块 - -### 依赖升级 - -* update springboot 2.6.9 => 2.7.2 重构使用最新自动配置方式 -* update springboot-admin 2.6.7 => 2.7.3 -* update dubbo 3.0.9 => 3.0.10 -* update redisson 3.17.4 => 3.17.5 -* update hutool 5.8.3 => 5.8.5 -* update okhttp 4.9.1 => 4.10.0 -* update aws-java-sdk-s3 1.12.248 => 1.12.264 修复依赖安全漏洞 -* update aliyun.sms 2.0.9 => 2.0.16 -* update tencent.sms 3.1.537 => 3.1.555 -* update guava 30.0-jre => 31.1-jre - -### 功能更新 - -* update 修改 资源服务 不提供默认短信 sdk 依赖 -* update 优化表格上右侧工具条(搜索按钮显隐&右侧样式凸出) -* update 优化 前后端多环境部署保持一致 删除无用环境文件 -* update 优化 错误登录锁定与新增解锁功能 -* update 优化字典数据使用store存取 -* update 优化布局设置使用el-drawer抽屉显示 -* update 更新框架文档 专栏与视频 链接地址 -* update 优化 对象上传 主动设置文件公共读 解决天翼云OSS文件私有问题 -* update 优化 网关验证码过滤器 路径匹配改为严格匹配 -* update 优化 数据导致权限生成 SQL 重复问题 - -### 新功能 - -* add 增加 全局跨域过滤器 处理跨域请求 适配移动端访问 -* add 增加 搜索引擎 crud 演示案例 - -### 问题修复 - -* fix 防止date-picker组件报错,降级element-ui版本 -* fix 修复 RedisUtils 并发 set ttl 错误问题 -* fix 防止vue3主键字段名与row或ids一致导致报错的问题 -* fix 修复 幂等组件 逻辑问题导致线程变量未清除 -* fix 修复 图片回显查询 路径错误问题 -* fix 修复 脱敏没有实现类导致返回数据异常问题 -* fix 修复 xxljob 错误导入配置文件引发的问题 -* fix 修复 gateway模块 dockerfile 端口编写错误 -* fix 修复用户导出字典使用错误 -* fix 修复 demo 模块 远程调用失败问题 -* fix 修复 sentinel 控制台未适配 springboot 2.6 新路由策略导致无法登录问题 - -## v1.1.0 - 2022-07-18 - -### 重大更新 - -* [重大更新] 新增 ELK 分布式日志中心整合 -* [重大更新] 新增 ruoyi-stream-mq 演示模块 完成 RabbitMQ RocketMQ Kafka 整合 -* [重大更新] 优化 docker 部署方式 使用 host 模式简化部署流程 降低使用成本 -* [重大更新] 调整 dubbo 服务注册命名空间与 cloud 服务保持一致 通过注册组区分访问服务 -* [安全性] 优化 nginx 限制外网访问内网 actuator 相关路径 建议升级 - -### 依赖升级 - -* update springboot 2.6.8 => 2.6.9 -* update easyexcel 3.1.0 => 3.1.1 -* update hutool 5.8.2 => 5.8.3 -* update redisson 3.17.2 => 3.17.4 -* update aws-java-sdk-s3 1.12.215 => 1.12.248 -* update tencentcloud-sdk-java 3.1.500 => 3.1.537 -* update dubbo 3.0.8 => 3.0.9 -* update seata 1.5.1 => 1.5.2 - -### 功能更新 - -* update 增加 redisson key 前缀配置 -* update 优化 DateColumn 支持单模板多key场景 -* update 优化部署脚本 增加 elk kafka rabbitmq rocketmq 等配置 -* update 修改 oss 客户端自定义域名 统一使用https开关控制协议头 -* update 优化 使用 StreamUtils 简化业务流操纵 -* update 优化 ruoyi-demo 模块 去除用不上的 seata 依赖 -* update 优化 接口文档 接口地址与服务地址不匹配问题 -* update 优化字典数据回显样式下拉框显示值 -* update 默认不启用压缩文件缓存防止node_modules过大 -* update 优化登出方法 - -### 新功能 - -* add 增加 rocketmq docker编排 -* add 新增 rabbitmq docker编排 包含延迟插件 -* add 新增 kafka docker编排 -* add 增加 es ik 分词器插件集成 -* add 增加 StreamUtils 流工具 简化 stream 流操纵 - -### 问题修复 - -* fix 修复 获取 SensitiveService 空问题 增加空兼容 -* fix 修复 演示页面导出路径错误 -* fix 修复 minio 上传自定义域名回显路径错误问题 -* fix 修复 hutool 工具返回不可操纵类型 导致报错问题 -* fix 修复 远程调用短信功能返回实体 SysSms 序列化报错问题 -* fix 修复 复制过程错误 导致演示excel文件损坏问题 -* fix 修复 dubbo 注册组不生效问题 通过覆盖源码方式 -* fix 修复代码生成首字母大写问题 - - -## v1.0.0 - 2022-06-20 - -### 新增/优化 工程模块 - -* add 新增 ruoyi-common-alibaba-bom 工程管理 alibaba 相关依赖 -* add 新增 ruoyi-common-bom 工程管理 ruoyi-common 相关依赖 -* add 新增 ruoyi-api-bom 工程管理 ruoyi-api 依赖项 -* add 新增 ruoyi-api-resource 模块 规范用法 移除 ruoyi-file 模块 -* add 新增 ruoyi-common-web 模块 使用 undertow 替换 tomcat -* add 新增 ruoyi-common-dubbo 整合 dubbo 3.X 实现高性能 rpc 远程调用 替换 feign -* add 新增 ruoyi-common-dict 实现字典多服务调用 -* add 新增 ruoyi-common-loadbalancer 自定义负载均衡模块 用于多团队开发 -* add 新增 ruoyi-common-excel 模块 集成 Alibaba EasyExcel 替换 自带excel实现 -* add 新增 ruoyi-common-oss 模块 支持 AWS S3 协议 分布式文件存储 -* add 新增 ruoyi-common-mail 邮件模块 -* add 新增 ruoyi-common-sms 短信模块 整合 阿里云、腾讯云 短信功能 -* add 新增 ruoyi-common-idempotent 分布式幂等模块 -* add 新增 ruoyi-common-satoken 整合 sa-token 重写所有权限 -* add 新增 ruoyi-xxl-job-admin 整合 xxljob 替换 quartz 支持分布式任务调度 -* add 新增 ruoyi-job 模块 统一远程处理任务 规范用法 -* add 新增 ruoyi-doc 模块 集成 Knife4j 替换 swagger -* add 新增 ruoyi-seata-server 源码集成 Seata 1.5.X 服务端 -* add 新增 ruoyi-sentinel-dashboard 模块 源码集成 sentinel 控制台 -* update 抽取所有公用配置到 maven profile 管理 - -### 代码依赖改动 - -* update SpringCloud 2021.0.3 -* update 适配 SpringCloudAlibaba 2021.0.1.0 全新配置方式 -* update poi 4.1.2 => 5.2.2 性能大幅提升 -* update 重构 整合 jackson 替换 fastjson -* update 重构 整合 redisson 客户端 -* update 重构 整合 mybatis-plus -* update 重写 数据权限实现 基于 mybatis-plus -* add 增加 lombok 优化原生代码 -* add 整合 hutool 优化相关代码 -* add 新增 国际化 功能 -* add 新增 lock4j 分布式锁 -* add 增加监控中心 在线日志监控 优化日志文件格式 -* add 适配 docker 部署方式 - -### 后续/进行中计划 - -* 增加 Vue3 前端工程 -* 应用模块 适配 Oracle、PostgreSQL、SQLServer -* 增加 SpringCloud Stream 支持 -* 适配 Apache Kafka、Apache RocketMQ、RabbitMQ -* 适配 ElasticSearch 分布式搜索引擎 -* 适配 Alibaba Canal 分布式数据同步中心 -* 适配 Apache SkyWalking 分布式链路追踪监控中心 -* 适配 ELK 分布式日志中心 -* 适配 Prometheus、Grafana 分布式全方位数据大屏监控 diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md deleted file mode 100644 index 58c2eda8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/elk.md +++ /dev/null @@ -1,37 +0,0 @@ -# ELK搭建 -- - - -# 环境搭建 - -项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排 - -**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限** - -`chmod 777 /docker/elk/elasticsearch/data`
    -`chmod 777 /docker/elk/elasticsearch/logs`
    -`chmod 777 /docker/elk/elasticsearch/plugins`
    -**注意: es插件需要解压后放入 `plugins` 目录** - -# 运行命令 - -```shell -docker-compose up -d elasticsearch kibana logstash -``` - -# 参考文章 -[docker-compose 搭建 ELK 7.X 并整合 SpringBoot](https://lionli.blog.csdn.net/article/details/125743132) - -# 项目内配置 - -服务引入依赖项 - -```xml - - - com.ruoyi - ruoyi-common-logstash - -``` - -更改主 `pom` 文件 `logstash.address` 地址
    - -![输入图片说明](https://foruda.gitee.com/images/1678981534923588112/ba6cb5b7_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md deleted file mode 100644 index 65d9c4d4..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/es.md +++ /dev/null @@ -1,26 +0,0 @@ -# ES搜索引擎 -- - - -## 环境搭建(如果已经搭建了ELK则跳过) - -项目内置 `ELK` 的 `docker-compose` 编排 可查看 `/docker/docker-compose.yml` 文件下方扩展编排 - -**注意: `/docker/elk/elasticsearch/` 目录下所有文件夹 均需要写权限** - -`chmod 777 /docker/elk/elasticsearch/data`
    -`chmod 777 /docker/elk/elasticsearch/logs`
    -`chmod 777 /docker/elk/elasticsearch/plugins`
    -**注意: es插件需要解压后放入 `plugins` 目录** - -## 运行命令 - -```shell -docker-compose up -d elasticsearch -``` - -## Easy-ES 文档 -[Easy-ES 文档](https://www.easy-es.cn/) - -## 用法 - -基本配置和用法可参考 `ruoyi-demo` 模块 更多高级用法请参考 Easy-ES 文档
    -![输入图片说明](https://foruda.gitee.com/images/1660030085169129908/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md deleted file mode 100644 index 78521431..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/kafka.md +++ /dev/null @@ -1,9 +0,0 @@ -# Kafka搭建 -- - - -## 环境搭建 -参考文章: [docker-compose 安装 Kafka 3.X 附带可视化界面](https://lionli.blog.csdn.net/article/details/125855550) - -## 用法参考 -参考 `ruoyi-stream-mq` 模块内的测试案例 - -![输入图片说明](https://foruda.gitee.com/images/1660031528265343174/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md deleted file mode 100644 index 4b4b4305..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/maxkey.md +++ /dev/null @@ -1,20 +0,0 @@ -# 对接 MaxKey 单点登录 -- - - - -# 安装 MaxKey 应用服务 - -参考 MaxKey 官方文档安装 [MaxKey安装部署](http://www.maxkey.top/doc/docs/intro/) - -# 配置应用 OAuth2.0 认证注册 - -![输入图片说明](https://foruda.gitee.com/images/1693377802128677240/0927270a_1766278.png "屏幕截图") - -# 配置后端服务 - -找到 `Nacos` 内的 `ruoyi-auth.yml` 配置文件 - -修改 `maxkey` 对应的 `client-id` 与 `client-secret` - -![输入图片说明](https://foruda.gitee.com/images/1693378118762354596/2f02c8a3_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1693378168538263792/24476d2a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md deleted file mode 100644 index 18e6aefb..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/nacos.md +++ /dev/null @@ -1,13 +0,0 @@ -# Nacos集群搭建 -- - - -## 集群搭建两种方式 -### 文件寻址集群 -[【RuoYi-Cloud-Plus】学习笔记 02 - Nacos(二)寻址机制之文件寻址分析](https://blog.csdn.net/Michelle_Zhong/article/details/127423521) - -### 地址服务器寻址集群(推荐) -[【RuoYi-Cloud-Plus】学习笔记 03 - Nacos(三)使用 Nginx 实现地址服务器寻址及其原理分析](https://blog.csdn.net/Michelle_Zhong/article/details/127474238) - -## 集群路由代理设置 -[【RuoYi-Cloud-Plus】学习笔记 04 - Nacos(四)使用 Nginx 简单实现 Nacos 集群负载均衡](https://blog.csdn.net/Michelle_Zhong/article/details/127486350) - -设置好代理之后 跟单机用法一致 后端nacos地址写代理 `ip:端口` 即可 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md deleted file mode 100644 index 2df4870b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/prometheus_grafana.md +++ /dev/null @@ -1,45 +0,0 @@ -# Prometheus+Grafana搭建 -- - - -## 基础搭建 - -参考文章: https://lionli.blog.csdn.net/article/details/127959009 - -## 框架内扩展 - -框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 - -```shell -docker-compose up -d prometheus grafana -``` - -## 应用配置 - -各个服务引入 `ruoyi-common-prometheus` 模块 - -![输入图片说明](https://foruda.gitee.com/images/1668998415863943539/413dc560_1766278.png "屏幕截图") - -修改 `prometheus.yml` 配置采集数据源 - -![输入图片说明](https://foruda.gitee.com/images/1668998433756761442/bf31c212_1766278.png "屏幕截图") - -修改 `Nacos` 地址 与 `SpringBoot-Admin` 监控地址 用于数据采集
    -如都为本地应用则无需更改 - -![输入图片说明](https://foruda.gitee.com/images/1668998317973042740/2d3590ec_1766278.png "屏幕截图") - -## 导入框架特制模板 -**注意: 此处数据源名称必须与图片保持一致 不然会和模板对应不上导致无法读取数据**
    -![输入图片说明](https://foruda.gitee.com/images/1669866309495145064/1de987ce_1766278.png "屏幕截图") - -> 找到框架内的特制模板json文件 在grafana点击上传json文件 导入模板
    - -![输入图片说明](https://foruda.gitee.com/images/1668998149634542527/f0881c8e_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1668998179391197847/b1d3a630_1766278.png "屏幕截图") - -## 选择查看监控 - -点击右侧菜单浏览 选择想要查看的监控即可 - -![输入图片说明](https://foruda.gitee.com/images/1668998515814170229/817ac8b0_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1668998567335384306/acdf2833_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1668998616894681785/ac27538b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md deleted file mode 100644 index 75e0187c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rabbitmq.md +++ /dev/null @@ -1,10 +0,0 @@ -# RabbitMQ搭建 -- - - -## 环境搭建 - -参考文章: [docker-compose 安装 RabbitMQ 3.X 附带延迟队列插件](https://lionli.blog.csdn.net/article/details/125855177) - -## 用法参考 -参考 `ruoyi-stream-mq` 模块内的测试案例 - -![输入图片说明](https://foruda.gitee.com/images/1660031371503504748/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md deleted file mode 100644 index 98d50bb7..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/rocketmq.md +++ /dev/null @@ -1,9 +0,0 @@ -# RocketMQ搭建 -- - - -## 环境搭建 -参考文章: [docker-compose 安装 RocketMQ 4.9.X (apache官方镜像) namesrv broker 与可视化控制台 console](https://lionli.blog.csdn.net/article/details/125798865) - -## 用法参考 -参考 `ruoyi-stream-mq` 模块内的测试案例 - -![输入图片说明](https://foruda.gitee.com/images/1660031496623275622/屏幕截图.png "屏幕截图.png") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md deleted file mode 100644 index ebe461bc..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/shardingproxy.md +++ /dev/null @@ -1,75 +0,0 @@ -# Sharding-Proxy搭建分库分表 -- - - - -# 如何使用 - -查看 `ruoyi-demo` 服务 `TestShardingController` - -![输入图片说明](https://foruda.gitee.com/images/1688014028842337522/cd26026a_1766278.png "屏幕截图") - -## 首先在 MySQL 创建两个库 - -创建两个库 `data-center_0` `data-center_1` 分别执行如下SQL - -```sql -CREATE TABLE `t_order_0` ( - `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', - `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', - `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额', - PRIMARY KEY (`order_id`), - KEY `idx_user_id` (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表'; - -CREATE TABLE `t_order_1` ( - `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', - `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', - `total_money` int(10) UNSIGNED NOT NULL COMMENT '订单总金额', - PRIMARY KEY (`order_id`), - KEY `idx_user_id` (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单总表'; - -CREATE TABLE `t_order_item_0` ( - `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID', - `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', - `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', - `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额', - PRIMARY KEY (`order_item_id`), - KEY `idx_order_id` (`order_id`) USING BTREE, - KEY `idx_user_id` (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表'; - -CREATE TABLE `t_order_item_1` ( - `order_item_id` bigint(20) UNSIGNED NOT NULL COMMENT '子订单ID', - `order_id` bigint(20) UNSIGNED NOT NULL COMMENT '主键ID', - `user_id` bigint(20) UNSIGNED NOT NULL COMMENT '用户ID', - `money` int(10) UNSIGNED NOT NULL COMMENT '子订单金额', - PRIMARY KEY (`order_item_id`), - KEY `idx_order_id` (`order_id`) USING BTREE, - KEY `idx_user_id` (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单子表'; - -``` - -## 然后更改配置文件 - -更改 `config-sharding.yaml` 配置文件内的数据库连接地址与用户名密码 - -## 服务搭建 - -参考部署文档上传 docker 文件夹 内部包含 `shardingproxy` 配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1688013921062151295/89652dda_1766278.png "屏幕截图") - -框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 - -```shell -docker-compose up -d shardingproxy -``` - -## 最后运行 demo - -运行 demo 提供的 controller 代码查看数据库内数据即可 - -## 用法参考视频(略有不同 理性观看) - -用法参考视频: https://www.bilibili.com/video/BV1XN411A7Tv/ diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md deleted file mode 100644 index 6ad0aecc..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/extend-function/skywalking.md +++ /dev/null @@ -1,41 +0,0 @@ -# SkyWalking搭建与集成 -- - - -## 服务搭建 -参考文章: [SpringBoot 整合 SkyWalking 8.X (包含 Logback 日志采集)](https://lionli.blog.csdn.net/article/details/127656534) - -框架已经包含了 docker-compose 编排 执行如下命令启动容器即可 - -```shell -docker-compose up -d elasticsearch sky-oap sky-ui -``` - -### 本地开发使用 -参考上方文章 - -### docker部署使用 -上传探针到服务器 `/docker/skywalking/agent` 目录
    -**不要使用网上下载的 请使用框架自带的 内含一些官网没有的插件**
    -![输入图片说明](https://foruda.gitee.com/images/1667453098143152651/f1b4f492_1766278.png "屏幕截图") - -在对应服务的`dockerfile`内 打开 `skywalking` 相关参数注释
    -![输入图片说明](https://foruda.gitee.com/images/1667452514896786032/f4322fb9_1766278.png "屏幕截图") - -服务编排增加探针路径映射
    -![输入图片说明](https://foruda.gitee.com/images/1667453276389844864/7e139aa9_1766278.png "屏幕截图") - - -### 对接日志推送(不推荐 建议使用ELK收集日志) - -框架已经封装好了对应的依赖和配置 在服务内添加如下依赖 - -```xml - - - com.ruoyi - ruoyi-common-skylog - -``` - -在 `logback.xml` 日志配置文件内引入 `skylog` 配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1667452697748002725/a18212cd_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md deleted file mode 100644 index 05db07a3..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/architecture_diagram.md +++ /dev/null @@ -1,3 +0,0 @@ -# 软件架构图 -- - - -![输入图片说明](https://foruda.gitee.com/images/1722569321458793955/8672b1fc_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md deleted file mode 100644 index 569aed75..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/collaboration.md +++ /dev/null @@ -1,27 +0,0 @@ -# 多团队开发 -- - - -## 功能介绍 - -> 多人员/团队开发往往会出现 调试程序 被负载均衡到别人那里 自己抓不到请求等问题
    -> 正确团队开发模式 `测试机一台` 公共服务都放到测试机上
    -> 本地开发人员 需启动 `ruoyi-gateway` 与 其他 调试的业务模块
    -> 将所有服务都统一指向同一个 Nacos 服务
    -> 前端连接本机 `ruoyi-gateway` 网关调试程序
    - -框架提供了 `ruoyi-common-loadbalancer` 多团队 负载均衡模块 可以将网关的请求锁定到与网关相同的IP服务 - -需要在 `ruoyi-gateway` `ruoyi-auth` `ruoyi-modules` 引入 `ruoyi-common-loadbalancer` 模块 - -![输入图片说明](https://foruda.gitee.com/images/1678980590168990366/afa2fdf6_1766278.png "屏幕截图") - -启动前端访问本机 `ruoyi-gateway` 网关在请求转发 和 `dubbo` 进行 RPC 调用时
    -会获取与本机IP地址相同的服务优先调用(如未找到 会随机返回) - -# 重点说明 - -请检查本机是否有虚机网卡IP 如有多网卡获取IP地址会不准确 - -可使用如下代码检查本机IP是否正常 -```java -InetAddress.getLocalHost().getHostAddress() -``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md deleted file mode 100644 index 422aeb9e..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/doc.md +++ /dev/null @@ -1,88 +0,0 @@ -# 接口文档 -- - - -## 版本 >= `1.2.0` -## 说明 -由于 `springfox` 与 `knife4j` 均停止维护 bug众多
    -故从 `1.2.0` 开始 迁移到 `springdoc` 框架
    -基于 `javadoc` 无注解零入侵生成规范的 `openapi` 结构体
    -由于框架自带文档UI功能单一扩展性差 故移除自带UI 建议使用外置文档工具 - -## 文档工具使用 -由于框架采用 `openapi` 行业规范 故市面上大部分的框架均支持 可自行选择
    -例如: `apifox` `apipost` `postman` `torna` `knife4j` 等 根据对应工具的文档接入即可 - -## Swagger升级SpringDoc指南 - -常见功能如下 其他功能自行挖掘
    -**注意: `javadoc` 只能替换基础功能 特殊功能还需要使用注解实现** - -| swagger | springdoc | javadoc | -|----------------------------------|---------------------------------|--------------------| -| @Api(name = "xxx") | @Tag(name = "xxx") | java类注释第一行 | -| @Api(description= "xxx") | @Tag(description= "xxx") | java类注释 | -| @ApiOperation | @Operation | java方法注释 | -| @ApiIgnore | @Hidden | 无 | -| @ApiParam | @Parameter | java方法@param参数注释 | -| @ApiImplicitParam | @Parameter | java方法@param参数注释 | -| @ApiImplicitParams | @Parameters | 多个@param参数注释 | -| @ApiModel | @Schema | java实体类注释 | -| @ApiModelProperty | @Schema | java属性注释 | -| @ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) | 无 | -| @ApiResponse | @ApiResponse | java方法@return返回值注释 | - -# 建议使用 `Apifox`(常见问题有其他对接方式) - -官网连接: [https://www.apifox.cn/](https://www.apifox.cn/)
    -视频教程: [springdoc与apifox配合使用](https://www.bilibili.com/video/BV1mr4y1j75M?p=8&vd_source=8f52c77be3233dbdd1c5e332d4d45bfb) - -![输入图片说明](https://foruda.gitee.com/images/1678976476639902970/f1617b40_1766278.png "屏幕截图") - -支持 文档编写 接口调试 Mock 接口压测 自动化测试 等一系列功能 - -### 接入框架 - -> 1.下载或使用web在线版 创建一个自己的项目
    - -![输入图片说明](https://foruda.gitee.com/images/1678976502850663851/7bbd8728_1766278.png "屏幕截图") - -> 2.进入项目 选择项目设置 找到自动同步
    - -![输入图片说明](https://foruda.gitee.com/images/1678976508918240326/6a4a61a8_1766278.png "屏幕截图") - -> 3.根据项目内所有文档组完成所有数据源创建(拉取后端`openapi`结构体)
    -数据源URL格式 `http://网关ip:端口/服务路径/v3/api-docs`
    -项目内所需:
    -`http://localhost:8080/demo/v3/api-docs` 演示服务
    -`http://localhost:8080/auth/v3/api-docs` 认证服务
    -`http://localhost:8080/resource/v3/api-docs` 资源服务
    -`http://localhost:8080/system/v3/api-docs` 系统服务
    -`http://localhost:8080/code/v3/api-docs` 代码生成服务
    - -![输入图片说明](https://foruda.gitee.com/images/1678980352012289965/24e0e4da_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678980368645148754/62308680_1766278.png "屏幕截图") - -> 4.选择 接口管理 项目概览 点击立即导入 并等待导入完成
    -后续会根据策略每3个小时自动导入一次
    -每次重新进入apifox也会自动同步一次
    -后端有改动也可以手动点击导入
    - -![输入图片说明](https://foruda.gitee.com/images/1678980393851604773/a0c657d3_1766278.png "屏幕截图") - -> 5.(注意版本号)设置鉴权 选择接口管理 项目概览 找到Auth 按照如下配置
    - -**版本号: >= 2.X** - -![输入图片说明](https://foruda.gitee.com/images/1690966897370710566/6a688aea_1766278.png "屏幕截图") - -**版本号: 1.X** - -![输入图片说明](https://foruda.gitee.com/images/1678980398409729963/db4502a0_1766278.png "屏幕截图") - -> key对应项目配置 默认为 `Authorization`
    - -![输入图片说明](https://foruda.gitee.com/images/1678976544342001474/c2ff85d3_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678976549237304743/bcdfadda_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md deleted file mode 100644 index 304d3e04..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/i18n.md +++ /dev/null @@ -1,31 +0,0 @@ -# 国际化方案 -- - - -* 前端国际化参考 [ruoyi前端国际化文档](http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#前端国际化流程)
    -* 参考 `demo` 模块 `TestI18nController` 国际化演示案例 - 在 `Header` 请求头 增加上下文语言参数 `content-language` 参数需与国际化配置文件后缀对应 - 如 `zh_CN` `en_US` 等
    - -![输入图片说明](https://foruda.gitee.com/images/1678976722892396585/60917594_1766278.png "屏幕截图") - -## 获取 `code` 对应国际化内容 - -![输入图片说明](https://foruda.gitee.com/images/1678976728533100954/0ab8e36a_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976733019209506/a16574d6_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976738409745057/a073b425_1766278.png "屏幕截图") - -## 使用 `Validator` 框架校验 `controller` 参数返回国际化 - -`controller` 校验接口参数 需要在类增加 `@Validated` 注解
    -![输入图片说明](https://foruda.gitee.com/images/1678976741834729507/6c19b9cc_1766278.png "屏幕截图")
    -参数对应校验注解 使用 `{code}` 形式标注使用国际化处理
    -![输入图片说明](https://foruda.gitee.com/images/1678976746093285542/ad0989db_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976750822808564/56bd60d7_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976754755107198/b89bf173_1766278.png "屏幕截图") - -## 使用 `Validator` 框架校验 `Bean` 返回国际化 - -`Bean` 校验需要在接口校验 `Bean` 参数使用 `@Validated` 注解
    -![输入图片说明](https://foruda.gitee.com/images/1678976761015767874/729da3bc_1766278.png "屏幕截图")
    -`Bean` 内属性校验注解 使用 `{code}` 形式标注使用国际化处理
    -![输入图片说明](https://foruda.gitee.com/images/1678976765122587920/0b1027af_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976769965314387/0c416ede_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md deleted file mode 100644 index c90d2c61..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/inner_authentication.md +++ /dev/null @@ -1,19 +0,0 @@ -# 内网鉴权 -- - - -## 功能介绍 - -此功能用于防止外部请求访问内部服务应用
    -在请求经过 `gateway网关` 会生成一个 `id-token` 携带到后续服务进行校验
    -若未经过 `gateway网关` 调用内网服务 会出现 `id-token无效` 异常
    -有效防止非法请求直接访问内网服务
    - -## 开启/关闭内网鉴权 - -更改 `application-common.yml` 配置文件的 `sa-token.check-id-token` 配置即可 - -![输入图片说明](https://foruda.gitee.com/images/1678980608778275681/9a2c1054_1766278.png "屏幕截图") - -## 放行内网鉴权 -进入 `ruoyi-common-security` 模块找到 `SecurityConfiguration` 类 增加排除路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1678980612657326393/cea32a8c_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md deleted file mode 100644 index 0d75525b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/new_module.md +++ /dev/null @@ -1,39 +0,0 @@ -# 创建新服务 -- - - -### 最简单的方式 -> 找个配置好的 例如 `ruoyi-system` 直接copy一份 - -> 将 `pom` 名称改掉
    - -![输入图片说明](https://foruda.gitee.com/images/1678980168782983123/c717e9ba_1766278.png "屏幕截图") - -> 服务启动类 名称改掉
    - -![输入图片说明](https://foruda.gitee.com/images/1678980179829877203/f89d5c18_1766278.png "屏幕截图") - -> `application.yml` 配置服务应用名 改掉
    - -![输入图片说明](https://foruda.gitee.com/images/1678980184047648028/e4c6c6cc_1766278.png "屏幕截图") - -> `nacos` 新建一份新的 对应新模块名称的 配置文件
    -![输入图片说明](https://foruda.gitee.com/images/1678980188806372269/cfd9731a_1766278.png "屏幕截图") - -更改 `nacos` 上的 `ruoyi-gateway.yml` 增加新服务路由
    -新服务访问路径 `网关ip:端口/服务路径/controller路径/接口路径`
    -例子: `http://localhost:8080/system/user/list`
    - -![输入图片说明](https://foruda.gitee.com/images/1666861595048863422/9e9755b3_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1666861629037264535/bdfd5484_1766278.png "屏幕截图") - -### 注意事项 -如果是两个不同包名的模块 需要修改如下配置 - -![输入图片说明](https://foruda.gitee.com/images/1719813861680271619/82435586_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1692006501957936219/059f8526_1766278.png "屏幕截图") - -如果新服务需要使用 `seata` 分布式事务
    -需要在 `nacos` 上的 `seata-server.properties` 文件内增加服务组 - -![输入图片说明](https://foruda.gitee.com/images/1692006825427360840/5b9e410c_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md deleted file mode 100644 index 2dcab848..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_package_name.md +++ /dev/null @@ -1,33 +0,0 @@ -# 关于修改包名 -- - - - -**注意: 老包名为 com.ruoyi** - -## 1.随便找个地方新建 org.dromara 包 -![输入图片说明](https://foruda.gitee.com/images/1708491220807198688/b95c0c34_1766278.png "屏幕截图") - -## 2.在包上右键选择 refactor -> rename 选择 All Directories -![输入图片说明](https://foruda.gitee.com/images/1683276891079076405/79808b22_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1708491697128844860/1e87ad39_1766278.png "屏幕截图") - -**因为dromara组织下有很多依赖导致idea无法识别完整包名** -
    -![输入图片说明](https://foruda.gitee.com/images/1708490576909691001/692e5b37_1766278.png "屏幕截图") - -**需要先将dromara修改为 例如: ruoyi 然后重复上述步骤 这样就可以整包修改了** -
    -![输入图片说明](https://foruda.gitee.com/images/1708490906933084793/ff104cd7_1766278.png "屏幕截图") - -## 3.使用IDEA全局替换 org.dromara 替换为 com.xxx - -![输入图片说明](https://foruda.gitee.com/images/1708491055347995519/dedda0d1_1766278.png "屏幕截图") - -**注意: 由于dromara组织下项目很多 非本框架的依赖模块 请勿修改 例如上图中的 org.dromara.sms4j** - -## 4.如有需要 将所有模块名逐一修改即可 - -## 5.修改完成后需查看所有common包下模块spi文件是否修改正确 - -**老版本idea或者未按照教程修改包名可能导致文件丢包问题** - -![输入图片说明](https://foruda.gitee.com/images/1708491365841192006/8bc337c2_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md deleted file mode 100644 index d36012f5..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/association/update_url.md +++ /dev/null @@ -1,25 +0,0 @@ -# 修改应用路径 -- - - -# 修改访问后端接口路径 - -更改 前端环境配置文件 `VITE_APP_BASE_API` 代理路径 - -![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图")
    - -![输入图片说明](https://foruda.gitee.com/images/1724317552931269967/f7515655_1766278.png "屏幕截图") - -`prod` 生产环境需修改 `nginx.conf` 后端代理路径(上述配置文件也要改) - -![输入图片说明](https://foruda.gitee.com/images/1678980501204821424/d3340308_1766278.png "屏幕截图") - -# 修改前端页面访问路径 -修改对应环境的 `.env.环境` 文件内的 `VITE_APP_CONTEXT_PATH` 应用访问路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1724317049535973756/0a2cc43b_1766278.png "屏幕截图") - -生产环境 `nginx.conf` 与之对应修改即可
    -**注意: 文件真实目录为 `/usr/share/nginx/html/admin/index.html` 此功能一般为多项目部署需要 故会增加一层目录 如不需要可以自行修改**
    - -![输入图片说明](https://foruda.gitee.com/images/1678976662194341301/2720b7e9_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md deleted file mode 100644 index 66ae32a9..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/client.md +++ /dev/null @@ -1,85 +0,0 @@ -# 客户端管理功能 -- - - -## 版本 >= 2.X - -## 客户端管理页面 - -![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图") - -### 客户端管理字段说明 -| 字段名称 | 取值说明 | 注意事项 | -|----------------|----------------------------|--------------------------------| -| 客户端id | 由后端生成,用于前端登录校验以及接口数据加密 | 无法修改,不要删除默认数据,否则会报错 | -| 客户端key | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | -| 客户端秘钥 | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | -| 授权类型 | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式 | -| 设备类型 | PC端、APP端 | | -| Token活跃超时时间 | 自定义 | 指定时间无操作则过期(单位:秒),默认30分钟(1800秒) | -| Token固定超时时间 | 自定义 | 指定时间必定过期(单位:秒),默认七天(604800秒) | - -### 前后端使用新的客户端id - -步骤如下: -1. 前端管理页面生成新的客户端id。 -2. 将新的客户端id复制到前端配置文件。 - -![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图") - -## 新增自定义客户端 - -### 步骤一:新增客户端数据(例如增加小程序端) - -![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图") - -### 步骤二:配置前端请求头信息 - -需要在全局请求头 header 中增加 cientid
    -确保客户端所有请求都携带此id 可参考项目 `request.ts` - -![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图") - -`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。 - -**重点:不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)** - -## 新增自定义登录方式授权类型 - -**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可** - -如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md) - -### 步骤一:新增字典数据 - -![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图") - -### 步骤二:新增/修改客户端数据 - -### 步骤三:后端新增认证策略 - -新增策略实现类实现 `IAuthStrategy` 接口。
    - -![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图") - -参照已有策略实现类实现自定义参数校验登录方法逻辑。
    - -![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图") - -**注意修改 `@Service` 名称保证规范性** - -![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图") - -`LoginBody` 校验参数(可自定义)
    - -![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图") - -例如 扩展小程序登录参数 只需要继承 `LoginBody
    - -![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")` - -校验分组(可自定义)
    - -![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md deleted file mode 100644 index 742ef939..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/code_generate.md +++ /dev/null @@ -1,86 +0,0 @@ -# 代码生成 -- - - -## 功能介绍 - -### 数据源配置 - -![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图") - -**项目适配多种类型数据库 可以在代码生成页面切换**
    - -> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源
    - -![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图") - -**>= 2.2.1版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**
    - -![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图") - - -### 导入数据表 - -> 点击导入按钮 会加载系统数据库所有的表
    - -![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图") - -> 选择需要的表 点击确定即可
    - -![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图") - -### 编辑表生成结构 - -> 点击表对应的编辑按钮
    - -![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图") - -> 更改要生成表的数据
    - -![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图") - -### 生成条件影响 - -![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图") - - -* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段 -* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段 -* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件 -* `查询方式` 影响生成查询条件的类型 -* `必填` 影响 BO 类 与 页面是否强制校验 -* `显示类型` 影响生成页面使用何种展示组件 -* `字典类型` 影响页面是否生成与字典的关联 - -### 树表配置 - -> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可
    - -![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图") - -### 主子表说明 - -框架不支持也不推荐使用主子表
    -原因一般业务场景 基本都是一对N表 多表关联场景
    -还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现
    -另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景
    -所以建议大家都按照 单表生成 自行编写业务逻辑 - -### 预览功能 - -> 配置好生成信息后 可以点击预览按钮
    - -![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图") - -> 系统会根据已经配置好的数据 生成对应的代码预览
    -> 可以再此处观察代码的生成结构和数据是否正确等
    - -![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图") - - -### 代码结构同步 - -> 实际开发中 难免会有表结构更改的需求
    -> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步
    - -![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md deleted file mode 100644 index fa901792..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/export.md +++ /dev/null @@ -1,250 +0,0 @@ -# 导出功能 - -- - - - -在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导出操作(即写 Excel)。 - -[EasyExcel 文档地址](https://easyexcel.opensource.alibaba.com/) - -## 导出功能使用流程说明 - -### 步骤一:定义导出实体对象 - -以框架中 `SysUserExportVo` 为例: - -```Java - /** - * 用户ID - */ - @ExcelProperty(value = "用户序号") - private Long userId; - - // ....................... - - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; - - /** - * 帐号状态(0正常 1停用) - */ - @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_normal_disable") - private String status; -``` - -> 说明:
    -> 1. 使用 `@ExcelProperty` 注解标注需要导出的属性。 -> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 -> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 - -### 步骤二:使用导出方法 - -以框架中 `SysUserController#export` 方法为例: - -```Java - /** - * 导出用户列表 - */ - @PostMapping("/export") - public void export(SysUserBo user, HttpServletResponse response) { - // 根据参数查询导出的用户列表数据 - List list = userService.selectUserList(user); - // 将列表转换为导出对象列表 - List listVo = MapstructUtils.convert(list, SysUserExportVo.class); - // 导出方法 - ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); - } -``` - -> 说明:
    -> 使用 `ExcelUtil.exportExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导出对象集合,Excel sheet 表名称,导出对象类型,response。 - -## 框架工具使用说明 - -### 1:字典转换器 - -字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 - -使用方式一: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; -``` - -使用方式二: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") - private String sex; -``` - -`@ExcelDictFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|------------------|--------|-----|-----------------------------------| -| dictType | String | "" | 字典的type值 (如: sys_user_sex) | -| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | -| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | - -### 2:枚举转换器 - -字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 - -使用方式: - -```Java - /** - * 用户类型 - *

    - * 使用ExcelEnumFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) - @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") - private String userStatus; -``` - -`@ExcelEnumFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|-----------|------------|------|------------------------------| -| enumClass | Enum Class | - | 字典枚举类型 | -| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | -| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | - -### 3:合并单元格 - -`@CellMerge` 注解用于合并相同的列数据,需要结合 `CellMergeStrategy` 策略使用,标注在需要转换的属性上。 - -使用方式: - -步骤一:在属性标注 `@CellMerge` 注解: -```Java - /** - * 部门id - */ - @CellMerge - @ExcelProperty(value = "部门id") - private Long deptId; -``` - -`@CellMerge` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|---------|----------|-----|------------------------------| -| index | int | -1 | 合并列的下标,建议使用默认值 | -| mergeBy | String[] | {} | 合并需要依赖的其他字段名称(基于这个字段内容做合并条件) | - - -步骤二:导出方法开启合并: -```Java - /** - * 导出测试单表列表 - */ - @PostMapping("/export") - public void export(@Validated TestDemoBo bo, HttpServletResponse response) { - List list = testDemoService.queryList(bo); - // 参数 true 表示开启合并单元格策略 - ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, true, response); - } -``` -![输入图片说明](https://foruda.gitee.com/images/1700128921644543994/e8d4704f_1766278.png "屏幕截图") - -### 4:复杂 Excel 导出示例 -`TestExcelController` 提供了几种导出示例,如果需要可以参照相应方法进行导出。 - -#### 4.1:单列表多数据导出(模板导出) - -模板内容: - -![输入图片说明](https://foruda.gitee.com/images/1700124852002972562/d9f57a8c_4959041.png "屏幕截图") - -模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/` - -导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700124885532359879/0d011d05_4959041.png "屏幕截图") - -#### 4.2:多列表多数据导出(模板导出) - -模板内容: - -![输入图片说明](https://foruda.gitee.com/images/1700125025931981176/105dbaaa_4959041.png "屏幕截图") - -模板位置:`ruoyi-example/ruoyi-demo/src/main/resources/excel/` - -导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700125054011300002/71869c1d_4959041.png "屏幕截图") - -#### 4.3:导出下拉框 - -`ExcelDictFormat` 注解指定的字典项默认都会转换成下拉框 - -自定义导出省市区下拉框示例代码:参考 demo 模块 `TestExcelController` - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700125265411678973/7f767719_4959041.png "屏幕截图") - -## Easy Excel 常用注解 - -`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解,自定义注解会结合转换器一起进行说明。 - -| 类型 | 注解名称 | 使用举例 | 说明 | -|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| -| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | -| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | -| 样式注解 | @ColumnWidth | @ColumnWidth(value=值) | 设置列宽 | -| 样式注解 | @ContentFontStyle | @ContentFontStyle(color=颜色) | 可以设置字体类型,颜色,粗细,是否斜体,下划线等,具体可查看注解 `@ContentFontStyle` | -| 样式注解 | @ContentLoopMerge | @ContentLoopMerge(eachRow=行值, columnExtend=列值) | 设置循环合并的区域 | -| 样式注解 | @ContentRowHeight | @ContentRowHeight(value=值) | 设置内容行高 | -| 样式注解 | @ContentStyle | - | 设置单元格样式,具体可查看注解 `@ContentStyle` | -| 样式注解 | @HeadFontStyle | @HeadFontStyle(color=颜色) | 设置表头字体格式,类似 `@ContentFontStyle`,具体可查看注解 `@HeadFontStyle` | -| 样式注解 | @HeadRowHeight | @HeadRowHeight(value=值) | 设置表头行高 | -| 样式注解 | @HeadStyle | - | 设置表头样式,具体可查看注解 `@HeadStyle` | -| 样式注解 | @OnceAbsoluteMerge | @OnceAbsoluteMerge(firstRowIndex=开始行下标, lastRowIndex=结束行下标, firstColumnIndex=开始列下标, lastColumnIndex=结束列下标) | 根据设置值合并单元格 | -| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | -| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | -| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | - -## 扩展说明 - -### 自定义转换器实现 - -由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 -以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 - -字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 - -_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ - -#### 实现方式 - -自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") - -转换方法 `ExcelDictConvert#convertToExcelData` : - -![输入图片说明](https://foruda.gitee.com/images/1700104426131801297/72931ef0_4959041.png "屏幕截图") - -## 更多功能 - -更多导出功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/api/write)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md deleted file mode 100644 index f1bbca7d..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/import.md +++ /dev/null @@ -1,202 +0,0 @@ -# 导入功能 -- - - - -在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导入操作(即读 Excel)。 - -## 导入功能使用流程说明 - -### 步骤一:定义导入实体对象 - -以框架中 `SysUserImportVo` 为例: - -```java - /** - * 用户ID - */ - @ExcelProperty(value = "用户序号") - private Long userId; - - // ....................... - - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; - - /** - * 帐号状态(0正常 1停用) - */ - @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_normal_disable") - private String status; -``` - -> 说明:
    -> 1. 使用 `@ExcelProperty` 注解标注需要导入的属性。 -> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 -> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 -> 4. 对象禁止使用链式注解 `@Accessors(chain = true)`,会找不到set方法。 - -### 步骤二:使用导入方法 - -以框架中 `SysUserController#importData` 方法为例: - -```Java - /** - * 导入数据 - * - * @param file 导入文件 - * @param updateSupport 是否更新已存在数据 - */ - @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @SaCheckPermission("system:user:import") - @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { - // 导入方法 - ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); - return R.ok(result.getAnalysis()); - } -``` -> 说明:
    -> 使用 `ExcelUtil.importExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导入文件流,导入对象类型,导入监听器 `SysUserImportListener`。 - -## 框架工具使用说明 - -### 1:字典转换器 - -字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 - -使用方式一: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; -``` - -使用方式二: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") - private String sex; -``` - -`@ExcelDictFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|------------------|--------|-----|-----------------------------------| -| dictType | String | "" | 字典的type值 (如: sys_user_sex) | -| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | -| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | - -### 2:枚举转换器 - -字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 - -使用方式: - -```Java - /** - * 用户类型 - *

    - * 使用ExcelEnumFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) - @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") - private String userStatus; -``` - -`@ExcelEnumFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|-----------|------------|------|------------------------------| -| enumClass | Enum Class | - | 字典枚举类型 | -| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | -| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | - - -### 3:导入监听器 - -#### 3.1:ExcelListener 监听器接口 - -`ExcelListener` 扩展了 `ReadListener` 接口,增加了获取结果方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700181723794469524/99bf83c9_4959041.png "屏幕截图") - -#### 3.2:DefaultExcelListener 默认监听器 - -`DefaultExcelListener` 默认监听器在读 Excel 时调用,主要对数据进行校验、解析、异常处理、返回结果等。导入操作时如果没有特别指定则使用该监听器。 - -#### 3.3:SysUserImportListener 用户导入监听器 - -`SysUserImportListener` 用户导入监听器是在用户导入时调用的监听器。 - -该监听器重写了 `invoke` 反射接口,对导入的用户数据进行了校验;重写了 `getExcelResult` 获取结果接口,返回结果数据。 - -#### 3.4:ExportDemoListener 带下拉框的导入监听器 - -`ExportDemoListener` 是对带有下拉框的 Excel 进行处理的导入监听器。 - -## Easy Excel 常用注解 - -`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解。 - -| 类型 | 注解名称 | 使用举例 | 说明 | -|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| -| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | -| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | -| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | -| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | -| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | - -## 扩展使用 - -### 扩展一:自定义转换器实现 - -由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 -以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 - -字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 - -_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ - -#### 实现方式 - -自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") - -转换方法 `ExcelDictConvert#convertToJavaData` : - -![输入图片说明](https://foruda.gitee.com/images/1700182975516396213/d3c020f9_4959041.png "屏幕截图") - -### 扩展二:自定义监听器实现 - -自定义监听器主要用于在读取解析 Excel 数据时进行自定义操作。 -以下以框架中的用户导入监听器 `SysUserImportListener` 为例进行说明。 - -#### 实现方式 -1. 继承分析事件监听器 `AnalysisEventListener` 以及实现 Excel 监听器 `ExcelListener`。 - -![输入图片说明](https://foruda.gitee.com/images/1700184652693497753/09333dac_4959041.png "屏幕截图") - -2. 显示使用构造函数,否则将导致空指针。 - -![输入图片说明](https://foruda.gitee.com/images/1700184759075616584/cf05b0ed_4959041.png "屏幕截图") - -3. 实现 `invoke` 方法,对数据进行解析操作,可以在此方法对数据进行合法性判断。 - -4. 实现 `getExcelResult` 方法,对结果进行操作,例如返回成功、失败的统计数据。 - -## 更多功能 - -更多导入功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md deleted file mode 100644 index 4cb42769..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/oss.md +++ /dev/null @@ -1,124 +0,0 @@ -# 关于OSS模块使用 -- - - -## 重点注意事项 - -`桶/存储区域` 系统会根据配置自行创建分配权限
    -~~如手动配置需要设置 `公有读` 权限 否则文件无法访问~~(`aliyun` 还需开通跨域配置)
    -1.4.0 版本支持配置`公有/私有`权限(`aliyun` 还需开通跨域配置)
    -访问站点 后严禁携带其他 `url` 例如: `/`, `/ruoyi` 等
    -**阿里云与腾讯云SDK访问站点中不能包含桶名 系统会自动处理**
    -**minio 站点不允许使用 localhost 请使用 127.0.0.1**
    -**访问站点与自定义域名 都不要包含 `http` `https` 前缀 设置`https`请使用选项处理** - -## 代码使用 - -> 参考 `SysOssService.upload` 用法
    -> 使用 `OssFactory.instance()` 获取当前启用的 `OssClient` 实例
    -> 进行功能调用 获取返回值后 存储到对应的业务表 - -![输入图片说明](https://foruda.gitee.com/images/1678978345529639839/d350ec0b_1766278.png "屏幕截图") - - -## 功能配置 - -### 配置OSS - -> 进入 `系统管理 -> 文件管理 -> 配置管理` 填写对应的OSS服务相关配置
    - -![输入图片说明](https://foruda.gitee.com/images/1678978349820700551/1f91a237_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978354387669856/3a91a3a9_1766278.png "屏幕截图")
    **重点说明** - -> 云厂商只需修改 `访问站点`对应的域 切勿乱改(云厂商强烈建议绑定自定义域名使用 七牛云必须绑定[官方规定])
    - -![输入图片说明](https://foruda.gitee.com/images/1678978362358100362/5c2c4d20_1766278.png "屏幕截图") - -> 七牛云 访问站点
    - - -![输入图片说明](https://foruda.gitee.com/images/1678978366254745764/e93a65ff_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978369853348732/79e8950e_1766278.png "屏幕截图") - -> 阿里云 访问站点 - -![输入图片说明](https://foruda.gitee.com/images/1678978373981462025/56a70398_1766278.png "屏幕截图") - -> 腾讯云 访问站点 - -![输入图片说明](https://foruda.gitee.com/images/1678978378697093134/785517f3_1766278.png "屏幕截图") - -### MinIO 使用 https访问站点 - -**注意:S3 API 签名计算算法不支持托管 MinIO Server API 的代理方案** - -[ minio https 配置方式](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) - -### 切换OSS - -> 再配置列表点击 `状态` 按钮开启即可(注意: 只能开启一个OSS默认配置)
    -> 手动使用 `OssFactory.instance("configKey")`
    - -![输入图片说明](https://foruda.gitee.com/images/1678978383700118702/7f3fa0c5_1766278.png "屏幕截图") - -### 扩展分类 - -> 如有文件分类 建议创建多个 oss配置 进行切换存储
    - -例如: 创建一个 图片存储的 oss配置
    -指定唯一的 `configKey` 与 `前缀目录` 或 直接使用独立的`桶`
    -独立桶的特点 可以自定义访问权限
    -例如: 创建一个私有文件存储桶 不对外开放
    - -![输入图片说明](https://foruda.gitee.com/images/1678978389139754119/140be1df_1766278.png "屏幕截图") - -> 指定需要使用的配置
    -> 使用 `OssFactory.instance("image")` 获取的 `OssClient` 会加载上图的配置 从而达到上传不同的目录或桶 - - -![输入图片说明](https://foruda.gitee.com/images/1678978397550123641/1b536881_1766278.png "屏幕截图") - - -### 上传图片或文件 - -> 进入 `系统管理 -> 文件管理` 点击 `上传文件` 或 `上传图片` 根据选项选择即可 会对应上传到配置开启的OSS内
    - -![输入图片说明](https://foruda.gitee.com/images/1678978401028132972/445d058e_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978404388284503/5459da29_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978408761764835/c81651fc_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978412748494539/7bae621f_1766278.png "屏幕截图") - -### 列表展示 - -> 默认展示图片(可预览) 文件会展示路径
    - -![输入图片说明](https://foruda.gitee.com/images/1678978416327601385/af1ecb3b_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978422249633007/19d68eaa_1766278.png "屏幕截图") - -> 可以点击 `预览禁用启用` 按钮对是否展示进行更改 - -![输入图片说明](https://foruda.gitee.com/images/1678978426017014926/4f7fa3f3_1766278.png "屏幕截图") - -> 点击禁用后 图片会变成路径展示 - -![输入图片说明](https://foruda.gitee.com/images/1678978429692592556/0231d778_1766278.png "屏幕截图") - -> 也可再 `参数设置` 更改预览状态 将 `OSS预览列表资源` 改为 `false` 即可关闭预览 - -![输入图片说明](https://foruda.gitee.com/images/1678978433769403801/7d480e76_1766278.png "屏幕截图") - -### 删除功能 - -> 点击列表上方或后方 `删除` 按钮 会根据OSS服务商类型 调用对应的删除(注意: 需确保对应的服务商配置正确)
    -> 可勾选多服务商类型的文件进行删除 系统会自动判断 - -![输入图片说明](https://foruda.gitee.com/images/1678978438265941745/f32edc72_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678978441938542080/43ed7c3d_1766278.png "屏幕截图") - -### 下载功能 - -> 点击列表后方对应资源的 `下载` 按钮 根据需求填写文件名 点击确认即可完成下载 - -![输入图片说明](https://foruda.gitee.com/images/1678978448927336261/409af888_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678978452761792483/ed0a4a72_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md deleted file mode 100644 index 2aafe47b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/page.md +++ /dev/null @@ -1,29 +0,0 @@ -# 分页功能 -- - - - -## 重点说明 - -> 项目使用 `mybatis-plus` 分页插件 实现分页功能 大致用法与 MP 一致 [MP分页文档](https://baomidou.com/pages/97710a/)
    -> 项目已配置分页合理化 页数溢出 例如: 一共5页 查了第6页 默认返回第一页
    - -![输入图片说明](https://foruda.gitee.com/images/1678977804058241635/b5cb362d_1766278.png "屏幕截图") - -## 代码用法 - -> `Controller` 使用 `PageQuery` 接收分页参数 具体参数参考 `PageQuery` - -![输入图片说明](https://foruda.gitee.com/images/1678977844048821356/1f994221_1766278.png "屏幕截图") - -> 构建 `Mybatis-Plus` 分页对象
    -> 使用 `PageQuery#build()` 方法 可快速(基于当前对象数据)构建 `MP` 分页对象 - -![输入图片说明](https://foruda.gitee.com/images/1678977862816976499/b82c1638_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678977876194578744/eaa7b854_1766278.png "屏幕截图")
    - -具体用法与 `MP` 一致 - -> 自定义 `SQL` 方法分页
    -> 只需在 `Mapper` 方法第一个参数和返回值 重点: 第一个参数 标注分页对象 - -![输入图片说明](https://foruda.gitee.com/images/1678977898181729571/6e102731_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678977906788451483/70979292_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md deleted file mode 100644 index 95ee19d8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/param_check.md +++ /dev/null @@ -1,158 +0,0 @@ -# 参数校验 -- - - - -参数校验在日常开发中十分常见,在本框架中引入了 `spring-boot-starter-validation` 依赖,底层基于 `hibernate-validator`,可以对参数进行校验。 - -## 参数校验使用 - -### 方法一:使用 `@Validated` 注解 - -#### 步骤一:标注 `@Validated` - -`@Validated` 可以标注在类上,或者是参数前。 - -```Java -/** 标注在类上 **/ -@Validated -@RestController -@RequestMapping("/auth") -public class AuthController { - - @PostMapping("/login") - public R login(@RequestBody LoginBody body) { - // ... - } - -} -``` - -```Java -/** 标注在参数前 **/ -@PostMapping -public R add(@Validated @RequestBody SysUserBo user) { - // ... -} -``` - -#### 步骤二:标注校验注解 - -在参数中加入校验注解。 - -```Java -public class SysUserBo { - - @NotBlank(message = "用户账号不能为空") - @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") - private String userName; - - @NotBlank(message = "用户昵称不能为空") - @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") - private String nickName; - - @Email(message = "邮箱格式不正确") - @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") - private String email; - -} -``` - -常见校验注解见文末附表。 - -_注:message 支持 EL 表达式,{max} 直接读取前面的参数值。_ - -### 方法二:使用校验工具类 `ValidatorUtils` - -`org.dromara.common.core.utils.ValidatorUtils` - -![输入图片说明](https://foruda.gitee.com/images/1700050047426137432/206bd032_4959041.png "屏幕截图") - -使用方式 1:校验所有带有校验注解的属性 - -```Java -// 校验所有带有校验注解的属性 -ValidatorUtils.validate(object); -``` - -使用方式 2:按照分组校验属性(可以传多个分组) - -```Java -// 按照分组校验属性(可以传多个分组) -ValidatorUtils.validate(object, group); -``` - -## 扩展使用 - -### 扩展一:自定义校验注解 - -除了已有的校验注解以外,可以结合业务进行自定义。 - -以框架中的 `@Xss` 注解为例进行说明。 - -```Java -@Xss(message = "用户账号不能包含脚本字符") -@NotBlank(message = "用户账号不能为空") -@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") -private String userName; -``` - -#### 1:新增 `@Xss` 注解 - -`org.dromara.common.core.xss.Xss` - -![输入图片说明](https://foruda.gitee.com/images/1700048074014527096/b4e230c2_4959041.png "屏幕截图") - -#### 2:自定义校验器 - -自定义校验器实现 `jakarta.validation.ConstraintValidator` 接口。 - -`org.dromara.common.core.xss.XssValidator` - -![输入图片说明](https://foruda.gitee.com/images/1700048474563719650/f9172bdc_4959041.png "屏幕截图") - -### 扩展二:自定义分组校验 - -同一个对象在不同的请求中需要校验的参数不同,则可以使用分组校验。 - -#### 1:自定义分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049439236073123/9e0d2e16_4959041.png "屏幕截图") - -#### 2:`@Validated` 注解指定分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049302803077030/c2a985aa_4959041.png "屏幕截图") - -#### 3:校验注解中指定分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049205699437759/96babbd6_4959041.png "屏幕截图") - -## 附录:常用校验注解 - -| 注解 | 使用(只列举特殊参数值) | 参数类型 | 说明 | -|------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| -| @AssertFalse | @AssertFalse | boolean / Boolean | 元素值必须为 false | -| @AssertTrue | @AssertTrue | boolean / Boolean | 元素值必须为 true | -| @DecimalMax | @DecimalMax(value=值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | -| @DecimalMin | @DecimalMin(value=值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | -| @Digits | @Digits(integer=整数位值, fraction=小数位值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须符合整数位以及小数位范围值 | -| @Email | @Email(regexp=正则表达式, flags=标志) | CharSequence | 元素是否符合正则表达式(正则表达式非必传) | -| @Future | @Future | - java.util.Date
    - java.util.Calendar
    - java.time.Instant
    - java.time.LocalDate
    - java.time.LocalDateTime
    - java.time.LocalTime
    - java.time.MonthDay
    - java.time.OffsetDateTime
    - java.time.OffsetTime
    - java.time.Year
    - java.time.YearMonth
    - java.time.ZonedDateTime
    - java.time.chrono.HijrahDate
    - java.time.chrono.JapaneseDate
    - java.time.chrono.MinguoDate
    - java.time.chrono.ThaiBuddhistDate | 元素必须是未来的时刻、日期或时间 | -| @FutureOrPresent | @FutureOrPresent | 同 @Future | 元素必须是当前或未来的时刻、日期或时间 | -| @Length | @Length(min=最小值, max=最大值) | - CharSequence | 验证字符串是否在包含的 min 和 max 之间 | -| @Max | @Max(value=值) | - BigDecimal
    - BigInteger
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | -| @Min | @Min(value=值) | - BigDecimal
    - BigInteger
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | -| @Negative | @Negative | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的负数(即 0 被视为无效值) | -| @NegativeOrZero | @NegativeOrZero | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须为负数或 0 | -| @NotBlank | @NotBlank | CharSequence | 元素不能为 null,并且必须至少包含一个非空白字符 | -| @NotEmpty | @NotEmpty | - CharSequence
    - Collection
    - Map
    - Array | 元素不能为 null 或空集合 | -| @NotNull | @NotNull | 不限类型 | 元素不能为 null | -| @Null | @Null | 不限类型 | 元素必须为 null | -| @Past | @Past | 同 @Future | 元素必须是过去的瞬间、日期或时间 | -| @PastOrPresent | @PastOrPresent | 同 @Future | 元素必须是过去或现在的瞬间、日期或时间 | -| @Pattern | @Pattern(regexp=正则表达式, flags=标志) | CharSequence | 元素必须与指定的正则表达式匹配(正则表达式遵循 Java 正则表达式约定) | -| @Positive | @Positive | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的正数(即 0 被视为无效值) | -| @PositiveOrZero | @PositiveOrZero | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须为正数或 0 | -| @Range | @Range(min=最小值, max=最大值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 验证元素是否在包含的 min 和 max 之间 | -| @Size | @Size(min=最小值, max=最大值) | - CharSequence
    - Collection
    - Map
    - Array | 验证元素是否在包含的 min 和 max 之间 | -| @Valid | @Valid | 对象 | 级联验证 | - -更多注解可参考包: `org.hibernate.validator` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md deleted file mode 100644 index 62ce2946..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions.md +++ /dev/null @@ -1,144 +0,0 @@ -# 关于数据权限 -- - - -* 参考 demo 模块用法(需导入 test.sql 文件) - -### 新版数据权限功能: -1.支持自动注入 sql 数据过滤
    -2.查询、更新、删除 限制
    -3.支持自定义数据字段过滤
    -4.模板支持 spel 语法实现动态 Bean 处理
    -5.支持与菜单权限标识符联合使用(2.2.X新功能) - -### 数据权限相关代码 - -| 类 | 说明 | 功能 | -|-------------------------------|-----------------|----------------------------------------| -| DataScopeType | 数据权限模板定义 | 用于定义数据权限模板 | -| DataPermission | 数据权限组注解 | 用于标注开启数据权限 (默认过滤部门权限) | -| DataColumn | 具体的数据权限字段标注 | 用于替换数据权限模板内的 key 变量 | -| PlusDataPermissionInterceptor | 数据权限 sql 拦截器 | 用于拦截所有 sql 检查是否标注了 `DataPermission` 注解 | -| PlusDataPermissionHandler | 数据权限处理器 | 用于处理被拦截到的 sql 为其添加数据权限过滤条件 | -| DataPermissionHelper | 数据权限助手 | 操作数据权限上下文变量 | -| SysDataScopeService | 自定义 Bean 处理数据权限 | 用于自定义扩展 | - -## 忽略数据权限 - -1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: -``` -@InterceptorIgnore(dataPermission = "true") -``` - -2.如果需要在业务层忽略数据权限,可调用以下方法: -``` -# 无返回值 -DataPermissionHelper.ignore(() -> { 业务代码 }); -# 有返回值 -Class result = DataPermissionHelper.ignore(() -> { return 业务代码 }); -``` - -### 使用方式 `参考demo模块` -数据权限体系 `用户 -> 多角色 => 角色 -> 单数据权限` -> 例子: 用户A 拥有两个角色
    -> 角色A 部门经理 可查看 本部门及以下部门的数据
    -> 角色B 兼职开发 可查看 仅自己的数据 - -> 创建角色 test1 为 本部门及以下 - -![输入图片说明](https://foruda.gitee.com/images/1678978669666831574/b51ed0a3_1766278.png "屏幕截图") - -> 创建角色 test2 为 仅本人 - -![输入图片说明](https://foruda.gitee.com/images/1678978674159035056/69cf32ad_1766278.png "屏幕截图") - -> 将其分配给用户 test - -![输入图片说明](https://foruda.gitee.com/images/1678978680492570269/a47b6afc_1766278.png "屏幕截图") - -### 编写列表查询(注意: 数据权限注解只能在 Mapper 层使用) - -> 标注数据权限注解 `dept_id` 为过滤部门字段 `user_id` 为过滤创建用户 - -![输入图片说明](https://foruda.gitee.com/images/1678978687179608427/d6b83c30_1766278.png "屏幕截图") - -### 重点注意: 如下情况不生效 - -> 有自定义实现方法 最终执行的mapper不是这个方法 所以无法生效 -> -> 解决方案: 一直往下点 找到最终的执行mapper重写即可 - -![输入图片说明](https://foruda.gitee.com/images/1678978692558777291/78b0a3dd_1766278.png "屏幕截图") - -### 编写数据权限模板 - -![输入图片说明](https://foruda.gitee.com/images/1678978697141183499/cfc1cb6a_1766278.png "屏幕截图") - -1.`code` 为关联角色的数据权限 `code`
    -2.`sqlTemplate` 为 sql 模板
    -`#{#deptName}` 为模板变量 对应权限注解的 `key`
    -`#{@sdss}` 为模板 Bean 调用 调用其 Bean 的处理方法
    -3.`elseSql` 为兜底 sql 处理当前角色与标注的注解 无对应的情况
    -例如 数据权限为仅本人 且 方法并未标注具体过滤注解 则 填充 `1 = 0` 使条件不满足 不允许查看
    -更详细用法可以参考 `DataScopeType` 注释 - -### 测试代码 - -> 使用 `管理员` 用户优先测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978703250082481/e93a68a5_1766278.png "屏幕截图") - -> 使用 `test` 用户测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978710644676604/d7f80487_1766278.png "屏幕截图") - -> 使用 `test` 删除一条不属于自己的数据 -> sql执行为不满足条件 不允许删除 - -![输入图片说明](https://foruda.gitee.com/images/1678978715711122947/441d61f7_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678978720298532619/a35b1147_1766278.png "屏幕截图") - - -> 使用 `test` 修改与删除同理
    -> 具体实现为 更新和删除方法 标注数据权限注解 - -![输入图片说明](https://foruda.gitee.com/images/1678978725329242504/a70491a1_1766278.png "屏幕截图") - -### 自定义SQL模板 - -> 1.首先在角色管理 数据权限下拉框 添加自定义模板
    -> 为什么不放置到系统字典问题: 因数据权限与模板绑定 不应随意改动 最好事先定义好 - -![输入图片说明](https://foruda.gitee.com/images/1678978730563169865/3459ee17_1766278.png "屏幕截图") - -> 2.代码 `DataScopeType` 自定义一个SQL模板 - -![输入图片说明](https://foruda.gitee.com/images/1678978735588305505/3f030c67_1766278.png "屏幕截图") - -> 3.标注权限注解 - -![输入图片说明](https://foruda.gitee.com/images/1678978742259837391/eabe5caa_1766278.png "屏幕截图") - -> 4.设置数据权限变量 - -![输入图片说明](https://foruda.gitee.com/images/1678978746778429543/e211201f_1766278.png "屏幕截图") - -> 5.测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978751875467640/7d210cf4_1766278.png "屏幕截图") - -### mybatis-plus 原生方法 增加数据权限过滤 - -> 首先查看需要重写的方法源码 重点`方法源码` `方法源码` `方法源码`
    -> 例如重写 `selectPage` 方法
    - -![输入图片说明](https://foruda.gitee.com/images/1678978757955000897/8315695c_1766278.png "屏幕截图") - -> 复制源码到自己的 `Mapper` 并增加数据权限注解 注意左边出现重写图标 即为重写成功
    - -![输入图片说明](https://foruda.gitee.com/images/1678978763224011694/bbea25a1_1766278.png "屏幕截图") - -### 支持类标注 - -> 获取规则 `方法 > 类` 注意: 类标注后 所有方法(包括父类方法) 都会进行数据权限过滤 - -![输入图片说明](https://foruda.gitee.com/images/1678978767336534896/fb13ee99_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md deleted file mode 100644 index 6931ca7a..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/permissions_control.md +++ /dev/null @@ -1,178 +0,0 @@ -# 权限控制 -- - - - -本文采用 `Sa-Token` 框架实现权限控制。[官方文档传送门](https://sa-token.cc/doc.html#/) - -## 权限校验 -权限校验指的是校验用户是否拥有访问某个 API 的能力。 - -通常情况下,一个 API 对应一个权限码,如果用户具备当前 API 的权限码,即代表有能力访问该 API。 - -### 1:权限标识 -在本系统中,每一个菜单功能都有对应的权限标识,可以在菜单管理中进行设置。 - -> 注: -> 1. 前后端的权限标识要保持一致。 -> 2. 权限标识可以使用通配符`*`。 - -![输入图片说明](https://foruda.gitee.com/images/1701086497939145368/133fb327_4959041.png "屏幕截图") - - -### 2:校验方法 -#### 2.1:使用 `@SaCheckPermission` 注解进行校验 -`@SaCheckPermission` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 - -- 单个权限校验: - -```Java -@SaCheckPermission("system:user:list") -``` - -- 多个权限校验(或模式,满足任意一个权限即可): - -```Java -@SaCheckPermission( - value = { - "system:user:list", - "system:user:query" - }, - mode = SaMode.OR -) -``` - -- 多个权限校验(与模式,必须满足所有权限): - -```Java -@SaCheckPermission( - value = { - "system:user:list", - "system:user:query" - }, - mode = SaMode.AND -) -``` - -#### 2.2:使用 `StpUtil` 工具类校验 -`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 - -- 判断当前用户是否拥有某个权限(返回 `boolean`): - -```Java -StpUtil.hasPermission("system:user:list"); -``` - -- 单个权限校验: - -```Java -StpUtil.checkPermission("system:user:list"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -- 多个权限校验(或模式,满足任意一个权限即可): - -```Java -StpUtil.checkPermissionOr("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -- 多个权限校验(与模式,必须满足所有权限): - -```Java -StpUtil.checkPermissionAnd("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -## 角色校验 -角色校验指的是校验用户是否拥有某个指定角色。 - -### 1:权限标识 -在本系统中,每个角色都拥有唯一的权限字符。 - -除了超级管理员角色外,其他角色的权限字符可以通过角色管理进行设置。 - -![输入图片说明](https://foruda.gitee.com/images/1701085080527279823/3255961d_4959041.png "屏幕截图") - -### 2:校验方法 -#### 2.1:使用 `@SaCheckRole` 注解校验 -`@SaCheckRole` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 - -- 单个角色校验 - -```Java -@SaCheckRole("superadmin") -``` - -- 多个角色校验(或模式,满足任意一个角色即可): - -```Java -@SaCheckRole( - value = { - "superadmin", - "admin" - }, - mode = SaMode.OR -) -``` - -- 多个角色校验(与模式,必须满足所有角色): - -```Java -@SaCheckRole( - value = { - "superadmin", - "admin" - }, - mode = SaMode.AND -) -``` - -#### 2.2:使用 `StpUtil` 工具类校验 -`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 - -- 判断当前用户是否拥有某个角色(返回 `boolean`): - -```Java -StpUtil.hasRole("superadmin") -``` - -- 单个权限校验: - -```Java -StpUtil.checkRole("system:user:list"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -- 多个权限校验(或模式,满足任意一个角色即可): - -```Java -StpUtil.checkRoleOr("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -- 多个权限校验(与模式,必须满足所有角色): - -```Java -StpUtil.checkRoleAnd("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -## 角色权限双重 `OR` 校验 -除了分开校验以外,权限和角色也可以进行组合,表示备选校验。 - -简单举个例子: - -假设某个 API 的权限码为 `system:user:list`,角色 `admin` 可以调用,则可以这样写: - -```Java -@SaCheckPermission(value = "system:user:list", orRole = "admin") -``` - -以上权限只需要满足任意一项即可。更多写法可以参考 `Sa-Token` [官方文档](https://sa-token.cc/doc.html#/use/at-check?id=_4%e3%80%81%e8%a7%92%e8%89%b2%e6%9d%83%e9%99%90%e5%8f%8c%e9%87%8d-or%e6%a0%a1%e9%aa%8c)。 - -## 当前用户的所有权限 -本系统中实现了 `StpInterface` 接口,可以对用户的权限以及角色进行管理,并且可以根据不同的用户类型进行设置。 - -具体参考类:`org.dromara.common.satoken.core.service.SaPermissionImpl` - -## 忽略权限校验 -请参考文档:[网关路由与放行](/ruoyi-cloud-plus/framework/basic/router_release?id=网关路由与放行) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md deleted file mode 100644 index 9b08f069..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/router_release.md +++ /dev/null @@ -1,26 +0,0 @@ -# 网关路由与放行 -- - - - -## 新增路由 -`ruoyi-gateway.yml` 配置文件 增加 `routers` 配置
    -**注意: 路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**
    -下图代表 `resource/**` 将所有 `resource开头的路径` 都路由到 `ruoyi-resource` 服务
    -例如: `/resource/sms/code` `resource路由到ruoyi-resource服务` `sms路由到对应的contrller` `code 路由到对应的接口`
    -![输入图片说明](https://foruda.gitee.com/images/1669623462957266512/c282932b_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1669623527799049459/201a52db_1766278.png "屏幕截图") - -## 放行使用方式 -nacos 中 `ruoyi-gateway.yml` 白名单放行
    -**注意: 放行路径格式为 `/服务路径/controller路径/接口方法路径` `*代表任意一级 **代表任意所有级`**
    -示例: `/resource/sms/code` 代表 `ruoyi-resource服务 sms的controller code接口`
    -![输入图片说明](https://foruda.gitee.com/images/1660622672461635175/屏幕截图.png "屏幕截图.png") - -## 注意事项 - -接口放行后不需要token即可访问
    -但是没有token也就无法获取用户信息与鉴权 - -### 解决方案 -删除接口上的鉴权注解
    -删除接口内获取用户信息功能
    -删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md deleted file mode 100644 index 2e3cd739..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/social.md +++ /dev/null @@ -1,68 +0,0 @@ -# 第三方授权功能 -- - - -## 版本 >= 2.X - -## 前置说明 -1. 该功能基于 `JustAuth` 实现,支持多家平台实现第三方授权登录。 -2. 以 `Gitee` 授权登录为例进行本功能的使用说明。 -3. 其他第三方授权配置信息获取方式可参考 `JustAuth` [官方文档](https://www.justauth.cn/guide/)。
    - - ![输入图片说明](https://foruda.gitee.com/images/1690937097426867003/91d80587_4959041.png "屏幕截图") - -## 第三方授权配置 - -### 申请三方应用(以gitee为例) - -![输入图片说明](https://foruda.gitee.com/images/1700641775779304627/1cf1b56f_1766278.png "屏幕截图") - -### 更改后端配置 `application-dev.yml` - -![输入图片说明](https://foruda.gitee.com/images/1690936741844431943/580f8998_4959041.png "屏幕截图") - -**注:内网地址无法回调,请使用外网可以访问的地址。** - -![输入图片说明](https://foruda.gitee.com/images/1690940457570856867/ce22df18_4959041.png "屏幕截图") - -### 更改前端配置 `login.vue` - -![输入图片说明](https://foruda.gitee.com/images/1690937306197173754/5c1ece29_4959041.png "屏幕截图") - -## 授权登录(未绑定第三方平台) - -### 步骤一:个人中心授权第三方应用 - -![输入图片说明](https://foruda.gitee.com/images/1690938449386201097/ea375106_4959041.png "屏幕截图") - -### 步骤二:同意授权 - -![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") - -顶部出现授权成功,并跳转到系统首页。
    - -![输入图片说明](https://foruda.gitee.com/images/1690938559178527841/563168e4_4959041.png "屏幕截图")
    - -![输入图片说明](https://foruda.gitee.com/images/1690938636375977741/8ceb77cf_4959041.png "屏幕截图") - -查看第三方应用可看到授权成功的个人信息。
    - -![输入图片说明](https://foruda.gitee.com/images/1690938725512311321/5532a2a9_4959041.png "屏幕截图") - -## 授权登录(已绑定第三方平台) - -### 步骤一:点击登录页面图标 - -![输入图片说明](https://foruda.gitee.com/images/1690938908352243992/fd044381_4959041.png "屏幕截图") - -### 步骤二:同意授权 - -![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") - -## 解除授权绑定 - -### 步骤一:个人中心点击解绑第三方应用 - -![输入图片说明](https://foruda.gitee.com/images/1690939087877969002/4ef324e7_4959041.png "屏幕截图") - -### 步骤二:点击确定完成解绑 - -![输入图片说明](https://foruda.gitee.com/images/1690939108017661775/7236088d_4959041.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md deleted file mode 100644 index b57c3f63..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/tenant.md +++ /dev/null @@ -1,121 +0,0 @@ -# 多租户功能 -- - - -## 版本 >= 2.X - -## 前置说明(重要) -1. 本框架多租户功能的实现是基于 [MyBatis-Plus 多租户插件](https://baomidou.com/pages/aef2f2/#tenantlineinnerinterceptor) 的,只支持最简单的隔离。 -2. 本系统默认开启多租户功能。 -3. 多租户业务表建表需要加上租户id `tenant_id`,可参考其他系统表。 -4. 非多租户表可在配置文件进行配置排除。 -5. 只有超级管理员支持切换租户。 - -## 多租户使用流程(先说结论再展开!) -0. 开启多租户配置(系统默认已经开启) -1. 登录界面(可以选择不同租户) -> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 -2. 设置多租户套餐 -3. 新增/修改租户(需要选择套餐) -4. 切换租户(仅超级管理员可操作) - -## 多租户配置 -`application-common.yml`
    - -> 开关 `enable` 节点不用废话。
    -> 如果不需要过滤租户的表可在 `excludes` 节点下添加。 - -**注意: 如果已经基于租户模式启动了程序 关闭租户必须删除mysql与redis内的相关数据重新导入sql** - -![输入图片说明](https://foruda.gitee.com/images/1680168468127690787/2cd3279e_4959041.png "屏幕截图") - -## 忽略租户 - -1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: -``` -@InterceptorIgnore(tenantLine = "true", dataPermission = "false") -``` -**此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效** - -2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用): -``` -# 无返回值 -TenantHelper.ignore(() -> { 业务代码 }); -# 有返回值 -Class result = TenantHelper.ignore(() -> { return 业务代码 }); -``` - -## 动态切换租户 - -**仅适用于特殊需求业务(例如: 创建租户时, 对该租户操作一些数据, 或者需要去其他租户查一些数据等) 禁止乱用后果自负** - -``` -# 无返回值 -TenantHelper.dynamic(租户id, () -> { 业务代码 }); -# 有返回值 -Class result = TenantHelper.dynamic(租户id, () -> { return 业务代码 }); -``` - -## 登录界面 - -![输入图片说明](https://foruda.gitee.com/images/1680173982933030545/bca146d7_4959041.png "屏幕截图") - -> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 - -## 租户套餐管理 -### 租户套餐新增 -![输入图片说明](https://foruda.gitee.com/images/1680174317475230288/352957a1_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680174602877523112/fc194f17_4959041.png "屏幕截图") - -> 注: -> 1、先新增套餐再新增租户,因为租户新增之后无法修改所选套餐。 -> 2、租户所关联的套餐如果后续有修改可以进行同步。 - - -## 租户管理 -### 默认租户 -> 注:默认租户无法修改 - -![输入图片说明](https://foruda.gitee.com/images/1680174738913576400/b6aca11a_4959041.png "屏幕截图") - -### 新增租户 -#### 填写表单 -![输入图片说明](https://foruda.gitee.com/images/1680174945220618443/f7181b51_4959041.png "屏幕截图") - -#### 选择新增的租户套餐 -![输入图片说明](https://foruda.gitee.com/images/1680174991869792688/0dbaadd6_4959041.png "屏幕截图") - -#### 新增完成 -![输入图片说明](https://foruda.gitee.com/images/1680175033853525725/42e64b4d_4959041.png "屏幕截图") - -#### 登录租户 -![输入图片说明](https://foruda.gitee.com/images/1680176145378931134/e05f347e_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176208161104366/44a935f1_4959041.png "屏幕截图") - -### 修改租户 -#### 配置域名 -![输入图片说明](https://foruda.gitee.com/images/1680175251192690133/141fa6a6_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680175431036971650/db522d39_4959041.png "屏幕截图") - -#### 没有配置域名 -![输入图片说明](https://foruda.gitee.com/images/1680175541165540240/95e211f7_4959041.png "屏幕截图") - -#### 强调一下:这不是bug! -> 注:域名的配置就是为了绑定特定租户! - -### 同步套餐 -应用场景:租户套餐进行了修改,配置的菜单需要同步到特定租户。 -(不是所有租户都有更新套餐的权利, 这是跟钱挂钩的) - -> 点一下按钮的事,图略。 - -## 切换租户(仅超级管理员) -> 注:管理员切换租户不是切换用户,切换的只是数据,管理员拥有所有权限。 - -![输入图片说明](https://foruda.gitee.com/images/1680176324802967804/5c5d6fc3_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176431031189788/0c3f924c_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176496555243569/624ec677_4959041.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md deleted file mode 100644 index 99050fa7..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/basic/user.md +++ /dev/null @@ -1,85 +0,0 @@ -# 系统用户相关 -- - - - -> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装
    - -## 用户登录 - -> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录
    -> 例如: `同表不同类型` `不同表` `同表+扩展表`
    - -![输入图片说明](https://foruda.gitee.com/images/1699590555824776931/63d493fc_1766278.png "屏幕截图") - -## 获取用户信息 - -> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息 - -请求头传递格式: `Authorization: Bearer token` - -后端获取用户信息: -```java -LoginUser user = LoginHelper.getLoginUser(); -``` - -## 获取用户信息(基于token) -```java -LoginUser user = LoginHelper.getLoginUser(token); -``` - -## 获取登录用户id -```java -Long userId = LoginHelper.getUserId(); -``` - -## 获取登录用户账户名 -```java -String username = LoginHelper.getUsername(); -``` - -## 获取登录用户所属租户id -```java -String tenantId = LoginHelper.getTenantId(); -``` - -## 获取登录用户所属部门id -```java -Long deptId = LoginHelper.getDeptId(); -``` - -## 获取登录用户类型 -```java -UserType userType = LoginHelper.getUserType(); -``` - -## 获取登录用户其他扩展属性 -```java -Object obj = LoginHelper.getExtra(key); -``` - -## 设置登录用户其他扩展属性 - -参考登录设置 `clientId` 属性 - -![输入图片说明](https://foruda.gitee.com/images/1699591164562734430/42730add_1766278.png "屏幕截图") - -## 判断用户是否为超级管理员 - -```java -// 判断当前登录用户 -boolean b = LoginHelper.isSuperAdmin(); -// 判断用户基于id -boolean b = LoginHelper.isSuperAdmin(userId); -``` - -## 判断用户是否为租户管理员 - -```java -// 判断当前登录用户 -boolean b = LoginHelper.isTenantAdmin(); -// 判断用户基于角色组 -boolean b = LoginHelper.isSuperAdmin(rolePermission); -``` - -## 其他更多操作 -[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth) - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md deleted file mode 100644 index 77cde6ef..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/about_join.md +++ /dev/null @@ -1,12 +0,0 @@ -# 关于多表查询 -- - - -## 建议单表查询 - -文章连接: [大连接查询分解好处](https://java.isture.com/db/mysql/mysql-x-optimize-decompose-connection.html) - -![输入图片说明](https://foruda.gitee.com/images/1678979482724037085/1e74f3e1_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1666336728402711844/52788205_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1666336945935088277/f60e3288_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1666336954686520161/c6c83adc_1766278.png "屏幕截图")
    -**(上图出自 <高性能MySql>)** \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md deleted file mode 100644 index c960140d..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/key.md +++ /dev/null @@ -1,19 +0,0 @@ -# 主键使用说明 -- - - -## 关于如何使用分布式id或雪花id - -参考 `MybatisPlusConfig` 如需自定义 修改 `Bean` 实现即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979401707903546/e25f6c06_1766278.png "屏幕截图") - -框架默认集成 雪花ID 只需全局更改 主键类型即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979411517764918/1470df04_1766278.png "屏幕截图") - -如单表使用 可单独配置注解 - -![输入图片说明](https://foruda.gitee.com/images/1678979416033986923/2a4c3736_1766278.png "屏幕截图") - -### 重点说明 -* 由于雪花id位数过长 `Long` 类型在前端会失真 -* 框架已配置序列化方案 超越 `JS` 最大值自动转字符串 参考 `BigNumberSerializer` 类 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md deleted file mode 100644 index 4c521ad1..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/test.md +++ /dev/null @@ -1,6 +0,0 @@ -# 单元测试 -- - - -## 参考文章 -[SpringBoot 2.X 整合 JUnit5 及全方位使用手册](https://lionli.blog.csdn.net/article/details/127576604) -## 参考代码(1.4.0新增) -![输入图片说明](https://foruda.gitee.com/images/1666973151030696086/6d44f4c2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md deleted file mode 100644 index 2b4966dc..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/explain/transaction.md +++ /dev/null @@ -1,45 +0,0 @@ -# 事务相关 -- - - -若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86) 以下对多数据源事务做补充: - - -## 多服务多数据源事务(框架已默认对接 直接使用seata注解即可) - -框架支持对接 `seata` 保证分布式多数据源事务
    -详情参考多数据源框架文档连接: https://www.kancloud.cn/tracy5546/dynamic-datasource/2268607 - -## 本地多数据源事务 -请使用 `@DSTransactional` 注解 会代理 `@DS` 注解切换后的数据源事务做回滚处理
    -只要 `@DSTransactional` 注解下任一环节发生异常,则全局多数据源事务回滚。
    -如果BC上也有 `@DSTransactional` 会有影响吗?答:没有影响的。 - -```java -//如AService调用BService和CService的方法,A,B,C分别对应不同数据源。 - -public class AService { - - @DS("a")//如果a是默认数据源则不需要DS注解。 - @DSTransactional - public void dosomething(){ - BService.dosomething(); - CService.dosomething(); - } -} - -public class BService { - - @DS("b") - public void dosomething(){ - //dosomething - } -} - -public class CService { - - @DS("c") - public void dosomething(){ - //dosomething - } -} -``` - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md deleted file mode 100644 index be4ce445..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/api_encrypt.md +++ /dev/null @@ -1,39 +0,0 @@ -# 数据加解密 -- - - - -## 1:API 加密注解 `@ApiEncrypt` -1. 对于标注了 `@ApiEncrypt` 注解的接口,请求参数都必须进行加密。 -2. 注解的参数 `response` 为响应加密标识,默认 `false` 不加密,为 `true` 表示响应加密。 -3. 加密解密逻辑由过滤器实现,详情可参考 `org.dromara.common.encrypt.filter.CryptoFilter`。 - -## 2:API 加密配置 -`application-common.yml` - -![输入图片说明](https://foruda.gitee.com/images/1701133628809355269/8979704a_4959041.png "屏幕截图") - -`.env.development` / `.env.production` - -![输入图片说明](https://foruda.gitee.com/images/1709533252413969800/1d0dff25_1766278.png "屏幕截图") - -> 注: -> 1. 注意修改 Nacos 配置。 -> 2. 公私钥与前端配置文件互为配对,如果需要更换请一同更换。 -> 3. 后端公钥对应前端私钥;后端私钥对应前端公钥。 - -## 3:前端开启加密 -如果需要开启 API 加密,则需要修改 `request` 的 `headers` 内容: -```Javascript -headers: { - isEncrypt: true -} -``` - -![输入图片说明](https://foruda.gitee.com/images/1701137141916998346/5e839bbe_4959041.png "屏幕截图") - -## 4.关于请求响应参数加解密说明 - -如何加解密请求响应参数看这里 -> [关于请求响应参数解密](/questions/api_encrypt.md) - -## 密钥生成说明 - -![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md deleted file mode 100644 index 21114cd4..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/dynamic_datasource.md +++ /dev/null @@ -1,45 +0,0 @@ -# 多数据源 -- - - - -### 框架默认 mysql 其他数据库使用说明 - -找到 `ruoyi-common-mybatis` 模块在 pom 文件内增加对应的jdbc依赖 - -![输入图片说明](https://foruda.gitee.com/images/1721098535176969987/d42870ca_1766278.png "屏幕截图") - - -### 关于多数据源事务 具体参考 `事务相关` 文档说明 - -### 多数据源框架功能介绍 -多数据源框架官方文档: [dynamic-datasource文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611) - -* 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 -* 支持数据库敏感配置信息 加密 ENC()。 -* 支持每个数据库独立初始化表结构schema和数据库database。 -* 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 -* 支持 自定义注解 ,需继承DS(3.2.0+)。 -* 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。 -* 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。 -* 提供 自定义数据源来源 方案(如全从数据库加载)。 -* 提供项目启动后 动态增加移除数据源 方案。 -* 提供Mybatis环境下的 纯读写分离 方案。 -* 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。 -* 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。 -* 提供 基于seata的分布式事务方案。 -* 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。 - -### 用法说明 - -> 加载顺序 `方法 => 类 => 默认`
    - -![输入图片说明](https://foruda.gitee.com/images/1678979069737596299/abe8ae7f_1766278.png "屏幕截图") - -### 配置方式 - -![输入图片说明](https://foruda.gitee.com/images/1678979074000345758/b9238f0b_1766278.png "屏幕截图") - -### 数据库异构 - -例如: `mysql + oracle` 参考对应多数据源框架文档 [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource) - -![输入图片说明](https://foruda.gitee.com/images/1678979078387192317/2de94a78_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md deleted file mode 100644 index 729a3039..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/encrypt.md +++ /dev/null @@ -1,38 +0,0 @@ -# 数据加解密 -- - - -## 框架版本 >= 1.6.0 - -## 引入依赖 - -```xml - - com.ruoyi - ruoyi-common-encrypt - -``` - -## 功能说明 - -数据库 数据存储加密 查询解密功能
    -支持加密算法: `BASE64` `AES` `RSA` `SM2` `SM4` - -## 注解 `@EncryptField` - -![输入图片说明](https://foruda.gitee.com/images/1675577493013639395/cd920f15_1766278.png "屏幕截图") - -## 用法说明 - -**详细用法可参考案例 TestEncryptController 测试数据库加解密功能** - -全局默认加密配置(如果注解不配置则使用全局配置) - -![输入图片说明](https://foruda.gitee.com/images/1675577674063566357/dee94786_1766278.png "屏幕截图") - -注解可自定义算法与配置 - -![输入图片说明](https://foruda.gitee.com/images/1675577725117970708/7ee7a833_1766278.png "屏幕截图") - -## 密钥生成说明 - -![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md deleted file mode 100644 index 5f706710..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/idempotent.md +++ /dev/null @@ -1,29 +0,0 @@ -# 防重幂等 -- - - -## 功能介绍 - -防重功能为防止两条相同的数据重复提交导致脏数据或业务错乱
    -**注意: 重复提交属于小概率事件 请不要拿并发压测与之相提并论**
    -框架防重功能参考 `美团GTIS防重系统` 使用 请求参数与用户Token或URL 生成全局业务ID
    -有效防止 `同一个用户` 在 `限制时间` 内对 `同一个业务` 提交 `相同的数据` - -框架防重处理 `支持业务失败或异常` 快速释放限制
    -业务处理成功后 会在设置时间内 限制同一条数据的提交
    -**注意: 只对同一个用户的同一个接口提交相同的数据有效** - - - - -### 美团GTIS系统流程图 - -[美团 分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html) - -![输入图片说明](https://foruda.gitee.com/images/1678979231862359032/34f030c5_1766278.png "屏幕截图") - -### 使用方法 - -在Controller标注 `@RepeatSubmit` 注解即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979236772683145/9fa27e5b_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678979240831458322/8e1fac4b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md deleted file mode 100644 index ce089802..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/mail.md +++ /dev/null @@ -1,15 +0,0 @@ -# 邮件功能 -- - - -## 配置功能 - -修改配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1663555260932007318/fabb2bfa_1766278.png "屏幕截图") - -* `enabled` 为邮件功能开关 - -## 功能使用 - -参考 `demo` 模块 `MailController` 邮件演示案例 - -![输入图片说明](https://foruda.gitee.com/images/1663555374113593089/885b4db2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md deleted file mode 100644 index 3e2d92ba..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sensitive.md +++ /dev/null @@ -1,33 +0,0 @@ -# 数据脱敏 -- - - -## 功能说明 - -系统使用 `Jackson` 序列化策略 对标注了 `Sensitive` 注解的属性进行脱敏处理 - -## 使用教程 - -> 使用注解标注需要脱敏的字段 选择对应的策略 - -![输入图片说明](https://foruda.gitee.com/images/1699523591703893602/ffd6dba2_1766278.png "屏幕截图") - -* strategy 脱敏策略 -* roleKey 角色code(判断用户是否拥有角色权限) -* perms 权限code(判断用户是否拥有标识符权限) - -![输入图片说明](https://foruda.gitee.com/images/1678979315796014155/614adf91_1766278.png "屏幕截图") - -> 可再 `SensitiveStrategy` 内自定义策略 - -![输入图片说明](https://foruda.gitee.com/images/1678979319996224858/3b3e3c8b_1766278.png "屏幕截图") - -## 脱敏逻辑修改 - -> 系统使用通用接口处理是否需要脱敏 多个系统可以自定义不同的脱敏逻辑实现 - -![输入图片说明](https://foruda.gitee.com/images/1678979325448998856/b262e425_1766278.png "屏幕截图") - -> 系统默认处理逻辑为 根据角色与标识符或非管理员脱敏 可自行修改默认实现 - -![输入图片说明](https://foruda.gitee.com/images/1699523752627488891/f82f2f50_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md deleted file mode 100644 index 81fb345a..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sms.md +++ /dev/null @@ -1,51 +0,0 @@ -# 短信模块 -- - - - -# 配置功能 - -### 版本: >= v2.1.0 - -已完成 sms4j 项目整合 文档地址: https://sms4j.com/doc3 - -配置方式 具体厂商配置扩展 可以查看sms4j文档 - -![输入图片说明](https://foruda.gitee.com/images/1705573035997239848/2ca8512d_1766278.png "屏幕截图") - -使用方式 参考文档各种写法 下方为 demo 模块提供示例 - -![输入图片说明](https://foruda.gitee.com/images/1705573001447394180/2bd726d0_1766278.png "屏幕截图") - -### 版本: v1.2.0 提供短信模块 - -短信模块采用SPI加载
    -使用哪家的短信 引入哪家的依赖 即可动态加载
    -目前支持: `阿里云` `腾讯云` 欢迎扩展PR其他 - -> 参考 `ruoyi-demo` pom文件写法 - -![输入图片说明](https://foruda.gitee.com/images/1678979157797419426/cc9b7444_1766278.png "屏幕截图") - -> 修改配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1678979163029635375/e5fd6e20_1766278.png "屏幕截图") - -* `enabled` 为短信功能开关 -* `endpoint` 为域名 各厂家域名固定 按照文档配置即可 -* `accessKeyId` 密钥id -* `accessKeySecret` 密钥密匙 -* `signName` 签名 -* `sdkAppId` 应用id 腾讯专用 - -## 功能使用 - -参考 `demo` 模块 `SmsController` 短信演示案例
    -功能采用 `模板模式` 动态加载对应厂家的工具模板
    -引入 `SmsTemplate` 即可使用 - -![输入图片说明](https://foruda.gitee.com/images/1678979168699323982/e9301e84_1766278.png "屏幕截图") - -## 重点须知 - -由于各厂家参数解析不一致 请遵守以下规则 - -![输入图片说明](https://foruda.gitee.com/images/1678979172581090456/ac1f10e8_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md deleted file mode 100644 index ec51df7c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/sse.md +++ /dev/null @@ -1,24 +0,0 @@ -# SSE功能 -- - - - -## 框架版本 >= 2.2.1 - -## 配置说明 - -配置在 `ruoyi-resource` 目录下 远程调用可直接使用 `RemoteMessageService` 接口 - -![输入图片说明](https://foruda.gitee.com/images/1721986989993234455/4214cbbd_1766278.png "屏幕截图") - -* enabled 是否开启此功能 -* path 应用路径 - -## 使用方法 - -前端连接方式: `http://后端ip:端口/resource/sse?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` - -其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 - -`SseMessageUtils.sendMessage` 推送单机消息(特殊需求使用)
    -`SseMessageUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
    -`SseMessageUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
    -`SseMessageUtils.publishAll` 群发消息给所有连接人
    \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md deleted file mode 100644 index d0834ab8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/translation.md +++ /dev/null @@ -1,44 +0,0 @@ -# 翻译功能 -- - - -## 框架版本 >= 1.6.0 - -## 引入依赖包 - -```xml - - com.ruoyi - ruoyi-common-translation - -``` - -## 注解 - -![输入图片说明](https://foruda.gitee.com/images/1675575648043199227/d04b3e21_1766278.png "屏幕截图") - -`@Translation` 翻译注解 用于实体类字段上
    -`@TranslationType` 翻译类别注解 用于实现类上标注与 `@Translation` 注解相同的 `type` 类型 实现翻译功能 - - -## 用法说明 - -默认提供功能 `用户id转账号(用户名)` `部门id转名称` `字典type转label` `ossId转url` - -![输入图片说明](https://foruda.gitee.com/images/1675575977860232549/143b74f8_1766278.png "屏幕截图") - -用户名翻译(映射翻译) 根据另一个映射字段 翻译保存到此字段 - -![输入图片说明](https://foruda.gitee.com/images/1675576044011477847/13eb9f57_1766278.png "屏幕截图") - -ossUrl翻译(直接翻译) 直接根据此字段值翻译后替换此字段值 - -![输入图片说明](https://foruda.gitee.com/images/1675576265894720924/70792f66_1766278.png "屏幕截图") - -字典翻译(其他扩展条件翻译) 根据`other`条件 自行定义如何使用 例如字典翻译`other`条件就是字典的唯一值 - -![输入图片说明](https://foruda.gitee.com/images/1675576391012282823/f95c5d78_1766278.png "屏幕截图") - -## 自定义扩展 - -实现接口 `TranslationInterface` 标注注解 `@TranslationType` 可参考框架默认实现 - -![输入图片说明](https://foruda.gitee.com/images/1676735454308997001/cfcf3590_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md deleted file mode 100644 index 55145bad..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/extend/websocket.md +++ /dev/null @@ -1,39 +0,0 @@ -# WebSocket功能 -- - - - -## 框架版本 >= 2.1.0 - -## 配置说明 - -配置在 `ruoyi-resource` 目录下 - -![输入图片说明](https://foruda.gitee.com/images/1688356273985385949/5e4d1de8_1766278.png "屏幕截图") - -* enabled 是否开启此功能 -* path 应用路径 -* allowedOrigins 设置访问源地址 - -**重点: 如关闭ws功能需连同前端ws开关一同关闭 不然前端启动会报错** - -![输入图片说明](https://foruda.gitee.com/images/1700644877512019497/052d2f46_1766278.png "屏幕截图") - -## 使用方法 - -前端连接方式: `ws://后端ip:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` - -**由于js不支持请求头传输故而采用参数传输 如支持请求头传输建议使用请求头传输** - -传输方式: -```js -headers: { - Authorization: "Bearer " + getToken(), - clientid: import.meta.env.VITE_APP_CLIENT_ID -} -``` - -其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 - -`WebSocketUtils.sendMessage` 推送单机消息(特殊需求使用)
    -`WebSocketUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
    -`WebSocketUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
    -`WebSocketUtils.publishAll` 群发消息给所有连接人
    \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md deleted file mode 100644 index f649197c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/framework/tree.md +++ /dev/null @@ -1,91 +0,0 @@ -# 项目结构 -- - - -## 目录结构 -v2.2.1 -~~~ -RuoYi-Cloud-Plus -├─ ruoyi-api // api模块 -│ └─ ruoyi-api-bom // api模块依赖管理 -│ └─ ruoyi-api-resource // 资源api模块 -│ └─ ruoyi-api-system // 系统api模块 -│ └─ ruoyi-api-workflow // 工作流api模块 -├─ ruoyi-auth // 认证服务 [9210] -├─ ruoyi-common // 通用模块 -│ └─ ruoyi-common-alibaba-bom // alibaba 依赖管理 -│ └─ ruoyi-common-bom // common 依赖管理 -│ └─ ruoyi-common-bus // 消息总线模块 -│ └─ ruoyi-common-core // 核心功能模块 -│ └─ ruoyi-common-dict // 字典集成模块 -│ └─ ruoyi-common-doc // 文档集成模块 -│ └─ ruoyi-common-dubbo // dubbo集成模块 -│ └─ ruoyi-common-elasticsearch // ES集成模块 -│ └─ ruoyi-common-encrypt // 数据加解密模块 -│ └─ ruoyi-common-excel // excel集成模块 -│ └─ ruoyi-common-idempotent // 幂等功能模块 -│ └─ ruoyi-common-job // job定时任务集成模块 -│ └─ ruoyi-common-json // json集成模块 -│ └─ ruoyi-common-loadbalancer // 团队负载均衡集成模块 -│ └─ ruoyi-common-log // 日志集成模块 -│ └─ ruoyi-common-logstash // elk日志集成模块 -│ └─ ruoyi-common-mail // 邮件集成模块 -│ └─ ruoyi-common-mybatis // mybatis数据库相关集成模块 -│ └─ ruoyi-common-oss // oss相关集成模块 -│ └─ ruoyi-common-prometheus // prometheus监控 -│ └─ ruoyi-common-redis // redis集成模块 -│ └─ ruoyi-common-satoken // satoken集成模块 -│ └─ ruoyi-common-seata // seata分布式事务集成模块 -│ └─ ruoyi-common-security // 框架权限鉴权集成模块 -│ └─ ruoyi-common-sensitive // 脱敏功能模块 -│ └─ ruoyi-common-sentinel // sentinel集成模块 -│ └─ ruoyi-common-skylog // skywalking日志收集模块 -│ └─ ruoyi-common-sms // 短信集成模块 -│ └─ ruoyi-common-social // 社交三方功能模块 -│ └─ ruoyi-common-sse // sse流推送模块 -│ └─ ruoyi-common-tenant // 租户功能模块 -│ └─ ruoyi-common-translation // 通用翻译功能 -│ └─ ruoyi-common-web // web服务集成模块 -│ └─ ruoyi-common-websocket // websocket服务集成模块 -├─ ruoyi-example // 例子模块 -│ └─ ruoyi-demo // 演示模块 [9401] -│ └─ ruoyi-test-mq // mq演示模块 [9402] -├─ ruoyi-gateway // 网关模块 [8080] -├─ ruoyi-modules // 功能模块 -│ └─ ruoyi-gen // 代码生成模块 [9202] -│ └─ ruoyi-job // 任务调度模块 [9203,9901] -│ └─ ruoyi-resource // 资源模块 [9204] -│ └─ ruoyi-system // 系统模块 [9201] -│ └─ ruoyi-workflow // 工作流模块 [9205] -├─ ruoyi-visual // 可视化模块 -│ └─ ruoyi-monitor // 服务监控模块 [9100] -│ └─ ruoyi-nacos // nacos服务模块 [8848,9848,9849] -│ └─ ruoyi-seata-server // seata服务模块 [7091,8091] -│ └─ ruoyi-sentinel-dashboard // sentinel控制台模块 [8718] -│ └─ ruoyi-snailjob-server // 任务调度控制台模块 [8800,17888] -├─ plus-ui // 前端框架 [80] -├─ config/nacos // nacos配置文件(需复制到nacos配置中心使用) -│ └─ sentinel-ruoyi-gateway.json // sentinel对接gateway限流配置文件 -│ └─ seata-server.properties // seata服务配置文件 -│ └─ application-common.yml // 所有应用主共享配置文件 -│ └─ datasource.yml // 所有应用共享数据源配置文件 -│ └─ ruoyi-auth.yml // auth 模块配置文件 -│ └─ ruoyi-gateway.yml // gateway 模块配置文件 -│ └─ ruoyi-gen.yml // gen 模块配置文件 -│ └─ ruoyi-job.yml // job 模块配置文件 -│ └─ ruoyi-monitor.yml // monitor 模块配置文件 -│ └─ ruoyi-resource.yml // resource 模块配置文件 -│ └─ ruoyi-sentinel-dashboard.yml // sentinel 控制台 模块配置文件 -│ └─ ruoyi-snailjob-server.yml // snailjob 控制台 模块配置文件 -│ └─ ruoyi-system.yml // systen 模块配置文件 -│ └─ ruoyi-workflow.yml // workflow 模块配置文件 -├─ config/grafana // grafana配置文件(需复制到grafana使用) -│ └─ Nacos.json // Nacos监控页面 -│ └─ SLS JVM监控大盘.json // JVM监控页面 -│ └─ Spring Boot 2.1 Statistics.json // SpringBoot监控页面 -├─ sql // sql脚本 -├─ docker // docker 配置脚本 -├─ .run // 执行脚本文件 -├─ .editorconfig // 编辑器编码格式配置 -├─ LICENSE // 开源协议 -├─ pom.xml // 公共依赖 -├─ README.md // 框架说明文件 -~~~ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md deleted file mode 100644 index 290a4f9c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/home.md +++ /dev/null @@ -1,137 +0,0 @@ - -
    - -- - - -# 平台简介 -
    - -[![码云Gitee](https://gitee.com/dromara/RuoYi-Cloud-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Cloud-Plus) -[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Cloud-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Cloud-Plus) -[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Cloud-Plus/blob/master/LICENSE) -[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Cloud-Plus) -
    -[![RuoYi-Cloud-Plus](https://img.shields.io/badge/RuoYi_Cloud_Plus-2.2.1-success.svg)](https://gitee.com/dromara/RuoYi-Cloud-Plus) -[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.1-blue.svg)]() -[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() -[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() - -> RuoYi-Cloud-Plus `微服务通用权限管理系统` 重写 RuoYi-Cloud 全方位升级(不兼容原框架) - -> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
    -活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 - -> 系统演示: [传送门](https://gitee.com/dromara/RuoYi-Vue-Plus/wikis/pages?sort_id=4836388&doc_id=1469725) 分布式集群版本(功能一致) - -# 本框架与RuoYi的功能差异 - -| 功能 | 本框架 | RuoYi | -|-------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| -| 前端项目 | 采用 Vue3 + TS + ElementPlus 重写 | 基于Vue2/Vue3 + JS | -| 后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 | 模块相互注入耦合严重难以扩展 | -| 后端代码风格 | 严格遵守Alibaba规范与项目统一配置的代码格式化 | 代码书写与常规结构不同阅读障碍大 | -| 分布式注册中心 | 采用 Alibaba Nacos 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Nacos 自行搭建纯官方版本不可靠 | -| 分布式配置中心 | 采用 Alibaba Nacos 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Nacos 自行搭建纯官方版本不可靠 | -| 服务网关 | 采用 SpringCloud Gateway 框架扩展了多种功能
    例如:内网鉴权、请求体缓存、跨域配置、请求响应日志等 | 采用 SpringCloud Gateway 功能单一 | -| 负载均衡 | 采用 SpringCloud Loadbalancer 扩展支持了开发团队路由 便于多团队开发调试 | 采用 SpringCloud Loadbalancer 功能单一 | -| RPC远程调用 | 采用 全新 Apache Dubbo 3.X 历史悠远不用多说 | 采用 feign 功能有限编写方式 网络波动大 不稳定 | -| 分布式限流熔断 | 采用 Alibaba Sentinel 源码集成便于调试扩展与二次开发 框架还为其增加了各种监控 | 采用 Alibaba Sentinel 自行搭建纯官方版本不可靠 | -| 分布式事务 | 采用 Alibaba Seata 源码集成对接了Nacos与各种监控 简化了搭建部署流程 | 采用 Alibaba Seata 自行搭建纯官方版本 搭建繁琐与Nacos不挂钩 代码内使用方式怪异等 | -| Web容器 | 采用 Undertow 基于 XNIO 的高性能容器 | 采用 Tomcat | -| 权限认证 | 采用 Sa-Token、Jwt 静态使用功能齐全 低耦合 高扩展 | Spring Security 配置繁琐扩展性极差 | -| 权限注解 | 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验
    角色与权限校验支持多种条件 如 `AND` `OR` 或 `权限 OR 角色` 等复杂表达式 | 只支持是否存在匹配 | -| 关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer
    可同时使用异构切换(支持其他 mybatis-plus 支持的所有数据库 只需要增加jdbc依赖即可使用 达梦金仓等均有成功案例) | 支持 Mysql、Oracle 不支持同时使用、不支持异构切换 | -| 缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 | Redis 简单 get set 支持 | -| Redis客户端 | 采用 Redisson Redis官方推荐 基于Netty的客户端工具
    支持Redis 90%以上的命令 底层优化规避很多不正确的用法 例如: keys被转换为scan
    支持单机、哨兵、单主集群、多主集群等模式 | Lettuce + RedisTemplate 支持模式少 工具使用繁琐
    连接池采用 common-pool Bug多经常性出问题 | -| 缓存注解 | 采用 Spring-Cache 注解 对其扩展了实现支持了更多功能
    例如 过期时间 最大空闲时间 组最大长度等 只需一个注解即可完成数据自动缓存 | 需手动编写Redis代码逻辑 | -| ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多
    例如多租户插件 分页插件 乐观锁插件等等 | 采用 Mybatis 基于XML需要手写SQL | -| SQL监控 | 采用 p6spy 可输出完整SQL与执行时间监控 | log输出 需手动拼接sql与参数无法快速查看调试问题 | -| 数据分页 | 采用 Mybatis-Plus 分页插件
    框架对其进行了扩展 对象化分页对象 支持多种方式传参 支持前端多排序 复杂排序 | 采用 PageHelper 仅支持单查询分页 参数只能从param传 只能单排序 功能扩展性差 体验不好 | -| 数据权限 | 采用 Mybatis-Plus 插件 自行分析拼接SQL 无感式过滤
    只需为Mapper设置好注解条件 支持多种自定义 不限于部门角色 | 采用 注解+aop 实现 基于部门角色 生成的sql兼容性差 不支持其他业务扩展
    生成sql后需手动拼接到具体业务sql上 对于多个Mapper查询不起作用 | -| 数据脱敏 | 采用 注解 + jackson 序列化期间脱敏 支持不同模块不同的脱敏条件
    支持多种策略 如身份证、手机号、地址、邮箱、银行卡等 可自行扩展 | 无 | -| 数据加解密 | 采用 注解 + mybatis 拦截器 对存取数据期间自动加解密
    支持多种策略 如BASE64、AES、RSA、SM2、SM4等 | 无 | -| 数据翻译 | 采用 注解 + jackson 序列化期间动态修改数据 数据进行翻译
    支持多种模式: `映射翻译` `直接翻译` `其他扩展条件翻译` 接口化两步即可完成自定义扩展 内置多种翻译实现 | 无 | -| 多数据源框架 | 采用 dynamic-datasource 支持市面大部分数据库
    通过yml配置即可动态管理异构不同种类的数据库 也可通过前端页面添加数据源
    支持spel表达式从请求头参数等条件切换数据源 | 基于 druid 手动编写代码配置数据源 配置繁琐 支持性差 | -| 多数据源事务 | 采用 dynamic-datasource 支持多数据源不同种类的数据库事务回滚 | 不支持 | -| 数据库连接池 | 采用 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下 | 采用 druid bug众多 社区维护差 活跃度低 配置众多繁琐性能一般 | -| 数据库主键 | 采用 雪花ID 基于时间戳的 有序增长 唯一ID 再也不用为分库分表 数据合并主键冲突重复而发愁 | 采用 数据库自增ID 支持数据量有限 不支持多数据源主键唯一 | -| WebSocket协议 | 基于 Spring 封装的 WebSocket 协议 扩展了Token鉴权与分布式会话同步 不再只是基于单机的废物 | 无 | -| SSE推送 | 采用 Spring SSE 实现 扩展了Token鉴权与分布式会话同步 | 无 | -| 序列化 | 采用 Jackson Spring官方内置序列化 靠谱!!! | 采用 fastjson bugjson 远近闻名 | -| 分布式幂等 | 参考美团GTIS防重系统简化实现(细节可看文档) | 手动编写注解基于aop实现 | -| 分布式任务调度 | 采用 SnailJob 天生支持分布式 统一的管理中心 支持多种数据库 支持分片重试DAG任务流等 | 采用 Quartz 基于数据库锁性能差 集群需要做很多配置与改造 | -| 分布式日志中心 | 采用 ELK 业界成熟解决方案 实时收集所有服务的运行日志 快速发现定位问题 | 无 | -| 分布式搜索引擎 | 采用 ElasticSearch、Easy-Es 以 Mybatis-Plus 方式操作 ElasticSearch | 无 | -| 分布式消息队列 | 采用 支持 Kafka、RocketMQ、RabbitMQ 各种 延迟消息 事务消息 流消息 | 无 | -| 分布式消息总线 | 采用 SpringCloud Bus 实现事件总线 跨服务通知 支持 Kafka、RocketMQ、RabbitMQ | 无 | -| 分库分表功能 | 采用 Apache Sharding-Proxy 代理服务无入侵支持分库分表 只需编写分库分表规则即可 | 无 | -| 文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储
    支持权限管理 安全可靠 文件可加密存储 | 采用 本机文件存储 文件裸漏 易丢失泄漏 不支持集群有单点效应 | -| 云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 | 不支持 | -| 短信 | 支持 阿里、腾讯 只需在yml配置好厂家密钥即可使用 接口化支持扩展其他厂家 | 不支持 | -| 邮件 | 采用 mail-api 通用协议支持大部分邮件厂商 | 不支持 | -| 接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释
    只需把注释写好 无需再写一大堆的文档注解了 | 采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成 | -| 校验框架 | 采用 Validation 支持注解与工具类校验 注解支持国际化 | 仅支持注解 且注解不支持国际化 | -| Excel框架 | 采用 Alibaba EasyExcel 基于插件化
    框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等 | 基于 POI 手写实现 功能有限 复杂 扩展性差 | -| 工作流支持 | 支持各种复杂审批 转办 委派 加减签 会签 或签 票签 等功能 | 无 | -| 工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 | 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等 | -| 服务监控框架 | 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
    实时监控服务状态 框架还为其扩展了在线日志查看监控 | 无 | -| 全方位监控报警 | 采用 Prometheus、Grafana 多样化采集 多模板大屏展示 实时报警监控 提供详细的搭建文档 | 无 | -| 链路追踪 | 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
    用了它即可实时查看请求经过的每一处每一个节点 | 无 | -| 代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面
    降低80%的开发量 把精力都投入到业务设计上
    框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 | 代码生成原生结构 只支持单数据源生成 | -| 部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 | 原生jar部署 其他环境需手动下载安装 自行搭建 | -| 项目路径修改 | 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 | 需要做很多改造 文档说明有限 | -| 国际化 | 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 | 只提供基础功能 其他需自行编写扩展 | -| 代码单例测试 | 提供单例测试 使用方式编写方法与maven多环境单测插件 | 只提供基础功能 其他需自行编写扩展 | -| Demo案例 | 提供框架功能的实际使用案例 单独一个模块提供了很多很全 | 无 | - -## 本框架与RuoYi的业务差异 - -| 业务 | 功能说明 | 本框架 | RuoYi | -|--------|-----------------------------------------|-----|------------------| -| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | -| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | -| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | -| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | -| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | -| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | -| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | -| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | -| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | -| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | -| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | -| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | -| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | -| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | -| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | -| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | -| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | -| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | -| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | - -## 演示图例 - -| | | -|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| -| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md deleted file mode 100644 index 19492b1e..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/1.Xinit.md +++ /dev/null @@ -1,87 +0,0 @@ -# 1.X项目初始化 -- - - -### 项目分支说明 -`master` 主分支 稳定发布分支
    -`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
    -`2.X` 新2.X大版本分支
    -`future/*` 新功能预览分支 - -### 项目必备环境 -> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 - -* oracle jdk 8 11 (暂时不支持 17 不支持大于 jdk8_202 因为202是最后一个免费版本) -* mysql 5.7 8.0 (5.6未适配可能会有问题) -* oracle 11g 12c -* postgres 13 14 -* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) -* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 -* maven 3.6.3 3.8.X -* nodejs >= 12 -* npm 6.X 8.X (7.X确认有问题) -* nacos >= 2.X(框架1.3.0内置nacos) -* sentinel 框架内置 -* seata 框架内置 - -### 需勾选 maven 对应环境 -![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") - -### 默认 `JDK8` 如有变动 需更改以下配置 - -![输入图片说明](https://foruda.gitee.com/images/1686813181851830778/2dd7954c_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1686813189749486666/c526486c_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1686813196981178511/cd218705_1766278.png "屏幕截图") - -### sql导入 -将sql导入到与sql文件名对应的数据库(不要放到一个库下)
    - -![输入图片说明](https://foruda.gitee.com/images/1678981513725772842/8097a816_1766278.png "屏幕截图") - -### 使用内置 `ruoyi-naocs` 服务 从这开始 - -> 更改 ruoyi-nacos 数据库地址 - -![输入图片说明](https://foruda.gitee.com/images/1664422006264405180/cac5afc6_1766278.png "屏幕截图") - -**其余流程同下方步骤一致** - -### 自建 Nacos 从这开始 - -**Nacos 数据库指向 ry-config 数据库(此处重点: 此数据库为定制数据 未使用此库会无法读取配置)** - -> 将项目 `config/nacos` 下所有配置 复制到 `nacos` 内(建议手动复制内容 防止编码不一致问题) - -![输入图片说明](https://foruda.gitee.com/images/1678979826345958752/913142c9_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678979856705927770/75cc1e8c_1766278.png "屏幕截图") - -> 更改 `主pom文件` 对应环境的 `nacos` 地址 - -![输入图片说明](https://foruda.gitee.com/images/1678979881888833924/7e6a191f_1766278.png "屏幕截图") - -### 更改 `Nacos` 自定义配置 - -**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改** - -> `application-common.yml` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979889410167794/100db4ab_1766278.png "屏幕截图") - -> `datasource.yml` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979894464784408/0d020c07_1766278.png "屏幕截图") - -> `seata-server.properties` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979902433843257/12da2839_1766278.png "屏幕截图") - -### 使用内置 `ruoyi-seata-server` 服务 从这开始 - -执行 `ry-seata.sql` 文件 初始化服务端数据库
    -修改 `nacos` 内的 `seata-server.properties` 的数据库地址
    -启动 `ruoyi-seata-server` 服务即可 - -### 服务启动顺序说明 - -1. 必须启动基础建设: mysql redis nacos
    -2. 可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启) sentinel(影响熔断限流) monitor(影响监控) xxljob(影响定时任务)
    -3. 必须启动应用服务: gateway auth system
    -4. 可选启动应用服务: resource(影响资源使用 文件上传 邮件 短信等) gen(代码生成) job(影响定时任务) demo(影响demo使用) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md deleted file mode 100644 index bdc653bc..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/deploy.md +++ /dev/null @@ -1,118 +0,0 @@ -# 应用部署 -- - - -## 版本 >= 1.3.0 - -### 请优先阅读 [idea环境配置](/ruoyi-cloud-plus/quickstart/idea_environment.md) - -## 手动部署 - -在服务器安装 `mysql` `redis` `nginx` `minio` 等其他组件 - -将项目内 `docker/` 文件夹下的文件内容 放到对应的组件内
    -例如: 将项目内 `docker/nginx/nginx.conf` 配置文件 复制到 `nginx` 配置内
    -将项目内 `docker/redis/redis.conf` 配置文件 复制到 `redis` 配置内
    - -并修改相关参数如 `前端页面存放位置` `后端Ip地址` 等使其生效 - -jar包部署后端服务 打包命令如下 -```mvn -mvn clean install -D maven.test.skip=true -P prod -``` -前端参考下方前端部署章节 - - -## docker 后端部署 - -### 请优先阅读 [idea环境配置](https://gitee.com/dromara/RuoYi-Cloud-Plus/wikis/pages?sort_id=5985190&doc_id=2056143) - -**重点: 一知半解的必看** -> [docker安装](https://lionli.blog.csdn.net/article/details/83153029)
    -> [docker-compose安装](https://lionli.blog.csdn.net/article/details/111220320)
    -> [docker网络模式讲解](https://lionli.blog.csdn.net/article/details/109603785)
    -> [docker 开启端口 2375 供外部程序访问](https://lionli.blog.csdn.net/article/details/92627962) - -### 将配置使用FTP上传到根目录 -idea拖拽文件到远程目录即可上传
    -![输入图片说明](https://foruda.gitee.com/images/1662109450908169859/eaac9299_1766278.png "屏幕截图") - -### 给docker分配文件夹权限 -**重点注意: 一定要确保目录 `/docker` 及其所有子目录 具有写权限 如果后续出现权限异常问题 重新执行一遍分配权限** -![输入图片说明](https://foruda.gitee.com/images/1662109847279259882/3a2202c1_1766278.png "屏幕截图") -```shell -chmod -R 777 /docker -``` -### 构建应用镜像 - -**1.需要先使用maven打包成jar包**
    -![输入图片说明](https://foruda.gitee.com/images/1662110477410977621/c6931c42_1766278.png "屏幕截图") - -**2.执行构建**
    -> 项目初始化后会自动生成构建镜像的运行配置
    -配置好docker连接之后 运行如下即可构建对应的应用镜像 - -**重点注意: idea2024及以上版本要求必须在本地安装docker才可以执行如下操作** - -![输入图片说明](https://foruda.gitee.com/images/1662110192257483752/0f754b47_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1662120029312793237/89dee3e5_1766278.png "屏幕截图") - -**3.结构讲解**
    -右键编辑 即可看到内部配置
    - -![输入图片说明](https://foruda.gitee.com/images/1662458355500139498/eaa26036_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1662458446794722159/32c086a7_1766278.png "屏幕截图") - - -### 创建基础服务 - -```shell -docker-compose up -d mysql nginx-web redis minio -``` - -### 创建中心服务(需要先构建服务镜像) - -1.X -```shell -docker-compose up -d nacos seata-server sentinel ruoyi-monitor ruoyi-xxl-job-admin -``` - -2.X -```shell -docker-compose up -d nacos seata-server sentinel ruoyi-monitor ruoyi-snailjob-server -``` - -### 创建业务服务(需要先构建服务镜像) - -```shell -docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system ruoyi-resource -``` - -### docker其他操作(idea的docker插件 推荐使用) -![输入图片说明](https://foruda.gitee.com/images/1662458296425228696/90b4b4f8_1766278.png "屏幕截图") - - -## 前端部署 - -执行打包命令 -```shell -# 打包正式环境 -npm run build:prod -``` -打包后生成打包文件在 `ruoyi-ui/dist` 目录
    -将 `dist` 目录下文件(不包含 `dist` 目录) 上传到部署服务器 `docker/nginx/html` 目录下(手动部署放入自己配置的路径即可)
    -![输入图片说明](https://foruda.gitee.com/images/1662110914769648699/07f344c4_1766278.png "屏幕截图")
    -重启 `nginx` 服务即可 - - -### 如需更改后端代理路径或者后端ip地址的话往下看 - -更改`nginx.conf`配置文件代理路径(注意: /开头/结尾) - -![输入图片说明](https://foruda.gitee.com/images/1660185698211067202/屏幕截图.png "屏幕截图.png") - -更改前端`.env.环境` 文件内的 `VITE_APP_BASE_API` - -![输入图片说明](https://foruda.gitee.com/images/1724318035232137124/5d035a09_1766278.png "屏幕截图") - -更改`nginx.conf`配置文件后端ip地址 - -![输入图片说明](https://foruda.gitee.com/images/1660185711265558730/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md deleted file mode 100644 index 8d68fa4d..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/extend_project.md +++ /dev/null @@ -1,42 +0,0 @@ -# 基于 RuoYi-Cloud-Plus 的扩展项目列表 -- - - -### 精品PR 欢迎投稿 -| 功能介绍 | PR地址 | -|-------------------------------------|------------------------------------------------------| -| 拖拽图片调整显示顺序 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/173 | -| 增加Jasypt加密库对配置文件加密 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/177 | -| 使用富文本wangeditor5替换Quill | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/213 | -| sentinel持久化nacos动态更改 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/37 | -| 集成screw数据库文档功能模块 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/42 | -| Excel导入模板增加批注支持 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/222 | -| 压缩包处理工具 支持本地文件/目录+oss文件/网络文件混合 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/44 | -| 添加websocket模块 支持satoken鉴权 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/65 | -| 数据库字段加解密(支持 base64 aes rsa sm2 sm4) | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/274 | -| 增加liquibase迁移数据库 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/299 | -| 增加OSS模块支持本地环境 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/353 | -| 扩展模块独立集成flyway | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/439 | -| 扩展模块独立集成go-view大屏看板 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/445 | -| 基于AmazonS3协议的分片上传 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/130 | -| 扩展forest http客户端 声明式http请求 二次封装像工具类 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/547 | -| 增加短链接生成工具 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/515 | -| 新增oss预签名上传工具组合使用异步客户端分片 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/522 | -| 新增规则引擎LiteFlow,SQL持久化接入,支持可视化页面 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/552 | -| 一键部署到私有Nexus仓库 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/181 | -| 服务状态监控发送邮件钉钉等 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/568 | -| 登录验证支持2FA验证 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/578 | - -### 欢迎投稿 项目介绍+项目地址 - - -| 项目介绍 | 项目地址 | -|--------------------------------|-------------------------------------------------------------------------| -| 分布式集群扩展 | https://gitee.com/dromara/RuoYi-Vue-Plus | -| Plus学习笔记(常规功能) | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-vue-plus/home | -| Plus学习笔记(微服务组件) | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-cloud-plus/home | -| 基于uniapp+TmUI从0开发 支持H5/小程序/安卓 | https://gitee.com/dapppp/ruoyi-plus-miniapp | -| 基于RuoYi-App框架二次修改使用Uniapp+Vue3 | https://gitee.com/wangying110166/ruo-yi-uni-app-plus | -| 基于RuoYi-App框架对接Plus后端 | https://gitee.com/FnTop/RuoYi-App-Plus | -| 基于vben(ant-design-vue)前端项目 | https://gitee.com/dapppp/ruoyi-plus-vben | -| 基于vue-next-admin的vue3+ts前端 | https://gitee.com/thiszhc/RuoYi-Vue3-UI | -| MybatisFlex版本 | https://gitee.com/yhan219/ruoyi-cloud-flex | - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md deleted file mode 100644 index 25a5fa3c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/idea_environment.md +++ /dev/null @@ -1,38 +0,0 @@ -# idea环境配置 -- - - -## 配置项目编码 -![输入图片说明](https://foruda.gitee.com/images/1662107706295343419/e27065a9_1766278.png "屏幕截图") - -## 配置运行看板 -![输入图片说明](https://foruda.gitee.com/images/1662108673306567278/8af97b47_1766278.png "屏幕截图") -### 配置spring与docker看板 -![输入图片说明](https://foruda.gitee.com/images/1662111392476935892/6b6760fb_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1662108865191892425/3c045999_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1662108877322329668/ddb6d93d_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1662108894122798039/6a53a38c_1766278.png "屏幕截图") - -## 配置服务器SSH连接 -进入 `Settings -> Tools -> SSH Configurations` 点击加号创建SSH连接配置
    -填写 服务器IP 用户名 密码 端口号 点击 Test Connection 测试连接
    -![输入图片说明](https://foruda.gitee.com/images/1662107776533098115/bd78467b_1766278.png "屏幕截图") -使用Terminal 工具 点击箭头找到上方创建的SSH连接配置
    -选择即可进入SSH连接界面 在这里可以对服务器进行命令操作
    -![输入图片说明](https://foruda.gitee.com/images/1662108010120640495/c70f9f9a_1766278.png "屏幕截图") - -## 配置服务器FTP连接 -进入 `Settings -> Build-> Deployment` 点击加号 选择SFTP 创建 FTP 连接配置
    -选择之前创建好的SSH配置 点击 Test Connection 测试连接
    -![输入图片说明](https://foruda.gitee.com/images/1662107899553257979/e2eeb7fd_1766278.png "屏幕截图") -在IDEA上方工具栏 找到 `Tools -> Deployment -> Browse Remote Host` 打开远程界面
    -点击箭头找到我们上方配置的SFTP连接配置 即可连接到服务器的文件目录
    -![输入图片说明](https://foruda.gitee.com/images/1662107974682787233/b8a601fd_1766278.png "屏幕截图") - -## 配置Docker连接 -### 可操作远程docker与构建上传docker镜像(代替原来maven docker插件) -tcp连接需要开放服务器2375端口
    -ssh需要使用上方的SSH连接配置
    -建议使用SSH连接
    -![输入图片说明](https://foruda.gitee.com/images/1662108188005932060/75872bf8_1766278.png "屏幕截图") -配置好之后 在运行窗口会多出一个Docker图标 双击即可连接远程docker
    -可以查看容器实时日志 启动 重启 停止 等操作
    -![输入图片说明](https://foruda.gitee.com/images/1662108250902891875/b82d022b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md deleted file mode 100644 index f6d4fadc..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/init.md +++ /dev/null @@ -1,102 +0,0 @@ -# 2.X项目初始化 -- - - -### 项目分支说明 - -`2.X` 主分支 新2.X版本 稳定发布分支
    -`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
    -`future/*` 新功能预览分支 - -### 项目必备环境 -> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 - -**注意: 禁止使用 `oraclejdk`(由于spring的bug导致打包运行会报错)** - -**Spring官方推荐使用JDK https://bell-sw.com/pages/downloads/** - -![输入图片说明](https://foruda.gitee.com/images/1720080025744223375/0213a652_1766278.png "屏幕截图") - -* openjdk-17/21 或 graalvm-community-jdk-17/21 [下载地址](https://github.com/graalvm/graalvm-ce-builds/releases) 版本 -* mysql 5.7 8.0 (其他版本未测试 如其他版本没问题 可以告知咱们) -* oracle >= 12c (其他版本未测试 如其他版本没问题 可以告知咱们) -* postgres 13 14 (其他版本未测试 如其他版本没问题 可以告知咱们) -* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) -* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 -* maven >= 3.8.X -* nodejs 18.18 (其他版本未测试 如其他版本没问题 可以告知咱们) -* npm >= 8.X (7.X确认有问题) -* idea 2022 2024 (一定不要使用2023后果自负 bug太多影响项目开发) -* nacos >= 2.X(框架已经内置 采用nacos官方jar包) -* sentinel 框架内置(采用sentinel官方jar包) -* seata 框架内置(采用seata官方jar包) - -### 需勾选 maven 对应环境 - -![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") - -### 默认 `JDK17` 如有变动 需更改以下配置 - -![输入图片说明](https://foruda.gitee.com/images/1678941027820943505/c688e01e_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678941120518807034/4d56fcc9_1766278.png "屏幕截图") - -### sql导入 - -将sql导入到与sql文件名对应的数据库(不要放到一个库下)
    -默认数据库为mysql如需使用其他数据库 看这里 => [多数据库数据源](../framework/extend/dynamic_datasource.md)
    - -![输入图片说明](https://foruda.gitee.com/images/1717122730708924506/7f3aaecf_1766278.png "屏幕截图") - -### 使用内置 `ruoyi-naocs` 服务 从这开始 - -> 更改 ruoyi-nacos 数据库地址 - -![输入图片说明](https://foruda.gitee.com/images/1664422006264405180/cac5afc6_1766278.png "屏幕截图") - -**其余流程同下方步骤一致** - -### 自建 Nacos 从这开始 - -**Nacos 数据库指向 ry-config 数据库(此处重点: 此数据库为定制数据 未使用此库会无法读取配置)** - -> 将项目 `config/nacos` 下所有配置 复制到 `nacos` 内(建议手动复制内容 防止编码不一致问题) - -**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
    -**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
    -**注意: 不懂就不要乱改配置文件内容 框架内所有功能都是配置好的!!!不要画蛇添足**
    - -![输入图片说明](https://foruda.gitee.com/images/1678979826345958752/913142c9_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678979856705927770/75cc1e8c_1766278.png "屏幕截图") - -> 更改 `主pom文件` 对应环境的 `nacos` 地址 - -![输入图片说明](https://foruda.gitee.com/images/1678979881888833924/7e6a191f_1766278.png "屏幕截图") - -### 更改 `Nacos` 自定义配置 - -**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
    -**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
    -**忠告: 微服务配置相当复杂 请勿在不懂原理的情况下乱改**
    - -> `application-common.yml` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979889410167794/100db4ab_1766278.png "屏幕截图") - -> `datasource.yml` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979894464784408/0d020c07_1766278.png "屏幕截图") - -> `seata-server.properties` 更改 - -![输入图片说明](https://foruda.gitee.com/images/1678979902433843257/12da2839_1766278.png "屏幕截图") - -### 使用内置 `ruoyi-seata-server` 服务 从这开始 - -执行 `ry-seata.sql` 文件 初始化服务端数据库
    -修改 `nacos` 内的 `seata-server.properties` 的数据库地址
    -启动 `ruoyi-seata-server` 服务即可 - -### 服务启动顺序说明 - -1. 必须启动基础建设: mysql redis nacos
    -2. 可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启) sentinel(影响熔断限流) monitor(影响监控) snailjob(影响定时任务)
    -3. 必须启动应用服务: gateway auth system
    -4. 可选启动应用服务: resource(影响资源使用 websocket 文件上传 邮件 短信等) workflow(工作流) gen(代码生成) job(影响定时任务) demo(影响demo使用) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md deleted file mode 100644 index 907c7fc7..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/power_job_init.md +++ /dev/null @@ -1,33 +0,0 @@ -# 搭建PowerJob任务调度中心(2.X分支已废弃) -- - - -### 废弃原因 - -接到大量投诉 使用困难 用法诡异 各种问题等 - -### 配置调度中心客户端 -> 查看ruoyi-job配置文件(默认情况下无需做任何更改) -> -![输入图片说明](https://foruda.gitee.com/images/1688013407489024239/9b619e0d_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `server-address` 为调度中心地址 -* `server-name` 为调度中心服务名 -* `app-name` 为执行器组账户名(需在调度中心注册方可登录查看) - -### 启用调度中心 -**需执行 ry-job.sql 默认账号密码 `ruoyi-worker` `123456` 账号在数据库里 可以在页面修改密码** -
    - -![输入图片说明](https://foruda.gitee.com/images/1688634898607827011/8853b387_1766278.png "屏幕截图") - -> 在 `ruoyi-visual -> ruoyi-powerjob-server` 启动 -> -![输入图片说明](https://foruda.gitee.com/images/1688013606234848334/cf2028cd_1766278.png "屏幕截图") - -> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-powerjob-server服务的配置文件**) -> -![输入图片说明](https://foruda.gitee.com/images/1688013663152608235/6c5d6a9c_1766278.png "屏幕截图") - -> 也可配置邮件发送 钉钉推送 和 mongodb存储 -> -![输入图片说明](https://foruda.gitee.com/images/1687335842722317559/f875c07a_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md deleted file mode 100644 index 25c21ebb..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/snail_job_init.md +++ /dev/null @@ -1,38 +0,0 @@ -# 搭建SnailJob任务调度中心(2.2.0新功能) -- - - - -### 视频介绍 - -[Snail job任务调度中心:轻松掌握任务管理、重试机制和任务编排](https://www.bilibili.com/video/BV19i421m7GL/) - -### 配置调度中心客户端 -> 修改主服务配置文件 -> - -![输入图片说明](https://foruda.gitee.com/images/1716175076777941469/db565dc1_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `server.server-name` 为调度中心服务名(自动从Nacos获取服务 支持动态扩容调度中心) -* `server.address` 为调度中心地址(服务名优先 ip垫底) -* `server.port` 为调度中心通信端口 -* `token` 为组通信校验token(可在调度中心组配置更换) -* `group-name` 为执行器组 -* `namespace` 作用域(不同作用域相互隔离请勿填错) - -### 启用调度中心 -**需执行 ruoyi-job.sql 默认账号密码 `admin` `admin` 账号在数据库里 可以在页面修改密码** -
    - -![输入图片说明](https://foruda.gitee.com/images/1688634898607827011/8853b387_1766278.png "屏幕截图") - -> 在 `ruoyi-visual -> ruoyi-snailjob-server` 模块启动 -> -![输入图片说明](https://foruda.gitee.com/images/1716175119324078438/ca667a0c_1766278.png "屏幕截图") - -> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-snailjob-server服务的配置文件 支持多种不同数据库**) -> -![输入图片说明](https://foruda.gitee.com/images/1688013663152608235/6c5d6a9c_1766278.png "屏幕截图") - -### 快速入门 - -[Snailjob快速入门 基本使用介绍](https://juejin.cn/post/7412955032092442675) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md deleted file mode 100644 index 121a094d..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-cloud-plus/quickstart/worker_init.md +++ /dev/null @@ -1,52 +0,0 @@ -# 工作流初始化 -- - - - -### 注意事项 - -设置 RabbitMQ 配置 `application-common.yml` 配置文件 (可使用其他例如 kafka、rocketmq 详见 ruoyi-common-bus 模块) - -此功能用于跨服务同步流程与业务状态 MQ安装方式可参考文档扩展功能 - -![输入图片说明](https://foruda.gitee.com/images/1718728432072816698/47eadbb1_1766278.png "屏幕截图") - - -### 工作流使用及配置方式 - -1.找到项目中bpmn文件夹 - -![输入图片说明](https://foruda.gitee.com/images/1714211764058540441/5c8b97af_5363069.png "屏幕截图") - -2.启动项目找到流程定义通过**部署流程文件**将bpmn文件夹下**模型.zip**上传 - -![输入图片说明](https://foruda.gitee.com/images/1714211950485333575/1e2b3ff4_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212113004821592/96586e69_5363069.png "屏幕截图") - -3.导入**模型.zip**后将会出现以下列表,默认使用**leave1**,test_leave为请假申请表名称 - -![输入图片说明](https://foruda.gitee.com/images/1714212222766335759/1227bbd6_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212493602552742/9e0258b1_5363069.png "屏幕截图") - -**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** - -![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") - - -4.新增一条请假申请,提交后将会得到如下信息 - -![输入图片说明](https://foruda.gitee.com/images/1714212617432902105/3609f6ef_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212630860787365/2922d38e_5363069.png "屏幕截图") - -5.关于如何切换一个新的流程使用,当前默认使用得KEY为leave1 ,我们切换到leave2使用,我们只需点击绑定业务将表名绑定,重新发起一个新的请假申请就可以得到一个新的流程信息 - -![输入图片说明](https://foruda.gitee.com/images/1714212876442323110/4554ea95_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714213037864274694/613149f5_5363069.png "屏幕截图") - -**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** - -![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212963457174382/add768db_5363069.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md deleted file mode 100644 index 9fd7aad1..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/_sidebar.md +++ /dev/null @@ -1,64 +0,0 @@ - -- **特别赞助** -- [![输入图片说明](https://foruda.gitee.com/images/1704162419429172656/d0521e59_1766278.png "2024-01-02=>2028-01-02")](http://ccflow.org/?frm=ryPlus) -- [![输入图片说明](https://foruda.gitee.com/images/1705569347386939952/3f187980_1766278.jpeg "2024-01-18=>2025-01-18")](http://www.shuduokeji.com) -- [![输入图片说明](https://foruda.gitee.com/images/1711681233267310022/2ffbcff2_1766278.png "2024-03-29=>2025-03-29")](https://www.jnpfsoft.com/index.html?from=plus-doc) - - -* **简介** - * [项目简介](/ruoyi-vue-plus/home.md) - * [更新日志](/ruoyi-vue-plus/changlog.md) -* **快速开始** - * [项目初始化](/ruoyi-vue-plus/quickstart/init.md) - * [5.X新功能介绍](/ruoyi-vue-plus/quickstart/5.Xnew.md) - * [4.X项目初始化](/ruoyi-vue-plus/quickstart/4.Xinit.md) - * [工作流初始化](/ruoyi-vue-plus/quickstart/worker_init.md) - * [搭建Admin监控](/ruoyi-vue-plus/quickstart/admin_init.md) - * [搭建SnailJob调度中心](/ruoyi-vue-plus/quickstart/snail_job_init.md) - * [(废弃)搭建PowerJob调度中心](/ruoyi-vue-plus/quickstart/power_job_init.md) - * [(废弃)搭建XXLJob调度中心](/ruoyi-vue-plus/quickstart/xxl_job_init.md) - * [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) - * [应用部署](/ruoyi-vue-plus/quickstart/deploy.md) - * [扩展项目](/ruoyi-vue-plus/quickstart/extend_project.md) -* **框架功能** - * [项目结构](/ruoyi-vue-plus/framework/tree.md) - * [软件架构图](/ruoyi-vue-plus/framework/architecture_diagram.md) - * 框架相关 - * [创建新模块](/ruoyi-vue-plus/framework/association/new_module.md) - * [修改包名](/ruoyi-vue-plus/framework/association/update_package_name.md) - * [接口文档](/ruoyi-vue-plus/framework/association/doc.md) - * [修改应用路径](/ruoyi-vue-plus/framework/association/update_url.md) - * [国际化](/ruoyi-vue-plus/framework/association/i18n.md) - * 基础功能 - * [系统用户相关](/ruoyi-vue-plus/framework/basic/user.md) - * [权限控制](/ruoyi-vue-plus/framework/basic/permissions_control.md) - * [导出功能](/ruoyi-vue-plus/framework/basic/export.md) - * [导入功能](/ruoyi-vue-plus/framework/basic/import.md) - * [参数校验](/ruoyi-vue-plus/framework/basic/param_check.md) - * [代码生成](/ruoyi-vue-plus/framework/basic/code_generate.md) - * [分页功能](/ruoyi-vue-plus/framework/basic/page.md) - * [OSS功能](/ruoyi-vue-plus/framework/basic/oss.md) - * [数据权限](/ruoyi-vue-plus/framework/basic/permissions.md) - * [接口放行](/ruoyi-vue-plus/framework/basic/interface_release.md) - * [多租户功能](/ruoyi-vue-plus/framework/basic/tenant.md) - * [第三方授权功能](/ruoyi-vue-plus/framework/basic/social.md) - * [客户端管理功能](/ruoyi-vue-plus/framework/basic/client.md) - * 扩展功能 - * [多数据源](/ruoyi-vue-plus/framework/extend/dynamic_datasource.md) - * [短信模块](/ruoyi-vue-plus/framework/extend/sms.md) - * [邮件功能](/ruoyi-vue-plus/framework/extend/mail.md) - * [防重幂等](/ruoyi-vue-plus/framework/extend/idempotent.md) - * [数据脱敏](/ruoyi-vue-plus/framework/extend/sensitive.md) - * [API加解密](/ruoyi-vue-plus/framework/extend/api_encrypt.md) - * [数据加解密](/ruoyi-vue-plus/framework/extend/encrypt.md) - * [翻译功能](/ruoyi-vue-plus/framework/extend/translation.md) - * [WebSocket功能](/ruoyi-vue-plus/framework/extend/websocket.md) - * [SSE功能](/ruoyi-vue-plus/framework/extend/sse.md) - * [Skywalking链路监控](/ruoyi-vue-plus/framework/extend/skywalking.md) - * [对接MaxKey单点登录](/ruoyi-vue-plus/framework/extend/maxkey.md) - * [对接TOPIAM单点登录](/ruoyi-vue-plus/framework/extend/topiam.md) - * 功能说明 - * [事务相关](/ruoyi-vue-plus/framework/explain/transaction.md) - * [单元测试](/ruoyi-vue-plus/framework/explain/test.md) - * [主键使用说明](/ruoyi-vue-plus/framework/explain/key.md) - * [关于多表查询](/ruoyi-vue-plus/framework/explain/about_join.md) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md deleted file mode 100644 index ac8eb907..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/changlog.md +++ /dev/null @@ -1,2028 +0,0 @@ -# 更新日志 -- - - - -## v5.2.2 - 2024-08-26 - -### 重大改动 - -* 增加 ruoyi-common-sse 模块 支持SSE推送 比ws更轻量更稳定的推送 -* 增加 springboot snailjob 等 actuator 账号密码认证 杜绝内外网信息泄漏问题 -* 增加 重构代码生成器 集成anyline开源框架 支持400+种数据库适配 - -### 依赖升级 - -* update springboot 3.2.6 => 3.2.9 -* update snailjob 1.0.1 => 1.1.2 -* update mapstruct-plus 1.4.3 => 1.4.4 -* update hutool 5.8.27 => 5.8.31 解决hutool不兼容jakarta问题 -* update anyline 8.7.2-20240808 -* update sms4j 3.2.1 => 3.3.2 -* update redisson 3.31.0 => 3.34.1 -* update mapstruct-plus 1.3.6 => 1.4.3 -* update lombok 1.18.32 => 1.18.34 -* update easyexcel 3.3.4 => 4.0.2 -* update springdoc 2.5.0 => 2.6.0 -* update flowable 7.0.0 => 7.0.1 - -### 功能更新 - -* update 优化 去除日志部署环境判断 通过日志级别控制 -* update 优化 忽略租户与忽略数据权限支持嵌套使用(感谢 amadeus5201) -* update 优化 租户相关controller 增加租户开关配置控制是否注册 -* update 优化 移除 alibaba ttl 与线程池搭配有问题(可传递但无法清除与更新) -* update 优化 个人中心编辑 忽略数据权限 -* update 优化 兼容部分用户不想给用户分配角色与部门的场景 -* update 优化 租户套餐重名校验 -* update 优化 部门下存在岗位不允许删除 -* update 优化 角色编辑状态未校验问题 -* update 优化 用户脱敏增加编辑权限标识符 -* update 优化 代码生成器 自动适配oss翻译 -* update 优化 临时升级 undertow 版本 解决虚拟线程溢出问题 -* update 优化 支持通过配置文件关闭工作流 -* update 优化 增加mybatis-plus填充器兜底策略 -* update 优化 TenantSpringCacheManager 处理逻辑 -* update 优化 角色权限判断 -* update 优化 增加删除标志位常量优化查询代码 -* update 优化 监控使用独立web依赖 -* update 优化 更多脱敏策略(感谢 hemengji) -* update 优化 设置nginx sse相关代理参数 -* update 优化 调整默认推送使用SSE -* update 优化 Monitor监控服务通知分类打印(感谢 AprilWind) -* update 优化 限流注解 又写key又不是表达式的情况 -* update 优化 WorkflowUtils查询用户信息发送消息未查询邮件和手机号(感谢 yanzy) -* update 优化 注释掉其他数据库 jdbc 依赖 由用户手动添加 -* update 优化 oracle snailjob 兼容低版本oracle索引名称长度限制 -* update 优化 数据权限支持通过菜单标识符获取数据所有权 -* update 优化 数据权限支持自定义连接符 -* update 优化 TestDemo 删除前校验数据权限 -* update 优化 更换docker镜像底层系统 避免无字体情况 - -### 问题修复 - -* fix 修复 三方登录构建去除无用代码 -* fix 修复 多线程对同一个session发送ws消息报错问题 -* fix 修复 依赖漏洞 限制部分依赖版本 -* fix 修复 excel 基于其他字段 合并错误问题 -* fix 修复 一级缓存key未区分租户问题 -* fix 修复 id字符串格式转换错误问题 -* fix 修复 登出无法正确删除对应的租户数据问题 -* fix 修复 登录错误锁定不区分租户问题 -* fix 修复 转换模型缺少分类字段 -* fix 修复 权限标识符处理未设置成功状态问题 -* fix 修复 无法导入 bpmn 类型文件问题 - -### 前端改动 - -* update element-plus 2.7.5 => 2.7.8 -* update vue 3.4.25 => 3.4.34 -* update vite 5.2.10 => 5.2.12 -* add 增加 使用 vueuse 编写 sse 推送功能 -* update 优化 使用匹配模式简化预编译配置 -* update 优化 时间搜索组件统一 -* update 优化 oss 配置按钮 使用ossConfig权限标识符与oss权限分离 -* update 优化 类型报错问题 -* update 优化 切换租户后刷新首页 -* update 优化 实现表格行选中切换 -* update 优化 使用 vueuse 重构 websocket 实现 -* update 优化 代码生成器编辑页禁用缓存 防止同步后页面不更新问题 -* update 优化 调整默认推送使用SSE -* fix 修复 租户套餐导出路径错误问题 -* fix 修复 登出后重新登录 sse推送报错问题 - - -## v5.2.1 - 2024-07-09 - -### 功能更新 - -* update 优化 更改prod环境 snailjob状态 默认启用 -* update 优化 替换过期方法 -* update 优化 租户列表接口 避免登录之后列表被域名过滤 -* update 优化 获取用户账户方法 LoginHelper#getUsername(感谢 AprilWind) -* update 优化 用户ID查询角色列表代码实现(感谢 AprilWind) -* update 优化 大数据量下join卡顿问题 使用子查询提高性能 -* update 优化 修改路由name命名规则 防止重复路由覆盖问题(感谢 玲娜贝er) -* update 优化 修改 snailjob 默认端口 避免与系统内置端口冲突问题 -* update 优化 isTenantAdmin 空校验 -* update 优化 webscoket 配置与异常拦截 -* update 优化 更新 redis 密码策略(密码必填 升级需注意) -* update 优化 更新使用 Spring 官方推荐 JDK -* update 优化 StreamUtils 抽取 findFirst findAny 方法 -* update 优化 工作流相关代码方法 - -### 问题修复 - -* fix 修复 postgres flowable sql 缺失字段问题 -* fix 修复 新版上传未设置acl问题 -* fix 修复 get路径特殊规则 导致 actuator 泄漏问题 [issue#4f9ceb0a](https://gitee.com/dromara/RuoYi-Vue-Plus/commit/4f9ceb0a8057284a0d9d69da58df630d8bc2e84f) -* fix 修复 pg数据库 用户查询报错问题 -* fix 修复 isLogin 方法抛异常无法正常返回值问题 - -### 前端改动 - -* update 优化 工作流选人改为懒加载窗口 -* update 优化 路由name重复检查 -* update 优化 eslint 语法 -* update 优化 动态创建组件实例时, 设置路由name为组件名 解决缓存问题 -* fix 修复 由于没有await 导致执行顺序不可控 -* fix 修复 富文本编辑器 添加之后内容未清理问题 - -## v5.2.0 - 2024-06-20 - -### 重大改动 - -* 集成 flowable 增加工作流相关功能(感谢 May) -* 集成 snailjob 移除 powerjob(投诉的人太多使用成本太高)(感谢 dhb52) -* 升级 aws s3 升级到 2.X 性能大幅提升 -* 优化 数据权限 数据加密 使用预扫描mapper注解提升代码性能(感谢 老马) -* 新增 caffeine 减少将近90%的redis查询提高性能 - -### 依赖升级 - -* update springboot 3.1.7 => 3.2.6 支持虚拟线程 -* update springboot-admin 3.1.8 => 3.2.3 -* update mybatis-plus 3.5.4 => 3.5.7 适配更改代码 -* update springdoc 2.2.0 => 2.5.0 -* update easyexcel 3.3.3 => 3.3.4 -* update redisson 3.24.3 => 3.31.0 -* update lombok 1.18.30 => 1.18.32 -* update sms4j 2.2.0 => 3.2.1 支持自定义配置key 可用于多厂商多租户等 -* update satoken 1.37.0 -> 1.38.0 -* update hutool 5.8.22 => 5.8.26 -* update mapstruct-plus 1.3.5 => 1.3.6 -* update lock4j 2.2.5 => 2.2.7 -* update dynamic-ds 4.2.0 => 4.3.1 - -### 功能更新 - -* update 优化 三方登录不同域名问题 采用新方案 -* update 优化 获取aop代理的方式 减少与其他使用aop的功能冲突的概率 -* update 优化 token无效时关闭ws连接(感谢 AprilWind) -* update 优化 移除表单构建菜单(没有可用组件 用处不大以后再考虑) -* update 优化 切换动态租户 默认线程内切换(如需全局 手动传参) -* update 优化 代码生成注释,删除无用引入(感谢 AprilWind) -* update 优化 代码生成 el-radio 标签过期属性 -* update 优化 异常处理器自动配置 -* update 优化 文件下载使用对流下载降低内存使用(感谢 PhoenixL) -* update 优化 去除gc日志参数(有需要自己加) -* update 优化 拆分异常处理器 -* update 优化 常规web异常状态码 -* update 优化 设置静态资源路径防止所有请求都可以访问静态资源 -* update 优化 redis 对Long值的存储类型不同问题 -* update 优化 去除加密请求类型限制 -* update 优化 mp多租户插件注入逻辑 -* update 优化 RedisUtils 支持忽略租户 -* update 优化 更新ip地址xdb文件 -* update 优化 验证码背景色改为浅灰色 -* update 优化 mybatis依赖设置为可选依赖 避免出现不应该注入的情况 -* update 优化 GET 方法响应体支持加密 -* update 优化 excel插件合并策略 去除被合并单元格的非首行内容(感谢 司猫子) -* update 优化 下拉选接口数据权限 -* update 优化 OssFactory 获取实例锁性能 -* update 优化 使用翻译注解简化用户查询 调整用户查询逻辑 -* update 优化 框架整体提高查询性能 -* update 优化 将p6spy配置文件统一放置到 common-mybatis 插件包内 - -### 新增功能 - -* add 新增 分布式锁Lock4j异常拦截器 -* add 新增 个人中心-在线设备管理 -* add 新增 岗位编码与部门编码并将岗位调整到部门下(感谢 AprilWind) -* add 新增 BaseMapperPlus提供可选是否抛异常selectVoOne方法(感谢 秋辞未寒) -* add 新增 用户、部门、角色、岗位 下拉选接口与代码实现优化 -* add 增加 StringUtils.isVirtual 方法 -* add 增加 JustAuth 整合 TopIam 单点登录 - -### 问题修复 - -* fix 修复 websocket clientid 参数不走mvc拦截器 无法生效问题 -* fix 修复 oss未使用租户 拼接租户id null问题 -* fix 修复 用户昵称修改后未清除对应缓存问题(感谢 zhuweitung) -* fix 修复 图片预览问题(感谢 AprilWind) -* fix 修复 三方账号可以绑定多平台账号问题 -* fix 修复 主建错别字(感谢 good) -* fix 修复 兼容redis5.0出现的问题 -* fix 修复 部分浏览器无法获取加密响应头问题 -* fix 修复 用户未设置部门 登录报错问题 -* fix 修复 excel 表达式字典 下拉框导出格式错误 -* fix 修复 提升锁的作用域 并采用双重校验锁(感谢 fanc) -* fix 修复 用户登录查询部门缓存无法获取租户id问题 -* fix 修复 关闭租户功能 三方登录报错问题 - - -### 前端改动 - -* update element-plus 2.7.5 -* update vite 5.2.10 -* update vue 3.4.25 -* update vue-router 4.3.2 -* update nodejs 升级到最低 18.18.0 -* update 优化 跟密码相关的默认前端关闭防重功能 -* update 优化 点击左边菜单时页面空白或者刷新整个页面的问题 -* update 优化 el-select 与 el-input 全局样式 -* update 优化 首页打开topNav不展开菜单问题 -* update 优化 支持全局开启或关闭接口加密功能 -* update 优化 密码校验策略增加非法字符限制 -* update 优化 图片上传组件增加压缩功能支持 可自行开关(感谢 fengheguai) -* update 优化 request请求类判断请求头方式 -* update 优化 更改客户端状态接口 使用clientId传参 -* update 优化 ws开关改为常开(vite5修复了崩溃bug) -* fix 修复 移动端下 无法展开菜单问题 -* fix 修复 面板因为min width原因收缩不全 -* fix 修复 文件预览大写后缀不展示的问题(感谢 北桥) -* fix 修复 i18n无感刷新问题 -* fix 修复 websocket 非index页面刷新无法重连问题 - -## v5.1.2 - 2023-12-22 - -### 依赖升级 - -* update springboot 3.1.5 => 3.1.7 -* update mybatis-boot 3.0.2 => 3.0.3 优化依赖传递 -* update powerjob 4.3.3 => 4.3.6 -* update easyexcel 3.3.2 => 3.3.3 -* update transmittable-thread-local 2.14.2 => 2.14.4 -* update justauth 1.16.5 => 1.16.6 -* update redisson 3.24.1 => 3.24.3 修复订阅重启连接超时问题 - -### 功能更新 - -* update 优化 为 admin 模块 单独增加 ratelimiter 模块 -* update 优化 验证码接口 增加限流配置 -* update 优化 excel合并注解会根据第一合并列的结果来决定后续的列合并 (感谢 Simple) -* update 优化 SocialUtils 代码 -* update 优化 删除无用异常类 -* update 优化 补全三方登录校验国际化 -* update 优化 sms组件 预留自动配置类 -* update 更新 关于数据库的说明 -* update 优化 sms组件 预留自动配置类 -* update 优化 将 OSS配置 改为全局模式 降低使用难度 保留sql便于用户自行扩展(常规项目用不上配置分多租户) -* update 优化 细化oss配置管理权限控制 -* update 优化 开启 redisson 脚本缓存 减少网络传输 -* update 优化 删除 hikaricp 官方不推荐使用的配置 jdbc4 协议自带校验方法 -* update 优化 减少 PlusSaTokenDao 不必要的查询优化性能 -* update 优化 更新用户异常提示 使用登录账号 -* update 优化 使用登录用户判断是否登录 提高效率 -* update 优化 重构 LoginHelper 将本地存储代码操作封装 -* update 优化 getTenantId 判断是否开启多租户 -* update 优化 Dockerfile 使用shell模式 支持环境变量传入jvm参数 -* update 优化 WebSocketUtils 连接关闭改为警告 -* update 优化 excel多sheet页导出 (感谢 May) -* update 优化 删除无用接口实现 -* update 优化 jvm参数调整 全面启用zgc -* update 优化 使用动态租户重构业务对租户的逻辑 -* update 优化 TenantHelper 动态租户支持函数式方法 -* update 优化 支持多租户绑定相同的三方登录 -* update 优化 更新用户登录信息方法忽略数据权限 -* update 优化 补全三方绑定时间字段 删除无用excel注解 -* update 优化 将登录记录抽取到监听器统一处理 -* update 优化 租户插件 ignoreTable 方法支持动态租户 - -### 新增功能 - -* add 新增 RedisUtils.setObjectIfExists 如果存在则设置方法 -* add 新增 丰富RedisUtils对List Set类型的操作 -* add 新增 翻译组件 用户昵称翻译实现 -* add 新增 响应加密功能 支持注解强制加密接口数据 (感谢 MichelleChung) - -### 问题修复 - -* fix 修复 selectDictTypeByType 查询方法错误问题 -* fix 修复 一些不正常类无法加载报错问题 -* fix 修复 powerjob sql脚本针对其他数据库转义符问题 (感谢 branches) -* fix 修复 MybatisSystemException 空指针问题 -* fix 修复 excel合并注解会根据第一合并列的结果来决定后续的列合并 -* fix 修复 session 多账号共用覆盖问题 改为 tokenSession 独立存储 -* fix 修复 token 失效后 登录获取用户null问题 -* fix 修复 powerjob部署方案 高版本nginx不生效问题 -* fix 修复 OssFactory 并发多创建实例问题 -* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 - -### 前端改动 - -* update 优化 用户头像 img 变量无确定类型问题 -* update 优化 细化oss配置管理权限控制 -* update 优化 明确打包命令 -* update 优化 代码中存在的警告 -* update 优化 前端白名单页面放行逻辑 -* update 优化 页面关于权限标识符说明 -* fix 修复 append-to-body 编写错误 (感谢 Ai3_刘小龙) -* fix 关闭动态路由tab页签时不清理组件缓存 (感谢 NickLuo) -* fix 删除重复环境变量ElUploadInstance (感谢 棉花) -* fix 修复 在线用户 强推按钮点击取消控制台警告问题 -* fix 修复 字典使用 default 样式报警告问题 - -## v4.8.2 - 2023-11-27 - -### 依赖升级 - -* update springboot 2.7.17 => 2.7.18 升级到2.X最终版本(官方停更) -* update mybatis-plus 3.5.3.2 => 3.5.4 -* update springboot 2.7.14 => 2.7.17 -* update satoken 1.36.0 => 1.37.0 -* update aws-java-sdk-s3 1.12.400 => 1.12.540 -* update vue-quill 1.1.0 => 1.2.0 - -### 功能更新 - -* update 优化 页面关于权限标识符说明 -* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 -* update 优化 部门数据权限使用默认兜底方案 -* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) -* update 优化 补全代码生成 columnList 接口参数注解缺失 -* update 优化 操作日志 部门信息完善 vue3页面 -* update 优化 AddressUtils 兼容linux系统本地ip -* update 优化 操作日志 部门信息完善 (感谢 柏竹) -* update 优化 数据权限 减少二次校验查询 -* update 优化 vue3 版本用户初始密码从字典查询 -* update 优化 富文本Editor组件检验图片格式 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 全局数据存储用户编号 -* update 优化 菜单管理类型为按钮状态可选 - -### 问题修复 - -* fix 修复 OssFactory 并发多创建实例问题 -* fix 修复 demo的form字段有误 (感谢 dhb52) -* fix 修复 延迟队列在投递消息未到达时间的时候 服务死机导致重启收不到消息 -* fix 修复 数据权限优化后 update delete 报null问题 -* fix 修复 五级路由缓存无效问题 -* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 -* fix 修复 内链iframe没有传递参数问题 -* fix 修复 外链带端口出现的异常 -* fix 修复 普通角色编辑使用内置管理员code越权问题 -* fix 修复 代码生成 是否必填与数据库不匹配问题 -* fix 修复 HeaderSearch组件跳转query参数丢失问题 -* fix 修复 树结构代码生成新增方法赋值错误 (感谢 这夏天依然平凡) - -## v5.1.1 - 2023-11-14 - -### 依赖升级 - -* update springboot 3.1.3 => 3.1.5 -* update springboot 2.7.14 => 2.7.17(扩展服务) -* update springboot-admin 3.1.5 => 3.1.7 -* update satoken 1.35.0.RC => 1.37.0 -* update mybatis-plus 3.5.3.2 => 3.5.4 适配mp新版本改动 -* update dynamic-ds 4.1.3 => 4.2.0 -* update bouncycastle 1.72 => 1.76 -* update poi 5.2.3 => 5.2.4 -* update redisson 3.23.2 => 3.24.1 -* update hutool 5.8.20 => 5.8.22 -* update lombok 1.18.26 => 1.18.30(适配支持jdk21) -* update vue-quill 1.1.0 => 1.2.0 - -### 功能更新 - -* update 优化 数据权限拦截器优先判断方法是否有效 提高性能减少无用sql解析 -* update 优化 适配 maxkey 新版本 -* update 优化 @Sensitive脱敏增加角色和权限校验 (感谢 盘古给你一斧) -* update 优化 部门数据权限使用默认兜底方案 -* update 优化 更改默认日志等级为info 避免日志过多(按需开启debug) -* update 优化 登录策略代码优化(感谢 David Wei) -* update 优化 补全代码生成 columnList 接口参数注解缺失 -* update 优化 nginx 配置支持 websocket -* update 优化 notice 新增通知公告发送ws推送 -* update 优化 websocket 模块减少日志输出 增加登录推送 -* update 优化 重构登录策略增加扩展性降低复杂度 -* update 优化 addressUtils 兼容linux系统本地ip -* update 优化 补全操作日志部门数据 -* update 优化 支持数据库操作在非web环境下切换租户 -* update 优化 排除powerjob无用的依赖 减少打包30M体积 -* update 优化 删除 satoken yml 时间配置 此功能已迁移至客户端管理 -* update 优化 redis 集群模式注释说明 -* update 优化 客户端禁用限制 -* update 优化 登录日志, 在线用户展示信息(增加 客户端, 设备类型)(感谢 MichelleChung) -* update 优化 限制框架中的fastjson版本 -* update 优化 数据权限 减少二次校验查询 -* update 优化 将部门id存入token避免过度查询redis -* update 优化 增加租户ID为Null错误日志 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) -* update 优化 为 sys_grant_type 字典增加样式 -* update 优化 代码生成 页面输入框样式 -* update 优化 全业务分页查询增加排序规则避免因where条件导致乱序问题 -* update 优化 登录接口租户id被强制校验问题 -* update 优化 加密模块 支持父类统一使用加密注解(感谢 Tyler Ge) -* update 优化 将graalvm镜像更新为openjdk镜像 需要的人自行切换即可 -* update 优化 部分使用者乱设权限导致无法获取用户信息 增加权限提示 -* update 优化 表格列的显示与隐藏小组件(感谢 bestrevens) -* update 优化 增加表单构建不能使用说明 -* update 优化 富文本Editor组件检验图片格式 -* update 优化 操作日志列表新增IP地址查询 -* update 优化 菜单管理类型为按钮状态可选 -* update 优化 用户初始密码从参数配置查询 -* update 优化 通过参数键名获取键值接口的返回体(感谢 David Wei) -* update 优化 字典标签支持数组和多标签(感谢 抓蛙师) - -### 新增功能 - -* add 新增 websocket 群发功能 -* add 新增 前端接入websocket接收消息(感谢 三个三) - -### 问题修复 - -* fix 修复 oss服务无法连接 导致业务异常问题 查询不应该影响业务 -* fix 修复 租户id为null 无法匹配字符串导致的嵌套key问题 -* fix 修复 部门管理orderNum排序失效问题 -* fix 修复 外链带端口出现的异常 -* fix 修复 普通角色编辑使用内置管理员code越权问题 -* fix 修复 代码生成 是否必填与数据库不匹配问题 -* fix 修复 用户注册接口校验用户名不区分租户问题 -* fix 修复 错误增加组导致的校验不生效问题 -* fix 修复 新增校验主键id问题 -* fix 修复 powerjob 使用 nginx 部署无法访问的问题 -* fix 修复 SysUserMapper 内标签使用错误(不影响使用) -* fix 修复 新增或编辑 SysOssConfig 数据后 推送到 redis 数据不完整 -* fix 修复 树表生成查询变量使用错误 -* fix 修复 个人信息修改密码接口隐藏新旧密码参数明文(感谢 bleachtred) -* fix 修复 删除字段后 * update sql 未更新问题 -* fix 修复 三方登录支付宝source与实际支付宝业务code不匹配问题 -* fix 修复 五级路由缓存无效问题 -* fix 修复 内链iframe没有传递参数问题 -* fix 修复 绑定第三方帐号参数“wechar”更正为“wechat” (感谢 scmiot) -* fix 修复 用户注册缺失 clientid 问题 -* fix 修复 HeaderSearch组件跳转query参数丢失问题 -* fix 修复 自定义字典样式不生效的问题 -* fix 修复 login 页面 loading 未关闭问题 - -## v4.8.1 - 2023-09-25 - -### 依赖升级 - -* update springboot 2.7.15 => 2.7.16 -* update springboot-admin 2.7.10 => 2.7.11 -* update satoken 1.35.0.RC => 1.36.0 -* update lombok 1.18.26 =. 1.18.30 -* update mybatis-plus 3.5.3.1 => 3.5.3.2 -* update easyexcel 3.3.1 => 3.3.2 -* update hutool 5.8.18 => 5.8.20 - -### 功能更新 - -* update 优化 重置密码注释参数中文解释错误 -* update 优化 getTokenActivityTimeout => getTokenActiveTimeout -* update 优化字典标签支持传分隔符分隔的字符串和数组,优化渲染效果 -* update 优化 控制台debuger位置错误问题 -* update 优化 TopNav 菜单样式 -* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 -* update 优化 用户管理 只查询未禁用的部门角色岗位数据 -* update 优化 岗位如果绑定了用户则不允许禁用 -* update 优化 部门与角色如果绑定了用户则不允许禁用 -* update 优化 加密实现 使用 EncryptUtils 统一处理 -* update 优化 excel导出字典转下拉框 无需标记index自动处理 -* update 优化 excel 导出字典默认转为下拉框 -* update 优化 删除一些跟 swagger 有关的字眼 避免误解 -* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 -* update 优化 RedisCacheController 注释错误 -* update 优化 xxljob 端口随着主应用端口飘逸 避免集群冲突 -* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 - -### 问题修复 - -* fix 修复 代码生成后 vo 定义 'serialVersionUID' 字段的不可序列化类 -* fix 修复 自定义字典样式不生效的问题 -* fix 修复 布局配置失效问题 -* fix 修复 新建用户可能会存在的越权行为 -* fix 修复 字典缓存删除方法参数错误问题 -* fix 修复 修复树模板父级编码变量错误 -* fix 修复 有界队列与优先队列 错误使用问题 -* fix 修复 升级 mp 版本导致的问题 -* fix 修复 vue3 版本注册页验证码不显示问题 -* fix 修复 加密模块数据转换异常问题 -* fix 修复 动态设置 token 有效期不生效问题 -* fix 修复 token 过期登出无法清理在线用户问题 - - -## v5.1.0 - 2023-09-05 - -# 开发历程 - -* 2023年5月 开始 5.1.0 计划 历经1个月的设计与讨论 -* 2023年6月 开始着手开发 历经2个多月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 -* 2023年8月 开始公测 历经将近1个月的公测与修复工作(期间成功支持多位使用者生产使用) -* 2023年9月初 正式发布(经过多个小伙伴的生产实践 已基本可尝试生产使用) -> 关于4.X的说明 由于SpringBoot2.X与vue2.X均在11月底停止维护
    -> 故而咱们vue版本4.X也无法再继续更新
    -> 介于4.X的用户量特别庞大 功能也非常的稳定
    -> 计划于11月底同Boot2.X一同停止更新但还会持续维护修复bug(修复的形式为直接提交到4.X分支停止发版)
    - -# 视频介绍 - -为了更好的让大家了解 5.1.0 作者录制了相关的视频 供大家快速了解上手 - -* 5.1.0 新功能与变更介绍: https://www.bilibili.com/video/BV1fj411y71X/ -* 搭建与运行: https://www.bilibili.com/video/BV1Fg4y137JK/ -* 生产环境搭建部署: https://www.bilibili.com/video/BV1mL411e7ha/ - -# 更新日志 - -### 重大更新 - -* [重大更新] 优化 相关代码 完成代码生成多数据源统一存储(感谢 WangBQ !pr349) -* [不兼容更新] 移除 原短信功能 集成更强大的 sms4j 短信工具包(感谢 友杰 !pr367) -* [不兼容更新] 对接 powerjob 实现分布式任务调度 删除原有 xxljob 原因为社区不更新功能太少只支持mysql(感谢 yhan219 !pr359) -* [重大更新] 新增 三方授权绑定登录功能 基于 justauth 支持市面上大部分三方登录(感谢 三个三 !pr370) -* [不兼容更新] 新增 客户端授权功能 不需要更改任何代码即可完成多端动态对接(感谢 Michelle.Chung !pr379) -* [重大更新] 新增 前后端接口请求加密传输 基于AES+RSA动态高强度加密(感谢 wdhcr !pr377) -* [重大更新] 新增 三方授权登录 对接 maxkey 单点登录 -* [不兼容更新] 优化 redis序列化配置 更改为通用格式(升级需清除redis所有数据) - -### 依赖升级 - -* update springboot 3.0.7 => 3.1.3 -* update springboot-admin 3.1.3 => 3.1.5 -* update springdoc 2.1.0 => 2.2.0 -* update spring-mybatis 3.0.1 => 3.0.2 -* update mybatis-plus 3.5.3.1 => 3.5.3.2 -* update easyexcel 3.2.1 => 3.3.2 -* update mapstruct-plus 1.2.3 => 1.3.5 解决修改实体类 idea不编译问题 -* update satoken 1.34.0 => 1.35.0.RC 优化过期配置 支持多端token自定义有效期 -* update dynamic-ds 3.6.1 => 4.1.3 支持 SpringBoot3 -* update sms4j 2.2.0 -* update hutool 5.8.18 => 5.8.20 -* update redisson 3.20.1 => 3.23.4 -* update lock4j 2.2.4 => 2.2.5 -* update aws-java-sdk-s3 1.12.400 => 1.12.540 -* update maven-surefire-plugin 3.0.0 => 3.1.2 - -### 功能更新 - -* update 优化 excel 导出合并 在初始化类时进行数据的处理 -* update 优化 简化 flatten 插件语法写法 -* update 优化 支持本地虚拟域名调试(感谢 代星登 !pr363) -* update 重构 将框架内的 swagger 命名更改为 springdoc 命名避免误解 -* update 重构 将系统内置配置放置到 common 包内独立加载 不允许用户随意修改 -* update 优化 切换 maven 仓库到 华为云(aliyun依赖不更新拉取不到) -* update 优化 升级 satoken 支持多端 token 自定义有效期功能 -* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 -* update 优化 在全局异常拦截器中增加两类异常处理 -* update 优化 提供powerjob完整sql脚本 降低用户使用难度 -* update 优化 StreamUtils 其他方法过滤null值(感谢 bleachtred !pr390) -* update 优化 powerjob 端口随着主应用端口飘逸 避免集群冲突 -* update 优化 角色权限支持仅本人权限查看 解决无法查看自己创建的角色问题 -* update 修改代码生成模版,日期范围统一采用addDateRange方法(感谢 LiuHao !pr397) -* update 优化 树表生成前端缺少 children 字段 -* update 优化 CryptoFilter null判断工具 -* update 优化 websocket 路径与 cloud 版本保持一致 -* update 优化 更新登录策略返回值(感谢 zlyx) -* update 修改代码生成模板,调整列表打开对话框和接口请求顺序 -* update 优化 SaInterceptor 拦截器判断 token 客户端id是否有效(感谢 zlyx !pr402) -* update 优化 excel 导出字典默认转为下拉框 -* update 优化 兼容 clientid 通过 param 传输 -* update 优化 excel导出字典转下拉框 无需标记index自动处理(感谢 一夏coco) -* update 优化 简化线程池配置 -* update 优化 屏蔽 powerjob 无用的心跳日志 -* update 优化 适配 mysql 8.0.34 升级连接机制 -* update 优化 加密实现 使用 EncryptUtils 统一处理 -* update 优化 删除字典无用状态字段(基本用不上 禁用后还会导致回显问题) -* update 优化 部门与角色如果绑定了用户则不允许禁用 -* update 优化 岗位如果绑定了用户则不允许禁用 -* update 优化 用户管理 只查询未禁用的部门角色岗位数据 -* update 优化 登录用户增加昵称返回 -* update 优化 将部门管理 负责人选项改为下拉框选择(感谢 Lionel !pr410) -* update 优化 全局异常处理器 业务异常不输出具体堆栈信息 减少无用日志存储 -* update 优化 登录用户缓存 去除冗余统一存储 -* update 优化 放宽菜单权限 角色关联菜单无需管理员 - -### 新增功能 - -* add 增加 RedisUtils 批量删除 hash key 方法 -* add 新增 Oss 上传 File 文件方法(感谢 jenn !pr362) -* add 增加 excel 导出下拉框功能 -* add 新增 RedisUtils.setObjectIfAbsent 如果不存在则设置方法 - -### 修复问题 - -* fix 修复 脱敏注解标记位置错误 -* fix 修复 OssClient 实例多租户相同key缓存覆盖问题 -* fix 修复 关闭多租户 脱敏判断问题 -* fix 修复 OssClient 切换服务 实例不正确问题(感谢 jenn !pr360) -* fix 修复 传参类型不正确导致 postgreSql 同步套餐报错问题 -* fix 修复 参数类型修改 未修改校验注解 -* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题(感谢 konbai !pr366) -* fix 修复 common-core 包使用aop注解 但未添加aop实现类导致单独使用报错问题 -* fix 修复 Mapper 多参数未加 @Param 注解问题 -* fix 修复 邮箱登录 查询值错误问题 -* fix 修复 用户篡改管理员角色标识符越权问题 -* fix 修复 字典缓存注解使用错误问题 -* fix 修复 查询部门下拉树未过滤数据权限问题 -* fix 修复 CacheName 缓存key存储错误问题 -* fix 修复 代码生成 前端添加或修改表单修改列生成问题 -* fix 修复 新增角色使用内置管理员标识符问题 -* fix 修复 代码生成 前端添加或修改表单修改列生成问题 -* fix 修复 token 过期登出无法清理在线用户问题 -* fix 修复 加密模块数据转换异常问题 -* fix 修复 可能导致异常类无法反序列化问题 -* fix 修复 代码生成 编辑按钮刷新列表问题 -* fix 修复 客户端编辑时授权类型变更未保存的问题(感谢 David Wei !pr400) -* fix 修复 有界队列与优先队列 错误使用问题 -* fix 修复 修复树模板父级编码变量错误 -* fix 修复 部署部分系统出现乱码问题 -* fix 修复 一级菜单无法显示问题 -* fix 修复 可能会存在的越权行为(感谢 丶Stone !pr416) -* fix 修复 代码生成页面参数缺少逗号问题 - -### 移除功能 - -* remove 移除原有短信功能(建议使用sms4j) -* remove 移除xxljob功能(建议使用powerjob) - - -## v4.8.0 - 2023-07-10 - -### 重大更新 - -* [重大更新] 新增 sms4j 短信融合框架整合(支持数十种短信厂商接入、发送限制、负载均衡等功能) -* [不兼容更新] 移除 原短信功能(建议使用新 sms4j 功能) -* [重要迁移] 迁移 vue3 前端到主仓库统一维护 - -### 依赖升级 - -* update springboot 2.7.11 => 2.7.13 -* update satoken 1.34.0 => 1.35.0.RC -* update easyexcel 3.2.1 => 3.3.1 -* update sms4j 2.2.0 - -### 功能更新 - -* update 优化 StreamUtils 方法过滤null值 -* update 优化 页签在Firefox浏览器被遮挡 -* update 优化 在全局异常拦截器中增加两类异常处理 -* update 优化 下载zip方法增加遮罩层(感谢@梁剑锋) -* update 优化 用户昵称非空校验 -* update 优化 修改角色如果未绑定用户则无需清理 -* update 优化 RepeatSubmitAspect 逻辑避免并发请求问题 -* update 优化 satoken 过期配置 支持多端token自定义有效期 -* update 优化 加密注解注释错误 -* update 优化 切换 maven 仓库到华为云(aliyun 不可用) -* update 优化 excel 导出存在合并项时在初始化类时进行数据的处理避免多次调用(感谢@yueye) -* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 - -### 新增功能 - -* add 新增 RedisUtils.setObjectIfAbsent 不存在则设置方法 -* add 新增 Excel 导出附带有下拉框(字典自动导出为下拉框) 可自定义多级下拉框(感谢@Emil.Zhang) -* add 新增 OssClient File 文件上传方法 -* add 增加 RedisUtils 批量删除 hash key 方法 - -### 问题修复 - -* fix 修复 新增角色使用内置管理员标识符问题 -* fix 修复 缓存监控图表 支持跟随屏幕大小自适应调整(感谢@抓蛙师) -* fix 修复 防重组件 错删注解问题 -* fix 修复 CacheName 缓存key存储错误问题 -* fix 修复 字典缓存注解使用错误问题 -* fix 修复 用户篡改管理员角色标识符越权问题 -* fix 修复 登录校验错误次数未达到上限时 错误次数缓存未设置有效时间问题 -* fix 修复 OssClient 切换服务 实例不正确问题 -* fix 修复 element ui 因版本而未被工具识别问题(感谢@梁剑锋) -* fix 修复 admin监控 切换tab页需要重复登录问题 - -## v5.0.0 - 2023-05-19 - -# 开发历程 - -* 2022年11月 开始5.X计划 历经2个月的设计与讨论 -* 2023年1月 开始着手开发 历经3个月的开发 特别感谢团队的小伙伴与一些热心的粉丝 参与功能开发与测试 -* 2023年4月 开始公测 历经将近2个月的公测与修复工作(期间成功支持多位使用者生产使用) -* 2023年5月底 正式发布 虽然已经有生产实践 但是springboot3.0与jdk17使用者还处于少数 另外5.X后续还有一些不兼容更新 求稳者建议在等一等 -* 关于4.X的说明 由于springboot2.X 与 vue2.X 匀在年底停止维护 故此4.X也将于年底同boot2一同停止维护 - -# 视频介绍 - -为了更好的让大家了解 5.X 作者录制了相关的视频 供大家快速了解上手 - -* 搭建与运行: https://www.bilibili.com/video/BV1Fg4y137JK/ -* 新功能与变更介绍: https://www.bilibili.com/video/BV1Us4y1m7ky/ -* 生产环境搭建部署: https://www.bilibili.com/video/BV1mL411e7ha/ - -# 更新日志 - -### 重大更新 - -* [不兼容升级] java 版本从 jdk 8 升级到 jdk 17 且需要使用 graalvm 运行(暂时未解决原生jdk存在的问题) -* [不兼容升级] springboot 升级 3.0 版本 -* [不兼容升级] 重构 项目模块结构 采用插件化结构 易扩展易解耦 -* [不兼容升级] com.sun.mail 更改为 jakarta.mail 修改最新写法 -* [不兼容升级] javax.servlet 替换为 jakarta.servlet 更新所有代码 -* [简化性升级] 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) -* [数据库改动] 更新 create_by update_by 字段类型 (保存用户id) -* [数据库改动] 新增 create_dept 字段 (保存创建部门id) -* [不兼容更新] system 模块 所有实体类均使用 bo|vo 规范化 -* [重大更新] 新增 多租户功能设计 整体框架代码结构与数据库更改 -* [重大更新] 新增 mapstruct-plus 替换 BeanUtil 与 BeanCopyUtils 工具 -* [不兼容更新] 重构 登录注解接口与cloud版本统一接口路径 -* [不兼容更新] 重构 BaseMapperPlus接口 去除 `@param Mapper` 泛型 -* [不兼容更新] 移除 vue2 前端工程 全面启用 vue3 -* [重大更新] 新增 vue3 + TS 版本前端(独立仓库后续与Cloud版本共用) -* [重大更新] 增加 websocket 模块 支持token鉴权 支持分布式集群消息同步 -* [重大更新] 框架文档全面翻新 https://plus-doc.dromara.org - -### 依赖升级 - -* update java 1.8 => 17 -* update springboot 2.7.7 => 3.0.7 -* update springboot-admin 2.7.10 => 3.0.4 -* update springdoc 1.6.14 => 2.1.0 -* update lock4j 2.2.3 => 2.2.4 -* update dynamic-ds 3.5.2 => 3.6.1 -* update easyexcel 3.1.5 => 3.2.1 -* update hutool 5.8.11 => 5.8.18 -* update redisson 3.19.2 => 3.20.1 -* update lombok 1.18.24 => 1.18.26 -* update spring-boot.mybatis 2.2.2 => 3.0.1 -* update mapstruct-plus 1.2.3 -* update maven-compiler-plugin 3.10.1 => 3.11.0 -* update maven-surefire-plugin 3.0.0-M7 => 3.0.0 -* update docker mysql 8.0.31 => 8.0.33 -* update docker nginx 1.22.1 => 1.32.4 -* update docker redis 6.2.7 => 6.2.12 -* update docker minio RELEASE.2023-04-13T03-08-07Z - -### 功能更新 - -* update 适配 AsyncConfig 替换过期继承类改为实现 AsyncConfigurer 接口 -* update 适配 redis 新版本配置文件写法 -* update 适配 获取redis 监控参数接口 替换过期语法 -* update 适配 sa-token 替换新依赖 sa-token-spring-boot3-starter -* update 适配 springboot-admin 改为最新 spring-security 写法 -* update 适配 springdoc 新版本配置方式 -* update 适配 ServletUtils 更换继承 JakartaServletUtil -* update 适配 新序列化注解 -* update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套) -* update 优化 调整 system entity 实体与 controller 包结构 -* update 优化 实体类中校验注解的提示信息 -* update 优化 使用 jdk17 语法优化代码 -* update 优化 所有 properties 文件改为注解启用 -* update 更新 docker 基础镜像 graalvm java17 -* update 优化 用户头像 改为存储 ossId 使用转换模块转为 url 展示 -* update 优化 重构 CellMergeStrategy 支持多级表头修复一些小问题 整理代码结构 -* update 优化 登录流程代码注释 - -### 新增功能 - -* add 新增 flatten-maven-plugin 插件统一版本号管理 -* add 新增 ip2region 实现离线IP地址定位库 - -### 移除功能 - -* remove 移除 BeanCopyUtils 工具类 与 JDK17 不兼容 -* remove 移除 devtools 依赖 并不好用(建议直接用idea自带的热更) -* remove 移除 vue2 前端工程 统一使用 vue3 工程 - -## v4.7.0 - 2023-05-08 - -### 依赖升级 - -* update springboot 2.7.9 => 2.7.11 修复 DoS 漏洞 -* update xxljob 2.3.1 => 2.4.0 -* update minio 升级至最新版 避免低版本信息泄漏问题 -* update hutool 5.8.15 => 5.8.18 -* update redisson 3.20.0 => 3.20.1 - -### 功能更新 - -* update 优化 更改 sys_oss_config 表注释 避免误解 -* update 项目正式入驻 dromara 开源社区 更改项目地址 -* update 全新 logo 全新背景图(设计师打造) -* update 优化代码生成 同步操作使用批量处理 -* update 重写项目 readme 说明 -* update 修改controller中校验直接返回R.fail -* update 更换默认用户头像 -* update 优化 限流注解 key 支持简单 spel 表达式 -* update 优化弹窗后导航栏偏移的问题 -* update 优化$tab.closePage后存在非首页页签时不应该跳转首页 -* update delete build style -* update 优化选择图标组件 -* update 移除vue-multiselect样式 -* update 优化固定头部页签滚动条被隐藏的问题 -* update 按代码规范补全重写注解 -* update 优化 极端情况获取LoginUser可能为null问题 -* update 优化 更改系统所有服务日志配置文件命名为 logback-plus.xml 避免与其他框架默认配置冲突 -* update 优化 加解密模块 将null判断下推防止任何可能的null出现 -* update 优化 调整配置文件错误注释 -* update 优化 在线用户token获取方式 -* update 优化 用户更改角色 踢掉角色相关所有在线用户 -* update 优化 下拉图标选择组件优化:1.已选择图标高亮回显 2.滚动条采用el-scrollbar -* update 优化 Vue的DictTag组件 当value没有匹配的值时 展示空value -* update 优化 恢复翻页/切换路由滚动功能 - -### 新增功能 - -* add 新增 ip2region 实现离线IP地址定位库 -* add 增加 邮箱验证码发送接口 -* add 增加 邮箱登陆接口 -* add 增加 EncryptUtils 加解密安全工具类 可以处理base64,aes,sm4,sm2,rsa,md5,sha256加解密 -* add 增加 EncryptUtils 类中增加国密sm3的不可逆加密算法 -* add 新增 忽略数据权限写法 防止异常不执行关闭问题 - -### 问题修复 - -* fix 修复 代码生成 点选按钮不生效问题 -* fix 修复 用户密码更新无效问题 -* fix 修复 findInSet 在mysql下方法搜索非数字字段时 无引号报错问题 -* fix 修复 oracle postgres 数据库日志表索引创建错误 -* fix 角色列表关联多表sort值都一样 导致排序不稳定、临时表没有原来的主键顺序 -* fix 修复 DefaultExcelResult 单词拼写错误 -* fix 修复页面切换时布局错乱的问题 -* fix 修复tab栏“关闭其他”异常的问题 -* fix 修复 加解密拦截器 对象属性为null问题 -* fix 修复 取消oss预览状态修改 图标变化不正常问题 -* fix 修复 开启TopNav后一级菜单路由参数设置无效问题 -* fix 修复 路由跳转被阻止时vue-router内部产生报错信息问题 -* fix 修复 缓存列表:多次清除操作,提示不变的问题 - -## v4.6.0 - 2023-03-13 - -### 重大更新 - -[重大更新] add 新增 基于 Mybatis 实现数据库字段加解密功能 -[重大更新] add 新增 通用翻译注解及实现(部门名、字典、oss、用户名) - -### 依赖升级 - -* update springboot 2.7.7 => 2.7.9 -* update easyexcel 3.1.5 => 3.2.1 -* update redisson 3.19.1 => 3.20.0 -* update hutool 5.8.11 => 5.8.15 (13与14有问题勿使用) -* update springdoc 1.6.14 => 1.6.15 -* update aws-java-sdk-s3 1.12.373 => 1.12.400 -* update element-ui 2.15.10 => 2.15.12 -* update lombok 1.18.24 => 1.18.26 - -### 功能更新 - -* update 优化 实体类中校验注解的提示信息 -* update 优化 修改 oss 配置页面开关说明 避免造成误解 -* update 优化 框架代码书写格式 -* update 优化 调整连接池默认参数 -* update 优化 `DictDataMapper` 注解标注过期 推荐使用 `@Translation` 注解 -* update 优化 部门更新接口 清理缓存 -* update 优化 获取菜单数据权限接口 删除无用角色属性与逻辑 -* update 优化 调整连接池最长生命周期 防止出现警告 -* update 优化 连接池增加 `keepaliveTime` 探活参数 -* update 优化 `DataPermissionHelper` 增加 `开启/关闭` 忽略数据权限功能 -* update 重构 `OssFactory` 加载方式 改为每次比对配置做实例更新 -* update 优化 `SaToken` 自定义扩展类 改为配置类注入 便于扩展 -* update 优化 启用 `sqlserver` 高版本语法 简化sql脚本语法 -* update 优化 更新角色后踢掉所有相关的登录用户 用户量过大会导致redis阻塞卡顿(应粉丝要求) -* update 优化 翻译组件 支持返回值泛型 支持多种类型数据翻译(例如: 根据主键翻译成对象) -* update 优化 限流注解使用 `SpringEl` 表达式动态定义 Key 与 message 国际化支持 -* update 优化 限流功能 `redis key` 生成规则 以 `功能头+url+ip+key` 格式 -* update 优化 只拦截系统内存在的路径 减少不必要的拦截造成的性能消耗 -* update 优化 `tagsView` 右选框,首页不应该存在关闭左侧选项 -* update 优化 `copyright 2023` -* update 优化 监控页面图标显示 -* update 优化 日志注解支持排除指定的请求参数 -* update 优化 业务校验优化代码 -* update 优化 日志管理使用索引提升查询性能 -* update 优化 框架时间检索使用时间默认值 `00:00:00 - 23:59:59` -* update 优化 oss 预览使用 `ImagePreview` 组件 - - -### 新增功能 - -* add 新增 `BeanCopyUtils#mapToMap` 方法 -* add 新增 `StringUtils` `splitTo` 与 `splitList` 方法 优化业务代码 -* add 新增 `EasyExcel` `@ExcelEnumFormat` 枚举类数据翻译注解 - - -### 问题修复 - -* fix 修复 新版本 `Redisson` 存在与 `springboot 2.X` 的兼容性问题 -* fix 修复 vue3 模板点击删除按钮后弹框显示`[object Object]`或控制台报错的问题 -* fix 修复 接口问题开关不生效问题 -* fix 修复 前端优化文件下载出现的异常 -* fix 修复 修改密码日志存储明文问题 -* fix 修复 用户密码注解误删暴露问题 -* fix 修复 代码生成 使用 `postgreSQL` 数据库查出已删除的字段 - - -## v4.5.0 - 2023-01-12 - -### 重大更新 - -* [重大更新] 使用 spring 事件发布机制 重构登录日志与操作日志 支持多事件监听无入侵扩展 -* 例如: 可以增加一个监听者将日志上传至ES等存储 对原有逻辑无影响 - -### 依赖升级 - -* update springboot 2.7.6 => 2.7.7 -* update springboot-admin 2.7.7 => 2.7.10 -* update mybatis-plus 3.5.2 => 3.5.3.1 -* update redisson 3.18.0 => 3.19.1 -* update sa-token 1.33.0 => 1.34.0 -* update easyexcel 3.1.3 => 3.1.5 -* update springdoc 1.6.13 => 1.6.14 -* update snakeyaml 1.32 => 1.33 -* update hutool 5.8.10 => 5.8.11 -* update aws-s3 1.12.349 => 1.12.373 -* update aliyun-sms 2.0.22 => 2.0.23 -* update tencent-sms 3.1.635 => 3.1.660 -* update echarts 4.9.0 => 5.4.0 -* update vue3 element-plus 2.2.21 => 2.2.27 - -### 功能更新 - -* update 优化 BaseMapperPlus 使用 MP V3.5.3 新工具类 Db 简化批处理操作实现 -* update 优化 将环境配置放到 pom 文件上方 便于查看使用 -* update 优化 代码生成与框架主体使用相同的主键生成器 全局统一避免问题 -* update 优化 系统登录 使用单表查询校验用户 避免多次 join 查询 -* update 优化 删除 vue3 模板无用参数 -* update 优化 xss 包装器 变量命名错误 -* update 优化 重构 ExcelUtil 全导出方法支持 OutputStream 流导出 不局限于 response -* update 优化 maven 地址切换回 aliyun 仓库 -* update 优化 去除无用 guava 依赖管理 项目中已无此依赖 -* update 优化 springdoc 配置鉴权头写死问题 增加持久化鉴权头配置 -* update 优化 验证码结果使用 spel 引擎自动计算 -* update 优化 弹窗内容过多展示不全问题 -* update 优化 删除 fuse 无效选项 maxPatternLength -* update 优化 minio 安装警告 使用新版本参数 -* update 优化 使用 spring 事件机制 重构 OssConfig 缓存更新 -* update 优化 抽取 SysLoginService recordLogininfor 记录登录信息方法 简化日志记录 -* update 优化 使用 spring 事件发布机制 重构登录日志与操作日志 -* update 优化 单元格合并判断 cellValue 是否相等方法调整 -* update 优化 去除 RedisConfig 无用继承 - -### 新增功能 - -* add 增加 GET 请求提交日期参数 默认格式化配置 -* add 增加 RedisUtils 检查缓存对象是否存在方法 - -### 问题修复 - -* fix 修复 根据 key 更新参数配置报null问题 -* fix 修复 树形下拉不能默认选中 -* fix 修复 读取 generator.yml 中文乱码问题 -* fix 修复 代码生成图片/文件/单选时选择必填无法校验问题 -* fix 修复 修改参数键名时 未移除过期缓存配置 -* fix 修复 用户注册 用户类型字段书写错误 -* fix 修复 文件名包含特殊字符(+、-、*...)的文件无法下载问题 -* fix 修复 短信校验模板参数传参错误 -* fix 修复 vue3 closeSidebar 这个方法定义的参数没有解构问题 - -## v4.4.0 - 2022-11-28 - -### 重大更新 -* [重大更新] 优化支持 oss 私有库功能(数据库字段改动) #cd9c3c3f -* [重大更新] 连接池由 druid 修改为 hikari 更新相关配置(原因可看文档) #1f42bd3d -* [重大更新] 移除 tlog(不支持UI界面 使用的人太少) 建议使用 skywalking -* [重大更新] 增加 skywalking 集成 默认注释不开启(使用看文档) - -### 依赖升级 -* update springboot 2.7.5 => 2.7.6 -* update springboot-admin 2.7.6 => 2.7.7 -* update satoken 1.31.0 => 1.33.0 -* update spring-doc 1.6.12 => 1.6.13 -* update easyexcel 3.1.1 => 3.1.3 -* update hutool 5.8.8 => 5.8.10 -* update redisson 3.17.7 => 3.18.0 -* update lock4j 2.2.2 => 2.2.3 -* update s3-adk 1.12.324 => 1.12.349 -* update mysql-docker 8.0.29 => 8.0.31 - -### 功能更新 -* update 优化 oss 云厂商增加 华为obs关键字 -* update 优化 冗余的三元表达式 -* update 优化 重置时取消部门选中 -* update 优化 新增返回警告消息提示 -* update 优化 hikari 参数顺序 最常用的放上面 删除无用 druid 监控页面 -* update 优化 p6spy 排除健康检查 sql 执行记录 -* update 优化 Dockerfile 创建目录命令 -* update 优化 将空‘catch’块形参重命名为‘ignored’ -* update 优化 使用本地缓存优化 excel 导出 数据量大字典转换慢问题 -* update 优化 字典转换实现 去除字符串查找拼接优化效率 -* update 优化 减小腾讯短信引入jar包的体积 -* update 消除Vue3控制台出现的警告信息 -* update 忽略不必要的属性数据返回 -* update 替换 mysql-jdbc 最新坐标 - -### 新增功能 -* add 新增 junit5 单元测试案例 #6e8ef308 -* add 增加 sys_oss_config access_policy 桶权限类型字段 -* add 增加 4.3-4.4 更新 sql 文件 -* add 新增 字典数据映射注解 #da94e898 -* add 增加 RedisUtils 获取缓存Map的key列表 - -### 问题修复 -* fix 修复 上传png透明图片 生成头像透明部分变成黑色 -* fix 修复 sqlserver sql文件 重复主键数据问题 -* fix 修复 sqlserver 特定情况下报 ssl 证书问题 默认关闭 ssl 认证 -* fix 修复 table中更多按钮切换主题色未生效修复问题 -* fix 修复 菜单激活无法修改其填充颜色 去除某些svg图标的fill="#bfbfbf"属性 -* fix 修复 使用缓冲流 导致上传异常问题 -* fix 修复 过滤器链使用IoUtil.read方法导致request流关闭 -* fix 修复 Log注解GET请求记录不到参数问题 -* fix 修复 某些特性的环境生成代码变乱码TXT文件问题 -* fix 修复 开启TopNav没有子菜单隐藏侧边栏 -* fix 修复 回显数据字典数组异常问题 - -### 移除功能 -* remove 移除过期 Anonymous 注解与其实现代码 -* remove 移除 tlog(不支持UI界面 使用的人太少) 建议使用 skywalking - -## v4.3.1 - 2022-10-24 - -### 依赖升级 -* update springboot 2.7.3 => 2.7.5 -* update springboot-admin 2.7.4 => 2.7.6 -* update sa-token 1.30.0 => 1.31.0 -* update springdoc 1.6.11 => 1.6.12 -* update poi 5.2.2 => 5.2.3 -* update hutool 5.8.6 => 5.8.8 -* update aws-s3 1.12.300 => 1.12.324 -* update aliyun-sms 2.0.18 => 2.0.22 -* update tencent-sms 3.1.591 => 3.1.611 -* update tlog 1.4.3 => 1.5.0 安全性升级 -* update snakeyaml 1.30 => 1.32 存在漏洞 -* update redisson 3.17.6 => 3.17.7 -* update nginx 1.21.6 => 1.22.1 存在漏洞 -* update element-ui 2.15.8 => 2.15.10 -* update core-js 3.19.1 => 3.25.3 - -### 功能更新 -* update 修改 差异命名与镜像名同步 -* update 优化 通用下载方法新增config配置选项 -* update 优化 日志操作中重置按钮时重复查询的问题 -* update 优化 `@Anonymous` 注解标注过期 使用 `@SaIgnore` 替换 -* update 优化 前端可以配置多排序参数支持依次排序 -* update 优化 oss管理 支持时间排序 -* update 优化 替换 sa-token 过期配置 -* update 优化 sa-token 拦截器注册 `SaTokenConfig#addInterceptors` 排除拦截路径配置 -* update 优化 vue3说明文件 编码问题 -* update 优化 导入更新用户数据前校验数据权限 -* update 优化 `R` 类 `isError` 和 `isSuccess` 改为静态方法 -* update 优化 获取用户信息getInfo接口 使用缓存数据获取 -* update 优化 选择按钮宽度 - -### 问题修复 -* fix 修复 用户导入存在则更新不生效 -* fix 修复 日志转换非json数据导致报错 -* fix 修复 控制台SQL日志打印时间格式化问题 -* fix 修复 不同网段因reset请求头导致下载导出跨域问题 -* fix 修复 在线用户设置永不过期 被过滤问题 -* fix 修复 在线用户设置永不过期 超时时间-1推送redis无效问题 -* fix 修复 snakeyaml 漏洞 强制升级依赖版本(临时处理等boot升级) -* fix 修复 开启账号同端互斥登录 被顶掉后登出报null异常问题 -* fix 修复 Redisson 设置 `NameMapper` 导致队列功能异常问题 -* fix 修复 文件上传组件格式验证问题 -* fix 修复 内部调用缓存不生效问题 -* fix 修复 主题颜色在Drawer组件不会加载问题 -* fix 修复 小屏幕上修改头像界面布局错位的问题 -* fix 修复 内链域名特殊字符替换 合并错误导致问题 -* fix 修复 nginx 漏洞 https://www.oschina.net/news/214309 - -## v4.3.0 - 2022-09-14 - -### 重大更新 -* [重大更新] 整合 springdoc 基于 javadoc 实现无注解零入侵生成接口文档 -* [重大更新] 重写 spring-cache 实现 更人性化的操作 支持注解指定ttl等一些参数 -* [不兼容更新] 移除 swagger 所属所有功能 建议使用 springdoc -* [重大更新] 移除maven docker插件 过于老旧功能缺陷大 使用idea自带的docker插件替代 - -### 依赖升级 -* update springboot 2.6.9 => 2.7.3 -* update springboot-admin 2.7.2 => 2.7.4 -* update redisson 3.17.4 => 3.17.6 -* update hutool 5.8.3 => 5.8.6 -* update okhttp 4.9.1 => 4.10.0 -* update lock4j 2.2.1 => 2.2.2 -* update aws-java-sdk-s3 1.12.248 => 1.12.300 修复依赖安全漏洞 -* update aliyun.sms 2.0.9 => 2.0.18 -* update tencent.sms 3.1.537 => 3.1.591 -* update guava 30.0-jre => 31.1-jre -* update springdoc 1.6.9 => 1.6.11 -* update druid 1.2.11 => 1.2.12 -* update dynamic-ds 3.5.1 => 3.5.2 - -### 功能更新 -* update 优化 短信接口实现类 `@Override` 注解 -* update 优化 登出方法代码逻辑 -* update 优化 代码中的一些魔法值 -* update 优化 使用 StreamUtils 简化业务流操纵 -* update 修改 oss 客户端自定义域名 统一使用https开关控制协议头 -* update 更新 监控过时配置 WebSecurityConfigurerAdapter 改为 bean 注入 -* update 修改 生成错误注释 -* update 优化 docker 部署方式 使用 host 模式简化部署流程 降低使用成本 -* update 修改 验证码开关变量名 -* update 优化 DateColumn 支持单模板多key场景 -* update 优化 redission 处理增加前缀 -* update 优化 缓存监控 相关代码 -* update 优化 部署脚本 防止出现权限问题 -* update 优化 多个相同角色数据导致权限SQL重复问题 -* update 优化 字典数据使用store存取 -* update 优化 布局设置使用el-drawer抽屉显示 -* update 更新框架文档 专栏与视频 链接地址 -* update 优化 OSS文件上传 主动设置文件公共读 适配天翼云OSS -* update 优化 表格上右侧工具条(搜索按钮显隐&右侧样式凸出) -* update 优化 前后端多环境部署保持一致 删除无用环境文件 -* update 优化 错误登录锁定与新增解锁功能 -* update 优化 getLoginId 增加必要参数空校验 -* update 使用 SpringCache注解 优化参数管理、字典管理、在线用户等业务缓存 -* update 优化 多角色数据权限匹配规则 -* update 优化 页面内嵌iframe切换tab不刷新数据 -* update 优化 调整 oss表key 与 ossconfig的service 字段长度不匹配 -* update 优化 操作日志密码脱敏 -* update 重构 QueueUtils 抽取通用方法 统一使用 适配优先队列新用法 - -### 新功能 -* add 增加 StreamUtils 流工具 简化 stream 流操纵 -* add 新增 缓存列表菜单功能 -* add 新增 获取oss对象元数据方法 -* add 增加 QueueUtils 操作普通队列的方法 - -### 问题修复 -* fix 修复 mysql sys_notice 与 sys_config 表主键类型长度不够问题 -* fix 修复 获取 SensitiveService 空问题 增加空兼容 -* fix 修复 代码生成首字母大写问题 -* fix 修复 minio 上传自定义域名回显路径错误问题 -* fix 修复 短信功能返回实体 SysSms 序列化问题 -* fix 修复 sqlserver 更新sql错误提交 -* fix 修复 RedisUtils 并发 set ttl 错误问题 -* fix 修复 防止主键字段名与'row'或'ids'一致导致报错的问题 -* fix 修复 幂等组件 逻辑问题导致线程变量未清除 -* fix 修复 脱敏没有实现类导致返回数据异常问题 -* fix 修复 用户导出字典使用错误 -* fix 修复 用户登录与短信登录 国际化格式不一致 -* fix 修复 BaseMapperPlus 方法命令不一致问题 -* fix 修复 短信功能是否启用判断不生效BUG -* fix 修复 xxljob prod 环境配置文件 数据库ip漏改 -* fix 修复 部署脚本 cp 命令缺少参数问题 -* fix 修复 菜单管理的一些操作问题 -* fix 修复 国际化文件提交为特殊编码问题 -* fix 修复 minio配置https遇到的问题 -* fix 修复 点击删除后点击取消控制台报错问题 -* fix 修复 文件/图片上传组件 第一次上传报错导致后续上传无限loading问题 -* fix 修复 postgresql 时间查询类型转换报错问题 -* fix 修复 部门与角色 状态导出字典使用错误 -* fix 修复 openapi结构体 因springdoc缓存导致多次拼接接口路径问题 -* fix 修复 没有权限的用户编辑部门缺少数据 -* fix 修复 oss配置删除内部数据id匹配类型问题 -* fix 修复 用户导入存在则更新不生效 -* fix 修复 日志转换非json数据导致报错 - -## v4.2.0 - 2022-06-28 -### 重大更新 -* [重大更新] 增加 `ruoyi-sms` 短信模块 整合 阿里云、腾讯云 短信功能 -* [重大改动] 基于 `AWS S3` 协议重新实现 OSS模块 支持自定义域名 -* [安全性] 优化 nginx 限制外网访问内网 actuator 相关路径(建议升级) -* [不兼容] 优化 文件与图片上传组件 使用id存储回显(升级的用户需要注意 上传组件返回值变成了 ossid 便于关联) -* [不兼容] 升级 mybatis-plus 3.5.2 解决新版本兼容性问题 关键字冲突修改(新增了很多关键字 升级的需要注意 冲突的关键字建议换一个命名) - -### 依赖升级 -* update springboot-admin 2.6.6 => 2.6.9 -* update springboot-mybatis 2.2.0 => 2.2.2 -* update sa-token 1.29.0 => 1.30.0 -* update hutool 5.7.22 => 5.8.3 -* update druid 1.2.8 => 1.2.11 -* update tlog 1.3.6 => 1.4.3 -* update easyexcel 3.0.5 => 3.1.1 去除cglib 支持jdk17 -* update xxl-job 2.3.0 => 2.3.1 -* update redisson 3.17.0 => 3.17.4 -* update mybatis-plus 3.5.1 => 3.5.2 -* update poi 4.1.2 => 5.2.2 性能大幅提升 -* update docker mysql 8.0.27 => 8.0.29 -* update docker nginx 1.21.3 => 1.21.6 -* update docker redis 6.2.6 => 6.2.7 -* update docker minio 2021-10-27 => 2022-05-26 - -### 功能更新 -* update 优化 redis 序列化 使用系统自带json工具 全局统一 -* update 优化 RedisUtils 重构过期方法 -* update 完善短信验证码发送接口 -* update 优化 弹窗点击遮罩层 默认不关闭 可在 main.js 修改 -* update 调整 CacheManager 使用系统 系统序列化器 -* update 调整 图片预览组件 去除无用根目录拼接 -* update 用户管理左侧树型组件增加选中高亮保持 -* update 优化 DataPermissionHelper 上下文存储 使用 SaToken 的请求存储器 -* update 优化 用户头像上传限制只能为图片格式 -* update 优化 redis 与 jackson 使用自动装配定制器简化配置 -* update 优化 getLoginUser 获取 使用一级缓存 -* update 增加 redis 无密码使用说明 -* update 手动配置 Undertow 缓冲池 消除运行警告 -* update 优化 表单构建按钮不显示正则校验 -* update 优化 oss 回显查询 使用 redis 缓存 -* update 优化 用户列表查询 剔除密码字段 -* update 优化 验证码 登录 登出 注册 等接口 使用匿名注解放行 -* update 修改 代码生成 controller 去除查询校验 由用户自行选择是否校验 -* update 优化 ExcelUtil 工具支持合并处理器 -* update 使用 SaStorage 优化 LoginHelper 一级缓存 避免 ThreadLocal 清理不干净问题 -* update 优化 新增用户与角色信息、用户与岗位信息逻辑 -* update 优化 代码生成 业务接口 增加事务回滚 -* update 优化 logback 删除无用配置 - -### 新功能 -* add 增加 MailUtils 邮件工具 -* add 增加 RedisUtils 操作原子值方法 -* add 增加 demo 短信演示案例 -* add 增加 获取短信验证码接口 -* add 新增 SpringUtils 获取配置文件中的属性值方法 -* add 新增 Anonymous 匿名访问不鉴权注解 -* add 新增 easyexcel 单元格合并注解与处理器 -* add 增加 ExcelUtil 模板导出方法 支持 单列表/多列表 -* add 增加 Excel 模板导出 测试类 - -### 问题修复 -* fix 修复 ExcelUtil 表达式解析 参数添反导致无法解析问题 -* fix 修复 全局线程池配置 核心线程与最大线程 参数填反问题 -* fix 修复 查询未分配用户角色列表 角色无绑定用户情况下 空列表问题 -* fix 修复 sqlserver 新增数据 id 错误 -* fix 修复 token 超时时间设置 -1 导致的单位转换问题 -* fix 修复 编辑 OssConfig 在 postgres 字段重复报错 补全 remark 字段 -* fix 修复 postgres 数据库 菜单部分字段类型无法转换问题 -* fix 修复 脱敏实现逻辑问题 -* fix 修复 登录未选部门报空问题 -* fix 修复 用户注销时记录注销日志异常问题 -* fix 修复 代码生成表字段类型不匹配 导致查询不准确问题 - -## v4.1.0 - 2022-04-24 -### 重大更新 -* [重大更新] 增加应用适配 oracle -* [重大更新] 增加应用适配 SQL Server -* [重大更新] 增加应用适配 postgresql -* [重大更新] 确保更好的适配 多数据库 主键策略统一改为 雪花ID - -### 依赖升级 -* update springboot 2.6.4 => 2.6.7 修复 CVE-2022-22965 漏洞 -* update springboot-admin 2.6.2 => 2.6.6 -* update hutool 5.7.21 => 5.7.22 -* update dynamic-datasource 3.5.0 => 3.5.1 -* update redisson 3.16.8 => 3.17.0 -* update qiniu 7.9.3 => 7.9.5 -* update qcloud 5.6.68 => 5.6.72 -* update minio 8.3.7 => 8.3.8 -* update okhttp 4.9.2 => 4.9.3 - -### 功能更新 -* update 简化查询 部门、菜单、角色、用户、代码生成列表 功能 -* update 优化 部门修改子元素关系 使用批量更新 -* update 优化去除sql差异化 时间范围统一使用 between 处理 -* update 优化 RepeatSubmit 注解 支持业务处理失败 与 异常快速放行 -* update 优化 防重 与 限流 功能支持国际化消息返回 -* update 开启TopNav没有子菜单情况隐藏侧边栏 -* update 更新minio压缩配置 -* update 重命名 菜单字段 query -> query_param 解决系统关键字问题 -* update 使用 in 优化 or 提升索引命中率 -* update 优化 TreeEntity 树实体 去除未知泛型 -* update 优化菜单名称过长悬停显示标题 -* update 优化固定Header后顶部导航栏样式问题 -* update 优化 logback 日志 异步输出 -* update 全局异常处理器引入DuplicateKeyException主键冲突异常拦截 -* update topNav自定义隐藏侧边栏路由 -* update 更名 SaInterfaceImpl 为 SaPermissionImpl 完善相关注释 -* update 优化 sa-token 路由拦截器语法 增加注释 避免误操作 -* update 优化文件上传、图片上传组件 文件列表展示文件原名便于后续处理, 完善组件删除功能 -* update 优化登录失败相关部分代码结构 -* update 使用 spring cglib 替换 停止维护的 cglib -* update 简化 全局线程池配置 使用cpu核心数自动处理 -* update 移除 重复提交 配置文件全局配置 使用注解默认值替代 - -### 新功能 -* add 增加 4.0 升级 4.1 的 sql 脚本(升级需执行此sql) -* add 增加 DataBaseHelper 数据库助手 用于屏蔽多类型数据库sql语句差异 -* add 增加 短信登录 与 小程序登录 示例 -* add 增加 Mybatis 全局异常处理 开启多数据源切换 严格模式 找不到数据源报错 - -### 问题修复 -* fix 修复 数据权限 从 aop 切换到 拦截器 导致获取代理失败问题 -* fix 修复表单清除元素位置未垂直居中问题 -* fix 修复 poi 组件漏洞 与 mysql jdbc 漏洞 -* fix 修复单独访问 接口文档 请求 favicon.ico 报错问题 -* fix 修复 minio 上传, 因 socket 导致 available 获取数值不精确问题 -* fix 修复 cos_api bcprov-jdk15on 漏洞 -* fix 修复 guava 漏洞 统一依赖版本 -* fix 修复 tlog 依赖漏洞 - -## v4.0.1 - 2022-03-01 -### 依赖升级 -* update springboot 2.6.3 => 2.6.4 -* update hutool 5.7.20 => 5.7.21 -* update qiniu 7.9.2 => 7.9.3 -* update minio 8.3.5 => 8.3.7 - -### 功能更新 -* update 图片上传 文件上传 支持并发上传 -* update 组件ImageUpload支持多图同时选择上传 -* udpate 组件fileUpload支持多文件同时选择上传 -* update 优化 R 默认返回 msg -* update 增加 用户注册 用户类型默认值 -* update 增加用户登出日志 -* update 更新 多用户多设备的注释说明 -* update 优化 是否为管理员的判断 -* update 优化 页面若未匹配到字典标签则返回原字典值 -* update 调整用户登录 将日志调整到最后 防止获取不到用户警告 -* update 优化随机数生成方式 避免容易生成两个相同随机数的问题 - -### 问题修复 -* fix 修复代码生成 基于路径生成 路径为空问题 -* fix 恢复误删 `@Async` 注解线程池配置类 -* fix 修复 minio 适配 https 导致的问题 -* fix 修复分页组件请求两次问题 - -## v4.0.0 - 2022-02-18 -### 重大更新 -* [重大更新] 重写项目整体结构 数据处理下沉至Mapper符合MVC规范 减少循环依赖 -* [重磅更新] 主分支与satoken分支合并 权限统一使用 sa-token -* [重磅更新] 适配升级 SpringBoot 2.6 -* [重磅更新] EasyExcel大版本升级3.X -* [重磅更新] 移除链式调用注解 因链式调用不符合java规范 导致很多问题 -* [重磅更新] 增加 轻量级 分布式队列 支持 -* [重磅更新] 增加 数据脱敏注解 使用序列化控制脱敏 支持多种表达式 -* [重磅更新] 重构 使用 Spring 简化 oss 模块代码 -* [重磅更新] 重构 调整返回类型为 R 精简 Controller 代码 - -### 依赖升级 -* update springboot 2.5.8 => 2.6.3 -* update mybatis-plus 3.4.3.4 => 3.5.1 -* update maven-jar-plugin 3.2.0 => 3.2.2 -* update maven-war-plugin 3.2.0 => 3.2.2 -* update maven-compiler-plugin 3.1 => 3.9.0 -* update hutool 5.7.18 => 5.7.20 -* update springboot-admin 2.6.0 => 2.6.2 -* update redisson 3.16.7 => 3.16.8 -* update qiniu 7.9.0 => 7.9.2 -* update aliyun 3.13.1 => 3.14.0 -* update qcloud 5.6.58 => 5.6.68 -* update minio 8.3.4 => 8.3.5 - -### 功能更新 -* update 用户管理部门查询选择节点后分页参数初始 -* update 防重复提交标识组合(key + url + header) -* update 接口文档增加 basic 账号密码验证 -* update 用户修改减少一次角色列表关联查询 -* update 优化部门修改缩放后出现的错位问题 -* update 指定 maven 资源过滤为具体文件 防止错误过滤 -* update hutool 引入改为 bom 依赖项引入 -* update 降低开发环境 redis连接池数量 -* update 升级 springboot 2.6.X 解决 springfox 兼容性问题 -* update 优化多用户体系处理 更名 LoginUtils 为 LoginHelper 支持 LoginUser 多级缓存 -* update 优化加载字典缓存数据 -* update 数据库更改 对接多用户体系 -* update 移除掉 StringUtils 语义不明确的api方法 使用特定工具替换 -* update 优化登录、注册在接口通过`@Validated`注解进行数据基础校验 -* update 优化 查询登录用户数据 统一走缓存 -* update 优化 redisson 配置 去除掉不常用的配置 使用默认配置 -* update 用户访问控制时校验数据权限,防止越权 -* update 修改用户注册报未登录警告 -* update 调整oss预览开关 使用前端直接调用更改配置参数 -* update 使用 satoken 自带的 BCrypt 工具 替换 Security 加密工具 减少依赖 -* update 优化 TreeBuildUtils 工具 使用反射自动获取顶级父id -* update 使用 hutool Dict 优化 JsonUtils 防止类型解析异常 -* update 优化代码生成 使用新 JsonUtils.parseMap 方法 -* update 更新 所有 oss 均支持 https 配置 - -### 新功能 -* add 增加 RedisUtils 工具 hasKey 检查key存在方法 -* add 增加 监控中心 自定义事件通知 -* add 增加 3.X update 4.0 更新sql - -### 问题修复 -* fix 修复登录失效后多次请求提示多次弹窗问题 -* fix 修复 StringUtils 通配符匹配无效 -* fix 修复选项卡点击右键刷新丢失参数问题 -* fix 修复 数据权限 缓存方法名错误问题 -* fix 修复自定义组件`file-upload`无法显示第一个文件,列表显示的文件比实际文件少一个的问题 -* fix 修复因升级 sa-token 导致 doLogin 无法获取 token 问题 -* fix 修复分页组件请求两次问题 - -### 移除功能 -* remove 移除过期代码 分页工具相关 -* remove 移除过期代码 多数据源切换 -* remove 移除过期代码 数据权限 - -### 其他 -* 3.X 版本进入维护阶段 不进行更新 只修复bug 持续维护到2022年10月 -* 4.X 版本公测将近一个月 大部分bug已修复 官网主分支更改为 4.X 版本 推荐使用 - - -## v3.5.0 - 2021-12-28 -### 重大更新 -* [重大更新] 重写数据权限实现 -* [重磅更新] 重构分页 简化使用 -* [重磅更新] 用户登录 支持校验错误次数锁定登录 -* [重磅更新] 增加 jdbc 批处理参数 大幅提升批量操作性能 对原生语句与 MP 均有效 - -### 依赖升级 -* update springboot 2.5.7 => 2.5.8 升级预防 log4j2 问题 -* update springboot-admin 2.5.4 => 2.5.5 -* update hutool 5.7.16 => 5.7.18 -* update redisson 3.16.4 => 3.16.7 -* update dynamic-ds 3.4.1 => 3.5.0 -* update qiniu 7.8.0 => 7.9.0 -* update minio 8.3.3 => 8.3.4 -* update tlog 1.3.4 => 1.3.6 启用 tlog 自动配置 -* update clipboard 2.0.6 => 2.0.8 - -### 功能更新 -* update 多数据源切换标注过期 3.6.0 移除 推荐使用原生注解 -* update 通用权限服务 迁移回 ruoyi-framework 模块 -* update 使用 hutool-jwt 替换老旧 jjwt 依赖 -* update 调整 OSS 表字段内容长度 -* update LoginUser 增加角色缓存 优化角色权限代码 -* update 使用 Cglib 重构 BeanCopyUtils 性能优异 -* update 禁止所有工具类实例化 优化代码书写规范 -* update 优化查询用户的角色组、岗位组代码 -* update 更新 RedisUtils 返回客户端实例 -* update 修改 健康检查权限 改为用户放行 提高安全性 -* update hutool 工具 改为单包引入 减少无用依赖 -* update ServicePlusImpl 功能 下沉到 BaseMapperPlus -* update 去除 jdk17 标签 由于很多组件还未适配 导致一些问题 -* udpate 代码生成预览支持复制内容 -* update 用户导入提示溢出则显示滚动条 -* update 路由支持单独配置菜单或角色权限 -* update 优化web拦截器 使用原生接口处理 默认非生产环境开启 -* update 调整监控依赖 从 common 迁移到 framework - -### 新功能 -* add 新增 Vue3 分支 与 代码生成模板(由于组件还未完善 仅供学习) -* add 增加 RedisUtils 注册监听器方法 -* add 增加 自定义 Xss 校验注解 用户导入增加 Bean 校验 -* add oss下载增加 loading 层 -* add 新增图片预览组件 -* add 集成compression-webpack-plugin插件实现打包Gzip压缩 -* add 新增 SqlUtils 检查关键字方法 - -### 问题修复 -* fix 修复 集群雪花id重复问题 使用网卡信息绑定生成 -* fix 修复 count 语法异常 -* fix 修复更改密码问题 -* fix 修复sql关键字处理 防止解析器报错 -* fix 修复 TreeBuildUtils 顶节点不为 0 问题 -* fix 修复 SysOssConfig 主键类型错误 -* fix 修复代码生成 导出注解错误 -* fix 修复 redisson 集群模式 路径未匹配协议头问题 -* fix 修复打包后字体图标偶现的乱码问题 -* fix 修复版本差异导致的懒加载报错问题 -* fix 修复代码生成字典组重复问题 - -### 移除功能 -* remove 删除 jjwt 无用依赖 -* remove 移除过期 用户导入 -* remove 移除过期工具 DictUtils - -## v3.4.0 - 2021-11-29 - -### 重磅更新 -* update [重磅更新] 重构 Excel 导入 支持 Validator 校验 支持自定义监听器 -* update [重磅更新] Validator 校验框架支持国际化 - -### 依赖升级 -* update springboot 2.5.6 => 2.5.7 -* update hutool 5.7.15 => 5.7.16 -* update okhttp 4.9.1 => 4.9.2 -* update spring-boot-admin 2.5.2 => 2.5.4 -* update redisson 3.16.3 => 3.16.4 -* update tlog 1.3.3 => 1.3.4 -* update axios 0.21.0 => 0.24.0 -* update core-js 3.8.1 => 3.19.1 -* update js-cookie 2.2.1 => 3.0.1 -* update velocity 1.7 => 2.3 -* update 升级 docker 基础镜像 - -### 功能更新 -* update 基于 hutool 封装树构建工具 重构部门与菜单树结构返回 -* update 减少使用特定数据库函数 -* update 配置应用前缀路径 改为配置文件统一配置 -* update 升级 swagger 配置 使用 knife4j 增强模式 -* update 监控中心 集成监控客户端 实现自监控 -* update 调度中心 集成监控客户端 注册到监控中心 -* update 优化 tab 对象简化页签操作 -* update 解耦 LoginUser 与 SysUser 强关联 -* update 更新 RepeatSubmit 注解 aop 处理 针对特殊参数进行过滤 -* update DictUtils 字典工具类 标记过期 3.5.0 版本移除 使用 DictService 代替 -* update 抽象 DictService 通用 字典服务 -* update 抽象 ConfigService 通用 参数配置服务 -* update 基于 DictService 重构 Excel 内字典查询功能 -* update OSS 模块 整体重命名 消除歧义 -* update 更新 redis.conf 存储策略 aof 与 rdb 配置参数 -* update 初始化数据转移到 ApplicationRunner 统一处理 -* update 优化时间查询语句 - -### 新功能 -* add 增加 框架缓存懒加载 开关 -* add 新增 监控中心 Bean 初始化 startup trace 监控插件 -* add 增加 ValidatorUtils 校验框架工具 用于在非 Controller 的地方校验对象 - -### 漏洞修复 -* fix 修复 SysOss、SysOssConfig 未继承 BaseEntity 基础实体问题 -* fix 修复 xxl-job-admin 部署问题 -* fix 修复 回显数据字典键值修正 -* fix 修复 Linux 清除临时目录 导致上传找不到目录报错问题 -* fix 修复通用实体 传参无法接收问题 -* fix 修复 SysLoginController 接口文档书写错误问题 -* fix 修复 用户逻辑删除 差异问题 -* fix 修复 OSS 七牛云 token 过期未刷新问题 -* fix 修复 分页工具 排序字段 null 处理 -* fix 修复 用户导入字典使用错误 -* fix 修复 关闭 xss 功能导致可重复读 RepeatableFilter 失效 -* fix 修复 使用 this.$options.data 报错问题 -* fix 修复 代码生成复选框字典遗漏问题 -* fix 修复 重复提交不生效问题 由于概念不同 使用 RedisUtils 重构 -* fix 修复 OSS 工厂 未实例化服务更新加载问题 - -### 功能移除 -* remove 移除 quartz 相关代码与依赖 -* remove 移除 feign 相关代码与依赖 -* remove 移除 MybatisPlusRedisCache 二级缓存 - -## v3.3.0 - 2021-10-29 - -### 重磅更新 -* add [重磅更新] 增加分布式日志框架 TLog -* add [重磅更新] 增加分布式任务调度系统 Xxl-Job -* add [重大更新] 增加 ruoyi-job 任务调度模块(基于xxl-job) -* update [重大更新]全业务 增加 接口文档注解 格式化代码 - -### 依赖更新 -* update springboot 2.5.5 => 2.5.6 -* update springboot-admin 2.5.1 => 2.5.2 -* update element-ui 2.15.5 => 2.15.6 -* update hutool 5.7.13 => 5.7.15 -* update qcloud.cos 5.6.55 => 5.6.58 -* update minio 8.3.0 => 8.3.3 - -### 功能更新 -* update 更新 element 2.15.6 表格样式 -* update 优化 代码生成常量 关于 BO VO 注释 -* update 优化代码生成 导入表 列表返回 主键默认选中 -* update MybatisPlusRedisCache 标记过期 推荐使用 spring-cache -* update Quartz 标记过期 推荐迁移至新框架 xxl-job -* update Feign 标记过期 -* update 前端增加默认国际化参数 -* update 更新 Admin 监控 注释 避免错误使用 -* update Admin 监控增加日志文件输出 -* update 优化 xxl-job-admin 增加格式化日志输出与 docker 镜像 -* update 更新 xxl-job 执行器开关功能 -* update 代码生成 改为生成抽象实体 -* update 代码生成 搜索框 更新文本域生成 用于模糊查询 -* update 通用数据注入改为适配通用实体类 -* update 使用路由懒加载提升页面响应速度 -* update 迁移所有脚本文件至 script 目录 -* update swagger 组顺序配置 -* update sql 文件更新 xxljob 控制台菜单 -* update 前端增加 任务调度中心页面与环境及 nginx 配置 -* update 合并 oss.sql 至主 sql -* update 补全国际化文件(英文) -* update 更新关于全局路径设置与文档链接 -* update 删除无用 setUsername 使用自动注入 -* update RedisUtils 更新删除 hash 数据方法 - -### 漏洞修复 -* fix 修复 多数据源 aop 语法错误 -* fix 修复 子菜单无 query 参数问题 -* fix 修复 oss 配置删除时删除缓存 bug -* fix 修复无权限获取请求头 download-filename 导致文件名为空问题 - -## v3.2.0 - 2021-9-28 - -### 重大更新 -* update [重大改动]接口文档 支持分组配置 -* update [重大改动]security 路径配置抽取到配置文件 -* update [重大改动] 将 framework 与 system 模块 解耦 调整依赖结构 解决依赖冲突 -* update [重大改动]重写 防重提交实现 使用分布式锁 解决并发问题 压测通过 - -### 依赖更新 -* update springboot 2.5.4 => 2.5.5 bugfix版本 -* update mybatis-plus 3.4.3.3 => 3.4.3.4 bugfix版本 -* update redisson 3.16.2 => 3.16.3 bugfix版本 -* update easyexcel 2.2.10 => 2.2.11 -* update hutool 5.7.11 => 5.7.13 -* update file-saver 2.0.4 => 2.0.5 -* update dart-sass 1.32.0 => 1.32.13 -* update sass-loader 10.1.0 => 10.1.1 - -### 功能更新 -* update 优化代码生成 根据MP生成特性 调整导入表结构默认值合理化 -* update 将所有 云存储字样 改为 对象存储 避免误解 -* update 更新 @Cacheable 错误用法 注意事项 -* update 优化 AddressUtils 空校验处理 -* update 菜单管理支持配置路由参数 -* update 优化aop语法 使用spring自动注入注解 -* update 使用 Redisson 限流工具 重写限流实现 -* update 使用 vue-data-dict 简化数据字典使用 -* update 增加日志注解新增是否保存响应参数开关 -* update 用户未登录日志改为 warn 级别 -* update OSS模块 关于下载403报错信息优化 -* update 更新 Actuator prod 默认暴漏端点 增加暴漏 logfile 日志端点 -* update 默认适配jdk11 测试 jdk17 无异常 -* update 封装通用下载方法简化下载使用 - -### 新功能 -* add 新增通用方法简化模态/缓存使用 -* add 增加 限流演示案例 -* add 增加 redis redisson 集群配置 - -### 漏洞修复 -* fix Cron表达式生成器关闭时销毁,避免再次打开时存在上一次修改的数据 -* fix 全局限流key会多出一个"-" 将其移动到IP后面 去除多余的空格 -* fix 修复多主键代码生成bug -* fix 修复 @Cacheable 与 @DataScope 冲突问题 -* fix 修复代码生成页面数据编辑保存之后总是跳转第一页的问题 - -### 功能移除 -* remove 移除过期工具 RedisCache -* remove 移除无用配置类 ServerConfig -* remove 移除 SysUser 无用字段 salt - -## v3.1.0 - 2021-9-7 - -### 重大更新 -* add [重大改动] 过期 RedisCache 新增 RedisUtils 工具类 新增 发布订阅功能 更灵巧便于使用 -* add [重大改动] 新增 saveOrUpdateAll 方法 可完美替代 saveOrUpdateBatch 高性能 -* update [重大改动] 重写 InsertAll 方法实现 可完美替代 saveBatch 秒级插入上万数据 -* update [重大改动] 更改OSS上传通用路径生成 按照年月日分三级目录 -* update [重大改动] MP字段验证策略更改为 NOT_NULL 个别特殊字段使用注解单独处理 -* update [重大改动] 所有业务适配 RedisUtils 新工具 - -### 依赖升级 -* update springboot 2.5.3 => 2.5.4 -* update spring-boot-admin 2.5.0 => 2.5.1 -* update mybatis-plus 3.4.3 => 3.4.3.3 适配升级 (包含不兼容升级) -* update aliyun.oss 3.13.0 => 3.13.1 -* update qcloud.cos 5.6.47 => 5.6.51 -* update hutool 5.7.9 => 5.7.11 -* update maven-jar-plugin 3.1.1 => 3.2.0 -* update feign-okhttp 11.2 => 11.6 -* update redisson 3.16.1 => 3.16.2 - -### 新功能 -* add 优化 docker 增加 redis 配置文件 -* add 新增暗色菜单风格主题 -* add 菜单&部门新增展开/折叠功能 -* add 页签右键按钮添加图标 页签新增关闭左侧 - -### 功能更新 -* update 优化 OSS 模块与上传组件 异常处理 -* update 更新 jackson 配置 支持 LocalDateTime 全局格式化 -* update 优化 使用权限工具 获取用户信息 -* update 自定义可拖动弹窗宽度指令 -* update 重构 将下载excel工具提取到全局 -* update 定时任务对检查异常进行事务回滚 -* update 优化spy配置文件为 UTF8编码 解决中文注释乱码问题 -* update 修改时检查用户数据权限范围 -* update 解决 logout 写死 无法扩展路径问题 -* update 优化代码生成 导入与同步 批处理效率 -* update 修改时检查用户数据权限范围 -* update 修改代码生成字典回显样式 -* update 修改数据字典回显 -* update 优化验证码配置 使用泛型 防止错误输入 -* update 优化全局线程池配置 使用泛型 防止错误输入 -* update 使用 MP 全局配置分页溢出 -* update 代码生成器 导入表时查询 新创建表的优先排序在前面 -* update 定时任务支持在线生成cron表达式 -* update 自定义弹层溢出滚动样式 -* update 优化分页工具排序处理 -* update 优化 oss配置 使用发布订阅工具 刷新配置 -* update 代码生成 查询数据库列表 按照时间倒序 -* update 使用MP自行判断数据库类型 - -### 漏洞修复 -* fix 修复保存配置主题颜色失效问题 -* fix 修复 导出雪花id excel失真问题 -* fix 修复 druid 监控 集群模式下 无法路由到同一台服务器问题 -* fix 解决搜索校验不通过问题 -* fix 修复定时器工具编写错误问题 -* fix 修复 minio 无 perfix 问题 -* fix 修复 富文本图片路径错误问题 -* fix 修复 OSS配置清空被过滤问题 -* fix 修复 excel 导入与 class 未对应问题 -* fix 修复字典组件值为整形不显示问题 - -## v3.0.0 - 2021-8-18 - -### 重大更新 -* add [重大更新]重写 OSS 模块相关实现 支持动态配置(页面配置) -* add [重大更新]增加 jackson 超出 JS 最大数值自动转字符串(雪花id序列化)处理 -* add [重大更新]重写 防重提交拦截器 支持全局与注解自定义 拦截时间配置配置 优化逻辑 -* add [重大更新]新增是否开启用户注册功能 -* add [重大更新]增加 easyexcel 工具类 -* add [重大更新]集成 性能分析插件 p6spy 更强劲的 SQL 分析 -* add [重大更新]增加 完整国际化解决方案 -* add [重大更新]支持自定义注解实现接口限流 - -### 依赖升级 -* update feign-okhttp 11.0 => 11.2 -* update okhttp 3.19.4 => 4.9.1 -* update minio 8.2.0 => 8.3.0 -* update hutool 5.7.6 => 5.7.7 -* update element-ui 2.15.2 => 2.15.5 -* update springboot admin 2.4.3 => 2.5.0 (新增 Quartz 专属监控页) - -### 新功能 -* add 增加 admin 监控客户端开关 -* add 增加 国际化演示demo - -### 依赖更新 -* update 更新软件架构图 -* update 优化XSS跨站脚本过滤 -* update 优化BLOB下载时清除URL对象引用 -* update 更新 防重提交拦截器 demo演示案例 -* update 日常字符串校验 统一重构到 StringUtils 便于维护扩展 -* update 修改 自动注入器 用户未登录异常拦截抛出警告 返回Null -* update 重构 统一使用 流工具下载 -* update 重写 所有业务导出 适配easyexcel工具 -* update 移动文件存储业务到 system 模块 -* update 代码生成模板 适配新excel导出 -* update 将 Actuator 配置 移动到全局配置 -* update 统一镜像时区配置 移除主机时间映射 -* update 更改多数据源框架更清晰的依赖名 -* update 更新 阿里云 maven源 新地址 -* update 补全基础实体 文档注解 -* update 代码生成文档注解 增加必填判断配置 -* update 注入器 insert 增加 update 字段处理 -* update 默认首页使用keep-alive缓存 - -### 漏洞修复 -* fix 生产minio回显问题 -* fix 修复角色分配用户页面接收参数与传递参数类型不一致导致的错误 -* fix 修复代码生成 删除按钮报错 loading 不取消问题 -* fix 解决登录后浏览器后台Breadcrumb组件报错 -* fix 修复DictUtils方法报错 -* fix 头像上传 未走OSS存储问题 -* fix oss列表 jpeg 不回显问题 -* fix 修复操作日志根据状态查询异常问题 - -### 功能移除 -* remove 移除原生excel工具 -* remove 移除通用上传下载接口与配置 - -## v2.6.0 - 2021-7-28 - -### 重大更新 -* add [重大新增] 增加 OSS 对象存储模块 -* remove [重大改动] 删除 自带通用上传 接口 使用OSS模块替换 -* update [重大改动] 重写VO转换 支持深拷贝 将VO类抽象到 ServicePlus 泛型处理 -* update [重大改动] 多BO合并 使用分组校验 生成BO代码 -* update [重大改动] 重构 IServicePlus 功能 增加 BeanCopyUtils 深拷贝工具 - -### 依赖升级 -* update springboot 2.4.9 => 2.5.3 -* update hutool 5.7.4 => 5.7.6 -* update minio 8.2.2 => 8.3.0 -* update docker plugin 1.2.0 => 1.2.2 -* update redisson 3.16.0 => 3.16.1 -* update datasource 3.4.0 => 3.4.1 -* update element-ui 2.15.2 => 2.15.3 - -### 新功能 -* add 演示Demo增加自定义分页接口案例 -* add 角色&菜单新增字段属性提示信息 - -### 功能更新 -* update 更新druid配置 独立配置更明显 -* update 顶部菜单排除隐藏的默认路由 -* update 富文本新增上传文件大小限制 -* update 导入用户样式调整 -* update 顶部菜单样式调整 -* update 密码框新增显示切换密码图标 -* update 内链设置meta信息 -* update 跳转路由高亮相对应的菜单栏 - -### 漏洞修复 -* fix 修复多数据源druid全局配置缩进错误 引起无效配置问题 -* fix 修复定时任务日志执行状态显示 -* fix 修复 授权角色空数据问题 -* fix 修复 DictData 删除逻辑问题 -* fix 修复任意账户越权漏洞 - -## v2.5.2 - 2021-7-19 - -### 功能更新 -* update 优化代码生成器注释格式 - -### 漏洞修复 -* fix 回滚代码生成 批处理优化 -* fix 代码生成 queryType 重复勾选数据库无默认值问题 -* fix 修复接口单参数校验无效问题 -* fix 代码生成 queryType >= <= 标识符错误问题 -* fix 修复代码生成字典问题 -* fix 修复 thread-pool: enabled 配置不生效问题 - -### 功能移除 -* remove 删除无用文档与脚本 - -## v2.5.1 - 2021-7-13 -* update 验证码开关 转移到表 参数管理 内 -* update 使用hutool重构 判断是否url - -### 漏洞修复 - -### 功能更新 -* fix 修复 docker业务集群部署与文件上传的问题 -* fix 修复代码生成同步表结构id冲突问题 -* fix 修复代码生成选择字典 无法取消问题 -* fix 修复代码生成字典为null问题 -* fix 图片上传 多图时无法删除相应图片修复 - -### 功能移除 -* remove 删除富文本video事件 - -## v2.5.0 - 2021-7-12 - -### 依赖升级 -* update springboot 2.4.7 => 2.4.8 -* update knife4j 3.0.2 => 3.0.3 -* update hutool 5.7.2 => 5.7.4 -* update spring-boot-admin 2.4.1 => 2.4.3 -* update redisson 3.15.2 => 3.16.0 - -### 新功能 -* add 增加 docker 编排 与 shell 脚本 -* add 增加 feign 熔断 自定义结构体解析方法 与 demo 注释 -* add 用户管理新增分配角色功能 -* add 角色管理新增分配用户功能 -* add 增加spring-cache演示案例 - -### 功能更新 -* update 独立 springboot-admin 监控到扩展模块项目 -* update springboot-admin 监控 增加用户登录权限管理 -* update 优化代码生成器 批量导入 -* update 优化 增加MP注入异常拦截 -* update 关闭默认二级缓存 推荐使用 spring-cache 注解手动缓存 -* update FileUpload ImageUpload组件 支持多图片上传 -* update 优化中英文语言配置 -* update 规范maven写法 - -### 漏洞修复 -* fix redis获取map属性bug修复。 -* fix 修复 按钮loading 后端500卡死问题 -* fix 相对路径下载问题 -* fix 修复 hutool 工具返回结果不一致问题 - -## v2.4.0 - 2021-6-24 - -### 依赖升级 -* update springboot 2.3.11 => 2.4.7 -* update springboot-admin 2.3.1 => 2.4.1 -* update feign 2.2.6 => 3.0.3 -* update hutool 5.6.7 => 5.7.2 - -### 功能更新 -* update 多数据源替换成dynamic-datasource -* update 适配 jdk11 -* update 集成 Lock4j 分布式锁 -* update 移除 fastjson 增加 jackson 工具类 重写相关业务 -* update 优化 异步工厂重写 使用 spring 异步处理 -* update 全局挂载字典标签组件 -* update 日志列表支持排序操作 -* update 更新 feign demo 更清晰的用法 -* update 更新多数据源演示案例 - -### 新功能 -* add 增加 ServicePlusImpl 自动以实现类 重写移除事务注解方法 防止多数据源失效 -* add 增加 自定义 批量insert方法 -* add 增加 Swagger3 用法示例 - -### 漏洞修复 -* fix 修复地址ip地址特殊回环问题 - -## v2.3.2 - 2021-6-11 - -### 新功能 -* add redis锁工具类编写 - -### 功能更新 -* update spring-cache 整合 redisson -* update MybatisPlus整合Redis二级缓存 -* update swagger 升级为 3.0.0 使用 OAS_30 协议 -* update 优化 代码生成器 增加表单防重注解 -* update 优化 锁切面代码 key到常量类 - -### 漏洞修复 -* fix 修复相对路径上传异常问题 - -## v2.3.1 - 2021-6-4 - -### 新功能 -* add 增加 redisson 分布式锁 注解与demo案例 -* add 增加 Oracle 分支 - -### 功能更新 -* update 优化 redis 空密码兼容性 -* update 优化前端代码生成按钮增加 loading - -### 漏洞修复 -* fix 修复 redisson 不能批量删除的bug -* fix 修复表单构建选择下拉选择控制台报错问题 -* fix 修复 vo 代码生成 主键列表显示 重复生成bug -* fix 修复上传路径 win 打包编译为 win 路径, linux 报错bug - -## v2.3.0 - 2021-6-1 - -### 新功能 -* add 升级 luttuce 为 redisson 性能更强 工具更全 -* add 增加测试数据sql文件 -* add 增加demo模块 单表演示案例(包含数据权限) - -### 功能更新 -* update 完美修复 数据权限功能(支持单表多表过滤) -* update 优化代码生成模板 -* update 优化 system 模块 批量操作性能 - -## v2.2.1 - 2021-5-29 - -### 新功能 -* add 增加 security 权限框架 `@Async` 异步注解配置 - -### 功能更新 -* update 优化dataScope参数防止注入 -* update 优化参数&字典缓存操作 -* update 增加修改包名文档 -* update 文档增加演示图例 - -### 漏洞修复 -* fix 修复部门类sql符号错误 - -## v2.2.0 - 2021-5-25 - -* 同步升级 RuoYi-Vue 3.5.0 - -### 新功能 -* add 增加验证码开关 -* add 新增IE浏览器版本过低提示页面 - -### 功能更新 -* update 升级druid到最新版本v1.2.6 -* update 升级fastjson到最新版1.2.76 -* update 修改bo加入判断是否设置必填再加载必填注解 -* update 生成vue模板导出按钮点击后添加遮罩 -* update Redis设置HashKey序列化 -* update 优化Redis序列化配置 - -### 漏洞修复 -* fix 修复代码生成器中表字段取消必填无法更新问题 - -## v2.1.2 - 2021-5-21 - -### 功能更新 -* update springboot 升级 2.3.11 -* update mybatis-plus 升级 3.4.3 分页Plus对象适配更新 -* update 验证码生成更新为无符号整数计算 -* update 请求响应对象 与 分页对象 结构修改 适配接口文档配置 -* update swagger增加请求前缀 - -## v2.1.1 - 2021-5-19 - -### 功能更新 -* update 配置统一提取为 properties 配置类 -* update 分页工具 删除过期方法 -* update admin 实时监控日志 改为保留一天 - -### 漏洞修复 -* fix 修复swagger开关无法控制关闭问题 -* fix maven install 异常 - -## v2.1.0 - 2021-5-17 - -### 功能更新 -* update knife4j升级3.0.2 -* update 增强分页工具兼容性 -* update 通用Service接口 增加自定义vo转换函数 - -### 移除功能 -* remove 移除ruoyi自带服务监控(Admin已全部包含) - -## v2.0.0 - 2021-5-15 - -### 依赖升级 -* springboot 升级 2.3.10 依赖全面升级适配 - -### 新功能 -* add 增加分页工具 -* add 增加 增强Mapper 与 增强Service 重写业务适配 -* add 代码生成器 增加校验注解 - -### 功能更新 -* update 代码生成器修改为MP分页 -* update 使用 MP 分页工具 重构业务 -* update 重写文档介绍 - -### 移除功能 -* remove 移除 pagehelper 分页工具 - -### 漏洞修复 -* fix 修复代码生成 数据权限问题 - -## v1.0.2 - 2021-5-13 - -### 功能更新 -* update 更新整合打包文档 重新排版 - -### 漏洞修复 -* fix vue与boot整合打包与admin页面路由冲突 - -## v1.0.1 - 2021-5-11 - -### 依赖更新 -* update 更新banner -* update 配置转移到 yml 文件 统一管理 -* update 上传媒体类型添加视频格式 -* update 树级结构更新子节点使用replaceFirst -* update 删除操作日志记录日志 - -### 漏洞修复 -* fix 修正导入表权限标识 -* fix 文件上传时报错 - -## v1.0.0 - 2021-5-10 -* 基于 ruoyi-vue 3.4.0 发布 v1.0.0 稳定版 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md deleted file mode 100644 index ef65fef3..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/architecture_diagram.md +++ /dev/null @@ -1,3 +0,0 @@ -# 软件架构图 -- - - -![输入图片说明](https://foruda.gitee.com/images/1722569328704494018/e84442b6_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md deleted file mode 100644 index 06e62dc5..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/doc.md +++ /dev/null @@ -1,89 +0,0 @@ -# 接口文档 -- - - -## 版本 >= `4.3.0` -## 说明 - -由于 `springfox` 与 `knife4j` 均停止维护 bug众多
    -故从 `4.3.0` 开始 迁移到 `springdoc` 框架
    -基于 `javadoc` 无注解零入侵生成规范的 `openapi` 结构体
    -由于框架自带文档UI功能单一扩展性差 故移除自带UI 建议使用外置文档工具 - -## 文档工具使用 -由于框架采用 `openapi` 行业规范 故市面上大部分的框架均支持 可自行选择
    -例如: `apifox` `apipost` `postman` `torna` `knife4j` 等 根据对应工具的文档接入即可 - -## Swagger升级SpringDoc指南 - -常见功能如下 其他功能自行挖掘
    -**注意: `javadoc` 只能替换基础功能 特殊功能还需要使用注解实现** - -| swagger | springdoc | javadoc | -|----------------------------------|---------------------------------|--------------------| -| @Api(name = "xxx") | @Tag(name = "xxx") | java类注释第一行 | -| @Api(description= "xxx") | @Tag(description= "xxx") | java类注释 | -| @ApiOperation | @Operation | java方法注释 | -| @ApiIgnore | @Hidden | 无 | -| @ApiParam | @Parameter | java方法@param参数注释 | -| @ApiImplicitParam | @Parameter | java方法@param参数注释 | -| @ApiImplicitParams | @Parameters | 多个@param参数注释 | -| @ApiModel | @Schema | java实体类注释 | -| @ApiModelProperty | @Schema | java属性注释 | -| @ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) | 无 | -| @ApiResponse | @ApiResponse | java方法@return返回值注释 | - -# 建议使用 `Apifox`(常见问题有其他对接方式) - -官网连接: [https://www.apifox.cn/](https://www.apifox.cn/)
    -视频教程: [springdoc与apifox配合使用](https://www.bilibili.com/video/BV1mr4y1j75M?p=8&vd_source=8f52c77be3233dbdd1c5e332d4d45bfb) - -![输入图片说明](https://foruda.gitee.com/images/1678976476639902970/f1617b40_1766278.png "屏幕截图") - -支持 文档编写 接口调试 Mock 接口压测 自动化测试 等一系列功能 - -### 接入框架 - -> 1.下载或使用web在线版 创建一个自己的项目 - -![输入图片说明](https://foruda.gitee.com/images/1678976502850663851/7bbd8728_1766278.png "屏幕截图") - -> 2.进入项目 选择项目设置 找到自动同步 - -![输入图片说明](https://foruda.gitee.com/images/1678976508918240326/6a4a61a8_1766278.png "屏幕截图") - -> 3.根据项目内所有文档组完成所有数据源创建(拉取后端`openapi`结构体)
    -数据源URL格式 `http://后端ip:端口/v3/api-docs/组名`
    -项目内所需:
    -`http://localhost:8080/v3/api-docs/1.演示模块`
    -`http://localhost:8080/v3/api-docs/2.通用模块`
    -`http://localhost:8080/v3/api-docs/3.系统模块`
    -`http://localhost:8080/v3/api-docs/4.代码生成模块`
    -也可不分组统一导入: `http://localhost:8080/v3/api-docs`
    - -![输入图片说明](https://foruda.gitee.com/images/1678976514385097727/05c7e0a6_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1686626073422245046/df4b6a54_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678976527495742967/79836e7f_1766278.png "屏幕截图") - -> 4.选择 接口管理 项目概览 点击立即导入 并等待导入完成
    -后续会根据策略每3个小时自动导入一次
    -每次重新进入apifox也会自动同步一次
    -后端有改动也可以手动点击导入
    - -![输入图片说明](https://foruda.gitee.com/images/1678976534677430926/f32c64c5_1766278.png "屏幕截图") - -> 5.(注意版本号)设置鉴权 选择接口管理 项目概览 找到Auth 按照如下配置 - -**版本号: >= 5.X** - -![输入图片说明](https://foruda.gitee.com/images/1690966897370710566/6a688aea_1766278.png "屏幕截图") - -**版本号: 4.X** - -![输入图片说明](https://foruda.gitee.com/images/1678976539608390075/77246461_1766278.png "屏幕截图") - -> key对应项目配置 默认为 `Authorization` - -![输入图片说明](https://foruda.gitee.com/images/1678976544342001474/c2ff85d3_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678976549237304743/bcdfadda_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md deleted file mode 100644 index 4052979a..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/i18n.md +++ /dev/null @@ -1,33 +0,0 @@ -# 国际化方案 -- - - -* 前端国际化参考 [ruoyi前端国际化文档](http://doc.ruoyi.vip/ruoyi-vue/document/htsc.html#前端国际化流程)
    -* 后端国际化(2.7.0 以上增加) -* 3.4.0 以上支持 `Validator` 校验框架 -* 参考 `demo` 模块 `TestI18nController` 国际化演示案例 - 在 `Header` 请求头 增加上下文语言参数 `content-language` 参数需与国际化配置文件后缀对应 - 如 `zh_CN` `en_US` 等
    - -![输入图片说明](https://foruda.gitee.com/images/1678976722892396585/60917594_1766278.png "屏幕截图") - -## 获取 `code` 对应国际化内容 - -![输入图片说明](https://foruda.gitee.com/images/1678976728533100954/0ab8e36a_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976733019209506/a16574d6_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976738409745057/a073b425_1766278.png "屏幕截图") - -## 使用 `Validator` 框架校验 `controller` 参数返回国际化 - -`controller` 校验接口参数 需要在类增加 `@Validated` 注解
    -![输入图片说明](https://foruda.gitee.com/images/1678976741834729507/6c19b9cc_1766278.png "屏幕截图")
    -参数对应校验注解 使用 `{code}` 形式标注使用国际化处理
    -![输入图片说明](https://foruda.gitee.com/images/1678976746093285542/ad0989db_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976750822808564/56bd60d7_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976754755107198/b89bf173_1766278.png "屏幕截图") - -## 使用 `Validator` 框架校验 `Bean` 返回国际化 - -`Bean` 校验需要在接口校验 `Bean` 参数使用 `@Validated` 注解
    -![输入图片说明](https://foruda.gitee.com/images/1678976761015767874/729da3bc_1766278.png "屏幕截图")
    -`Bean` 内属性校验注解 使用 `{code}` 形式标注使用国际化处理
    -![输入图片说明](https://foruda.gitee.com/images/1678976765122587920/0b1027af_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976769965314387/0c416ede_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md deleted file mode 100644 index 87b992aa..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/new_module.md +++ /dev/null @@ -1,15 +0,0 @@ -# 关于如何创建新模块 -- - - -* 参考ruoyi-demo模块 -* 需要改动: 父pom 与 admin模块pom - -![输入图片说明](https://foruda.gitee.com/images/1719814203987728184/6940ecf8_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1719814254968294155/70fe6d77_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1719814280768521481/14fb11cd_1766278.png "屏幕截图") - -### 注意事项 -如果是两个不同包名的模块 需要修改如下配置 - -![输入图片说明](https://foruda.gitee.com/images/1719813861680271619/82435586_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1692006501957936219/059f8526_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md deleted file mode 100644 index 2dcab848..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_package_name.md +++ /dev/null @@ -1,33 +0,0 @@ -# 关于修改包名 -- - - - -**注意: 老包名为 com.ruoyi** - -## 1.随便找个地方新建 org.dromara 包 -![输入图片说明](https://foruda.gitee.com/images/1708491220807198688/b95c0c34_1766278.png "屏幕截图") - -## 2.在包上右键选择 refactor -> rename 选择 All Directories -![输入图片说明](https://foruda.gitee.com/images/1683276891079076405/79808b22_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1708491697128844860/1e87ad39_1766278.png "屏幕截图") - -**因为dromara组织下有很多依赖导致idea无法识别完整包名** -
    -![输入图片说明](https://foruda.gitee.com/images/1708490576909691001/692e5b37_1766278.png "屏幕截图") - -**需要先将dromara修改为 例如: ruoyi 然后重复上述步骤 这样就可以整包修改了** -
    -![输入图片说明](https://foruda.gitee.com/images/1708490906933084793/ff104cd7_1766278.png "屏幕截图") - -## 3.使用IDEA全局替换 org.dromara 替换为 com.xxx - -![输入图片说明](https://foruda.gitee.com/images/1708491055347995519/dedda0d1_1766278.png "屏幕截图") - -**注意: 由于dromara组织下项目很多 非本框架的依赖模块 请勿修改 例如上图中的 org.dromara.sms4j** - -## 4.如有需要 将所有模块名逐一修改即可 - -## 5.修改完成后需查看所有common包下模块spi文件是否修改正确 - -**老版本idea或者未按照教程修改包名可能导致文件丢包问题** - -![输入图片说明](https://foruda.gitee.com/images/1708491365841192006/8bc337c2_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md deleted file mode 100644 index 0f5f106b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/association/update_url.md +++ /dev/null @@ -1,26 +0,0 @@ -# 修改应用路径 -- - - -## 修改后端路径 - -更改 `application.yml` 的 `server.servlet.context-path` 即可更改后端容器路径 - -![输入图片说明](https://foruda.gitee.com/images/1724316662536650741/41d534b1_1766278.png "屏幕截图") - -与之对应前端 `dev`环境 需更改 `vite.config.ts` 的代理路径 - -![输入图片说明](https://foruda.gitee.com/images/1724316844091667249/9b0badc5_1766278.png "屏幕截图") - -`prod` 生产环境需修改 `nginx.conf` 后端代理路径 - -![输入图片说明](https://foruda.gitee.com/images/1661823876773225117/f1f912a9_1766278.png "屏幕截图") - -## 修改前端路径 -### 注意: 3.4.0 提供便捷更改方式 -直接修改对应环境的 `.env.环境` 文件内的 `VITE_APP_CONTEXT_PATH` 应用访问路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1661824572484410642/14265f05_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1724317049535973756/0a2cc43b_1766278.png "屏幕截图") - -生产环境 `nginx.conf` 与之对应修改即可
    -**注意: 文件真实目录为 `/usr/share/nginx/html/admin/index.html` 此功能一般为多项目部署需要 故会增加一层目录 如不需要可以自行修改**
    -![输入图片说明](https://foruda.gitee.com/images/1678976662194341301/2720b7e9_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md deleted file mode 100644 index bec103d8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/client.md +++ /dev/null @@ -1,85 +0,0 @@ -# 客户端管理功能 -- - - -## 版本 >= 5.X - -## 客户端管理页面 - -![输入图片说明](https://foruda.gitee.com/images/1690961819029076660/c44374ac_4959041.png "屏幕截图") - -### 客户端管理字段说明 -| 字段名称 | 取值说明 | 注意事项 | -|----------------|----------------------------|--------------------------------| -| 客户端id | 由后端生成,用于前端登录校验以及接口数据加密 | 无法修改,不要删除默认数据,否则会报错 | -| 客户端key | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | -| 客户端秘钥 | 前端自定义 | 无法修改,不要删除默认数据,否则会报错 | -| 授权类型 | 密码认证、短信认证、邮件认证、小程序认证、第三方认证 | 根据授权类型判断当前客户端是否支持该登录方式 | -| 设备类型 | PC端、APP端 | | -| Token活跃超时时间 | 自定义 | 指定时间无操作则过期(单位:秒),默认30分钟(1800秒) | -| Token固定超时时间 | 自定义 | 指定时间必定过期(单位:秒),默认七天(604800秒) | - -### 前后端使用新的客户端id - -步骤如下: -1. 前端管理页面生成新的客户端id。 -2. 将新的客户端id复制到前端配置文件。 - -![输入图片说明](https://foruda.gitee.com/images/1690962894318847386/133d2f90_4959041.png "屏幕截图") - -## 新增自定义客户端 - -### 步骤一:新增客户端数据(例如增加小程序端) - -![输入图片说明](https://foruda.gitee.com/images/1690965463070099188/baeb4441_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1690965508836621042/df06248f_4959041.png "屏幕截图") - -### 步骤二:配置前端请求头信息 - -需要在全局请求头 header 中增加 cientid
    -确保客户端所有请求都携带此id 可参考项目 `request.ts` - -![输入图片说明](https://foruda.gitee.com/images/1690965768235114596/980b88d2_4959041.png "屏幕截图") - -`VITE_APP_CLIENT_ID` 即配置文件中的客户端id。 - -**重点:不同客户端登录获取到的token不同与其他端不互通(例如: app登录获取到的token无法用于pc端接口查询)** - -## 新增自定义登录方式授权类型 - -**重点说明: 不要单独增加登录接口 系统全局统一只有一个登录接口 只需增加不同的鉴权方式即可** - -如何调试使用登录看这里 -> [关于登录调试步骤](/questions/login_step.md) - -### 步骤一:新增字典数据 - -![输入图片说明](https://foruda.gitee.com/images/1690968849418013624/3b28417e_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1690968865819397010/64529fad_4959041.png "屏幕截图") - -### 步骤二:新增/修改客户端数据 - -### 步骤三:后端新增认证策略 - -新增策略实现类实现 `IAuthStrategy` 接口。
    - -![输入图片说明](https://foruda.gitee.com/images/1690972828588111954/7614a4c5_4959041.png "屏幕截图") - -参照已有策略实现类实现自定义参数校验登录方法逻辑。
    - -![输入图片说明](https://foruda.gitee.com/images/1718951146945578143/789c80e4_1766278.png "屏幕截图") - -**注意修改 `@Service` 名称保证规范性** - -![输入图片说明](https://foruda.gitee.com/images/1718951179571300385/8db730b9_1766278.png "屏幕截图") - -`LoginBody` 校验参数(可自定义)
    - -![输入图片说明](https://foruda.gitee.com/images/1718951237123374392/f7840db2_1766278.png "屏幕截图") - -例如 扩展小程序登录参数 只需要继承 `LoginBody
    - -![输入图片说明](https://foruda.gitee.com/images/1718951283931895761/e6348be5_1766278.png "屏幕截图")` - -校验分组(可自定义)
    - -![输入图片说明](https://foruda.gitee.com/images/1718951343601334215/8ef404b4_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md deleted file mode 100644 index e20e09ac..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/code_generate.md +++ /dev/null @@ -1,85 +0,0 @@ -# 代码生成 -- - - -## 功能介绍 - -### 数据源配置 - -![输入图片说明](https://foruda.gitee.com/images/1678976867341325193/a2be0608_1766278.png "屏幕截图") - -**>= 4.1.0版本 项目适配多种类型数据库 可以在代码生成页面切换**
    - -> 填写对应的数据源名称 点击搜索按钮 即可切换到对应的数据源
    - -![输入图片说明](https://foruda.gitee.com/images/1678976876081856486/4ef4841c_1766278.png "屏幕截图") - -**>= 5.2.2版本 项目支持100+种数据库适配 在代码生成模块增加对应的数据库依赖即可**
    - -![输入图片说明](https://foruda.gitee.com/images/1722396530340741054/3914eb72_1766278.png "屏幕截图") - -### 导入数据表 - -> 点击导入按钮 会加载系统数据库所有的表
    - -![输入图片说明](https://foruda.gitee.com/images/1678976880393939803/3ecf1dcc_1766278.png "屏幕截图") - -> 选择需要的表 点击确定即可
    - -![输入图片说明](https://foruda.gitee.com/images/1678976885370716109/4834faa5_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976891856866728/853420d9_1766278.png "屏幕截图") - -### 编辑表生成结构 - -> 点击表对应的编辑按钮
    - -![输入图片说明](https://foruda.gitee.com/images/1678976899111822310/aeaa33f9_1766278.png "屏幕截图") - -> 更改要生成表的数据
    - -![输入图片说明](https://foruda.gitee.com/images/1678976903345795925/4326f6ee_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678976908897387614/4cdf939b_1766278.png "屏幕截图") - -### 生成条件影响 - -![输入图片说明](https://foruda.gitee.com/images/1678976913809284051/24da09b0_1766278.png "屏幕截图") - - -* `插入` `编辑` 影响生成 BO 类 与 前端添加编辑页面 是否有该字段 -* `列表` 影响生成 VO 类 与 前端列表页面展示 是否有该字段 -* `查询` 影响 前端页面是否有该字段的搜索框 与 后端代码是否生成对应的查询条件 -* `查询方式` 影响生成查询条件的类型 -* `必填` 影响 BO 类 与 页面是否强制校验 -* `显示类型` 影响生成页面使用何种展示组件 -* `字典类型` 影响页面是否生成与字典的关联 - -### 树表配置 - -> 编辑表生成信息 生成模板为 `树表` 填写对应数据即可
    - -![输入图片说明](https://foruda.gitee.com/images/1678976917918548901/f5886c5c_1766278.png "屏幕截图") - -### 主子表说明 - -框架不支持也不推荐使用主子表
    -原因一般业务场景 基本都是一对N表 多表关联场景
    -还有一些 主 => 子 <= 主 场景 需求很复杂 很少有单纯主子表场景出现
    -另外主子表关联 很容易出现 笛卡尔积 或者数据错乱等问题 需要自行sql调优场景
    -所以建议大家都按照 单表生成 自行编写业务逻辑 - -### 预览功能 - -> 配置好生成信息后 可以点击预览按钮
    - -![输入图片说明](https://foruda.gitee.com/images/1678976924411765532/2e9747df_1766278.png "屏幕截图") - -> 系统会根据已经配置好的数据 生成对应的代码预览
    -> 可以再此处观察代码的生成结构和数据是否正确等
    - -![输入图片说明](https://foruda.gitee.com/images/1678976945982406065/ca7383bb_1766278.png "屏幕截图") - - -### 代码结构同步 - -> 实际开发中 难免会有表结构更改的需求
    -> 这时可以使用 同步功能 点击同步按钮 即可与实时数据库表进行字段同步
    - -![输入图片说明](https://foruda.gitee.com/images/1678976952919156537/3c47c078_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md deleted file mode 100644 index 1dd01c17..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/export.md +++ /dev/null @@ -1,249 +0,0 @@ -# 导出功能 - -- - - - -在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导出操作(即写 Excel)。 - -[EasyExcel 文档地址](https://easyexcel.opensource.alibaba.com/) - -## 导出功能使用流程说明 - -### 步骤一:定义导出实体对象 - -以框架中 `SysUserExportVo` 为例: - -```Java - /** - * 用户ID - */ - @ExcelProperty(value = "用户序号") - private Long userId; - - // ....................... - - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; - - /** - * 帐号状态(0正常 1停用) - */ - @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_normal_disable") - private String status; -``` - -> 说明:
    -> 1. 使用 `@ExcelProperty` 注解标注需要导出的属性。 -> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 -> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 - -### 步骤二:使用导出方法 - -以框架中 `SysUserController#export` 方法为例: - -```Java - /** - * 导出用户列表 - */ - @PostMapping("/export") - public void export(SysUserBo user, HttpServletResponse response) { - // 根据参数查询导出的用户列表数据 - List list = userService.selectUserList(user); - // 将列表转换为导出对象列表 - List listVo = MapstructUtils.convert(list, SysUserExportVo.class); - // 导出方法 - ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); - } -``` - -> 说明:
    -> 使用 `ExcelUtil.exportExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导出对象集合,Excel sheet 表名称,导出对象类型,response。 - -## 框架工具使用说明 - -### 1:字典转换器 - -字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 - -使用方式一: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; -``` - -使用方式二: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") - private String sex; -``` - -`@ExcelDictFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|------------------|--------|-----|-----------------------------------| -| dictType | String | "" | 字典的type值 (如: sys_user_sex) | -| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | -| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | - -### 2:枚举转换器 - -字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 - -使用方式: - -```Java - /** - * 用户类型 - *

    - * 使用ExcelEnumFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) - @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") - private String userStatus; -``` - -`@ExcelEnumFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|-----------|------------|------|------------------------------| -| enumClass | Enum Class | - | 字典枚举类型 | -| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | -| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | - -### 3:合并单元格 - -`@CellMerge` 注解用于合并相同的列数据,需要结合 `CellMergeStrategy` 策略使用,标注在需要转换的属性上。 - -使用方式: - -步骤一:在属性标注 `@CellMerge` 注解: -```Java - /** - * 部门id - */ - @CellMerge - @ExcelProperty(value = "部门id") - private Long deptId; -``` - -`@CellMerge` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|---------|----------|-----|------------------------------| -| index | int | -1 | 合并列的下标,建议使用默认值 | -| mergeBy | String[] | {} | 合并需要依赖的其他字段名称(基于这个字段内容做合并条件) | - -步骤二:导出方法开启合并: -```Java - /** - * 导出测试单表列表 - */ - @PostMapping("/export") - public void export(@Validated TestDemoBo bo, HttpServletResponse response) { - List list = testDemoService.queryList(bo); - // 参数 true 表示开启合并单元格策略 - ExcelUtil.exportExcel(list, "测试单表", TestDemoVo.class, true, response); - } -``` -![输入图片说明](https://foruda.gitee.com/images/1700128921644543994/e8d4704f_1766278.png "屏幕截图") - -### 4:复杂 Excel 导出示例 -`TestExcelController` 提供了几种导出示例,如果需要可以参照相应方法进行导出。 - -#### 4.1:单列表多数据导出(模板导出) - -模板内容: - -![输入图片说明](https://foruda.gitee.com/images/1700124852002972562/d9f57a8c_4959041.png "屏幕截图") - -模板位置:`ruoyi-modules/ruoyi-demo/src/main/resources/excel/` - -导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700124885532359879/0d011d05_4959041.png "屏幕截图") - -#### 4.2:多列表多数据导出(模板导出) - -模板内容: - -![输入图片说明](https://foruda.gitee.com/images/1700125025931981176/105dbaaa_4959041.png "屏幕截图") - -模板位置:`ruoyi-modules/ruoyi-demo/src/main/resources/excel/` - -导出示例代码:参考 demo 模块 `TestExcelController` 模板写法请查看 `EasyExcel` 文档 - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700125054011300002/71869c1d_4959041.png "屏幕截图") - -#### 4.3:导出下拉框 - -`ExcelDictFormat` 注解指定的字典项默认都会转换成下拉框 - -自定义导出省市区下拉框示例代码:参考 demo 模块 `TestExcelController` - -导出结果: - -![输入图片说明](https://foruda.gitee.com/images/1700125265411678973/7f767719_4959041.png "屏幕截图") - -## Easy Excel 常用注解 - -`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解,自定义注解会结合转换器一起进行说明。 - -| 类型 | 注解名称 | 使用举例 | 说明 | -|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| -| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | -| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | -| 样式注解 | @ColumnWidth | @ColumnWidth(value=值) | 设置列宽 | -| 样式注解 | @ContentFontStyle | @ContentFontStyle(color=颜色) | 可以设置字体类型,颜色,粗细,是否斜体,下划线等,具体可查看注解 `@ContentFontStyle` | -| 样式注解 | @ContentLoopMerge | @ContentLoopMerge(eachRow=行值, columnExtend=列值) | 设置循环合并的区域 | -| 样式注解 | @ContentRowHeight | @ContentRowHeight(value=值) | 设置内容行高 | -| 样式注解 | @ContentStyle | - | 设置单元格样式,具体可查看注解 `@ContentStyle` | -| 样式注解 | @HeadFontStyle | @HeadFontStyle(color=颜色) | 设置表头字体格式,类似 `@ContentFontStyle`,具体可查看注解 `@HeadFontStyle` | -| 样式注解 | @HeadRowHeight | @HeadRowHeight(value=值) | 设置表头行高 | -| 样式注解 | @HeadStyle | - | 设置表头样式,具体可查看注解 `@HeadStyle` | -| 样式注解 | @OnceAbsoluteMerge | @OnceAbsoluteMerge(firstRowIndex=开始行下标, lastRowIndex=结束行下标, firstColumnIndex=开始列下标, lastColumnIndex=结束列下标) | 根据设置值合并单元格 | -| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | -| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | -| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | - -## 扩展说明 - -### 自定义转换器实现 - -由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 -以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 - -字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 - -_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ - -#### 实现方式 - -自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") - -转换方法 `ExcelDictConvert#convertToExcelData` : - -![输入图片说明](https://foruda.gitee.com/images/1700104426131801297/72931ef0_4959041.png "屏幕截图") - -## 更多功能 - -更多导出功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/api/write)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md deleted file mode 100644 index f1bbca7d..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/import.md +++ /dev/null @@ -1,202 +0,0 @@ -# 导入功能 -- - - - -在本框架中引入了 `Easy Excel` 依赖(对 `Apache POI`进行了封装以及扩展),可以对数据进行导入操作(即读 Excel)。 - -## 导入功能使用流程说明 - -### 步骤一:定义导入实体对象 - -以框架中 `SysUserImportVo` 为例: - -```java - /** - * 用户ID - */ - @ExcelProperty(value = "用户序号") - private Long userId; - - // ....................... - - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; - - /** - * 帐号状态(0正常 1停用) - */ - @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_normal_disable") - private String status; -``` - -> 说明:
    -> 1. 使用 `@ExcelProperty` 注解标注需要导入的属性。 -> 2. 注解 `@ExcelProperty` 中 `value` 属性代表表格头部标题字段,`converter` 代表使用的转换器,后面会详细说明。 -> 3. 注解 `@ExcelDictFormat` 为自定义注解,与自定义转换器结合使用,同样在后面进行详细说明。 -> 4. 对象禁止使用链式注解 `@Accessors(chain = true)`,会找不到set方法。 - -### 步骤二:使用导入方法 - -以框架中 `SysUserController#importData` 方法为例: - -```Java - /** - * 导入数据 - * - * @param file 导入文件 - * @param updateSupport 是否更新已存在数据 - */ - @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @SaCheckPermission("system:user:import") - @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { - // 导入方法 - ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); - return R.ok(result.getAnalysis()); - } -``` -> 说明:
    -> 使用 `ExcelUtil.importExcel` 方法完成导出功能,上述 Demo 传入参数分别是:导入文件流,导入对象类型,导入监听器 `SysUserImportListener`。 - -## 框架工具使用说明 - -### 1:字典转换器 - -字典转换器 `ExcelDictConvert` 与自定义注解 `@ExcelDictFormat` 结合使用,标注在需要转换的属性上。 - -使用方式一: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_sex") - private String sex; -``` - -使用方式二: - -```Java - /** - * 用户性别 - */ - @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp="0=男,1=女,2=未知", separator=",") - private String sex; -``` - -`@ExcelDictFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|------------------|--------|-----|-----------------------------------| -| dictType | String | "" | 字典的type值 (如: sys_user_sex) | -| readConverterExp | String | "" | 读取内容转表达式 (如: 0=男,1=女,2=未知) | -| separator | String | "," | 与 readConverterExp 属性结合使用,表达式的分隔符 | - -### 2:枚举转换器 - -字典转换器 `ExcelEnumConvert` 与自定义注解 `@ExcelEnumFormat` 结合使用,标注在需要转换的属性上。 - -使用方式: - -```Java - /** - * 用户类型 - *

    - * 使用ExcelEnumFormat注解需要进行下拉选的部分 - */ - @ExcelProperty(value = "用户类型", index = 1, converter = ExcelEnumConvert.class) - @ExcelEnumFormat(enumClass = UserStatus.class, textField = "info") - private String userStatus; -``` - -`@ExcelEnumFormat` 注解属性说明: - -| 属性名称 | 属性类型 | 默认值 | 说明 | -|-----------|------------|------|------------------------------| -| enumClass | Enum Class | - | 字典枚举类型 | -| codeField | String | code | 字典枚举类中对应的 code 属性名称,默认为 code | -| textField | String | text | 字典枚举类中对应的 text 属性名称,默认为 text | - - -### 3:导入监听器 - -#### 3.1:ExcelListener 监听器接口 - -`ExcelListener` 扩展了 `ReadListener` 接口,增加了获取结果方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700181723794469524/99bf83c9_4959041.png "屏幕截图") - -#### 3.2:DefaultExcelListener 默认监听器 - -`DefaultExcelListener` 默认监听器在读 Excel 时调用,主要对数据进行校验、解析、异常处理、返回结果等。导入操作时如果没有特别指定则使用该监听器。 - -#### 3.3:SysUserImportListener 用户导入监听器 - -`SysUserImportListener` 用户导入监听器是在用户导入时调用的监听器。 - -该监听器重写了 `invoke` 反射接口,对导入的用户数据进行了校验;重写了 `getExcelResult` 获取结果接口,返回结果数据。 - -#### 3.4:ExportDemoListener 带下拉框的导入监听器 - -`ExportDemoListener` 是对带有下拉框的 Excel 进行处理的导入监听器。 - -## Easy Excel 常用注解 - -`Easy Excel` 提供了丰富的注解可以对导出对象进行定制化操作,这里的注解说明针对的是原生注解。 - -| 类型 | 注解名称 | 使用举例 | 说明 | -|-------|-------------------------|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| -| 格式化注解 | @DateTimeFormat | @DateTimeFormat(value=格式化值) | 对字符串进行日期格式化 (参照 `java.text.SimpleDateFormat` 书写即可) | -| 格式化注解 | @NumberFormat | @NumberFormat(value=格式化值, roundingMode=舍入模式) | 对字符串进行数值格式化 (参照 `java.text.DecimalFormat` 书写即可, `roundingMode` 默认 `RoundingMode.HALF_UP`) | -| 属性注解 | @ExcelIgnore | @ExcelIgnore | 导出忽略该字段 | -| 属性注解 | @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | 默认不管加不加 `@ExcelProperty` 的注解的所有字段都会参与读写,加了 `@ExcelIgnoreUnannotated` 注解以后,不加 `@ExcelProperty` 注解的字段就不会参与 | -| 属性注解 | @ExcelProperty | @ExcelProperty(value=值, order=排序值, index=下标, converter=转换器) | 默认按照对象属性顺序导出,如果设置了 `order` 以及 `index`,优先级 `index` > `order` > 默认;converter 可以自定义 | - -## 扩展使用 - -### 扩展一:自定义转换器实现 - -由于业务需要,原生注解不一定能够符合需要,因而衍生出了自定义转换器。能够实现定制化的内容转换需要。 -以下以框架中的字典转换器 `ExcelDictConvert` 为例进行说明。 - -字典转换器 `ExcelDictConvert`,字典转换器使用了自定义注解 `@ExcelDictFormat` 配合使用。 - -_**注:自定义转换器并非一定需要自定义注解,也可以针对已有的注解进行自定义转换实现。**_ - -#### 实现方式 - -自定义转换器需要实现 `com.alibaba.excel.converters.Converter` 接口,实现接口中的方法。 - -![输入图片说明](https://foruda.gitee.com/images/1700104014304819918/33eb0c42_4959041.png "屏幕截图") - -转换方法 `ExcelDictConvert#convertToJavaData` : - -![输入图片说明](https://foruda.gitee.com/images/1700182975516396213/d3c020f9_4959041.png "屏幕截图") - -### 扩展二:自定义监听器实现 - -自定义监听器主要用于在读取解析 Excel 数据时进行自定义操作。 -以下以框架中的用户导入监听器 `SysUserImportListener` 为例进行说明。 - -#### 实现方式 -1. 继承分析事件监听器 `AnalysisEventListener` 以及实现 Excel 监听器 `ExcelListener`。 - -![输入图片说明](https://foruda.gitee.com/images/1700184652693497753/09333dac_4959041.png "屏幕截图") - -2. 显示使用构造函数,否则将导致空指针。 - -![输入图片说明](https://foruda.gitee.com/images/1700184759075616584/cf05b0ed_4959041.png "屏幕截图") - -3. 实现 `invoke` 方法,对数据进行解析操作,可以在此方法对数据进行合法性判断。 - -4. 实现 `getExcelResult` 方法,对结果进行操作,例如返回成功、失败的统计数据。 - -## 更多功能 - -更多导入功能使用可以参照 `Easy Excel` [官方文档](https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read)。 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md deleted file mode 100644 index a3e6e6b6..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/interface_release.md +++ /dev/null @@ -1,25 +0,0 @@ -# 接口放行 -- - - -## 使用方式 - -在配置文件填写路径放行
    -![输入图片说明](https://foruda.gitee.com/images/1678979039071447990/8b272aba_1766278.png "屏幕截图") - -### 注解放行 -版本 4.3.1 以上 建议使用 `@SaIgnore` 忽略注解
    - -支持在类或方法上放行
    -**注意: 动态路径会解析成通配符 请设计好接口路径避免问题** - -**例如: `/get/{userId}` 会解析成 `/get/*`**
    -![输入图片说明](https://foruda.gitee.com/images/1666595109409104199/5b7d75c7_1766278.png "屏幕截图") - -## 注意事项 - -接口放行后不需要token即可访问
    -但是没有token也就无法获取用户信息与鉴权 - -### 解决方案 -删除接口上的鉴权注解
    -删除接口内获取用户信息功能
    -删除数据库实体类 自动注入 `createBy` `updateBy` 因为会获取用户数据 \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md deleted file mode 100644 index 47484ab2..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/oss.md +++ /dev/null @@ -1,124 +0,0 @@ -# 关于OSS模块使用 -- - - -## 重点注意事项 - -`桶/存储区域` 系统会根据配置自行创建分配权限
    -~~如手动配置需要设置 `公有读` 权限 否则文件无法访问~~(`aliyun` 还需开通跨域配置)
    -4.4.0 版本支持配置`公有/私有`权限(`aliyun` 还需开通跨域配置)
    -访问站点 后严禁携带其他 `url` 例如: `/`, `/ruoyi` 等
    -**阿里云与腾讯云SDK访问站点中不能包含桶名 系统会自动处理**
    -**minio 站点不允许使用 localhost 请使用 127.0.0.1**
    -**访问站点与自定义域名 都不要包含 `http` `https` 前缀 设置`https`请使用选项处理** - -## 代码使用 - -> 参考 `SysOssService.upload` 用法
    -> 使用 `OssFactory.instance()` 获取当前启用的 `OssClient` 实例
    -> 进行功能调用 获取返回值后 存储到对应的业务表 - -![输入图片说明](https://foruda.gitee.com/images/1678978345529639839/d350ec0b_1766278.png "屏幕截图") - - -## 功能配置 - -### 配置OSS - -> 进入 `系统管理 -> 文件管理 -> 配置管理` 填写对应的OSS服务相关配置
    - -![输入图片说明](https://foruda.gitee.com/images/1678978349820700551/1f91a237_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978354387669856/3a91a3a9_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978358019307086/0c2523e4_1766278.png "屏幕截图") - -**重点说明** - -> 云厂商只需修改 `访问站点`对应的域 切勿乱改(云厂商强烈建议绑定自定义域名使用 七牛云必须绑定[官方规定])
    - -![输入图片说明](https://foruda.gitee.com/images/1678978362358100362/5c2c4d20_1766278.png "屏幕截图") - -> 七牛云 访问站点
    - - -![输入图片说明](https://foruda.gitee.com/images/1678978366254745764/e93a65ff_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978369853348732/79e8950e_1766278.png "屏幕截图") - -> 阿里云 访问站点 - -![输入图片说明](https://foruda.gitee.com/images/1678978373981462025/56a70398_1766278.png "屏幕截图") - -> 腾讯云 访问站点 - -![输入图片说明](https://foruda.gitee.com/images/1678978378697093134/785517f3_1766278.png "屏幕截图") - -### MinIO 使用 https访问站点 - -**注意:S3 API 签名计算算法不支持托管 MinIO Server API 的代理方案** - -[ minio https 配置方式](https://blog.csdn.net/Michelle_Zhong/article/details/126484358) - -### 切换OSS - -> 再配置列表点击 `状态` 按钮开启即可(注意: 只能开启一个OSS默认配置)
    -> 手动使用 `OssFactory.instance("configKey")`
    - -![输入图片说明](https://foruda.gitee.com/images/1678978383700118702/7f3fa0c5_1766278.png "屏幕截图") - -### 扩展分类 - -> 如有文件分类 建议创建多个 oss配置 进行切换存储
    - -例如: 创建一个 图片存储的 oss配置
    -指定唯一的 `configKey` 与 `前缀目录` 或 直接使用独立的`桶`
    -独立桶的特点 可以自定义访问权限
    -例如: 创建一个私有文件存储桶 不对外开放
    - -![输入图片说明](https://foruda.gitee.com/images/1678978389139754119/140be1df_1766278.png "屏幕截图") - -> 指定需要使用的配置
    -> 使用 `OssFactory.instance("image")` 获取的 `OssClient` 会加载上图的配置 从而达到上传不同的目录或桶 - - -![输入图片说明](https://foruda.gitee.com/images/1678978397550123641/1b536881_1766278.png "屏幕截图") - - -### 上传图片或文件 - -> 进入 `系统管理 -> 文件管理` 点击 `上传文件` 或 `上传图片` 根据选项选择即可 会对应上传到配置开启的OSS内
    - -![输入图片说明](https://foruda.gitee.com/images/1678978401028132972/445d058e_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978404388284503/5459da29_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978408761764835/c81651fc_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978412748494539/7bae621f_1766278.png "屏幕截图") - -### 列表展示 - -> 默认展示图片(可预览) 文件会展示路径
    - -![输入图片说明](https://foruda.gitee.com/images/1678978416327601385/af1ecb3b_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678978422249633007/19d68eaa_1766278.png "屏幕截图") - -> 可以点击 `预览禁用启用` 按钮对是否展示进行更改 - -![输入图片说明](https://foruda.gitee.com/images/1678978426017014926/4f7fa3f3_1766278.png "屏幕截图") - -> 点击禁用后 图片会变成路径展示 - -![输入图片说明](https://foruda.gitee.com/images/1678978429692592556/0231d778_1766278.png "屏幕截图") - -> 也可再 `参数设置` 更改预览状态 将 `OSS预览列表资源` 改为 `false` 即可关闭预览 - -![输入图片说明](https://foruda.gitee.com/images/1678978433769403801/7d480e76_1766278.png "屏幕截图") - -### 删除功能 - -> 点击列表上方或后方 `删除` 按钮 会根据OSS服务商类型 调用对应的删除(注意: 需确保对应的服务商配置正确)
    -> 可勾选多服务商类型的文件进行删除 系统会自动判断 - -![输入图片说明](https://foruda.gitee.com/images/1678978438265941745/f32edc72_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678978441938542080/43ed7c3d_1766278.png "屏幕截图") - -### 下载功能 - -> 点击列表后方对应资源的 `下载` 按钮 根据需求填写文件名 点击确认即可完成下载 - -![输入图片说明](https://foruda.gitee.com/images/1678978448927336261/409af888_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678978452761792483/ed0a4a72_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md deleted file mode 100644 index 97b6c525..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/page.md +++ /dev/null @@ -1,32 +0,0 @@ -# 分页功能 -- - - -## 对应版本 - -> 3.5.0 版本 - -## 重点说明 - -> 项目使用 `mybatis-plus` 分页插件 实现分页功能 大致用法与 MP 一致 [MP分页文档](https://baomidou.com/pages/97710a/)
    -> 项目已配置分页合理化 页数溢出 例如: 一共5页 查了第6页 默认返回第一页
    - -![输入图片说明](https://foruda.gitee.com/images/1678977804058241635/b5cb362d_1766278.png "屏幕截图") - -## 代码用法 - -> `Controller` 使用 `PageQuery` 接收分页参数 具体参数参考 `PageQuery` - -![输入图片说明](https://foruda.gitee.com/images/1678977844048821356/1f994221_1766278.png "屏幕截图") - -> 构建 `Mybatis-Plus` 分页对象
    -> 使用 `PageQuery#build()` 方法 可快速(基于当前对象数据)构建 `MP` 分页对象 - -![输入图片说明](https://foruda.gitee.com/images/1678977862816976499/b82c1638_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678977876194578744/eaa7b854_1766278.png "屏幕截图")
    - -具体用法与 `MP` 一致 - -> 自定义 `SQL` 方法分页
    -> 只需在 `Mapper` 方法第一个参数和返回值 重点: 第一个参数 标注分页对象 - -![输入图片说明](https://foruda.gitee.com/images/1678977898181729571/6e102731_1766278.png "屏幕截图")
    -![输入图片说明](https://foruda.gitee.com/images/1678977906788451483/70979292_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md deleted file mode 100644 index 95ee19d8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/param_check.md +++ /dev/null @@ -1,158 +0,0 @@ -# 参数校验 -- - - - -参数校验在日常开发中十分常见,在本框架中引入了 `spring-boot-starter-validation` 依赖,底层基于 `hibernate-validator`,可以对参数进行校验。 - -## 参数校验使用 - -### 方法一:使用 `@Validated` 注解 - -#### 步骤一:标注 `@Validated` - -`@Validated` 可以标注在类上,或者是参数前。 - -```Java -/** 标注在类上 **/ -@Validated -@RestController -@RequestMapping("/auth") -public class AuthController { - - @PostMapping("/login") - public R login(@RequestBody LoginBody body) { - // ... - } - -} -``` - -```Java -/** 标注在参数前 **/ -@PostMapping -public R add(@Validated @RequestBody SysUserBo user) { - // ... -} -``` - -#### 步骤二:标注校验注解 - -在参数中加入校验注解。 - -```Java -public class SysUserBo { - - @NotBlank(message = "用户账号不能为空") - @Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") - private String userName; - - @NotBlank(message = "用户昵称不能为空") - @Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符") - private String nickName; - - @Email(message = "邮箱格式不正确") - @Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符") - private String email; - -} -``` - -常见校验注解见文末附表。 - -_注:message 支持 EL 表达式,{max} 直接读取前面的参数值。_ - -### 方法二:使用校验工具类 `ValidatorUtils` - -`org.dromara.common.core.utils.ValidatorUtils` - -![输入图片说明](https://foruda.gitee.com/images/1700050047426137432/206bd032_4959041.png "屏幕截图") - -使用方式 1:校验所有带有校验注解的属性 - -```Java -// 校验所有带有校验注解的属性 -ValidatorUtils.validate(object); -``` - -使用方式 2:按照分组校验属性(可以传多个分组) - -```Java -// 按照分组校验属性(可以传多个分组) -ValidatorUtils.validate(object, group); -``` - -## 扩展使用 - -### 扩展一:自定义校验注解 - -除了已有的校验注解以外,可以结合业务进行自定义。 - -以框架中的 `@Xss` 注解为例进行说明。 - -```Java -@Xss(message = "用户账号不能包含脚本字符") -@NotBlank(message = "用户账号不能为空") -@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符") -private String userName; -``` - -#### 1:新增 `@Xss` 注解 - -`org.dromara.common.core.xss.Xss` - -![输入图片说明](https://foruda.gitee.com/images/1700048074014527096/b4e230c2_4959041.png "屏幕截图") - -#### 2:自定义校验器 - -自定义校验器实现 `jakarta.validation.ConstraintValidator` 接口。 - -`org.dromara.common.core.xss.XssValidator` - -![输入图片说明](https://foruda.gitee.com/images/1700048474563719650/f9172bdc_4959041.png "屏幕截图") - -### 扩展二:自定义分组校验 - -同一个对象在不同的请求中需要校验的参数不同,则可以使用分组校验。 - -#### 1:自定义分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049439236073123/9e0d2e16_4959041.png "屏幕截图") - -#### 2:`@Validated` 注解指定分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049302803077030/c2a985aa_4959041.png "屏幕截图") - -#### 3:校验注解中指定分组 - -![输入图片说明](https://foruda.gitee.com/images/1700049205699437759/96babbd6_4959041.png "屏幕截图") - -## 附录:常用校验注解 - -| 注解 | 使用(只列举特殊参数值) | 参数类型 | 说明 | -|------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| -| @AssertFalse | @AssertFalse | boolean / Boolean | 元素值必须为 false | -| @AssertTrue | @AssertTrue | boolean / Boolean | 元素值必须为 true | -| @DecimalMax | @DecimalMax(value=值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | -| @DecimalMin | @DecimalMin(value=值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | -| @Digits | @Digits(integer=整数位值, fraction=小数位值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 元素必须符合整数位以及小数位范围值 | -| @Email | @Email(regexp=正则表达式, flags=标志) | CharSequence | 元素是否符合正则表达式(正则表达式非必传) | -| @Future | @Future | - java.util.Date
    - java.util.Calendar
    - java.time.Instant
    - java.time.LocalDate
    - java.time.LocalDateTime
    - java.time.LocalTime
    - java.time.MonthDay
    - java.time.OffsetDateTime
    - java.time.OffsetTime
    - java.time.Year
    - java.time.YearMonth
    - java.time.ZonedDateTime
    - java.time.chrono.HijrahDate
    - java.time.chrono.JapaneseDate
    - java.time.chrono.MinguoDate
    - java.time.chrono.ThaiBuddhistDate | 元素必须是未来的时刻、日期或时间 | -| @FutureOrPresent | @FutureOrPresent | 同 @Future | 元素必须是当前或未来的时刻、日期或时间 | -| @Length | @Length(min=最小值, max=最大值) | - CharSequence | 验证字符串是否在包含的 min 和 max 之间 | -| @Max | @Max(value=值) | - BigDecimal
    - BigInteger
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须小于或等于指定的最大值 | -| @Min | @Min(value=值) | - BigDecimal
    - BigInteger
    - byte, short, int, long 及其包装类 | 元素必须是一个数字,其值必须大于或等于指定的最小值 | -| @Negative | @Negative | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的负数(即 0 被视为无效值) | -| @NegativeOrZero | @NegativeOrZero | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须为负数或 0 | -| @NotBlank | @NotBlank | CharSequence | 元素不能为 null,并且必须至少包含一个非空白字符 | -| @NotEmpty | @NotEmpty | - CharSequence
    - Collection
    - Map
    - Array | 元素不能为 null 或空集合 | -| @NotNull | @NotNull | 不限类型 | 元素不能为 null | -| @Null | @Null | 不限类型 | 元素必须为 null | -| @Past | @Past | 同 @Future | 元素必须是过去的瞬间、日期或时间 | -| @PastOrPresent | @PastOrPresent | 同 @Future | 元素必须是过去或现在的瞬间、日期或时间 | -| @Pattern | @Pattern(regexp=正则表达式, flags=标志) | CharSequence | 元素必须与指定的正则表达式匹配(正则表达式遵循 Java 正则表达式约定) | -| @Positive | @Positive | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须是一个严格的正数(即 0 被视为无效值) | -| @PositiveOrZero | @PositiveOrZero | - BigDecimal
    - BigInteger
    - byte,short,int,long,float,double 及其包装类 | 元素必须为正数或 0 | -| @Range | @Range(min=最小值, max=最大值) | - BigDecimal
    - BigInteger
    - CharSequence
    - byte, short, int, long 及其包装类 | 验证元素是否在包含的 min 和 max 之间 | -| @Size | @Size(min=最小值, max=最大值) | - CharSequence
    - Collection
    - Map
    - Array | 验证元素是否在包含的 min 和 max 之间 | -| @Valid | @Valid | 对象 | 级联验证 | - -更多注解可参考包: `org.hibernate.validator` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md deleted file mode 100644 index 384b7749..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions.md +++ /dev/null @@ -1,144 +0,0 @@ -# 关于数据权限 -- - - -* 参考 demo 模块用法(需导入 test.sql 文件) - -### 新版数据权限功能: -1.支持自动注入 sql 数据过滤
    -2.查询、更新、删除 限制
    -3.支持自定义数据字段过滤
    -4.模板支持 spel 语法实现动态 Bean 处理
    -5.支持与菜单权限标识符联合使用(5.2.X新功能) - -### 数据权限相关代码 - -| 类 | 说明 | 功能 | -|-------------------------------|-----------------|----------------------------------------| -| DataScopeType | 数据权限模板定义 | 用于定义数据权限模板 | -| DataPermission | 数据权限组注解 | 用于标注开启数据权限 (默认过滤部门权限) | -| DataColumn | 具体的数据权限字段标注 | 用于替换数据权限模板内的 key 变量 | -| PlusDataPermissionInterceptor | 数据权限 sql 拦截器 | 用于拦截所有 sql 检查是否标注了 `DataPermission` 注解 | -| PlusDataPermissionHandler | 数据权限处理器 | 用于处理被拦截到的 sql 为其添加数据权限过滤条件 | -| DataPermissionHelper | 数据权限助手 | 操作数据权限上下文变量 | -| SysDataScopeService | 自定义 Bean 处理数据权限 | 用于自定义扩展 | - -## 忽略数据权限 - -1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: -``` -@InterceptorIgnore(dataPermission = "true") -``` - -2.如果需要在业务层忽略数据权限,可调用以下方法: -``` -# 无返回值 -DataPermissionHelper.ignore(() -> { 业务代码 }); -# 有返回值 -Class result = DataPermissionHelper.ignore(() -> { return 业务代码 }); -``` - -### 使用方式 `参考demo模块` -数据权限体系 `用户 -> 多角色 => 角色 -> 单数据权限` -> 例子: 用户A 拥有两个角色
    -> 角色A 部门经理 可查看 本部门及以下部门的数据
    -> 角色B 兼职开发 可查看 仅自己的数据 - -> 创建角色 test1 为 本部门及以下 - -![输入图片说明](https://foruda.gitee.com/images/1678978669666831574/b51ed0a3_1766278.png "屏幕截图") - -> 创建角色 test2 为 仅本人 - -![输入图片说明](https://foruda.gitee.com/images/1678978674159035056/69cf32ad_1766278.png "屏幕截图") - -> 将其分配给用户 test - -![输入图片说明](https://foruda.gitee.com/images/1678978680492570269/a47b6afc_1766278.png "屏幕截图") - -### 编写列表查询(注意: 数据权限注解只能在 Mapper 层使用) - -> 标注数据权限注解 `dept_id` 为过滤部门字段 `user_id` 为过滤创建用户 - -![输入图片说明](https://foruda.gitee.com/images/1678978687179608427/d6b83c30_1766278.png "屏幕截图") - -### 重点注意: 如下情况不生效 - -> 有自定义实现方法 最终执行的mapper不是这个方法 所以无法生效 -> -> 解决方案: 一直往下点 找到最终的执行mapper重写即可 - -![输入图片说明](https://foruda.gitee.com/images/1678978692558777291/78b0a3dd_1766278.png "屏幕截图") - -### 编写数据权限模板 - -![输入图片说明](https://foruda.gitee.com/images/1678978697141183499/cfc1cb6a_1766278.png "屏幕截图") - -1.`code` 为关联角色的数据权限 `code`
    -2.`sqlTemplate` 为 sql 模板
    -`#{#deptName}` 为模板变量 对应权限注解的 `key`
    -`#{@sdss}` 为模板 Bean 调用 调用其 Bean 的处理方法
    -3.`elseSql` 为兜底 sql 处理当前角色与标注的注解 无对应的情况
    -例如 数据权限为仅本人 且 方法并未标注具体过滤注解 则 填充 `1 = 0` 使条件不满足 不允许查看
    -更详细用法可以参考 `DataScopeType` 注释 - -### 测试代码 - -> 使用 `管理员` 用户优先测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978703250082481/e93a68a5_1766278.png "屏幕截图") - -> 使用 `test` 用户测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978710644676604/d7f80487_1766278.png "屏幕截图") - -> 使用 `test` 删除一条不属于自己的数据 -> sql执行为不满足条件 不允许删除 - -![输入图片说明](https://foruda.gitee.com/images/1678978715711122947/441d61f7_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678978720298532619/a35b1147_1766278.png "屏幕截图") - - -> 使用 `test` 修改与删除同理
    -> 具体实现为 更新和删除方法 标注数据权限注解 - -![输入图片说明](https://foruda.gitee.com/images/1678978725329242504/a70491a1_1766278.png "屏幕截图") - -### 自定义SQL模板 - -> 1.首先在角色管理 数据权限下拉框 添加自定义模板
    -> 为什么不放置到系统字典问题: 因数据权限与模板绑定 不应随意改动 最好事先定义好 - -![输入图片说明](https://foruda.gitee.com/images/1678978730563169865/3459ee17_1766278.png "屏幕截图") - -> 2.代码 `DataScopeType` 自定义一个SQL模板 - -![输入图片说明](https://foruda.gitee.com/images/1678978735588305505/3f030c67_1766278.png "屏幕截图") - -> 3.标注权限注解 - -![输入图片说明](https://foruda.gitee.com/images/1678978742259837391/eabe5caa_1766278.png "屏幕截图") - -> 4.设置数据权限变量 - -![输入图片说明](https://foruda.gitee.com/images/1678978746778429543/e211201f_1766278.png "屏幕截图") - -> 5.测试 - -![输入图片说明](https://foruda.gitee.com/images/1678978751875467640/7d210cf4_1766278.png "屏幕截图") - -### mybatis-plus 原生方法 增加数据权限过滤 - -> 首先查看需要重写的方法源码 重点`方法源码` `方法源码` `方法源码`
    -> 例如重写 `selectPage` 方法
    - -![输入图片说明](https://foruda.gitee.com/images/1678978757955000897/8315695c_1766278.png "屏幕截图") - -> 复制源码到自己的 `Mapper` 并增加数据权限注解 注意左边出现重写图标 即为重写成功
    - -![输入图片说明](https://foruda.gitee.com/images/1678978763224011694/bbea25a1_1766278.png "屏幕截图") - -### 支持类标注 - -> 获取规则 `方法 > 类` 注意: 类标注后 所有方法(包括父类方法) 都会进行数据权限过滤 - -![输入图片说明](https://foruda.gitee.com/images/1678978767336534896/fb13ee99_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md deleted file mode 100644 index fa3a079c..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/permissions_control.md +++ /dev/null @@ -1,180 +0,0 @@ -# 权限控制 -- - - - -本文采用 `Sa-Token` 框架实现权限控制。[官方文档传送门](https://sa-token.cc/doc.html#/) - -## 权限校验 -权限校验指的是校验用户是否拥有访问某个 API 的能力。 - -通常情况下,一个 API 对应一个权限码,如果用户具备当前 API 的权限码,即代表有能力访问该 API。 - -### 1:权限标识 -在本系统中,每一个菜单功能都有对应的权限标识,可以在菜单管理中进行设置。 - -> 注: -> 1. 前后端的权限标识要保持一致。 -> 2. 权限标识可以使用通配符`*`。 - -![输入图片说明](https://foruda.gitee.com/images/1701086497939145368/133fb327_4959041.png "屏幕截图") - - -### 2:校验方法 -#### 2.1:使用 `@SaCheckPermission` 注解进行校验 -`@SaCheckPermission` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 - -- 单个权限校验: - -```Java -@SaCheckPermission("system:user:list") -``` - -- 多个权限校验(或模式,满足任意一个权限即可): - -```Java -@SaCheckPermission( - value = { - "system:user:list", - "system:user:query" - }, - mode = SaMode.OR -) -``` - -- 多个权限校验(与模式,必须满足所有权限): - -```Java -@SaCheckPermission( - value = { - "system:user:list", - "system:user:query" - }, - mode = SaMode.AND -) -``` - -#### 2.2:使用 `StpUtil` 工具类校验 -`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 - -- 判断当前用户是否拥有某个权限(返回 `boolean`): - -```Java -StpUtil.hasPermission("system:user:list"); -``` - -- 单个权限校验: - -```Java -StpUtil.checkPermission("system:user:list"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -- 多个权限校验(或模式,满足任意一个权限即可): - -```Java -StpUtil.checkPermissionOr("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -- 多个权限校验(与模式,必须满足所有权限): - -```Java -StpUtil.checkPermissionAnd("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotPermissionException` - -## 角色校验 -角色校验指的是校验用户是否拥有某个指定角色。 - -### 1:权限标识 -在本系统中,每个角色都拥有唯一的权限字符。 - -除了超级管理员角色外,其他角色的权限字符可以通过角色管理进行设置。 - -![输入图片说明](https://foruda.gitee.com/images/1701085080527279823/3255961d_4959041.png "屏幕截图") - -### 2:校验方法 -#### 2.1:使用 `@SaCheckRole` 注解校验 -`@SaCheckRole` 注解是由 `Sa-Token` 框架提供的角色校验注解,可以标注在方法上或类上。 - -- 单个角色校验 - -```Java -@SaCheckRole("superadmin") -``` - -- 多个角色校验(或模式,满足任意一个角色即可): - -```Java -@SaCheckRole( - value = { - "superadmin", - "admin" - }, - mode = SaMode.OR -) -``` - -- 多个角色校验(与模式,必须满足所有角色): - -```Java -@SaCheckRole( - value = { - "superadmin", - "admin" - }, - mode = SaMode.AND -) -``` - -#### 2.2:使用 `StpUtil` 工具类校验 -`StpUtil` 工具类是由 `Sa-Token` 框架提供的权限工具类,提供了常用的校验方法。 - -- 判断当前用户是否拥有某个角色(返回 `boolean`): - -```Java -StpUtil.hasRole("superadmin") -``` - -- 单个权限校验: - -```Java -StpUtil.checkRole("system:user:list"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -- 多个权限校验(或模式,满足任意一个角色即可): - -```Java -StpUtil.checkRoleOr("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -- 多个权限校验(与模式,必须满足所有角色): - -```Java -StpUtil.checkRoleAnd("system:user:list", "system:user:query"); -``` -如果验证未通过,则抛出异常: `NotRoleException` - -## 角色权限双重 `OR` 校验 -除了分开校验以外,权限和角色也可以进行组合,表示备选校验。 - -简单举个例子: - -假设某个 API 的权限码为 `system:user:list`,角色 `admin` 可以调用,则可以这样写: - -```Java -@SaCheckPermission(value = "system:user:list", orRole = "admin") -``` - -以上权限只需要满足任意一项即可。更多写法可以参考 `Sa-Token` [官方文档](https://sa-token.cc/doc.html#/use/at-check?id=_4%e3%80%81%e8%a7%92%e8%89%b2%e6%9d%83%e9%99%90%e5%8f%8c%e9%87%8d-or%e6%a0%a1%e9%aa%8c)。 - -## 当前用户的所有权限 -本系统中实现了 `StpInterface` 接口,可以对用户的权限以及角色进行管理,并且可以根据不同的用户类型进行设置。 - -具体参考类:`org.dromara.common.satoken.core.service.SaPermissionImpl` - -## 忽略权限校验 -请参考文档:[接口放行](/ruoyi-vue-plus/framework/basic/interface_release?id=接口放行) - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md deleted file mode 100644 index a004434b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/social.md +++ /dev/null @@ -1,68 +0,0 @@ -# 第三方授权功能 -- - - -## 版本 >= 5.X - -## 前置说明 -1. 该功能基于 `JustAuth` 实现,支持多家平台实现第三方授权登录。 -2. 以 `Gitee` 授权登录为例进行本功能的使用说明。 -3. 其他第三方授权配置信息获取方式可参考 `JustAuth` [官方文档](https://www.justauth.cn/guide/)。
    - - ![输入图片说明](https://foruda.gitee.com/images/1690937097426867003/91d80587_4959041.png "屏幕截图") - -## 第三方授权配置 - -### 申请三方应用(以gitee为例) - -![输入图片说明](https://foruda.gitee.com/images/1700641775779304627/1cf1b56f_1766278.png "屏幕截图") - -### 更改后端配置 `application-dev.yml` - -![输入图片说明](https://foruda.gitee.com/images/1690936741844431943/580f8998_4959041.png "屏幕截图") - -**注:内网地址无法回调,请使用外网可以访问的地址。** - -![输入图片说明](https://foruda.gitee.com/images/1690940457570856867/ce22df18_4959041.png "屏幕截图") - -### 更改前端配置 `login.vue` - -![输入图片说明](https://foruda.gitee.com/images/1690937306197173754/5c1ece29_4959041.png "屏幕截图") - -## 授权登录(未绑定第三方平台) - -### 步骤一:个人中心授权第三方应用 - -![输入图片说明](https://foruda.gitee.com/images/1690938449386201097/ea375106_4959041.png "屏幕截图") - -### 步骤二:同意授权 - -![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") - -顶部出现授权成功,并跳转到系统首页。
    - -![输入图片说明](https://foruda.gitee.com/images/1690938559178527841/563168e4_4959041.png "屏幕截图")
    - -![输入图片说明](https://foruda.gitee.com/images/1690938636375977741/8ceb77cf_4959041.png "屏幕截图") - -查看第三方应用可看到授权成功的个人信息。
    - -![输入图片说明](https://foruda.gitee.com/images/1690938725512311321/5532a2a9_4959041.png "屏幕截图") - -## 授权登录(已绑定第三方平台) - -### 步骤一:点击登录页面图标 - -![输入图片说明](https://foruda.gitee.com/images/1690938908352243992/fd044381_4959041.png "屏幕截图") - -### 步骤二:同意授权 - -![输入图片说明](https://foruda.gitee.com/images/1690938522418523183/81b327bf_4959041.png "屏幕截图") - -## 解除授权绑定 - -### 步骤一:个人中心点击解绑第三方应用 - -![输入图片说明](https://foruda.gitee.com/images/1690939087877969002/4ef324e7_4959041.png "屏幕截图") - -### 步骤二:点击确定完成解绑 - -![输入图片说明](https://foruda.gitee.com/images/1690939108017661775/7236088d_4959041.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md deleted file mode 100644 index 33953086..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/tenant.md +++ /dev/null @@ -1,121 +0,0 @@ -# 多租户功能 -- - - -## 版本 >= 5.X - -## 前置说明(重要) -1. 本框架多租户功能的实现是基于 [MyBatis-Plus 多租户插件](https://baomidou.com/pages/aef2f2/#tenantlineinnerinterceptor) 的,只支持最简单的隔离。 -2. 本系统默认开启多租户功能。 -3. 多租户业务表建表需要加上租户id `tenant_id`,可参考其他系统表。 -4. 非多租户表可在配置文件进行配置排除。 -5. 只有超级管理员支持切换租户。 - -## 多租户使用流程(先说结论再展开!) -0. 开启多租户配置(系统默认已经开启) -1. 登录界面(可以选择不同租户) -> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 -2. 设置多租户套餐 -3. 新增/修改租户(需要选择套餐) -4. 切换租户(仅超级管理员可操作) - -## 多租户配置 -`application.yml`
    - -> 开关 `enable` 节点不用废话。
    -> 如果不需要过滤租户的表可在 `excludes` 节点下添加。 - -**注意: 如果已经基于租户模式启动了程序 关闭租户必须删除mysql与redis内的相关数据重新导入sql** - -![输入图片说明](https://foruda.gitee.com/images/1680168468127690787/2cd3279e_4959041.png "屏幕截图") - -## 忽略租户 - -1.如果需要指定单独 SQL 不开启过滤,可在对应的 Mapper 接口添加如下忽略注解: -``` -@InterceptorIgnore(tenantLine = "true", dataPermission = "false") -``` -**此处注意事项 使用此注解如果需要开启数据权限 dataPermission = "false" 必须添加 mp的注解默认是忽略数据权限的 会导致数据权限失效** - -2.如果需要在业务层忽略多租户,可调用以下方法(推荐使用): -``` -# 无返回值 -TenantHelper.ignore(() -> { 业务代码 }); -# 有返回值 -Class result = TenantHelper.ignore(() -> { return 业务代码 }); -``` - -## 动态切换租户 - -**仅适用于特殊需求业务(例如: 创建租户时, 对该租户操作一些数据, 或者需要去其他租户查一些数据等) 禁止乱用后果自负** - -``` -# 无返回值 -TenantHelper.dynamic(租户id, () -> { 业务代码 }); -# 有返回值 -Class result = TenantHelper.dynamic(租户id, () -> { return 业务代码 }); -``` - -## 登录界面 - -![输入图片说明](https://foruda.gitee.com/images/1680173982933030545/bca146d7_4959041.png "屏幕截图") - -> 注:如果为租户设置了绑定域名,则只能选择当前域名相关的租户列表。 - -## 租户套餐管理 -### 租户套餐新增 -![输入图片说明](https://foruda.gitee.com/images/1680174317475230288/352957a1_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680174602877523112/fc194f17_4959041.png "屏幕截图") - -> 注: -> 1、先新增套餐再新增租户,因为租户新增之后无法修改所选套餐。 -> 2、租户所关联的套餐如果后续有修改可以进行同步。 - - -## 租户管理 -### 默认租户 -> 注:默认租户无法修改 - -![输入图片说明](https://foruda.gitee.com/images/1680174738913576400/b6aca11a_4959041.png "屏幕截图") - -### 新增租户 -#### 填写表单 -![输入图片说明](https://foruda.gitee.com/images/1680174945220618443/f7181b51_4959041.png "屏幕截图") - -#### 选择新增的租户套餐 -![输入图片说明](https://foruda.gitee.com/images/1680174991869792688/0dbaadd6_4959041.png "屏幕截图") - -#### 新增完成 -![输入图片说明](https://foruda.gitee.com/images/1680175033853525725/42e64b4d_4959041.png "屏幕截图") - -#### 登录租户 -![输入图片说明](https://foruda.gitee.com/images/1680176145378931134/e05f347e_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176208161104366/44a935f1_4959041.png "屏幕截图") - -### 修改租户 -#### 配置域名 -![输入图片说明](https://foruda.gitee.com/images/1680175251192690133/141fa6a6_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680175431036971650/db522d39_4959041.png "屏幕截图") - -#### 没有配置域名 -![输入图片说明](https://foruda.gitee.com/images/1680175541165540240/95e211f7_4959041.png "屏幕截图") - -#### 强调一下:这不是bug! -> 注:域名的配置就是为了绑定特定租户! - -### 同步套餐 -应用场景:租户套餐进行了修改,配置的菜单需要同步到特定租户。 -(不是所有租户都有更新套餐的权利, 这是跟钱挂钩的) - -> 点一下按钮的事,图略。 - -## 切换租户(仅超级管理员) -> 注:管理员切换租户不是切换用户,切换的只是数据,管理员拥有所有权限。 - -![输入图片说明](https://foruda.gitee.com/images/1680176324802967804/5c5d6fc3_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176431031189788/0c3f924c_4959041.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1680176496555243569/624ec677_4959041.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md deleted file mode 100644 index b665ac5a..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/basic/user.md +++ /dev/null @@ -1,85 +0,0 @@ -# 系统用户相关 -- - - - -> 框架采用sa-token控制权限 并对sa-token的api做了一定的业务封装
    - -## 用户登录 - -> 参考自带多种登录实现 不限制用户数据来源 只需要构建 LoginUser 即可完成登录
    -> 例如: `同表不同类型` `不同表` `同表+扩展表`
    - -![输入图片说明](https://foruda.gitee.com/images/1699590555824776931/63d493fc_1766278.png "屏幕截图") - -## 获取用户信息 - -> 完成登录后会生成登录token返回给前端 前端需要再请求头携带token 后端方可获取到对应的用户信息 - -请求头传递格式: `Authorization: Bearer token` - -后端获取用户信息: -```java -LoginUser user = LoginHelper.getLoginUser(); -``` - -## 获取用户信息(基于token) -```java -LoginUser user = LoginHelper.getLoginUser(token); -``` - -## 获取登录用户id -```java -Long userId = LoginHelper.getUserId(); -``` - -## 获取登录用户账户名 -```java -String username = LoginHelper.getUsername(); -``` - -## 获取登录用户所属租户id -```java -String tenantId = LoginHelper.getTenantId(); -``` - -## 获取登录用户所属部门id -```java -Long deptId = LoginHelper.getDeptId(); -``` - -## 获取登录用户类型 -```java -UserType userType = LoginHelper.getUserType(); -``` - -## 获取登录用户其他扩展属性 -```java -Object obj = LoginHelper.getExtra(key); -``` - -## 设置登录用户其他扩展属性 - -参考登录设置 `clientId` 属性 - -![输入图片说明](https://foruda.gitee.com/images/1699591164562734430/42730add_1766278.png "屏幕截图") - -## 判断用户是否为超级管理员 - -```java -// 判断当前登录用户 -boolean b = LoginHelper.isSuperAdmin(); -// 判断用户基于id -boolean b = LoginHelper.isSuperAdmin(userId); -``` - -## 判断用户是否为租户管理员 - -```java -// 判断当前登录用户 -boolean b = LoginHelper.isTenantAdmin(); -// 判断用户基于角色组 -boolean b = LoginHelper.isSuperAdmin(rolePermission); -``` - -## 其他更多操作 -[Sa-Token 官方文档 - 登录认证](https://sa-token.cc/doc.html#/use/login-auth) - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md deleted file mode 100644 index 593129e8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/about_join.md +++ /dev/null @@ -1,14 +0,0 @@ -# 关于多表查询 -- - - -## 建议单表查询 - -文章连接: [大连接查询分解好处](https://java.isture.com/db/mysql/mysql-x-optimize-decompose-connection.html) -文章连接: [如何用mp多表查询性能测试](https://developer.aliyun.com/article/858927) - -![输入图片说明](https://foruda.gitee.com/images/1678979482724037085/1e74f3e1_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1666336728402711844/52788205_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1666336945935088277/f60e3288_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1666336954686520161/c6c83adc_1766278.png "屏幕截图") - -**(上图出自 <高性能MySql>)** \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md deleted file mode 100644 index 3ec55fec..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/key.md +++ /dev/null @@ -1,19 +0,0 @@ -# 主键使用说明 -- - - -## 关于如何使用分布式id或雪花id - -参考 `MybatisPlusConfig` 如需自定义 修改 `Bean` 实现即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979401707903546/e25f6c06_1766278.png "屏幕截图") - -框架默认集成 雪花ID 只需全局更改 主键类型即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979411517764918/1470df04_1766278.png "屏幕截图") - -如单表使用 可单独配置注解 - -![输入图片说明](https://foruda.gitee.com/images/1678979416033986923/2a4c3736_1766278.png "屏幕截图") - -### 重点说明 -* 由于雪花id位数过长 `Long` 类型在前端会失真 -* 框架已配置序列化方案 超越 `JS` 最大值自动转字符串 参考 `BigNumberSerializer` 类 (3.0.0 及以上新增) \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md deleted file mode 100644 index c6dbfe99..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/test.md +++ /dev/null @@ -1,6 +0,0 @@ -# 单元测试 -- - - -## 参考文章 -[SpringBoot 2.X 整合 JUnit5 及全方位使用手册](https://lionli.blog.csdn.net/article/details/127576604) -## 参考代码(4.4.0新增) -![输入图片说明](https://foruda.gitee.com/images/1666973091281055549/6e8f58c3_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md deleted file mode 100644 index dfad76f8..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/explain/transaction.md +++ /dev/null @@ -1,45 +0,0 @@ -# 事务相关 -- - - -若依文档对事务注解的描述 [关于事务](https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BA%8B%E5%8A%A1%E7%AE%A1%E7%90%86) 以下对多数据源事务做补充: - -## 多后端多数据源事务 - -框架支持对接 `seata` 保证分布式多数据源事务
    -详情参考多数据源框架文档连接: https://www.kancloud.cn/tracy5546/dynamic-datasource/2268607 - -## 本地多数据源事务 -请使用 `@DSTransactional` 注解 会代理 `@DS` 注解切换后的数据源事务做回滚处理
    -只要 `@DSTransactional` 注解下任一环节发生异常,则全局多数据源事务回滚。
    -如果BC上也有 `@DSTransactional` 会有影响吗?答:没有影响的。 - -```java -//如AService调用BService和CService的方法,A,B,C分别对应不同数据源。 - -public class AService { - - @DS("a")//如果a是默认数据源则不需要DS注解。 - @DSTransactional - public void dosomething(){ - BService.dosomething(); - CService.dosomething(); - } -} - -public class BService { - - @DS("b") - public void dosomething(){ - //dosomething - } -} - -public class CService { - - @DS("c") - public void dosomething(){ - //dosomething - } -} -``` - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md deleted file mode 100644 index fc56df31..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/api_encrypt.md +++ /dev/null @@ -1,38 +0,0 @@ -# 数据加解密 -- - - - -## 1:API 加密注解 `@ApiEncrypt` -1. 对于标注了 `@ApiEncrypt` 注解的接口,请求参数都必须进行加密。 -2. 注解的参数 `response` 为响应加密标识,默认 `false` 不加密,为 `true` 表示响应加密。 -3. 加密解密逻辑由过滤器实现,详情可参考 `org.dromara.common.encrypt.filter.CryptoFilter`。 - -## 2:API 加密配置 -`application.yml` - -![输入图片说明](https://foruda.gitee.com/images/1701131796468961065/83c464cd_4959041.png "屏幕截图") - -`.env.development` / `.env.production` - -![输入图片说明](https://foruda.gitee.com/images/1709533252413969800/1d0dff25_1766278.png "屏幕截图") - -> 注: -> 1. 公私钥与前端配置文件互为配对,如果需要更换请一同更换。 -> 2. 后端公钥对应前端私钥;后端私钥对应前端公钥。 - -## 3:前端开启加密 -如果需要开启 API 加密,则需要修改 `request` 的 `headers` 内容: -```Javascript -headers: { - isEncrypt: true -} -``` - -![输入图片说明](https://foruda.gitee.com/images/1701137141916998346/5e839bbe_4959041.png "屏幕截图") - -## 4.关于请求响应参数加解密说明 - -如何加解密请求响应参数看这里 -> [关于请求响应参数解密](/questions/api_encrypt.md) - -## 密钥生成说明 - -![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md deleted file mode 100644 index 1e81b5e0..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/dynamic_datasource.md +++ /dev/null @@ -1,45 +0,0 @@ -# 多数据源 -- - - - -### 框架默认 mysql 其他数据库使用说明 - -找到 `ruoyi-admin` 模块在 pom 文件内增加对应的jdbc依赖 - -![输入图片说明](https://foruda.gitee.com/images/1721098535176969987/d42870ca_1766278.png "屏幕截图") - - -### 关于多数据源事务 具体参考 `事务相关` 文档说明 - -### 多数据源框架功能介绍 -多数据源框架官方文档: [dynamic-datasource文档](https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611) - -* 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。 -* 支持数据库敏感配置信息 加密 ENC()。 -* 支持每个数据库独立初始化表结构schema和数据库database。 -* 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 -* 支持 自定义注解 ,需继承DS(3.2.0+)。 -* 提供并简化对Druid,HikariCp,BeeCp,Dbcp2的快速集成。 -* 提供对Mybatis-Plus,Quartz,ShardingJdbc,P6sy,Jndi等组件的集成方案。 -* 提供 自定义数据源来源 方案(如全从数据库加载)。 -* 提供项目启动后 动态增加移除数据源 方案。 -* 提供Mybatis环境下的 纯读写分离 方案。 -* 提供使用 spel动态参数 解析数据源方案。内置spel,session,header,支持自定义。 -* 支持 多层数据源嵌套切换 。(ServiceA >>> ServiceB >>> ServiceC)。 -* 提供 基于seata的分布式事务方案。 -* 提供 本地多数据源事务方案。 附:不能和原生spring事务混用。 - -### 用法说明 - -> 加载顺序 `方法 => 类 => 默认`
    - -![输入图片说明](https://foruda.gitee.com/images/1678979069737596299/abe8ae7f_1766278.png "屏幕截图") - -### 配置方式 - -![输入图片说明](https://foruda.gitee.com/images/1678979074000345758/b9238f0b_1766278.png "屏幕截图") - -### 数据库异构 - -例如: `mysql + oracle` 参考对应多数据源框架文档 [dynamic-ds文档](https://www.kancloud.cn/tracy5546/dynamic-datasource) - -![输入图片说明](https://foruda.gitee.com/images/1678979078387192317/2de94a78_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md deleted file mode 100644 index 19d726cd..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/encrypt.md +++ /dev/null @@ -1,28 +0,0 @@ -# 数据加解密 -- - - -## 框架版本 >= 4.6.0 -## 功能说明 - -数据库 数据存储加密 查询解密功能
    -支持加密算法: `BASE64` `AES` `RSA` `SM2` `SM4` - -## 注解 `@EncryptField` - -![输入图片说明](https://foruda.gitee.com/images/1675577493013639395/cd920f15_1766278.png "屏幕截图") - -## 用法说明 - -**详细用法可参考案例 TestEncryptController 测试数据库加解密功能** - -全局默认加密配置(如果注解不配置则使用全局配置) - -![输入图片说明](https://foruda.gitee.com/images/1675577674063566357/dee94786_1766278.png "屏幕截图") - -注解可自定义算法与配置 - -![输入图片说明](https://foruda.gitee.com/images/1675577725117970708/7ee7a833_1766278.png "屏幕截图") - -## 密钥生成说明 - -![输入图片说明](https://foruda.gitee.com/images/1675577852271308699/9b30258e_1766278.png "屏幕截图") - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md deleted file mode 100644 index 46c7f423..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/idempotent.md +++ /dev/null @@ -1,29 +0,0 @@ -# 防重幂等 -- - - -### 功能介绍 - -防重功能为防止两条相同的数据重复提交导致脏数据或业务错乱
    -**注意: 重复提交属于小概率事件 请不要拿并发压测与之相提并论**
    -框架防重功能参考 `美团GTIS防重系统` 使用 请求参数与用户Token或URL 生成全局业务ID
    -有效防止 `同一个用户` 在 `限制时间` 内对 `同一个业务` 提交 `相同的数据` - -框架防重处理 `支持业务失败或异常` 快速释放限制
    -业务处理成功后 会在设置时间内 限制同一条数据的提交
    -**注意: 只对同一个用户的同一个接口提交相同的数据有效** - - - - -### 美团GTIS系统流程图 - -[美团 分布式系统互斥性与幂等性问题的分析与解决](https://tech.meituan.com/2016/09/29/distributed-system-mutually-exclusive-idempotence-cerberus-gtis.html) - -![输入图片说明](https://foruda.gitee.com/images/1678979231862359032/34f030c5_1766278.png "屏幕截图") - -### 使用方法 - -在Controller标注 `@RepeatSubmit` 注解即可 - -![输入图片说明](https://foruda.gitee.com/images/1678979236772683145/9fa27e5b_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678979240831458322/8e1fac4b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md deleted file mode 100644 index 6e7413ed..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/mail.md +++ /dev/null @@ -1,17 +0,0 @@ -# 邮件功能 -- - - -## 配置功能 - -版本: v4.2.0 提供邮件功能 - -修改配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1663555260932007318/fabb2bfa_1766278.png "屏幕截图") - -* `enabled` 为邮件功能开关 - -## 功能使用 - -参考 `demo` 模块 `MailController` 邮件演示案例 - -![输入图片说明](https://foruda.gitee.com/images/1663555374113593089/885b4db2_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md deleted file mode 100644 index a0b51d24..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/maxkey.md +++ /dev/null @@ -1,20 +0,0 @@ -# 对接 MaxKey 单点登录 -- - - - -# 安装 MaxKey 应用服务 - -参考 MaxKey 官方文档安装 [MaxKey安装部署](http://www.maxkey.top/doc/docs/intro/) - -# 配置应用 OAuth2.0 认证注册 - -![输入图片说明](https://foruda.gitee.com/images/1693377802128677240/0927270a_1766278.png "屏幕截图") - -# 配置后端服务 - -找到框架 `application-环境.yml` 配置文件 - -修改 `maxkey` 对应的 `client-id` 与 `client-secret` - -![输入图片说明](https://foruda.gitee.com/images/1693378118762354596/2f02c8a3_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1693378168538263792/24476d2a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md deleted file mode 100644 index 3e2d92ba..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sensitive.md +++ /dev/null @@ -1,33 +0,0 @@ -# 数据脱敏 -- - - -## 功能说明 - -系统使用 `Jackson` 序列化策略 对标注了 `Sensitive` 注解的属性进行脱敏处理 - -## 使用教程 - -> 使用注解标注需要脱敏的字段 选择对应的策略 - -![输入图片说明](https://foruda.gitee.com/images/1699523591703893602/ffd6dba2_1766278.png "屏幕截图") - -* strategy 脱敏策略 -* roleKey 角色code(判断用户是否拥有角色权限) -* perms 权限code(判断用户是否拥有标识符权限) - -![输入图片说明](https://foruda.gitee.com/images/1678979315796014155/614adf91_1766278.png "屏幕截图") - -> 可再 `SensitiveStrategy` 内自定义策略 - -![输入图片说明](https://foruda.gitee.com/images/1678979319996224858/3b3e3c8b_1766278.png "屏幕截图") - -## 脱敏逻辑修改 - -> 系统使用通用接口处理是否需要脱敏 多个系统可以自定义不同的脱敏逻辑实现 - -![输入图片说明](https://foruda.gitee.com/images/1678979325448998856/b262e425_1766278.png "屏幕截图") - -> 系统默认处理逻辑为 根据角色与标识符或非管理员脱敏 可自行修改默认实现 - -![输入图片说明](https://foruda.gitee.com/images/1699523752627488891/f82f2f50_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md deleted file mode 100644 index 283eb221..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/skywalking.md +++ /dev/null @@ -1,20 +0,0 @@ -# Skywalking链路监控 -- - - -## skywalking服务搭建 - -参考文章: https://lionli.blog.csdn.net/article/details/127656534
    -多种搭建方式 也可以参考百度 - -## 代码改动 - -https://gitee.com/dromara/RuoYi-Vue-Plus/commit/4d02466fed4f3ea012a80c3359cde9af0737141f
    -根据上方commit提交记录 开启注释掉的代码 - -## 本地使用 - -参考文章: https://lionli.blog.csdn.net/article/details/127656534 - -## docker部署使用 - -完成上方代码改动 将下载好的 `agent` 探针 放入服务器 `/docker/skywalking/agent/` 目录下 赋予所有权限即可
    -![输入图片说明](https://foruda.gitee.com/images/1669032573170837535/d9901f53_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md deleted file mode 100644 index a2308ecd..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sms.md +++ /dev/null @@ -1,51 +0,0 @@ -# 短信模块 -- - - - -# 配置功能 - -### 版本: >= v5.1.0 - -已完成 sms4j 项目整合 文档地址: https://sms4j.com/doc3 - -配置方式 具体厂商配置扩展 可以查看sms4j文档 - -![输入图片说明](https://foruda.gitee.com/images/1705573035997239848/2ca8512d_1766278.png "屏幕截图") - -使用方式 参考文档各种写法 下方为 demo 模块提供示例 - -![输入图片说明](https://foruda.gitee.com/images/1705573001447394180/2bd726d0_1766278.png "屏幕截图") - -### 版本: v4.2.0 提供短信模块 - -短信模块采用SPI加载
    -使用哪家的短信 引入哪家的依赖 即可动态加载
    -目前支持: `阿里云` `腾讯云` 欢迎扩展PR其他 - -> 参考 `ruoyi-demo` pom文件写法 - -![输入图片说明](https://foruda.gitee.com/images/1678979157797419426/cc9b7444_1766278.png "屏幕截图") - -> 修改配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1678979163029635375/e5fd6e20_1766278.png "屏幕截图") - -* `enabled` 为短信功能开关 -* `endpoint` 为域名 各厂家域名固定 按照文档配置即可 -* `accessKeyId` 密钥id -* `accessKeySecret` 密钥密匙 -* `signName` 签名 -* `sdkAppId` 应用id 腾讯专用 - -## 功能使用 - -参考 `demo` 模块 `SmsController` 短信演示案例
    -功能采用 `模板模式` 动态加载对应厂家的工具模板
    -引入 `SmsTemplate` 即可使用 - -![输入图片说明](https://foruda.gitee.com/images/1678979168699323982/e9301e84_1766278.png "屏幕截图") - -## 重点须知 - -由于各厂家参数解析不一致 请遵守以下规则 - -![输入图片说明](https://foruda.gitee.com/images/1678979172581090456/ac1f10e8_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md deleted file mode 100644 index 8a738329..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/sse.md +++ /dev/null @@ -1,22 +0,0 @@ -# SSE功能 -- - - - -## 框架版本 >= 5.2.2 - -## 配置说明 - -![输入图片说明](https://foruda.gitee.com/images/1721986820599622433/1abe5d60_1766278.png "屏幕截图") - -* enabled 是否开启此功能 -* path 应用路径 - -## 使用方法 - -前端连接方式: `http://后端ip:端口/resource/sse?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` - -其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 - -`SseMessageUtils.sendMessage` 推送单机消息(特殊需求使用)
    -`SseMessageUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
    -`SseMessageUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
    -`SseMessageUtils.publishAll` 群发消息给所有连接人
    \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md deleted file mode 100644 index 4778d0f9..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/topiam.md +++ /dev/null @@ -1,30 +0,0 @@ -# 对接 TOPIAM 单点登录 -- - - - -# 安装 TOPIAM 应用服务 - -参考 TOPIAM 官方文档安装 [TOPIAM安装部署](https://eiam.topiam.cn/docs/deployment/) - -# 配置 OIDC 应用 - -在 `登录 Redirect URI` 中填写 `http://localhost:80/oauth/callback?source=topiam` - -# 配置后端服务 - -找到框架 `application-环境.yml` 配置文件 - -修改 `topiam` 对应的 `client-id` 与 `client-secret` - -```yaml -justauth: - # 前端外网访问地址 - address: http://localhost:80 - type: - topiam: - # topiam 服务器地址,可在【应用配置信息】中找到 - server-url: http://127.0.0.1:1989/api/v1/authorize/y0q************spq***********8ol - client-id: 449c4*********937************759 - client-secret: ac7***********1e0************28d - redirect-uri: ${justauth.address}/social-callback?source=topiam - scopes: [openid] -``` \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md deleted file mode 100644 index 547b15ff..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/translation.md +++ /dev/null @@ -1,34 +0,0 @@ -# 翻译功能 -- - - -## 框架版本 >= 4.6.0 -## 注解 - -![输入图片说明](https://foruda.gitee.com/images/1675575648043199227/d04b3e21_1766278.png "屏幕截图") - -`@Translation` 翻译注解 用于实体类字段上
    -`@TranslationType` 翻译类别注解 用于实现类上标注与 `@Translation` 注解相同的 `type` 类型 实现翻译功能 - - -## 用法说明 - -默认提供功能 `用户id转账号(用户名)` `部门id转名称` `字典type转label` `ossId转url` - -![输入图片说明](https://foruda.gitee.com/images/1675575977860232549/143b74f8_1766278.png "屏幕截图") - -用户名翻译(映射翻译) 根据另一个映射字段 翻译保存到此字段 - -![输入图片说明](https://foruda.gitee.com/images/1675576044011477847/13eb9f57_1766278.png "屏幕截图") - -ossUrl翻译(直接翻译) 直接根据此字段值翻译后替换此字段值 - -![输入图片说明](https://foruda.gitee.com/images/1675576265894720924/70792f66_1766278.png "屏幕截图") - -字典翻译(其他扩展条件翻译) 根据`other`条件 自行定义如何使用 例如字典翻译`other`条件就是字典的唯一值 - -![输入图片说明](https://foruda.gitee.com/images/1675576391012282823/f95c5d78_1766278.png "屏幕截图") - -## 自定义扩展 - -实现接口 `TranslationInterface` 标注注解 `@TranslationType` 可参考框架默认实现 - -![输入图片说明](https://foruda.gitee.com/images/1676735436673932715/c3caa8d7_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md deleted file mode 100644 index 9e74e1e3..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/extend/websocket.md +++ /dev/null @@ -1,37 +0,0 @@ -# WebSocket功能 -- - - - -## 框架版本 >= 5.1.0 - -## 配置说明(默认关闭 推送建议使用SSE) - -![输入图片说明](https://foruda.gitee.com/images/1688356273985385949/5e4d1de8_1766278.png "屏幕截图") - -* enabled 是否开启此功能 -* path 应用路径 -* allowedOrigins 设置访问源地址 - -**重点: 如关闭ws功能需连同前端ws开关一同关闭 不然前端启动会报错** - -![输入图片说明](https://foruda.gitee.com/images/1700644877512019497/052d2f46_1766278.png "屏幕截图") - -## 使用方法 - -前端连接方式: `ws://后端ip:端口/resource/websocket?clientid=import.meta.env.VITE_APP_CLIENT_ID&Authorization=Bearer eyJ0eXAiO......` - -**由于js不支持请求头传输故而采用参数传输 如支持请求头传输建议使用请求头传输** - -传输方式: -```js -headers: { - Authorization: "Bearer " + getToken(), - clientid: import.meta.env.VITE_APP_CLIENT_ID -} -``` - -其中 `Authorization` 为请求token需要登录后获取 连接成功之后 与框架内其他获取登录用户方式一致 - -`WebSocketUtils.sendMessage` 推送单机消息(特殊需求使用)
    -`WebSocketUtils.subscribeMessage` 订阅分布式消息(框架初始化已订阅)
    -`WebSocketUtils.publishMessage` 发布分布式消息(推荐使用 所有集群内寻找到接收人)
    -`WebSocketUtils.publishAll` 群发消息给所有连接人
    \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md deleted file mode 100644 index 329cce21..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/framework/tree.md +++ /dev/null @@ -1,61 +0,0 @@ -# 目录结构 -- - - -v5.2.2 -~~~ -RuoYi-Vue-Plus -├─ ruoyi-admin // 管理模块 [8080,28080] -│ └─ RuoYiApplication // 启动类 -│ └─ RuoYiServletInitializer // 容器部署初始化类 -│ └─ resources // 资源文件 -│ └─ i18n/messages.properties // 国际化配置文件 -│ └─ application.yml // 框架总配置文件 -│ └─ application-dev.yml // 开发环境配置文件 -│ └─ application-prod.yml // 生产环境配置文件 -│ └─ banner.txt // 框架启动图标 -│ └─ logback-plus.xml // 日志配置文件 -│ └─ ip2region.xdb // IP区域地址库 -├─ ruoyi-extend // 扩展模块 -│ └─ ruoyi-monitor-admin // admin监控模块 [9090] -│ └─ ruoyi-snailjob-server // 任务调度中心模块 [8800,17888] -├─ ruoyi-common // 通用模块 -│ └─ ruoyi-common-bom // common依赖包管理 -│ └─ ruoyi-common-core // 核心模块 -│ └─ ruoyi-common-doc // 系统接口模块 -│ └─ ruoyi-common-encrypt // 数据加解密模块 -│ └─ ruoyi-common-excel // excel模块 -│ └─ ruoyi-common-idempotent // 幂等功能模块 -│ └─ ruoyi-common-job // 定时任务模块 -│ └─ ruoyi-common-json // 序列化模块 -│ └─ ruoyi-common-log // 日志模块 -│ └─ ruoyi-common-mail // 邮件模块 -│ └─ ruoyi-common-mybatis // 数据库模块 -│ └─ ruoyi-common-oss // oss服务模块 -│ └─ ruoyi-common-ratelimiter // 限流功能模块 -│ └─ ruoyi-common-redis // 缓存服务模块 -│ └─ ruoyi-common-satoken // satoken模块 -│ └─ ruoyi-common-security // 安全模块 -│ └─ ruoyi-common-sensitive // 脱敏模块 -│ └─ ruoyi-common-sms // 短信模块 -│ └─ ruoyi-common-social // 社交三方模块 -│ └─ ruoyi-common-sse // sse流推送模块 -│ └─ ruoyi-common-tenant // 租户模块 -│ └─ ruoyi-common-translation // 通用翻译模块 -│ └─ ruoyi-common-web // web模块 -│ └─ ruoyi-common-websocket // websocket服务集成模块 -├─ ruoyi-modules // 模块组 -│ └─ ruoyi-demo // 演示模块 -│ └─ ruoyi-generator // 代码生成模块 -│ └─ ruoyi-job // 任务调度服务 -│ └─ ruoyi-system // 业务模块 -│ └─ ruoyi-workflow // 工作流模块 -├─ plus-ui // 前端框架 [80] -├─ script // 系统脚本包 -│ └─ bin // 运行脚本包 -│ └─ docker // docker相关脚本 -│ └─ sql // sql脚本 -├─ .run // 执行脚本文件 -├─ .editorconfig // 编辑器编码格式配置 -├─ LICENSE // 开源协议 -├─ pom.xml // 公共依赖 -├─ README.md // 框架说明文件 -~~~ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md deleted file mode 100644 index ff4de9ef..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/home.md +++ /dev/null @@ -1,127 +0,0 @@ - -
    - -- - - -# 平台简介 -
    - -[![码云Gitee](https://gitee.com/dromara/RuoYi-Vue-Plus/badge/star.svg?theme=blue)](https://gitee.com/dromara/RuoYi-Vue-Plus) -[![GitHub](https://img.shields.io/github/stars/dromara/RuoYi-Vue-Plus.svg?style=social&label=Stars)](https://github.com/dromara/RuoYi-Vue-Plus) -[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus/blob/master/LICENSE) -[![使用IntelliJ IDEA开发维护](https://img.shields.io/badge/IntelliJ%20IDEA-提供支持-blue.svg)](https://www.jetbrains.com/?from=RuoYi-Vue-Plus) -
    -[![RuoYi-Vue-Plus](https://img.shields.io/badge/RuoYi_Vue_Plus-5.2.2-success.svg)](https://gitee.com/dromara/RuoYi-Vue-Plus) -[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2-blue.svg)]() -[![JDK-17](https://img.shields.io/badge/JDK-17-green.svg)]() -[![JDK-21](https://img.shields.io/badge/JDK-21-green.svg)]() - -> RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 `分布式集群与多租户` 场景全方位升级(不兼容原框架) - -> 项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
    -活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源 - -# 本框架与RuoYi的功能差异 - -| 功能 | 本框架 | RuoYi | -|-------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------| -| 前端项目 | 采用 Vue3 + TS + ElementPlus 重写 | 基于Vue2/Vue3 + JS | -| 后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 | 模块相互注入耦合严重难以扩展 | -| 后端代码风格 | 严格遵守Alibaba规范与项目统一配置的代码格式化 | 代码书写与常规结构不同阅读障碍大 | -| Web容器 | 采用 Undertow 基于 XNIO 的高性能容器 | 采用 Tomcat | -| 权限认证 | 采用 Sa-Token、Jwt 静态使用功能齐全 低耦合 高扩展 | Spring Security 配置繁琐扩展性极差 | -| 权限注解 | 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验
    角色与权限校验支持多种条件 如 `AND` `OR` 或 `权限 OR 角色` 等复杂表达式 | 只支持是否存在匹配 | -| 三方鉴权 | 采用 JustAuth 第三方登录组件 支持微信、钉钉等数十种三方认证 | 无 | -| 关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer
    可同时使用异构切换(支持其他 mybatis-plus 支持的所有数据库 只需要增加jdbc依赖即可使用 达梦金仓等均有成功案例) | 支持 Mysql、Oracle 不支持同时使用、不支持异构切换 | -| 缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 | Redis 简单 get set 支持 | -| Redis客户端 | 采用 Redisson Redis官方推荐 基于Netty的客户端工具
    支持Redis 90%以上的命令 底层优化规避很多不正确的用法 例如: keys被转换为scan
    支持单机、哨兵、单主集群、多主集群等模式 | Lettuce + RedisTemplate 支持模式少 工具使用繁琐
    连接池采用 common-pool Bug多经常性出问题 | -| 缓存注解 | 采用 Spring-Cache 注解 对其扩展了实现支持了更多功能
    例如 过期时间 最大空闲时间 组最大长度等 只需一个注解即可完成数据自动缓存 | 需手动编写Redis代码逻辑 | -| ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多
    例如多租户插件 分页插件 乐观锁插件等等 | 采用 Mybatis 基于XML需要手写SQL | -| SQL监控 | 采用 p6spy 可输出完整SQL与执行时间监控 | log输出 需手动拼接sql与参数无法快速查看调试问题 | -| 数据分页 | 采用 Mybatis-Plus 分页插件
    框架对其进行了扩展 对象化分页对象 支持多种方式传参 支持前端多排序 复杂排序 | 采用 PageHelper 仅支持单查询分页 参数只能从param传 只能单排序 功能扩展性差 体验不好 | -| 数据权限 | 采用 Mybatis-Plus 插件 自行分析拼接SQL 无感式过滤
    只需为Mapper设置好注解条件 支持多种自定义 不限于部门角色 | 采用 注解+aop 实现 基于部门角色 生成的sql兼容性差 不支持其他业务扩展
    生成sql后需手动拼接到具体业务sql上 对于多个Mapper查询不起作用 | -| 数据脱敏 | 采用 注解 + jackson 序列化期间脱敏 支持不同模块不同的脱敏条件
    支持多种策略 如身份证、手机号、地址、邮箱、银行卡等 可自行扩展 | 无 | -| 数据加解密 | 采用 注解 + mybatis 拦截器 对存取数据期间自动加解密
    支持多种策略 如BASE64、AES、RSA、SM2、SM4等 | 无 | -| 接口传输加密 | 采用 动态 AES + RSA 加密请求 body 每一次请求秘钥都不同大幅度降低可破解性 | 无 | -| 数据翻译 | 采用 注解 + jackson 序列化期间动态修改数据 数据进行翻译
    支持多种模式: `映射翻译` `直接翻译` `其他扩展条件翻译` 接口化两步即可完成自定义扩展 内置多种翻译实现 | 无 | -| 多数据源框架 | 采用 dynamic-datasource 支持市面大部分数据库
    通过yml配置即可动态管理异构不同种类的数据库 也可通过前端页面添加数据源
    支持spel表达式从请求头参数等条件切换数据源 | 基于 druid 手动编写代码配置数据源 配置繁琐 支持性差 | -| 多数据源事务 | 采用 dynamic-datasource 支持多数据源不同种类的数据库事务回滚 | 不支持 | -| 数据库连接池 | 采用 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下 | 采用 druid bug众多 社区维护差 活跃度低 配置众多繁琐性能一般 | -| 数据库主键 | 采用 雪花ID 基于时间戳的 有序增长 唯一ID 再也不用为分库分表 数据合并主键冲突重复而发愁 | 采用 数据库自增ID 支持数据量有限 不支持多数据源主键唯一 | -| WebSocket协议 | 基于 Spring 封装的 WebSocket 协议 扩展了Token鉴权与分布式会话同步 不再只是基于单机的废物 | 无 | -| SSE推送 | 采用 Spring SSE 实现 扩展了Token鉴权与分布式会话同步 | 无 | -| 序列化 | 采用 Jackson Spring官方内置序列化 靠谱!!! | 采用 fastjson bugjson 远近闻名 | -| 分布式幂等 | 参考美团GTIS防重系统简化实现(细节可看文档) | 手动编写注解基于aop实现 | -| 分布式锁 | 采用 Lock4j 底层基于 Redisson | 无 | -| 分布式任务调度 | 采用 SnailJob 天生支持分布式 统一的管理中心 支持多种数据库 支持分片重试DAG任务流等 | 采用 Quartz 基于数据库锁性能差 集群需要做很多配置与改造 | -| 文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储
    支持权限管理 安全可靠 文件可加密存储 | 采用 本机文件存储 文件裸漏 易丢失泄漏 不支持集群有单点效应 | -| 云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 | 不支持 | -| 短信 | 采用 sms4j 短信融合包 支持数十种短信厂家 只需在yml配置好厂家密钥即可使用 可多厂家共用 | 不支持 | -| 邮件 | 采用 mail-api 通用协议支持大部分邮件厂商 | 不支持 | -| 接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释
    只需把注释写好 无需再写一大堆的文档注解了 | 采用 Springfox 已停止维护 需要编写大量的注解来支持文档生成 | -| 校验框架 | 采用 Validation 支持注解与工具类校验 注解支持国际化 | 仅支持注解 且注解不支持国际化 | -| Excel框架 | 采用 Alibaba EasyExcel 基于插件化
    框架对其增加了很多功能 例如 自动合并相同内容 自动排列布局 字典翻译等 | 基于 POI 手写实现 功能有限 复杂 扩展性差 | -| 工作流支持 | 支持各种复杂审批 转办 委派 加减签 会签 或签 票签 等功能 | 无 | -| 工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 | 手写工具稳定性差易出问题 工具数量有限 代码臃肿需自己手写 get set 等 | -| 监控框架 | 采用 SpringBoot-Admin 基于SpringBoot官方 actuator 探针机制
    实时监控服务状态 框架还为其扩展了在线日志查看监控 | 无 | -| 链路追踪 | 采用 Apache SkyWalking 还在为请求不知道去哪了 到哪出了问题而烦恼吗
    用了它即可实时查看请求经过的每一处每一个节点 | 无 | -| 代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面
    降低80%的开发量 把精力都投入到业务设计上
    框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 | 代码生成原生结构 只支持单数据源生成 | -| 部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 | 原生jar部署 其他环境需手动下载安装 自行搭建 | -| 项目路径修改 | 提供详细的修改方案文档 并为其做了一些改动 非常简单即可修改成自己想要的 | 需要做很多改造 文档说明有限 | -| 国际化 | 基于请求头动态返回不同语种的文本内容 开发难度低 有对应的工具类 支持大部分注解内容国际化 | 只提供基础功能 其他需自行编写扩展 | -| 代码单例测试 | 提供单例测试 使用方式编写方法与maven多环境单测插件 | 只提供基础功能 其他需自行编写扩展 | -| Demo案例 | 提供框架功能的实际使用案例 单独一个模块提供了很多很全 | 无 | - - -## 本框架与RuoYi的业务差异 - -| 业务 | 功能说明 | 本框架 | RuoYi | -|--------|----------------------------------------------------------------------|-----|------------------| -| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | -| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | -| 客户端管理 | 系统内对接的所有客户端管理 如: pc端、小程序端等
    支持动态授权登录方式 如: 短信登录、密码登录等 支持动态控制token时效 | 支持 | 无 | -| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | -| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | -| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | -| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | -| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | -| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | -| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | -| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | -| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | -| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | -| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | -| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | -| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | -| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | -| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | -| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | -| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | -| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | -| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | -| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | - - -## 演示图例 - -| | | -|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------| -| ![输入图片说明](https://foruda.gitee.com/images/1680077524361362822/270bb429_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077619939771291/989bf9b6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077681751513929/1c27c5bd_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680077721559267315/74d63e23_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680077765638904515/1b75d4a6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078026375951297/eded7a4b_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078237104531207/0eb1b6a7_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078254306078709/5931e22f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078287971528493/0b9af60a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078308138770249/8d3b6696_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078352553634393/db5ef880_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078378238393374/601e4357_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078414983206024/2aae27c1_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078446738419874/ecce7d59_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078475971341775/149e8634_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078491666717143/3fadece7_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078558863188826/fb8ced2a_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078574561685461/ae68a0b2_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078594932772013/9d8bfec6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078626493093532/fcfe4ff6_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078643608812515/0295bd4f_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078685196286463/d7612c81_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078703877318597/56fce0bc_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078716586545643/b6dbd68f_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078734103217688/eb1e6aa6_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078759131415480/73c525d8_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078779416197879/75e3ed02_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078802329118061/77e10915_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078893627848351/34a1c342_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078928175016986/f126ec4a_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078941718318363/b68a0f72_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680078963175518631/3bb769a1_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680078982294090567/b31c343d_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079000642440444/77ca82a9_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079020995074177/03b7d52e_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079039367822173/76811806_1766278.png "屏幕截图") | -| ![输入图片说明](https://foruda.gitee.com/images/1680079274333484664/4dfdc7c0_1766278.png "屏幕截图") | ![输入图片说明](https://foruda.gitee.com/images/1680079290467458224/d6715fcf_1766278.png "屏幕截图") | - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md deleted file mode 100644 index 73a6dbc4..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/4.Xinit.md +++ /dev/null @@ -1,67 +0,0 @@ -# 4.X项目初始化 -- - - -### 项目分支说明 -`4.X` 主分支 4.X版本 稳定发布分支
    -`fast` 单体分支 功能与主分支相同 结构为单模块
    -`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
    -`future/*` 新功能预览分支
    - -### 项目必备环境 -> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 -* oracle jdk 8 11 (暂时不支持 17 不支持大于 jdk8_202 因为202是最后一个免费版本) -* mysql 5.7 8.0 (5.6未适配可能会有问题) -* oracle 11g 12c -* postgres 13 14 -* sqlserver 2017 2019 -* redis 5.X 6.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/tporadowski/redis)) -* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 -* maven 3.6.3 3.8.X -* nodejs >= 12 < 18 -* npm 6.X 8.X (7.X确认有问题) - -### 3.2.0及以上 只需勾选对应环境即可 -![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") - -### 默认 `JDK1.8` 如有变动 需更改以下配置 - -![输入图片说明](https://foruda.gitee.com/images/1681017282888708602/09da902f_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1681017287160367631/3a033268_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1681017292933832275/0bdf875e_1766278.png "屏幕截图") - -### sql导入 - -请按照以下顺序依次导入 - -![输入图片说明](https://foruda.gitee.com/images/1681017239000759855/ad43a5b2_1766278.png "屏幕截图") - -默认为 `mysql` 其他数据库需导入对应的sql文件 - -![输入图片说明](https://foruda.gitee.com/images/1681017245687923510/1b444bc4_1766278.png "屏幕截图") - -**多数据库仅支持主应用 扩展应用需自行适配(例如: xxl-job仅支持mysql)** - -### 服务启动顺序说明 - -1. 必须启动基础建设: mysql redis admin
    -2. 可选启动基础建设: minio(影响文件上传) monitor(影响监控) xxljob(影响定时任务)
    - -![输入图片说明](https://foruda.gitee.com/images/1678976302776168895/7333341c_1766278.png "屏幕截图") - -* `MonitorAdminApplication` 为 Admin监控服务(非必要 可参考对应文档关闭) -* `XxlJobAdminApplication` 为 任务调度中心服务(非必要 可参考对应文档关闭) -* `RuoYiApplication` 为 主应用服务 -> 需优先启动 `MonitorAdminApplication` 与 `XxlJobAdminApplication` 具体配置方式参考对应文档 -> 最后启动 主服务 `RuoYiApplication` - -### 主服务配置方式 - -在勾选对应环境的配置文件内 填写 mysql 与 redis 配置信息 - -![输入图片说明](https://foruda.gitee.com/images/1678941357316005626/70559736_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1681017185596156350/d4607b5b_1766278.png "屏幕截图") - -其他数据库配置 按照系统自带的配置更改即可 - -![输入图片说明](https://foruda.gitee.com/images/1678941444707120259/b274592a_1766278.png "屏幕截图") - - diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md deleted file mode 100644 index a966adad..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/5.Xnew.md +++ /dev/null @@ -1,5 +0,0 @@ -### 视频讲解 - -[RuoYi-Vue-Plus 5.0.0 新功能与变更介绍](https://www.bilibili.com/video/BV1Us4y1m7ky/) - -[RuoYi-Vue-Plus 5.1.0 新功能与变更介绍](https://www.bilibili.com/video/BV1fj411y71X/) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md deleted file mode 100644 index 0a317a83..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/admin_init.md +++ /dev/null @@ -1,32 +0,0 @@ -# 搭建Admin监控 -- - - -### 配置监控客户端 - -> 修改主服务配置文件 - -![输入图片说明](https://foruda.gitee.com/images/1678941504260707700/68ab99e5_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `url` 为监控中心地址 -* `username 与 password` 为监控中心的账号密码 - -### 启用监控中心 -在 `扩展项目 -> 监控模块` 启动 - -![输入图片说明](https://foruda.gitee.com/images/1678976327174539378/df97e36e_1766278.png "屏幕截图") - -在监控模块对应的 `yml` 配置文件 可设置登录的账号密码与访问路径 - -![输入图片说明](https://foruda.gitee.com/images/1678941572583282843/28117457_1766278.png "屏幕截图") - -### 前端修改admin监控访问路径 -`dev`环境 默认使用 `.env.development` 配置文件内地址 - -![输入图片说明](https://foruda.gitee.com/images/1678941607472644388/460e8eea_1766278.png "屏幕截图") - -`prod`环境 使用 `.env.production` 本机路由 - -![输入图片说明](https://foruda.gitee.com/images/1678941644784144830/6293ab1c_1766278.png "屏幕截图") -故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1678981483900657668/31fd1aad_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md deleted file mode 100644 index 37e184c4..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/deploy.md +++ /dev/null @@ -1,126 +0,0 @@ -# 应用部署 -- - - -## 版本 >= 4.3.0 - -### 请优先阅读 [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) - -## 手动部署 - -在服务器安装 `mysql` `redis` `nginx` `minio` - -将项目内 `script/docker/nginx/nginx.conf` 配置文件 复制到 `nginx` 配置内
    -将项目内 `script/docker/redis/redis.conf` 配置文件 复制到 `redis` 配置内 - -并修改相关参数如 `前端页面存放位置` `后端Ip地址` 等使其生效 - -jar包部署后端服务 打包命令如下 - -3.2.0及以上 -```mvn -mvn clean package -D maven.test.skip=true -P prod -``` -服务器需创建临时文件存储目录与配置文件对应(无此目录上传文件会报错) - -![输入图片说明](https://foruda.gitee.com/images/1659951373949149804/屏幕截图.png "屏幕截图.png") - -前端参考下方前端部署章节 - -## 部署视频 - -[RuoYi-Vue-Plus 5.0 生产环境搭建部署](https://www.bilibili.com/video/BV1mL411e7ha/) - -## docker 后端部署 - -### 请优先阅读 [idea环境配置](/ruoyi-vue-plus/quickstart/idea_environment.md) - -**重点: 一知半解的必看** -> [docker安装](https://lionli.blog.csdn.net/article/details/83153029)
    -> [docker-compose安装](https://lionli.blog.csdn.net/article/details/111220320)
    -> [docker网络模式讲解](https://lionli.blog.csdn.net/article/details/109603785)
    -> [docker 开启端口 2375 供外部程序访问](https://lionli.blog.csdn.net/article/details/92627962) - -### 将配置使用FTP上传到根目录 -idea拖拽文件到远程目录即可上传 - -![输入图片说明](https://foruda.gitee.com/images/1662109450908169859/eaac9299_1766278.png "屏幕截图") - -### 给docker分配文件夹权限 -**重点注意: 一定要确保目录 `/docker` 及其所有子目录 具有写权限 如果后续出现权限异常问题 重新执行一遍分配权限** - -![输入图片说明](https://foruda.gitee.com/images/1662109847279259882/3a2202c1_1766278.png "屏幕截图") -```shell -chmod -R 777 /docker -``` -### 构建应用镜像 - -**1.需要先使用maven打包成jar包** - -![输入图片说明](https://foruda.gitee.com/images/1662110477410977621/c6931c42_1766278.png "屏幕截图") - -**2.执行构建** -> 项目初始化后会自动生成构建镜像的运行配置
    -> 配置好docker连接之后 运行如下即可构建对应的应用镜像 - -**重点注意: idea2024及以上版本要求必须在本地安装docker才可以执行如下操作** - -![输入图片说明](https://foruda.gitee.com/images/1662110192257483752/0f754b47_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1662120004773449909/9fdef59c_1766278.png "屏幕截图") - -**3.结构讲解** -右键编辑 即可看到内部配置 - -![输入图片说明](https://foruda.gitee.com/images/1662458355500139498/eaa26036_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1662458446794722159/32c086a7_1766278.png "屏幕截图") - - -### 创建基础服务 - -```shell -docker-compose up -d mysql nginx-web redis minio -``` - -### 创建业务服务(需要先构建服务镜像) - -4.X -```shell -docker-compose up -d ruoyi-monitor-admin ruoyi-xxl-job-admin ruoyi-server1 ruoyi-server2 -``` - -5.X -```shell -docker-compose up -d ruoyi-monitor-admin ruoyi-snailjob-server ruoyi-server1 ruoyi-server2 -``` - -### docker其他操作(idea的docker插件 推荐使用) -![输入图片说明](https://foruda.gitee.com/images/1662458271941863770/cd180a04_1766278.png "屏幕截图") - -## 前端部署 - -执行打包命令 -```shell -# 打包正式环境 -npm run build:prod -``` -打包后生成打包文件在 `ruoyi-ui/dist` 目录 -将 `dist` 目录下文件(不包含 `dist` 目录) 上传到部署服务器 `docker/nginx/html` 目录下(手动部署放入自己配置的路径即可) - -![输入图片说明](https://foruda.gitee.com/images/1662110914769648699/07f344c4_1766278.png "屏幕截图") - -重启 `nginx` 服务即可 - - -### 如需更改后端代理路径或者后端ip地址的话往下看 - -更改`nginx.conf`配置文件代理路径(注意: /开头/结尾) - -![输入图片说明](https://foruda.gitee.com/images/1660185698211067202/屏幕截图.png "屏幕截图.png") - -更改前端`.env.环境` 文件内的 `VITE_APP_BASE_API` - -![输入图片说明](https://foruda.gitee.com/images/1724318035232137124/5d035a09_1766278.png "屏幕截图") - -更改`nginx.conf`配置文件后端ip地址 - -![输入图片说明](https://foruda.gitee.com/images/1660185711265558730/屏幕截图.png "屏幕截图.png") diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md deleted file mode 100644 index 0c6f33ac..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/extend_project.md +++ /dev/null @@ -1,49 +0,0 @@ -# 基于 RuoYi-Vue-Plus 的扩展项目列表 -- - - -### 精品PR 欢迎投稿 -| 功能介绍 | PR地址 | -|-------------------------------------|------------------------------------------------------| -| 拖拽图片调整显示顺序 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/173 | -| 增加Jasypt加密库对配置文件加密 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/177 | -| 使用富文本wangeditor5替换Quill | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/213 | -| 集成screw数据库文档功能模块 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/42 | -| Excel导入模板增加批注支持 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/222 | -| 压缩包处理工具 支持本地文件/目录+oss文件/网络文件混合 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/44 | -| 添加websocket模块 支持satoken鉴权 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/65 | -| 数据库字段加解密(支持 base64 aes rsa sm2 sm4) | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/274 | -| 增加liquibase迁移数据库 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/299 | -| 增加OSS模块支持本地环境 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/353 | -| 扩展模块独立集成flyway | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/439 | -| 扩展模块独立集成go-view大屏看板 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/445 | -| 基于AmazonS3协议的分片上传 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/130 | -| 扩展forest http客户端 声明式http请求 二次封装像工具类 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/547 | -| 增加短链接生成工具 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/515 | -| 新增oss预签名上传工具组合使用异步客户端分片 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/522 | -| 新增规则引擎LiteFlow,SQL持久化接入,支持可视化页面 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/552 | -| 一键部署到私有Nexus仓库 | https://gitee.com/dromara/RuoYi-Cloud-Plus/pulls/181 | -| 服务状态监控发送邮件钉钉等 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/568 | -| 登录验证支持2FA验证 | https://gitee.com/dromara/RuoYi-Vue-Plus/pulls/578 | - -### 项目介绍+项目地址 欢迎投稿 - - -| 项目介绍 | 项目地址 | -|--------------------------------|---------------------------------------------------------------------------| -| 微服务扩展 | https://gitee.com/dromara/RuoYi-Cloud-Plus | -| Plus学习笔记 | https://zhonglingyuxiu1028.github.io/zlyx-space/#/ruoyi-vue-plus/home | -| 基于uniapp+TmUI从0开发 支持H5/小程序/安卓 | https://gitee.com/dapppp/ruoyi-plus-miniapp | -| 基于RuoYi-App框架二次修改使用Uniapp+Vue3 | https://gitee.com/wangying110166/ruo-yi-uni-app-plus | -| 基于RuoYi-App框架对接Plus后端 | https://gitee.com/FnTop/RuoYi-App-Plus | -| 基于vben(ant-design-vue)前端项目 | https://gitee.com/dapppp/ruoyi-plus-vben | -| 基于vue-next-admin的vue3+ts前端 | https://gitee.com/thiszhc/RuoYi-Vue3-UI | -| 集成GoView版本 | https://gitee.com/kdwqjwgqxx/RuoYi-Vue-Plus-GoView | -| mybatis-flex版本 | https://gitee.com/dataprince/ruoyi-flex | -| blog博客系统 | https://gitee.com/kalashok-pan/zhi-blog-plus | -| tdengine时序数据库扩展 | https://gitee.com/zhangbg/ruoyi-plus-tdengine | -| 重构项目结构(参考springboot源码) | https://gitee.com/denghuafeng/ruoyi-boot-plus | -| Activiti扩展 | https://gitee.com/sgs98/RuoYi-Vue-Plus-Activiti | -| flowable扩展 | https://gitee.com/sgs98/RuoYi-Vue-Plus-Flowable | -| flowable扩展 | https://gitee.com/KonBAI-Q/ruoyi-flowable-plus | -| mybatis-flex版本 | https://gitee.com/yhan219/ruoyi-vue-flex | -| weblog博客系统 | https://gitee.com/fu-zhanshuai/fzshuai-weblog | -| Annlcc博客 | https://gitee.com/ahcode/ann-blog-plus | \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md deleted file mode 100644 index 5995e0ff..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/idea_environment.md +++ /dev/null @@ -1,50 +0,0 @@ -# idea环境配置 -- - - -## 配置项目编码 -![输入图片说明](https://foruda.gitee.com/images/1662107706295343419/e27065a9_1766278.png "屏幕截图") - -## 配置运行看板 -![输入图片说明](https://foruda.gitee.com/images/1662108673306567278/8af97b47_1766278.png "屏幕截图") -### 配置spring与docker看板 -![输入图片说明](https://foruda.gitee.com/images/1662111392476935892/6b6760fb_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1662108865191892425/3c045999_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1662108877322329668/ddb6d93d_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1662108894122798039/6a53a38c_1766278.png "屏幕截图") - -## 配置服务器SSH连接 -进入 `Settings -> Tools -> SSH Configurations` 点击加号创建SSH连接配置
    -填写 服务器IP 用户名 密码 端口号 点击 Test Connection 测试连接 - -![输入图片说明](https://foruda.gitee.com/images/1662107776533098115/bd78467b_1766278.png "屏幕截图") - -使用Terminal 工具 点击箭头找到上方创建的SSH连接配置
    -选择即可进入SSH连接界面 在这里可以对服务器进行命令操作 - -![输入图片说明](https://foruda.gitee.com/images/1662108010120640495/c70f9f9a_1766278.png "屏幕截图") - -## 配置服务器FTP连接 -进入 `Settings -> Build-> Deployment` 点击加号 选择SFTP 创建 FTP 连接配置
    -选择之前创建好的SSH配置 点击 Test Connection 测试连接 - -![输入图片说明](https://foruda.gitee.com/images/1662107899553257979/e2eeb7fd_1766278.png "屏幕截图") - -在IDEA上方工具栏 找到 `Tools -> Deployment -> Browse Remote Host` 打开远程界面
    -点击箭头找到我们上方配置的SFTP连接配置 即可连接到服务器的文件目录 - -![输入图片说明](https://foruda.gitee.com/images/1662107974682787233/b8a601fd_1766278.png "屏幕截图") - -## 配置Docker连接 -### 可操作远程docker与构建上传docker镜像(代替原来maven docker插件) -tcp连接需要开放服务器2375端口
    -ssh需要使用上方的SSH连接配置
    -建议使用SSH连接 - -![输入图片说明](https://foruda.gitee.com/images/1662108188005932060/75872bf8_1766278.png "屏幕截图") - -配置好之后 在运行窗口会多出一个Docker图标 双击即可连接远程docker
    -可以查看容器实时日志 启动 重启 停止 等操作 - -![输入图片说明](https://foruda.gitee.com/images/1662108250902891875/b82d022b_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md deleted file mode 100644 index dba09058..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/init.md +++ /dev/null @@ -1,73 +0,0 @@ -# 5.X项目初始化 -- - - -### 项目分支说明 - -`5.X` 主分支 5.X版本 稳定发布分支
    -`dev` 开发分支 代码随时更新 不推荐使用 经测试后会发布到主分支
    -`future/*` 新功能预览分支
    - -### 项目必备环境 -> 推荐使用 `docker` 安装 项目内置 `docker` 编排文件 - -**注意: 禁止使用 `oraclejdk`(由于spring的bug导致打包运行会报错)** - -**Spring官方推荐使用JDK https://bell-sw.com/pages/downloads/** - -![输入图片说明](https://foruda.gitee.com/images/1720080025744223375/0213a652_1766278.png "屏幕截图") - -* openjdk-17/21 或 graalvm-community-jdk-17/21 [下载地址](https://github.com/graalvm/graalvm-ce-builds/releases) 版本 -* mysql 5.7 8.0 (其他版本未测试 如其他版本没问题 可以告知咱们) -* oracle >= 12c (其他版本未测试 如其他版本没问题 可以告知咱们) -* postgres 13 14 (其他版本未测试 如其他版本没问题 可以告知咱们) -* sqlserver 2017 2019 (其他版本未测试 如其他版本没问题 可以告知咱们) -* redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X ([win redis 下载地址](https://github.com/zkteco-home/redis-windows)) -* minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储 -* maven >= 3.8.X -* nodejs >= 18.18 (其他版本未测试 如其他版本没问题 可以告知咱们) -* npm >= 8.X (7.X确认有问题) -* idea 2022 2024 (一定不要使用2023后果自负 bug太多影响项目开发) - -### 搭建视频 - -[RuoYi-Vue-Plus 5.0 搭建与运行](https://www.bilibili.com/video/BV1Fg4y137JK/) - -### 勾选maven对应环境 -![输入图片说明](https://foruda.gitee.com/images/1678976284045210056/a2f28d33_1766278.png "屏幕截图") - -### 默认 `JDK17` 如有变动 需更改以下配置 - -![输入图片说明](https://foruda.gitee.com/images/1678941027820943505/c688e01e_1766278.png "屏幕截图") -![输入图片说明](https://foruda.gitee.com/images/1678941120518807034/4d56fcc9_1766278.png "屏幕截图") - -### sql导入 - -请按照以下顺序依次导入 默认为 `mysql` 其他数据库需导入对应的sql文件
    -如需使用其他数据库 看这里 => [多数据库数据源](../framework/extend/dynamic_datasource.md)
    - -![输入图片说明](https://foruda.gitee.com/images/1725853192789853346/a0d3f0b7_1766278.png "屏幕截图") - -### 服务启动顺序说明 - -1. 必须启动基础建设: mysql redis admin
    -2. 可选启动基础建设: minio(影响文件上传) monitor(影响监控) snailjob(影响定时任务)
    - -![输入图片说明](https://foruda.gitee.com/images/1716175484919688429/8b9a79b7_1766278.png "屏幕截图") - -* `MonitorAdminApplication` 为 Admin监控服务(非必要 可参考对应文档关闭 [搭建Admin监控](/ruoyi-vue-plus/quickstart/admin_init.md)) -* `SnailJobServerApplication` 为 任务调度中心服务(非必要 可参考对应文档关闭 [搭建调度中心](/ruoyi-vue-plus/quickstart/snail_job_init.md)) -* `DromaraApplication` 为 主应用服务 -> 需优先启动 `MonitorAdminApplication` 与 `SnailJobServerApplication` 具体配置方式参考对应文档
    -> 最后启动 主服务 `DromaraApplication`
    -> 工作流相关初始化使用 [工作流初始化](/ruoyi-vue-plus/quickstart/worker_init.md) - -### 主服务配置方式 - -在勾选对应环境的配置文件内 填写 mysql 与 redis 配置信息 - -![输入图片说明](https://foruda.gitee.com/images/1678941357316005626/70559736_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1678941405169571070/0d06a955_1766278.png "屏幕截图") - -其他数据库配置 按照系统自带的配置更改即可 - -![输入图片说明](https://foruda.gitee.com/images/1678941444707120259/b274592a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md deleted file mode 100644 index 863971b1..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/power_job_init.md +++ /dev/null @@ -1,48 +0,0 @@ -# 搭建PowerJob任务调度中心(5.X分支已废弃) -- - - -### 废弃原因 - -接到大量投诉 使用困难 用法诡异 各种问题等 - -### 配置调度中心客户端 -> 修改主服务配置文件 -> - -![输入图片说明](https://foruda.gitee.com/images/1687656939847353725/951c1af7_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1687335574708412835/41d6c9d7_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `server-address` 为调度中心地址 -* `app-name` 为执行器组账户名(需在调度中心注册方可登录查看) - -### 启用调度中心 -**需执行 powerjob.sql 默认账号密码 `ruoyi-worker` `123456` 账号在数据库里 可以在页面修改密码** -
    - -![输入图片说明](https://foruda.gitee.com/images/1688634469876143273/c89455c0_1766278.png "屏幕截图") - -> 在 `扩展项目 -> powerjob-server模块` 启动 -> -![输入图片说明](https://foruda.gitee.com/images/1687335752250147336/17abe410_1766278.png "屏幕截图") - -> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-powerjob-server服务的配置文件**) -> -![输入图片说明](https://foruda.gitee.com/images/1687335802095066722/569d92be_1766278.png "屏幕截图") - -> 也可配置邮件发送 钉钉推送 和 mongodb存储 -> -![输入图片说明](https://foruda.gitee.com/images/1687335842722317559/f875c07a_1766278.png "屏幕截图") - -### 前端修改任务调度中心访问路径 -`dev`环境 默认使用 `.env.development` 配置文件内地址 - -![输入图片说明](https://foruda.gitee.com/images/1687335909698376722/7efa7539_1766278.png "屏幕截图") - -`prod`环境 使用 `.env.production` 本机路由 - -![输入图片说明](https://foruda.gitee.com/images/1687335937599399056/dd769ef5_1766278.png "屏幕截图") - -故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1687335979933648639/6a43b749_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md deleted file mode 100644 index 4c6d353b..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/snail_job_init.md +++ /dev/null @@ -1,52 +0,0 @@ -# 搭建SnailJob任务调度中心(5.2.0新功能) -- - - - -### 视频介绍 - -[Snail job任务调度中心:轻松掌握任务管理、重试机制和任务编排](https://www.bilibili.com/video/BV19i421m7GL/) - -### 配置调度中心客户端 -> 修改主服务配置文件 -> - -![输入图片说明](https://foruda.gitee.com/images/1687656939847353725/951c1af7_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1716174758437043952/de28db71_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `server.address` 为调度中心地址 -* `server.port` 为调度中心通信端口 -* `token` 为组通信校验token(可在调度中心组配置更换) -* `group-name` 为执行器组 -* `namespace` 作用域(不同作用域相互隔离请勿填错) - -### 启用调度中心 -**需执行 snail_job.sql 默认账号密码 `admin` `admin` 账号在数据库里 可以在页面修改密码** -
    - -![输入图片说明](https://foruda.gitee.com/images/1714355875395308961/adc21668_1766278.png "屏幕截图") - -> 在 `ruoyi-extend -> ruoyi-snailjob-server` 模块启动 -> -![输入图片说明](https://foruda.gitee.com/images/1716174842485474283/78cec86d_1766278.png "屏幕截图") - -> 需修改配置文件数据库连接地址(**注意: 此处为ruoyi-snailjob-server服务的配置文件 支持多种不同数据库**) -> -![输入图片说明](https://foruda.gitee.com/images/1714356048711590477/13289085_1766278.png "屏幕截图") - -### 快速入门 - -[Snailjob快速入门 基本使用介绍](https://juejin.cn/post/7412955032092442675) - -### 前端修改任务调度中心访问路径 -`dev`环境 默认使用 `.env.development` 配置文件内地址 - -![输入图片说明](https://foruda.gitee.com/images/1716174933143893408/58d47bbc_1766278.png "屏幕截图") - -`prod`环境 使用 `.env.production` 本机路由 - -![输入图片说明](https://foruda.gitee.com/images/1716174973454805690/0d6f20fb_1766278.png "屏幕截图") - -故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1716174998979181179/2f9e4e4a_1766278.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md deleted file mode 100644 index da09117a..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/worker_init.md +++ /dev/null @@ -1,43 +0,0 @@ -# 工作流初始化 -- - - - -### 工作流使用及配置方式 - -1.找到项目中script下bpmn文件夹 - -![输入图片说明](https://foruda.gitee.com/images/1714211764058540441/5c8b97af_5363069.png "屏幕截图") - -2.启动项目找到流程定义通过**部署流程文件**将bpmn文件夹下**模型.zip**上传 - -![输入图片说明](https://foruda.gitee.com/images/1714211950485333575/1e2b3ff4_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212113004821592/96586e69_5363069.png "屏幕截图") - -3.导入**模型.zip**后将会出现以下列表,默认使用**leave1**,test_leave为请假申请表名称 - -![输入图片说明](https://foruda.gitee.com/images/1714212222766335759/1227bbd6_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212493602552742/9e0258b1_5363069.png "屏幕截图") - -**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** - -![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") - - -4.新增一条请假申请,提交后将会得到如下信息 - -![输入图片说明](https://foruda.gitee.com/images/1714212617432902105/3609f6ef_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212630860787365/2922d38e_5363069.png "屏幕截图") - -5.关于如何切换一个新的流程使用,当前默认使用得KEY为leave1 ,我们切换到leave2使用,我们只需点击绑定业务将表名绑定,重新发起一个新的请假申请就可以得到一个新的流程信息 - -![输入图片说明](https://foruda.gitee.com/images/1714212876442323110/4554ea95_5363069.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714213037864274694/613149f5_5363069.png "屏幕截图") - -**此处表名由来与表单源码内编写的表名保持一致方可互相绑定** - -![输入图片说明](https://foruda.gitee.com/images/1716447357161482917/2c9b1639_1766278.png "屏幕截图") - -![输入图片说明](https://foruda.gitee.com/images/1714212963457174382/add768db_5363069.png "屏幕截图") \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md b/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md deleted file mode 100644 index f2751e9f..00000000 --- a/ruoyi-admin/src/main/resources/static/ruoyi-vue-plus/quickstart/xxl_job_init.md +++ /dev/null @@ -1,43 +0,0 @@ -# 搭建Xxl-Job任务调度中心(5.X分支已废弃) -- - - -### 废弃原因 - -长时间不维护 社区冰点 不支持jdk17 不支持boot3 不支持其他数据库等 - -### 配置调度中心客户端 -> 修改主服务配置文件 -> -![输入图片说明](https://foruda.gitee.com/images/1678941760168414366/b81e023b_1766278.png "屏幕截图") - -* `enabled` 可启用或关闭客户端注册 -* `admin-addresses` 为调度中心地址 -* `access-token` 为调度中心交互鉴权token -* `executor` 为执行器配置 一个客户端为一个执行器 可配置执行器集群 使用分片任务处理 - -### 启用调度中心 -**默认账号密码 `admin` `123456` 账号在数据库里 可以在页面修改密码** - -> 在 `扩展项目 -> xxl-job-admin模块` 启动 -> -![输入图片说明](https://foruda.gitee.com/images/1678976353500205883/058fef13_1766278.png "屏幕截图") - -> 需修改配置文件数据库连接地址(**注意: 此处为xxl-job-admin服务的配置文件**) -> -![输入图片说明](https://foruda.gitee.com/images/1678941813423551656/04c32a5b_1766278.png "屏幕截图") - -> 也可配置邮件发送 -> -![输入图片说明](https://foruda.gitee.com/images/1678941825447455298/1baa5e43_1766278.png "屏幕截图") - -### 前端修改任务调度中心访问路径 -`dev`环境 默认使用 `.env.development` 配置文件内地址 - -![输入图片说明](https://foruda.gitee.com/images/1678976378255854583/8cdbf4e3_1766278.png "屏幕截图") - -`prod`环境 使用 `.env.production` 本机路由 - -![输入图片说明](https://foruda.gitee.com/images/1678976382819019066/96288331_1766278.png "屏幕截图") - -故而 `prod` 环境只需更改 `nginx` 反向代理路径即可 - -![输入图片说明](https://foruda.gitee.com/images/1678976386764602366/55894f85_1766278.png "屏幕截图") diff --git a/ruoyi-admin/src/main/resources/static/static/css/vue.css b/ruoyi-admin/src/main/resources/static/static/css/vue.css deleted file mode 100644 index 847f385a..00000000 --- a/ruoyi-admin/src/main/resources/static/static/css/vue.css +++ /dev/null @@ -1 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}img.emoji{height:1.2em}img.emoji,span.emoji{vertical-align:middle}span.emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1.2em}.progress{background-color:#42b983;background-color:var(--theme-color,#42b983);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:999999}.search .search-keyword,.search a:hover{color:#42b983;color:var(--theme-color,#42b983)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}li input[type=checkbox]{margin:0 .2em .25em 0;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:10}.app-nav.no-badge{margin-right:25px}.app-nav p{margin:0}.app-nav>a{margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#42b983;color:var(--theme-color,#42b983)}.app-nav a.active{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983)}.app-nav li{display:inline-block;margin:0 1rem;padding:5px 0;position:relative;cursor:pointer}.app-nav li ul{background-color:#fff;border:1px solid;border-color:#ddd #ddd #ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:1rem;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner:hover .octo-arm{animation:octocat-wave .56s ease-in-out}.github-corner svg{color:#fff;fill:#42b983;fill:var(--theme-color,#42b983);height:80px;width:80px}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;position:absolute;top:0;bottom:0;left:0;transition:transform .25s ease-out;width:300px;z-index:20}.sidebar>h1{margin:0 auto 1rem;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0 0 0 15px;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53.3%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53.3%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;position:absolute;bottom:0;left:0;text-align:center;transition:opacity .3s;width:284px;z-index:30;cursor:pointer}.sidebar-toggle:hover .sidebar-toggle-button{opacity:.4}.sidebar-toggle span{background-color:#42b983;background-color:var(--theme-color,#42b983);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;position:absolute;top:0;right:0;bottom:0;left:300px;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:80%;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee;width:1px;min-width:100%}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;height:20px;width:20px;text-align:center;top:14px}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#34495e}.markdown-section p.warn{background:rgba(66,185,131,.1);border-radius:2px;padding:1rem}.markdown-section ul.task-list>li{list-style-type:none}body.close .sidebar{transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;min-height:100vh;overflow-x:hidden}.sidebar{left:-300px;transition:transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:transform .25s ease}.app-nav,.github-corner{transition:transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave .56s ease-in-out}}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}section.cover{position:relative;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;min-height:100vh;width:100%;display:none}section.cover.show{display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;bottom:0;width:100%}section.cover .cover-main{flex:1;margin:0 16px;text-align:center;position:relative}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:2.5rem;font-weight:300;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-.4375rem;font-size:1rem;position:absolute}section.cover blockquote{font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-radius:2rem;border:1px solid #42b983;border-color:var(--theme-color,#42b983);box-sizing:border-box;color:#42b983;color:var(--theme-color,#42b983);display:inline-block;font-size:1.05rem;letter-spacing:.1rem;margin:.5rem 1rem;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#42b983;background-color:var(--theme-color,#42b983);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983);transition:color .3s}section.cover blockquote>p>a:hover{color:#42b983;color:var(--theme-color,#42b983)}.sidebar,body{background-color:#fff}.sidebar{color:#364149}.sidebar li{margin:6px 0}.sidebar ul li a{color:#505d6b;font-size:14px;font-weight:400;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{border-right:2px solid;color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.app-sub-sidebar li:before{content:"-";padding-right:4px;float:left}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#2c3e50;font-weight:600}.markdown-section a{color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.markdown-section h1{font-size:2rem;margin:0 0 1rem}.markdown-section h2{font-size:1.75rem;margin:45px 0 .8rem}.markdown-section h3{font-size:1.5rem;margin:40px 0 .6rem}.markdown-section h4{font-size:1.25rem}.markdown-section h5{font-size:1rem}.markdown-section h6{color:#777;font-size:1rem}.markdown-section figure,.markdown-section p{margin:1.2em 0}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:1.6rem;word-spacing:.05rem}.markdown-section ol,.markdown-section ul{padding-left:1.5rem}.markdown-section blockquote{border-left:4px solid #42b983;border-left:4px solid var(--theme-color,#42b983);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code,.markdown-section output:after,.markdown-section pre{font-family:Roboto Mono,Monaco,courier,monospace}.markdown-section code,.markdown-section pre{background-color:#f8f8f8}.markdown-section output,.markdown-section pre{margin:1.2em 0;position:relative}.markdown-section output,.markdown-section pre>code{border-radius:2px;display:block}.markdown-section output:after,.markdown-section pre>code{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial}.markdown-section code{border-radius:2px;color:#e96900;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-section>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code{font-size:.8rem}.markdown-section pre{padding:0 1.4rem;line-height:1.5rem;overflow:auto;word-wrap:normal}.markdown-section pre>code{color:#525252;font-size:.8rem;padding:2.2em 5px;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;white-space:inherit}.markdown-section output{padding:1.7rem 1.4rem;border:1px dotted #ccc}.markdown-section output>:first-child{margin-top:0}.markdown-section output>:last-child{margin-bottom:0}.markdown-section code:after,.markdown-section code:before,.markdown-section output:after,.markdown-section output:before{letter-spacing:.05rem}.markdown-section output:after,.markdown-section pre:after{color:#ccc;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0;content:attr(data-lang)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#42b983;color:var(--theme-color,#42b983)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#42b983;color:var(--theme-color,#42b983)}.token.function,.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:1.5rem;position:relative;left:auto} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/image/favicon.ico b/ruoyi-admin/src/main/resources/static/static/image/favicon.ico deleted file mode 100644 index 3f919d85a5d1e093fd8d80ebcbe9987a3bdbb54f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8131 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 d+2AD?_zza93G2_wa8hsDrQ(_BS&^YK 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%0Ar%T_GGt_c=};c*I8x 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

    dIu3Tej*vo(mDIg8|V;jXGB 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

    ?JiY|_3D6mUw3i~oxC;N{ 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�US*X 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 Oe-a`x!WDwLzW)mfk=W({ diff --git a/ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png b/ruoyi-admin/src/main/resources/static/static/image/ruoyivueplus.png deleted file mode 100644 index d0eba10d14c6b8b30f8b7229685da338d2a168b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54652 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 diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js deleted file mode 100644 index 02a83a31..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/docsify-copy-code.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * docsify-copy-code - * v3.0.0 - * https://github.com/jperasmus/docsify-copy-code - * (c) 2017-2023 JP Erasmus - * MIT license - */ -!function(){"use strict";function e(o){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(o)}!function(e,o){void 0===o&&(o={});var t=o.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=e:c.appendChild(document.createTextNode(e))}}(".docsify-copy-code-button,.docsify-copy-code-button>span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{background:grey;background:var(--theme-color,grey);border:0;border-radius:0;color:#fff;font-size:1em;opacity:0;outline:0;overflow:visible;padding:.65em .8em;position:absolute;right:0;top:0;z-index:1}.docsify-copy-code-button>span{background:inherit;border-radius:3px;pointer-events:none}.docsify-copy-code-button>.error,.docsify-copy-code-button>.success{font-size:.825em;opacity:0;padding:.5em .65em;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:-100}.docsify-copy-code-button.error>.error,.docsify-copy-code-button.success>.success{opacity:1;right:100%;transform:translate(-25%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}.docsify-copy-code-button>[aria-live]{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(e,o){e.ready((function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")}))}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,t){var n={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};o.doneEach((function(){var o=Array.from(document.querySelectorAll("pre[data-lang]"));t.config.copyCode&&Object.keys(n).forEach((function(o){var c=t.config.copyCode[o];"string"==typeof c?n[o]=c:"object"===e(c)&&Object.keys(c).some((function(e){var t=location.href.indexOf(e)>-1;return n[o]=t?c[e]:n[o],t}))}));var c=['"].join("");o.forEach((function(e){e.insertAdjacentHTML("beforeend",c)}))})),o.mounted((function(){var e=document.querySelector(".content");e&&e.addEventListener("click",(function(e){if(e.target.classList.contains("docsify-copy-code-button")){var o="BUTTON"===e.target.tagName?e.target:e.target.parentNode,t=document.createRange(),c=o.parentNode.querySelector("code"),i=o.querySelector("[aria-live]"),r=window.getSelection();t.selectNode(c),r&&(r.removeAllRanges(),r.addRange(t));try{document.execCommand("copy")&&(o.classList.add("success"),i.innerText=n.successText,setTimeout((function(){o.classList.remove("success"),i.innerText=""}),1e3))}catch(e){console.error("docsify-copy-code: ".concat(e)),o.classList.add("error"),i.innerText=n.errorText,setTimeout((function(){o.classList.remove("error"),i.innerText=""}),1e3)}(r=window.getSelection())&&("function"==typeof r.removeRange?r.removeRange(t):"function"==typeof r.removeAllRanges&&r.removeAllRanges())}}))}))}].concat(window.$docsify.plugins||[])}(); -//# sourceMappingURL=docsify-copy-code.min.js.map \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js deleted file mode 100644 index b4262116..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/docsify-footer.min.js +++ /dev/null @@ -1,4 +0,0 @@ -parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c ul > li"),c("p",e)),this.hyperlink=m(t))}var b=function(){return'

    '},k=function(t,e){a=e,r=t.route.path,o={},["previousText","nextText"].forEach(function(n){var i=a[n];"string"==typeof i?o[n]=i:Object.keys(i).some(function(t){var e=r&&-1\n \n
    \n \n \n \n '+i+'\n
    \n
    '+t.prev.name+"
    \n ",t.prev&&e.crossChapterText&&'
    '+t.prev.chapterName+"
    ",t.prev&&"
    \n \n ",t.next&&'\n \n "].filter(Boolean).join("")};window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(t,e){var n=d({},(e.config,{previousText:"PREVIOUS",nextText:"NEXT",crossChapter:!1,crossChapterText:!1}),e.config.pagination||{});function i(){var t=c("."+h);t&&(t.innerHTML=k(function(t,e){e=e.crossChapter;try{var n=t.router.toURL(t.route.path),i=g(c.all(".sidebar-nav li a")).filter(function(t){return!s(t,".section-link")}),a=i.find(x(n)),r=g((p(a,"ul")||{}).children).filter(function(t){return"LI"===t.tagName.toUpperCase()}),o=e?i.findIndex(x(n)):r.findIndex(function(t){t=m(t);return t&&x(n,t)}),l=e?i:r;return{route:t.route,prev:new y(l[o-1]).toJSON(),next:new y(l[o+1]).toJSON()}}catch(t){return{route:{}}}}(e,n),n))}t.afterEach(function(t){return t+b()}),t.doneEach(i)}].concat(window.$docsify.plugins||[])}); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js deleted file mode 100644 index c5ed3ca2..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/docsify-scroll-to-top.min.js +++ /dev/null @@ -1 +0,0 @@ -var CONFIG={auto:true,text:"Top",right:15,bottom:15,offset:500};var install=function(hook,vm){var opts=vm.config.scrollToTop||CONFIG;CONFIG.auto=opts.auto&&typeof opts.auto==="boolean"?opts.auto:CONFIG.auto;CONFIG.text=opts.text&&typeof opts.text==="string"?opts.text:CONFIG.text;CONFIG.right=opts.right&&typeof opts.right==="number"?opts.right:CONFIG.right;CONFIG.bottom=opts.bottom&&typeof opts.bottom==="number"?opts.bottom:CONFIG.bottom;CONFIG.offset=opts.offset&&typeof opts.offset==="number"?opts.offset:CONFIG.offset;var onScroll=function(e){if(!CONFIG.auto){return}var offset=window.document.documentElement.scrollTop;var $scrollBtn=Docsify.dom.find("span.scroll-to-top");$scrollBtn.style.display=offset>=CONFIG.offset?"block":"none"};hook.mounted(function(){var scrollBtn=document.createElement("span");scrollBtn.className="scroll-to-top";scrollBtn.style.display=CONFIG.auto?"none":"block";scrollBtn.style.overflow="hidden";scrollBtn.style.position="fixed";scrollBtn.style.right=CONFIG.right+"px";scrollBtn.style.bottom=CONFIG.bottom+"px";scrollBtn.style.width="50px";scrollBtn.style.height="50px";scrollBtn.style.background="white";scrollBtn.style.color="#666";scrollBtn.style.border="1px solid #ddd";scrollBtn.style.borderRadius="4px";scrollBtn.style.lineHeight="42px";scrollBtn.style.fontSize="16px";scrollBtn.style.textAlign="center";scrollBtn.style.boxShadow="0px 0px 6px #eee";scrollBtn.style.cursor="pointer";var textNode=document.createTextNode(CONFIG.text);scrollBtn.appendChild(textNode);document.body.appendChild(scrollBtn);window.addEventListener("scroll",onScroll);scrollBtn.onclick=function(e){e.stopPropagation();var step=window.scrollY/15;var scroll=function(){window.scrollTo(0,window.scrollY-step);if(window.scrollY>0){setTimeout(scroll,15)}};scroll()}})};$docsify.plugins=[].concat(install,$docsify.plugins); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js b/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js deleted file mode 100644 index 18e85aa9..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/docsify.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function c(i){var o=Object.create(null);return function(e){var n=f(e)?e:JSON.stringify(e);return o[n]||(o[n]=i(e))}}var a=c(function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})}),u=Object.prototype.hasOwnProperty,m=Object.assign||function(e){for(var n=arguments,i=1;i=e||n.classList.contains("hidden")?S(h,"add","sticky"):S(h,"remove","sticky"))}function ee(e,n,o,i){var t=[];null!=(n=l(n))&&(t=k(n,"a"));var a,r=decodeURI(e.toURL(e.getCurrentPath()));return t.sort(function(e,n){return n.href.length-e.href.length}).forEach(function(e){var n=decodeURI(e.getAttribute("href")),i=o?e.parentNode:e;e.title=e.title||e.innerText,0!==r.indexOf(n)||a?S(i,"remove","active"):(a=e,S(i,"add","active"))}),i&&(v.title=a?a.title||a.innerText+" - "+J:J),a}function ne(e,n){for(var i=0;ithis.end&&e>=this.next}[this.direction]}},{key:"_defaultEase",value:function(e,n,i,o){return(e/=o/2)<1?i/2*e*e+n:-i/2*(--e*(e-2)-1)+n}}]),re);function re(){var e=0c){n=n||p;break}n=p}!n||(r=fe[ve(e,n.getAttribute("data-id"))])&&r!==a&&(a&&a.classList.remove("active"),r.classList.add("active"),a=r,!pe&&h.classList.contains("sticky")&&(e=i.clientHeight,r=a.offsetTop+a.clientHeight+40,a=a.offsetTop>=t.scrollTop&&r<=t.scrollTop+e,i.scrollTop=a?t.scrollTop:+r"']/),xe=/[&<>"']/g,Se=/[<>"']|&(?!#?\w+;)/,Ae=/[<>"']|&(?!#?\w+;)/g,$e={"&":"&","<":"<",">":">",'"':""","'":"'"};var ze=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function Fe(e){return e.replace(ze,function(e,n){return"colon"===(n=n.toLowerCase())?":":"#"===n.charAt(0)?"x"===n.charAt(1)?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""})}var Ee=/(^|[^\[])\^/g;var Re=/[^\w:]/g,Te=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;var Ce={},je=/^[^:]+:\/*[^/]*$/,Le=/^([^:]+:)[\s\S]*$/,Oe=/^([^:]+:\/*[^/]*)[\s\S]*$/;function qe(e,n){Ce[" "+e]||(je.test(e)?Ce[" "+e]=e+"/":Ce[" "+e]=Pe(e,"/",!0));var i=-1===(e=Ce[" "+e]).indexOf(":");return"//"===n.substring(0,2)?i?n:e.replace(Le,"$1")+n:"/"===n.charAt(0)?i?n:e.replace(Oe,"$1")+n:e+n}function Pe(e,n,i){var o=e.length;if(0===o)return"";for(var t=0;tn)i.splice(n);else for(;i.length>=1,e+=e;return i+e},We=we.defaults,Xe=Be,Qe=Ze,Je=Me,Ke=Ve;function en(e,n,i){var o=n.href,t=n.title?Je(n.title):null,n=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:i,href:o,title:t,text:n}:{type:"image",raw:i,href:o,title:t,text:Je(n)}}var nn=function(){function e(e){this.options=e||We}return e.prototype.space=function(e){e=this.rules.block.newline.exec(e);if(e)return 1=i.length?e.slice(i.length):e}).join("\n")}(i,n[3]||"");return{type:"code",raw:i,lang:n[2]&&n[2].trim(),text:e}}},e.prototype.heading=function(e){var n=this.rules.block.heading.exec(e);if(n){var i=n[2].trim();return/#$/.test(i)&&(e=Xe(i,"#"),!this.options.pedantic&&e&&!/ $/.test(e)||(i=e.trim())),{type:"heading",raw:n[0],depth:n[1].length,text:i}}},e.prototype.nptable=function(e){e=this.rules.block.nptable.exec(e);if(e){var n={type:"table",header:Qe(e[1].replace(/^ *| *\| *$/g,"")),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:e[3]?e[3].replace(/\n$/,"").split("\n"):[],raw:e[0]};if(n.header.length===n.align.length){for(var i=n.align.length,o=0;o ?/gm,"");return{type:"blockquote",raw:n[0],text:e}}},e.prototype.list=function(e){e=this.rules.block.list.exec(e);if(e){for(var n,i,o,t,a,r=e[0],c=e[2],u=1s[1].length:o[1].length>s[0].length||3/i.test(e[0])&&(n=!1),!i&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])?i=!0:i&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])&&(i=!1),{type:this.options.sanitize?"text":"html",raw:e[0],inLink:n,inRawBlock:i,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Je(e[0]):e[0]}},e.prototype.link=function(e){var n=this.rules.inline.link.exec(e);if(n){e=n[2].trim();if(!this.options.pedantic&&/^$/.test(e))return;var i=Xe(e.slice(0,-1),"\\");if((e.length-i.length)%2==0)return}else{var o=Ke(n[2],"()");-1$/.test(e)?i.slice(1):i.slice(1,-1):i)&&i.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},n[0])}},e.prototype.reflink=function(e,n){if((i=this.rules.inline.reflink.exec(e))||(i=this.rules.inline.nolink.exec(e))){var e=(i[2]||i[1]).replace(/\s+/g," ");if((e=n[e.toLowerCase()])&&e.href)return en(i,e,i[0]);var i=i[0].charAt(0);return{type:"text",raw:i,text:i}}},e.prototype.strong=function(e,n,i){void 0===i&&(i="");var o=this.rules.inline.strong.start.exec(e);if(o&&(!o[1]||o[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){n=n.slice(-1*e.length);var t,a="**"===o[0]?this.rules.inline.strong.endAst:this.rules.inline.strong.endUnd;for(a.lastIndex=0;null!=(o=a.exec(n));)if(t=this.rules.inline.strong.middle.exec(n.slice(0,o.index+3)))return{type:"strong",raw:e.slice(0,t[0].length),text:e.slice(2,t[0].length-2)}}},e.prototype.em=function(e,n,i){void 0===i&&(i="");var o=this.rules.inline.em.start.exec(e);if(o&&(!o[1]||o[1]&&(""===i||this.rules.inline.punctuation.exec(i)))){n=n.slice(-1*e.length);var t,a="*"===o[0]?this.rules.inline.em.endAst:this.rules.inline.em.endUnd;for(a.lastIndex=0;null!=(o=a.exec(n));)if(t=this.rules.inline.em.middle.exec(n.slice(0,o.index+2)))return{type:"em",raw:e.slice(0,t[0].length),text:e.slice(1,t[0].length-1)}}},e.prototype.codespan=function(e){var n=this.rules.inline.code.exec(e);if(n){var i=n[2].replace(/\n/g," "),o=/[^ ]/.test(i),e=/^ /.test(i)&&/ $/.test(i);return o&&e&&(i=i.substring(1,i.length-1)),i=Je(i,!0),{type:"codespan",raw:n[0],text:i}}},e.prototype.br=function(e){e=this.rules.inline.br.exec(e);if(e)return{type:"br",raw:e[0]}},e.prototype.del=function(e){e=this.rules.inline.del.exec(e);if(e)return{type:"del",raw:e[0],text:e[2]}},e.prototype.autolink=function(e,n){e=this.rules.inline.autolink.exec(e);if(e){var i,n="@"===e[2]?"mailto:"+(i=Je(this.options.mangle?n(e[1]):e[1])):i=Je(e[1]);return{type:"link",raw:e[0],text:i,href:n,tokens:[{type:"text",raw:i,text:i}]}}},e.prototype.url=function(e,n){var i,o,t,a;if(i=this.rules.inline.url.exec(e)){if("@"===i[2])t="mailto:"+(o=Je(this.options.mangle?n(i[0]):i[0]));else{for(;a=i[0],i[0]=this.rules.inline._backpedal.exec(i[0])[0],a!==i[0];);o=Je(i[0]),t="www."===i[1]?"http://"+o:o}return{type:"link",raw:i[0],text:o,href:t,tokens:[{type:"text",raw:o,text:o}]}}},e.prototype.inlineText=function(e,n,i){e=this.rules.inline.text.exec(e);if(e){i=n?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):Je(e[0]):e[0]:Je(this.options.smartypants?i(e[0]):e[0]);return{type:"text",raw:e[0],text:i}}},e}(),Ze=De,Ve=Ne,De=Ue,Ne={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Ze,table:Ze,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};Ne.def=Ve(Ne.def).replace("label",Ne._label).replace("title",Ne._title).getRegex(),Ne.bullet=/(?:[*+-]|\d{1,9}[.)])/,Ne.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,Ne.item=Ve(Ne.item,"gm").replace(/bull/g,Ne.bullet).getRegex(),Ne.listItemStart=Ve(/^( *)(bull)/).replace("bull",Ne.bullet).getRegex(),Ne.list=Ve(Ne.list).replace(/bull/g,Ne.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+Ne.def.source+")").getRegex(),Ne._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ne._comment=/|$)/,Ne.html=Ve(Ne.html,"i").replace("comment",Ne._comment).replace("tag",Ne._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Ne.paragraph=Ve(Ne._paragraph).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.blockquote=Ve(Ne.blockquote).replace("paragraph",Ne.paragraph).getRegex(),Ne.normal=De({},Ne),Ne.gfm=De({},Ne.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),Ne.gfm.nptable=Ve(Ne.gfm.nptable).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.gfm.table=Ve(Ne.gfm.table).replace("hr",Ne.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",Ne._tag).getRegex(),Ne.pedantic=De({},Ne.normal,{html:Ve("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",Ne._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ze,paragraph:Ve(Ne.normal._paragraph).replace("hr",Ne.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",Ne.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});Ze={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Ze,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",strong:{start:/^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,middle:/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,endAst:/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/},em:{start:/^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,middle:/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,endAst:/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Ze,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};Ze.punctuation=Ve(Ze.punctuation).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze._blockSkip="\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>",Ze._overlapSkip="__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*",Ze._comment=Ve(Ne._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),Ze.em.start=Ve(Ze.em.start).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.em.middle=Ve(Ze.em.middle).replace(/punctuation/g,Ze._punctuation).replace(/overlapSkip/g,Ze._overlapSkip).getRegex(),Ze.em.endAst=Ve(Ze.em.endAst,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.em.endUnd=Ve(Ze.em.endUnd,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.start=Ve(Ze.strong.start).replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.middle=Ve(Ze.strong.middle).replace(/punctuation/g,Ze._punctuation).replace(/overlapSkip/g,Ze._overlapSkip).getRegex(),Ze.strong.endAst=Ve(Ze.strong.endAst,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.strong.endUnd=Ve(Ze.strong.endUnd,"g").replace(/punctuation/g,Ze._punctuation).getRegex(),Ze.blockSkip=Ve(Ze._blockSkip,"g").getRegex(),Ze.overlapSkip=Ve(Ze._overlapSkip,"g").getRegex(),Ze._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,Ze._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,Ze._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,Ze.autolink=Ve(Ze.autolink).replace("scheme",Ze._scheme).replace("email",Ze._email).getRegex(),Ze._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,Ze.tag=Ve(Ze.tag).replace("comment",Ze._comment).replace("attribute",Ze._attribute).getRegex(),Ze._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Ze._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,Ze._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,Ze.link=Ve(Ze.link).replace("label",Ze._label).replace("href",Ze._href).replace("title",Ze._title).getRegex(),Ze.reflink=Ve(Ze.reflink).replace("label",Ze._label).getRegex(),Ze.reflinkSearch=Ve(Ze.reflinkSearch,"g").replace("reflink",Ze.reflink).replace("nolink",Ze.nolink).getRegex(),Ze.normal=De({},Ze),Ze.pedantic=De({},Ze.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Ve(/^!?\[(label)\]\((.*?)\)/).replace("label",Ze._label).getRegex(),reflink:Ve(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ze._label).getRegex()}),Ze.gfm=De({},Ze.normal,{escape:Ve(Ze.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\'+(i?e:gn(e,!0))+"\n":"
    "+(i?e:gn(e,!0))+"
    \n"},e.prototype.blockquote=function(e){return"
    \n"+e+"
    \n"},e.prototype.html=function(e){return e},e.prototype.heading=function(e,n,i,o){return this.options.headerIds?"'+e+"\n":""+e+"\n"},e.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"},e.prototype.list=function(e,n,i){var o=n?"ol":"ul";return"<"+o+(n&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"},e.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},e.prototype.checkbox=function(e){return" "},e.prototype.paragraph=function(e){return"

    "+e+"

    \n"},e.prototype.table=function(e,n){return"\n\n"+e+"\n"+(n=n&&""+n+"")+"
    \n"},e.prototype.tablerow=function(e){return"\n"+e+"\n"},e.prototype.tablecell=function(e,n){var i=n.header?"th":"td";return(n.align?"<"+i+' align="'+n.align+'">':"<"+i+">")+e+"\n"},e.prototype.strong=function(e){return""+e+""},e.prototype.em=function(e){return""+e+""},e.prototype.codespan=function(e){return""+e+""},e.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},e.prototype.del=function(e){return""+e+""},e.prototype.link=function(e,n,i){if(null===(e=dn(this.options.sanitize,this.options.baseUrl,e)))return i;e='"},e.prototype.image=function(e,n,i){if(null===(e=dn(this.options.sanitize,this.options.baseUrl,e)))return i;i=''+i+'":">"},e.prototype.text=function(e){return e},e}(),ln=function(){function e(){}return e.prototype.strong=function(e){return e},e.prototype.em=function(e){return e},e.prototype.codespan=function(e){return e},e.prototype.del=function(e){return e},e.prototype.html=function(e){return e},e.prototype.text=function(e){return e},e.prototype.link=function(e,n,i){return""+i},e.prototype.image=function(e,n,i){return""+i},e.prototype.br=function(){return""},e}(),vn=function(){function e(){this.seen={}}return e.prototype.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},e.prototype.getNextSafeSlug=function(e,n){var i=e,o=0;if(this.seen.hasOwnProperty(i))for(o=this.seen[e];i=e+"-"+ ++o,this.seen.hasOwnProperty(i););return n||(this.seen[e]=o,this.seen[i]=0),i},e.prototype.slug=function(e,n){void 0===n&&(n={});e=this.serialize(e);return this.getNextSafeSlug(e,n.dryrun)},e}(),hn=we.defaults,_n=Ie,mn=function(){function i(e){this.options=e||hn,this.options.renderer=this.options.renderer||new sn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ln,this.slugger=new vn}return i.parse=function(e,n){return new i(n).parse(e)},i.parseInline=function(e,n){return new i(n).parseInline(e)},i.prototype.parse=function(e,n){void 0===n&&(n=!0);for(var i,o,t,a,r,c,u,f,p,d,g,s,l,v,h,_="",m=e.length,b=0;bAn error occurred:

    "+wn(e.message+"",!0)+"
    ";throw e}}xn.options=xn.setOptions=function(e){return bn(xn.defaults,e),yn(xn.defaults),xn},xn.getDefaults=Me,xn.defaults=we,xn.use=function(a){var n,e=bn({},a);if(a.renderer){var i,r=xn.defaults.renderer||new sn;for(i in a.renderer)!function(o){var t=r[o];r[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var i=a.renderer[o].apply(r,e);return i=!1===i?t.apply(r,e):i}}(i);e.renderer=r}if(a.tokenizer){var t,c=xn.defaults.tokenizer||new nn;for(t in a.tokenizer)!function(){var o=c[t];c[t]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var i=a.tokenizer[t].apply(c,e);return i=!1===i?o.apply(c,e):i}}();e.tokenizer=c}a.walkTokens&&(n=xn.defaults.walkTokens,e.walkTokens=function(e){a.walkTokens(e),n&&n(e)}),xn.setOptions(e)},xn.walkTokens=function(e,n){for(var i=0,o=e;iAn error occurred:

    "+wn(e.message+"",!0)+"
    ";throw e}},xn.Parser=mn,xn.parser=mn.parse,xn.Renderer=sn,xn.TextRenderer=ln,xn.Lexer=fn,xn.lexer=fn.lex,xn.Tokenizer=nn,xn.Slugger=vn;var Sn=xn.parse=xn;function An(e,i){if(void 0===i&&(i='
      {inner}
    '),!e||!e.length)return"";var o="";return e.forEach(function(e){var n=e.title.replace(/(<([^>]+)>)/g,"");o+='
  • '+e.title+"
  • ",e.children&&(o+=An(e.children,i))}),i.replace("{inner}",o)}function $n(e,n){return'

    '+n.slice(5).trim()+"

    "}function zn(e,o){var t=[],a={};return e.forEach(function(e){var n=e.level||1,i=n-1;o?@[\]^`{|}~]/g;function Rn(e){return e.toLowerCase()}function Tn(e){if("string"!=typeof e)return"";var n=e.trim().replace(/[A-Z]+/g,Rn).replace(/<[^>]+>/g,"").replace(En,"").replace(/\s/g,"-").replace(/-+/g,"-").replace(/^(\d)/,"_$1"),e=Fn[n],e=u.call(Fn,n)?e+1:0;return n=(Fn[n]=e)?n+"-"+e:n}Tn.clear=function(){Fn={}};var Cn={baseURL:"https://github.githubassets.com/images/icons/emoji/",data:{100:"unicode/1f4af.png?v8",1234:"unicode/1f522.png?v8","+1":"unicode/1f44d.png?v8","-1":"unicode/1f44e.png?v8","1st_place_medal":"unicode/1f947.png?v8","2nd_place_medal":"unicode/1f948.png?v8","3rd_place_medal":"unicode/1f949.png?v8","8ball":"unicode/1f3b1.png?v8",a:"unicode/1f170.png?v8",ab:"unicode/1f18e.png?v8",abacus:"unicode/1f9ee.png?v8",abc:"unicode/1f524.png?v8",abcd:"unicode/1f521.png?v8",accept:"unicode/1f251.png?v8",accessibility:"accessibility.png?v8",accordion:"unicode/1fa97.png?v8",adhesive_bandage:"unicode/1fa79.png?v8",adult:"unicode/1f9d1.png?v8",aerial_tramway:"unicode/1f6a1.png?v8",afghanistan:"unicode/1f1e6-1f1eb.png?v8",airplane:"unicode/2708.png?v8",aland_islands:"unicode/1f1e6-1f1fd.png?v8",alarm_clock:"unicode/23f0.png?v8",albania:"unicode/1f1e6-1f1f1.png?v8",alembic:"unicode/2697.png?v8",algeria:"unicode/1f1e9-1f1ff.png?v8",alien:"unicode/1f47d.png?v8",ambulance:"unicode/1f691.png?v8",american_samoa:"unicode/1f1e6-1f1f8.png?v8",amphora:"unicode/1f3fa.png?v8",anatomical_heart:"unicode/1fac0.png?v8",anchor:"unicode/2693.png?v8",andorra:"unicode/1f1e6-1f1e9.png?v8",angel:"unicode/1f47c.png?v8",anger:"unicode/1f4a2.png?v8",angola:"unicode/1f1e6-1f1f4.png?v8",angry:"unicode/1f620.png?v8",anguilla:"unicode/1f1e6-1f1ee.png?v8",anguished:"unicode/1f627.png?v8",ant:"unicode/1f41c.png?v8",antarctica:"unicode/1f1e6-1f1f6.png?v8",antigua_barbuda:"unicode/1f1e6-1f1ec.png?v8",apple:"unicode/1f34e.png?v8",aquarius:"unicode/2652.png?v8",argentina:"unicode/1f1e6-1f1f7.png?v8",aries:"unicode/2648.png?v8",armenia:"unicode/1f1e6-1f1f2.png?v8",arrow_backward:"unicode/25c0.png?v8",arrow_double_down:"unicode/23ec.png?v8",arrow_double_up:"unicode/23eb.png?v8",arrow_down:"unicode/2b07.png?v8",arrow_down_small:"unicode/1f53d.png?v8",arrow_forward:"unicode/25b6.png?v8",arrow_heading_down:"unicode/2935.png?v8",arrow_heading_up:"unicode/2934.png?v8",arrow_left:"unicode/2b05.png?v8",arrow_lower_left:"unicode/2199.png?v8",arrow_lower_right:"unicode/2198.png?v8",arrow_right:"unicode/27a1.png?v8",arrow_right_hook:"unicode/21aa.png?v8",arrow_up:"unicode/2b06.png?v8",arrow_up_down:"unicode/2195.png?v8",arrow_up_small:"unicode/1f53c.png?v8",arrow_upper_left:"unicode/2196.png?v8",arrow_upper_right:"unicode/2197.png?v8",arrows_clockwise:"unicode/1f503.png?v8",arrows_counterclockwise:"unicode/1f504.png?v8",art:"unicode/1f3a8.png?v8",articulated_lorry:"unicode/1f69b.png?v8",artificial_satellite:"unicode/1f6f0.png?v8",artist:"unicode/1f9d1-1f3a8.png?v8",aruba:"unicode/1f1e6-1f1fc.png?v8",ascension_island:"unicode/1f1e6-1f1e8.png?v8",asterisk:"unicode/002a-20e3.png?v8",astonished:"unicode/1f632.png?v8",astronaut:"unicode/1f9d1-1f680.png?v8",athletic_shoe:"unicode/1f45f.png?v8",atm:"unicode/1f3e7.png?v8",atom:"atom.png?v8",atom_symbol:"unicode/269b.png?v8",australia:"unicode/1f1e6-1f1fa.png?v8",austria:"unicode/1f1e6-1f1f9.png?v8",auto_rickshaw:"unicode/1f6fa.png?v8",avocado:"unicode/1f951.png?v8",axe:"unicode/1fa93.png?v8",azerbaijan:"unicode/1f1e6-1f1ff.png?v8",b:"unicode/1f171.png?v8",baby:"unicode/1f476.png?v8",baby_bottle:"unicode/1f37c.png?v8",baby_chick:"unicode/1f424.png?v8",baby_symbol:"unicode/1f6bc.png?v8",back:"unicode/1f519.png?v8",bacon:"unicode/1f953.png?v8",badger:"unicode/1f9a1.png?v8",badminton:"unicode/1f3f8.png?v8",bagel:"unicode/1f96f.png?v8",baggage_claim:"unicode/1f6c4.png?v8",baguette_bread:"unicode/1f956.png?v8",bahamas:"unicode/1f1e7-1f1f8.png?v8",bahrain:"unicode/1f1e7-1f1ed.png?v8",balance_scale:"unicode/2696.png?v8",bald_man:"unicode/1f468-1f9b2.png?v8",bald_woman:"unicode/1f469-1f9b2.png?v8",ballet_shoes:"unicode/1fa70.png?v8",balloon:"unicode/1f388.png?v8",ballot_box:"unicode/1f5f3.png?v8",ballot_box_with_check:"unicode/2611.png?v8",bamboo:"unicode/1f38d.png?v8",banana:"unicode/1f34c.png?v8",bangbang:"unicode/203c.png?v8",bangladesh:"unicode/1f1e7-1f1e9.png?v8",banjo:"unicode/1fa95.png?v8",bank:"unicode/1f3e6.png?v8",bar_chart:"unicode/1f4ca.png?v8",barbados:"unicode/1f1e7-1f1e7.png?v8",barber:"unicode/1f488.png?v8",baseball:"unicode/26be.png?v8",basecamp:"basecamp.png?v8",basecampy:"basecampy.png?v8",basket:"unicode/1f9fa.png?v8",basketball:"unicode/1f3c0.png?v8",basketball_man:"unicode/26f9-2642.png?v8",basketball_woman:"unicode/26f9-2640.png?v8",bat:"unicode/1f987.png?v8",bath:"unicode/1f6c0.png?v8",bathtub:"unicode/1f6c1.png?v8",battery:"unicode/1f50b.png?v8",beach_umbrella:"unicode/1f3d6.png?v8",bear:"unicode/1f43b.png?v8",bearded_person:"unicode/1f9d4.png?v8",beaver:"unicode/1f9ab.png?v8",bed:"unicode/1f6cf.png?v8",bee:"unicode/1f41d.png?v8",beer:"unicode/1f37a.png?v8",beers:"unicode/1f37b.png?v8",beetle:"unicode/1fab2.png?v8",beginner:"unicode/1f530.png?v8",belarus:"unicode/1f1e7-1f1fe.png?v8",belgium:"unicode/1f1e7-1f1ea.png?v8",belize:"unicode/1f1e7-1f1ff.png?v8",bell:"unicode/1f514.png?v8",bell_pepper:"unicode/1fad1.png?v8",bellhop_bell:"unicode/1f6ce.png?v8",benin:"unicode/1f1e7-1f1ef.png?v8",bento:"unicode/1f371.png?v8",bermuda:"unicode/1f1e7-1f1f2.png?v8",beverage_box:"unicode/1f9c3.png?v8",bhutan:"unicode/1f1e7-1f1f9.png?v8",bicyclist:"unicode/1f6b4.png?v8",bike:"unicode/1f6b2.png?v8",biking_man:"unicode/1f6b4-2642.png?v8",biking_woman:"unicode/1f6b4-2640.png?v8",bikini:"unicode/1f459.png?v8",billed_cap:"unicode/1f9e2.png?v8",biohazard:"unicode/2623.png?v8",bird:"unicode/1f426.png?v8",birthday:"unicode/1f382.png?v8",bison:"unicode/1f9ac.png?v8",black_cat:"unicode/1f408-2b1b.png?v8",black_circle:"unicode/26ab.png?v8",black_flag:"unicode/1f3f4.png?v8",black_heart:"unicode/1f5a4.png?v8",black_joker:"unicode/1f0cf.png?v8",black_large_square:"unicode/2b1b.png?v8",black_medium_small_square:"unicode/25fe.png?v8",black_medium_square:"unicode/25fc.png?v8",black_nib:"unicode/2712.png?v8",black_small_square:"unicode/25aa.png?v8",black_square_button:"unicode/1f532.png?v8",blond_haired_man:"unicode/1f471-2642.png?v8",blond_haired_person:"unicode/1f471.png?v8",blond_haired_woman:"unicode/1f471-2640.png?v8",blonde_woman:"unicode/1f471-2640.png?v8",blossom:"unicode/1f33c.png?v8",blowfish:"unicode/1f421.png?v8",blue_book:"unicode/1f4d8.png?v8",blue_car:"unicode/1f699.png?v8",blue_heart:"unicode/1f499.png?v8",blue_square:"unicode/1f7e6.png?v8",blueberries:"unicode/1fad0.png?v8",blush:"unicode/1f60a.png?v8",boar:"unicode/1f417.png?v8",boat:"unicode/26f5.png?v8",bolivia:"unicode/1f1e7-1f1f4.png?v8",bomb:"unicode/1f4a3.png?v8",bone:"unicode/1f9b4.png?v8",book:"unicode/1f4d6.png?v8",bookmark:"unicode/1f516.png?v8",bookmark_tabs:"unicode/1f4d1.png?v8",books:"unicode/1f4da.png?v8",boom:"unicode/1f4a5.png?v8",boomerang:"unicode/1fa83.png?v8",boot:"unicode/1f462.png?v8",bosnia_herzegovina:"unicode/1f1e7-1f1e6.png?v8",botswana:"unicode/1f1e7-1f1fc.png?v8",bouncing_ball_man:"unicode/26f9-2642.png?v8",bouncing_ball_person:"unicode/26f9.png?v8",bouncing_ball_woman:"unicode/26f9-2640.png?v8",bouquet:"unicode/1f490.png?v8",bouvet_island:"unicode/1f1e7-1f1fb.png?v8",bow:"unicode/1f647.png?v8",bow_and_arrow:"unicode/1f3f9.png?v8",bowing_man:"unicode/1f647-2642.png?v8",bowing_woman:"unicode/1f647-2640.png?v8",bowl_with_spoon:"unicode/1f963.png?v8",bowling:"unicode/1f3b3.png?v8",bowtie:"bowtie.png?v8",boxing_glove:"unicode/1f94a.png?v8",boy:"unicode/1f466.png?v8",brain:"unicode/1f9e0.png?v8",brazil:"unicode/1f1e7-1f1f7.png?v8",bread:"unicode/1f35e.png?v8",breast_feeding:"unicode/1f931.png?v8",bricks:"unicode/1f9f1.png?v8",bride_with_veil:"unicode/1f470-2640.png?v8",bridge_at_night:"unicode/1f309.png?v8",briefcase:"unicode/1f4bc.png?v8",british_indian_ocean_territory:"unicode/1f1ee-1f1f4.png?v8",british_virgin_islands:"unicode/1f1fb-1f1ec.png?v8",broccoli:"unicode/1f966.png?v8",broken_heart:"unicode/1f494.png?v8",broom:"unicode/1f9f9.png?v8",brown_circle:"unicode/1f7e4.png?v8",brown_heart:"unicode/1f90e.png?v8",brown_square:"unicode/1f7eb.png?v8",brunei:"unicode/1f1e7-1f1f3.png?v8",bubble_tea:"unicode/1f9cb.png?v8",bucket:"unicode/1faa3.png?v8",bug:"unicode/1f41b.png?v8",building_construction:"unicode/1f3d7.png?v8",bulb:"unicode/1f4a1.png?v8",bulgaria:"unicode/1f1e7-1f1ec.png?v8",bullettrain_front:"unicode/1f685.png?v8",bullettrain_side:"unicode/1f684.png?v8",burkina_faso:"unicode/1f1e7-1f1eb.png?v8",burrito:"unicode/1f32f.png?v8",burundi:"unicode/1f1e7-1f1ee.png?v8",bus:"unicode/1f68c.png?v8",business_suit_levitating:"unicode/1f574.png?v8",busstop:"unicode/1f68f.png?v8",bust_in_silhouette:"unicode/1f464.png?v8",busts_in_silhouette:"unicode/1f465.png?v8",butter:"unicode/1f9c8.png?v8",butterfly:"unicode/1f98b.png?v8",cactus:"unicode/1f335.png?v8",cake:"unicode/1f370.png?v8",calendar:"unicode/1f4c6.png?v8",call_me_hand:"unicode/1f919.png?v8",calling:"unicode/1f4f2.png?v8",cambodia:"unicode/1f1f0-1f1ed.png?v8",camel:"unicode/1f42b.png?v8",camera:"unicode/1f4f7.png?v8",camera_flash:"unicode/1f4f8.png?v8",cameroon:"unicode/1f1e8-1f1f2.png?v8",camping:"unicode/1f3d5.png?v8",canada:"unicode/1f1e8-1f1e6.png?v8",canary_islands:"unicode/1f1ee-1f1e8.png?v8",cancer:"unicode/264b.png?v8",candle:"unicode/1f56f.png?v8",candy:"unicode/1f36c.png?v8",canned_food:"unicode/1f96b.png?v8",canoe:"unicode/1f6f6.png?v8",cape_verde:"unicode/1f1e8-1f1fb.png?v8",capital_abcd:"unicode/1f520.png?v8",capricorn:"unicode/2651.png?v8",car:"unicode/1f697.png?v8",card_file_box:"unicode/1f5c3.png?v8",card_index:"unicode/1f4c7.png?v8",card_index_dividers:"unicode/1f5c2.png?v8",caribbean_netherlands:"unicode/1f1e7-1f1f6.png?v8",carousel_horse:"unicode/1f3a0.png?v8",carpentry_saw:"unicode/1fa9a.png?v8",carrot:"unicode/1f955.png?v8",cartwheeling:"unicode/1f938.png?v8",cat:"unicode/1f431.png?v8",cat2:"unicode/1f408.png?v8",cayman_islands:"unicode/1f1f0-1f1fe.png?v8",cd:"unicode/1f4bf.png?v8",central_african_republic:"unicode/1f1e8-1f1eb.png?v8",ceuta_melilla:"unicode/1f1ea-1f1e6.png?v8",chad:"unicode/1f1f9-1f1e9.png?v8",chains:"unicode/26d3.png?v8",chair:"unicode/1fa91.png?v8",champagne:"unicode/1f37e.png?v8",chart:"unicode/1f4b9.png?v8",chart_with_downwards_trend:"unicode/1f4c9.png?v8",chart_with_upwards_trend:"unicode/1f4c8.png?v8",checkered_flag:"unicode/1f3c1.png?v8",cheese:"unicode/1f9c0.png?v8",cherries:"unicode/1f352.png?v8",cherry_blossom:"unicode/1f338.png?v8",chess_pawn:"unicode/265f.png?v8",chestnut:"unicode/1f330.png?v8",chicken:"unicode/1f414.png?v8",child:"unicode/1f9d2.png?v8",children_crossing:"unicode/1f6b8.png?v8",chile:"unicode/1f1e8-1f1f1.png?v8",chipmunk:"unicode/1f43f.png?v8",chocolate_bar:"unicode/1f36b.png?v8",chopsticks:"unicode/1f962.png?v8",christmas_island:"unicode/1f1e8-1f1fd.png?v8",christmas_tree:"unicode/1f384.png?v8",church:"unicode/26ea.png?v8",cinema:"unicode/1f3a6.png?v8",circus_tent:"unicode/1f3aa.png?v8",city_sunrise:"unicode/1f307.png?v8",city_sunset:"unicode/1f306.png?v8",cityscape:"unicode/1f3d9.png?v8",cl:"unicode/1f191.png?v8",clamp:"unicode/1f5dc.png?v8",clap:"unicode/1f44f.png?v8",clapper:"unicode/1f3ac.png?v8",classical_building:"unicode/1f3db.png?v8",climbing:"unicode/1f9d7.png?v8",climbing_man:"unicode/1f9d7-2642.png?v8",climbing_woman:"unicode/1f9d7-2640.png?v8",clinking_glasses:"unicode/1f942.png?v8",clipboard:"unicode/1f4cb.png?v8",clipperton_island:"unicode/1f1e8-1f1f5.png?v8",clock1:"unicode/1f550.png?v8",clock10:"unicode/1f559.png?v8",clock1030:"unicode/1f565.png?v8",clock11:"unicode/1f55a.png?v8",clock1130:"unicode/1f566.png?v8",clock12:"unicode/1f55b.png?v8",clock1230:"unicode/1f567.png?v8",clock130:"unicode/1f55c.png?v8",clock2:"unicode/1f551.png?v8",clock230:"unicode/1f55d.png?v8",clock3:"unicode/1f552.png?v8",clock330:"unicode/1f55e.png?v8",clock4:"unicode/1f553.png?v8",clock430:"unicode/1f55f.png?v8",clock5:"unicode/1f554.png?v8",clock530:"unicode/1f560.png?v8",clock6:"unicode/1f555.png?v8",clock630:"unicode/1f561.png?v8",clock7:"unicode/1f556.png?v8",clock730:"unicode/1f562.png?v8",clock8:"unicode/1f557.png?v8",clock830:"unicode/1f563.png?v8",clock9:"unicode/1f558.png?v8",clock930:"unicode/1f564.png?v8",closed_book:"unicode/1f4d5.png?v8",closed_lock_with_key:"unicode/1f510.png?v8",closed_umbrella:"unicode/1f302.png?v8",cloud:"unicode/2601.png?v8",cloud_with_lightning:"unicode/1f329.png?v8",cloud_with_lightning_and_rain:"unicode/26c8.png?v8",cloud_with_rain:"unicode/1f327.png?v8",cloud_with_snow:"unicode/1f328.png?v8",clown_face:"unicode/1f921.png?v8",clubs:"unicode/2663.png?v8",cn:"unicode/1f1e8-1f1f3.png?v8",coat:"unicode/1f9e5.png?v8",cockroach:"unicode/1fab3.png?v8",cocktail:"unicode/1f378.png?v8",coconut:"unicode/1f965.png?v8",cocos_islands:"unicode/1f1e8-1f1e8.png?v8",coffee:"unicode/2615.png?v8",coffin:"unicode/26b0.png?v8",coin:"unicode/1fa99.png?v8",cold_face:"unicode/1f976.png?v8",cold_sweat:"unicode/1f630.png?v8",collision:"unicode/1f4a5.png?v8",colombia:"unicode/1f1e8-1f1f4.png?v8",comet:"unicode/2604.png?v8",comoros:"unicode/1f1f0-1f1f2.png?v8",compass:"unicode/1f9ed.png?v8",computer:"unicode/1f4bb.png?v8",computer_mouse:"unicode/1f5b1.png?v8",confetti_ball:"unicode/1f38a.png?v8",confounded:"unicode/1f616.png?v8",confused:"unicode/1f615.png?v8",congo_brazzaville:"unicode/1f1e8-1f1ec.png?v8",congo_kinshasa:"unicode/1f1e8-1f1e9.png?v8",congratulations:"unicode/3297.png?v8",construction:"unicode/1f6a7.png?v8",construction_worker:"unicode/1f477.png?v8",construction_worker_man:"unicode/1f477-2642.png?v8",construction_worker_woman:"unicode/1f477-2640.png?v8",control_knobs:"unicode/1f39b.png?v8",convenience_store:"unicode/1f3ea.png?v8",cook:"unicode/1f9d1-1f373.png?v8",cook_islands:"unicode/1f1e8-1f1f0.png?v8",cookie:"unicode/1f36a.png?v8",cool:"unicode/1f192.png?v8",cop:"unicode/1f46e.png?v8",copyright:"unicode/00a9.png?v8",corn:"unicode/1f33d.png?v8",costa_rica:"unicode/1f1e8-1f1f7.png?v8",cote_divoire:"unicode/1f1e8-1f1ee.png?v8",couch_and_lamp:"unicode/1f6cb.png?v8",couple:"unicode/1f46b.png?v8",couple_with_heart:"unicode/1f491.png?v8",couple_with_heart_man_man:"unicode/1f468-2764-1f468.png?v8",couple_with_heart_woman_man:"unicode/1f469-2764-1f468.png?v8",couple_with_heart_woman_woman:"unicode/1f469-2764-1f469.png?v8",couplekiss:"unicode/1f48f.png?v8",couplekiss_man_man:"unicode/1f468-2764-1f48b-1f468.png?v8",couplekiss_man_woman:"unicode/1f469-2764-1f48b-1f468.png?v8",couplekiss_woman_woman:"unicode/1f469-2764-1f48b-1f469.png?v8",cow:"unicode/1f42e.png?v8",cow2:"unicode/1f404.png?v8",cowboy_hat_face:"unicode/1f920.png?v8",crab:"unicode/1f980.png?v8",crayon:"unicode/1f58d.png?v8",credit_card:"unicode/1f4b3.png?v8",crescent_moon:"unicode/1f319.png?v8",cricket:"unicode/1f997.png?v8",cricket_game:"unicode/1f3cf.png?v8",croatia:"unicode/1f1ed-1f1f7.png?v8",crocodile:"unicode/1f40a.png?v8",croissant:"unicode/1f950.png?v8",crossed_fingers:"unicode/1f91e.png?v8",crossed_flags:"unicode/1f38c.png?v8",crossed_swords:"unicode/2694.png?v8",crown:"unicode/1f451.png?v8",cry:"unicode/1f622.png?v8",crying_cat_face:"unicode/1f63f.png?v8",crystal_ball:"unicode/1f52e.png?v8",cuba:"unicode/1f1e8-1f1fa.png?v8",cucumber:"unicode/1f952.png?v8",cup_with_straw:"unicode/1f964.png?v8",cupcake:"unicode/1f9c1.png?v8",cupid:"unicode/1f498.png?v8",curacao:"unicode/1f1e8-1f1fc.png?v8",curling_stone:"unicode/1f94c.png?v8",curly_haired_man:"unicode/1f468-1f9b1.png?v8",curly_haired_woman:"unicode/1f469-1f9b1.png?v8",curly_loop:"unicode/27b0.png?v8",currency_exchange:"unicode/1f4b1.png?v8",curry:"unicode/1f35b.png?v8",cursing_face:"unicode/1f92c.png?v8",custard:"unicode/1f36e.png?v8",customs:"unicode/1f6c3.png?v8",cut_of_meat:"unicode/1f969.png?v8",cyclone:"unicode/1f300.png?v8",cyprus:"unicode/1f1e8-1f1fe.png?v8",czech_republic:"unicode/1f1e8-1f1ff.png?v8",dagger:"unicode/1f5e1.png?v8",dancer:"unicode/1f483.png?v8",dancers:"unicode/1f46f.png?v8",dancing_men:"unicode/1f46f-2642.png?v8",dancing_women:"unicode/1f46f-2640.png?v8",dango:"unicode/1f361.png?v8",dark_sunglasses:"unicode/1f576.png?v8",dart:"unicode/1f3af.png?v8",dash:"unicode/1f4a8.png?v8",date:"unicode/1f4c5.png?v8",de:"unicode/1f1e9-1f1ea.png?v8",deaf_man:"unicode/1f9cf-2642.png?v8",deaf_person:"unicode/1f9cf.png?v8",deaf_woman:"unicode/1f9cf-2640.png?v8",deciduous_tree:"unicode/1f333.png?v8",deer:"unicode/1f98c.png?v8",denmark:"unicode/1f1e9-1f1f0.png?v8",department_store:"unicode/1f3ec.png?v8",dependabot:"dependabot.png?v8",derelict_house:"unicode/1f3da.png?v8",desert:"unicode/1f3dc.png?v8",desert_island:"unicode/1f3dd.png?v8",desktop_computer:"unicode/1f5a5.png?v8",detective:"unicode/1f575.png?v8",diamond_shape_with_a_dot_inside:"unicode/1f4a0.png?v8",diamonds:"unicode/2666.png?v8",diego_garcia:"unicode/1f1e9-1f1ec.png?v8",disappointed:"unicode/1f61e.png?v8",disappointed_relieved:"unicode/1f625.png?v8",disguised_face:"unicode/1f978.png?v8",diving_mask:"unicode/1f93f.png?v8",diya_lamp:"unicode/1fa94.png?v8",dizzy:"unicode/1f4ab.png?v8",dizzy_face:"unicode/1f635.png?v8",djibouti:"unicode/1f1e9-1f1ef.png?v8",dna:"unicode/1f9ec.png?v8",do_not_litter:"unicode/1f6af.png?v8",dodo:"unicode/1f9a4.png?v8",dog:"unicode/1f436.png?v8",dog2:"unicode/1f415.png?v8",dollar:"unicode/1f4b5.png?v8",dolls:"unicode/1f38e.png?v8",dolphin:"unicode/1f42c.png?v8",dominica:"unicode/1f1e9-1f1f2.png?v8",dominican_republic:"unicode/1f1e9-1f1f4.png?v8",door:"unicode/1f6aa.png?v8",doughnut:"unicode/1f369.png?v8",dove:"unicode/1f54a.png?v8",dragon:"unicode/1f409.png?v8",dragon_face:"unicode/1f432.png?v8",dress:"unicode/1f457.png?v8",dromedary_camel:"unicode/1f42a.png?v8",drooling_face:"unicode/1f924.png?v8",drop_of_blood:"unicode/1fa78.png?v8",droplet:"unicode/1f4a7.png?v8",drum:"unicode/1f941.png?v8",duck:"unicode/1f986.png?v8",dumpling:"unicode/1f95f.png?v8",dvd:"unicode/1f4c0.png?v8","e-mail":"unicode/1f4e7.png?v8",eagle:"unicode/1f985.png?v8",ear:"unicode/1f442.png?v8",ear_of_rice:"unicode/1f33e.png?v8",ear_with_hearing_aid:"unicode/1f9bb.png?v8",earth_africa:"unicode/1f30d.png?v8",earth_americas:"unicode/1f30e.png?v8",earth_asia:"unicode/1f30f.png?v8",ecuador:"unicode/1f1ea-1f1e8.png?v8",egg:"unicode/1f95a.png?v8",eggplant:"unicode/1f346.png?v8",egypt:"unicode/1f1ea-1f1ec.png?v8",eight:"unicode/0038-20e3.png?v8",eight_pointed_black_star:"unicode/2734.png?v8",eight_spoked_asterisk:"unicode/2733.png?v8",eject_button:"unicode/23cf.png?v8",el_salvador:"unicode/1f1f8-1f1fb.png?v8",electric_plug:"unicode/1f50c.png?v8",electron:"electron.png?v8",elephant:"unicode/1f418.png?v8",elevator:"unicode/1f6d7.png?v8",elf:"unicode/1f9dd.png?v8",elf_man:"unicode/1f9dd-2642.png?v8",elf_woman:"unicode/1f9dd-2640.png?v8",email:"unicode/1f4e7.png?v8",end:"unicode/1f51a.png?v8",england:"unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8",envelope:"unicode/2709.png?v8",envelope_with_arrow:"unicode/1f4e9.png?v8",equatorial_guinea:"unicode/1f1ec-1f1f6.png?v8",eritrea:"unicode/1f1ea-1f1f7.png?v8",es:"unicode/1f1ea-1f1f8.png?v8",estonia:"unicode/1f1ea-1f1ea.png?v8",ethiopia:"unicode/1f1ea-1f1f9.png?v8",eu:"unicode/1f1ea-1f1fa.png?v8",euro:"unicode/1f4b6.png?v8",european_castle:"unicode/1f3f0.png?v8",european_post_office:"unicode/1f3e4.png?v8",european_union:"unicode/1f1ea-1f1fa.png?v8",evergreen_tree:"unicode/1f332.png?v8",exclamation:"unicode/2757.png?v8",exploding_head:"unicode/1f92f.png?v8",expressionless:"unicode/1f611.png?v8",eye:"unicode/1f441.png?v8",eye_speech_bubble:"unicode/1f441-1f5e8.png?v8",eyeglasses:"unicode/1f453.png?v8",eyes:"unicode/1f440.png?v8",face_exhaling:"unicode/1f62e-1f4a8.png?v8",face_in_clouds:"unicode/1f636-1f32b.png?v8",face_with_head_bandage:"unicode/1f915.png?v8",face_with_spiral_eyes:"unicode/1f635-1f4ab.png?v8",face_with_thermometer:"unicode/1f912.png?v8",facepalm:"unicode/1f926.png?v8",facepunch:"unicode/1f44a.png?v8",factory:"unicode/1f3ed.png?v8",factory_worker:"unicode/1f9d1-1f3ed.png?v8",fairy:"unicode/1f9da.png?v8",fairy_man:"unicode/1f9da-2642.png?v8",fairy_woman:"unicode/1f9da-2640.png?v8",falafel:"unicode/1f9c6.png?v8",falkland_islands:"unicode/1f1eb-1f1f0.png?v8",fallen_leaf:"unicode/1f342.png?v8",family:"unicode/1f46a.png?v8",family_man_boy:"unicode/1f468-1f466.png?v8",family_man_boy_boy:"unicode/1f468-1f466-1f466.png?v8",family_man_girl:"unicode/1f468-1f467.png?v8",family_man_girl_boy:"unicode/1f468-1f467-1f466.png?v8",family_man_girl_girl:"unicode/1f468-1f467-1f467.png?v8",family_man_man_boy:"unicode/1f468-1f468-1f466.png?v8",family_man_man_boy_boy:"unicode/1f468-1f468-1f466-1f466.png?v8",family_man_man_girl:"unicode/1f468-1f468-1f467.png?v8",family_man_man_girl_boy:"unicode/1f468-1f468-1f467-1f466.png?v8",family_man_man_girl_girl:"unicode/1f468-1f468-1f467-1f467.png?v8",family_man_woman_boy:"unicode/1f468-1f469-1f466.png?v8",family_man_woman_boy_boy:"unicode/1f468-1f469-1f466-1f466.png?v8",family_man_woman_girl:"unicode/1f468-1f469-1f467.png?v8",family_man_woman_girl_boy:"unicode/1f468-1f469-1f467-1f466.png?v8",family_man_woman_girl_girl:"unicode/1f468-1f469-1f467-1f467.png?v8",family_woman_boy:"unicode/1f469-1f466.png?v8",family_woman_boy_boy:"unicode/1f469-1f466-1f466.png?v8",family_woman_girl:"unicode/1f469-1f467.png?v8",family_woman_girl_boy:"unicode/1f469-1f467-1f466.png?v8",family_woman_girl_girl:"unicode/1f469-1f467-1f467.png?v8",family_woman_woman_boy:"unicode/1f469-1f469-1f466.png?v8",family_woman_woman_boy_boy:"unicode/1f469-1f469-1f466-1f466.png?v8",family_woman_woman_girl:"unicode/1f469-1f469-1f467.png?v8",family_woman_woman_girl_boy:"unicode/1f469-1f469-1f467-1f466.png?v8",family_woman_woman_girl_girl:"unicode/1f469-1f469-1f467-1f467.png?v8",farmer:"unicode/1f9d1-1f33e.png?v8",faroe_islands:"unicode/1f1eb-1f1f4.png?v8",fast_forward:"unicode/23e9.png?v8",fax:"unicode/1f4e0.png?v8",fearful:"unicode/1f628.png?v8",feather:"unicode/1fab6.png?v8",feelsgood:"feelsgood.png?v8",feet:"unicode/1f43e.png?v8",female_detective:"unicode/1f575-2640.png?v8",female_sign:"unicode/2640.png?v8",ferris_wheel:"unicode/1f3a1.png?v8",ferry:"unicode/26f4.png?v8",field_hockey:"unicode/1f3d1.png?v8",fiji:"unicode/1f1eb-1f1ef.png?v8",file_cabinet:"unicode/1f5c4.png?v8",file_folder:"unicode/1f4c1.png?v8",film_projector:"unicode/1f4fd.png?v8",film_strip:"unicode/1f39e.png?v8",finland:"unicode/1f1eb-1f1ee.png?v8",finnadie:"finnadie.png?v8",fire:"unicode/1f525.png?v8",fire_engine:"unicode/1f692.png?v8",fire_extinguisher:"unicode/1f9ef.png?v8",firecracker:"unicode/1f9e8.png?v8",firefighter:"unicode/1f9d1-1f692.png?v8",fireworks:"unicode/1f386.png?v8",first_quarter_moon:"unicode/1f313.png?v8",first_quarter_moon_with_face:"unicode/1f31b.png?v8",fish:"unicode/1f41f.png?v8",fish_cake:"unicode/1f365.png?v8",fishing_pole_and_fish:"unicode/1f3a3.png?v8",fishsticks:"fishsticks.png?v8",fist:"unicode/270a.png?v8",fist_left:"unicode/1f91b.png?v8",fist_oncoming:"unicode/1f44a.png?v8",fist_raised:"unicode/270a.png?v8",fist_right:"unicode/1f91c.png?v8",five:"unicode/0035-20e3.png?v8",flags:"unicode/1f38f.png?v8",flamingo:"unicode/1f9a9.png?v8",flashlight:"unicode/1f526.png?v8",flat_shoe:"unicode/1f97f.png?v8",flatbread:"unicode/1fad3.png?v8",fleur_de_lis:"unicode/269c.png?v8",flight_arrival:"unicode/1f6ec.png?v8",flight_departure:"unicode/1f6eb.png?v8",flipper:"unicode/1f42c.png?v8",floppy_disk:"unicode/1f4be.png?v8",flower_playing_cards:"unicode/1f3b4.png?v8",flushed:"unicode/1f633.png?v8",fly:"unicode/1fab0.png?v8",flying_disc:"unicode/1f94f.png?v8",flying_saucer:"unicode/1f6f8.png?v8",fog:"unicode/1f32b.png?v8",foggy:"unicode/1f301.png?v8",fondue:"unicode/1fad5.png?v8",foot:"unicode/1f9b6.png?v8",football:"unicode/1f3c8.png?v8",footprints:"unicode/1f463.png?v8",fork_and_knife:"unicode/1f374.png?v8",fortune_cookie:"unicode/1f960.png?v8",fountain:"unicode/26f2.png?v8",fountain_pen:"unicode/1f58b.png?v8",four:"unicode/0034-20e3.png?v8",four_leaf_clover:"unicode/1f340.png?v8",fox_face:"unicode/1f98a.png?v8",fr:"unicode/1f1eb-1f1f7.png?v8",framed_picture:"unicode/1f5bc.png?v8",free:"unicode/1f193.png?v8",french_guiana:"unicode/1f1ec-1f1eb.png?v8",french_polynesia:"unicode/1f1f5-1f1eb.png?v8",french_southern_territories:"unicode/1f1f9-1f1eb.png?v8",fried_egg:"unicode/1f373.png?v8",fried_shrimp:"unicode/1f364.png?v8",fries:"unicode/1f35f.png?v8",frog:"unicode/1f438.png?v8",frowning:"unicode/1f626.png?v8",frowning_face:"unicode/2639.png?v8",frowning_man:"unicode/1f64d-2642.png?v8",frowning_person:"unicode/1f64d.png?v8",frowning_woman:"unicode/1f64d-2640.png?v8",fu:"unicode/1f595.png?v8",fuelpump:"unicode/26fd.png?v8",full_moon:"unicode/1f315.png?v8",full_moon_with_face:"unicode/1f31d.png?v8",funeral_urn:"unicode/26b1.png?v8",gabon:"unicode/1f1ec-1f1e6.png?v8",gambia:"unicode/1f1ec-1f1f2.png?v8",game_die:"unicode/1f3b2.png?v8",garlic:"unicode/1f9c4.png?v8",gb:"unicode/1f1ec-1f1e7.png?v8",gear:"unicode/2699.png?v8",gem:"unicode/1f48e.png?v8",gemini:"unicode/264a.png?v8",genie:"unicode/1f9de.png?v8",genie_man:"unicode/1f9de-2642.png?v8",genie_woman:"unicode/1f9de-2640.png?v8",georgia:"unicode/1f1ec-1f1ea.png?v8",ghana:"unicode/1f1ec-1f1ed.png?v8",ghost:"unicode/1f47b.png?v8",gibraltar:"unicode/1f1ec-1f1ee.png?v8",gift:"unicode/1f381.png?v8",gift_heart:"unicode/1f49d.png?v8",giraffe:"unicode/1f992.png?v8",girl:"unicode/1f467.png?v8",globe_with_meridians:"unicode/1f310.png?v8",gloves:"unicode/1f9e4.png?v8",goal_net:"unicode/1f945.png?v8",goat:"unicode/1f410.png?v8",goberserk:"goberserk.png?v8",godmode:"godmode.png?v8",goggles:"unicode/1f97d.png?v8",golf:"unicode/26f3.png?v8",golfing:"unicode/1f3cc.png?v8",golfing_man:"unicode/1f3cc-2642.png?v8",golfing_woman:"unicode/1f3cc-2640.png?v8",gorilla:"unicode/1f98d.png?v8",grapes:"unicode/1f347.png?v8",greece:"unicode/1f1ec-1f1f7.png?v8",green_apple:"unicode/1f34f.png?v8",green_book:"unicode/1f4d7.png?v8",green_circle:"unicode/1f7e2.png?v8",green_heart:"unicode/1f49a.png?v8",green_salad:"unicode/1f957.png?v8",green_square:"unicode/1f7e9.png?v8",greenland:"unicode/1f1ec-1f1f1.png?v8",grenada:"unicode/1f1ec-1f1e9.png?v8",grey_exclamation:"unicode/2755.png?v8",grey_question:"unicode/2754.png?v8",grimacing:"unicode/1f62c.png?v8",grin:"unicode/1f601.png?v8",grinning:"unicode/1f600.png?v8",guadeloupe:"unicode/1f1ec-1f1f5.png?v8",guam:"unicode/1f1ec-1f1fa.png?v8",guard:"unicode/1f482.png?v8",guardsman:"unicode/1f482-2642.png?v8",guardswoman:"unicode/1f482-2640.png?v8",guatemala:"unicode/1f1ec-1f1f9.png?v8",guernsey:"unicode/1f1ec-1f1ec.png?v8",guide_dog:"unicode/1f9ae.png?v8",guinea:"unicode/1f1ec-1f1f3.png?v8",guinea_bissau:"unicode/1f1ec-1f1fc.png?v8",guitar:"unicode/1f3b8.png?v8",gun:"unicode/1f52b.png?v8",guyana:"unicode/1f1ec-1f1fe.png?v8",haircut:"unicode/1f487.png?v8",haircut_man:"unicode/1f487-2642.png?v8",haircut_woman:"unicode/1f487-2640.png?v8",haiti:"unicode/1f1ed-1f1f9.png?v8",hamburger:"unicode/1f354.png?v8",hammer:"unicode/1f528.png?v8",hammer_and_pick:"unicode/2692.png?v8",hammer_and_wrench:"unicode/1f6e0.png?v8",hamster:"unicode/1f439.png?v8",hand:"unicode/270b.png?v8",hand_over_mouth:"unicode/1f92d.png?v8",handbag:"unicode/1f45c.png?v8",handball_person:"unicode/1f93e.png?v8",handshake:"unicode/1f91d.png?v8",hankey:"unicode/1f4a9.png?v8",hash:"unicode/0023-20e3.png?v8",hatched_chick:"unicode/1f425.png?v8",hatching_chick:"unicode/1f423.png?v8",headphones:"unicode/1f3a7.png?v8",headstone:"unicode/1faa6.png?v8",health_worker:"unicode/1f9d1-2695.png?v8",hear_no_evil:"unicode/1f649.png?v8",heard_mcdonald_islands:"unicode/1f1ed-1f1f2.png?v8",heart:"unicode/2764.png?v8",heart_decoration:"unicode/1f49f.png?v8",heart_eyes:"unicode/1f60d.png?v8",heart_eyes_cat:"unicode/1f63b.png?v8",heart_on_fire:"unicode/2764-1f525.png?v8",heartbeat:"unicode/1f493.png?v8",heartpulse:"unicode/1f497.png?v8",hearts:"unicode/2665.png?v8",heavy_check_mark:"unicode/2714.png?v8",heavy_division_sign:"unicode/2797.png?v8",heavy_dollar_sign:"unicode/1f4b2.png?v8",heavy_exclamation_mark:"unicode/2757.png?v8",heavy_heart_exclamation:"unicode/2763.png?v8",heavy_minus_sign:"unicode/2796.png?v8",heavy_multiplication_x:"unicode/2716.png?v8",heavy_plus_sign:"unicode/2795.png?v8",hedgehog:"unicode/1f994.png?v8",helicopter:"unicode/1f681.png?v8",herb:"unicode/1f33f.png?v8",hibiscus:"unicode/1f33a.png?v8",high_brightness:"unicode/1f506.png?v8",high_heel:"unicode/1f460.png?v8",hiking_boot:"unicode/1f97e.png?v8",hindu_temple:"unicode/1f6d5.png?v8",hippopotamus:"unicode/1f99b.png?v8",hocho:"unicode/1f52a.png?v8",hole:"unicode/1f573.png?v8",honduras:"unicode/1f1ed-1f1f3.png?v8",honey_pot:"unicode/1f36f.png?v8",honeybee:"unicode/1f41d.png?v8",hong_kong:"unicode/1f1ed-1f1f0.png?v8",hook:"unicode/1fa9d.png?v8",horse:"unicode/1f434.png?v8",horse_racing:"unicode/1f3c7.png?v8",hospital:"unicode/1f3e5.png?v8",hot_face:"unicode/1f975.png?v8",hot_pepper:"unicode/1f336.png?v8",hotdog:"unicode/1f32d.png?v8",hotel:"unicode/1f3e8.png?v8",hotsprings:"unicode/2668.png?v8",hourglass:"unicode/231b.png?v8",hourglass_flowing_sand:"unicode/23f3.png?v8",house:"unicode/1f3e0.png?v8",house_with_garden:"unicode/1f3e1.png?v8",houses:"unicode/1f3d8.png?v8",hugs:"unicode/1f917.png?v8",hungary:"unicode/1f1ed-1f1fa.png?v8",hurtrealbad:"hurtrealbad.png?v8",hushed:"unicode/1f62f.png?v8",hut:"unicode/1f6d6.png?v8",ice_cream:"unicode/1f368.png?v8",ice_cube:"unicode/1f9ca.png?v8",ice_hockey:"unicode/1f3d2.png?v8",ice_skate:"unicode/26f8.png?v8",icecream:"unicode/1f366.png?v8",iceland:"unicode/1f1ee-1f1f8.png?v8",id:"unicode/1f194.png?v8",ideograph_advantage:"unicode/1f250.png?v8",imp:"unicode/1f47f.png?v8",inbox_tray:"unicode/1f4e5.png?v8",incoming_envelope:"unicode/1f4e8.png?v8",india:"unicode/1f1ee-1f1f3.png?v8",indonesia:"unicode/1f1ee-1f1e9.png?v8",infinity:"unicode/267e.png?v8",information_desk_person:"unicode/1f481.png?v8",information_source:"unicode/2139.png?v8",innocent:"unicode/1f607.png?v8",interrobang:"unicode/2049.png?v8",iphone:"unicode/1f4f1.png?v8",iran:"unicode/1f1ee-1f1f7.png?v8",iraq:"unicode/1f1ee-1f1f6.png?v8",ireland:"unicode/1f1ee-1f1ea.png?v8",isle_of_man:"unicode/1f1ee-1f1f2.png?v8",israel:"unicode/1f1ee-1f1f1.png?v8",it:"unicode/1f1ee-1f1f9.png?v8",izakaya_lantern:"unicode/1f3ee.png?v8",jack_o_lantern:"unicode/1f383.png?v8",jamaica:"unicode/1f1ef-1f1f2.png?v8",japan:"unicode/1f5fe.png?v8",japanese_castle:"unicode/1f3ef.png?v8",japanese_goblin:"unicode/1f47a.png?v8",japanese_ogre:"unicode/1f479.png?v8",jeans:"unicode/1f456.png?v8",jersey:"unicode/1f1ef-1f1ea.png?v8",jigsaw:"unicode/1f9e9.png?v8",jordan:"unicode/1f1ef-1f1f4.png?v8",joy:"unicode/1f602.png?v8",joy_cat:"unicode/1f639.png?v8",joystick:"unicode/1f579.png?v8",jp:"unicode/1f1ef-1f1f5.png?v8",judge:"unicode/1f9d1-2696.png?v8",juggling_person:"unicode/1f939.png?v8",kaaba:"unicode/1f54b.png?v8",kangaroo:"unicode/1f998.png?v8",kazakhstan:"unicode/1f1f0-1f1ff.png?v8",kenya:"unicode/1f1f0-1f1ea.png?v8",key:"unicode/1f511.png?v8",keyboard:"unicode/2328.png?v8",keycap_ten:"unicode/1f51f.png?v8",kick_scooter:"unicode/1f6f4.png?v8",kimono:"unicode/1f458.png?v8",kiribati:"unicode/1f1f0-1f1ee.png?v8",kiss:"unicode/1f48b.png?v8",kissing:"unicode/1f617.png?v8",kissing_cat:"unicode/1f63d.png?v8",kissing_closed_eyes:"unicode/1f61a.png?v8",kissing_heart:"unicode/1f618.png?v8",kissing_smiling_eyes:"unicode/1f619.png?v8",kite:"unicode/1fa81.png?v8",kiwi_fruit:"unicode/1f95d.png?v8",kneeling_man:"unicode/1f9ce-2642.png?v8",kneeling_person:"unicode/1f9ce.png?v8",kneeling_woman:"unicode/1f9ce-2640.png?v8",knife:"unicode/1f52a.png?v8",knot:"unicode/1faa2.png?v8",koala:"unicode/1f428.png?v8",koko:"unicode/1f201.png?v8",kosovo:"unicode/1f1fd-1f1f0.png?v8",kr:"unicode/1f1f0-1f1f7.png?v8",kuwait:"unicode/1f1f0-1f1fc.png?v8",kyrgyzstan:"unicode/1f1f0-1f1ec.png?v8",lab_coat:"unicode/1f97c.png?v8",label:"unicode/1f3f7.png?v8",lacrosse:"unicode/1f94d.png?v8",ladder:"unicode/1fa9c.png?v8",lady_beetle:"unicode/1f41e.png?v8",lantern:"unicode/1f3ee.png?v8",laos:"unicode/1f1f1-1f1e6.png?v8",large_blue_circle:"unicode/1f535.png?v8",large_blue_diamond:"unicode/1f537.png?v8",large_orange_diamond:"unicode/1f536.png?v8",last_quarter_moon:"unicode/1f317.png?v8",last_quarter_moon_with_face:"unicode/1f31c.png?v8",latin_cross:"unicode/271d.png?v8",latvia:"unicode/1f1f1-1f1fb.png?v8",laughing:"unicode/1f606.png?v8",leafy_green:"unicode/1f96c.png?v8",leaves:"unicode/1f343.png?v8",lebanon:"unicode/1f1f1-1f1e7.png?v8",ledger:"unicode/1f4d2.png?v8",left_luggage:"unicode/1f6c5.png?v8",left_right_arrow:"unicode/2194.png?v8",left_speech_bubble:"unicode/1f5e8.png?v8",leftwards_arrow_with_hook:"unicode/21a9.png?v8",leg:"unicode/1f9b5.png?v8",lemon:"unicode/1f34b.png?v8",leo:"unicode/264c.png?v8",leopard:"unicode/1f406.png?v8",lesotho:"unicode/1f1f1-1f1f8.png?v8",level_slider:"unicode/1f39a.png?v8",liberia:"unicode/1f1f1-1f1f7.png?v8",libra:"unicode/264e.png?v8",libya:"unicode/1f1f1-1f1fe.png?v8",liechtenstein:"unicode/1f1f1-1f1ee.png?v8",light_rail:"unicode/1f688.png?v8",link:"unicode/1f517.png?v8",lion:"unicode/1f981.png?v8",lips:"unicode/1f444.png?v8",lipstick:"unicode/1f484.png?v8",lithuania:"unicode/1f1f1-1f1f9.png?v8",lizard:"unicode/1f98e.png?v8",llama:"unicode/1f999.png?v8",lobster:"unicode/1f99e.png?v8",lock:"unicode/1f512.png?v8",lock_with_ink_pen:"unicode/1f50f.png?v8",lollipop:"unicode/1f36d.png?v8",long_drum:"unicode/1fa98.png?v8",loop:"unicode/27bf.png?v8",lotion_bottle:"unicode/1f9f4.png?v8",lotus_position:"unicode/1f9d8.png?v8",lotus_position_man:"unicode/1f9d8-2642.png?v8",lotus_position_woman:"unicode/1f9d8-2640.png?v8",loud_sound:"unicode/1f50a.png?v8",loudspeaker:"unicode/1f4e2.png?v8",love_hotel:"unicode/1f3e9.png?v8",love_letter:"unicode/1f48c.png?v8",love_you_gesture:"unicode/1f91f.png?v8",low_brightness:"unicode/1f505.png?v8",luggage:"unicode/1f9f3.png?v8",lungs:"unicode/1fac1.png?v8",luxembourg:"unicode/1f1f1-1f1fa.png?v8",lying_face:"unicode/1f925.png?v8",m:"unicode/24c2.png?v8",macau:"unicode/1f1f2-1f1f4.png?v8",macedonia:"unicode/1f1f2-1f1f0.png?v8",madagascar:"unicode/1f1f2-1f1ec.png?v8",mag:"unicode/1f50d.png?v8",mag_right:"unicode/1f50e.png?v8",mage:"unicode/1f9d9.png?v8",mage_man:"unicode/1f9d9-2642.png?v8",mage_woman:"unicode/1f9d9-2640.png?v8",magic_wand:"unicode/1fa84.png?v8",magnet:"unicode/1f9f2.png?v8",mahjong:"unicode/1f004.png?v8",mailbox:"unicode/1f4eb.png?v8",mailbox_closed:"unicode/1f4ea.png?v8",mailbox_with_mail:"unicode/1f4ec.png?v8",mailbox_with_no_mail:"unicode/1f4ed.png?v8",malawi:"unicode/1f1f2-1f1fc.png?v8",malaysia:"unicode/1f1f2-1f1fe.png?v8",maldives:"unicode/1f1f2-1f1fb.png?v8",male_detective:"unicode/1f575-2642.png?v8",male_sign:"unicode/2642.png?v8",mali:"unicode/1f1f2-1f1f1.png?v8",malta:"unicode/1f1f2-1f1f9.png?v8",mammoth:"unicode/1f9a3.png?v8",man:"unicode/1f468.png?v8",man_artist:"unicode/1f468-1f3a8.png?v8",man_astronaut:"unicode/1f468-1f680.png?v8",man_beard:"unicode/1f9d4-2642.png?v8",man_cartwheeling:"unicode/1f938-2642.png?v8",man_cook:"unicode/1f468-1f373.png?v8",man_dancing:"unicode/1f57a.png?v8",man_facepalming:"unicode/1f926-2642.png?v8",man_factory_worker:"unicode/1f468-1f3ed.png?v8",man_farmer:"unicode/1f468-1f33e.png?v8",man_feeding_baby:"unicode/1f468-1f37c.png?v8",man_firefighter:"unicode/1f468-1f692.png?v8",man_health_worker:"unicode/1f468-2695.png?v8",man_in_manual_wheelchair:"unicode/1f468-1f9bd.png?v8",man_in_motorized_wheelchair:"unicode/1f468-1f9bc.png?v8",man_in_tuxedo:"unicode/1f935-2642.png?v8",man_judge:"unicode/1f468-2696.png?v8",man_juggling:"unicode/1f939-2642.png?v8",man_mechanic:"unicode/1f468-1f527.png?v8",man_office_worker:"unicode/1f468-1f4bc.png?v8",man_pilot:"unicode/1f468-2708.png?v8",man_playing_handball:"unicode/1f93e-2642.png?v8",man_playing_water_polo:"unicode/1f93d-2642.png?v8",man_scientist:"unicode/1f468-1f52c.png?v8",man_shrugging:"unicode/1f937-2642.png?v8",man_singer:"unicode/1f468-1f3a4.png?v8",man_student:"unicode/1f468-1f393.png?v8",man_teacher:"unicode/1f468-1f3eb.png?v8",man_technologist:"unicode/1f468-1f4bb.png?v8",man_with_gua_pi_mao:"unicode/1f472.png?v8",man_with_probing_cane:"unicode/1f468-1f9af.png?v8",man_with_turban:"unicode/1f473-2642.png?v8",man_with_veil:"unicode/1f470-2642.png?v8",mandarin:"unicode/1f34a.png?v8",mango:"unicode/1f96d.png?v8",mans_shoe:"unicode/1f45e.png?v8",mantelpiece_clock:"unicode/1f570.png?v8",manual_wheelchair:"unicode/1f9bd.png?v8",maple_leaf:"unicode/1f341.png?v8",marshall_islands:"unicode/1f1f2-1f1ed.png?v8",martial_arts_uniform:"unicode/1f94b.png?v8",martinique:"unicode/1f1f2-1f1f6.png?v8",mask:"unicode/1f637.png?v8",massage:"unicode/1f486.png?v8",massage_man:"unicode/1f486-2642.png?v8",massage_woman:"unicode/1f486-2640.png?v8",mate:"unicode/1f9c9.png?v8",mauritania:"unicode/1f1f2-1f1f7.png?v8",mauritius:"unicode/1f1f2-1f1fa.png?v8",mayotte:"unicode/1f1fe-1f1f9.png?v8",meat_on_bone:"unicode/1f356.png?v8",mechanic:"unicode/1f9d1-1f527.png?v8",mechanical_arm:"unicode/1f9be.png?v8",mechanical_leg:"unicode/1f9bf.png?v8",medal_military:"unicode/1f396.png?v8",medal_sports:"unicode/1f3c5.png?v8",medical_symbol:"unicode/2695.png?v8",mega:"unicode/1f4e3.png?v8",melon:"unicode/1f348.png?v8",memo:"unicode/1f4dd.png?v8",men_wrestling:"unicode/1f93c-2642.png?v8",mending_heart:"unicode/2764-1fa79.png?v8",menorah:"unicode/1f54e.png?v8",mens:"unicode/1f6b9.png?v8",mermaid:"unicode/1f9dc-2640.png?v8",merman:"unicode/1f9dc-2642.png?v8",merperson:"unicode/1f9dc.png?v8",metal:"unicode/1f918.png?v8",metro:"unicode/1f687.png?v8",mexico:"unicode/1f1f2-1f1fd.png?v8",microbe:"unicode/1f9a0.png?v8",micronesia:"unicode/1f1eb-1f1f2.png?v8",microphone:"unicode/1f3a4.png?v8",microscope:"unicode/1f52c.png?v8",middle_finger:"unicode/1f595.png?v8",military_helmet:"unicode/1fa96.png?v8",milk_glass:"unicode/1f95b.png?v8",milky_way:"unicode/1f30c.png?v8",minibus:"unicode/1f690.png?v8",minidisc:"unicode/1f4bd.png?v8",mirror:"unicode/1fa9e.png?v8",mobile_phone_off:"unicode/1f4f4.png?v8",moldova:"unicode/1f1f2-1f1e9.png?v8",monaco:"unicode/1f1f2-1f1e8.png?v8",money_mouth_face:"unicode/1f911.png?v8",money_with_wings:"unicode/1f4b8.png?v8",moneybag:"unicode/1f4b0.png?v8",mongolia:"unicode/1f1f2-1f1f3.png?v8",monkey:"unicode/1f412.png?v8",monkey_face:"unicode/1f435.png?v8",monocle_face:"unicode/1f9d0.png?v8",monorail:"unicode/1f69d.png?v8",montenegro:"unicode/1f1f2-1f1ea.png?v8",montserrat:"unicode/1f1f2-1f1f8.png?v8",moon:"unicode/1f314.png?v8",moon_cake:"unicode/1f96e.png?v8",morocco:"unicode/1f1f2-1f1e6.png?v8",mortar_board:"unicode/1f393.png?v8",mosque:"unicode/1f54c.png?v8",mosquito:"unicode/1f99f.png?v8",motor_boat:"unicode/1f6e5.png?v8",motor_scooter:"unicode/1f6f5.png?v8",motorcycle:"unicode/1f3cd.png?v8",motorized_wheelchair:"unicode/1f9bc.png?v8",motorway:"unicode/1f6e3.png?v8",mount_fuji:"unicode/1f5fb.png?v8",mountain:"unicode/26f0.png?v8",mountain_bicyclist:"unicode/1f6b5.png?v8",mountain_biking_man:"unicode/1f6b5-2642.png?v8",mountain_biking_woman:"unicode/1f6b5-2640.png?v8",mountain_cableway:"unicode/1f6a0.png?v8",mountain_railway:"unicode/1f69e.png?v8",mountain_snow:"unicode/1f3d4.png?v8",mouse:"unicode/1f42d.png?v8",mouse2:"unicode/1f401.png?v8",mouse_trap:"unicode/1faa4.png?v8",movie_camera:"unicode/1f3a5.png?v8",moyai:"unicode/1f5ff.png?v8",mozambique:"unicode/1f1f2-1f1ff.png?v8",mrs_claus:"unicode/1f936.png?v8",muscle:"unicode/1f4aa.png?v8",mushroom:"unicode/1f344.png?v8",musical_keyboard:"unicode/1f3b9.png?v8",musical_note:"unicode/1f3b5.png?v8",musical_score:"unicode/1f3bc.png?v8",mute:"unicode/1f507.png?v8",mx_claus:"unicode/1f9d1-1f384.png?v8",myanmar:"unicode/1f1f2-1f1f2.png?v8",nail_care:"unicode/1f485.png?v8",name_badge:"unicode/1f4db.png?v8",namibia:"unicode/1f1f3-1f1e6.png?v8",national_park:"unicode/1f3de.png?v8",nauru:"unicode/1f1f3-1f1f7.png?v8",nauseated_face:"unicode/1f922.png?v8",nazar_amulet:"unicode/1f9ff.png?v8",neckbeard:"neckbeard.png?v8",necktie:"unicode/1f454.png?v8",negative_squared_cross_mark:"unicode/274e.png?v8",nepal:"unicode/1f1f3-1f1f5.png?v8",nerd_face:"unicode/1f913.png?v8",nesting_dolls:"unicode/1fa86.png?v8",netherlands:"unicode/1f1f3-1f1f1.png?v8",neutral_face:"unicode/1f610.png?v8",new:"unicode/1f195.png?v8",new_caledonia:"unicode/1f1f3-1f1e8.png?v8",new_moon:"unicode/1f311.png?v8",new_moon_with_face:"unicode/1f31a.png?v8",new_zealand:"unicode/1f1f3-1f1ff.png?v8",newspaper:"unicode/1f4f0.png?v8",newspaper_roll:"unicode/1f5de.png?v8",next_track_button:"unicode/23ed.png?v8",ng:"unicode/1f196.png?v8",ng_man:"unicode/1f645-2642.png?v8",ng_woman:"unicode/1f645-2640.png?v8",nicaragua:"unicode/1f1f3-1f1ee.png?v8",niger:"unicode/1f1f3-1f1ea.png?v8",nigeria:"unicode/1f1f3-1f1ec.png?v8",night_with_stars:"unicode/1f303.png?v8",nine:"unicode/0039-20e3.png?v8",ninja:"unicode/1f977.png?v8",niue:"unicode/1f1f3-1f1fa.png?v8",no_bell:"unicode/1f515.png?v8",no_bicycles:"unicode/1f6b3.png?v8",no_entry:"unicode/26d4.png?v8",no_entry_sign:"unicode/1f6ab.png?v8",no_good:"unicode/1f645.png?v8",no_good_man:"unicode/1f645-2642.png?v8",no_good_woman:"unicode/1f645-2640.png?v8",no_mobile_phones:"unicode/1f4f5.png?v8",no_mouth:"unicode/1f636.png?v8",no_pedestrians:"unicode/1f6b7.png?v8",no_smoking:"unicode/1f6ad.png?v8","non-potable_water":"unicode/1f6b1.png?v8",norfolk_island:"unicode/1f1f3-1f1eb.png?v8",north_korea:"unicode/1f1f0-1f1f5.png?v8",northern_mariana_islands:"unicode/1f1f2-1f1f5.png?v8",norway:"unicode/1f1f3-1f1f4.png?v8",nose:"unicode/1f443.png?v8",notebook:"unicode/1f4d3.png?v8",notebook_with_decorative_cover:"unicode/1f4d4.png?v8",notes:"unicode/1f3b6.png?v8",nut_and_bolt:"unicode/1f529.png?v8",o:"unicode/2b55.png?v8",o2:"unicode/1f17e.png?v8",ocean:"unicode/1f30a.png?v8",octocat:"octocat.png?v8",octopus:"unicode/1f419.png?v8",oden:"unicode/1f362.png?v8",office:"unicode/1f3e2.png?v8",office_worker:"unicode/1f9d1-1f4bc.png?v8",oil_drum:"unicode/1f6e2.png?v8",ok:"unicode/1f197.png?v8",ok_hand:"unicode/1f44c.png?v8",ok_man:"unicode/1f646-2642.png?v8",ok_person:"unicode/1f646.png?v8",ok_woman:"unicode/1f646-2640.png?v8",old_key:"unicode/1f5dd.png?v8",older_adult:"unicode/1f9d3.png?v8",older_man:"unicode/1f474.png?v8",older_woman:"unicode/1f475.png?v8",olive:"unicode/1fad2.png?v8",om:"unicode/1f549.png?v8",oman:"unicode/1f1f4-1f1f2.png?v8",on:"unicode/1f51b.png?v8",oncoming_automobile:"unicode/1f698.png?v8",oncoming_bus:"unicode/1f68d.png?v8",oncoming_police_car:"unicode/1f694.png?v8",oncoming_taxi:"unicode/1f696.png?v8",one:"unicode/0031-20e3.png?v8",one_piece_swimsuit:"unicode/1fa71.png?v8",onion:"unicode/1f9c5.png?v8",open_book:"unicode/1f4d6.png?v8",open_file_folder:"unicode/1f4c2.png?v8",open_hands:"unicode/1f450.png?v8",open_mouth:"unicode/1f62e.png?v8",open_umbrella:"unicode/2602.png?v8",ophiuchus:"unicode/26ce.png?v8",orange:"unicode/1f34a.png?v8",orange_book:"unicode/1f4d9.png?v8",orange_circle:"unicode/1f7e0.png?v8",orange_heart:"unicode/1f9e1.png?v8",orange_square:"unicode/1f7e7.png?v8",orangutan:"unicode/1f9a7.png?v8",orthodox_cross:"unicode/2626.png?v8",otter:"unicode/1f9a6.png?v8",outbox_tray:"unicode/1f4e4.png?v8",owl:"unicode/1f989.png?v8",ox:"unicode/1f402.png?v8",oyster:"unicode/1f9aa.png?v8",package:"unicode/1f4e6.png?v8",page_facing_up:"unicode/1f4c4.png?v8",page_with_curl:"unicode/1f4c3.png?v8",pager:"unicode/1f4df.png?v8",paintbrush:"unicode/1f58c.png?v8",pakistan:"unicode/1f1f5-1f1f0.png?v8",palau:"unicode/1f1f5-1f1fc.png?v8",palestinian_territories:"unicode/1f1f5-1f1f8.png?v8",palm_tree:"unicode/1f334.png?v8",palms_up_together:"unicode/1f932.png?v8",panama:"unicode/1f1f5-1f1e6.png?v8",pancakes:"unicode/1f95e.png?v8",panda_face:"unicode/1f43c.png?v8",paperclip:"unicode/1f4ce.png?v8",paperclips:"unicode/1f587.png?v8",papua_new_guinea:"unicode/1f1f5-1f1ec.png?v8",parachute:"unicode/1fa82.png?v8",paraguay:"unicode/1f1f5-1f1fe.png?v8",parasol_on_ground:"unicode/26f1.png?v8",parking:"unicode/1f17f.png?v8",parrot:"unicode/1f99c.png?v8",part_alternation_mark:"unicode/303d.png?v8",partly_sunny:"unicode/26c5.png?v8",partying_face:"unicode/1f973.png?v8",passenger_ship:"unicode/1f6f3.png?v8",passport_control:"unicode/1f6c2.png?v8",pause_button:"unicode/23f8.png?v8",paw_prints:"unicode/1f43e.png?v8",peace_symbol:"unicode/262e.png?v8",peach:"unicode/1f351.png?v8",peacock:"unicode/1f99a.png?v8",peanuts:"unicode/1f95c.png?v8",pear:"unicode/1f350.png?v8",pen:"unicode/1f58a.png?v8",pencil:"unicode/1f4dd.png?v8",pencil2:"unicode/270f.png?v8",penguin:"unicode/1f427.png?v8",pensive:"unicode/1f614.png?v8",people_holding_hands:"unicode/1f9d1-1f91d-1f9d1.png?v8",people_hugging:"unicode/1fac2.png?v8",performing_arts:"unicode/1f3ad.png?v8",persevere:"unicode/1f623.png?v8",person_bald:"unicode/1f9d1-1f9b2.png?v8",person_curly_hair:"unicode/1f9d1-1f9b1.png?v8",person_feeding_baby:"unicode/1f9d1-1f37c.png?v8",person_fencing:"unicode/1f93a.png?v8",person_in_manual_wheelchair:"unicode/1f9d1-1f9bd.png?v8",person_in_motorized_wheelchair:"unicode/1f9d1-1f9bc.png?v8",person_in_tuxedo:"unicode/1f935.png?v8",person_red_hair:"unicode/1f9d1-1f9b0.png?v8",person_white_hair:"unicode/1f9d1-1f9b3.png?v8",person_with_probing_cane:"unicode/1f9d1-1f9af.png?v8",person_with_turban:"unicode/1f473.png?v8",person_with_veil:"unicode/1f470.png?v8",peru:"unicode/1f1f5-1f1ea.png?v8",petri_dish:"unicode/1f9eb.png?v8",philippines:"unicode/1f1f5-1f1ed.png?v8",phone:"unicode/260e.png?v8",pick:"unicode/26cf.png?v8",pickup_truck:"unicode/1f6fb.png?v8",pie:"unicode/1f967.png?v8",pig:"unicode/1f437.png?v8",pig2:"unicode/1f416.png?v8",pig_nose:"unicode/1f43d.png?v8",pill:"unicode/1f48a.png?v8",pilot:"unicode/1f9d1-2708.png?v8",pinata:"unicode/1fa85.png?v8",pinched_fingers:"unicode/1f90c.png?v8",pinching_hand:"unicode/1f90f.png?v8",pineapple:"unicode/1f34d.png?v8",ping_pong:"unicode/1f3d3.png?v8",pirate_flag:"unicode/1f3f4-2620.png?v8",pisces:"unicode/2653.png?v8",pitcairn_islands:"unicode/1f1f5-1f1f3.png?v8",pizza:"unicode/1f355.png?v8",placard:"unicode/1faa7.png?v8",place_of_worship:"unicode/1f6d0.png?v8",plate_with_cutlery:"unicode/1f37d.png?v8",play_or_pause_button:"unicode/23ef.png?v8",pleading_face:"unicode/1f97a.png?v8",plunger:"unicode/1faa0.png?v8",point_down:"unicode/1f447.png?v8",point_left:"unicode/1f448.png?v8",point_right:"unicode/1f449.png?v8",point_up:"unicode/261d.png?v8",point_up_2:"unicode/1f446.png?v8",poland:"unicode/1f1f5-1f1f1.png?v8",polar_bear:"unicode/1f43b-2744.png?v8",police_car:"unicode/1f693.png?v8",police_officer:"unicode/1f46e.png?v8",policeman:"unicode/1f46e-2642.png?v8",policewoman:"unicode/1f46e-2640.png?v8",poodle:"unicode/1f429.png?v8",poop:"unicode/1f4a9.png?v8",popcorn:"unicode/1f37f.png?v8",portugal:"unicode/1f1f5-1f1f9.png?v8",post_office:"unicode/1f3e3.png?v8",postal_horn:"unicode/1f4ef.png?v8",postbox:"unicode/1f4ee.png?v8",potable_water:"unicode/1f6b0.png?v8",potato:"unicode/1f954.png?v8",potted_plant:"unicode/1fab4.png?v8",pouch:"unicode/1f45d.png?v8",poultry_leg:"unicode/1f357.png?v8",pound:"unicode/1f4b7.png?v8",pout:"unicode/1f621.png?v8",pouting_cat:"unicode/1f63e.png?v8",pouting_face:"unicode/1f64e.png?v8",pouting_man:"unicode/1f64e-2642.png?v8",pouting_woman:"unicode/1f64e-2640.png?v8",pray:"unicode/1f64f.png?v8",prayer_beads:"unicode/1f4ff.png?v8",pregnant_woman:"unicode/1f930.png?v8",pretzel:"unicode/1f968.png?v8",previous_track_button:"unicode/23ee.png?v8",prince:"unicode/1f934.png?v8",princess:"unicode/1f478.png?v8",printer:"unicode/1f5a8.png?v8",probing_cane:"unicode/1f9af.png?v8",puerto_rico:"unicode/1f1f5-1f1f7.png?v8",punch:"unicode/1f44a.png?v8",purple_circle:"unicode/1f7e3.png?v8",purple_heart:"unicode/1f49c.png?v8",purple_square:"unicode/1f7ea.png?v8",purse:"unicode/1f45b.png?v8",pushpin:"unicode/1f4cc.png?v8",put_litter_in_its_place:"unicode/1f6ae.png?v8",qatar:"unicode/1f1f6-1f1e6.png?v8",question:"unicode/2753.png?v8",rabbit:"unicode/1f430.png?v8",rabbit2:"unicode/1f407.png?v8",raccoon:"unicode/1f99d.png?v8",racehorse:"unicode/1f40e.png?v8",racing_car:"unicode/1f3ce.png?v8",radio:"unicode/1f4fb.png?v8",radio_button:"unicode/1f518.png?v8",radioactive:"unicode/2622.png?v8",rage:"unicode/1f621.png?v8",rage1:"rage1.png?v8",rage2:"rage2.png?v8",rage3:"rage3.png?v8",rage4:"rage4.png?v8",railway_car:"unicode/1f683.png?v8",railway_track:"unicode/1f6e4.png?v8",rainbow:"unicode/1f308.png?v8",rainbow_flag:"unicode/1f3f3-1f308.png?v8",raised_back_of_hand:"unicode/1f91a.png?v8",raised_eyebrow:"unicode/1f928.png?v8",raised_hand:"unicode/270b.png?v8",raised_hand_with_fingers_splayed:"unicode/1f590.png?v8",raised_hands:"unicode/1f64c.png?v8",raising_hand:"unicode/1f64b.png?v8",raising_hand_man:"unicode/1f64b-2642.png?v8",raising_hand_woman:"unicode/1f64b-2640.png?v8",ram:"unicode/1f40f.png?v8",ramen:"unicode/1f35c.png?v8",rat:"unicode/1f400.png?v8",razor:"unicode/1fa92.png?v8",receipt:"unicode/1f9fe.png?v8",record_button:"unicode/23fa.png?v8",recycle:"unicode/267b.png?v8",red_car:"unicode/1f697.png?v8",red_circle:"unicode/1f534.png?v8",red_envelope:"unicode/1f9e7.png?v8",red_haired_man:"unicode/1f468-1f9b0.png?v8",red_haired_woman:"unicode/1f469-1f9b0.png?v8",red_square:"unicode/1f7e5.png?v8",registered:"unicode/00ae.png?v8",relaxed:"unicode/263a.png?v8",relieved:"unicode/1f60c.png?v8",reminder_ribbon:"unicode/1f397.png?v8",repeat:"unicode/1f501.png?v8",repeat_one:"unicode/1f502.png?v8",rescue_worker_helmet:"unicode/26d1.png?v8",restroom:"unicode/1f6bb.png?v8",reunion:"unicode/1f1f7-1f1ea.png?v8",revolving_hearts:"unicode/1f49e.png?v8",rewind:"unicode/23ea.png?v8",rhinoceros:"unicode/1f98f.png?v8",ribbon:"unicode/1f380.png?v8",rice:"unicode/1f35a.png?v8",rice_ball:"unicode/1f359.png?v8",rice_cracker:"unicode/1f358.png?v8",rice_scene:"unicode/1f391.png?v8",right_anger_bubble:"unicode/1f5ef.png?v8",ring:"unicode/1f48d.png?v8",ringed_planet:"unicode/1fa90.png?v8",robot:"unicode/1f916.png?v8",rock:"unicode/1faa8.png?v8",rocket:"unicode/1f680.png?v8",rofl:"unicode/1f923.png?v8",roll_eyes:"unicode/1f644.png?v8",roll_of_paper:"unicode/1f9fb.png?v8",roller_coaster:"unicode/1f3a2.png?v8",roller_skate:"unicode/1f6fc.png?v8",romania:"unicode/1f1f7-1f1f4.png?v8",rooster:"unicode/1f413.png?v8",rose:"unicode/1f339.png?v8",rosette:"unicode/1f3f5.png?v8",rotating_light:"unicode/1f6a8.png?v8",round_pushpin:"unicode/1f4cd.png?v8",rowboat:"unicode/1f6a3.png?v8",rowing_man:"unicode/1f6a3-2642.png?v8",rowing_woman:"unicode/1f6a3-2640.png?v8",ru:"unicode/1f1f7-1f1fa.png?v8",rugby_football:"unicode/1f3c9.png?v8",runner:"unicode/1f3c3.png?v8",running:"unicode/1f3c3.png?v8",running_man:"unicode/1f3c3-2642.png?v8",running_shirt_with_sash:"unicode/1f3bd.png?v8",running_woman:"unicode/1f3c3-2640.png?v8",rwanda:"unicode/1f1f7-1f1fc.png?v8",sa:"unicode/1f202.png?v8",safety_pin:"unicode/1f9f7.png?v8",safety_vest:"unicode/1f9ba.png?v8",sagittarius:"unicode/2650.png?v8",sailboat:"unicode/26f5.png?v8",sake:"unicode/1f376.png?v8",salt:"unicode/1f9c2.png?v8",samoa:"unicode/1f1fc-1f1f8.png?v8",san_marino:"unicode/1f1f8-1f1f2.png?v8",sandal:"unicode/1f461.png?v8",sandwich:"unicode/1f96a.png?v8",santa:"unicode/1f385.png?v8",sao_tome_principe:"unicode/1f1f8-1f1f9.png?v8",sari:"unicode/1f97b.png?v8",sassy_man:"unicode/1f481-2642.png?v8",sassy_woman:"unicode/1f481-2640.png?v8",satellite:"unicode/1f4e1.png?v8",satisfied:"unicode/1f606.png?v8",saudi_arabia:"unicode/1f1f8-1f1e6.png?v8",sauna_man:"unicode/1f9d6-2642.png?v8",sauna_person:"unicode/1f9d6.png?v8",sauna_woman:"unicode/1f9d6-2640.png?v8",sauropod:"unicode/1f995.png?v8",saxophone:"unicode/1f3b7.png?v8",scarf:"unicode/1f9e3.png?v8",school:"unicode/1f3eb.png?v8",school_satchel:"unicode/1f392.png?v8",scientist:"unicode/1f9d1-1f52c.png?v8",scissors:"unicode/2702.png?v8",scorpion:"unicode/1f982.png?v8",scorpius:"unicode/264f.png?v8",scotland:"unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8",scream:"unicode/1f631.png?v8",scream_cat:"unicode/1f640.png?v8",screwdriver:"unicode/1fa9b.png?v8",scroll:"unicode/1f4dc.png?v8",seal:"unicode/1f9ad.png?v8",seat:"unicode/1f4ba.png?v8",secret:"unicode/3299.png?v8",see_no_evil:"unicode/1f648.png?v8",seedling:"unicode/1f331.png?v8",selfie:"unicode/1f933.png?v8",senegal:"unicode/1f1f8-1f1f3.png?v8",serbia:"unicode/1f1f7-1f1f8.png?v8",service_dog:"unicode/1f415-1f9ba.png?v8",seven:"unicode/0037-20e3.png?v8",sewing_needle:"unicode/1faa1.png?v8",seychelles:"unicode/1f1f8-1f1e8.png?v8",shallow_pan_of_food:"unicode/1f958.png?v8",shamrock:"unicode/2618.png?v8",shark:"unicode/1f988.png?v8",shaved_ice:"unicode/1f367.png?v8",sheep:"unicode/1f411.png?v8",shell:"unicode/1f41a.png?v8",shield:"unicode/1f6e1.png?v8",shinto_shrine:"unicode/26e9.png?v8",ship:"unicode/1f6a2.png?v8",shipit:"shipit.png?v8",shirt:"unicode/1f455.png?v8",shit:"unicode/1f4a9.png?v8",shoe:"unicode/1f45e.png?v8",shopping:"unicode/1f6cd.png?v8",shopping_cart:"unicode/1f6d2.png?v8",shorts:"unicode/1fa73.png?v8",shower:"unicode/1f6bf.png?v8",shrimp:"unicode/1f990.png?v8",shrug:"unicode/1f937.png?v8",shushing_face:"unicode/1f92b.png?v8",sierra_leone:"unicode/1f1f8-1f1f1.png?v8",signal_strength:"unicode/1f4f6.png?v8",singapore:"unicode/1f1f8-1f1ec.png?v8",singer:"unicode/1f9d1-1f3a4.png?v8",sint_maarten:"unicode/1f1f8-1f1fd.png?v8",six:"unicode/0036-20e3.png?v8",six_pointed_star:"unicode/1f52f.png?v8",skateboard:"unicode/1f6f9.png?v8",ski:"unicode/1f3bf.png?v8",skier:"unicode/26f7.png?v8",skull:"unicode/1f480.png?v8",skull_and_crossbones:"unicode/2620.png?v8",skunk:"unicode/1f9a8.png?v8",sled:"unicode/1f6f7.png?v8",sleeping:"unicode/1f634.png?v8",sleeping_bed:"unicode/1f6cc.png?v8",sleepy:"unicode/1f62a.png?v8",slightly_frowning_face:"unicode/1f641.png?v8",slightly_smiling_face:"unicode/1f642.png?v8",slot_machine:"unicode/1f3b0.png?v8",sloth:"unicode/1f9a5.png?v8",slovakia:"unicode/1f1f8-1f1f0.png?v8",slovenia:"unicode/1f1f8-1f1ee.png?v8",small_airplane:"unicode/1f6e9.png?v8",small_blue_diamond:"unicode/1f539.png?v8",small_orange_diamond:"unicode/1f538.png?v8",small_red_triangle:"unicode/1f53a.png?v8",small_red_triangle_down:"unicode/1f53b.png?v8",smile:"unicode/1f604.png?v8",smile_cat:"unicode/1f638.png?v8",smiley:"unicode/1f603.png?v8",smiley_cat:"unicode/1f63a.png?v8",smiling_face_with_tear:"unicode/1f972.png?v8",smiling_face_with_three_hearts:"unicode/1f970.png?v8",smiling_imp:"unicode/1f608.png?v8",smirk:"unicode/1f60f.png?v8",smirk_cat:"unicode/1f63c.png?v8",smoking:"unicode/1f6ac.png?v8",snail:"unicode/1f40c.png?v8",snake:"unicode/1f40d.png?v8",sneezing_face:"unicode/1f927.png?v8",snowboarder:"unicode/1f3c2.png?v8",snowflake:"unicode/2744.png?v8",snowman:"unicode/26c4.png?v8",snowman_with_snow:"unicode/2603.png?v8",soap:"unicode/1f9fc.png?v8",sob:"unicode/1f62d.png?v8",soccer:"unicode/26bd.png?v8",socks:"unicode/1f9e6.png?v8",softball:"unicode/1f94e.png?v8",solomon_islands:"unicode/1f1f8-1f1e7.png?v8",somalia:"unicode/1f1f8-1f1f4.png?v8",soon:"unicode/1f51c.png?v8",sos:"unicode/1f198.png?v8",sound:"unicode/1f509.png?v8",south_africa:"unicode/1f1ff-1f1e6.png?v8",south_georgia_south_sandwich_islands:"unicode/1f1ec-1f1f8.png?v8",south_sudan:"unicode/1f1f8-1f1f8.png?v8",space_invader:"unicode/1f47e.png?v8",spades:"unicode/2660.png?v8",spaghetti:"unicode/1f35d.png?v8",sparkle:"unicode/2747.png?v8",sparkler:"unicode/1f387.png?v8",sparkles:"unicode/2728.png?v8",sparkling_heart:"unicode/1f496.png?v8",speak_no_evil:"unicode/1f64a.png?v8",speaker:"unicode/1f508.png?v8",speaking_head:"unicode/1f5e3.png?v8",speech_balloon:"unicode/1f4ac.png?v8",speedboat:"unicode/1f6a4.png?v8",spider:"unicode/1f577.png?v8",spider_web:"unicode/1f578.png?v8",spiral_calendar:"unicode/1f5d3.png?v8",spiral_notepad:"unicode/1f5d2.png?v8",sponge:"unicode/1f9fd.png?v8",spoon:"unicode/1f944.png?v8",squid:"unicode/1f991.png?v8",sri_lanka:"unicode/1f1f1-1f1f0.png?v8",st_barthelemy:"unicode/1f1e7-1f1f1.png?v8",st_helena:"unicode/1f1f8-1f1ed.png?v8",st_kitts_nevis:"unicode/1f1f0-1f1f3.png?v8",st_lucia:"unicode/1f1f1-1f1e8.png?v8",st_martin:"unicode/1f1f2-1f1eb.png?v8",st_pierre_miquelon:"unicode/1f1f5-1f1f2.png?v8",st_vincent_grenadines:"unicode/1f1fb-1f1e8.png?v8",stadium:"unicode/1f3df.png?v8",standing_man:"unicode/1f9cd-2642.png?v8",standing_person:"unicode/1f9cd.png?v8",standing_woman:"unicode/1f9cd-2640.png?v8",star:"unicode/2b50.png?v8",star2:"unicode/1f31f.png?v8",star_and_crescent:"unicode/262a.png?v8",star_of_david:"unicode/2721.png?v8",star_struck:"unicode/1f929.png?v8",stars:"unicode/1f320.png?v8",station:"unicode/1f689.png?v8",statue_of_liberty:"unicode/1f5fd.png?v8",steam_locomotive:"unicode/1f682.png?v8",stethoscope:"unicode/1fa7a.png?v8",stew:"unicode/1f372.png?v8",stop_button:"unicode/23f9.png?v8",stop_sign:"unicode/1f6d1.png?v8",stopwatch:"unicode/23f1.png?v8",straight_ruler:"unicode/1f4cf.png?v8",strawberry:"unicode/1f353.png?v8",stuck_out_tongue:"unicode/1f61b.png?v8",stuck_out_tongue_closed_eyes:"unicode/1f61d.png?v8",stuck_out_tongue_winking_eye:"unicode/1f61c.png?v8",student:"unicode/1f9d1-1f393.png?v8",studio_microphone:"unicode/1f399.png?v8",stuffed_flatbread:"unicode/1f959.png?v8",sudan:"unicode/1f1f8-1f1e9.png?v8",sun_behind_large_cloud:"unicode/1f325.png?v8",sun_behind_rain_cloud:"unicode/1f326.png?v8",sun_behind_small_cloud:"unicode/1f324.png?v8",sun_with_face:"unicode/1f31e.png?v8",sunflower:"unicode/1f33b.png?v8",sunglasses:"unicode/1f60e.png?v8",sunny:"unicode/2600.png?v8",sunrise:"unicode/1f305.png?v8",sunrise_over_mountains:"unicode/1f304.png?v8",superhero:"unicode/1f9b8.png?v8",superhero_man:"unicode/1f9b8-2642.png?v8",superhero_woman:"unicode/1f9b8-2640.png?v8",supervillain:"unicode/1f9b9.png?v8",supervillain_man:"unicode/1f9b9-2642.png?v8",supervillain_woman:"unicode/1f9b9-2640.png?v8",surfer:"unicode/1f3c4.png?v8",surfing_man:"unicode/1f3c4-2642.png?v8",surfing_woman:"unicode/1f3c4-2640.png?v8",suriname:"unicode/1f1f8-1f1f7.png?v8",sushi:"unicode/1f363.png?v8",suspect:"suspect.png?v8",suspension_railway:"unicode/1f69f.png?v8",svalbard_jan_mayen:"unicode/1f1f8-1f1ef.png?v8",swan:"unicode/1f9a2.png?v8",swaziland:"unicode/1f1f8-1f1ff.png?v8",sweat:"unicode/1f613.png?v8",sweat_drops:"unicode/1f4a6.png?v8",sweat_smile:"unicode/1f605.png?v8",sweden:"unicode/1f1f8-1f1ea.png?v8",sweet_potato:"unicode/1f360.png?v8",swim_brief:"unicode/1fa72.png?v8",swimmer:"unicode/1f3ca.png?v8",swimming_man:"unicode/1f3ca-2642.png?v8",swimming_woman:"unicode/1f3ca-2640.png?v8",switzerland:"unicode/1f1e8-1f1ed.png?v8",symbols:"unicode/1f523.png?v8",synagogue:"unicode/1f54d.png?v8",syria:"unicode/1f1f8-1f1fe.png?v8",syringe:"unicode/1f489.png?v8","t-rex":"unicode/1f996.png?v8",taco:"unicode/1f32e.png?v8",tada:"unicode/1f389.png?v8",taiwan:"unicode/1f1f9-1f1fc.png?v8",tajikistan:"unicode/1f1f9-1f1ef.png?v8",takeout_box:"unicode/1f961.png?v8",tamale:"unicode/1fad4.png?v8",tanabata_tree:"unicode/1f38b.png?v8",tangerine:"unicode/1f34a.png?v8",tanzania:"unicode/1f1f9-1f1ff.png?v8",taurus:"unicode/2649.png?v8",taxi:"unicode/1f695.png?v8",tea:"unicode/1f375.png?v8",teacher:"unicode/1f9d1-1f3eb.png?v8",teapot:"unicode/1fad6.png?v8",technologist:"unicode/1f9d1-1f4bb.png?v8",teddy_bear:"unicode/1f9f8.png?v8",telephone:"unicode/260e.png?v8",telephone_receiver:"unicode/1f4de.png?v8",telescope:"unicode/1f52d.png?v8",tennis:"unicode/1f3be.png?v8",tent:"unicode/26fa.png?v8",test_tube:"unicode/1f9ea.png?v8",thailand:"unicode/1f1f9-1f1ed.png?v8",thermometer:"unicode/1f321.png?v8",thinking:"unicode/1f914.png?v8",thong_sandal:"unicode/1fa74.png?v8",thought_balloon:"unicode/1f4ad.png?v8",thread:"unicode/1f9f5.png?v8",three:"unicode/0033-20e3.png?v8",thumbsdown:"unicode/1f44e.png?v8",thumbsup:"unicode/1f44d.png?v8",ticket:"unicode/1f3ab.png?v8",tickets:"unicode/1f39f.png?v8",tiger:"unicode/1f42f.png?v8",tiger2:"unicode/1f405.png?v8",timer_clock:"unicode/23f2.png?v8",timor_leste:"unicode/1f1f9-1f1f1.png?v8",tipping_hand_man:"unicode/1f481-2642.png?v8",tipping_hand_person:"unicode/1f481.png?v8",tipping_hand_woman:"unicode/1f481-2640.png?v8",tired_face:"unicode/1f62b.png?v8",tm:"unicode/2122.png?v8",togo:"unicode/1f1f9-1f1ec.png?v8",toilet:"unicode/1f6bd.png?v8",tokelau:"unicode/1f1f9-1f1f0.png?v8",tokyo_tower:"unicode/1f5fc.png?v8",tomato:"unicode/1f345.png?v8",tonga:"unicode/1f1f9-1f1f4.png?v8",tongue:"unicode/1f445.png?v8",toolbox:"unicode/1f9f0.png?v8",tooth:"unicode/1f9b7.png?v8",toothbrush:"unicode/1faa5.png?v8",top:"unicode/1f51d.png?v8",tophat:"unicode/1f3a9.png?v8",tornado:"unicode/1f32a.png?v8",tr:"unicode/1f1f9-1f1f7.png?v8",trackball:"unicode/1f5b2.png?v8",tractor:"unicode/1f69c.png?v8",traffic_light:"unicode/1f6a5.png?v8",train:"unicode/1f68b.png?v8",train2:"unicode/1f686.png?v8",tram:"unicode/1f68a.png?v8",transgender_flag:"unicode/1f3f3-26a7.png?v8",transgender_symbol:"unicode/26a7.png?v8",triangular_flag_on_post:"unicode/1f6a9.png?v8",triangular_ruler:"unicode/1f4d0.png?v8",trident:"unicode/1f531.png?v8",trinidad_tobago:"unicode/1f1f9-1f1f9.png?v8",tristan_da_cunha:"unicode/1f1f9-1f1e6.png?v8",triumph:"unicode/1f624.png?v8",trolleybus:"unicode/1f68e.png?v8",trollface:"trollface.png?v8",trophy:"unicode/1f3c6.png?v8",tropical_drink:"unicode/1f379.png?v8",tropical_fish:"unicode/1f420.png?v8",truck:"unicode/1f69a.png?v8",trumpet:"unicode/1f3ba.png?v8",tshirt:"unicode/1f455.png?v8",tulip:"unicode/1f337.png?v8",tumbler_glass:"unicode/1f943.png?v8",tunisia:"unicode/1f1f9-1f1f3.png?v8",turkey:"unicode/1f983.png?v8",turkmenistan:"unicode/1f1f9-1f1f2.png?v8",turks_caicos_islands:"unicode/1f1f9-1f1e8.png?v8",turtle:"unicode/1f422.png?v8",tuvalu:"unicode/1f1f9-1f1fb.png?v8",tv:"unicode/1f4fa.png?v8",twisted_rightwards_arrows:"unicode/1f500.png?v8",two:"unicode/0032-20e3.png?v8",two_hearts:"unicode/1f495.png?v8",two_men_holding_hands:"unicode/1f46c.png?v8",two_women_holding_hands:"unicode/1f46d.png?v8",u5272:"unicode/1f239.png?v8",u5408:"unicode/1f234.png?v8",u55b6:"unicode/1f23a.png?v8",u6307:"unicode/1f22f.png?v8",u6708:"unicode/1f237.png?v8",u6709:"unicode/1f236.png?v8",u6e80:"unicode/1f235.png?v8",u7121:"unicode/1f21a.png?v8",u7533:"unicode/1f238.png?v8",u7981:"unicode/1f232.png?v8",u7a7a:"unicode/1f233.png?v8",uganda:"unicode/1f1fa-1f1ec.png?v8",uk:"unicode/1f1ec-1f1e7.png?v8",ukraine:"unicode/1f1fa-1f1e6.png?v8",umbrella:"unicode/2614.png?v8",unamused:"unicode/1f612.png?v8",underage:"unicode/1f51e.png?v8",unicorn:"unicode/1f984.png?v8",united_arab_emirates:"unicode/1f1e6-1f1ea.png?v8",united_nations:"unicode/1f1fa-1f1f3.png?v8",unlock:"unicode/1f513.png?v8",up:"unicode/1f199.png?v8",upside_down_face:"unicode/1f643.png?v8",uruguay:"unicode/1f1fa-1f1fe.png?v8",us:"unicode/1f1fa-1f1f8.png?v8",us_outlying_islands:"unicode/1f1fa-1f1f2.png?v8",us_virgin_islands:"unicode/1f1fb-1f1ee.png?v8",uzbekistan:"unicode/1f1fa-1f1ff.png?v8",v:"unicode/270c.png?v8",vampire:"unicode/1f9db.png?v8",vampire_man:"unicode/1f9db-2642.png?v8",vampire_woman:"unicode/1f9db-2640.png?v8",vanuatu:"unicode/1f1fb-1f1fa.png?v8",vatican_city:"unicode/1f1fb-1f1e6.png?v8",venezuela:"unicode/1f1fb-1f1ea.png?v8",vertical_traffic_light:"unicode/1f6a6.png?v8",vhs:"unicode/1f4fc.png?v8",vibration_mode:"unicode/1f4f3.png?v8",video_camera:"unicode/1f4f9.png?v8",video_game:"unicode/1f3ae.png?v8",vietnam:"unicode/1f1fb-1f1f3.png?v8",violin:"unicode/1f3bb.png?v8",virgo:"unicode/264d.png?v8",volcano:"unicode/1f30b.png?v8",volleyball:"unicode/1f3d0.png?v8",vomiting_face:"unicode/1f92e.png?v8",vs:"unicode/1f19a.png?v8",vulcan_salute:"unicode/1f596.png?v8",waffle:"unicode/1f9c7.png?v8",wales:"unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8",walking:"unicode/1f6b6.png?v8",walking_man:"unicode/1f6b6-2642.png?v8",walking_woman:"unicode/1f6b6-2640.png?v8",wallis_futuna:"unicode/1f1fc-1f1eb.png?v8",waning_crescent_moon:"unicode/1f318.png?v8",waning_gibbous_moon:"unicode/1f316.png?v8",warning:"unicode/26a0.png?v8",wastebasket:"unicode/1f5d1.png?v8",watch:"unicode/231a.png?v8",water_buffalo:"unicode/1f403.png?v8",water_polo:"unicode/1f93d.png?v8",watermelon:"unicode/1f349.png?v8",wave:"unicode/1f44b.png?v8",wavy_dash:"unicode/3030.png?v8",waxing_crescent_moon:"unicode/1f312.png?v8",waxing_gibbous_moon:"unicode/1f314.png?v8",wc:"unicode/1f6be.png?v8",weary:"unicode/1f629.png?v8",wedding:"unicode/1f492.png?v8",weight_lifting:"unicode/1f3cb.png?v8",weight_lifting_man:"unicode/1f3cb-2642.png?v8",weight_lifting_woman:"unicode/1f3cb-2640.png?v8",western_sahara:"unicode/1f1ea-1f1ed.png?v8",whale:"unicode/1f433.png?v8",whale2:"unicode/1f40b.png?v8",wheel_of_dharma:"unicode/2638.png?v8",wheelchair:"unicode/267f.png?v8",white_check_mark:"unicode/2705.png?v8",white_circle:"unicode/26aa.png?v8",white_flag:"unicode/1f3f3.png?v8",white_flower:"unicode/1f4ae.png?v8",white_haired_man:"unicode/1f468-1f9b3.png?v8",white_haired_woman:"unicode/1f469-1f9b3.png?v8",white_heart:"unicode/1f90d.png?v8",white_large_square:"unicode/2b1c.png?v8",white_medium_small_square:"unicode/25fd.png?v8",white_medium_square:"unicode/25fb.png?v8",white_small_square:"unicode/25ab.png?v8",white_square_button:"unicode/1f533.png?v8",wilted_flower:"unicode/1f940.png?v8",wind_chime:"unicode/1f390.png?v8",wind_face:"unicode/1f32c.png?v8",window:"unicode/1fa9f.png?v8",wine_glass:"unicode/1f377.png?v8",wink:"unicode/1f609.png?v8",wolf:"unicode/1f43a.png?v8",woman:"unicode/1f469.png?v8",woman_artist:"unicode/1f469-1f3a8.png?v8",woman_astronaut:"unicode/1f469-1f680.png?v8",woman_beard:"unicode/1f9d4-2640.png?v8",woman_cartwheeling:"unicode/1f938-2640.png?v8",woman_cook:"unicode/1f469-1f373.png?v8",woman_dancing:"unicode/1f483.png?v8",woman_facepalming:"unicode/1f926-2640.png?v8",woman_factory_worker:"unicode/1f469-1f3ed.png?v8",woman_farmer:"unicode/1f469-1f33e.png?v8",woman_feeding_baby:"unicode/1f469-1f37c.png?v8",woman_firefighter:"unicode/1f469-1f692.png?v8",woman_health_worker:"unicode/1f469-2695.png?v8",woman_in_manual_wheelchair:"unicode/1f469-1f9bd.png?v8",woman_in_motorized_wheelchair:"unicode/1f469-1f9bc.png?v8",woman_in_tuxedo:"unicode/1f935-2640.png?v8",woman_judge:"unicode/1f469-2696.png?v8",woman_juggling:"unicode/1f939-2640.png?v8",woman_mechanic:"unicode/1f469-1f527.png?v8",woman_office_worker:"unicode/1f469-1f4bc.png?v8",woman_pilot:"unicode/1f469-2708.png?v8",woman_playing_handball:"unicode/1f93e-2640.png?v8",woman_playing_water_polo:"unicode/1f93d-2640.png?v8",woman_scientist:"unicode/1f469-1f52c.png?v8",woman_shrugging:"unicode/1f937-2640.png?v8",woman_singer:"unicode/1f469-1f3a4.png?v8",woman_student:"unicode/1f469-1f393.png?v8",woman_teacher:"unicode/1f469-1f3eb.png?v8",woman_technologist:"unicode/1f469-1f4bb.png?v8",woman_with_headscarf:"unicode/1f9d5.png?v8",woman_with_probing_cane:"unicode/1f469-1f9af.png?v8",woman_with_turban:"unicode/1f473-2640.png?v8",woman_with_veil:"unicode/1f470-2640.png?v8",womans_clothes:"unicode/1f45a.png?v8",womans_hat:"unicode/1f452.png?v8",women_wrestling:"unicode/1f93c-2640.png?v8",womens:"unicode/1f6ba.png?v8",wood:"unicode/1fab5.png?v8",woozy_face:"unicode/1f974.png?v8",world_map:"unicode/1f5fa.png?v8",worm:"unicode/1fab1.png?v8",worried:"unicode/1f61f.png?v8",wrench:"unicode/1f527.png?v8",wrestling:"unicode/1f93c.png?v8",writing_hand:"unicode/270d.png?v8",x:"unicode/274c.png?v8",yarn:"unicode/1f9f6.png?v8",yawning_face:"unicode/1f971.png?v8",yellow_circle:"unicode/1f7e1.png?v8",yellow_heart:"unicode/1f49b.png?v8",yellow_square:"unicode/1f7e8.png?v8",yemen:"unicode/1f1fe-1f1ea.png?v8",yen:"unicode/1f4b4.png?v8",yin_yang:"unicode/262f.png?v8",yo_yo:"unicode/1fa80.png?v8",yum:"unicode/1f60b.png?v8",zambia:"unicode/1f1ff-1f1f2.png?v8",zany_face:"unicode/1f92a.png?v8",zap:"unicode/26a1.png?v8",zebra:"unicode/1f993.png?v8",zero:"unicode/0030-20e3.png?v8",zimbabwe:"unicode/1f1ff-1f1fc.png?v8",zipper_mouth_face:"unicode/1f910.png?v8",zombie:"unicode/1f9df.png?v8",zombie_man:"unicode/1f9df-2642.png?v8",zombie_woman:"unicode/1f9df-2640.png?v8",zzz:"unicode/1f4a4.png?v8"}};function jn(e,t){return e.replace(/<(code|pre|script|template)[^>]*?>[\s\S]+?<\/(code|pre|script|template)>/g,function(e){return e.replace(/:/g,"__colon__")}).replace(//g,function(e){return e.replace(/:/g,"__colon__")}).replace(/([a-z]{2,}:)?\/\/[^\s'">)]+/gi,function(e){return e.replace(/:/g,"__colon__")}).replace(/:([a-z0-9_\-+]+?):/g,function(e,n){return i=e,o=n,e=t,n=Cn.data[o],i,i=n?e&&/unicode/.test(n)?''+n.replace("unicode/","").replace(/\.png.*/,"").split("-").map(function(e){return"&#x"+e+";"}).join("‍").concat("︎")+"":''+o+'':i;var i,o}).replace(/__colon__/g,":")}function Ln(e){var o={};return{str:e=(e=void 0===e?"":e)&&e.replace(/^('|")/,"").replace(/('|")$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,i){return-1===n.indexOf(":")?(o[n]=i&&i.replace(/"/g,"")||!0,""):e}).trim(),config:o}}function On(e){return(e=void 0===e?"":e).replace(/(<\/?a.*?>)/gi,"")}var qn,Pn=be(function(e){var u,f,p,d,n,g=function(u){var i=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,e={},R={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof T?new T(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=r.reach);m+=_.value.length,_=_.next){var b=_.value;if(i.length>n.length)return;if(!(b instanceof T)){var k,w=1;if(l){if(!(k=C(h,m,n,s))||k.index>=n.length)break;var y=k.index,x=k.index+k[0].length,S=m;for(S+=_.value.length;S<=y;)_=_.next,S+=_.value.length;if(S-=_.value.length,m=S,_.value instanceof T)continue;for(var A=_;A!==i.tail&&(Sr.reach&&(r.reach=E);b=_.prev;z&&(b=j(i,b,z),m+=z.length),L(i,b,w);$=new T(c,g?R.tokenize($,g):$,v,$);_=j(i,b,$),F&&j(i,_,F),1r.reach&&(r.reach=E.reach))}}}}}(e,t,n,t.head,0),function(e){var n=[],i=e.head.next;for(;i!==e.tail;)n.push(i.value),i=i.next;return n}(t)},hooks:{all:{},add:function(e,n){var i=R.hooks.all;i[e]=i[e]||[],i[e].push(n)},run:function(e,n){var i=R.hooks.all[e];if(i&&i.length)for(var o,t=0;o=i[t++];)o(n)}},Token:T};function T(e,n,i,o){this.type=e,this.content=n,this.alias=i,this.length=0|(o||"").length}function C(e,n,i,o){e.lastIndex=n;i=e.exec(i);return i&&o&&i[1]&&(o=i[1].length,i.index+=o,i[0]=i[0].slice(o)),i}function a(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function j(e,n,i){var o=n.next,i={value:i,prev:n,next:o};return n.next=i,o.prev=i,e.length++,i}function L(e,n,i){for(var o=n.next,t=0;t"+t.content+""},!u.document)return u.addEventListener&&(R.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),i=n.language,e=n.code,n=n.immediateClose;u.postMessage(R.highlight(e,R.languages[i],i)),n&&u.close()},!1)),R;var o=R.util.currentScript();function t(){R.manual||R.highlightAll()}return o&&(R.filename=o.src,o.hasAttribute("data-manual")&&(R.manual=!0)),R.manual||("loading"===(e=document.readyState)||"interactive"===e&&o&&o.defer?document.addEventListener("DOMContentLoaded",t):window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,16)),R}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=g),void 0!==me&&(me.Prism=g),g.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},g.languages.markup.tag.inside["attr-value"].inside.entity=g.languages.markup.entity,g.languages.markup.doctype.inside["internal-subset"].inside=g.languages.markup,g.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(g.languages.markup.tag,"addInlined",{value:function(e,n){var i={};i["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:g.languages[n]},i.cdata=/^$/i;i={"included-cdata":{pattern://i,inside:i}};i["language-"+n]={pattern:/[\s\S]+/,inside:g.languages[n]};n={};n[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:i},g.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(g.languages.markup.tag,"addAttribute",{value:function(e,n){g.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,"language-"+n],inside:g.languages[n]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),g.languages.html=g.languages.markup,g.languages.mathml=g.languages.markup,g.languages.svg=g.languages.markup,g.languages.xml=g.languages.extend("markup",{}),g.languages.ssml=g.languages.xml,g.languages.atom=g.languages.xml,g.languages.rss=g.languages.xml,function(e){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+n.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;e=e.languages.markup;e&&(e.tag.addInlined("style","css"),e.tag.addAttribute("style","css"))}(g),g.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},g.languages.javascript=g.languages.extend("clike",{"class-name":[g.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),g.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,g.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:g.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:g.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:g.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:g.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:g.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),g.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:g.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),g.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),g.languages.markup&&(g.languages.markup.tag.addInlined("script","javascript"),g.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),g.languages.js=g.languages.javascript,void 0!==g&&"undefined"!=typeof document&&(Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),u={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},d="pre[data-src]:not(["+(f="data-src-status")+'="loaded"]):not(['+f+'="'+(p="loading")+'"])',g.hooks.add("before-highlightall",function(e){e.selector+=", "+d}),g.hooks.add("before-sanity-check",function(e){var t,n,i,o,a,r,c=e.element;c.matches(d)&&(e.code="",c.setAttribute(f,p),(t=c.appendChild(document.createElement("CODE"))).textContent="Loading…",i=c.getAttribute("data-src"),"none"===(e=e.language)&&(n=(/\.(\w+)$/.exec(i)||[,"none"])[1],e=u[n]||n),g.util.setLanguage(t,e),g.util.setLanguage(c,e),(n=g.plugins.autoloader)&&n.loadLanguages(e),i=i,o=function(e){c.setAttribute(f,"loaded");var n,i,o=function(e){if(i=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"")){var n=Number(i[1]),e=i[2],i=i[3];return e?i?[n,Number(i)]:[n,void 0]:[n,n]}}(c.getAttribute("data-range"));o&&(n=e.split(/\r\n?|\n/g),i=o[0],o=null==o[1]?n.length:o[1],i<0&&(i+=n.length),i=Math.max(0,Math.min(i-1,n.length)),o<0&&(o+=n.length),o=Math.max(0,Math.min(o,n.length)),e=n.slice(i,o).join("\n"),c.hasAttribute("data-start")||c.setAttribute("data-start",String(i+1))),t.textContent=e,g.highlightElement(t)},a=function(e){c.setAttribute(f,"failed"),t.textContent=e},(r=new XMLHttpRequest).open("GET",i,!0),r.onreadystatechange=function(){4==r.readyState&&(r.status<400&&r.responseText?o(r.responseText):400<=r.status?a("✖ Error "+r.status+" while fetching file: "+r.statusText):a("✖ Error: File does not exist or is empty"))},r.send(null))}),n=!(g.plugins.fileHighlight={highlight:function(e){for(var n,i=(e||document).querySelectorAll(d),o=0;n=i[o++];)g.highlightElement(n)}}),g.fileHighlight=function(){n||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),n=!0),g.plugins.fileHighlight.highlight.apply(this,arguments)})});function Mn(e,n){return"___"+e.toUpperCase()+n+"___"}qn=Prism,Object.defineProperties(qn.languages["markup-templating"]={},{buildPlaceholders:{value:function(o,t,e,a){var r;o.language===t&&(r=o.tokenStack=[],o.code=o.code.replace(e,function(e){if("function"==typeof a&&!a(e))return e;for(var n,i=r.length;-1!==o.code.indexOf(n=Mn(t,i));)++i;return r[i]=e,n}),o.grammar=qn.languages.markup)}},tokenizePlaceholders:{value:function(f,p){var d,g;f.language===p&&f.tokenStack&&(f.grammar=qn.languages[p],d=0,g=Object.keys(f.tokenStack),function e(n){for(var i=0;i=g.length);i++){var o,t,a,r,c,u=n[i];"string"==typeof u||u.content&&"string"==typeof u.content?(t=g[d],a=f.tokenStack[t],o="string"==typeof u?u:u.content,c=Mn(p,t),-1<(r=o.indexOf(c))&&(++d,t=o.substring(0,r),a=new qn.Token(p,qn.tokenize(a,f.grammar),"language-"+p,a),r=o.substring(r+c.length),c=[],t&&c.push.apply(c,e([t])),c.push(a),r&&c.push.apply(c,e([r])),"string"==typeof u?n.splice.apply(n,[i,1].concat(c)):u.content=c)):u.content&&e(u.content)}return n}(f.tokens))}}});function In(t,e){var a=this;this.config=t,this.router=e,this.cacheTree={},this.toc=[],this.cacheTOC={},this.linkTarget=t.externalLinkTarget||"_blank",this.linkRel="_blank"===this.linkTarget?t.externalLinkRel||"noopener":"",this.contentBase=e.getBasePath();var n=this._initRenderer();this.heading=n.heading;var r=o(e=t.markdown||{})?e(Sn,n):(Sn.setOptions(m(e,{renderer:m(n,e.renderer)})),Sn);this._marked=r,this.compile=function(i){var o=!0,e=c(function(e){o=!1;var n="";return i&&(n=f(i)?r(i):r.parser(i),n=t.noEmoji?n:jn(n,t.nativeEmoji),Tn.clear(),n)})(i),n=a.router.parse().file;return o?a.toc=a.cacheTOC[n]:a.cacheTOC[n]=[].concat(a.toc),e}}var Nn={},Hn={markdown:function(e){return{url:e}},mermaid:function(e){return{url:e}},iframe:function(e,n){return{html:'"}},video:function(e,n){return{html:'"}},audio:function(e,n){return{html:'"}},code:function(e,n){var i=e.match(/\.(\w+)$/);return{url:e,lang:i="md"===(i=n||i&&i[1])?"markdown":i}}};In.prototype.compileEmbed=function(e,n){var i,o,t=Ln(n),a=t.str,t=t.config;if(n=a,t.include)return R(e)||(e=q(this.contentBase,C(this.router.getCurrentPath()),e)),t.type&&(o=Hn[t.type])?(i=o.call(this,e,n)).type=t.type:(o="code",/\.(md|markdown)/.test(e)?o="markdown":/\.mmd/.test(e)?o="mermaid":/\.html?/.test(e)?o="iframe":/\.(mp4|ogg)/.test(e)?o="video":/\.mp3/.test(e)&&(o="audio"),(i=Hn[o].call(this,e,n)).type=o),i.fragment=t.fragment,i},In.prototype._matchNotCompileLink=function(e){for(var n=this.config.noCompileLinks||[],i=0;i/g.test(o)&&(o=o.replace("\x3c!-- {docsify-ignore} --\x3e",""),e.title=On(o),e.ignoreSubHeading=!0),/{docsify-ignore}/g.test(o)&&(o=o.replace("{docsify-ignore}",""),e.title=On(o),e.ignoreSubHeading=!0),//g.test(o)&&(o=o.replace("\x3c!-- {docsify-ignore-all} --\x3e",""),e.title=On(o),e.ignoreAllSubs=!0),/{docsify-ignore-all}/g.test(o)&&(o=o.replace("{docsify-ignore-all}",""),e.title=On(o),e.ignoreAllSubs=!0);i=Tn(t.id||o),t=a.toURL(a.getCurrentPath(),{id:i});return e.slug=t,g.toc.push(e),"'+o+""},t.code={renderer:e}.renderer.code=function(e,n){var i=Pn.languages[n=void 0===n?"markup":n]||Pn.languages.markup;return'
    '+Pn.highlight(e.replace(/@DOCSIFY_QM@/g,"`"),i,n)+"
    "},t.link=(i=(n={renderer:e,router:a,linkTarget:n,linkRel:i,compilerClass:g}).renderer,c=n.router,u=n.linkTarget,n.linkRel,f=n.compilerClass,i.link=function(e,n,i){var o=[],t=Ln(n=void 0===n?"":n),a=t.str,t=t.config;return u=t.target||u,r="_blank"===u?f.config.externalLinkRel||"noopener":"",n=a,R(e)||f._matchNotCompileLink(e)||t.ignore?(R(e)||"./"!==e.slice(0,2)||(e=document.URL.replace(/\/(?!.*\/).*/,"/").replace("#/./","")+e),o.push(0===e.indexOf("mailto:")?"":'target="'+u+'"'),o.push(0!==e.indexOf("mailto:")&&""!==r?' rel="'+r+'"':"")):(e===f.config.homepage&&(e="README"),e=c.toURL(e,null,c.getCurrentPath())),t.disabled&&(o.push("disabled"),e="javascript:void(0)"),t.class&&o.push('class="'+t.class+'"'),t.id&&o.push('id="'+t.id+'"'),n&&o.push('title="'+n+'"'),'"+i+""}),t.paragraph={renderer:e}.renderer.paragraph=function(e){e=/^!>/.test(e)?$n("tip",e):/^\?>/.test(e)?$n("warn",e):"

    "+e+"

    ";return e},t.image=(o=(i={renderer:e,contentBase:o,router:a}).renderer,p=i.contentBase,d=i.router,o.image=function(e,n,i){var o=e,t=[],a=Ln(n),r=a.str,a=a.config;return n=r,a["no-zoom"]&&t.push("data-no-zoom"),n&&t.push('title="'+n+'"'),a.size&&(n=(r=a.size.split("x"))[0],(r=r[1])?t.push('width="'+n+'" height="'+r+'"'):t.push('width="'+n+'"')),a.class&&t.push('class="'+a.class+'"'),a.id&&t.push('id="'+a.id+'"'),R(e)||(o=q(p,C(d.getCurrentPath()),e)),0":''+i+'"}),t.list={renderer:e}.renderer.list=function(e,n,i){n=n?"ol":"ul";return"<"+n+" "+[/
  • /.test(e.split('class="task-list"')[0])?'class="task-list"':"",i&&1"+e+""},t.listitem={renderer:e}.renderer.listitem=function(e){return/^(]*>)/.test(e)?'
  • ":"
  • "+e+"
  • "},e.origin=t,e},In.prototype.sidebar=function(e,n){var i=this.toc,o=this.router.getCurrentPath(),t="";if(e)t=this.compile(e);else{for(var a=0;a{inner}");this.cacheTree[o]=n}return t},In.prototype.subSidebar=function(e){if(e){var n=this.router.getCurrentPath(),i=this.cacheTree,o=this.toc;o[0]&&o[0].ignoreAllSubs&&o.splice(0),o[0]&&1===o[0].level&&o.shift();for(var t=0;t\n'+e+"\n"}]).links={}:(n=[{type:"html",text:e}]).links={}),a({token:t,embedToken:n}),++u>=c&&a({})}}(n);n.embed.url?X(n.embed.url).then(o):o(n.embed.html)}}({compile:i,embedTokens:c,fetch:n},function(e){var n,i=e.embedToken,e=e.token;e?(n=e.index,p.forEach(function(e){n>e.start&&(n+=e.length)}),m(f,i.links),r=r.slice(0,n).concat(i,r.slice(n+1)),p.push({start:n,length:i.length-1})):(Bn[t]=r.concat(),r.links=Bn[t].links=f,o(r))})}function Yn(e,n,i){var o,t,a,r;return n="function"==typeof i?i(n):"string"==typeof i?(a=[],r=0,(o=i).replace(V,function(n,e,i){a.push(o.substring(r,i-1)),r=i+=n.length+1,a.push(t&&t[n]||function(e){return("00"+("string"==typeof Y[n]?e[Y[n]]():Y[n](e))).slice(-n.length)})}),r!==o.length&&a.push(o.substring(r)),function(e){for(var n="",i=0,o=e||new Date;i404 - Not found","Vue"in window)for(var a=0,r=k(".markdown-section > *").filter(n);ascript").filter(function(e){return!/template/.test(e.type)})[0])||(e=e.innerText.trim())&&new Function(e)()),"Vue"in window){var u,f,p=[],d=Object.keys(i.vueComponents||{});2===t&&d.length&&d.forEach(function(e){window.Vue.options.components[e]||window.Vue.component(e,i.vueComponents[e])}),!Un&&i.vueGlobalOptions&&"function"==typeof i.vueGlobalOptions.data&&(Un=i.vueGlobalOptions.data()),p.push.apply(p,Object.keys(i.vueMounts||{}).map(function(e){return[b(o,e),i.vueMounts[e]]}).filter(function(e){var n=e[0];e[1];return n})),(i.vueGlobalOptions||d.length)&&(u=/{{2}[^{}]*}{2}/,f=/<[^>/]+\s([@:]|v-)[\w-:.[\]]+[=>\s]/,p.push.apply(p,k(".markdown-section > *").filter(function(i){return!p.some(function(e){var n=e[0];e[1];return n===i})}).filter(function(e){return e.tagName.toLowerCase()in(i.vueComponents||{})||e.querySelector(d.join(",")||null)||u.test(e.outerHTML)||f.test(e.outerHTML)}).map(function(e){var n=m({},i.vueGlobalOptions||{});return Un&&(n.data=function(){return Un}),[e,n]})));for(var g=0,s=p;g([^<]*?)

    $'))&&("color"===n[2]?o.style.background=n[1]+(n[3]||""):(e=n[1],S(o,"add","has-mask"),R(n[1])||(e=q(this.router.getBasePath(),n[1])),o.style.backgroundImage="url("+e+")",o.style.backgroundSize="cover",o.style.backgroundPosition="center center"),i=i.replace(n[0],"")),this._renderTo(".cover-main",i),K()):S(o,"remove","show")},n.prototype._updateRender=function(){var e,n,i,o;e=this,n=l(".app-name-link"),i=e.config.nameLink,o=e.route.path,n&&(f(e.config.nameLink)?n.setAttribute("href",i):"object"==typeof i&&(e=Object.keys(i).filter(function(e){return-1':"")),e.coverpage&&(f+=(o=", 100%, 85%",'
    \x3c!--cover--\x3e
    ')),e.logo&&(o=/^data:image/.test(e.logo),n=/(?:http[s]?:)?\/\//.test(e.logo),i=/^\./.test(e.logo),o||n||i||(e.logo=q(this.router.getBasePath(),e.logo))),f+=(i=(n=e).name||"","
    "+('')+'
    \x3c!--main--\x3e
    '),this._renderTo(u,f,!0)):this.rendered=!0,e.mergeNavbar&&s?p=b(".sidebar"):(c.classList.add("app-nav"),e.repo||c.classList.add("no-badge")),e.loadNavbar&&y(p,c),e.themeColor&&(v.head.appendChild(w("div","").firstElementChild),a=e.themeColor,window.CSS&&window.CSS.supports&&window.CSS.supports("(--v:red)")||(e=k("style:not(.inserted),link"),[].forEach.call(e,function(e){"STYLE"===e.nodeName?Q(e,a):"LINK"===e.nodeName&&(e=e.getAttribute("href"),/\.css$/.test(e)&&X(e).then(function(e){e=w("style",e);_.appendChild(e),Q(e,a)}))}))),this._updateRender(),S(h,"ready")},n}(function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),((n.prototype=Object.create(e&&e.prototype)).constructor=n).prototype.routes=function(){return this.config.routes||{}},n.prototype.matchVirtualRoute=function(t){var a=this.routes(),r=Object.keys(a),c=function(){return null};function u(){var e=r.shift();if(!e)return c(null);var n=A(o=(i="^",0===(o=e).indexOf(i)?o:"^"+o),"$")?o:o+"$",i=t.match(n);if(!i)return u();var o=a[e];if("string"==typeof o)return c(o);if("function"!=typeof o)return u();n=o,e=Xn(),o=e[0];return(0,e[1])(function(e){return"string"==typeof e?c(e):!1===e?c(null):u()}),n.length<=2?o(n(t,i)):n(t,i,o)}return{then:function(e){c=e,u()}}},n}(function(i){function e(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];i.apply(this,e),this.route={}}return i&&(e.__proto__=i),((e.prototype=Object.create(i&&i.prototype)).constructor=e).prototype.updateRender=function(){this.router.normalize(),this.route=this.router.parse(),h.setAttribute("data-page",this.route.file)},e.prototype.initRouter=function(){var n=this,e=this.config,e=new("history"===(e.routerMode||"hash")&&t?D:H)(e);this.router=e,this.updateRender(),U=this.route,e.onchange(function(e){n.updateRender(),n._updateRender(),U.path!==n.route.path?(n.$fetch(d,n.$resetEvents.bind(n,e.source)),U=n.route):n.$resetEvents(e.source)})},e}(function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),((n.prototype=Object.create(e&&e.prototype)).constructor=n).prototype.initLifecycle=function(){var i=this;this._hooks={},this._lifecycle={},["init","mounted","beforeEach","afterEach","doneEach","ready"].forEach(function(e){var n=i._hooks[e]=[];i._lifecycle[e]=function(e){return n.push(e)}})},n.prototype.callHook=function(e,t,a){void 0===a&&(a=d);var r=this._hooks[e],c=this.config.catchPluginErrors,u=function(n){var e=r[n];if(n>=r.length)a(t);else if("function"==typeof e){var i="Docsify plugin error";if(2===e.length)try{e(t,function(e){t=e,u(n+1)})}catch(e){if(!c)throw e;console.error(i,e),u(n+1)}else try{var o=e(t);t=void 0===o?t:o,u(n+1)}catch(e){if(!c)throw e;console.error(i,e),u(n+1)}}else u(n+1)};u(0)},n}(we))))))));function Kn(e,n,i){return Qn&&Qn.abort&&Qn.abort(),Qn=X(e,!0,i)}window.Docsify={util:Me,dom:n,get:X,slugify:Tn,version:"4.13.1"},window.DocsifyCompiler=In,window.marked=Sn,window.Prism=Pn,e(function(e){return new Jn})}(); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js b/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js deleted file mode 100644 index 89151602..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/emoji.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var o="https://github.githubassets.com/images/icons/emoji/",i={100:"unicode/1f4af.png?v8",1234:"unicode/1f522.png?v8","+1":"unicode/1f44d.png?v8","-1":"unicode/1f44e.png?v8","1st_place_medal":"unicode/1f947.png?v8","2nd_place_medal":"unicode/1f948.png?v8","3rd_place_medal":"unicode/1f949.png?v8","8ball":"unicode/1f3b1.png?v8",a:"unicode/1f170.png?v8",ab:"unicode/1f18e.png?v8",abacus:"unicode/1f9ee.png?v8",abc:"unicode/1f524.png?v8",abcd:"unicode/1f521.png?v8",accept:"unicode/1f251.png?v8",accessibility:"accessibility.png?v8",accordion:"unicode/1fa97.png?v8",adhesive_bandage:"unicode/1fa79.png?v8",adult:"unicode/1f9d1.png?v8",aerial_tramway:"unicode/1f6a1.png?v8",afghanistan:"unicode/1f1e6-1f1eb.png?v8",airplane:"unicode/2708.png?v8",aland_islands:"unicode/1f1e6-1f1fd.png?v8",alarm_clock:"unicode/23f0.png?v8",albania:"unicode/1f1e6-1f1f1.png?v8",alembic:"unicode/2697.png?v8",algeria:"unicode/1f1e9-1f1ff.png?v8",alien:"unicode/1f47d.png?v8",ambulance:"unicode/1f691.png?v8",american_samoa:"unicode/1f1e6-1f1f8.png?v8",amphora:"unicode/1f3fa.png?v8",anatomical_heart:"unicode/1fac0.png?v8",anchor:"unicode/2693.png?v8",andorra:"unicode/1f1e6-1f1e9.png?v8",angel:"unicode/1f47c.png?v8",anger:"unicode/1f4a2.png?v8",angola:"unicode/1f1e6-1f1f4.png?v8",angry:"unicode/1f620.png?v8",anguilla:"unicode/1f1e6-1f1ee.png?v8",anguished:"unicode/1f627.png?v8",ant:"unicode/1f41c.png?v8",antarctica:"unicode/1f1e6-1f1f6.png?v8",antigua_barbuda:"unicode/1f1e6-1f1ec.png?v8",apple:"unicode/1f34e.png?v8",aquarius:"unicode/2652.png?v8",argentina:"unicode/1f1e6-1f1f7.png?v8",aries:"unicode/2648.png?v8",armenia:"unicode/1f1e6-1f1f2.png?v8",arrow_backward:"unicode/25c0.png?v8",arrow_double_down:"unicode/23ec.png?v8",arrow_double_up:"unicode/23eb.png?v8",arrow_down:"unicode/2b07.png?v8",arrow_down_small:"unicode/1f53d.png?v8",arrow_forward:"unicode/25b6.png?v8",arrow_heading_down:"unicode/2935.png?v8",arrow_heading_up:"unicode/2934.png?v8",arrow_left:"unicode/2b05.png?v8",arrow_lower_left:"unicode/2199.png?v8",arrow_lower_right:"unicode/2198.png?v8",arrow_right:"unicode/27a1.png?v8",arrow_right_hook:"unicode/21aa.png?v8",arrow_up:"unicode/2b06.png?v8",arrow_up_down:"unicode/2195.png?v8",arrow_up_small:"unicode/1f53c.png?v8",arrow_upper_left:"unicode/2196.png?v8",arrow_upper_right:"unicode/2197.png?v8",arrows_clockwise:"unicode/1f503.png?v8",arrows_counterclockwise:"unicode/1f504.png?v8",art:"unicode/1f3a8.png?v8",articulated_lorry:"unicode/1f69b.png?v8",artificial_satellite:"unicode/1f6f0.png?v8",artist:"unicode/1f9d1-1f3a8.png?v8",aruba:"unicode/1f1e6-1f1fc.png?v8",ascension_island:"unicode/1f1e6-1f1e8.png?v8",asterisk:"unicode/002a-20e3.png?v8",astonished:"unicode/1f632.png?v8",astronaut:"unicode/1f9d1-1f680.png?v8",athletic_shoe:"unicode/1f45f.png?v8",atm:"unicode/1f3e7.png?v8",atom:"atom.png?v8",atom_symbol:"unicode/269b.png?v8",australia:"unicode/1f1e6-1f1fa.png?v8",austria:"unicode/1f1e6-1f1f9.png?v8",auto_rickshaw:"unicode/1f6fa.png?v8",avocado:"unicode/1f951.png?v8",axe:"unicode/1fa93.png?v8",azerbaijan:"unicode/1f1e6-1f1ff.png?v8",b:"unicode/1f171.png?v8",baby:"unicode/1f476.png?v8",baby_bottle:"unicode/1f37c.png?v8",baby_chick:"unicode/1f424.png?v8",baby_symbol:"unicode/1f6bc.png?v8",back:"unicode/1f519.png?v8",bacon:"unicode/1f953.png?v8",badger:"unicode/1f9a1.png?v8",badminton:"unicode/1f3f8.png?v8",bagel:"unicode/1f96f.png?v8",baggage_claim:"unicode/1f6c4.png?v8",baguette_bread:"unicode/1f956.png?v8",bahamas:"unicode/1f1e7-1f1f8.png?v8",bahrain:"unicode/1f1e7-1f1ed.png?v8",balance_scale:"unicode/2696.png?v8",bald_man:"unicode/1f468-1f9b2.png?v8",bald_woman:"unicode/1f469-1f9b2.png?v8",ballet_shoes:"unicode/1fa70.png?v8",balloon:"unicode/1f388.png?v8",ballot_box:"unicode/1f5f3.png?v8",ballot_box_with_check:"unicode/2611.png?v8",bamboo:"unicode/1f38d.png?v8",banana:"unicode/1f34c.png?v8",bangbang:"unicode/203c.png?v8",bangladesh:"unicode/1f1e7-1f1e9.png?v8",banjo:"unicode/1fa95.png?v8",bank:"unicode/1f3e6.png?v8",bar_chart:"unicode/1f4ca.png?v8",barbados:"unicode/1f1e7-1f1e7.png?v8",barber:"unicode/1f488.png?v8",baseball:"unicode/26be.png?v8",basecamp:"basecamp.png?v8",basecampy:"basecampy.png?v8",basket:"unicode/1f9fa.png?v8",basketball:"unicode/1f3c0.png?v8",basketball_man:"unicode/26f9-2642.png?v8",basketball_woman:"unicode/26f9-2640.png?v8",bat:"unicode/1f987.png?v8",bath:"unicode/1f6c0.png?v8",bathtub:"unicode/1f6c1.png?v8",battery:"unicode/1f50b.png?v8",beach_umbrella:"unicode/1f3d6.png?v8",bear:"unicode/1f43b.png?v8",bearded_person:"unicode/1f9d4.png?v8",beaver:"unicode/1f9ab.png?v8",bed:"unicode/1f6cf.png?v8",bee:"unicode/1f41d.png?v8",beer:"unicode/1f37a.png?v8",beers:"unicode/1f37b.png?v8",beetle:"unicode/1fab2.png?v8",beginner:"unicode/1f530.png?v8",belarus:"unicode/1f1e7-1f1fe.png?v8",belgium:"unicode/1f1e7-1f1ea.png?v8",belize:"unicode/1f1e7-1f1ff.png?v8",bell:"unicode/1f514.png?v8",bell_pepper:"unicode/1fad1.png?v8",bellhop_bell:"unicode/1f6ce.png?v8",benin:"unicode/1f1e7-1f1ef.png?v8",bento:"unicode/1f371.png?v8",bermuda:"unicode/1f1e7-1f1f2.png?v8",beverage_box:"unicode/1f9c3.png?v8",bhutan:"unicode/1f1e7-1f1f9.png?v8",bicyclist:"unicode/1f6b4.png?v8",bike:"unicode/1f6b2.png?v8",biking_man:"unicode/1f6b4-2642.png?v8",biking_woman:"unicode/1f6b4-2640.png?v8",bikini:"unicode/1f459.png?v8",billed_cap:"unicode/1f9e2.png?v8",biohazard:"unicode/2623.png?v8",bird:"unicode/1f426.png?v8",birthday:"unicode/1f382.png?v8",bison:"unicode/1f9ac.png?v8",black_cat:"unicode/1f408-2b1b.png?v8",black_circle:"unicode/26ab.png?v8",black_flag:"unicode/1f3f4.png?v8",black_heart:"unicode/1f5a4.png?v8",black_joker:"unicode/1f0cf.png?v8",black_large_square:"unicode/2b1b.png?v8",black_medium_small_square:"unicode/25fe.png?v8",black_medium_square:"unicode/25fc.png?v8",black_nib:"unicode/2712.png?v8",black_small_square:"unicode/25aa.png?v8",black_square_button:"unicode/1f532.png?v8",blond_haired_man:"unicode/1f471-2642.png?v8",blond_haired_person:"unicode/1f471.png?v8",blond_haired_woman:"unicode/1f471-2640.png?v8",blonde_woman:"unicode/1f471-2640.png?v8",blossom:"unicode/1f33c.png?v8",blowfish:"unicode/1f421.png?v8",blue_book:"unicode/1f4d8.png?v8",blue_car:"unicode/1f699.png?v8",blue_heart:"unicode/1f499.png?v8",blue_square:"unicode/1f7e6.png?v8",blueberries:"unicode/1fad0.png?v8",blush:"unicode/1f60a.png?v8",boar:"unicode/1f417.png?v8",boat:"unicode/26f5.png?v8",bolivia:"unicode/1f1e7-1f1f4.png?v8",bomb:"unicode/1f4a3.png?v8",bone:"unicode/1f9b4.png?v8",book:"unicode/1f4d6.png?v8",bookmark:"unicode/1f516.png?v8",bookmark_tabs:"unicode/1f4d1.png?v8",books:"unicode/1f4da.png?v8",boom:"unicode/1f4a5.png?v8",boomerang:"unicode/1fa83.png?v8",boot:"unicode/1f462.png?v8",bosnia_herzegovina:"unicode/1f1e7-1f1e6.png?v8",botswana:"unicode/1f1e7-1f1fc.png?v8",bouncing_ball_man:"unicode/26f9-2642.png?v8",bouncing_ball_person:"unicode/26f9.png?v8",bouncing_ball_woman:"unicode/26f9-2640.png?v8",bouquet:"unicode/1f490.png?v8",bouvet_island:"unicode/1f1e7-1f1fb.png?v8",bow:"unicode/1f647.png?v8",bow_and_arrow:"unicode/1f3f9.png?v8",bowing_man:"unicode/1f647-2642.png?v8",bowing_woman:"unicode/1f647-2640.png?v8",bowl_with_spoon:"unicode/1f963.png?v8",bowling:"unicode/1f3b3.png?v8",bowtie:"bowtie.png?v8",boxing_glove:"unicode/1f94a.png?v8",boy:"unicode/1f466.png?v8",brain:"unicode/1f9e0.png?v8",brazil:"unicode/1f1e7-1f1f7.png?v8",bread:"unicode/1f35e.png?v8",breast_feeding:"unicode/1f931.png?v8",bricks:"unicode/1f9f1.png?v8",bride_with_veil:"unicode/1f470-2640.png?v8",bridge_at_night:"unicode/1f309.png?v8",briefcase:"unicode/1f4bc.png?v8",british_indian_ocean_territory:"unicode/1f1ee-1f1f4.png?v8",british_virgin_islands:"unicode/1f1fb-1f1ec.png?v8",broccoli:"unicode/1f966.png?v8",broken_heart:"unicode/1f494.png?v8",broom:"unicode/1f9f9.png?v8",brown_circle:"unicode/1f7e4.png?v8",brown_heart:"unicode/1f90e.png?v8",brown_square:"unicode/1f7eb.png?v8",brunei:"unicode/1f1e7-1f1f3.png?v8",bubble_tea:"unicode/1f9cb.png?v8",bucket:"unicode/1faa3.png?v8",bug:"unicode/1f41b.png?v8",building_construction:"unicode/1f3d7.png?v8",bulb:"unicode/1f4a1.png?v8",bulgaria:"unicode/1f1e7-1f1ec.png?v8",bullettrain_front:"unicode/1f685.png?v8",bullettrain_side:"unicode/1f684.png?v8",burkina_faso:"unicode/1f1e7-1f1eb.png?v8",burrito:"unicode/1f32f.png?v8",burundi:"unicode/1f1e7-1f1ee.png?v8",bus:"unicode/1f68c.png?v8",business_suit_levitating:"unicode/1f574.png?v8",busstop:"unicode/1f68f.png?v8",bust_in_silhouette:"unicode/1f464.png?v8",busts_in_silhouette:"unicode/1f465.png?v8",butter:"unicode/1f9c8.png?v8",butterfly:"unicode/1f98b.png?v8",cactus:"unicode/1f335.png?v8",cake:"unicode/1f370.png?v8",calendar:"unicode/1f4c6.png?v8",call_me_hand:"unicode/1f919.png?v8",calling:"unicode/1f4f2.png?v8",cambodia:"unicode/1f1f0-1f1ed.png?v8",camel:"unicode/1f42b.png?v8",camera:"unicode/1f4f7.png?v8",camera_flash:"unicode/1f4f8.png?v8",cameroon:"unicode/1f1e8-1f1f2.png?v8",camping:"unicode/1f3d5.png?v8",canada:"unicode/1f1e8-1f1e6.png?v8",canary_islands:"unicode/1f1ee-1f1e8.png?v8",cancer:"unicode/264b.png?v8",candle:"unicode/1f56f.png?v8",candy:"unicode/1f36c.png?v8",canned_food:"unicode/1f96b.png?v8",canoe:"unicode/1f6f6.png?v8",cape_verde:"unicode/1f1e8-1f1fb.png?v8",capital_abcd:"unicode/1f520.png?v8",capricorn:"unicode/2651.png?v8",car:"unicode/1f697.png?v8",card_file_box:"unicode/1f5c3.png?v8",card_index:"unicode/1f4c7.png?v8",card_index_dividers:"unicode/1f5c2.png?v8",caribbean_netherlands:"unicode/1f1e7-1f1f6.png?v8",carousel_horse:"unicode/1f3a0.png?v8",carpentry_saw:"unicode/1fa9a.png?v8",carrot:"unicode/1f955.png?v8",cartwheeling:"unicode/1f938.png?v8",cat:"unicode/1f431.png?v8",cat2:"unicode/1f408.png?v8",cayman_islands:"unicode/1f1f0-1f1fe.png?v8",cd:"unicode/1f4bf.png?v8",central_african_republic:"unicode/1f1e8-1f1eb.png?v8",ceuta_melilla:"unicode/1f1ea-1f1e6.png?v8",chad:"unicode/1f1f9-1f1e9.png?v8",chains:"unicode/26d3.png?v8",chair:"unicode/1fa91.png?v8",champagne:"unicode/1f37e.png?v8",chart:"unicode/1f4b9.png?v8",chart_with_downwards_trend:"unicode/1f4c9.png?v8",chart_with_upwards_trend:"unicode/1f4c8.png?v8",checkered_flag:"unicode/1f3c1.png?v8",cheese:"unicode/1f9c0.png?v8",cherries:"unicode/1f352.png?v8",cherry_blossom:"unicode/1f338.png?v8",chess_pawn:"unicode/265f.png?v8",chestnut:"unicode/1f330.png?v8",chicken:"unicode/1f414.png?v8",child:"unicode/1f9d2.png?v8",children_crossing:"unicode/1f6b8.png?v8",chile:"unicode/1f1e8-1f1f1.png?v8",chipmunk:"unicode/1f43f.png?v8",chocolate_bar:"unicode/1f36b.png?v8",chopsticks:"unicode/1f962.png?v8",christmas_island:"unicode/1f1e8-1f1fd.png?v8",christmas_tree:"unicode/1f384.png?v8",church:"unicode/26ea.png?v8",cinema:"unicode/1f3a6.png?v8",circus_tent:"unicode/1f3aa.png?v8",city_sunrise:"unicode/1f307.png?v8",city_sunset:"unicode/1f306.png?v8",cityscape:"unicode/1f3d9.png?v8",cl:"unicode/1f191.png?v8",clamp:"unicode/1f5dc.png?v8",clap:"unicode/1f44f.png?v8",clapper:"unicode/1f3ac.png?v8",classical_building:"unicode/1f3db.png?v8",climbing:"unicode/1f9d7.png?v8",climbing_man:"unicode/1f9d7-2642.png?v8",climbing_woman:"unicode/1f9d7-2640.png?v8",clinking_glasses:"unicode/1f942.png?v8",clipboard:"unicode/1f4cb.png?v8",clipperton_island:"unicode/1f1e8-1f1f5.png?v8",clock1:"unicode/1f550.png?v8",clock10:"unicode/1f559.png?v8",clock1030:"unicode/1f565.png?v8",clock11:"unicode/1f55a.png?v8",clock1130:"unicode/1f566.png?v8",clock12:"unicode/1f55b.png?v8",clock1230:"unicode/1f567.png?v8",clock130:"unicode/1f55c.png?v8",clock2:"unicode/1f551.png?v8",clock230:"unicode/1f55d.png?v8",clock3:"unicode/1f552.png?v8",clock330:"unicode/1f55e.png?v8",clock4:"unicode/1f553.png?v8",clock430:"unicode/1f55f.png?v8",clock5:"unicode/1f554.png?v8",clock530:"unicode/1f560.png?v8",clock6:"unicode/1f555.png?v8",clock630:"unicode/1f561.png?v8",clock7:"unicode/1f556.png?v8",clock730:"unicode/1f562.png?v8",clock8:"unicode/1f557.png?v8",clock830:"unicode/1f563.png?v8",clock9:"unicode/1f558.png?v8",clock930:"unicode/1f564.png?v8",closed_book:"unicode/1f4d5.png?v8",closed_lock_with_key:"unicode/1f510.png?v8",closed_umbrella:"unicode/1f302.png?v8",cloud:"unicode/2601.png?v8",cloud_with_lightning:"unicode/1f329.png?v8",cloud_with_lightning_and_rain:"unicode/26c8.png?v8",cloud_with_rain:"unicode/1f327.png?v8",cloud_with_snow:"unicode/1f328.png?v8",clown_face:"unicode/1f921.png?v8",clubs:"unicode/2663.png?v8",cn:"unicode/1f1e8-1f1f3.png?v8",coat:"unicode/1f9e5.png?v8",cockroach:"unicode/1fab3.png?v8",cocktail:"unicode/1f378.png?v8",coconut:"unicode/1f965.png?v8",cocos_islands:"unicode/1f1e8-1f1e8.png?v8",coffee:"unicode/2615.png?v8",coffin:"unicode/26b0.png?v8",coin:"unicode/1fa99.png?v8",cold_face:"unicode/1f976.png?v8",cold_sweat:"unicode/1f630.png?v8",collision:"unicode/1f4a5.png?v8",colombia:"unicode/1f1e8-1f1f4.png?v8",comet:"unicode/2604.png?v8",comoros:"unicode/1f1f0-1f1f2.png?v8",compass:"unicode/1f9ed.png?v8",computer:"unicode/1f4bb.png?v8",computer_mouse:"unicode/1f5b1.png?v8",confetti_ball:"unicode/1f38a.png?v8",confounded:"unicode/1f616.png?v8",confused:"unicode/1f615.png?v8",congo_brazzaville:"unicode/1f1e8-1f1ec.png?v8",congo_kinshasa:"unicode/1f1e8-1f1e9.png?v8",congratulations:"unicode/3297.png?v8",construction:"unicode/1f6a7.png?v8",construction_worker:"unicode/1f477.png?v8",construction_worker_man:"unicode/1f477-2642.png?v8",construction_worker_woman:"unicode/1f477-2640.png?v8",control_knobs:"unicode/1f39b.png?v8",convenience_store:"unicode/1f3ea.png?v8",cook:"unicode/1f9d1-1f373.png?v8",cook_islands:"unicode/1f1e8-1f1f0.png?v8",cookie:"unicode/1f36a.png?v8",cool:"unicode/1f192.png?v8",cop:"unicode/1f46e.png?v8",copyright:"unicode/00a9.png?v8",corn:"unicode/1f33d.png?v8",costa_rica:"unicode/1f1e8-1f1f7.png?v8",cote_divoire:"unicode/1f1e8-1f1ee.png?v8",couch_and_lamp:"unicode/1f6cb.png?v8",couple:"unicode/1f46b.png?v8",couple_with_heart:"unicode/1f491.png?v8",couple_with_heart_man_man:"unicode/1f468-2764-1f468.png?v8",couple_with_heart_woman_man:"unicode/1f469-2764-1f468.png?v8",couple_with_heart_woman_woman:"unicode/1f469-2764-1f469.png?v8",couplekiss:"unicode/1f48f.png?v8",couplekiss_man_man:"unicode/1f468-2764-1f48b-1f468.png?v8",couplekiss_man_woman:"unicode/1f469-2764-1f48b-1f468.png?v8",couplekiss_woman_woman:"unicode/1f469-2764-1f48b-1f469.png?v8",cow:"unicode/1f42e.png?v8",cow2:"unicode/1f404.png?v8",cowboy_hat_face:"unicode/1f920.png?v8",crab:"unicode/1f980.png?v8",crayon:"unicode/1f58d.png?v8",credit_card:"unicode/1f4b3.png?v8",crescent_moon:"unicode/1f319.png?v8",cricket:"unicode/1f997.png?v8",cricket_game:"unicode/1f3cf.png?v8",croatia:"unicode/1f1ed-1f1f7.png?v8",crocodile:"unicode/1f40a.png?v8",croissant:"unicode/1f950.png?v8",crossed_fingers:"unicode/1f91e.png?v8",crossed_flags:"unicode/1f38c.png?v8",crossed_swords:"unicode/2694.png?v8",crown:"unicode/1f451.png?v8",cry:"unicode/1f622.png?v8",crying_cat_face:"unicode/1f63f.png?v8",crystal_ball:"unicode/1f52e.png?v8",cuba:"unicode/1f1e8-1f1fa.png?v8",cucumber:"unicode/1f952.png?v8",cup_with_straw:"unicode/1f964.png?v8",cupcake:"unicode/1f9c1.png?v8",cupid:"unicode/1f498.png?v8",curacao:"unicode/1f1e8-1f1fc.png?v8",curling_stone:"unicode/1f94c.png?v8",curly_haired_man:"unicode/1f468-1f9b1.png?v8",curly_haired_woman:"unicode/1f469-1f9b1.png?v8",curly_loop:"unicode/27b0.png?v8",currency_exchange:"unicode/1f4b1.png?v8",curry:"unicode/1f35b.png?v8",cursing_face:"unicode/1f92c.png?v8",custard:"unicode/1f36e.png?v8",customs:"unicode/1f6c3.png?v8",cut_of_meat:"unicode/1f969.png?v8",cyclone:"unicode/1f300.png?v8",cyprus:"unicode/1f1e8-1f1fe.png?v8",czech_republic:"unicode/1f1e8-1f1ff.png?v8",dagger:"unicode/1f5e1.png?v8",dancer:"unicode/1f483.png?v8",dancers:"unicode/1f46f.png?v8",dancing_men:"unicode/1f46f-2642.png?v8",dancing_women:"unicode/1f46f-2640.png?v8",dango:"unicode/1f361.png?v8",dark_sunglasses:"unicode/1f576.png?v8",dart:"unicode/1f3af.png?v8",dash:"unicode/1f4a8.png?v8",date:"unicode/1f4c5.png?v8",de:"unicode/1f1e9-1f1ea.png?v8",deaf_man:"unicode/1f9cf-2642.png?v8",deaf_person:"unicode/1f9cf.png?v8",deaf_woman:"unicode/1f9cf-2640.png?v8",deciduous_tree:"unicode/1f333.png?v8",deer:"unicode/1f98c.png?v8",denmark:"unicode/1f1e9-1f1f0.png?v8",department_store:"unicode/1f3ec.png?v8",dependabot:"dependabot.png?v8",derelict_house:"unicode/1f3da.png?v8",desert:"unicode/1f3dc.png?v8",desert_island:"unicode/1f3dd.png?v8",desktop_computer:"unicode/1f5a5.png?v8",detective:"unicode/1f575.png?v8",diamond_shape_with_a_dot_inside:"unicode/1f4a0.png?v8",diamonds:"unicode/2666.png?v8",diego_garcia:"unicode/1f1e9-1f1ec.png?v8",disappointed:"unicode/1f61e.png?v8",disappointed_relieved:"unicode/1f625.png?v8",disguised_face:"unicode/1f978.png?v8",diving_mask:"unicode/1f93f.png?v8",diya_lamp:"unicode/1fa94.png?v8",dizzy:"unicode/1f4ab.png?v8",dizzy_face:"unicode/1f635.png?v8",djibouti:"unicode/1f1e9-1f1ef.png?v8",dna:"unicode/1f9ec.png?v8",do_not_litter:"unicode/1f6af.png?v8",dodo:"unicode/1f9a4.png?v8",dog:"unicode/1f436.png?v8",dog2:"unicode/1f415.png?v8",dollar:"unicode/1f4b5.png?v8",dolls:"unicode/1f38e.png?v8",dolphin:"unicode/1f42c.png?v8",dominica:"unicode/1f1e9-1f1f2.png?v8",dominican_republic:"unicode/1f1e9-1f1f4.png?v8",door:"unicode/1f6aa.png?v8",doughnut:"unicode/1f369.png?v8",dove:"unicode/1f54a.png?v8",dragon:"unicode/1f409.png?v8",dragon_face:"unicode/1f432.png?v8",dress:"unicode/1f457.png?v8",dromedary_camel:"unicode/1f42a.png?v8",drooling_face:"unicode/1f924.png?v8",drop_of_blood:"unicode/1fa78.png?v8",droplet:"unicode/1f4a7.png?v8",drum:"unicode/1f941.png?v8",duck:"unicode/1f986.png?v8",dumpling:"unicode/1f95f.png?v8",dvd:"unicode/1f4c0.png?v8","e-mail":"unicode/1f4e7.png?v8",eagle:"unicode/1f985.png?v8",ear:"unicode/1f442.png?v8",ear_of_rice:"unicode/1f33e.png?v8",ear_with_hearing_aid:"unicode/1f9bb.png?v8",earth_africa:"unicode/1f30d.png?v8",earth_americas:"unicode/1f30e.png?v8",earth_asia:"unicode/1f30f.png?v8",ecuador:"unicode/1f1ea-1f1e8.png?v8",egg:"unicode/1f95a.png?v8",eggplant:"unicode/1f346.png?v8",egypt:"unicode/1f1ea-1f1ec.png?v8",eight:"unicode/0038-20e3.png?v8",eight_pointed_black_star:"unicode/2734.png?v8",eight_spoked_asterisk:"unicode/2733.png?v8",eject_button:"unicode/23cf.png?v8",el_salvador:"unicode/1f1f8-1f1fb.png?v8",electric_plug:"unicode/1f50c.png?v8",electron:"electron.png?v8",elephant:"unicode/1f418.png?v8",elevator:"unicode/1f6d7.png?v8",elf:"unicode/1f9dd.png?v8",elf_man:"unicode/1f9dd-2642.png?v8",elf_woman:"unicode/1f9dd-2640.png?v8",email:"unicode/1f4e7.png?v8",end:"unicode/1f51a.png?v8",england:"unicode/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.png?v8",envelope:"unicode/2709.png?v8",envelope_with_arrow:"unicode/1f4e9.png?v8",equatorial_guinea:"unicode/1f1ec-1f1f6.png?v8",eritrea:"unicode/1f1ea-1f1f7.png?v8",es:"unicode/1f1ea-1f1f8.png?v8",estonia:"unicode/1f1ea-1f1ea.png?v8",ethiopia:"unicode/1f1ea-1f1f9.png?v8",eu:"unicode/1f1ea-1f1fa.png?v8",euro:"unicode/1f4b6.png?v8",european_castle:"unicode/1f3f0.png?v8",european_post_office:"unicode/1f3e4.png?v8",european_union:"unicode/1f1ea-1f1fa.png?v8",evergreen_tree:"unicode/1f332.png?v8",exclamation:"unicode/2757.png?v8",exploding_head:"unicode/1f92f.png?v8",expressionless:"unicode/1f611.png?v8",eye:"unicode/1f441.png?v8",eye_speech_bubble:"unicode/1f441-1f5e8.png?v8",eyeglasses:"unicode/1f453.png?v8",eyes:"unicode/1f440.png?v8",face_exhaling:"unicode/1f62e-1f4a8.png?v8",face_in_clouds:"unicode/1f636-1f32b.png?v8",face_with_head_bandage:"unicode/1f915.png?v8",face_with_spiral_eyes:"unicode/1f635-1f4ab.png?v8",face_with_thermometer:"unicode/1f912.png?v8",facepalm:"unicode/1f926.png?v8",facepunch:"unicode/1f44a.png?v8",factory:"unicode/1f3ed.png?v8",factory_worker:"unicode/1f9d1-1f3ed.png?v8",fairy:"unicode/1f9da.png?v8",fairy_man:"unicode/1f9da-2642.png?v8",fairy_woman:"unicode/1f9da-2640.png?v8",falafel:"unicode/1f9c6.png?v8",falkland_islands:"unicode/1f1eb-1f1f0.png?v8",fallen_leaf:"unicode/1f342.png?v8",family:"unicode/1f46a.png?v8",family_man_boy:"unicode/1f468-1f466.png?v8",family_man_boy_boy:"unicode/1f468-1f466-1f466.png?v8",family_man_girl:"unicode/1f468-1f467.png?v8",family_man_girl_boy:"unicode/1f468-1f467-1f466.png?v8",family_man_girl_girl:"unicode/1f468-1f467-1f467.png?v8",family_man_man_boy:"unicode/1f468-1f468-1f466.png?v8",family_man_man_boy_boy:"unicode/1f468-1f468-1f466-1f466.png?v8",family_man_man_girl:"unicode/1f468-1f468-1f467.png?v8",family_man_man_girl_boy:"unicode/1f468-1f468-1f467-1f466.png?v8",family_man_man_girl_girl:"unicode/1f468-1f468-1f467-1f467.png?v8",family_man_woman_boy:"unicode/1f468-1f469-1f466.png?v8",family_man_woman_boy_boy:"unicode/1f468-1f469-1f466-1f466.png?v8",family_man_woman_girl:"unicode/1f468-1f469-1f467.png?v8",family_man_woman_girl_boy:"unicode/1f468-1f469-1f467-1f466.png?v8",family_man_woman_girl_girl:"unicode/1f468-1f469-1f467-1f467.png?v8",family_woman_boy:"unicode/1f469-1f466.png?v8",family_woman_boy_boy:"unicode/1f469-1f466-1f466.png?v8",family_woman_girl:"unicode/1f469-1f467.png?v8",family_woman_girl_boy:"unicode/1f469-1f467-1f466.png?v8",family_woman_girl_girl:"unicode/1f469-1f467-1f467.png?v8",family_woman_woman_boy:"unicode/1f469-1f469-1f466.png?v8",family_woman_woman_boy_boy:"unicode/1f469-1f469-1f466-1f466.png?v8",family_woman_woman_girl:"unicode/1f469-1f469-1f467.png?v8",family_woman_woman_girl_boy:"unicode/1f469-1f469-1f467-1f466.png?v8",family_woman_woman_girl_girl:"unicode/1f469-1f469-1f467-1f467.png?v8",farmer:"unicode/1f9d1-1f33e.png?v8",faroe_islands:"unicode/1f1eb-1f1f4.png?v8",fast_forward:"unicode/23e9.png?v8",fax:"unicode/1f4e0.png?v8",fearful:"unicode/1f628.png?v8",feather:"unicode/1fab6.png?v8",feelsgood:"feelsgood.png?v8",feet:"unicode/1f43e.png?v8",female_detective:"unicode/1f575-2640.png?v8",female_sign:"unicode/2640.png?v8",ferris_wheel:"unicode/1f3a1.png?v8",ferry:"unicode/26f4.png?v8",field_hockey:"unicode/1f3d1.png?v8",fiji:"unicode/1f1eb-1f1ef.png?v8",file_cabinet:"unicode/1f5c4.png?v8",file_folder:"unicode/1f4c1.png?v8",film_projector:"unicode/1f4fd.png?v8",film_strip:"unicode/1f39e.png?v8",finland:"unicode/1f1eb-1f1ee.png?v8",finnadie:"finnadie.png?v8",fire:"unicode/1f525.png?v8",fire_engine:"unicode/1f692.png?v8",fire_extinguisher:"unicode/1f9ef.png?v8",firecracker:"unicode/1f9e8.png?v8",firefighter:"unicode/1f9d1-1f692.png?v8",fireworks:"unicode/1f386.png?v8",first_quarter_moon:"unicode/1f313.png?v8",first_quarter_moon_with_face:"unicode/1f31b.png?v8",fish:"unicode/1f41f.png?v8",fish_cake:"unicode/1f365.png?v8",fishing_pole_and_fish:"unicode/1f3a3.png?v8",fishsticks:"fishsticks.png?v8",fist:"unicode/270a.png?v8",fist_left:"unicode/1f91b.png?v8",fist_oncoming:"unicode/1f44a.png?v8",fist_raised:"unicode/270a.png?v8",fist_right:"unicode/1f91c.png?v8",five:"unicode/0035-20e3.png?v8",flags:"unicode/1f38f.png?v8",flamingo:"unicode/1f9a9.png?v8",flashlight:"unicode/1f526.png?v8",flat_shoe:"unicode/1f97f.png?v8",flatbread:"unicode/1fad3.png?v8",fleur_de_lis:"unicode/269c.png?v8",flight_arrival:"unicode/1f6ec.png?v8",flight_departure:"unicode/1f6eb.png?v8",flipper:"unicode/1f42c.png?v8",floppy_disk:"unicode/1f4be.png?v8",flower_playing_cards:"unicode/1f3b4.png?v8",flushed:"unicode/1f633.png?v8",fly:"unicode/1fab0.png?v8",flying_disc:"unicode/1f94f.png?v8",flying_saucer:"unicode/1f6f8.png?v8",fog:"unicode/1f32b.png?v8",foggy:"unicode/1f301.png?v8",fondue:"unicode/1fad5.png?v8",foot:"unicode/1f9b6.png?v8",football:"unicode/1f3c8.png?v8",footprints:"unicode/1f463.png?v8",fork_and_knife:"unicode/1f374.png?v8",fortune_cookie:"unicode/1f960.png?v8",fountain:"unicode/26f2.png?v8",fountain_pen:"unicode/1f58b.png?v8",four:"unicode/0034-20e3.png?v8",four_leaf_clover:"unicode/1f340.png?v8",fox_face:"unicode/1f98a.png?v8",fr:"unicode/1f1eb-1f1f7.png?v8",framed_picture:"unicode/1f5bc.png?v8",free:"unicode/1f193.png?v8",french_guiana:"unicode/1f1ec-1f1eb.png?v8",french_polynesia:"unicode/1f1f5-1f1eb.png?v8",french_southern_territories:"unicode/1f1f9-1f1eb.png?v8",fried_egg:"unicode/1f373.png?v8",fried_shrimp:"unicode/1f364.png?v8",fries:"unicode/1f35f.png?v8",frog:"unicode/1f438.png?v8",frowning:"unicode/1f626.png?v8",frowning_face:"unicode/2639.png?v8",frowning_man:"unicode/1f64d-2642.png?v8",frowning_person:"unicode/1f64d.png?v8",frowning_woman:"unicode/1f64d-2640.png?v8",fu:"unicode/1f595.png?v8",fuelpump:"unicode/26fd.png?v8",full_moon:"unicode/1f315.png?v8",full_moon_with_face:"unicode/1f31d.png?v8",funeral_urn:"unicode/26b1.png?v8",gabon:"unicode/1f1ec-1f1e6.png?v8",gambia:"unicode/1f1ec-1f1f2.png?v8",game_die:"unicode/1f3b2.png?v8",garlic:"unicode/1f9c4.png?v8",gb:"unicode/1f1ec-1f1e7.png?v8",gear:"unicode/2699.png?v8",gem:"unicode/1f48e.png?v8",gemini:"unicode/264a.png?v8",genie:"unicode/1f9de.png?v8",genie_man:"unicode/1f9de-2642.png?v8",genie_woman:"unicode/1f9de-2640.png?v8",georgia:"unicode/1f1ec-1f1ea.png?v8",ghana:"unicode/1f1ec-1f1ed.png?v8",ghost:"unicode/1f47b.png?v8",gibraltar:"unicode/1f1ec-1f1ee.png?v8",gift:"unicode/1f381.png?v8",gift_heart:"unicode/1f49d.png?v8",giraffe:"unicode/1f992.png?v8",girl:"unicode/1f467.png?v8",globe_with_meridians:"unicode/1f310.png?v8",gloves:"unicode/1f9e4.png?v8",goal_net:"unicode/1f945.png?v8",goat:"unicode/1f410.png?v8",goberserk:"goberserk.png?v8",godmode:"godmode.png?v8",goggles:"unicode/1f97d.png?v8",golf:"unicode/26f3.png?v8",golfing:"unicode/1f3cc.png?v8",golfing_man:"unicode/1f3cc-2642.png?v8",golfing_woman:"unicode/1f3cc-2640.png?v8",gorilla:"unicode/1f98d.png?v8",grapes:"unicode/1f347.png?v8",greece:"unicode/1f1ec-1f1f7.png?v8",green_apple:"unicode/1f34f.png?v8",green_book:"unicode/1f4d7.png?v8",green_circle:"unicode/1f7e2.png?v8",green_heart:"unicode/1f49a.png?v8",green_salad:"unicode/1f957.png?v8",green_square:"unicode/1f7e9.png?v8",greenland:"unicode/1f1ec-1f1f1.png?v8",grenada:"unicode/1f1ec-1f1e9.png?v8",grey_exclamation:"unicode/2755.png?v8",grey_question:"unicode/2754.png?v8",grimacing:"unicode/1f62c.png?v8",grin:"unicode/1f601.png?v8",grinning:"unicode/1f600.png?v8",guadeloupe:"unicode/1f1ec-1f1f5.png?v8",guam:"unicode/1f1ec-1f1fa.png?v8",guard:"unicode/1f482.png?v8",guardsman:"unicode/1f482-2642.png?v8",guardswoman:"unicode/1f482-2640.png?v8",guatemala:"unicode/1f1ec-1f1f9.png?v8",guernsey:"unicode/1f1ec-1f1ec.png?v8",guide_dog:"unicode/1f9ae.png?v8",guinea:"unicode/1f1ec-1f1f3.png?v8",guinea_bissau:"unicode/1f1ec-1f1fc.png?v8",guitar:"unicode/1f3b8.png?v8",gun:"unicode/1f52b.png?v8",guyana:"unicode/1f1ec-1f1fe.png?v8",haircut:"unicode/1f487.png?v8",haircut_man:"unicode/1f487-2642.png?v8",haircut_woman:"unicode/1f487-2640.png?v8",haiti:"unicode/1f1ed-1f1f9.png?v8",hamburger:"unicode/1f354.png?v8",hammer:"unicode/1f528.png?v8",hammer_and_pick:"unicode/2692.png?v8",hammer_and_wrench:"unicode/1f6e0.png?v8",hamster:"unicode/1f439.png?v8",hand:"unicode/270b.png?v8",hand_over_mouth:"unicode/1f92d.png?v8",handbag:"unicode/1f45c.png?v8",handball_person:"unicode/1f93e.png?v8",handshake:"unicode/1f91d.png?v8",hankey:"unicode/1f4a9.png?v8",hash:"unicode/0023-20e3.png?v8",hatched_chick:"unicode/1f425.png?v8",hatching_chick:"unicode/1f423.png?v8",headphones:"unicode/1f3a7.png?v8",headstone:"unicode/1faa6.png?v8",health_worker:"unicode/1f9d1-2695.png?v8",hear_no_evil:"unicode/1f649.png?v8",heard_mcdonald_islands:"unicode/1f1ed-1f1f2.png?v8",heart:"unicode/2764.png?v8",heart_decoration:"unicode/1f49f.png?v8",heart_eyes:"unicode/1f60d.png?v8",heart_eyes_cat:"unicode/1f63b.png?v8",heart_on_fire:"unicode/2764-1f525.png?v8",heartbeat:"unicode/1f493.png?v8",heartpulse:"unicode/1f497.png?v8",hearts:"unicode/2665.png?v8",heavy_check_mark:"unicode/2714.png?v8",heavy_division_sign:"unicode/2797.png?v8",heavy_dollar_sign:"unicode/1f4b2.png?v8",heavy_exclamation_mark:"unicode/2757.png?v8",heavy_heart_exclamation:"unicode/2763.png?v8",heavy_minus_sign:"unicode/2796.png?v8",heavy_multiplication_x:"unicode/2716.png?v8",heavy_plus_sign:"unicode/2795.png?v8",hedgehog:"unicode/1f994.png?v8",helicopter:"unicode/1f681.png?v8",herb:"unicode/1f33f.png?v8",hibiscus:"unicode/1f33a.png?v8",high_brightness:"unicode/1f506.png?v8",high_heel:"unicode/1f460.png?v8",hiking_boot:"unicode/1f97e.png?v8",hindu_temple:"unicode/1f6d5.png?v8",hippopotamus:"unicode/1f99b.png?v8",hocho:"unicode/1f52a.png?v8",hole:"unicode/1f573.png?v8",honduras:"unicode/1f1ed-1f1f3.png?v8",honey_pot:"unicode/1f36f.png?v8",honeybee:"unicode/1f41d.png?v8",hong_kong:"unicode/1f1ed-1f1f0.png?v8",hook:"unicode/1fa9d.png?v8",horse:"unicode/1f434.png?v8",horse_racing:"unicode/1f3c7.png?v8",hospital:"unicode/1f3e5.png?v8",hot_face:"unicode/1f975.png?v8",hot_pepper:"unicode/1f336.png?v8",hotdog:"unicode/1f32d.png?v8",hotel:"unicode/1f3e8.png?v8",hotsprings:"unicode/2668.png?v8",hourglass:"unicode/231b.png?v8",hourglass_flowing_sand:"unicode/23f3.png?v8",house:"unicode/1f3e0.png?v8",house_with_garden:"unicode/1f3e1.png?v8",houses:"unicode/1f3d8.png?v8",hugs:"unicode/1f917.png?v8",hungary:"unicode/1f1ed-1f1fa.png?v8",hurtrealbad:"hurtrealbad.png?v8",hushed:"unicode/1f62f.png?v8",hut:"unicode/1f6d6.png?v8",ice_cream:"unicode/1f368.png?v8",ice_cube:"unicode/1f9ca.png?v8",ice_hockey:"unicode/1f3d2.png?v8",ice_skate:"unicode/26f8.png?v8",icecream:"unicode/1f366.png?v8",iceland:"unicode/1f1ee-1f1f8.png?v8",id:"unicode/1f194.png?v8",ideograph_advantage:"unicode/1f250.png?v8",imp:"unicode/1f47f.png?v8",inbox_tray:"unicode/1f4e5.png?v8",incoming_envelope:"unicode/1f4e8.png?v8",india:"unicode/1f1ee-1f1f3.png?v8",indonesia:"unicode/1f1ee-1f1e9.png?v8",infinity:"unicode/267e.png?v8",information_desk_person:"unicode/1f481.png?v8",information_source:"unicode/2139.png?v8",innocent:"unicode/1f607.png?v8",interrobang:"unicode/2049.png?v8",iphone:"unicode/1f4f1.png?v8",iran:"unicode/1f1ee-1f1f7.png?v8",iraq:"unicode/1f1ee-1f1f6.png?v8",ireland:"unicode/1f1ee-1f1ea.png?v8",isle_of_man:"unicode/1f1ee-1f1f2.png?v8",israel:"unicode/1f1ee-1f1f1.png?v8",it:"unicode/1f1ee-1f1f9.png?v8",izakaya_lantern:"unicode/1f3ee.png?v8",jack_o_lantern:"unicode/1f383.png?v8",jamaica:"unicode/1f1ef-1f1f2.png?v8",japan:"unicode/1f5fe.png?v8",japanese_castle:"unicode/1f3ef.png?v8",japanese_goblin:"unicode/1f47a.png?v8",japanese_ogre:"unicode/1f479.png?v8",jeans:"unicode/1f456.png?v8",jersey:"unicode/1f1ef-1f1ea.png?v8",jigsaw:"unicode/1f9e9.png?v8",jordan:"unicode/1f1ef-1f1f4.png?v8",joy:"unicode/1f602.png?v8",joy_cat:"unicode/1f639.png?v8",joystick:"unicode/1f579.png?v8",jp:"unicode/1f1ef-1f1f5.png?v8",judge:"unicode/1f9d1-2696.png?v8",juggling_person:"unicode/1f939.png?v8",kaaba:"unicode/1f54b.png?v8",kangaroo:"unicode/1f998.png?v8",kazakhstan:"unicode/1f1f0-1f1ff.png?v8",kenya:"unicode/1f1f0-1f1ea.png?v8",key:"unicode/1f511.png?v8",keyboard:"unicode/2328.png?v8",keycap_ten:"unicode/1f51f.png?v8",kick_scooter:"unicode/1f6f4.png?v8",kimono:"unicode/1f458.png?v8",kiribati:"unicode/1f1f0-1f1ee.png?v8",kiss:"unicode/1f48b.png?v8",kissing:"unicode/1f617.png?v8",kissing_cat:"unicode/1f63d.png?v8",kissing_closed_eyes:"unicode/1f61a.png?v8",kissing_heart:"unicode/1f618.png?v8",kissing_smiling_eyes:"unicode/1f619.png?v8",kite:"unicode/1fa81.png?v8",kiwi_fruit:"unicode/1f95d.png?v8",kneeling_man:"unicode/1f9ce-2642.png?v8",kneeling_person:"unicode/1f9ce.png?v8",kneeling_woman:"unicode/1f9ce-2640.png?v8",knife:"unicode/1f52a.png?v8",knot:"unicode/1faa2.png?v8",koala:"unicode/1f428.png?v8",koko:"unicode/1f201.png?v8",kosovo:"unicode/1f1fd-1f1f0.png?v8",kr:"unicode/1f1f0-1f1f7.png?v8",kuwait:"unicode/1f1f0-1f1fc.png?v8",kyrgyzstan:"unicode/1f1f0-1f1ec.png?v8",lab_coat:"unicode/1f97c.png?v8",label:"unicode/1f3f7.png?v8",lacrosse:"unicode/1f94d.png?v8",ladder:"unicode/1fa9c.png?v8",lady_beetle:"unicode/1f41e.png?v8",lantern:"unicode/1f3ee.png?v8",laos:"unicode/1f1f1-1f1e6.png?v8",large_blue_circle:"unicode/1f535.png?v8",large_blue_diamond:"unicode/1f537.png?v8",large_orange_diamond:"unicode/1f536.png?v8",last_quarter_moon:"unicode/1f317.png?v8",last_quarter_moon_with_face:"unicode/1f31c.png?v8",latin_cross:"unicode/271d.png?v8",latvia:"unicode/1f1f1-1f1fb.png?v8",laughing:"unicode/1f606.png?v8",leafy_green:"unicode/1f96c.png?v8",leaves:"unicode/1f343.png?v8",lebanon:"unicode/1f1f1-1f1e7.png?v8",ledger:"unicode/1f4d2.png?v8",left_luggage:"unicode/1f6c5.png?v8",left_right_arrow:"unicode/2194.png?v8",left_speech_bubble:"unicode/1f5e8.png?v8",leftwards_arrow_with_hook:"unicode/21a9.png?v8",leg:"unicode/1f9b5.png?v8",lemon:"unicode/1f34b.png?v8",leo:"unicode/264c.png?v8",leopard:"unicode/1f406.png?v8",lesotho:"unicode/1f1f1-1f1f8.png?v8",level_slider:"unicode/1f39a.png?v8",liberia:"unicode/1f1f1-1f1f7.png?v8",libra:"unicode/264e.png?v8",libya:"unicode/1f1f1-1f1fe.png?v8",liechtenstein:"unicode/1f1f1-1f1ee.png?v8",light_rail:"unicode/1f688.png?v8",link:"unicode/1f517.png?v8",lion:"unicode/1f981.png?v8",lips:"unicode/1f444.png?v8",lipstick:"unicode/1f484.png?v8",lithuania:"unicode/1f1f1-1f1f9.png?v8",lizard:"unicode/1f98e.png?v8",llama:"unicode/1f999.png?v8",lobster:"unicode/1f99e.png?v8",lock:"unicode/1f512.png?v8",lock_with_ink_pen:"unicode/1f50f.png?v8",lollipop:"unicode/1f36d.png?v8",long_drum:"unicode/1fa98.png?v8",loop:"unicode/27bf.png?v8",lotion_bottle:"unicode/1f9f4.png?v8",lotus_position:"unicode/1f9d8.png?v8",lotus_position_man:"unicode/1f9d8-2642.png?v8",lotus_position_woman:"unicode/1f9d8-2640.png?v8",loud_sound:"unicode/1f50a.png?v8",loudspeaker:"unicode/1f4e2.png?v8",love_hotel:"unicode/1f3e9.png?v8",love_letter:"unicode/1f48c.png?v8",love_you_gesture:"unicode/1f91f.png?v8",low_brightness:"unicode/1f505.png?v8",luggage:"unicode/1f9f3.png?v8",lungs:"unicode/1fac1.png?v8",luxembourg:"unicode/1f1f1-1f1fa.png?v8",lying_face:"unicode/1f925.png?v8",m:"unicode/24c2.png?v8",macau:"unicode/1f1f2-1f1f4.png?v8",macedonia:"unicode/1f1f2-1f1f0.png?v8",madagascar:"unicode/1f1f2-1f1ec.png?v8",mag:"unicode/1f50d.png?v8",mag_right:"unicode/1f50e.png?v8",mage:"unicode/1f9d9.png?v8",mage_man:"unicode/1f9d9-2642.png?v8",mage_woman:"unicode/1f9d9-2640.png?v8",magic_wand:"unicode/1fa84.png?v8",magnet:"unicode/1f9f2.png?v8",mahjong:"unicode/1f004.png?v8",mailbox:"unicode/1f4eb.png?v8",mailbox_closed:"unicode/1f4ea.png?v8",mailbox_with_mail:"unicode/1f4ec.png?v8",mailbox_with_no_mail:"unicode/1f4ed.png?v8",malawi:"unicode/1f1f2-1f1fc.png?v8",malaysia:"unicode/1f1f2-1f1fe.png?v8",maldives:"unicode/1f1f2-1f1fb.png?v8",male_detective:"unicode/1f575-2642.png?v8",male_sign:"unicode/2642.png?v8",mali:"unicode/1f1f2-1f1f1.png?v8",malta:"unicode/1f1f2-1f1f9.png?v8",mammoth:"unicode/1f9a3.png?v8",man:"unicode/1f468.png?v8",man_artist:"unicode/1f468-1f3a8.png?v8",man_astronaut:"unicode/1f468-1f680.png?v8",man_beard:"unicode/1f9d4-2642.png?v8",man_cartwheeling:"unicode/1f938-2642.png?v8",man_cook:"unicode/1f468-1f373.png?v8",man_dancing:"unicode/1f57a.png?v8",man_facepalming:"unicode/1f926-2642.png?v8",man_factory_worker:"unicode/1f468-1f3ed.png?v8",man_farmer:"unicode/1f468-1f33e.png?v8",man_feeding_baby:"unicode/1f468-1f37c.png?v8",man_firefighter:"unicode/1f468-1f692.png?v8",man_health_worker:"unicode/1f468-2695.png?v8",man_in_manual_wheelchair:"unicode/1f468-1f9bd.png?v8",man_in_motorized_wheelchair:"unicode/1f468-1f9bc.png?v8",man_in_tuxedo:"unicode/1f935-2642.png?v8",man_judge:"unicode/1f468-2696.png?v8",man_juggling:"unicode/1f939-2642.png?v8",man_mechanic:"unicode/1f468-1f527.png?v8",man_office_worker:"unicode/1f468-1f4bc.png?v8",man_pilot:"unicode/1f468-2708.png?v8",man_playing_handball:"unicode/1f93e-2642.png?v8",man_playing_water_polo:"unicode/1f93d-2642.png?v8",man_scientist:"unicode/1f468-1f52c.png?v8",man_shrugging:"unicode/1f937-2642.png?v8",man_singer:"unicode/1f468-1f3a4.png?v8",man_student:"unicode/1f468-1f393.png?v8",man_teacher:"unicode/1f468-1f3eb.png?v8",man_technologist:"unicode/1f468-1f4bb.png?v8",man_with_gua_pi_mao:"unicode/1f472.png?v8",man_with_probing_cane:"unicode/1f468-1f9af.png?v8",man_with_turban:"unicode/1f473-2642.png?v8",man_with_veil:"unicode/1f470-2642.png?v8",mandarin:"unicode/1f34a.png?v8",mango:"unicode/1f96d.png?v8",mans_shoe:"unicode/1f45e.png?v8",mantelpiece_clock:"unicode/1f570.png?v8",manual_wheelchair:"unicode/1f9bd.png?v8",maple_leaf:"unicode/1f341.png?v8",marshall_islands:"unicode/1f1f2-1f1ed.png?v8",martial_arts_uniform:"unicode/1f94b.png?v8",martinique:"unicode/1f1f2-1f1f6.png?v8",mask:"unicode/1f637.png?v8",massage:"unicode/1f486.png?v8",massage_man:"unicode/1f486-2642.png?v8",massage_woman:"unicode/1f486-2640.png?v8",mate:"unicode/1f9c9.png?v8",mauritania:"unicode/1f1f2-1f1f7.png?v8",mauritius:"unicode/1f1f2-1f1fa.png?v8",mayotte:"unicode/1f1fe-1f1f9.png?v8",meat_on_bone:"unicode/1f356.png?v8",mechanic:"unicode/1f9d1-1f527.png?v8",mechanical_arm:"unicode/1f9be.png?v8",mechanical_leg:"unicode/1f9bf.png?v8",medal_military:"unicode/1f396.png?v8",medal_sports:"unicode/1f3c5.png?v8",medical_symbol:"unicode/2695.png?v8",mega:"unicode/1f4e3.png?v8",melon:"unicode/1f348.png?v8",memo:"unicode/1f4dd.png?v8",men_wrestling:"unicode/1f93c-2642.png?v8",mending_heart:"unicode/2764-1fa79.png?v8",menorah:"unicode/1f54e.png?v8",mens:"unicode/1f6b9.png?v8",mermaid:"unicode/1f9dc-2640.png?v8",merman:"unicode/1f9dc-2642.png?v8",merperson:"unicode/1f9dc.png?v8",metal:"unicode/1f918.png?v8",metro:"unicode/1f687.png?v8",mexico:"unicode/1f1f2-1f1fd.png?v8",microbe:"unicode/1f9a0.png?v8",micronesia:"unicode/1f1eb-1f1f2.png?v8",microphone:"unicode/1f3a4.png?v8",microscope:"unicode/1f52c.png?v8",middle_finger:"unicode/1f595.png?v8",military_helmet:"unicode/1fa96.png?v8",milk_glass:"unicode/1f95b.png?v8",milky_way:"unicode/1f30c.png?v8",minibus:"unicode/1f690.png?v8",minidisc:"unicode/1f4bd.png?v8",mirror:"unicode/1fa9e.png?v8",mobile_phone_off:"unicode/1f4f4.png?v8",moldova:"unicode/1f1f2-1f1e9.png?v8",monaco:"unicode/1f1f2-1f1e8.png?v8",money_mouth_face:"unicode/1f911.png?v8",money_with_wings:"unicode/1f4b8.png?v8",moneybag:"unicode/1f4b0.png?v8",mongolia:"unicode/1f1f2-1f1f3.png?v8",monkey:"unicode/1f412.png?v8",monkey_face:"unicode/1f435.png?v8",monocle_face:"unicode/1f9d0.png?v8",monorail:"unicode/1f69d.png?v8",montenegro:"unicode/1f1f2-1f1ea.png?v8",montserrat:"unicode/1f1f2-1f1f8.png?v8",moon:"unicode/1f314.png?v8",moon_cake:"unicode/1f96e.png?v8",morocco:"unicode/1f1f2-1f1e6.png?v8",mortar_board:"unicode/1f393.png?v8",mosque:"unicode/1f54c.png?v8",mosquito:"unicode/1f99f.png?v8",motor_boat:"unicode/1f6e5.png?v8",motor_scooter:"unicode/1f6f5.png?v8",motorcycle:"unicode/1f3cd.png?v8",motorized_wheelchair:"unicode/1f9bc.png?v8",motorway:"unicode/1f6e3.png?v8",mount_fuji:"unicode/1f5fb.png?v8",mountain:"unicode/26f0.png?v8",mountain_bicyclist:"unicode/1f6b5.png?v8",mountain_biking_man:"unicode/1f6b5-2642.png?v8",mountain_biking_woman:"unicode/1f6b5-2640.png?v8",mountain_cableway:"unicode/1f6a0.png?v8",mountain_railway:"unicode/1f69e.png?v8",mountain_snow:"unicode/1f3d4.png?v8",mouse:"unicode/1f42d.png?v8",mouse2:"unicode/1f401.png?v8",mouse_trap:"unicode/1faa4.png?v8",movie_camera:"unicode/1f3a5.png?v8",moyai:"unicode/1f5ff.png?v8",mozambique:"unicode/1f1f2-1f1ff.png?v8",mrs_claus:"unicode/1f936.png?v8",muscle:"unicode/1f4aa.png?v8",mushroom:"unicode/1f344.png?v8",musical_keyboard:"unicode/1f3b9.png?v8",musical_note:"unicode/1f3b5.png?v8",musical_score:"unicode/1f3bc.png?v8",mute:"unicode/1f507.png?v8",mx_claus:"unicode/1f9d1-1f384.png?v8",myanmar:"unicode/1f1f2-1f1f2.png?v8",nail_care:"unicode/1f485.png?v8",name_badge:"unicode/1f4db.png?v8",namibia:"unicode/1f1f3-1f1e6.png?v8",national_park:"unicode/1f3de.png?v8",nauru:"unicode/1f1f3-1f1f7.png?v8",nauseated_face:"unicode/1f922.png?v8",nazar_amulet:"unicode/1f9ff.png?v8",neckbeard:"neckbeard.png?v8",necktie:"unicode/1f454.png?v8",negative_squared_cross_mark:"unicode/274e.png?v8",nepal:"unicode/1f1f3-1f1f5.png?v8",nerd_face:"unicode/1f913.png?v8",nesting_dolls:"unicode/1fa86.png?v8",netherlands:"unicode/1f1f3-1f1f1.png?v8",neutral_face:"unicode/1f610.png?v8",new:"unicode/1f195.png?v8",new_caledonia:"unicode/1f1f3-1f1e8.png?v8",new_moon:"unicode/1f311.png?v8",new_moon_with_face:"unicode/1f31a.png?v8",new_zealand:"unicode/1f1f3-1f1ff.png?v8",newspaper:"unicode/1f4f0.png?v8",newspaper_roll:"unicode/1f5de.png?v8",next_track_button:"unicode/23ed.png?v8",ng:"unicode/1f196.png?v8",ng_man:"unicode/1f645-2642.png?v8",ng_woman:"unicode/1f645-2640.png?v8",nicaragua:"unicode/1f1f3-1f1ee.png?v8",niger:"unicode/1f1f3-1f1ea.png?v8",nigeria:"unicode/1f1f3-1f1ec.png?v8",night_with_stars:"unicode/1f303.png?v8",nine:"unicode/0039-20e3.png?v8",ninja:"unicode/1f977.png?v8",niue:"unicode/1f1f3-1f1fa.png?v8",no_bell:"unicode/1f515.png?v8",no_bicycles:"unicode/1f6b3.png?v8",no_entry:"unicode/26d4.png?v8",no_entry_sign:"unicode/1f6ab.png?v8",no_good:"unicode/1f645.png?v8",no_good_man:"unicode/1f645-2642.png?v8",no_good_woman:"unicode/1f645-2640.png?v8",no_mobile_phones:"unicode/1f4f5.png?v8",no_mouth:"unicode/1f636.png?v8",no_pedestrians:"unicode/1f6b7.png?v8",no_smoking:"unicode/1f6ad.png?v8","non-potable_water":"unicode/1f6b1.png?v8",norfolk_island:"unicode/1f1f3-1f1eb.png?v8",north_korea:"unicode/1f1f0-1f1f5.png?v8",northern_mariana_islands:"unicode/1f1f2-1f1f5.png?v8",norway:"unicode/1f1f3-1f1f4.png?v8",nose:"unicode/1f443.png?v8",notebook:"unicode/1f4d3.png?v8",notebook_with_decorative_cover:"unicode/1f4d4.png?v8",notes:"unicode/1f3b6.png?v8",nut_and_bolt:"unicode/1f529.png?v8",o:"unicode/2b55.png?v8",o2:"unicode/1f17e.png?v8",ocean:"unicode/1f30a.png?v8",octocat:"octocat.png?v8",octopus:"unicode/1f419.png?v8",oden:"unicode/1f362.png?v8",office:"unicode/1f3e2.png?v8",office_worker:"unicode/1f9d1-1f4bc.png?v8",oil_drum:"unicode/1f6e2.png?v8",ok:"unicode/1f197.png?v8",ok_hand:"unicode/1f44c.png?v8",ok_man:"unicode/1f646-2642.png?v8",ok_person:"unicode/1f646.png?v8",ok_woman:"unicode/1f646-2640.png?v8",old_key:"unicode/1f5dd.png?v8",older_adult:"unicode/1f9d3.png?v8",older_man:"unicode/1f474.png?v8",older_woman:"unicode/1f475.png?v8",olive:"unicode/1fad2.png?v8",om:"unicode/1f549.png?v8",oman:"unicode/1f1f4-1f1f2.png?v8",on:"unicode/1f51b.png?v8",oncoming_automobile:"unicode/1f698.png?v8",oncoming_bus:"unicode/1f68d.png?v8",oncoming_police_car:"unicode/1f694.png?v8",oncoming_taxi:"unicode/1f696.png?v8",one:"unicode/0031-20e3.png?v8",one_piece_swimsuit:"unicode/1fa71.png?v8",onion:"unicode/1f9c5.png?v8",open_book:"unicode/1f4d6.png?v8",open_file_folder:"unicode/1f4c2.png?v8",open_hands:"unicode/1f450.png?v8",open_mouth:"unicode/1f62e.png?v8",open_umbrella:"unicode/2602.png?v8",ophiuchus:"unicode/26ce.png?v8",orange:"unicode/1f34a.png?v8",orange_book:"unicode/1f4d9.png?v8",orange_circle:"unicode/1f7e0.png?v8",orange_heart:"unicode/1f9e1.png?v8",orange_square:"unicode/1f7e7.png?v8",orangutan:"unicode/1f9a7.png?v8",orthodox_cross:"unicode/2626.png?v8",otter:"unicode/1f9a6.png?v8",outbox_tray:"unicode/1f4e4.png?v8",owl:"unicode/1f989.png?v8",ox:"unicode/1f402.png?v8",oyster:"unicode/1f9aa.png?v8",package:"unicode/1f4e6.png?v8",page_facing_up:"unicode/1f4c4.png?v8",page_with_curl:"unicode/1f4c3.png?v8",pager:"unicode/1f4df.png?v8",paintbrush:"unicode/1f58c.png?v8",pakistan:"unicode/1f1f5-1f1f0.png?v8",palau:"unicode/1f1f5-1f1fc.png?v8",palestinian_territories:"unicode/1f1f5-1f1f8.png?v8",palm_tree:"unicode/1f334.png?v8",palms_up_together:"unicode/1f932.png?v8",panama:"unicode/1f1f5-1f1e6.png?v8",pancakes:"unicode/1f95e.png?v8",panda_face:"unicode/1f43c.png?v8",paperclip:"unicode/1f4ce.png?v8",paperclips:"unicode/1f587.png?v8",papua_new_guinea:"unicode/1f1f5-1f1ec.png?v8",parachute:"unicode/1fa82.png?v8",paraguay:"unicode/1f1f5-1f1fe.png?v8",parasol_on_ground:"unicode/26f1.png?v8",parking:"unicode/1f17f.png?v8",parrot:"unicode/1f99c.png?v8",part_alternation_mark:"unicode/303d.png?v8",partly_sunny:"unicode/26c5.png?v8",partying_face:"unicode/1f973.png?v8",passenger_ship:"unicode/1f6f3.png?v8",passport_control:"unicode/1f6c2.png?v8",pause_button:"unicode/23f8.png?v8",paw_prints:"unicode/1f43e.png?v8",peace_symbol:"unicode/262e.png?v8",peach:"unicode/1f351.png?v8",peacock:"unicode/1f99a.png?v8",peanuts:"unicode/1f95c.png?v8",pear:"unicode/1f350.png?v8",pen:"unicode/1f58a.png?v8",pencil:"unicode/1f4dd.png?v8",pencil2:"unicode/270f.png?v8",penguin:"unicode/1f427.png?v8",pensive:"unicode/1f614.png?v8",people_holding_hands:"unicode/1f9d1-1f91d-1f9d1.png?v8",people_hugging:"unicode/1fac2.png?v8",performing_arts:"unicode/1f3ad.png?v8",persevere:"unicode/1f623.png?v8",person_bald:"unicode/1f9d1-1f9b2.png?v8",person_curly_hair:"unicode/1f9d1-1f9b1.png?v8",person_feeding_baby:"unicode/1f9d1-1f37c.png?v8",person_fencing:"unicode/1f93a.png?v8",person_in_manual_wheelchair:"unicode/1f9d1-1f9bd.png?v8",person_in_motorized_wheelchair:"unicode/1f9d1-1f9bc.png?v8",person_in_tuxedo:"unicode/1f935.png?v8",person_red_hair:"unicode/1f9d1-1f9b0.png?v8",person_white_hair:"unicode/1f9d1-1f9b3.png?v8",person_with_probing_cane:"unicode/1f9d1-1f9af.png?v8",person_with_turban:"unicode/1f473.png?v8",person_with_veil:"unicode/1f470.png?v8",peru:"unicode/1f1f5-1f1ea.png?v8",petri_dish:"unicode/1f9eb.png?v8",philippines:"unicode/1f1f5-1f1ed.png?v8",phone:"unicode/260e.png?v8",pick:"unicode/26cf.png?v8",pickup_truck:"unicode/1f6fb.png?v8",pie:"unicode/1f967.png?v8",pig:"unicode/1f437.png?v8",pig2:"unicode/1f416.png?v8",pig_nose:"unicode/1f43d.png?v8",pill:"unicode/1f48a.png?v8",pilot:"unicode/1f9d1-2708.png?v8",pinata:"unicode/1fa85.png?v8",pinched_fingers:"unicode/1f90c.png?v8",pinching_hand:"unicode/1f90f.png?v8",pineapple:"unicode/1f34d.png?v8",ping_pong:"unicode/1f3d3.png?v8",pirate_flag:"unicode/1f3f4-2620.png?v8",pisces:"unicode/2653.png?v8",pitcairn_islands:"unicode/1f1f5-1f1f3.png?v8",pizza:"unicode/1f355.png?v8",placard:"unicode/1faa7.png?v8",place_of_worship:"unicode/1f6d0.png?v8",plate_with_cutlery:"unicode/1f37d.png?v8",play_or_pause_button:"unicode/23ef.png?v8",pleading_face:"unicode/1f97a.png?v8",plunger:"unicode/1faa0.png?v8",point_down:"unicode/1f447.png?v8",point_left:"unicode/1f448.png?v8",point_right:"unicode/1f449.png?v8",point_up:"unicode/261d.png?v8",point_up_2:"unicode/1f446.png?v8",poland:"unicode/1f1f5-1f1f1.png?v8",polar_bear:"unicode/1f43b-2744.png?v8",police_car:"unicode/1f693.png?v8",police_officer:"unicode/1f46e.png?v8",policeman:"unicode/1f46e-2642.png?v8",policewoman:"unicode/1f46e-2640.png?v8",poodle:"unicode/1f429.png?v8",poop:"unicode/1f4a9.png?v8",popcorn:"unicode/1f37f.png?v8",portugal:"unicode/1f1f5-1f1f9.png?v8",post_office:"unicode/1f3e3.png?v8",postal_horn:"unicode/1f4ef.png?v8",postbox:"unicode/1f4ee.png?v8",potable_water:"unicode/1f6b0.png?v8",potato:"unicode/1f954.png?v8",potted_plant:"unicode/1fab4.png?v8",pouch:"unicode/1f45d.png?v8",poultry_leg:"unicode/1f357.png?v8",pound:"unicode/1f4b7.png?v8",pout:"unicode/1f621.png?v8",pouting_cat:"unicode/1f63e.png?v8",pouting_face:"unicode/1f64e.png?v8",pouting_man:"unicode/1f64e-2642.png?v8",pouting_woman:"unicode/1f64e-2640.png?v8",pray:"unicode/1f64f.png?v8",prayer_beads:"unicode/1f4ff.png?v8",pregnant_woman:"unicode/1f930.png?v8",pretzel:"unicode/1f968.png?v8",previous_track_button:"unicode/23ee.png?v8",prince:"unicode/1f934.png?v8",princess:"unicode/1f478.png?v8",printer:"unicode/1f5a8.png?v8",probing_cane:"unicode/1f9af.png?v8",puerto_rico:"unicode/1f1f5-1f1f7.png?v8",punch:"unicode/1f44a.png?v8",purple_circle:"unicode/1f7e3.png?v8",purple_heart:"unicode/1f49c.png?v8",purple_square:"unicode/1f7ea.png?v8",purse:"unicode/1f45b.png?v8",pushpin:"unicode/1f4cc.png?v8",put_litter_in_its_place:"unicode/1f6ae.png?v8",qatar:"unicode/1f1f6-1f1e6.png?v8",question:"unicode/2753.png?v8",rabbit:"unicode/1f430.png?v8",rabbit2:"unicode/1f407.png?v8",raccoon:"unicode/1f99d.png?v8",racehorse:"unicode/1f40e.png?v8",racing_car:"unicode/1f3ce.png?v8",radio:"unicode/1f4fb.png?v8",radio_button:"unicode/1f518.png?v8",radioactive:"unicode/2622.png?v8",rage:"unicode/1f621.png?v8",rage1:"rage1.png?v8",rage2:"rage2.png?v8",rage3:"rage3.png?v8",rage4:"rage4.png?v8",railway_car:"unicode/1f683.png?v8",railway_track:"unicode/1f6e4.png?v8",rainbow:"unicode/1f308.png?v8",rainbow_flag:"unicode/1f3f3-1f308.png?v8",raised_back_of_hand:"unicode/1f91a.png?v8",raised_eyebrow:"unicode/1f928.png?v8",raised_hand:"unicode/270b.png?v8",raised_hand_with_fingers_splayed:"unicode/1f590.png?v8",raised_hands:"unicode/1f64c.png?v8",raising_hand:"unicode/1f64b.png?v8",raising_hand_man:"unicode/1f64b-2642.png?v8",raising_hand_woman:"unicode/1f64b-2640.png?v8",ram:"unicode/1f40f.png?v8",ramen:"unicode/1f35c.png?v8",rat:"unicode/1f400.png?v8",razor:"unicode/1fa92.png?v8",receipt:"unicode/1f9fe.png?v8",record_button:"unicode/23fa.png?v8",recycle:"unicode/267b.png?v8",red_car:"unicode/1f697.png?v8",red_circle:"unicode/1f534.png?v8",red_envelope:"unicode/1f9e7.png?v8",red_haired_man:"unicode/1f468-1f9b0.png?v8",red_haired_woman:"unicode/1f469-1f9b0.png?v8",red_square:"unicode/1f7e5.png?v8",registered:"unicode/00ae.png?v8",relaxed:"unicode/263a.png?v8",relieved:"unicode/1f60c.png?v8",reminder_ribbon:"unicode/1f397.png?v8",repeat:"unicode/1f501.png?v8",repeat_one:"unicode/1f502.png?v8",rescue_worker_helmet:"unicode/26d1.png?v8",restroom:"unicode/1f6bb.png?v8",reunion:"unicode/1f1f7-1f1ea.png?v8",revolving_hearts:"unicode/1f49e.png?v8",rewind:"unicode/23ea.png?v8",rhinoceros:"unicode/1f98f.png?v8",ribbon:"unicode/1f380.png?v8",rice:"unicode/1f35a.png?v8",rice_ball:"unicode/1f359.png?v8",rice_cracker:"unicode/1f358.png?v8",rice_scene:"unicode/1f391.png?v8",right_anger_bubble:"unicode/1f5ef.png?v8",ring:"unicode/1f48d.png?v8",ringed_planet:"unicode/1fa90.png?v8",robot:"unicode/1f916.png?v8",rock:"unicode/1faa8.png?v8",rocket:"unicode/1f680.png?v8",rofl:"unicode/1f923.png?v8",roll_eyes:"unicode/1f644.png?v8",roll_of_paper:"unicode/1f9fb.png?v8",roller_coaster:"unicode/1f3a2.png?v8",roller_skate:"unicode/1f6fc.png?v8",romania:"unicode/1f1f7-1f1f4.png?v8",rooster:"unicode/1f413.png?v8",rose:"unicode/1f339.png?v8",rosette:"unicode/1f3f5.png?v8",rotating_light:"unicode/1f6a8.png?v8",round_pushpin:"unicode/1f4cd.png?v8",rowboat:"unicode/1f6a3.png?v8",rowing_man:"unicode/1f6a3-2642.png?v8",rowing_woman:"unicode/1f6a3-2640.png?v8",ru:"unicode/1f1f7-1f1fa.png?v8",rugby_football:"unicode/1f3c9.png?v8",runner:"unicode/1f3c3.png?v8",running:"unicode/1f3c3.png?v8",running_man:"unicode/1f3c3-2642.png?v8",running_shirt_with_sash:"unicode/1f3bd.png?v8",running_woman:"unicode/1f3c3-2640.png?v8",rwanda:"unicode/1f1f7-1f1fc.png?v8",sa:"unicode/1f202.png?v8",safety_pin:"unicode/1f9f7.png?v8",safety_vest:"unicode/1f9ba.png?v8",sagittarius:"unicode/2650.png?v8",sailboat:"unicode/26f5.png?v8",sake:"unicode/1f376.png?v8",salt:"unicode/1f9c2.png?v8",samoa:"unicode/1f1fc-1f1f8.png?v8",san_marino:"unicode/1f1f8-1f1f2.png?v8",sandal:"unicode/1f461.png?v8",sandwich:"unicode/1f96a.png?v8",santa:"unicode/1f385.png?v8",sao_tome_principe:"unicode/1f1f8-1f1f9.png?v8",sari:"unicode/1f97b.png?v8",sassy_man:"unicode/1f481-2642.png?v8",sassy_woman:"unicode/1f481-2640.png?v8",satellite:"unicode/1f4e1.png?v8",satisfied:"unicode/1f606.png?v8",saudi_arabia:"unicode/1f1f8-1f1e6.png?v8",sauna_man:"unicode/1f9d6-2642.png?v8",sauna_person:"unicode/1f9d6.png?v8",sauna_woman:"unicode/1f9d6-2640.png?v8",sauropod:"unicode/1f995.png?v8",saxophone:"unicode/1f3b7.png?v8",scarf:"unicode/1f9e3.png?v8",school:"unicode/1f3eb.png?v8",school_satchel:"unicode/1f392.png?v8",scientist:"unicode/1f9d1-1f52c.png?v8",scissors:"unicode/2702.png?v8",scorpion:"unicode/1f982.png?v8",scorpius:"unicode/264f.png?v8",scotland:"unicode/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.png?v8",scream:"unicode/1f631.png?v8",scream_cat:"unicode/1f640.png?v8",screwdriver:"unicode/1fa9b.png?v8",scroll:"unicode/1f4dc.png?v8",seal:"unicode/1f9ad.png?v8",seat:"unicode/1f4ba.png?v8",secret:"unicode/3299.png?v8",see_no_evil:"unicode/1f648.png?v8",seedling:"unicode/1f331.png?v8",selfie:"unicode/1f933.png?v8",senegal:"unicode/1f1f8-1f1f3.png?v8",serbia:"unicode/1f1f7-1f1f8.png?v8",service_dog:"unicode/1f415-1f9ba.png?v8",seven:"unicode/0037-20e3.png?v8",sewing_needle:"unicode/1faa1.png?v8",seychelles:"unicode/1f1f8-1f1e8.png?v8",shallow_pan_of_food:"unicode/1f958.png?v8",shamrock:"unicode/2618.png?v8",shark:"unicode/1f988.png?v8",shaved_ice:"unicode/1f367.png?v8",sheep:"unicode/1f411.png?v8",shell:"unicode/1f41a.png?v8",shield:"unicode/1f6e1.png?v8",shinto_shrine:"unicode/26e9.png?v8",ship:"unicode/1f6a2.png?v8",shipit:"shipit.png?v8",shirt:"unicode/1f455.png?v8",shit:"unicode/1f4a9.png?v8",shoe:"unicode/1f45e.png?v8",shopping:"unicode/1f6cd.png?v8",shopping_cart:"unicode/1f6d2.png?v8",shorts:"unicode/1fa73.png?v8",shower:"unicode/1f6bf.png?v8",shrimp:"unicode/1f990.png?v8",shrug:"unicode/1f937.png?v8",shushing_face:"unicode/1f92b.png?v8",sierra_leone:"unicode/1f1f8-1f1f1.png?v8",signal_strength:"unicode/1f4f6.png?v8",singapore:"unicode/1f1f8-1f1ec.png?v8",singer:"unicode/1f9d1-1f3a4.png?v8",sint_maarten:"unicode/1f1f8-1f1fd.png?v8",six:"unicode/0036-20e3.png?v8",six_pointed_star:"unicode/1f52f.png?v8",skateboard:"unicode/1f6f9.png?v8",ski:"unicode/1f3bf.png?v8",skier:"unicode/26f7.png?v8",skull:"unicode/1f480.png?v8",skull_and_crossbones:"unicode/2620.png?v8",skunk:"unicode/1f9a8.png?v8",sled:"unicode/1f6f7.png?v8",sleeping:"unicode/1f634.png?v8",sleeping_bed:"unicode/1f6cc.png?v8",sleepy:"unicode/1f62a.png?v8",slightly_frowning_face:"unicode/1f641.png?v8",slightly_smiling_face:"unicode/1f642.png?v8",slot_machine:"unicode/1f3b0.png?v8",sloth:"unicode/1f9a5.png?v8",slovakia:"unicode/1f1f8-1f1f0.png?v8",slovenia:"unicode/1f1f8-1f1ee.png?v8",small_airplane:"unicode/1f6e9.png?v8",small_blue_diamond:"unicode/1f539.png?v8",small_orange_diamond:"unicode/1f538.png?v8",small_red_triangle:"unicode/1f53a.png?v8",small_red_triangle_down:"unicode/1f53b.png?v8",smile:"unicode/1f604.png?v8",smile_cat:"unicode/1f638.png?v8",smiley:"unicode/1f603.png?v8",smiley_cat:"unicode/1f63a.png?v8",smiling_face_with_tear:"unicode/1f972.png?v8",smiling_face_with_three_hearts:"unicode/1f970.png?v8",smiling_imp:"unicode/1f608.png?v8",smirk:"unicode/1f60f.png?v8",smirk_cat:"unicode/1f63c.png?v8",smoking:"unicode/1f6ac.png?v8",snail:"unicode/1f40c.png?v8",snake:"unicode/1f40d.png?v8",sneezing_face:"unicode/1f927.png?v8",snowboarder:"unicode/1f3c2.png?v8",snowflake:"unicode/2744.png?v8",snowman:"unicode/26c4.png?v8",snowman_with_snow:"unicode/2603.png?v8",soap:"unicode/1f9fc.png?v8",sob:"unicode/1f62d.png?v8",soccer:"unicode/26bd.png?v8",socks:"unicode/1f9e6.png?v8",softball:"unicode/1f94e.png?v8",solomon_islands:"unicode/1f1f8-1f1e7.png?v8",somalia:"unicode/1f1f8-1f1f4.png?v8",soon:"unicode/1f51c.png?v8",sos:"unicode/1f198.png?v8",sound:"unicode/1f509.png?v8",south_africa:"unicode/1f1ff-1f1e6.png?v8",south_georgia_south_sandwich_islands:"unicode/1f1ec-1f1f8.png?v8",south_sudan:"unicode/1f1f8-1f1f8.png?v8",space_invader:"unicode/1f47e.png?v8",spades:"unicode/2660.png?v8",spaghetti:"unicode/1f35d.png?v8",sparkle:"unicode/2747.png?v8",sparkler:"unicode/1f387.png?v8",sparkles:"unicode/2728.png?v8",sparkling_heart:"unicode/1f496.png?v8",speak_no_evil:"unicode/1f64a.png?v8",speaker:"unicode/1f508.png?v8",speaking_head:"unicode/1f5e3.png?v8",speech_balloon:"unicode/1f4ac.png?v8",speedboat:"unicode/1f6a4.png?v8",spider:"unicode/1f577.png?v8",spider_web:"unicode/1f578.png?v8",spiral_calendar:"unicode/1f5d3.png?v8",spiral_notepad:"unicode/1f5d2.png?v8",sponge:"unicode/1f9fd.png?v8",spoon:"unicode/1f944.png?v8",squid:"unicode/1f991.png?v8",sri_lanka:"unicode/1f1f1-1f1f0.png?v8",st_barthelemy:"unicode/1f1e7-1f1f1.png?v8",st_helena:"unicode/1f1f8-1f1ed.png?v8",st_kitts_nevis:"unicode/1f1f0-1f1f3.png?v8",st_lucia:"unicode/1f1f1-1f1e8.png?v8",st_martin:"unicode/1f1f2-1f1eb.png?v8",st_pierre_miquelon:"unicode/1f1f5-1f1f2.png?v8",st_vincent_grenadines:"unicode/1f1fb-1f1e8.png?v8",stadium:"unicode/1f3df.png?v8",standing_man:"unicode/1f9cd-2642.png?v8",standing_person:"unicode/1f9cd.png?v8",standing_woman:"unicode/1f9cd-2640.png?v8",star:"unicode/2b50.png?v8",star2:"unicode/1f31f.png?v8",star_and_crescent:"unicode/262a.png?v8",star_of_david:"unicode/2721.png?v8",star_struck:"unicode/1f929.png?v8",stars:"unicode/1f320.png?v8",station:"unicode/1f689.png?v8",statue_of_liberty:"unicode/1f5fd.png?v8",steam_locomotive:"unicode/1f682.png?v8",stethoscope:"unicode/1fa7a.png?v8",stew:"unicode/1f372.png?v8",stop_button:"unicode/23f9.png?v8",stop_sign:"unicode/1f6d1.png?v8",stopwatch:"unicode/23f1.png?v8",straight_ruler:"unicode/1f4cf.png?v8",strawberry:"unicode/1f353.png?v8",stuck_out_tongue:"unicode/1f61b.png?v8",stuck_out_tongue_closed_eyes:"unicode/1f61d.png?v8",stuck_out_tongue_winking_eye:"unicode/1f61c.png?v8",student:"unicode/1f9d1-1f393.png?v8",studio_microphone:"unicode/1f399.png?v8",stuffed_flatbread:"unicode/1f959.png?v8",sudan:"unicode/1f1f8-1f1e9.png?v8",sun_behind_large_cloud:"unicode/1f325.png?v8",sun_behind_rain_cloud:"unicode/1f326.png?v8",sun_behind_small_cloud:"unicode/1f324.png?v8",sun_with_face:"unicode/1f31e.png?v8",sunflower:"unicode/1f33b.png?v8",sunglasses:"unicode/1f60e.png?v8",sunny:"unicode/2600.png?v8",sunrise:"unicode/1f305.png?v8",sunrise_over_mountains:"unicode/1f304.png?v8",superhero:"unicode/1f9b8.png?v8",superhero_man:"unicode/1f9b8-2642.png?v8",superhero_woman:"unicode/1f9b8-2640.png?v8",supervillain:"unicode/1f9b9.png?v8",supervillain_man:"unicode/1f9b9-2642.png?v8",supervillain_woman:"unicode/1f9b9-2640.png?v8",surfer:"unicode/1f3c4.png?v8",surfing_man:"unicode/1f3c4-2642.png?v8",surfing_woman:"unicode/1f3c4-2640.png?v8",suriname:"unicode/1f1f8-1f1f7.png?v8",sushi:"unicode/1f363.png?v8",suspect:"suspect.png?v8",suspension_railway:"unicode/1f69f.png?v8",svalbard_jan_mayen:"unicode/1f1f8-1f1ef.png?v8",swan:"unicode/1f9a2.png?v8",swaziland:"unicode/1f1f8-1f1ff.png?v8",sweat:"unicode/1f613.png?v8",sweat_drops:"unicode/1f4a6.png?v8",sweat_smile:"unicode/1f605.png?v8",sweden:"unicode/1f1f8-1f1ea.png?v8",sweet_potato:"unicode/1f360.png?v8",swim_brief:"unicode/1fa72.png?v8",swimmer:"unicode/1f3ca.png?v8",swimming_man:"unicode/1f3ca-2642.png?v8",swimming_woman:"unicode/1f3ca-2640.png?v8",switzerland:"unicode/1f1e8-1f1ed.png?v8",symbols:"unicode/1f523.png?v8",synagogue:"unicode/1f54d.png?v8",syria:"unicode/1f1f8-1f1fe.png?v8",syringe:"unicode/1f489.png?v8","t-rex":"unicode/1f996.png?v8",taco:"unicode/1f32e.png?v8",tada:"unicode/1f389.png?v8",taiwan:"unicode/1f1f9-1f1fc.png?v8",tajikistan:"unicode/1f1f9-1f1ef.png?v8",takeout_box:"unicode/1f961.png?v8",tamale:"unicode/1fad4.png?v8",tanabata_tree:"unicode/1f38b.png?v8",tangerine:"unicode/1f34a.png?v8",tanzania:"unicode/1f1f9-1f1ff.png?v8",taurus:"unicode/2649.png?v8",taxi:"unicode/1f695.png?v8",tea:"unicode/1f375.png?v8",teacher:"unicode/1f9d1-1f3eb.png?v8",teapot:"unicode/1fad6.png?v8",technologist:"unicode/1f9d1-1f4bb.png?v8",teddy_bear:"unicode/1f9f8.png?v8",telephone:"unicode/260e.png?v8",telephone_receiver:"unicode/1f4de.png?v8",telescope:"unicode/1f52d.png?v8",tennis:"unicode/1f3be.png?v8",tent:"unicode/26fa.png?v8",test_tube:"unicode/1f9ea.png?v8",thailand:"unicode/1f1f9-1f1ed.png?v8",thermometer:"unicode/1f321.png?v8",thinking:"unicode/1f914.png?v8",thong_sandal:"unicode/1fa74.png?v8",thought_balloon:"unicode/1f4ad.png?v8",thread:"unicode/1f9f5.png?v8",three:"unicode/0033-20e3.png?v8",thumbsdown:"unicode/1f44e.png?v8",thumbsup:"unicode/1f44d.png?v8",ticket:"unicode/1f3ab.png?v8",tickets:"unicode/1f39f.png?v8",tiger:"unicode/1f42f.png?v8",tiger2:"unicode/1f405.png?v8",timer_clock:"unicode/23f2.png?v8",timor_leste:"unicode/1f1f9-1f1f1.png?v8",tipping_hand_man:"unicode/1f481-2642.png?v8",tipping_hand_person:"unicode/1f481.png?v8",tipping_hand_woman:"unicode/1f481-2640.png?v8",tired_face:"unicode/1f62b.png?v8",tm:"unicode/2122.png?v8",togo:"unicode/1f1f9-1f1ec.png?v8",toilet:"unicode/1f6bd.png?v8",tokelau:"unicode/1f1f9-1f1f0.png?v8",tokyo_tower:"unicode/1f5fc.png?v8",tomato:"unicode/1f345.png?v8",tonga:"unicode/1f1f9-1f1f4.png?v8",tongue:"unicode/1f445.png?v8",toolbox:"unicode/1f9f0.png?v8",tooth:"unicode/1f9b7.png?v8",toothbrush:"unicode/1faa5.png?v8",top:"unicode/1f51d.png?v8",tophat:"unicode/1f3a9.png?v8",tornado:"unicode/1f32a.png?v8",tr:"unicode/1f1f9-1f1f7.png?v8",trackball:"unicode/1f5b2.png?v8",tractor:"unicode/1f69c.png?v8",traffic_light:"unicode/1f6a5.png?v8",train:"unicode/1f68b.png?v8",train2:"unicode/1f686.png?v8",tram:"unicode/1f68a.png?v8",transgender_flag:"unicode/1f3f3-26a7.png?v8",transgender_symbol:"unicode/26a7.png?v8",triangular_flag_on_post:"unicode/1f6a9.png?v8",triangular_ruler:"unicode/1f4d0.png?v8",trident:"unicode/1f531.png?v8",trinidad_tobago:"unicode/1f1f9-1f1f9.png?v8",tristan_da_cunha:"unicode/1f1f9-1f1e6.png?v8",triumph:"unicode/1f624.png?v8",trolleybus:"unicode/1f68e.png?v8",trollface:"trollface.png?v8",trophy:"unicode/1f3c6.png?v8",tropical_drink:"unicode/1f379.png?v8",tropical_fish:"unicode/1f420.png?v8",truck:"unicode/1f69a.png?v8",trumpet:"unicode/1f3ba.png?v8",tshirt:"unicode/1f455.png?v8",tulip:"unicode/1f337.png?v8",tumbler_glass:"unicode/1f943.png?v8",tunisia:"unicode/1f1f9-1f1f3.png?v8",turkey:"unicode/1f983.png?v8",turkmenistan:"unicode/1f1f9-1f1f2.png?v8",turks_caicos_islands:"unicode/1f1f9-1f1e8.png?v8",turtle:"unicode/1f422.png?v8",tuvalu:"unicode/1f1f9-1f1fb.png?v8",tv:"unicode/1f4fa.png?v8",twisted_rightwards_arrows:"unicode/1f500.png?v8",two:"unicode/0032-20e3.png?v8",two_hearts:"unicode/1f495.png?v8",two_men_holding_hands:"unicode/1f46c.png?v8",two_women_holding_hands:"unicode/1f46d.png?v8",u5272:"unicode/1f239.png?v8",u5408:"unicode/1f234.png?v8",u55b6:"unicode/1f23a.png?v8",u6307:"unicode/1f22f.png?v8",u6708:"unicode/1f237.png?v8",u6709:"unicode/1f236.png?v8",u6e80:"unicode/1f235.png?v8",u7121:"unicode/1f21a.png?v8",u7533:"unicode/1f238.png?v8",u7981:"unicode/1f232.png?v8",u7a7a:"unicode/1f233.png?v8",uganda:"unicode/1f1fa-1f1ec.png?v8",uk:"unicode/1f1ec-1f1e7.png?v8",ukraine:"unicode/1f1fa-1f1e6.png?v8",umbrella:"unicode/2614.png?v8",unamused:"unicode/1f612.png?v8",underage:"unicode/1f51e.png?v8",unicorn:"unicode/1f984.png?v8",united_arab_emirates:"unicode/1f1e6-1f1ea.png?v8",united_nations:"unicode/1f1fa-1f1f3.png?v8",unlock:"unicode/1f513.png?v8",up:"unicode/1f199.png?v8",upside_down_face:"unicode/1f643.png?v8",uruguay:"unicode/1f1fa-1f1fe.png?v8",us:"unicode/1f1fa-1f1f8.png?v8",us_outlying_islands:"unicode/1f1fa-1f1f2.png?v8",us_virgin_islands:"unicode/1f1fb-1f1ee.png?v8",uzbekistan:"unicode/1f1fa-1f1ff.png?v8",v:"unicode/270c.png?v8",vampire:"unicode/1f9db.png?v8",vampire_man:"unicode/1f9db-2642.png?v8",vampire_woman:"unicode/1f9db-2640.png?v8",vanuatu:"unicode/1f1fb-1f1fa.png?v8",vatican_city:"unicode/1f1fb-1f1e6.png?v8",venezuela:"unicode/1f1fb-1f1ea.png?v8",vertical_traffic_light:"unicode/1f6a6.png?v8",vhs:"unicode/1f4fc.png?v8",vibration_mode:"unicode/1f4f3.png?v8",video_camera:"unicode/1f4f9.png?v8",video_game:"unicode/1f3ae.png?v8",vietnam:"unicode/1f1fb-1f1f3.png?v8",violin:"unicode/1f3bb.png?v8",virgo:"unicode/264d.png?v8",volcano:"unicode/1f30b.png?v8",volleyball:"unicode/1f3d0.png?v8",vomiting_face:"unicode/1f92e.png?v8",vs:"unicode/1f19a.png?v8",vulcan_salute:"unicode/1f596.png?v8",waffle:"unicode/1f9c7.png?v8",wales:"unicode/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.png?v8",walking:"unicode/1f6b6.png?v8",walking_man:"unicode/1f6b6-2642.png?v8",walking_woman:"unicode/1f6b6-2640.png?v8",wallis_futuna:"unicode/1f1fc-1f1eb.png?v8",waning_crescent_moon:"unicode/1f318.png?v8",waning_gibbous_moon:"unicode/1f316.png?v8",warning:"unicode/26a0.png?v8",wastebasket:"unicode/1f5d1.png?v8",watch:"unicode/231a.png?v8",water_buffalo:"unicode/1f403.png?v8",water_polo:"unicode/1f93d.png?v8",watermelon:"unicode/1f349.png?v8",wave:"unicode/1f44b.png?v8",wavy_dash:"unicode/3030.png?v8",waxing_crescent_moon:"unicode/1f312.png?v8",waxing_gibbous_moon:"unicode/1f314.png?v8",wc:"unicode/1f6be.png?v8",weary:"unicode/1f629.png?v8",wedding:"unicode/1f492.png?v8",weight_lifting:"unicode/1f3cb.png?v8",weight_lifting_man:"unicode/1f3cb-2642.png?v8",weight_lifting_woman:"unicode/1f3cb-2640.png?v8",western_sahara:"unicode/1f1ea-1f1ed.png?v8",whale:"unicode/1f433.png?v8",whale2:"unicode/1f40b.png?v8",wheel_of_dharma:"unicode/2638.png?v8",wheelchair:"unicode/267f.png?v8",white_check_mark:"unicode/2705.png?v8",white_circle:"unicode/26aa.png?v8",white_flag:"unicode/1f3f3.png?v8",white_flower:"unicode/1f4ae.png?v8",white_haired_man:"unicode/1f468-1f9b3.png?v8",white_haired_woman:"unicode/1f469-1f9b3.png?v8",white_heart:"unicode/1f90d.png?v8",white_large_square:"unicode/2b1c.png?v8",white_medium_small_square:"unicode/25fd.png?v8",white_medium_square:"unicode/25fb.png?v8",white_small_square:"unicode/25ab.png?v8",white_square_button:"unicode/1f533.png?v8",wilted_flower:"unicode/1f940.png?v8",wind_chime:"unicode/1f390.png?v8",wind_face:"unicode/1f32c.png?v8",window:"unicode/1fa9f.png?v8",wine_glass:"unicode/1f377.png?v8",wink:"unicode/1f609.png?v8",wolf:"unicode/1f43a.png?v8",woman:"unicode/1f469.png?v8",woman_artist:"unicode/1f469-1f3a8.png?v8",woman_astronaut:"unicode/1f469-1f680.png?v8",woman_beard:"unicode/1f9d4-2640.png?v8",woman_cartwheeling:"unicode/1f938-2640.png?v8",woman_cook:"unicode/1f469-1f373.png?v8",woman_dancing:"unicode/1f483.png?v8",woman_facepalming:"unicode/1f926-2640.png?v8",woman_factory_worker:"unicode/1f469-1f3ed.png?v8",woman_farmer:"unicode/1f469-1f33e.png?v8",woman_feeding_baby:"unicode/1f469-1f37c.png?v8",woman_firefighter:"unicode/1f469-1f692.png?v8",woman_health_worker:"unicode/1f469-2695.png?v8",woman_in_manual_wheelchair:"unicode/1f469-1f9bd.png?v8",woman_in_motorized_wheelchair:"unicode/1f469-1f9bc.png?v8",woman_in_tuxedo:"unicode/1f935-2640.png?v8",woman_judge:"unicode/1f469-2696.png?v8",woman_juggling:"unicode/1f939-2640.png?v8",woman_mechanic:"unicode/1f469-1f527.png?v8",woman_office_worker:"unicode/1f469-1f4bc.png?v8",woman_pilot:"unicode/1f469-2708.png?v8",woman_playing_handball:"unicode/1f93e-2640.png?v8",woman_playing_water_polo:"unicode/1f93d-2640.png?v8",woman_scientist:"unicode/1f469-1f52c.png?v8",woman_shrugging:"unicode/1f937-2640.png?v8",woman_singer:"unicode/1f469-1f3a4.png?v8",woman_student:"unicode/1f469-1f393.png?v8",woman_teacher:"unicode/1f469-1f3eb.png?v8",woman_technologist:"unicode/1f469-1f4bb.png?v8",woman_with_headscarf:"unicode/1f9d5.png?v8",woman_with_probing_cane:"unicode/1f469-1f9af.png?v8",woman_with_turban:"unicode/1f473-2640.png?v8",woman_with_veil:"unicode/1f470-2640.png?v8",womans_clothes:"unicode/1f45a.png?v8",womans_hat:"unicode/1f452.png?v8",women_wrestling:"unicode/1f93c-2640.png?v8",womens:"unicode/1f6ba.png?v8",wood:"unicode/1fab5.png?v8",woozy_face:"unicode/1f974.png?v8",world_map:"unicode/1f5fa.png?v8",worm:"unicode/1fab1.png?v8",worried:"unicode/1f61f.png?v8",wrench:"unicode/1f527.png?v8",wrestling:"unicode/1f93c.png?v8",writing_hand:"unicode/270d.png?v8",x:"unicode/274c.png?v8",yarn:"unicode/1f9f6.png?v8",yawning_face:"unicode/1f971.png?v8",yellow_circle:"unicode/1f7e1.png?v8",yellow_heart:"unicode/1f49b.png?v8",yellow_square:"unicode/1f7e8.png?v8",yemen:"unicode/1f1fe-1f1ea.png?v8",yen:"unicode/1f4b4.png?v8",yin_yang:"unicode/262f.png?v8",yo_yo:"unicode/1fa80.png?v8",yum:"unicode/1f60b.png?v8",zambia:"unicode/1f1ff-1f1f2.png?v8",zany_face:"unicode/1f92a.png?v8",zap:"unicode/26a1.png?v8",zebra:"unicode/1f993.png?v8",zero:"unicode/0030-20e3.png?v8",zimbabwe:"unicode/1f1ff-1f1fc.png?v8",zipper_mouth_face:"unicode/1f910.png?v8",zombie:"unicode/1f9df.png?v8",zombie_man:"unicode/1f9df-2642.png?v8",zombie_woman:"unicode/1f9df-2640.png?v8",zzz:"unicode/1f4a4.png?v8"};window&&window.console&&console.info("Docsify emoji plugin has been deprecated as of v4.13"),window.emojify=function(n,e){return!1===Object.prototype.hasOwnProperty.call(i,e)?n:''+e+''}}(); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js b/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js deleted file mode 100644 index f1659f1e..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/prism-bash.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var s=e.languages.extend("typescript",{});delete s["class-name"],e.languages.typescript["class-name"].inside=s,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),e.languages.ts=e.languages.typescript}(Prism); \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/static/static/js/search.min.js b/ruoyi-admin/src/main/resources/static/static/js/search.min.js deleted file mode 100644 index 9719f653..00000000 --- a/ruoyi-admin/src/main/resources/static/static/js/search.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function u(e){return e.replace(//,"").replace(/{docsify-ignore}/,"").replace(//,"").replace(/{docsify-ignore-all}/,"").trim()}var f={},m={EXPIRE_KEY:"docsify.search.expires",INDEX_KEY:"docsify.search.index"};function g(e){var n={"&":"&","<":"<",">":">",'"':""","'":"'"};return String(e).replace(/[&<>"']/g,function(e){return n[e]})}function y(e){return e.text||"table"!==e.type||(e.cells.unshift(e.header),e.text=e.cells.map(function(e){return e.join(" | ")}).join(" |\n ")),e.text}function v(e){return e.text||"list"!==e.type||(e.text=e.raw),e.text}function b(o,e,s,c){void 0===e&&(e="");var d,e=window.marked.lexer(e),l=window.Docsify.slugify,p={},h="";return e.forEach(function(e,n){var t,a,i,r;"heading"===e.type&&e.depth<=c?(t=(a=(i=e.text,r={},{str:i=(i=void 0===i?"":i)&&i.replace(/^('|")/,"").replace(/('|")$/,"").replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g,function(e,n,t){return-1===n.indexOf(":")?(r[n]=t&&t.replace(/"/g,"")||!0,""):e}).trim(),config:r})).str,i=a.config,a=u(e.text),d=i.id?s.toURL(o,{id:l(i.id)}):s.toURL(o,{id:l(g(a))}),t&&(h=u(t)),p[d]={slug:d,title:h,body:""}):(0===n&&(d=s.toURL(o),p[d]={slug:d,title:"/"!==o?o.slice(1):"Home Page",body:e.text||""}),d&&(p[d]?p[d].body?(e.text=y(e),e.text=v(e),p[d].body+="\n"+(e.text||"")):(e.text=y(e),e.text=v(e),p[d].body=e.text||""):p[d]={slug:d,title:"",body:""}))}),l.clear(),p}function p(e){return e&&e.normalize?e.normalize("NFD").replace(/[\u0300-\u036f]/g,""):e}function o(e){var n=[],t=[];Object.keys(f).forEach(function(n){t=t.concat(Object.keys(f[n]).map(function(e){return f[n][e]}))});var a=(e=e.trim()).split(/[\s\-,\\/]+/);1!==a.length&&(a=[].concat(e,a));for(var i=0;il.length&&(t=l.length),a=c&&"..."+c.substring(n,t).replace(a,function(e){return''+e+""})+"...",o+=a)}),0\n\n

    '+e.title+"

    \n

    "+e.content+"

    \n
    \n"}),t.classList.add("show"),a.classList.add("show"),t.innerHTML=r||'

    '+c+"

    ",s.hideOtherSidebarContent&&(i&&i.classList.add("hide"),n&&n.classList.add("hide"))}function l(e){s=e}function h(e,n){var t,a,i=n.router.parse().query.s;l(e),Docsify.dom.style("\n.sidebar {\n padding-top: 0;\n}\n\n.search {\n margin-bottom: 20px;\n padding: 6px;\n border-bottom: 1px solid #eee;\n}\n\n.search .input-wrap {\n display: flex;\n align-items: center;\n}\n\n.search .results-panel {\n display: none;\n}\n\n.search .results-panel.show {\n display: block;\n}\n\n.search input {\n outline: none;\n border: none;\n width: 100%;\n padding: 0.6em 7px;\n font-size: inherit;\n border: 1px solid transparent;\n}\n\n.search input:focus {\n box-shadow: 0 0 5px var(--theme-color, #42b983);\n border: 1px solid var(--theme-color, #42b983);\n}\n\n.search input::-webkit-search-decoration,\n.search input::-webkit-search-cancel-button,\n.search input {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.search input::-ms-clear {\n display: none;\n height: 0;\n width: 0;\n}\n\n.search .clear-button {\n cursor: pointer;\n width: 36px;\n text-align: right;\n display: none;\n}\n\n.search .clear-button.show {\n display: block;\n}\n\n.search .clear-button svg {\n transform: scale(.5);\n}\n\n.search h2 {\n font-size: 17px;\n margin: 10px 0;\n}\n\n.search a {\n text-decoration: none;\n color: inherit;\n}\n\n.search .matching-post {\n border-bottom: 1px solid #eee;\n}\n\n.search .matching-post:last-child {\n border-bottom: 0;\n}\n\n.search p {\n font-size: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.search p.empty {\n text-align: center;\n}\n\n.app-name.hide, .sidebar-nav.hide {\n display: none;\n}"),function(e){void 0===e&&(e="");var n=Docsify.dom.create("div",'
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n '),e=Docsify.dom.find("aside");Docsify.dom.toggleClass(n,"search"),Docsify.dom.before(e,n)}(i),n=Docsify.dom.find("div.search"),a=Docsify.dom.find(n,"input"),e=Docsify.dom.find(n,".input-wrap"),Docsify.dom.on(n,"click",function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()}),Docsify.dom.on(a,"input",function(n){clearTimeout(t),t=setTimeout(function(e){return d(n.target.value.trim())},100)}),Docsify.dom.on(e,"click",function(e){"INPUT"!==e.target.tagName&&(a.value="",d())}),i&&setTimeout(function(e){return d(i)},500)}function x(e,n){var t,a,i,r,o;l(e),t=e.placeholder,a=n.route.path,(r=Docsify.dom.getNode('.search input[type="search"]'))&&("string"==typeof t?r.placeholder=t:(i=Object.keys(t).filter(function(e){return-1u.scrollOffset&&setTimeout(a,150))}),window.addEventListener("resize",a);var f={open:i,close:a,toggle:o,update:function(){var e=0 com.squareup.okhttp3 okhttp + ${okhttp.version}
    com.squareup.okhttp3 okhttp-sse + ${okhttp.version} com.squareup.okhttp3 logging-interceptor + ${okhttp.version} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/RegexConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/RegexConstants.java new file mode 100644 index 00000000..0e9abd8a --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/RegexConstants.java @@ -0,0 +1,59 @@ +package org.ruoyi.common.core.constant; + +import cn.hutool.core.lang.RegexPool; + +/** + * 常用正则表达式字符串 + *

    + * 常用正则表达式集合,更多正则见: https://any86.github.io/any-rule/ + * + * @author Feng + */ +public interface RegexConstants extends RegexPool { + + /** + * 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线) + */ + String DICTIONARY_TYPE = "^[a-z][a-z0-9_]*$"; + + /** + * 权限标识必须符合以下格式: + * 1. 标准格式:xxx:yyy:zzz + * - 第一部分(xxx):只能包含字母、数字和下划线(_),不能使用 `*` + * - 第二部分(yyy):可以包含字母、数字、下划线(_)和 `*` + * - 第三部分(zzz):可以包含字母、数字、下划线(_)和 `*` + * 2. 允许空字符串(""),表示没有权限标识 + */ + String PERMISSION_STRING = "^$|^[a-zA-Z0-9_]+:[a-zA-Z0-9_*]+:[a-zA-Z0-9_*]+$"; + + /** + * 身份证号码(后6位) + */ + String ID_CARD_LAST_6 = "^(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$"; + + /** + * QQ号码 + */ + String QQ_NUMBER = "^[1-9][0-9]\\d{4,9}$"; + + /** + * 邮政编码 + */ + String POSTAL_CODE = "^[1-9]\\d{5}$"; + + /** + * 注册账号 + */ + String ACCOUNT = "^[a-zA-Z][a-zA-Z0-9_]{4,15}$"; + + /** + * 密码:包含至少8个字符,包括大写字母、小写字母、数字和特殊字符 + */ + String PASSWORD = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$"; + + /** + * 通用状态(0表示正常,1表示停用) + */ + String STATUS = "^[01]$"; + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/SystemConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/SystemConstants.java new file mode 100644 index 00000000..adde6d58 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/constant/SystemConstants.java @@ -0,0 +1,80 @@ +package org.ruoyi.common.core.constant; + +/** + * 系统常量信息 + * + * @author Lion Li + */ +public interface SystemConstants { + + /** + * 正常状态 + */ + String NORMAL = "0"; + + /** + * 异常状态 + */ + String DISABLE = "1"; + + /** + * 是否为系统默认(是) + */ + String YES = "Y"; + + /** + * 是否为系统默认(否) + */ + String NO = "N"; + + /** + * 是否菜单外链(是) + */ + String YES_FRAME = "0"; + + /** + * 是否菜单外链(否) + */ + String NO_FRAME = "1"; + + /** + * 菜单类型(目录) + */ + String TYPE_DIR = "M"; + + /** + * 菜单类型(菜单) + */ + String TYPE_MENU = "C"; + + /** + * 菜单类型(按钮) + */ + String TYPE_BUTTON = "F"; + + /** + * Layout组件标识 + */ + String LAYOUT = "Layout"; + + /** + * ParentView组件标识 + */ + String PARENT_VIEW = "ParentView"; + + /** + * InnerLink组件标识 + */ + String INNER_LINK = "InnerLink"; + + /** + * 超级管理员ID + */ + Long SUPER_ADMIN_ID = 1L; + + /** + * 根部门祖级列表 + */ + String ROOT_DEPT_ANCESTORS = "0"; + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/RegexPatternPoolFactory.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/RegexPatternPoolFactory.java new file mode 100644 index 00000000..c15bdbac --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/RegexPatternPoolFactory.java @@ -0,0 +1,53 @@ +package org.ruoyi.common.core.factory; + +import cn.hutool.core.lang.PatternPool; +import org.ruoyi.common.core.constant.RegexConstants; + + +import java.util.regex.Pattern; + +/** + * 正则表达式模式池工厂 + *

    初始化的时候将正则表达式加入缓存池当中

    + *

    提高正则表达式的性能,避免重复编译相同的正则表达式

    + * + * @author 21001 + */ +public class RegexPatternPoolFactory extends PatternPool { + + /** + * 字典类型必须以字母开头,且只能为(小写字母,数字,下滑线) + */ + public static final Pattern DICTIONARY_TYPE = get(RegexConstants.DICTIONARY_TYPE); + + /** + * 身份证号码(后6位) + */ + public static final Pattern ID_CARD_LAST_6 = get(RegexConstants.ID_CARD_LAST_6); + + /** + * QQ号码 + */ + public static final Pattern QQ_NUMBER = get(RegexConstants.QQ_NUMBER); + + /** + * 邮政编码 + */ + public static final Pattern POSTAL_CODE = get(RegexConstants.POSTAL_CODE); + + /** + * 注册账号 + */ + public static final Pattern ACCOUNT = get(RegexConstants.ACCOUNT); + + /** + * 密码:包含至少8个字符,包括大写字母、小写字母、数字和特殊字符 + */ + public static final Pattern PASSWORD = get(RegexConstants.PASSWORD); + + /** + * 通用状态(0表示正常,1表示停用) + */ + public static final Pattern STATUS = get(RegexConstants.STATUS); + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/YmlPropertySourceFactory.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/YmlPropertySourceFactory.java new file mode 100644 index 00000000..3b356d82 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/factory/YmlPropertySourceFactory.java @@ -0,0 +1,32 @@ +package org.ruoyi.common.core.factory; + + +import org.ruoyi.common.core.utils.StringUtils; +import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; +import org.springframework.core.env.PropertiesPropertySource; +import org.springframework.core.env.PropertySource; +import org.springframework.core.io.support.DefaultPropertySourceFactory; +import org.springframework.core.io.support.EncodedResource; + +import java.io.IOException; + +/** + * yml 配置源工厂 + * + * @author Lion Li + */ +public class YmlPropertySourceFactory extends DefaultPropertySourceFactory { + + @Override + public PropertySource createPropertySource(String name, EncodedResource resource) throws IOException { + String sourceName = resource.getResource().getFilename(); + if (StringUtils.isNotBlank(sourceName) && StringUtils.endsWithAny(sourceName, ".yml", ".yaml")) { + YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean(); + factory.setResources(resource.getResource()); + factory.afterPropertiesSet(); + return new PropertiesPropertySource(sourceName, factory.getObject()); + } + return super.createPropertySource(name, resource); + } + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/ObjectUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/ObjectUtils.java new file mode 100644 index 00000000..7f7d5910 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/ObjectUtils.java @@ -0,0 +1,60 @@ +package org.ruoyi.common.core.utils; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import java.util.function.Function; + +/** + * 对象工具类 + * + * @author 秋辞未寒 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class ObjectUtils extends ObjectUtil { + + /** + * 如果对象不为空,则获取对象中的某个字段 ObjectUtils.notNullGetter(user, User::getName); + * + * @param obj 对象 + * @param func 获取方法 + * @return 对象字段 + */ + public static E notNullGetter(T obj, Function func) { + if (isNotNull(obj) && isNotNull(func)) { + return func.apply(obj); + } + return null; + } + + /** + * 如果对象不为空,则获取对象中的某个字段,否则返回默认值 + * + * @param obj 对象 + * @param func 获取方法 + * @param defaultValue 默认值 + * @return 对象字段 + */ + public static E notNullGetter(T obj, Function func, E defaultValue) { + if (isNotNull(obj) && isNotNull(func)) { + return func.apply(obj); + } + return defaultValue; + } + + /** + * 如果值不为空,则返回值,否则返回默认值 + * + * @param obj 对象 + * @param defaultValue 默认值 + * @return 对象字段 + */ + public static T notNull(T obj, T defaultValue) { + if (isNotNull(obj)) { + return obj; + } + return defaultValue; + } + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/SpringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/SpringUtils.java index 99937c79..bd5dc544 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/SpringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/ruoyi/common/core/utils/SpringUtils.java @@ -1,9 +1,10 @@ package org.ruoyi.common.core.utils; import cn.hutool.extra.spring.SpringUtil; -import org.springframework.aop.framework.AopContext; import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.boot.autoconfigure.thread.Threading; import org.springframework.context.ApplicationContext; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; /** @@ -48,7 +49,7 @@ public final class SpringUtils extends SpringUtil { */ @SuppressWarnings("unchecked") public static T getAopProxy(T invoker) { - return (T) AopContext.currentProxy(); + return (T) getBean(invoker.getClass()); } @@ -59,4 +60,8 @@ public final class SpringUtils extends SpringUtil { return getApplicationContext(); } + public static boolean isVirtual() { + return Threading.VIRTUAL.isActive(getBean(Environment.class)); + } + } diff --git a/ruoyi-common/ruoyi-common-encrypt/pom.xml b/ruoyi-common/ruoyi-common-encrypt/pom.xml index da85259e..28608bd5 100644 --- a/ruoyi-common/ruoyi-common-encrypt/pom.xml +++ b/ruoyi-common/ruoyi-common-encrypt/pom.xml @@ -23,11 +23,6 @@ ruoyi-common-core - - org.mybatis.spring.boot - mybatis-spring-boot-starter - - org.bouncycastle bcprov-jdk15to18 @@ -38,6 +33,23 @@ hutool-crypto + + org.springframework + spring-webmvc + + + + com.baomidou + mybatis-plus-spring-boot3-starter + true + + + org.mybatis + mybatis-spring + + + + diff --git a/ruoyi-common/ruoyi-common-live/pom.xml b/ruoyi-common/ruoyi-common-live/pom.xml index 9b9db268..26082fcd 100644 --- a/ruoyi-common/ruoyi-common-live/pom.xml +++ b/ruoyi-common/ruoyi-common-live/pom.xml @@ -33,7 +33,7 @@ 1.13.0 2.16.0 - 5.8.24 + 5.8.35 4.1.104.Final 1.4.12 1.18.30 diff --git a/ruoyi-common/ruoyi-common-mybatis/pom.xml b/ruoyi-common/ruoyi-common-mybatis/pom.xml index 0f6505e0..138732c5 100644 --- a/ruoyi-common/ruoyi-common-mybatis/pom.xml +++ b/ruoyi-common/ruoyi-common-mybatis/pom.xml @@ -6,7 +6,6 @@ org.ruoyi ruoyi-common ${revision} - ../pom.xml 4.0.0 @@ -30,12 +29,17 @@ com.baomidou - dynamic-datasource-spring-boot-starter + dynamic-datasource-spring-boot3-starter com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter + + + + com.baomidou + mybatis-plus-jsqlparser diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java deleted file mode 100644 index f0a50a2d..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaHeaderProcessor.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright © 2018 organization baomidou - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.baomidou.dynamic.datasource.processor.jakarta; - -import com.baomidou.dynamic.datasource.processor.DsProcessor; -import jakarta.servlet.http.HttpServletRequest; -import org.aopalliance.intercept.MethodInvocation; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -/** - * @author TaoYu - * @since 3.6.0 - */ -public class DsJakartaHeaderProcessor extends DsProcessor { - - /** - * header prefix - */ - private static final String HEADER_PREFIX = "#header"; - - @Override - public boolean matches(String key) { - return key.startsWith(HEADER_PREFIX); - } - - @Override - public String doDetermineDatasource(MethodInvocation invocation, String key) { - HttpServletRequest request = (HttpServletRequest) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - return request.getHeader(key.substring(8)); - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java deleted file mode 100644 index 0ea8a130..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/baomidou/dynamic/datasource/processor/jakarta/DsJakartaSessionProcessor.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright © 2018 organization baomidou - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.baomidou.dynamic.datasource.processor.jakarta; - -import com.baomidou.dynamic.datasource.processor.DsProcessor; -import jakarta.servlet.http.HttpServletRequest; -import org.aopalliance.intercept.MethodInvocation; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - - -/** - * @author TaoYu - * @since 3.6.0 - */ -public class DsJakartaSessionProcessor extends DsProcessor { - - /** - * session开头 - */ - private static final String SESSION_PREFIX = "#session"; - - @Override - public boolean matches(String key) { - return key.startsWith(SESSION_PREFIX); - } - - @Override - public String doDetermineDatasource(MethodInvocation invocation, String key) { - HttpServletRequest request = (HttpServletRequest) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - return request.getSession().getAttribute(key.substring(9)).toString(); - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataColumn.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataColumn.java new file mode 100644 index 00000000..706b1e8f --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataColumn.java @@ -0,0 +1,40 @@ +package org.ruoyi.annotation; + +import java.lang.annotation.*; + +/** + * 数据权限注解,用于标记数据权限的占位符关键字和替换值 + *

    + * 一个注解只能对应一个模板 + *

    + * + * @author Lion Li + * @version 3.5.0 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataColumn { + + /** + * 数据权限模板的占位符关键字,默认为 "deptName" + * + * @return 占位符关键字数组 + */ + String[] key() default "deptName"; + + /** + * 数据权限模板的占位符替换值,默认为 "dept_id" + * + * @return 占位符替换值数组 + */ + String[] value() default "dept_id"; + + /** + * 权限标识符 用于通过菜单权限标识符来获取数据权限 + * 拥有此标识符的角色 将不会拼接此角色的数据过滤sql + * + * @return 权限标识符 + */ + String permission() default ""; +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataPermission.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataPermission.java new file mode 100644 index 00000000..24170faa --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/annotation/DataPermission.java @@ -0,0 +1,30 @@ +package org.ruoyi.annotation; + +import java.lang.annotation.*; + +/** + * 数据权限组注解,用于标记数据权限配置数组 + * + * @author Lion Li + * @version 3.5.0 + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataPermission { + + /** + * 数据权限配置数组,用于指定数据权限的占位符关键字和替换值 + * + * @return 数据权限配置数组 + */ + DataColumn[] value(); + + /** + * 权限拼接标识符(用于指定连接语句的sql符号) + * 如不填 默认 select 用 OR 其他语句用 AND + * 内容 OR 或者 AND + */ + String joinStr() default ""; + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/aspect/DataPermissionAspect.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/aspect/DataPermissionAspect.java new file mode 100644 index 00000000..f9026e91 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/aspect/DataPermissionAspect.java @@ -0,0 +1,50 @@ +package org.ruoyi.aspect; + +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.ruoyi.annotation.DataPermission; +import org.ruoyi.helper.DataPermissionHelper; + +/** + * 数据权限处理 + * + * @author Lion Li + */ +@Slf4j +@Aspect +public class DataPermissionAspect { + + /** + * 处理请求前执行 + */ + @Before(value = "@annotation(dataPermission)") + public void doBefore(JoinPoint joinPoint, DataPermission dataPermission) { + DataPermissionHelper.setPermission(dataPermission); + } + + /** + * 处理完请求后执行 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "@annotation(dataPermission)") + public void doAfterReturning(JoinPoint joinPoint, DataPermission dataPermission) { + DataPermissionHelper.removePermission(); + } + + /** + * 拦截异常操作 + * + * @param joinPoint 切点 + * @param e 异常 + */ + @AfterThrowing(value = "@annotation(dataPermission)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, DataPermission dataPermission, Exception e) { + DataPermissionHelper.removePermission(); + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataColumn.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataColumn.java deleted file mode 100644 index a3419da5..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataColumn.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.ruoyi.common.mybatis.annotation; - -import java.lang.annotation.*; - -/** - * 数据权限 - * - * 一个注解只能对应一个模板 - * - * @author Lion Li - * @version 3.5.0 - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface DataColumn { - - /** - * 占位符关键字 - */ - String[] key() default "deptName"; - - /** - * 占位符替换值 - */ - String[] value() default "dept_id"; - -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataPermission.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataPermission.java deleted file mode 100644 index 037eb81a..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/annotation/DataPermission.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.ruoyi.common.mybatis.annotation; - -import java.lang.annotation.*; - -/** - * 数据权限组 - * - * @author Lion Li - * @version 3.5.0 - */ -@Target({ElementType.METHOD, ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface DataPermission { - - DataColumn[] value(); - -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java deleted file mode 100644 index b14c14ef..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.ruoyi.common.mybatis.core.mapper; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.toolkit.Db; -import org.apache.ibatis.logging.Log; -import org.apache.ibatis.logging.LogFactory; -import org.ruoyi.common.core.utils.MapstructUtils; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * 自定义 Mapper 接口, 实现 自定义扩展 - * - * @param table 泛型 - * @param vo 泛型 - * @author Lion Li - * @since 2021-05-13 - */ -@SuppressWarnings("unchecked") -public interface BaseMapperPlus extends BaseMapper { - - Log log = LogFactory.getLog(BaseMapperPlus.class); - - default Class currentVoClass() { - return (Class) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 1); - } - - default Class currentModelClass() { - return (Class) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 0); - } - - default List selectList() { - return this.selectList(new QueryWrapper<>()); - } - - /** - * 批量插入 - */ - default boolean insertBatch(Collection entityList) { - return Db.saveBatch(entityList); - } - - /** - * 批量更新 - */ - default boolean updateBatchById(Collection entityList) { - return Db.updateBatchById(entityList); - } - - /** - * 批量插入或更新 - */ - default boolean insertOrUpdateBatch(Collection entityList) { - return Db.saveOrUpdateBatch(entityList); - } - - /** - * 批量插入(包含限制条数) - */ - default boolean insertBatch(Collection entityList, int batchSize) { - return Db.saveBatch(entityList, batchSize); - } - - /** - * 批量更新(包含限制条数) - */ - default boolean updateBatchById(Collection entityList, int batchSize) { - return Db.updateBatchById(entityList, batchSize); - } - - /** - * 批量插入或更新(包含限制条数) - */ - default boolean insertOrUpdateBatch(Collection entityList, int batchSize) { - return Db.saveOrUpdateBatch(entityList, batchSize); - } - - /** - * 插入或更新(包含限制条数) - */ - default boolean insertOrUpdate(T entity) { - return Db.saveOrUpdate(entity); - } - - default V selectVoById(Serializable id) { - return selectVoById(id, this.currentVoClass()); - } - - /** - * 根据 ID 查询 - */ - default C selectVoById(Serializable id, Class voClass) { - T obj = this.selectById(id); - if (ObjectUtil.isNull(obj)) { - return null; - } - return MapstructUtils.convert(obj, voClass); - } - - default List selectVoBatchIds(Collection idList) { - return selectVoBatchIds(idList, this.currentVoClass()); - } - - /** - * 查询(根据ID 批量查询) - */ - default List selectVoBatchIds(Collection idList, Class voClass) { - List list = this.selectBatchIds(idList); - if (CollUtil.isEmpty(list)) { - return CollUtil.newArrayList(); - } - return MapstructUtils.convert(list, voClass); - } - - default List selectVoByMap(Map map) { - return selectVoByMap(map, this.currentVoClass()); - } - - /** - * 查询(根据 columnMap 条件) - */ - default List selectVoByMap(Map map, Class voClass) { - List list = this.selectByMap(map); - if (CollUtil.isEmpty(list)) { - return CollUtil.newArrayList(); - } - return MapstructUtils.convert(list, voClass); - } - - default V selectVoOne(Wrapper wrapper) { - return selectVoOne(wrapper, this.currentVoClass()); - } - - /** - * 根据 entity 条件,查询一条记录 - */ - default C selectVoOne(Wrapper wrapper, Class voClass) { - T obj = this.selectOne(wrapper); - if (ObjectUtil.isNull(obj)) { - return null; - } - return MapstructUtils.convert(obj, voClass); - } - - default List selectVoList() { - return selectVoList(new QueryWrapper<>(), this.currentVoClass()); - } - - default List selectVoList(Wrapper wrapper) { - return selectVoList(wrapper, this.currentVoClass()); - } - - /** - * 根据 entity 条件,查询全部记录 - */ - default List selectVoList(Wrapper wrapper, Class voClass) { - List list = this.selectList(wrapper); - if (CollUtil.isEmpty(list)) { - return CollUtil.newArrayList(); - } - return MapstructUtils.convert(list, voClass); - } - - default

    > P selectVoPage(IPage page, Wrapper wrapper) { - return selectVoPage(page, wrapper, this.currentVoClass()); - } - - /** - * 分页查询VO - */ - default > P selectVoPage(IPage page, Wrapper wrapper, Class voClass) { - IPage pageData = this.selectPage(page, wrapper); - IPage voPage = new Page<>(pageData.getCurrent(), pageData.getSize(), pageData.getTotal()); - if (CollUtil.isEmpty(pageData.getRecords())) { - return (P) voPage; - } - voPage.setRecords(MapstructUtils.convert(pageData.getRecords(), voClass)); - return (P) voPage; - } - - default List selectObjs(Wrapper wrapper, Function mapper) { - return this.selectObjs(wrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList()); - } - -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataScopeType.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataScopeType.java deleted file mode 100644 index 65362ad0..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataScopeType.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.ruoyi.common.mybatis.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.helper.DataPermissionHelper; - -/** - * 数据权限类型 - *

    - * 语法支持 spel 模板表达式 - *

    - * 内置数据 user 当前用户 内容参考 LoginUser - * 如需扩展数据 可使用 {@link DataPermissionHelper} 操作 - * 内置服务 sdss 系统数据权限服务 内容参考 SysDataScopeService - * 如需扩展更多自定义服务 可以参考 sdss 自行编写 - * - * @author Lion Li - * @version 3.5.0 - */ -@Getter -@AllArgsConstructor -public enum DataScopeType { - - /** - * 全部数据权限 - */ - ALL("1", "", ""), - - /** - * 自定数据权限 - */ - CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) ", ""), - - /** - * 部门数据权限 - */ - DEPT("3", " #{#deptName} = #{#user.deptId} ", ""), - - /** - * 部门及以下数据权限 - */ - DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", ""), - - /** - * 仅本人数据权限 - */ - SELF("5", " #{#userName} = #{#user.userId} ", " 1 = 0 "); - - private final String code; - - /** - * 语法 采用 spel 模板表达式 - */ - private final String sqlTemplate; - - /** - * 不满足 sqlTemplate 则填充 - */ - private final String elseSql; - - public static DataScopeType findCode(String code) { - if (StringUtils.isBlank(code)) { - return null; - } - for (DataScopeType type : values()) { - if (type.getCode().equals(code)) { - return type; - } - } - return null; - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/InjectionMetaObjectHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/InjectionMetaObjectHandler.java deleted file mode 100644 index dfa24f0b..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/InjectionMetaObjectHandler.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.ruoyi.common.mybatis.handler; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.http.HttpStatus; -import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; -import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.reflection.MetaObject; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.ServiceException; -import org.ruoyi.common.mybatis.core.domain.BaseEntity; -import org.ruoyi.common.satoken.utils.LoginHelper; - -import java.util.Date; - -/** - * MP注入处理器 - * - * @author Lion Li - * @date 2021/4/25 - */ -@Slf4j -public class InjectionMetaObjectHandler implements MetaObjectHandler { - - @Override - public void insertFill(MetaObject metaObject) { - try { - if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { - Date current = ObjectUtil.isNotNull(baseEntity.getCreateTime()) - ? baseEntity.getCreateTime() : new Date(); - baseEntity.setCreateTime(current); - baseEntity.setUpdateTime(current); - LoginUser loginUser = getLoginUser(); - if (ObjectUtil.isNotNull(loginUser)) { - Long userId = ObjectUtil.isNotNull(baseEntity.getCreateBy()) - ? baseEntity.getCreateBy() : loginUser.getUserId(); - // 当前已登录 且 创建人为空 则填充 - baseEntity.setCreateBy(userId); - // 当前已登录 且 更新人为空 则填充 - baseEntity.setUpdateBy(userId); - baseEntity.setCreateDept(ObjectUtil.isNotNull(baseEntity.getCreateDept()) - ? baseEntity.getCreateDept() : loginUser.getDeptId()); - } - } - } catch (Exception e) { - throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); - } - } - - @Override - public void updateFill(MetaObject metaObject) { - try { - if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { - Date current = new Date(); - // 更新时间填充(不管为不为空) - baseEntity.setUpdateTime(current); - LoginUser loginUser = getLoginUser(); - // 当前已登录 更新人填充(不管为不为空) - if (ObjectUtil.isNotNull(loginUser)) { - baseEntity.setUpdateBy(loginUser.getUserId()); - } - } - } catch (Exception e) { - throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); - } - } - - /** - * 获取登录用户名 - */ - private LoginUser getLoginUser() { - LoginUser loginUser; - try { - loginUser = LoginHelper.getLoginUser(); - } catch (Exception e) { - log.warn("自动注入警告 => 用户未登录"); - return null; - } - return loginUser; - } - -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java deleted file mode 100644 index f928f42a..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/PlusDataPermissionHandler.java +++ /dev/null @@ -1,198 +0,0 @@ -package org.ruoyi.common.mybatis.handler; - -import cn.hutool.core.annotation.AnnotationUtil; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.ConcurrentHashSet; -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ClassUtil; -import cn.hutool.core.util.ObjectUtil; -import lombok.extern.slf4j.Slf4j; -import net.sf.jsqlparser.JSQLParserException; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.Parenthesis; -import net.sf.jsqlparser.expression.operators.conditional.AndExpression; -import net.sf.jsqlparser.parser.CCJSqlParserUtil; -import org.ruoyi.common.core.domain.dto.RoleDTO; -import org.ruoyi.common.core.domain.model.LoginUser; -import org.ruoyi.common.core.exception.ServiceException; -import org.ruoyi.common.core.utils.SpringUtils; -import org.ruoyi.common.core.utils.StreamUtils; -import org.ruoyi.common.core.utils.StringUtils; -import org.ruoyi.common.mybatis.annotation.DataColumn; -import org.ruoyi.common.mybatis.annotation.DataPermission; -import org.ruoyi.common.mybatis.enums.DataScopeType; -import org.ruoyi.common.mybatis.helper.DataPermissionHelper; -import org.ruoyi.common.satoken.utils.LoginHelper; -import org.springframework.context.expression.BeanFactoryResolver; -import org.springframework.expression.BeanResolver; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.ParserContext; -import org.springframework.expression.common.TemplateParserContext; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; - -import java.lang.reflect.Method; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Function; - -/** - * 数据权限过滤 - * - * @author Lion Li - * @version 3.5.0 - */ -@Slf4j -public class PlusDataPermissionHandler { - - /** - * 方法或类(名称) 与 注解的映射关系缓存 - */ - private final Map dataPermissionCacheMap = new ConcurrentHashMap<>(); - - /** - * 无效注解方法缓存用于快速返回 - */ - private final Set invalidCacheSet = new ConcurrentHashSet<>(); - - /** - * spel 解析器 - */ - private final ExpressionParser parser = new SpelExpressionParser(); - private final ParserContext parserContext = new TemplateParserContext(); - /** - * bean解析器 用于处理 spel 表达式中对 bean 的调用 - */ - private final BeanResolver beanResolver = new BeanFactoryResolver(SpringUtils.getBeanFactory()); - - - public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) { - DataColumn[] dataColumns = findAnnotation(mappedStatementId); - if (ArrayUtil.isEmpty(dataColumns)) { - invalidCacheSet.add(mappedStatementId); - return where; - } - LoginUser currentUser = DataPermissionHelper.getVariable("user"); - if (ObjectUtil.isNull(currentUser)) { - currentUser = LoginHelper.getLoginUser(); - DataPermissionHelper.setVariable("user", currentUser); - } - // 如果是超级管理员或租户管理员,则不过滤数据 - if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) { - return where; - } - String dataFilterSql = buildDataFilter(dataColumns, isSelect); - if (StringUtils.isBlank(dataFilterSql)) { - return where; - } - try { - Expression expression = CCJSqlParserUtil.parseExpression(dataFilterSql); - // 数据权限使用单独的括号 防止与其他条件冲突 - Parenthesis parenthesis = new Parenthesis(expression); - if (ObjectUtil.isNotNull(where)) { - return new AndExpression(where, parenthesis); - } else { - return parenthesis; - } - } catch (JSQLParserException e) { - throw new ServiceException("数据权限解析异常 => " + e.getMessage()); - } - } - - /** - * 构造数据过滤sql - */ - private String buildDataFilter(DataColumn[] dataColumns, boolean isSelect) { - // 更新或删除需满足所有条件 - String joinStr = isSelect ? " OR " : " AND "; - LoginUser user = DataPermissionHelper.getVariable("user"); - StandardEvaluationContext context = new StandardEvaluationContext(); - context.setBeanResolver(beanResolver); - DataPermissionHelper.getContext().forEach(context::setVariable); - Set conditions = new HashSet<>(); - for (RoleDTO role : user.getRoles()) { - user.setRoleId(role.getRoleId()); - // 获取角色权限泛型 - DataScopeType type = DataScopeType.findCode(role.getDataScope()); - if (ObjectUtil.isNull(type)) { - throw new ServiceException("角色数据范围异常 => " + role.getDataScope()); - } - // 全部数据权限直接返回 - if (type == DataScopeType.ALL) { - return ""; - } - boolean isSuccess = false; - for (DataColumn dataColumn : dataColumns) { - if (dataColumn.key().length != dataColumn.value().length) { - throw new ServiceException("角色数据范围异常 => key与value长度不匹配"); - } - // 不包含 key 变量 则不处理 - if (!StringUtils.containsAny(type.getSqlTemplate(), - Arrays.stream(dataColumn.key()).map(key -> "#" + key).toArray(String[]::new) - )) { - continue; - } - // 设置注解变量 key 为表达式变量 value 为变量值 - for (int i = 0; i < dataColumn.key().length; i++) { - context.setVariable(dataColumn.key()[i], dataColumn.value()[i]); - } - - // 解析sql模板并填充 - String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class); - conditions.add(joinStr + sql); - isSuccess = true; - } - // 未处理成功则填充兜底方案 - if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) { - conditions.add(joinStr + type.getElseSql()); - } - } - - if (CollUtil.isNotEmpty(conditions)) { - String sql = StreamUtils.join(conditions, Function.identity(), ""); - return sql.substring(joinStr.length()); - } - return ""; - } - - private DataColumn[] findAnnotation(String mappedStatementId) { - StringBuilder sb = new StringBuilder(mappedStatementId); - int index = sb.lastIndexOf("."); - String clazzName = sb.substring(0, index); - String methodName = sb.substring(index + 1, sb.length()); - Class clazz = ClassUtil.loadClass(clazzName); - List methods = Arrays.stream(ClassUtil.getDeclaredMethods(clazz)) - .filter(method -> method.getName().equals(methodName)).toList(); - DataPermission dataPermission; - // 获取方法注解 - for (Method method : methods) { - dataPermission = dataPermissionCacheMap.get(mappedStatementId); - if (ObjectUtil.isNotNull(dataPermission)) { - return dataPermission.value(); - } - if (AnnotationUtil.hasAnnotation(method, DataPermission.class)) { - dataPermission = AnnotationUtil.getAnnotation(method, DataPermission.class); - dataPermissionCacheMap.put(mappedStatementId, dataPermission); - return dataPermission.value(); - } - } - dataPermission = dataPermissionCacheMap.get(clazz.getName()); - if (ObjectUtil.isNotNull(dataPermission)) { - return dataPermission.value(); - } - // 获取类注解 - if (AnnotationUtil.hasAnnotation(clazz, DataPermission.class)) { - dataPermission = AnnotationUtil.getAnnotation(clazz, DataPermission.class); - dataPermissionCacheMap.put(clazz.getName(), dataPermission); - return dataPermission.value(); - } - return null; - } - - /** - * 是否为无效方法 无数据权限 - */ - public boolean isInvalid(String mappedStatementId) { - return invalidCacheSet.contains(mappedStatementId); - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataPermissionHelper.java deleted file mode 100644 index 8e3de7a3..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataPermissionHelper.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.ruoyi.common.mybatis.helper; - -import cn.dev33.satoken.context.SaHolder; -import cn.dev33.satoken.context.model.SaStorage; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; -import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Supplier; - -/** - * 数据权限助手 - * - * @author Lion Li - * @version 3.5.0 - */ -@NoArgsConstructor(access = AccessLevel.PRIVATE) -@SuppressWarnings("unchecked cast") -public class DataPermissionHelper { - - private static final String DATA_PERMISSION_KEY = "data:permission"; - - public static T getVariable(String key) { - Map context = getContext(); - return (T) context.get(key); - } - - - public static void setVariable(String key, Object value) { - Map context = getContext(); - context.put(key, value); - } - - public static Map getContext() { - SaStorage saStorage = SaHolder.getStorage(); - Object attribute = saStorage.get(DATA_PERMISSION_KEY); - if (ObjectUtil.isNull(attribute)) { - saStorage.set(DATA_PERMISSION_KEY, new HashMap<>()); - attribute = saStorage.get(DATA_PERMISSION_KEY); - } - if (attribute instanceof Map map) { - return map; - } - throw new NullPointerException("data permission context type exception"); - } - - /** - * 开启忽略数据权限(开启后需手动调用 {@link #disableIgnore()} 关闭) - */ - public static void enableIgnore() { - InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().dataPermission(true).build()); - } - - /** - * 关闭忽略数据权限 - */ - public static void disableIgnore() { - InterceptorIgnoreHelper.clearIgnoreStrategy(); - } - - /** - * 在忽略数据权限中执行 - * - * @param handle 处理执行方法 - */ - public static void ignore(Runnable handle) { - enableIgnore(); - try { - handle.run(); - } finally { - disableIgnore(); - } - } - - /** - * 在忽略数据权限中执行 - * - * @param handle 处理执行方法 - */ - public static T ignore(Supplier handle) { - enableIgnore(); - try { - return handle.get(); - } finally { - disableIgnore(); - } - } - -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java deleted file mode 100644 index 98895d0a..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/interceptor/PlusDataPermissionInterceptor.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.ruoyi.common.mybatis.interceptor; - -import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; -import com.baomidou.mybatisplus.core.toolkit.PluginUtils; -import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport; -import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.statement.delete.Delete; -import net.sf.jsqlparser.statement.select.PlainSelect; -import net.sf.jsqlparser.statement.select.Select; -import net.sf.jsqlparser.statement.select.SelectBody; -import net.sf.jsqlparser.statement.select.SetOperationList; -import net.sf.jsqlparser.statement.update.Update; -import org.apache.ibatis.executor.Executor; -import org.apache.ibatis.executor.statement.StatementHandler; -import org.apache.ibatis.mapping.BoundSql; -import org.apache.ibatis.mapping.MappedStatement; -import org.apache.ibatis.mapping.SqlCommandType; -import org.apache.ibatis.session.ResultHandler; -import org.apache.ibatis.session.RowBounds; -import org.ruoyi.common.mybatis.handler.PlusDataPermissionHandler; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -/** - * 数据权限拦截器 - * - * @author Lion Li - * @version 3.5.0 - */ -public class PlusDataPermissionInterceptor extends JsqlParserSupport implements InnerInterceptor { - - private final PlusDataPermissionHandler dataPermissionHandler = new PlusDataPermissionHandler(); - - @Override - public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { - // 检查忽略注解 - if (InterceptorIgnoreHelper.willIgnoreDataPermission(ms.getId())) { - return; - } - // 检查是否无效 无数据权限注解 - if (dataPermissionHandler.isInvalid(ms.getId())) { - return; - } - // 解析 sql 分配对应方法 - PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql); - mpBs.sql(parserSingle(mpBs.sql(), ms.getId())); - } - - @Override - public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) { - PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh); - MappedStatement ms = mpSh.mappedStatement(); - SqlCommandType sct = ms.getSqlCommandType(); - if (sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) { - if (InterceptorIgnoreHelper.willIgnoreDataPermission(ms.getId())) { - return; - } - PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql(); - mpBs.sql(parserMulti(mpBs.sql(), ms.getId())); - } - } - - @Override - protected void processSelect(Select select, int index, String sql, Object obj) { - SelectBody selectBody = select.getSelectBody(); - if (selectBody instanceof PlainSelect plainSelect) { - this.setWhere(plainSelect, (String) obj); - } else if (selectBody instanceof SetOperationList setOperationList) { - List selectBodyList = setOperationList.getSelects(); - selectBodyList.forEach(s -> this.setWhere((PlainSelect) s, (String) obj)); - } - } - - @Override - protected void processUpdate(Update update, int index, String sql, Object obj) { - Expression sqlSegment = dataPermissionHandler.getSqlSegment(update.getWhere(), (String) obj, false); - if (null != sqlSegment) { - update.setWhere(sqlSegment); - } - } - - @Override - protected void processDelete(Delete delete, int index, String sql, Object obj) { - Expression sqlSegment = dataPermissionHandler.getSqlSegment(delete.getWhere(), (String) obj, false); - if (null != sqlSegment) { - delete.setWhere(sqlSegment); - } - } - - /** - * 设置 where 条件 - * - * @param plainSelect 查询对象 - * @param mappedStatementId 执行方法id - */ - protected void setWhere(PlainSelect plainSelect, String mappedStatementId) { - Expression sqlSegment = dataPermissionHandler.getSqlSegment(plainSelect.getWhere(), mappedStatementId, true); - if (null != sqlSegment) { - plainSelect.setWhere(sqlSegment); - } - } - -} - diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaHeaderProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaHeaderProcessor.java deleted file mode 100644 index fd67e07c..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaHeaderProcessor.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright © 2018 organization baomidou - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.ruoyi.common.mybatis.jakarta; - -import com.baomidou.dynamic.datasource.processor.DsProcessor; -import jakarta.servlet.http.HttpServletRequest; -import org.aopalliance.intercept.MethodInvocation; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -/** - * @author TaoYu - * @since 3.6.0 - */ -public class DsJakartaHeaderProcessor extends DsProcessor { - - /** - * header prefix - */ - private static final String HEADER_PREFIX = "#header"; - - @Override - public boolean matches(String key) { - return key.startsWith(HEADER_PREFIX); - } - - @Override - public String doDetermineDatasource(MethodInvocation invocation, String key) { - HttpServletRequest request = (HttpServletRequest) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - return request.getHeader(key.substring(8)); - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaSessionProcessor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaSessionProcessor.java deleted file mode 100644 index f055b463..00000000 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/jakarta/DsJakartaSessionProcessor.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright © 2018 organization baomidou - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.ruoyi.common.mybatis.jakarta; - -import com.baomidou.dynamic.datasource.processor.DsProcessor; -import jakarta.servlet.http.HttpServletRequest; -import org.aopalliance.intercept.MethodInvocation; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - - -/** - * @author TaoYu - * @since 3.6.0 - */ -public class DsJakartaSessionProcessor extends DsProcessor { - - /** - * session开头 - */ - private static final String SESSION_PREFIX = "#session"; - - @Override - public boolean matches(String key) { - return key.startsWith(SESSION_PREFIX); - } - - @Override - public String doDetermineDatasource(MethodInvocation invocation, String key) { - HttpServletRequest request = (HttpServletRequest) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - return request.getSession().getAttribute(key.substring(9)).toString(); - } -} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/config/MybatisPlusConfig.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/config/MybatisPlusConfig.java similarity index 66% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/config/MybatisPlusConfig.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/config/MybatisPlusConfig.java index 7f28b1f6..f5942b2e 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/config/MybatisPlusConfig.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/config/MybatisPlusConfig.java @@ -1,17 +1,25 @@ -package org.ruoyi.common.mybatis.config; +package org.ruoyi.config; import cn.hutool.core.net.NetUtil; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.baomidou.mybatisplus.core.handlers.PostInitTableInfoHandler; import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; -import org.ruoyi.common.mybatis.handler.InjectionMetaObjectHandler; -import org.ruoyi.common.mybatis.interceptor.PlusDataPermissionInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; +import org.ruoyi.aspect.DataPermissionAspect; +import org.ruoyi.common.core.factory.YmlPropertySourceFactory; +import org.ruoyi.common.core.utils.SpringUtils; +import org.ruoyi.handler.InjectionMetaObjectHandler; +import org.ruoyi.handler.MybatisExceptionHandler; +import org.ruoyi.handler.PlusPostInitTableInfoHandler; +import org.ruoyi.interceptor.PlusDataPermissionInterceptor; import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.beans.BeansException; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.PropertySource; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -20,13 +28,19 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; * @author Lion Li */ @EnableTransactionManagement(proxyTargetClass = true) -@AutoConfiguration @MapperScan("${mybatis-plus.mapperPackage}") +@PropertySource(value = "classpath:common-mybatis.yml", factory = YmlPropertySourceFactory.class) public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 多租户插件 必须放到第一位 + try { + TenantLineInnerInterceptor tenant = SpringUtils.getBean(TenantLineInnerInterceptor.class); + interceptor.addInnerInterceptor(tenant); + } catch (BeansException ignore) { + } // 数据权限处理 interceptor.addInnerInterceptor(dataPermissionInterceptor()); // 分页插件 @@ -40,7 +54,15 @@ public class MybatisPlusConfig { * 数据权限拦截器 */ public PlusDataPermissionInterceptor dataPermissionInterceptor() { - return new PlusDataPermissionInterceptor(); + return new PlusDataPermissionInterceptor(SpringUtils.getProperty("mybatis-plus.mapperPackage")); + } + + /** + * 数据权限切面处理器 + */ + @Bean + public DataPermissionAspect dataPermissionAspect() { + return new DataPermissionAspect(); } /** @@ -48,8 +70,6 @@ public class MybatisPlusConfig { */ public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); - // 设置最大单页限制数量,默认 500 条,-1 不受限制 - paginationInnerInterceptor.setMaxLimit(-1L); // 分页合理化 paginationInnerInterceptor.setOverflow(true); return paginationInnerInterceptor; @@ -79,6 +99,22 @@ public class MybatisPlusConfig { return new DefaultIdentifierGenerator(NetUtil.getLocalhost()); } + /** + * 异常处理器 + */ + @Bean + public MybatisExceptionHandler mybatisExceptionHandler() { + return new MybatisExceptionHandler(); + } + + /** + * 初始化表对象处理器 + */ + @Bean + public PostInitTableInfoHandler postInitTableInfoHandler() { + return new PlusPostInitTableInfoHandler(); + } + /** * PaginationInnerInterceptor 分页插件,自动识别数据库类型 * https://baomidou.com/pages/97710a/ diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/domain/BaseEntity.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/domain/BaseEntity.java similarity index 96% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/domain/BaseEntity.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/domain/BaseEntity.java index bfc43c54..5e362d60 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/domain/BaseEntity.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/domain/BaseEntity.java @@ -1,4 +1,4 @@ -package org.ruoyi.common.mybatis.core.domain; +package org.ruoyi.core.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; @@ -17,7 +17,6 @@ import java.util.Map; * * @author Lion Li */ - @Data public class BaseEntity implements Serializable { diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/mapper/BaseMapperPlus.java new file mode 100644 index 00000000..097c7210 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/mapper/BaseMapperPlus.java @@ -0,0 +1,335 @@ +package org.ruoyi.core.mapper; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.reflect.GenericTypeUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.toolkit.Db; +import org.apache.ibatis.logging.Log; +import org.apache.ibatis.logging.LogFactory; +import org.ruoyi.common.core.utils.MapstructUtils; +import org.ruoyi.common.core.utils.StreamUtils; + + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Function; + +/** + * 自定义 Mapper 接口, 实现 自定义扩展 + * + * @param table 泛型 + * @param vo 泛型 + * @author Lion Li + * @since 2021-05-13 + */ +@SuppressWarnings("unchecked") +public interface BaseMapperPlus extends BaseMapper { + + Log log = LogFactory.getLog(BaseMapperPlus.class); + + /** + * 获取当前实例对象关联的泛型类型 V 的 Class 对象 + * + * @return 返回当前实例对象关联的泛型类型 V 的 Class 对象 + */ + default Class currentVoClass() { + return (Class) GenericTypeUtils.resolveTypeArguments(this.getClass(), BaseMapperPlus.class)[1]; + } + + /** + * 获取当前实例对象关联的泛型类型 T 的 Class 对象 + * + * @return 返回当前实例对象关联的泛型类型 T 的 Class 对象 + */ + default Class currentModelClass() { + return (Class) GenericTypeUtils.resolveTypeArguments(this.getClass(), BaseMapperPlus.class)[0]; + } + + /** + * 使用默认的查询条件查询并返回结果列表 + * + * @return 返回查询结果的列表 + */ + default List selectList() { + return this.selectList(new QueryWrapper<>()); + } + + /** + * 批量插入实体对象集合 + * + * @param entityList 实体对象集合 + * @return 插入操作是否成功的布尔值 + */ + default boolean insertBatch(Collection entityList) { + return Db.saveBatch(entityList); + } + + /** + * 批量根据ID更新实体对象集合 + * + * @param entityList 实体对象集合 + * @return 更新操作是否成功的布尔值 + */ + default boolean updateBatchById(Collection entityList) { + return Db.updateBatchById(entityList); + } + + /** + * 批量插入或更新实体对象集合 + * + * @param entityList 实体对象集合 + * @return 插入或更新操作是否成功的布尔值 + */ + default boolean insertOrUpdateBatch(Collection entityList) { + return Db.saveOrUpdateBatch(entityList); + } + + /** + * 批量插入实体对象集合并指定批处理大小 + * + * @param entityList 实体对象集合 + * @param batchSize 批处理大小 + * @return 插入操作是否成功的布尔值 + */ + default boolean insertBatch(Collection entityList, int batchSize) { + return Db.saveBatch(entityList, batchSize); + } + + /** + * 批量根据ID更新实体对象集合并指定批处理大小 + * + * @param entityList 实体对象集合 + * @param batchSize 批处理大小 + * @return 更新操作是否成功的布尔值 + */ + default boolean updateBatchById(Collection entityList, int batchSize) { + return Db.updateBatchById(entityList, batchSize); + } + + /** + * 批量插入或更新实体对象集合并指定批处理大小 + * + * @param entityList 实体对象集合 + * @param batchSize 批处理大小 + * @return 插入或更新操作是否成功的布尔值 + */ + default boolean insertOrUpdateBatch(Collection entityList, int batchSize) { + return Db.saveOrUpdateBatch(entityList, batchSize); + } + + /** + * 根据ID查询单个VO对象 + * + * @param id 主键ID + * @return 查询到的单个VO对象 + */ + default V selectVoById(Serializable id) { + return selectVoById(id, this.currentVoClass()); + } + + /** + * 根据ID查询单个VO对象并将其转换为指定的VO类 + * + * @param id 主键ID + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 + */ + default C selectVoById(Serializable id, Class voClass) { + T obj = this.selectById(id); + if (ObjectUtil.isNull(obj)) { + return null; + } + return MapstructUtils.convert(obj, voClass); + } + + /** + * 根据ID集合批量查询VO对象列表 + * + * @param idList 主键ID集合 + * @return 查询到的VO对象列表 + */ + default List selectVoByIds(Collection idList) { + return selectVoByIds(idList, this.currentVoClass()); + } + + /** + * 根据ID集合批量查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param idList 主键ID集合 + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoByIds(Collection idList, Class voClass) { + List list = this.selectByIds(idList); + if (CollUtil.isEmpty(list)) { + return CollUtil.newArrayList(); + } + return MapstructUtils.convert(list, voClass); + } + + /** + * 根据查询条件Map查询VO对象列表 + * + * @param map 查询条件Map + * @return 查询到的VO对象列表 + */ + default List selectVoByMap(Map map) { + return selectVoByMap(map, this.currentVoClass()); + } + + /** + * 根据查询条件Map查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param map 查询条件Map + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoByMap(Map map, Class voClass) { + List list = this.selectByMap(map); + if (CollUtil.isEmpty(list)) { + return CollUtil.newArrayList(); + } + return MapstructUtils.convert(list, voClass); + } + + /** + * 根据条件查询单个VO对象 + * + * @param wrapper 查询条件Wrapper + * @return 查询到的单个VO对象 + */ + default V selectVoOne(Wrapper wrapper) { + return selectVoOne(wrapper, this.currentVoClass()); + } + + /** + * 根据条件查询单个VO对象,并根据需要决定是否抛出异常 + * + * @param wrapper 查询条件Wrapper + * @param throwEx 是否抛出异常的标志 + * @return 查询到的单个VO对象 + */ + default V selectVoOne(Wrapper wrapper, boolean throwEx) { + return selectVoOne(wrapper, this.currentVoClass(), throwEx); + } + + /** + * 根据条件查询单个VO对象,并指定返回的VO对象的类型 + * + * @param wrapper 查询条件Wrapper + * @param voClass 返回的VO对象的Class对象 + * @param 返回的VO对象的类型 + * @return 查询到的单个VO对象,经过类型转换为指定的VO类后返回 + */ + default C selectVoOne(Wrapper wrapper, Class voClass) { + return selectVoOne(wrapper, voClass, true); + } + + /** + * 根据条件查询单个实体对象,并将其转换为指定的VO对象 + * + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param throwEx 是否抛出异常的标志 + * @param VO类的类型 + * @return 查询到的单个VO对象,经过转换为指定的VO类后返回 + */ + default C selectVoOne(Wrapper wrapper, Class voClass, boolean throwEx) { + T obj = this.selectOne(wrapper, throwEx); + if (ObjectUtil.isNull(obj)) { + return null; + } + return MapstructUtils.convert(obj, voClass); + } + + /** + * 查询所有VO对象列表 + * + * @return 查询到的VO对象列表 + */ + default List selectVoList() { + return selectVoList(new QueryWrapper<>(), this.currentVoClass()); + } + + /** + * 根据条件查询VO对象列表 + * + * @param wrapper 查询条件Wrapper + * @return 查询到的VO对象列表 + */ + default List selectVoList(Wrapper wrapper) { + return selectVoList(wrapper, this.currentVoClass()); + } + + /** + * 根据条件查询实体对象列表,并将其转换为指定的VO对象列表 + * + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @return 查询到的VO对象列表,经过转换为指定的VO类后返回 + */ + default List selectVoList(Wrapper wrapper, Class voClass) { + List list = this.selectList(wrapper); + if (CollUtil.isEmpty(list)) { + return CollUtil.newArrayList(); + } + return MapstructUtils.convert(list, voClass); + } + + /** + * 根据条件分页查询VO对象列表 + * + * @param page 分页信息 + * @param wrapper 查询条件Wrapper + * @return 查询到的VO对象分页列表 + */ + default

    > P selectVoPage(IPage page, Wrapper wrapper) { + return selectVoPage(page, wrapper, this.currentVoClass()); + } + + /** + * 根据条件分页查询实体对象列表,并将其转换为指定的VO对象分页列表 + * + * @param page 分页信息 + * @param wrapper 查询条件Wrapper + * @param voClass 要转换的VO类的Class对象 + * @param VO类的类型 + * @param

    VO对象分页列表的类型 + * @return 查询到的VO对象分页列表,经过转换为指定的VO类后返回 + */ + default > P selectVoPage(IPage page, Wrapper wrapper, Class voClass) { + // 根据条件分页查询实体对象列表 + List list = this.selectList(page, wrapper); + // 创建一个新的VO对象分页列表,并设置分页信息 + IPage voPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal()); + if (CollUtil.isEmpty(list)) { + return (P) voPage; + } + voPage.setRecords(MapstructUtils.convert(list, voClass)); + return (P) voPage; + } + + /** + * 根据条件查询符合条件的对象,并将其转换为指定类型的对象列表 + * + * @param wrapper 查询条件Wrapper + * @param mapper 转换函数,用于将查询到的对象转换为指定类型的对象 + * @param 要转换的对象的类型 + * @return 查询到的符合条件的对象列表,经过转换为指定类型的对象后返回 + */ + default List selectObjs(Wrapper wrapper, Function mapper) { + return StreamUtils.toList(this.selectObjs(wrapper), mapper); + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/PageQuery.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/PageQuery.java similarity index 90% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/PageQuery.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/PageQuery.java index 33e0190d..a388cb4a 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/PageQuery.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/PageQuery.java @@ -1,9 +1,10 @@ -package org.ruoyi.common.mybatis.core.page; +package org.ruoyi.core.page; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.ruoyi.common.core.exception.ServiceException; import org.ruoyi.common.core.utils.StringUtils; @@ -19,7 +20,6 @@ import java.util.List; * * @author Lion Li */ - @Data public class PageQuery implements Serializable { @@ -56,6 +56,9 @@ public class PageQuery implements Serializable { */ public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE; + /** + * 构建分页对象 + */ public Page build() { Integer pageNum = ObjectUtil.defaultIfNull(getPageNum(), DEFAULT_PAGE_NUM); Integer pageSize = ObjectUtil.defaultIfNull(getPageSize(), DEFAULT_PAGE_SIZE); @@ -111,4 +114,14 @@ public class PageQuery implements Serializable { return list; } + @JsonIgnore + public Integer getFirstNum() { + return (pageNum - 1) * pageSize; + } + + public PageQuery(Integer pageSize, Integer pageNum) { + this.pageSize = pageSize; + this.pageNum = pageNum; + } + } diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/TableDataInfo.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/TableDataInfo.java similarity index 85% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/TableDataInfo.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/TableDataInfo.java index b4f7cd70..eb321ae9 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/core/page/TableDataInfo.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/core/page/TableDataInfo.java @@ -1,4 +1,4 @@ -package org.ruoyi.common.mybatis.core.page; +package org.ruoyi.core.page; import cn.hutool.http.HttpStatus; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -14,7 +14,6 @@ import java.util.List; * * @author Lion Li */ - @Data @NoArgsConstructor public class TableDataInfo implements Serializable { @@ -51,8 +50,13 @@ public class TableDataInfo implements Serializable { public TableDataInfo(List list, long total) { this.rows = list; this.total = total; + this.code = HttpStatus.HTTP_OK; + this.msg = "查询成功"; } + /** + * 根据分页对象构建表格分页数据对象 + */ public static TableDataInfo build(IPage page) { TableDataInfo rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); @@ -62,6 +66,9 @@ public class TableDataInfo implements Serializable { return rspData; } + /** + * 根据数据列表构建表格分页数据对象 + */ public static TableDataInfo build(List list) { TableDataInfo rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); @@ -71,6 +78,9 @@ public class TableDataInfo implements Serializable { return rspData; } + /** + * 构建表格分页数据对象 + */ public static TableDataInfo build() { TableDataInfo rspData = new TableDataInfo<>(); rspData.setCode(HttpStatus.HTTP_OK); diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataBaseType.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataBaseType.java similarity index 74% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataBaseType.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataBaseType.java index fba59340..1b32cda4 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/enums/DataBaseType.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataBaseType.java @@ -1,9 +1,10 @@ -package org.ruoyi.common.mybatis.enums; +package org.ruoyi.enums; import lombok.AllArgsConstructor; import lombok.Getter; import org.ruoyi.common.core.utils.StringUtils; + /** * 数据库类型 * @@ -33,8 +34,17 @@ public enum DataBaseType { */ SQL_SERVER("Microsoft SQL Server"); + /** + * 数据库类型 + */ private final String type; + /** + * 根据数据库产品名称查找对应的数据库类型 + * + * @param databaseProductName 数据库产品名称 + * @return 对应的数据库类型枚举值,如果未找到则返回 null + */ public static DataBaseType find(String databaseProductName) { if (StringUtils.isBlank(databaseProductName)) { return null; diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataScopeType.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataScopeType.java new file mode 100644 index 00000000..f478adbd --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/enums/DataScopeType.java @@ -0,0 +1,87 @@ +package org.ruoyi.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.ruoyi.common.core.domain.model.LoginUser; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.helper.DataPermissionHelper; + +/** + * 数据权限类型枚举 + *

    + * 支持使用 SpEL 模板表达式定义 SQL 查询条件 + * 内置数据: + * - {@code user}: 当前登录用户信息,参考 {@link LoginUser} + * 内置服务: + * - {@code sdss}: 系统数据权限服务,参考 ISysDataScopeService + * 如需扩展数据,可以通过 {@link DataPermissionHelper} 进行操作 + * 如需扩展服务,可以通过 ISysDataScopeService 自行编写 + *

    + * + * @author Lion Li + * @version 3.5.0 + */ +@Getter +@AllArgsConstructor +public enum DataScopeType { + + /** + * 全部数据权限 + */ + ALL("1", "", ""), + + /** + * 自定数据权限 + */ + CUSTOM("2", " #{#deptName} IN ( #{@sdss.getRoleCustom( #user.roleId )} ) ", " 1 = 0 "), + + /** + * 部门数据权限 + */ + DEPT("3", " #{#deptName} = #{#user.deptId} ", " 1 = 0 "), + + /** + * 部门及以下数据权限 + */ + DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", " 1 = 0 "), + + /** + * 仅本人数据权限 + */ + SELF("5", " #{#userName} = #{#user.userId} ", " 1 = 0 "), + + /** + * 部门及以下或本人数据权限 + */ + DEPT_AND_CHILD_OR_SELF("6", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} ) OR #{#userName} = #{#user.userId} ", " 1 = 0 "); + + private final String code; + + /** + * SpEL 模板表达式,用于构建 SQL 查询条件 + */ + private final String sqlTemplate; + + /** + * 如果不满足 {@code sqlTemplate} 的条件,则使用此默认 SQL 表达式 + */ + private final String elseSql; + + /** + * 根据枚举代码查找对应的枚举值 + * + * @param code 枚举代码 + * @return 对应的枚举值,如果未找到则返回 null + */ + public static DataScopeType findCode(String code) { + if (StringUtils.isBlank(code)) { + return null; + } + for (DataScopeType type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/InjectionMetaObjectHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/InjectionMetaObjectHandler.java new file mode 100644 index 00000000..57843d35 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/InjectionMetaObjectHandler.java @@ -0,0 +1,103 @@ +package org.ruoyi.handler; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpStatus; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.ruoyi.common.core.domain.model.LoginUser; +import org.ruoyi.common.core.exception.ServiceException; +import org.ruoyi.common.core.utils.ObjectUtils; +import org.ruoyi.common.satoken.utils.LoginHelper; +import org.ruoyi.core.domain.BaseEntity; + + +import java.util.Date; + +/** + * MP注入处理器 + * + * @author Lion Li + * @date 2021/4/25 + */ +@Slf4j +public class InjectionMetaObjectHandler implements MetaObjectHandler { + + /** + * 插入填充方法,用于在插入数据时自动填充实体对象中的创建时间、更新时间、创建人、更新人等信息 + * + * @param metaObject 元对象,用于获取原始对象并进行填充 + */ + @Override + public void insertFill(MetaObject metaObject) { + try { + if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { + // 获取当前时间作为创建时间和更新时间,如果创建时间不为空,则使用创建时间,否则使用当前时间 + Date current = ObjectUtils.notNull(baseEntity.getCreateTime(), new Date()); + baseEntity.setCreateTime(current); + baseEntity.setUpdateTime(current); + + // 如果创建人为空,则填充当前登录用户的信息 + if (ObjectUtil.isNull(baseEntity.getCreateBy())) { + LoginUser loginUser = getLoginUser(); + if (ObjectUtil.isNotNull(loginUser)) { + Long userId = loginUser.getUserId(); + // 填充创建人、更新人和创建部门信息 + baseEntity.setCreateBy(userId); + baseEntity.setUpdateBy(userId); + baseEntity.setCreateDept(ObjectUtils.notNull(baseEntity.getCreateDept(), loginUser.getDeptId())); + } + } + } else { + Date date = new Date(); + this.strictInsertFill(metaObject, "createTime", Date.class, date); + this.strictInsertFill(metaObject, "updateTime", Date.class, date); + } + } catch (Exception e) { + throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); + } + } + + /** + * 更新填充方法,用于在更新数据时自动填充实体对象中的更新时间和更新人信息 + * + * @param metaObject 元对象,用于获取原始对象并进行填充 + */ + @Override + public void updateFill(MetaObject metaObject) { + try { + if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity baseEntity) { + // 获取当前时间作为更新时间,无论原始对象中的更新时间是否为空都填充 + Date current = new Date(); + baseEntity.setUpdateTime(current); + + // 获取当前登录用户的ID,并填充更新人信息 + Long userId = LoginHelper.getUserId(); + if (ObjectUtil.isNotNull(userId)) { + baseEntity.setUpdateBy(userId); + } + } else { + this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); + } + } catch (Exception e) { + throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED); + } + } + + /** + * 获取当前登录用户信息 + * + * @return 当前登录用户的信息,如果用户未登录则返回 null + */ + private LoginUser getLoginUser() { + LoginUser loginUser; + try { + loginUser = LoginHelper.getLoginUser(); + } catch (Exception e) { + log.warn("自动注入警告 => 用户未登录"); + return null; + } + return loginUser; + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/MybatisExceptionHandler.java similarity index 90% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/MybatisExceptionHandler.java index 281d172d..0cb338c2 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/handler/MybatisExceptionHandler.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/MybatisExceptionHandler.java @@ -1,9 +1,11 @@ -package org.ruoyi.common.mybatis.handler; +package org.ruoyi.handler; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; -import org.ruoyi.common.core.domain.R; + import org.mybatis.spring.MyBatisSystemException; +import org.ruoyi.common.core.domain.R; +import org.ruoyi.common.core.utils.StringUtils; import org.springframework.dao.DuplicateKeyException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; @@ -34,7 +36,7 @@ public class MybatisExceptionHandler { public R handleCannotFindDataSourceException(MyBatisSystemException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); String message = e.getMessage(); - if (message.contains("CannotFindDataSourceException")) { + if (StringUtils.contains("CannotFindDataSourceException", message)) { log.error("请求地址'{}', 未找到数据源", requestURI); return R.fail("未找到数据源,请联系管理员确认"); } diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusDataPermissionHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusDataPermissionHandler.java new file mode 100644 index 00000000..46e0b2e9 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusDataPermissionHandler.java @@ -0,0 +1,359 @@ +package org.ruoyi.handler; + +import cn.hutool.core.annotation.AnnotationUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.JSQLParserException; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.operators.conditional.AndExpression; +import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; +import org.apache.ibatis.io.Resources; + +import org.ruoyi.annotation.DataColumn; +import org.ruoyi.annotation.DataPermission; +import org.ruoyi.common.core.domain.dto.RoleDTO; +import org.ruoyi.common.core.domain.model.LoginUser; +import org.ruoyi.common.core.exception.ServiceException; +import org.ruoyi.common.core.utils.SpringUtils; +import org.ruoyi.common.core.utils.StreamUtils; +import org.ruoyi.common.core.utils.StringUtils; +import org.ruoyi.common.satoken.utils.LoginHelper; +import org.ruoyi.enums.DataScopeType; +import org.ruoyi.helper.DataPermissionHelper; + +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.expression.BeanFactoryResolver; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; +import org.springframework.core.type.ClassMetadata; +import org.springframework.core.type.classreading.CachingMetadataReaderFactory; +import org.springframework.expression.*; +import org.springframework.expression.common.TemplateParserContext; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.util.ClassUtils; + +import java.lang.reflect.Method; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; + +/** + * 数据权限过滤 + * + * @author Lion Li + * @version 3.5.0 + */ +@Slf4j +public class PlusDataPermissionHandler { + + /** + * 类名称与注解的映射关系缓存(由于aop无法拦截mybatis接口类上的注解 只能通过启动预扫描的方式进行) + */ + private final Map dataPermissionCacheMap = new ConcurrentHashMap<>(); + + /** + * spel 解析器 + */ + private final ExpressionParser parser = new SpelExpressionParser(); + private final ParserContext parserContext = new TemplateParserContext(); + /** + * bean解析器 用于处理 spel 表达式中对 bean 的调用 + */ + private final BeanResolver beanResolver = new BeanFactoryResolver(SpringUtils.getBeanFactory()); + + /** + * 构造方法,扫描指定包下的 Mapper 类并初始化缓存 + * + * @param mapperPackage Mapper 类所在的包路径 + */ + public PlusDataPermissionHandler(String mapperPackage) { + scanMapperClasses(mapperPackage); + } + + /** + * 获取数据过滤条件的 SQL 片段 + * + * @param where 原始的查询条件表达式 + * @param mappedStatementId Mapper 方法的 ID + * @param isSelect 是否为查询语句 + * @return 数据过滤条件的 SQL 片段 + */ + public Expression getSqlSegment(Expression where, String mappedStatementId, boolean isSelect) { + try { + // 获取数据权限配置 + DataPermission dataPermission = getDataPermission(mappedStatementId); + // 获取当前登录用户信息 + LoginUser currentUser = DataPermissionHelper.getVariable("user"); + if (ObjectUtil.isNull(currentUser)) { + currentUser = LoginHelper.getLoginUser(); + DataPermissionHelper.setVariable("user", currentUser); + } + // 如果是超级管理员或租户管理员,则不过滤数据 + if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) { + return where; + } + // 构造数据过滤条件的 SQL 片段 + String dataFilterSql = buildDataFilter(dataPermission, isSelect); + if (StringUtils.isBlank(dataFilterSql)) { + return where; + } + Expression expression = CCJSqlParserUtil.parseExpression(dataFilterSql); + // 数据权限使用单独的括号 防止与其他条件冲突 + ParenthesedExpressionList parenthesis = new ParenthesedExpressionList<>(expression); + if (ObjectUtil.isNotNull(where)) { + return new AndExpression(where, parenthesis); + } else { + return parenthesis; + } + } catch (JSQLParserException e) { + throw new ServiceException("数据权限解析异常 => " + e.getMessage()); + } finally { + DataPermissionHelper.removePermission(); + } + } + + /** + * 构建数据过滤条件的 SQL 语句 + * + * @param dataPermission 数据权限注解 + * @param isSelect 标志当前操作是否为查询操作,查询操作和更新或删除操作在处理过滤条件时会有不同的处理方式 + * @return 构建的数据过滤条件的 SQL 语句 + * @throws ServiceException 如果角色的数据范围异常或者 key 与 value 的长度不匹配,则抛出 ServiceException 异常 + */ + private String buildDataFilter(DataPermission dataPermission, boolean isSelect) { + // 更新或删除需满足所有条件 + String joinStr = isSelect ? " OR " : " AND "; + if (StringUtils.isNotBlank(dataPermission.joinStr())) { + joinStr = " " + dataPermission.joinStr() + " "; + } + LoginUser user = DataPermissionHelper.getVariable("user"); + Object defaultValue = "-1"; + NullSafeStandardEvaluationContext context = new NullSafeStandardEvaluationContext(defaultValue); + context.addPropertyAccessor(new NullSafePropertyAccessor(context.getPropertyAccessors().get(0), defaultValue)); + context.setBeanResolver(beanResolver); + DataPermissionHelper.getContext().forEach(context::setVariable); + Set conditions = new HashSet<>(); + // 优先设置变量 + List keys = new ArrayList<>(); + Map ignoreMap = new HashMap<>(); + for (DataColumn dataColumn : dataPermission.value()) { + if (dataColumn.key().length != dataColumn.value().length) { + throw new ServiceException("角色数据范围异常 => key与value长度不匹配"); + } + // 包含权限标识符 这直接跳过 + if (StringUtils.isNotBlank(dataColumn.permission()) && + CollUtil.contains(user.getMenuPermission(), dataColumn.permission()) + ) { + ignoreMap.put(dataColumn, Boolean.TRUE); + continue; + } + // 设置注解变量 key 为表达式变量 value 为变量值 + for (int i = 0; i < dataColumn.key().length; i++) { + context.setVariable(dataColumn.key()[i], dataColumn.value()[i]); + } + keys.addAll(Arrays.stream(dataColumn.key()).map(key -> "#" + key).toList()); + } + + for (RoleDTO role : user.getRoles()) { + user.setRoleId(role.getRoleId()); + // 获取角色权限泛型 + DataScopeType type = DataScopeType.findCode(role.getDataScope()); + if (ObjectUtil.isNull(type)) { + throw new ServiceException("角色数据范围异常 => " + role.getDataScope()); + } + // 全部数据权限直接返回 + if (type == DataScopeType.ALL) { + return StringUtils.EMPTY; + } + boolean isSuccess = false; + for (DataColumn dataColumn : dataPermission.value()) { + // 包含权限标识符 这直接跳过 + if (ignoreMap.containsKey(dataColumn)) { + // 修复多角色与权限标识符共用问题 https://gitee.com/dromara/RuoYi-Vue-Plus/issues/IB4CS4 + conditions.add(joinStr + " 1 = 1 "); + isSuccess = true; + continue; + } + // 不包含 key 变量 则不处理 + if (!StringUtils.containsAny(type.getSqlTemplate(), keys.toArray(String[]::new))) { + continue; + } + // 当前注解不满足模板 不处理 + if (!StringUtils.containsAny(type.getSqlTemplate(), dataColumn.key())) { + continue; + } + // 忽略数据权限 防止spel表达式内有其他sql查询导致死循环调用 + String sql = DataPermissionHelper.ignore(() -> + parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class) + ); + // 解析sql模板并填充 + conditions.add(joinStr + sql); + isSuccess = true; + } + // 未处理成功则填充兜底方案 + if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) { + conditions.add(joinStr + type.getElseSql()); + } + } + + if (CollUtil.isNotEmpty(conditions)) { + String sql = StreamUtils.join(conditions, Function.identity(), ""); + return sql.substring(joinStr.length()); + } + return StringUtils.EMPTY; + } + + /** + * 扫描指定包下的 Mapper 类,并查找其中带有特定注解的方法或类 + * + * @param mapperPackage Mapper 类所在的包路径 + */ + private void scanMapperClasses(String mapperPackage) { + // 创建资源解析器和元数据读取工厂 + PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + CachingMetadataReaderFactory factory = new CachingMetadataReaderFactory(); + // 将 Mapper 包路径按分隔符拆分为数组 + String[] packagePatternArray = StringUtils.splitPreserveAllTokens(mapperPackage, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); + String classpath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX; + try { + for (String packagePattern : packagePatternArray) { + // 将包路径转换为资源路径 + String path = ClassUtils.convertClassNameToResourcePath(packagePattern); + // 获取指定路径下的所有 .class 文件资源 + Resource[] resources = resolver.getResources(classpath + path + "/*.class"); + for (Resource resource : resources) { + // 获取资源的类元数据 + ClassMetadata classMetadata = factory.getMetadataReader(resource).getClassMetadata(); + // 获取资源对应的类对象 + Class clazz = Resources.classForName(classMetadata.getClassName()); + // 查找类中的特定注解 + findAnnotation(clazz); + } + } + } catch (Exception e) { + log.error("初始化数据安全缓存时出错:{}", e.getMessage()); + } + } + + /** + * 在指定的类中查找特定的注解 DataPermission,并将带有这个注解的方法或类存储到 dataPermissionCacheMap 中 + * + * @param clazz 要查找的类 + */ + private void findAnnotation(Class clazz) { + DataPermission dataPermission; + for (Method method : clazz.getMethods()) { + if (method.isDefault() || method.isVarArgs()) { + continue; + } + String mappedStatementId = clazz.getName() + "." + method.getName(); + if (AnnotationUtil.hasAnnotation(method, DataPermission.class)) { + dataPermission = AnnotationUtil.getAnnotation(method, DataPermission.class); + dataPermissionCacheMap.put(mappedStatementId, dataPermission); + } + } + if (AnnotationUtil.hasAnnotation(clazz, DataPermission.class)) { + dataPermission = AnnotationUtil.getAnnotation(clazz, DataPermission.class); + dataPermissionCacheMap.put(clazz.getName(), dataPermission); + } + } + + /** + * 根据映射语句 ID 或类名获取对应的 DataPermission 注解对象 + * + * @param mapperId 映射语句 ID + * @return DataPermission 注解对象,如果不存在则返回 null + */ + public DataPermission getDataPermission(String mapperId) { + // 检查上下文中是否包含映射语句 ID 对应的 DataPermission 注解对象 + if (DataPermissionHelper.getPermission() != null) { + return DataPermissionHelper.getPermission(); + } + // 检查缓存中是否包含映射语句 ID 对应的 DataPermission 注解对象 + if (dataPermissionCacheMap.containsKey(mapperId)) { + return dataPermissionCacheMap.get(mapperId); + } + // 如果缓存中不包含映射语句 ID 对应的 DataPermission 注解对象,则尝试使用类名作为键查找 + String clazzName = mapperId.substring(0, mapperId.lastIndexOf(".")); + if (dataPermissionCacheMap.containsKey(clazzName)) { + return dataPermissionCacheMap.get(clazzName); + } + return null; + } + + /** + * 检查给定的映射语句 ID 是否有效,即是否能够找到对应的 DataPermission 注解对象 + * + * @param mapperId 映射语句 ID + * @return 如果找到对应的 DataPermission 注解对象,则返回 false;否则返回 true + */ + public boolean invalid(String mapperId) { + return getDataPermission(mapperId) == null; + } + + /** + * 对所有null变量找不到的变量返回默认值 + */ + @AllArgsConstructor + private static class NullSafeStandardEvaluationContext extends StandardEvaluationContext { + + private final Object defaultValue; + + @Override + public Object lookupVariable(String name) { + Object obj = super.lookupVariable(name); + // 如果读取到的值是 null,则返回默认值 + if (obj == null) { + return defaultValue; + } + return obj; + } + + } + + /** + * 对所有null变量找不到的变量返回默认值 委托模式 将不需要处理的方法委托给原处理器 + */ + @AllArgsConstructor + private static class NullSafePropertyAccessor implements PropertyAccessor { + + private final PropertyAccessor delegate; + private final Object defaultValue; + + @Override + public Class[] getSpecificTargetClasses() { + return delegate.getSpecificTargetClasses(); + } + + @Override + public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { + return delegate.canRead(context, target, name); + } + + @Override + public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { + TypedValue value = delegate.read(context, target, name); + // 如果读取到的值是 null,则返回默认值 + if (value.getValue() == null) { + return new TypedValue(defaultValue); + } + return value; + } + + @Override + public boolean canWrite(EvaluationContext context, Object target, String name) throws AccessException { + return delegate.canWrite(context, target, name); + } + + @Override + public void write(EvaluationContext context, Object target, String name, Object newValue) throws AccessException { + delegate.write(context, target, name, newValue); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusPostInitTableInfoHandler.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusPostInitTableInfoHandler.java new file mode 100644 index 00000000..aac6bb55 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/handler/PlusPostInitTableInfoHandler.java @@ -0,0 +1,28 @@ +package org.ruoyi.handler; + +import cn.hutool.core.convert.Convert; +import com.baomidou.mybatisplus.core.handlers.PostInitTableInfoHandler; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import org.apache.ibatis.session.Configuration; +import org.ruoyi.common.core.utils.SpringUtils; +import org.ruoyi.common.core.utils.reflect.ReflectUtils; + + +/** + * 修改表信息初始化方式 + * 目前用于全局修改是否使用逻辑删除 + * + * @author Lion Li + */ +public class PlusPostInitTableInfoHandler implements PostInitTableInfoHandler { + + @Override + public void postTableInfo(TableInfo tableInfo, Configuration configuration) { + String flag = SpringUtils.getProperty("mybatis-plus.enableLogicDelete", "true"); + // 只有关闭时 统一设置false 为true时mp自动判断不处理 + if (!Convert.toBool(flag)) { + ReflectUtils.setFieldValue(tableInfo, "withLogicDelete", false); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java similarity index 91% rename from ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataBaseHelper.java rename to ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java index f060e17a..16a16375 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/common/mybatis/helper/DataBaseHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java @@ -1,12 +1,13 @@ -package org.ruoyi.common.mybatis.helper; +package org.ruoyi.helper; import cn.hutool.core.convert.Convert; import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import lombok.AccessLevel; import lombok.NoArgsConstructor; + import org.ruoyi.common.core.exception.ServiceException; import org.ruoyi.common.core.utils.SpringUtils; -import org.ruoyi.common.mybatis.enums.DataBaseType; +import org.ruoyi.enums.DataBaseType; import javax.sql.DataSource; import java.sql.Connection; @@ -62,8 +63,8 @@ public class DataBaseHelper { // charindex(',100,' , ',0,100,101,') <> 0 return "charindex(',%s,' , ','+%s+',') <> 0".formatted(var, var2); } else if (dataBasyType == DataBaseType.POSTGRE_SQL) { - // (select position(',100,' in ',0,100,101,')) <> 0 - return "(select position(',%s,' in ','||%s||',')) <> 0".formatted(var, var2); + // (select strpos(',0,100,101,' , ',100,')) <> 0 + return "(select strpos(','||%s||',' , ',%s,')) <> 0".formatted(var2, var); } else if (dataBasyType == DataBaseType.ORACLE) { // instr(',0,100,101,' , ',100,') <> 0 return "instr(','||%s||',' , ',%s,') <> 0".formatted(var2, var); @@ -71,6 +72,7 @@ public class DataBaseHelper { // find_in_set(100 , '0,100,101') return "find_in_set('%s' , %s) <> 0".formatted(var, var2); } + /** * 获取当前加载的数据库名 */ diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataPermissionHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataPermissionHelper.java new file mode 100644 index 00000000..3d8f99c8 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataPermissionHelper.java @@ -0,0 +1,176 @@ +package org.ruoyi.helper; + +import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.context.model.SaStorage; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy; +import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.ruoyi.annotation.DataPermission; +import org.ruoyi.common.core.utils.reflect.ReflectUtils; + +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; +import java.util.function.Supplier; + +/** + * 数据权限助手 + * + * @author Lion Li + * @version 3.5.0 + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +@SuppressWarnings("unchecked cast") +public class DataPermissionHelper { + + private static final String DATA_PERMISSION_KEY = "data:permission"; + + private static final ThreadLocal> REENTRANT_IGNORE = ThreadLocal.withInitial(Stack::new); + + private static final ThreadLocal PERMISSION_CACHE = new ThreadLocal<>(); + + /** + * 获取当前执行mapper权限注解 + * + * @return 返回当前执行mapper权限注解 + */ + public static DataPermission getPermission() { + return PERMISSION_CACHE.get(); + } + + /** + * 设置当前执行mapper权限注解 + * + * @param dataPermission 数据权限注解 + */ + public static void setPermission(DataPermission dataPermission) { + PERMISSION_CACHE.set(dataPermission); + } + + /** + * 删除当前执行mapper权限注解 + */ + public static void removePermission() { + PERMISSION_CACHE.remove(); + } + + /** + * 从上下文中获取指定键的变量值,并将其转换为指定的类型 + * + * @param key 变量的键 + * @param 变量值的类型 + * @return 指定键的变量值,如果不存在则返回 null + */ + public static T getVariable(String key) { + Map context = getContext(); + return (T) context.get(key); + } + + /** + * 向上下文中设置指定键的变量值 + * + * @param key 要设置的变量的键 + * @param value 要设置的变量值 + */ + public static void setVariable(String key, Object value) { + Map context = getContext(); + context.put(key, value); + } + + /** + * 获取数据权限上下文 + * + * @return 存储在SaStorage中的Map对象,用于存储数据权限相关的上下文信息 + * @throws NullPointerException 如果数据权限上下文类型异常,则抛出NullPointerException + */ + public static Map getContext() { + SaStorage saStorage = SaHolder.getStorage(); + Object attribute = saStorage.get(DATA_PERMISSION_KEY); + if (ObjectUtil.isNull(attribute)) { + saStorage.set(DATA_PERMISSION_KEY, new HashMap<>()); + attribute = saStorage.get(DATA_PERMISSION_KEY); + } + if (attribute instanceof Map map) { + return map; + } + throw new NullPointerException("data permission context type exception"); + } + + private static IgnoreStrategy getIgnoreStrategy() { + Object ignoreStrategyLocal = ReflectUtils.getStaticFieldValue(ReflectUtils.getField(InterceptorIgnoreHelper.class, "IGNORE_STRATEGY_LOCAL")); + if (ignoreStrategyLocal instanceof ThreadLocal IGNORE_STRATEGY_LOCAL) { + if (IGNORE_STRATEGY_LOCAL.get() instanceof IgnoreStrategy ignoreStrategy) { + return ignoreStrategy; + } + } + return null; + } + + /** + * 开启忽略数据权限(开启后需手动调用 {@link #disableIgnore()} 关闭) + */ + public static void enableIgnore() { + IgnoreStrategy ignoreStrategy = getIgnoreStrategy(); + if (ObjectUtil.isNull(ignoreStrategy)) { + InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().dataPermission(true).build()); + } else { + ignoreStrategy.setDataPermission(true); + } + Stack reentrantStack = REENTRANT_IGNORE.get(); + reentrantStack.push(reentrantStack.size() + 1); + } + + /** + * 关闭忽略数据权限 + */ + public static void disableIgnore() { + IgnoreStrategy ignoreStrategy = getIgnoreStrategy(); + if (ObjectUtil.isNotNull(ignoreStrategy)) { + boolean noOtherIgnoreStrategy = !Boolean.TRUE.equals(ignoreStrategy.getDynamicTableName()) + && !Boolean.TRUE.equals(ignoreStrategy.getBlockAttack()) + && !Boolean.TRUE.equals(ignoreStrategy.getIllegalSql()) + && !Boolean.TRUE.equals(ignoreStrategy.getTenantLine()) + && CollectionUtil.isEmpty(ignoreStrategy.getOthers()); + Stack reentrantStack = REENTRANT_IGNORE.get(); + boolean empty = reentrantStack.isEmpty() || reentrantStack.pop() == 1; + if (noOtherIgnoreStrategy && empty) { + InterceptorIgnoreHelper.clearIgnoreStrategy(); + } else if (empty) { + ignoreStrategy.setDataPermission(false); + } + + } + } + + /** + * 在忽略数据权限中执行 + * + * @param handle 处理执行方法 + */ + public static void ignore(Runnable handle) { + enableIgnore(); + try { + handle.run(); + } finally { + disableIgnore(); + } + } + + /** + * 在忽略数据权限中执行 + * + * @param handle 处理执行方法 + */ + public static T ignore(Supplier handle) { + enableIgnore(); + try { + return handle.get(); + } finally { + disableIgnore(); + } + } + +} diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/interceptor/PlusDataPermissionInterceptor.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/interceptor/PlusDataPermissionInterceptor.java new file mode 100644 index 00000000..10a58e5a --- /dev/null +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/interceptor/PlusDataPermissionInterceptor.java @@ -0,0 +1,181 @@ +package org.ruoyi.interceptor; + +import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper; +import com.baomidou.mybatisplus.core.toolkit.PluginUtils; +import com.baomidou.mybatisplus.extension.plugins.handler.MultiDataPermissionHandler; +import com.baomidou.mybatisplus.extension.plugins.inner.BaseMultiTableInnerInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; +import lombok.extern.slf4j.Slf4j; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.schema.Table; +import net.sf.jsqlparser.statement.delete.Delete; +import net.sf.jsqlparser.statement.select.PlainSelect; +import net.sf.jsqlparser.statement.select.Select; +import net.sf.jsqlparser.statement.select.SetOperationList; +import net.sf.jsqlparser.statement.update.Update; +import org.apache.ibatis.executor.Executor; +import org.apache.ibatis.executor.statement.StatementHandler; +import org.apache.ibatis.mapping.BoundSql; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlCommandType; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.ruoyi.handler.PlusDataPermissionHandler; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +/** + * 数据权限拦截器 + * + * @author Lion Li + * @version 3.5.0 + */ +@Slf4j +public class PlusDataPermissionInterceptor extends BaseMultiTableInnerInterceptor implements InnerInterceptor { + + private final PlusDataPermissionHandler dataPermissionHandler; + + /** + * 构造函数,初始化 PlusDataPermissionHandler 实例 + * + * @param mapperPackage 扫描的映射器包 + */ + public PlusDataPermissionInterceptor(String mapperPackage) { + this.dataPermissionHandler = new PlusDataPermissionHandler(mapperPackage); + } + + /** + * 在执行查询之前,检查并处理数据权限相关逻辑 + * + * @param executor MyBatis 执行器对象 + * @param ms 映射语句对象 + * @param parameter 方法参数 + * @param rowBounds 分页对象 + * @param resultHandler 结果处理器 + * @param boundSql 绑定的 SQL 对象 + * @throws SQLException 如果发生 SQL 异常 + */ + @Override + public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { + // 检查是否需要忽略数据权限处理 + if (InterceptorIgnoreHelper.willIgnoreDataPermission(ms.getId())) { + return; + } + // 检查是否缺少有效的数据权限注解 + if (dataPermissionHandler.invalid(ms.getId())) { + return; + } + // 解析 sql 分配对应方法 + PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql); + mpBs.sql(parserSingle(mpBs.sql(), ms.getId())); + } + + /** + * 在准备 SQL 语句之前,检查并处理更新和删除操作的数据权限相关逻辑 + * + * @param sh MyBatis StatementHandler 对象 + * @param connection 数据库连接对象 + * @param transactionTimeout 事务超时时间 + */ + @Override + public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) { + PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh); + MappedStatement ms = mpSh.mappedStatement(); + // 获取 SQL 命令类型(增、删、改、查) + SqlCommandType sct = ms.getSqlCommandType(); + + // 只处理更新和删除操作的 SQL 语句 + if (sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) { + if (InterceptorIgnoreHelper.willIgnoreDataPermission(ms.getId())) { + return; + } + // 检查是否缺少有效的数据权限注解 + if (dataPermissionHandler.invalid(ms.getId())) { + return; + } + PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql(); + mpBs.sql(parserMulti(mpBs.sql(), ms.getId())); + } + } + + /** + * 处理 SELECT 查询语句中的 WHERE 条件 + * + * @param select SELECT 查询对象 + * @param index 查询语句的索引 + * @param sql 查询语句 + * @param obj WHERE 条件参数 + */ + @Override + protected void processSelect(Select select, int index, String sql, Object obj) { + if (select instanceof PlainSelect) { + this.setWhere((PlainSelect) select, (String) obj); + } else if (select instanceof SetOperationList setOperationList) { + List - + select column_name, (case when (is_nullable = 'no' column_key != 'PRI') then '1' else null end) as is_required, (case when column_key = 'PRI' then '1' else '0' end) as is_pk, @@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from information_schema.columns where table_schema = (select database()) and table_name = (#{tableName}) order by ordinal_position - + select lower(temp.column_name) as column_name, (case when (temp.nullable = 'N' and temp.constraint_type != 'P') then '1' else null end) as is_required, (case when temp.constraint_type = 'P' then '1' else '0' end) as is_pk, @@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE temp.row_flg = 1 ORDER BY temp.column_id - + SELECT column_name, is_required, is_pk, sort, column_comment, is_increment, column_type FROM ( SELECT c.relname AS table_name, @@ -73,7 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE table_name = (#{tableName}) AND column_type ]]> '-' - + SELECT cast(A.NAME as nvarchar) as column_name, cast(B.NAME as nvarchar) + (case when B.NAME = 'numeric' then '(' + cast(A.prec as nvarchar) + ',' + cast(A.scale as nvarchar) + ')' else '' end) as column_type, diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index a0a7695c..6c994d82 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT * FROM test_demo ${ew.customSqlSegment} - - - diff --git a/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml b/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml deleted file mode 100644 index 46b0e366..00000000 --- a/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/demo/TestTreeMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/package-info.md b/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/package-info.md deleted file mode 100644 index c938b1e5..00000000 --- a/ruoyi-modules/ruoyi-demo/src/main/resources/mapper/package-info.md +++ /dev/null @@ -1,3 +0,0 @@ -java包使用 `.` 分割 resource 目录使用 `/` 分割 -
    -此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/domain/GenTableColumn.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/domain/GenTableColumn.java index c88836f1..e96dec61 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/domain/GenTableColumn.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/domain/GenTableColumn.java @@ -41,7 +41,7 @@ public class GenTableColumn extends BaseEntity { /** * 列描述 */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String columnComment; /** @@ -63,43 +63,43 @@ public class GenTableColumn extends BaseEntity { /** * 是否主键(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isPk; /** * 是否自增(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isIncrement; /** * 是否必填(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isRequired; /** * 是否为插入字段(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isInsert; /** * 是否编辑字段(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isEdit; /** * 是否列表字段(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isList; /** * 是否查询字段(1是) */ - @TableField(updateStrategy = FieldStrategy.IGNORED, jdbcType = JdbcType.VARCHAR) + @TableField(updateStrategy = FieldStrategy.ALWAYS, jdbcType = JdbcType.VARCHAR) private String isQuery; /** From a4314dbbdefa806e923d1fd18016a7469804e0e2 Mon Sep 17 00:00:00 2001 From: ageer Date: Mon, 14 Apr 2025 23:10:17 +0800 Subject: [PATCH 19/27] =?UTF-8?q?feat:=20mcp=E6=B5=8B=E8=AF=95=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-extend/call-mcp-server/pom.xml | 83 +++++ .../CallMcpServerApplication.java | 13 + .../callmcpserver/cofing/McpClientCfg.java | 22 ++ .../callmcpserver/view/ChatController.java | 74 ++++ .../callmcpserver/view/IndexController.java | 21 ++ .../src/main/resources/application.yaml | 16 + .../src/main/resources/mcp-server-bak.json | 40 +++ .../src/main/resources/mcp-server.json | 20 ++ .../src/main/resources/templates/index.html | 148 ++++++++ ruoyi-extend/ruoyi-mcp-server/pom.xml | 20 +- .../ruoyi/mcp/service/McpCustomService.java | 11 +- .../src/main/resources/application-dev.yml | 97 ----- .../src/main/resources/application-mcp.yml | 10 - .../src/main/resources/application.yml | 332 +----------------- 14 files changed, 455 insertions(+), 452 deletions(-) create mode 100644 ruoyi-extend/call-mcp-server/pom.xml create mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java create mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java create mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java create mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java create mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/application.yaml create mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json create mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json create mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-dev.yml delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-mcp.yml diff --git a/ruoyi-extend/call-mcp-server/pom.xml b/ruoyi-extend/call-mcp-server/pom.xml new file mode 100644 index 00000000..3f061817 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/pom.xml @@ -0,0 +1,83 @@ + + 4.0.0 + + org.ruoyi + ruoyi-ai + 1.0.0 + ../../pom.xml + + call-mcp-server + Archetype - call-mcp-server + http://maven.apache.org + + + 17 + + + + + + + org.springframework.ai + spring-ai-bom + 1.0.0-M6 + pom + import + + + + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + org.springframework.ai + spring-ai-mcp-client-spring-boot-starter + 1.0.0-M6 + + + + org.springframework.ai + spring-ai-openai-spring-boot-starter + + + + + org.springframework.ai + spring-ai-mcp + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java new file mode 100644 index 00000000..213df755 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java @@ -0,0 +1,13 @@ +package org.ruoyi.rocket.callmcpserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class CallMcpServerApplication { + + public static void main(String[] args) { + SpringApplication.run(CallMcpServerApplication.class, args); + } + +} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java new file mode 100644 index 00000000..26936890 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java @@ -0,0 +1,22 @@ +package org.ruoyi.rocket.callmcpserver.cofing; + +import io.modelcontextprotocol.client.McpClient; +import org.springframework.ai.mcp.customizer.McpSyncClientCustomizer; +import org.springframework.context.annotation.Configuration; + +import java.time.Duration; + + +/** + * @author ageer + */ +@Configuration +public class McpClientCfg implements McpSyncClientCustomizer { + + + @Override + public void customize(String name, McpClient.SyncSpec spec) { + // do nothing + spec.requestTimeout(Duration.ofSeconds(30)); + } +} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java new file mode 100644 index 00000000..27c837e7 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java @@ -0,0 +1,74 @@ +package org.ruoyi.rocket.callmcpserver.view; + +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.ai.chat.client.ChatClient; +import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; +import org.springframework.ai.chat.memory.ChatMemory; +import org.springframework.ai.chat.memory.InMemoryChatMemory; +import org.springframework.ai.chat.model.ChatResponse; +import org.springframework.ai.openai.OpenAiChatOptions; +import org.springframework.ai.tool.ToolCallbackProvider; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; + + +/** + * @author jianzhang + * 2025/03/18/下午8:00 + */ +@RestController +@RequestMapping("/dashscope/chat-client") +public class ChatController { + + private final ChatClient chatClient; + + private final ChatMemory chatMemory = new InMemoryChatMemory(); + + public ChatController(ChatClient.Builder chatClientBuilder,ToolCallbackProvider tools) { + this.chatClient = chatClientBuilder + .defaultTools(tools) + .defaultOptions( + OpenAiChatOptions.builder().model("gpt-4o-mini").build()) + .build(); + } + + @RequestMapping(value = "/generate_stream", method = RequestMethod.GET) + public Flux generateStream(HttpServletResponse response, @RequestParam("id") String id, @RequestParam("prompt") String prompt) { + response.setCharacterEncoding("UTF-8"); + var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, id, 10); + + + Flux chatResponseFlux = this.chatClient.prompt(prompt) + .advisors(messageChatMemoryAdvisor) + .stream() + .chatResponse(); + + Flux content = this.chatClient.prompt(prompt) + .advisors(messageChatMemoryAdvisor) + .stream() + .content(); + + content.subscribe( + content1 -> System.out.println("chatResponse"+content1) + ); + return chatResponseFlux; + + + } + + + @GetMapping("/advisor/chat/{id}/{prompt}") + public Flux advisorChat( + HttpServletResponse response, + @PathVariable String id, + @PathVariable String prompt) { + + response.setCharacterEncoding("UTF-8"); + var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, id, 10); + return this.chatClient.prompt(prompt) + .advisors(messageChatMemoryAdvisor).stream().content(); + } + + + +} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java new file mode 100644 index 00000000..ed03e33a --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java @@ -0,0 +1,21 @@ +package org.ruoyi.rocket.callmcpserver.view; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @author jianzhang + * 2025/03/18/下午8:00 + */ +@Controller +public class IndexController { + + @GetMapping("/") + public String chat(Model model) { + //model.addAttribute("name", "User"); + // 返回视图名称,对应 templates/index.html + return "index"; + } + +} diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml b/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml new file mode 100644 index 00000000..f4b4577f --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml @@ -0,0 +1,16 @@ +server: + port: 9999 +spring: + ai: + openai: + api-key: sk-xXe1WMPjhlVb1aiI1b4c6c8934D8463f9e4b67Ed8718B772 + base-url: https://api.pandarobot.chat/ + mcp: + client: + enabled: true + name: call-mcp-server + sse: + connections: + server1: + url: http://127.0.0.1:6040 + diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json new file mode 100644 index 00000000..842d6955 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json @@ -0,0 +1,40 @@ +{ + "mcpServers": { + "fileSystem": { + "command": "D:\\software\\nodeJs\\npx.cmd", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "D:\\software\\sqlite" + ] + }, + "sqlLite": { + "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", + "args": [ + "mcp-server-sqlite", + "--db-path", + "D:\\work-space-study\\spring-ai-mcp-demo\\mcp-client\\src\\main\\resources\\test.db" + ] + }, + "fetch": { + "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", + "args": [ + "mcp-server-fetch" + ] + }, + "baidu-map": { + "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", + "args": [ + "run", + "--with", + "mcp[cli]", + "mcp", + "run", + "D:\\work-space-python\\python-baidu-map\\baidu_map_mcp_server\\map.py" + ], + "env": { + "BAIDU_MAPS_API_KEY": "{百度地图API-KEY}" + } + } + } +} \ No newline at end of file diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json new file mode 100644 index 00000000..a639d152 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json @@ -0,0 +1,20 @@ +{ + "mcpServers": { + "fileSystem": { + "command": "D:\\software\\nodeJs\\npx.cmd", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "D:\\software\\sqlite" + ] + }, + "sqlLite": { + "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", + "args": [ + "mcp-server-sqlite", + "--db-path", + "D:\\work-space-study\\spring-ai-mcp-demo\\mcp-client\\src\\main\\resources\\test.db" + ] + } + } +} diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html b/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html new file mode 100644 index 00000000..be98e857 --- /dev/null +++ b/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html @@ -0,0 +1,148 @@ + + + + + + AI 对话助手 + + + +
    + +
    +

    AI 对话助手

    +

    基于 Spring AI 的流式对话系统 By AhuCodingBeast

    +
    + + +
    + +
    +
    + 您好!我是AI助手,有什么可以帮您? +
    +
    +
    + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/ruoyi-extend/ruoyi-mcp-server/pom.xml b/ruoyi-extend/ruoyi-mcp-server/pom.xml index 63ff2bcf..d35402c7 100644 --- a/ruoyi-extend/ruoyi-mcp-server/pom.xml +++ b/ruoyi-extend/ruoyi-mcp-server/pom.xml @@ -49,16 +49,16 @@ spring-ai-mcp - - org.ruoyi - ruoyi-system-api - - - org.ruoyi - ruoyi-common-translation - - - + + + + + + + + + + diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java index 5757dc84..1e693762 100644 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java +++ b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java @@ -1,8 +1,5 @@ package org.ruoyi.mcp.service; -import lombok.RequiredArgsConstructor; -import org.ruoyi.system.domain.vo.SysUserVo; -import org.ruoyi.system.mapper.SysUserMapper; import org.springframework.ai.tool.annotation.Tool; import org.springframework.stereotype.Service; @@ -10,18 +7,14 @@ import org.springframework.stereotype.Service; * @author ageer */ @Service -@RequiredArgsConstructor public class McpCustomService { - private final SysUserMapper userMapper; - - public record User(String userName, Double userBalance) { + public record User(String userName, String userBalance) { } @Tool(description = "根据用户名称查询用户信息") public User getUserBalance(String username) { - SysUserVo sysUserVo = userMapper.selectUserByUserName(username); - return new User(sysUserVo.getUserName(),sysUserVo.getUserBalance()); + return new User("admin","99.99"); } } diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-dev.yml b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-dev.yml deleted file mode 100644 index dbdc1f3e..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-dev.yml +++ /dev/null @@ -1,97 +0,0 @@ ---- # 监控中心配置 -spring.boot.admin.client: - # 增加客户端开关 - enabled: false - url: http://localhost:9090/admin - instance: - service-host-type: IP - username: ruoyi - password: 123456 - ---- # 数据源配置 -spring: - datasource: - type: com.zaxxer.hikari.HikariDataSource - # 动态数据源文档 https://www.kancloud.cn/tracy5546/dynamic-datasource/content - dynamic: - # 性能分析插件(有性能损耗 不建议生产环境使用) - p6spy: true - # 设置默认的数据源或者数据源组,默认值即为 master - primary: master - # 严格模式 匹配不到数据源则报错 - strict: true - datasource: - # 主库数据源 - master: - type: ${spring.datasource.type} - driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://43.139.70.230:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true - username: ry-vue - password: xx - - hikari: - # 最大连接池数量 - maxPoolSize: 20 - # 最小空闲线程数量 - minIdle: 10 - # 配置获取连接等待超时的时间 - connectionTimeout: 30000 - # 校验超时时间 - validationTimeout: 5000 - # 空闲连接存活最大时间,默认10分钟 - idleTimeout: 600000 - # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟 - maxLifetime: 1800000 - # 连接测试query(配置检测连接是否有效) - connectionTestQuery: SELECT 1 - # 多久检查一次连接的活性 - keepaliveTime: 30000 - ---- # redis 单机配置(单机与集群只能开启一个另一个需要注释掉) -spring.data: - redis: - # 地址 - host: 127.0.0.1 - # 端口,默认为6379 - port: 6379 - # 数据库索引 - database: 0 - # 密码(如没有密码请注释掉) - # password: 123456 - # 连接超时时间 - timeout: 10S - -redisson: - # redis key前缀 - keyPrefix: - # 线程池数量 - threads: 4 - # Netty线程池数量 - nettyThreads: 8 - # 单节点配置 - singleServerConfig: - # 客户端名称 - clientName: ${ruoyi.name} - # 最小空闲连接数 - connectionMinimumIdleSize: 8 - # 连接池大小 - connectionPoolSize: 32 - # 连接空闲超时,单位:毫秒 - idleConnectionTimeout: 10000 - # 命令等待超时,单位:毫秒 - timeout: 3000 - # 发布和订阅连接池大小 - subscriptionConnectionPoolSize: 50 - ---- # sms 短信 -sms: - enabled: false - # 阿里云 dysmsapi.aliyuncs.com - # 腾讯云 sms.tencentcloudapi.com - endpoint: "dysmsapi.aliyuncs.com" - accessKeyId: xxxxxxx - accessKeySecret: xxxxxx - signName: 测试 - # 腾讯专用 - sdkAppId: - diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-mcp.yml b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-mcp.yml deleted file mode 100644 index 57f9979d..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application-mcp.yml +++ /dev/null @@ -1,10 +0,0 @@ -spring: - application: - name: mcp-server - ai: - mcp: - server: - name: webmvc-mcp-server - version: 1.0.0 - type: SYNC - sse-message-endpoint: /mcp/messages diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml index 7bad7a51..82b2bdd9 100644 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml +++ b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml @@ -1,332 +1,12 @@ - -# 项目相关配置 -ruoyi: - # 名称 - name: "ruoyi" - # 版本 - version: ${revision} - # 版权年份 - copyrightYear: 2025 - # 实例演示开关 - demoEnabled: true - # 获取ip地址开关 - addressEnabled: false - -captcha: - enable: false - # 页面 <参数设置> 可开启关闭 验证码校验 - # 验证码类型 math 数组计算 char 字符验证 - type: MATH - # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰 - category: CIRCLE - # 数字验证码位数 - numberLength: 1 - # 字符验证码长度 - charLength: 4 - -# 开发环境配置 server: - # 服务器的HTTP端口,默认为8080 port: 6040 - servlet: - # 应用的访问路径 - context-path: / - # undertow 配置 - undertow: - # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的 - max-http-post-size: -1 - # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 - # 每块buffer的空间大小,越小的空间被利用越充分 - buffer-size: 512 - # 是否分配的直接内存 - direct-buffers: true - threads: - # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 - io: 8 - # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 - worker: 256 -# 用户配置 -user: - password: - # 密码最大错误次数 - maxRetryCount: 5 - # 密码锁定时间(默认10分钟) - lockTime: 10 - -# Spring配置 spring: application: - name: ${ruoyi.name} - # 资源信息 - messages: - # 国际化资源文件路径 - basename: i18n/messages - profiles: - active: @profiles.active@ - # 文件上传 - servlet: - multipart: - # 单个文件大小 - max-file-size: 50MB - # 设置总上传的文件大小 - max-request-size: 200MB - mvc: - format: - date-time: yyyy-MM-dd HH:mm:ss - jackson: - # 日期格式化 - date-format: yyyy-MM-dd HH:mm:ss - serialization: - # 格式化输出 - indent_output: false - # 忽略无法转换的对象 - fail_on_empty_beans: false - deserialization: - # 允许对象忽略json中不存在的属性 - fail_on_unknown_properties: false - -# Sa-Token配置 -sa-token: - # token名称 (同时也是cookie名称) - token-name: Authorization - # token有效期 设为7天 (必定过期) 单位: 秒 - timeout: 604800 - # token临时有效期 (指定时间无操作就过期) 单位: 秒 - activity-timeout: 604800 - # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) - is-concurrent: true - # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) - is-share: false - # 是否尝试从header里读取token - is-read-header: true - # 是否尝试从cookie里读取token - is-read-cookie: false - # token前缀 - token-prefix: "Bearer" - # jwt秘钥 - jwt-secret-key: abcdefghijklmnopqrstuvwxyz - -# security配置 -security: - # 排除路径 - excludes: - # 支付回调 - - /pay/returnUrl - - /pay/notifyUrl - # 上传文件 - - /resource/oss/upload - # 重置密码 - - /auth/reset/password - # 聊天接口 - - /chat - # 静态资源 - - /*.html - - /**/*.html - - /**/*.css - - /**/*.js - # 公共路径 - - /favicon.ico - - /error - # swagger 文档配置 - - /*/api-docs - - /*/api-docs/** - # actuator 监控配置 - - /actuator - - /actuator/** -# 多租户配置 -tenant: - # 是否开启 - enable: false - # 排除表 - excludes: - - sys_menu - - sys_tenant - - sys_tenant_package - - sys_role_dept - - sys_role_menu - - sys_user_post - - sys_user_role - -# MyBatisPlus配置 -# https://baomidou.com/config/ -mybatis-plus: - # 不支持多包, 如有需要可在注解配置 或 提升扫包等级 - # 例如 com.**.**.mapper - mapperPackage: org.ruoyi.**.mapper - # 对应的 XML 文件位置 - mapperLocations: classpath*:mapper/**/*Mapper.xml - # 实体扫描,多个package用逗号或者分号分隔 - typeAliasesPackage: org.ruoyi.**.domain - # 启动时是否检查 MyBatis XML 文件的存在,默认不检查 - checkConfigLocation: false - configuration: - # 自动驼峰命名规则(camel case)映射 - mapUnderscoreToCamelCase: true - # MyBatis 自动映射策略 - # NONE:不启用 PARTIAL:只对非嵌套 resultMap 自动映射 FULL:对所有 resultMap 自动映射 - autoMappingBehavior: FULL - # MyBatis 自动映射时未知列或未知属性处理策 - # NONE:不做处理 WARNING:打印相关警告 FAILING:抛出异常和详细信息 - autoMappingUnknownColumnBehavior: NONE - # 更详细的日志输出 会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl - # 关闭日志记录 (可单纯使用 p6spy 分析) org.apache.ibatis.logging.nologging.NoLoggingImpl - # 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl - logImpl: org.apache.ibatis.logging.nologging.NoLoggingImpl - global-config: - # 是否打印 Logo banner - banner: true - dbConfig: - # 主键类型 - # AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID - idType: ASSIGN_ID - # 逻辑已删除值 - logicDeleteValue: 2 - # 逻辑未删除值 - logicNotDeleteValue: 0 - # 字段验证策略之 insert,在 insert 的时候的字段验证策略 - # IGNORED 忽略 NOT_NULL 非NULL NOT_EMPTY 非空 DEFAULT 默认 NEVER 不加入 SQL - insertStrategy: NOT_NULL - # 字段验证策略之 update,在 update 的时候的字段验证策略 - updateStrategy: NOT_NULL - # 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件 - where-strategy: NOT_NULL - -# 数据加密 -mybatis-encryptor: - # 是否开启加密 - enable: false - # 默认加密算法 - algorithm: BASE64 - # 编码方式 BASE64/HEX。默认BASE64 - encode: BASE64 - # 安全秘钥 对称算法的秘钥 如:AES,SM4 - password: - # 公私钥 非对称算法的公私钥 如:SM2,RSA - publicKey: - privateKey: - -# Swagger配置 -swagger: - info: - # 标题 - title: '标题:${ruoyi.name}多租户管理系统_接口文档' - # 描述 - description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...' - # 版本 - version: '版本号: ${ruoyi.version}' - # 作者信息 - contact: - name: ageerle - email: ageerle@163.com - url: https://gitee.com/ageerle/ruoyi-ai - components: - # 鉴权方式配置 - security-schemes: - apiKey: - type: APIKEY - in: HEADER - name: ${sa-token.token-name} - -springdoc: - api-docs: - # 是否开启接口文档 - enabled: true - swagger-ui: - # 持久化认证数据 - persistAuthorization: true - #这里定义了两个分组,可定义多个,也可以不定义 - group-configs: - - group: 1.演示模块 - packages-to-scan: org.ruoyi.demo - - group: 2.通用模块 - packages-to-scan: org.ruoyi.web - - group: 3.系统模块 - packages-to-scan: org.ruoyi.system - - group: 4.代码生成模块 - packages-to-scan: org.ruoyi.generator - -# 防止XSS攻击 -xss: - # 过滤开关 - enabled: true - # 排除链接(多个用逗号分隔) - excludes: /system/notice - # 匹配链接 - urlPatterns: /system/*,/monitor/*,/tool/* - -# 全局线程池相关配置 -thread-pool: - # 是否开启线程池 - enabled: false - # 队列最大长度 - queueCapacity: 128 - # 线程池维护线程所允许的空闲时间 - keepAliveSeconds: 300 - ---- # 分布式锁 lock4j 全局配置 -lock4j: - # 获取分布式锁超时时间,默认为 3000 毫秒 - acquire-timeout: 3000 - # 分布式锁的超时时间,默认为 30 秒 - expire: 30000 - ---- # Actuator 监控端点的配置项 -management: - endpoints: - web: - exposure: - include: '*' - endpoint: - health: - show-details: ALWAYS - logfile: - external-file: ./logs/sys-console.log - -# websocket -websocket: - enabled: true - # 路径 - path: '/resource/websocket' - # 设置访问源地址 - allowedOrigins: '*' - -# 微信小程序配置信息 -wx: - miniapp: - configs: - - appid: # 你的appid - secret: # 你的secret - token: #微信小程序消息服务器配置的token - aesKey: #微信小程序消息服务器配置的EncodingAESKey - msgDataFormat: JSON - - # 企业微信应用 -wechat: - cp: - corpId: - appConfigs: - - agentId: - secret: '' - token: '' - aesKey: '' - -spring: + name: mcp-server ai: - openai: - api-key: sk-xX - base-url: https://api.pandarobot.chat - ollama: - base-url: http://localhost:11434 - init: - pull-model-strategy: always - timeout: 60s - max-retries: 1 mcp: - client: - enabled: true - name: call-mcp-server - sse: - connections: - server1: - url: http://127.0.0.1:8080 - + server: + name: webmvc-mcp-server + version: 1.0.0 + type: SYNC + sse-message-endpoint: /mcp/messages From f24ff5bbdd4f6385d23aaff5d6da646cfccf1597 Mon Sep 17 00:00:00 2001 From: ageerle Date: Tue, 15 Apr 2025 17:34:21 +0800 Subject: [PATCH 20/27] =?UTF-8?q?feat:=20mcp=20=E6=B5=8B=E8=AF=95=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/ruoyi/chat/enums/ChatModeType.java | 26 ++++ .../service/chat/impl/SseServiceImpl.java | 126 ++---------------- 2 files changed, 39 insertions(+), 113 deletions(-) create mode 100644 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java new file mode 100644 index 00000000..772e029f --- /dev/null +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/enums/ChatModeType.java @@ -0,0 +1,26 @@ +package org.ruoyi.chat.enums; + +import lombok.Getter; + +@Getter +public enum ChatModeType { + OLLAMA("ollama", "本地部署模型"), // token扣费 + CHAT("chat", "中转模型"), // 次数扣费 + VECTOR("vector", "知识库向量模型"); // 次数扣费 + + private final String code; + private final String description; + + ChatModeType(String code, String description) { + this.code = code; + this.description = description; + } + + public String getCode() { + return code; + } + + public String getDescription() { + return description; + } +} diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 4f5dcc55..178f58f4 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -2,39 +2,29 @@ package org.ruoyi.chat.service.chat.impl; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.collection.CollectionUtil; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.protobuf.ServiceException; -import com.zhipu.oapi.ClientV4; -import com.zhipu.oapi.service.v4.tools.*; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import okhttp3.*; - -import org.ruoyi.chat.config.ChatConfig; -import org.ruoyi.chat.listener.SSEEventSourceListener; +import okhttp3.ResponseBody; +import org.ruoyi.chat.enums.ChatModeType; import org.ruoyi.chat.service.chat.IChatCostService; -import org.ruoyi.chat.service.chat.IChatService; import org.ruoyi.chat.service.chat.ISseService; import org.ruoyi.chat.util.IpUtil; import org.ruoyi.common.chat.config.LocalCache; -import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.chat.entity.Tts.TextToSpeech; import org.ruoyi.common.chat.entity.chat.ChatCompletion; import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; - import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.entity.files.UploadFileResponse; import org.ruoyi.common.chat.entity.whisper.WhisperResponse; import org.ruoyi.common.chat.openai.OpenAiStreamClient; -import org.ruoyi.common.core.service.ConfigService; +import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.core.utils.DateUtils; import org.ruoyi.common.core.utils.StringUtils; import org.ruoyi.common.core.utils.file.FileUtils; import org.ruoyi.common.core.utils.file.MimeTypeUtils; - import org.ruoyi.common.redis.utils.RedisUtils; - import org.ruoyi.domain.vo.ChatModelVo; import org.ruoyi.service.EmbeddingService; import org.ruoyi.service.IChatModelService; @@ -55,11 +45,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; @Service @Slf4j @@ -72,19 +58,16 @@ public class SseServiceImpl implements ISseService { private final VectorStoreService vectorStore; - private final ConfigService configService; - private final IChatCostService chatCostService; - private final IChatService chatService; - private final IChatModelService chatModelService; - private static final String requestIdTemplate = "company-%d"; + private final OpenAIServiceImpl openAIService; - private static final ObjectMapper mapper = new ObjectMapper(); + private final OllamaServiceImpl ollamaService; + + private ChatModelVo chatModelVo; - private final ChatConfig chatConfig; @Override public SseEmitter sseChat(ChatRequest chatRequest, HttpServletRequest request) { @@ -100,7 +83,7 @@ public class SseServiceImpl implements ISseService { chatRequest.setUserId(chatCostService.getUserId()); // 保存消息记录 并扣除费用 - // chatCostService.deductToken(chatRequest); + chatCostService.deductToken(chatRequest); } // 根据模型名称前缀调用不同的处理逻辑 switchModelAndHandle(chatRequest,sseEmitter); @@ -143,35 +126,11 @@ public class SseServiceImpl implements ISseService { * 根据模型名称前缀调用不同的处理逻辑 */ private void switchModelAndHandle(ChatRequest chatRequest,SseEmitter emitter) { - SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(emitter); - String model = chatRequest.getModel(); - // 如果模型名称以ollama开头,则调用ollama中部署的本地模型 - if (model.startsWith("ollama-")) { - String[] parts = chatRequest.getModel().split("ollama-", 2); - if (parts.length > 1) { - chatRequest.setModel(parts[1]); - chatService.mcpChat(chatRequest,emitter); - } else { - throw new IllegalArgumentException("Invalid ollama model name: " + chatRequest.getModel()); - } + // 调用ollama中部署的本地模型 + if (ChatModeType.OLLAMA.getCode().equals(chatModelVo.getCategory())) { + ollamaService.chat(chatRequest,emitter); } else { - - if (model.startsWith("gpt-4-gizmo")) { - chatRequest.setModel("gpt-4-gizmo"); - } - ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); - //openAiStreamClient = chatConfig.createOpenAiStreamClient(chatModelVo.getApiHost(), chatModelVo.getApiKey()); - - ChatCompletion completion = ChatCompletion - .builder() - .messages(chatRequest.getMessages()) - .model(chatRequest.getModel()) - .temperature(0.2) - .topP(1.0) - .stream(true) - .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); - + openAIService.chat(chatRequest,emitter); } } @@ -179,7 +138,7 @@ public class SseServiceImpl implements ISseService { * 构建消息列表 */ private void buildChatMessageList(ChatRequest chatRequest){ - ChatModelVo chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); + chatModelVo = chatModelService.selectModelByName(chatRequest.getModel()); // 获取对话消息列表 List messages = chatRequest.getMessages(); String sysPrompt = chatModelVo.getSystemPrompt(); @@ -220,11 +179,6 @@ public class SseServiceImpl implements ISseService { } // 设置对话信息 chatRequest.setPrompt(chatString); - // 加载联网信息 - if(chatRequest.getSearch()){ - Message message = Message.builder().role(Message.Role.ASSISTANT).content("联网信息:"+webSearch(chatString)).build(); - messages.add(message); - } } @@ -333,58 +287,4 @@ public class SseServiceImpl implements ISseService { return chatCompletionResponse.getChoices().get(0).getMessage().getContent().toString(); } - @Override - public String webSearch (String prompt) { - String zpValue = configService.getConfigValue("zhipu", "key"); - if(StringUtils.isEmpty(zpValue)){ - throw new IllegalStateException("请在chat_config中配置智谱key信息"); - }else { - ClientV4 client = new ClientV4.Builder(zpValue) - .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS) - .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS)) - .build(); - - SearchChatMessage jsonNodes = new SearchChatMessage(); - jsonNodes.setRole(Message.Role.USER.getName()); - jsonNodes.setContent(prompt); - - String requestId = String.format(requestIdTemplate, System.currentTimeMillis()); - WebSearchParamsRequest chatCompletionRequest = WebSearchParamsRequest.builder() - .model("web-search-pro") - .stream(Boolean.TRUE) - .messages(Collections.singletonList(jsonNodes)) - .requestId(requestId) - .build(); - WebSearchApiResponse webSearchApiResponse = client.webSearchProStreamingInvoke(chatCompletionRequest); - List choices = new ArrayList<>(); - if (webSearchApiResponse.isSuccess()) { - AtomicBoolean isFirst = new AtomicBoolean(true); - - AtomicReference lastAccumulator = new AtomicReference<>(); - - webSearchApiResponse.getFlowable().map(result -> result) - .doOnNext(accumulator -> { - { - if (isFirst.getAndSet(false)) { - log.info("Response: "); - } - ChoiceDelta delta = accumulator.getChoices().get(0).getDelta(); - if (delta != null && delta.getToolCalls() != null) { - log.info("tool_calls: {}", mapper.writeValueAsString(delta.getToolCalls())); - } - choices.add(delta); - } - }) - .doOnComplete(() -> System.out.println("Stream completed.")) - .doOnError(throwable -> System.err.println("Error: " + throwable)) - .blockingSubscribe(); - - WebSearchPro chatMessageAccumulator = lastAccumulator.get(); - webSearchApiResponse.setFlowable(null); - webSearchApiResponse.setData(chatMessageAccumulator); - } - return choices.get(1).getToolCalls().toString(); - } - } - } From d1006f50ad802db5857aed54ffcc36043a7eef0c Mon Sep 17 00:00:00 2001 From: ageerle Date: Wed, 16 Apr 2025 10:25:10 +0800 Subject: [PATCH 21/27] feat: mcp-1.0.0 --- .../src/main/resources/application.yml | 15 -- .../common/chat/request/ChatRequest.java | 5 + ruoyi-extend/call-mcp-server/pom.xml | 83 ---------- .../CallMcpServerApplication.java | 13 -- .../callmcpserver/cofing/McpClientCfg.java | 22 --- .../callmcpserver/view/ChatController.java | 74 --------- .../callmcpserver/view/IndexController.java | 21 --- .../src/main/resources/application.yaml | 16 -- .../src/main/resources/mcp-server-bak.json | 40 ----- .../src/main/resources/mcp-server.json | 20 --- .../src/main/resources/templates/index.html | 148 ------------------ ruoyi-extend/pom.xml | 2 +- .../ruoyi-ai-mcp-webflux-server/pom.xml | 91 +++++++++++ .../com/ivy/mcp/sse/client/ClientWebflux.java | 34 ++++ .../server/McpWebfluxServerApplication.java | 42 +++++ .../src/main/resources/application.properties | 7 + ruoyi-extend/ruoyi-mcp-server/pom.xml | 64 -------- .../org/ruoyi/mcp/McpServerApplication.java | 16 -- .../org/ruoyi/mcp/config/McpServerConfig.java | 100 ------------ .../ruoyi/mcp/service/McpCustomService.java | 20 --- .../src/main/resources/application.yml | 12 -- ruoyi-modules-api/ruoyi-chat-api/pom.xml | 14 +- .../org/ruoyi/chat/config/ChatConfig.java | 2 +- .../ruoyi/chat/service/chat/IChatService.java | 5 - .../ruoyi/chat/service/chat/ISseService.java | 7 - .../service/chat/impl/OpenAIServiceImpl.java | 116 +++++++------- 26 files changed, 250 insertions(+), 739 deletions(-) delete mode 100644 ruoyi-extend/call-mcp-server/pom.xml delete mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java delete mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java delete mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java delete mode 100644 ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java delete mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/application.yaml delete mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json delete mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json delete mode 100644 ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html create mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml create mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java create mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java create mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties delete mode 100644 ruoyi-extend/ruoyi-mcp-server/pom.xml delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index d51ac509..bc654111 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -320,19 +320,4 @@ wechat: token: '' aesKey: '' -spring: - ai: - openai: - api-key: sk-xX - base-url: https://api.pandarobot.chat/ - ollama: - base-url: http://localhost:11434 - mcp: - client: - enabled: true - name: call-mcp-server - sse: - connections: - server1: - url: http://127.0.0.1:6040 diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java index 789f3def..0172fa53 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/request/ChatRequest.java @@ -41,6 +41,11 @@ public class ChatRequest { */ private Boolean search = Boolean.FALSE; + /** + * 是否开启mcp + */ + private Boolean isMcp = Boolean.FALSE; + /** * 知识库id */ diff --git a/ruoyi-extend/call-mcp-server/pom.xml b/ruoyi-extend/call-mcp-server/pom.xml deleted file mode 100644 index 3f061817..00000000 --- a/ruoyi-extend/call-mcp-server/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - 4.0.0 - - org.ruoyi - ruoyi-ai - 1.0.0 - ../../pom.xml - - call-mcp-server - Archetype - call-mcp-server - http://maven.apache.org - - - 17 - - - - - - - org.springframework.ai - spring-ai-bom - 1.0.0-M6 - pom - import - - - - - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - - - org.springframework.ai - spring-ai-mcp-client-spring-boot-starter - 1.0.0-M6 - - - - org.springframework.ai - spring-ai-openai-spring-boot-starter - - - - - org.springframework.ai - spring-ai-mcp - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java deleted file mode 100644 index 213df755..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/CallMcpServerApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.rocket.callmcpserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class CallMcpServerApplication { - - public static void main(String[] args) { - SpringApplication.run(CallMcpServerApplication.class, args); - } - -} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java deleted file mode 100644 index 26936890..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/cofing/McpClientCfg.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.ruoyi.rocket.callmcpserver.cofing; - -import io.modelcontextprotocol.client.McpClient; -import org.springframework.ai.mcp.customizer.McpSyncClientCustomizer; -import org.springframework.context.annotation.Configuration; - -import java.time.Duration; - - -/** - * @author ageer - */ -@Configuration -public class McpClientCfg implements McpSyncClientCustomizer { - - - @Override - public void customize(String name, McpClient.SyncSpec spec) { - // do nothing - spec.requestTimeout(Duration.ofSeconds(30)); - } -} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java deleted file mode 100644 index 27c837e7..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/ChatController.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.ruoyi.rocket.callmcpserver.view; - -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.ai.chat.client.ChatClient; -import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; -import org.springframework.ai.chat.memory.ChatMemory; -import org.springframework.ai.chat.memory.InMemoryChatMemory; -import org.springframework.ai.chat.model.ChatResponse; -import org.springframework.ai.openai.OpenAiChatOptions; -import org.springframework.ai.tool.ToolCallbackProvider; -import org.springframework.web.bind.annotation.*; -import reactor.core.publisher.Flux; - - -/** - * @author jianzhang - * 2025/03/18/下午8:00 - */ -@RestController -@RequestMapping("/dashscope/chat-client") -public class ChatController { - - private final ChatClient chatClient; - - private final ChatMemory chatMemory = new InMemoryChatMemory(); - - public ChatController(ChatClient.Builder chatClientBuilder,ToolCallbackProvider tools) { - this.chatClient = chatClientBuilder - .defaultTools(tools) - .defaultOptions( - OpenAiChatOptions.builder().model("gpt-4o-mini").build()) - .build(); - } - - @RequestMapping(value = "/generate_stream", method = RequestMethod.GET) - public Flux generateStream(HttpServletResponse response, @RequestParam("id") String id, @RequestParam("prompt") String prompt) { - response.setCharacterEncoding("UTF-8"); - var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, id, 10); - - - Flux chatResponseFlux = this.chatClient.prompt(prompt) - .advisors(messageChatMemoryAdvisor) - .stream() - .chatResponse(); - - Flux content = this.chatClient.prompt(prompt) - .advisors(messageChatMemoryAdvisor) - .stream() - .content(); - - content.subscribe( - content1 -> System.out.println("chatResponse"+content1) - ); - return chatResponseFlux; - - - } - - - @GetMapping("/advisor/chat/{id}/{prompt}") - public Flux advisorChat( - HttpServletResponse response, - @PathVariable String id, - @PathVariable String prompt) { - - response.setCharacterEncoding("UTF-8"); - var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, id, 10); - return this.chatClient.prompt(prompt) - .advisors(messageChatMemoryAdvisor).stream().content(); - } - - - -} diff --git a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java b/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java deleted file mode 100644 index ed03e33a..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/java/org/ruoyi/rocket/callmcpserver/view/IndexController.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.ruoyi.rocket.callmcpserver.view; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; - -/** - * @author jianzhang - * 2025/03/18/下午8:00 - */ -@Controller -public class IndexController { - - @GetMapping("/") - public String chat(Model model) { - //model.addAttribute("name", "User"); - // 返回视图名称,对应 templates/index.html - return "index"; - } - -} diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml b/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml deleted file mode 100644 index f4b4577f..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/resources/application.yaml +++ /dev/null @@ -1,16 +0,0 @@ -server: - port: 9999 -spring: - ai: - openai: - api-key: sk-xXe1WMPjhlVb1aiI1b4c6c8934D8463f9e4b67Ed8718B772 - base-url: https://api.pandarobot.chat/ - mcp: - client: - enabled: true - name: call-mcp-server - sse: - connections: - server1: - url: http://127.0.0.1:6040 - diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json deleted file mode 100644 index 842d6955..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server-bak.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "mcpServers": { - "fileSystem": { - "command": "D:\\software\\nodeJs\\npx.cmd", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "D:\\software\\sqlite" - ] - }, - "sqlLite": { - "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", - "args": [ - "mcp-server-sqlite", - "--db-path", - "D:\\work-space-study\\spring-ai-mcp-demo\\mcp-client\\src\\main\\resources\\test.db" - ] - }, - "fetch": { - "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", - "args": [ - "mcp-server-fetch" - ] - }, - "baidu-map": { - "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", - "args": [ - "run", - "--with", - "mcp[cli]", - "mcp", - "run", - "D:\\work-space-python\\python-baidu-map\\baidu_map_mcp_server\\map.py" - ], - "env": { - "BAIDU_MAPS_API_KEY": "{百度地图API-KEY}" - } - } - } -} \ No newline at end of file diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json b/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json deleted file mode 100644 index a639d152..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/resources/mcp-server.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "mcpServers": { - "fileSystem": { - "command": "D:\\software\\nodeJs\\npx.cmd", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "D:\\software\\sqlite" - ] - }, - "sqlLite": { - "command": "D:\\Program Files\\python3.12.3\\Scripts\\uvx.exe", - "args": [ - "mcp-server-sqlite", - "--db-path", - "D:\\work-space-study\\spring-ai-mcp-demo\\mcp-client\\src\\main\\resources\\test.db" - ] - } - } -} diff --git a/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html b/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html deleted file mode 100644 index be98e857..00000000 --- a/ruoyi-extend/call-mcp-server/src/main/resources/templates/index.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - AI 对话助手 - - - -
    - -
    -

    AI 对话助手

    -

    基于 Spring AI 的流式对话系统 By AhuCodingBeast

    -
    - - -
    - -
    -
    - 您好!我是AI助手,有什么可以帮您? -
    -
    -
    - - -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml index 3fef2b70..07094656 100644 --- a/ruoyi-extend/pom.xml +++ b/ruoyi-extend/pom.xml @@ -14,7 +14,7 @@ pom - ruoyi-mcp-server + ruoyi-ai-mcp-webflux-server diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml new file mode 100644 index 00000000..ef14457b --- /dev/null +++ b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml @@ -0,0 +1,91 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.4.4 + + + + com.ivy.mcp + ruoyi-ai-mcp-webflux-server + 1.0.0-M6 + + spring-ai-mcp-webflux-server + Spring AI MCP Server example and invoke by stdio + + + 17 + 1.0.0-M6 + + + + + + org.springframework.ai + spring-ai-bom + ${spring-ai.version} + pom + import + + + + + + + org.springframework.ai + spring-ai-mcp-server-webflux-spring-boot-starter + ${spring-ai.version} + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + + + Central Portal Snapshots + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ + + false + + + true + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + false + + + + + diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java new file mode 100644 index 00000000..a66f61b9 --- /dev/null +++ b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java @@ -0,0 +1,34 @@ +package com.ivy.mcp.sse.client; + + +import io.modelcontextprotocol.client.McpClient; +import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; +import io.modelcontextprotocol.spec.McpSchema; +import org.springframework.web.reactive.function.client.WebClient; + +import java.util.Map; + +public class ClientWebflux { + + public static void main(String[] args) { + + var transport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080")); + try (var client = McpClient.sync(transport).build()) { + + client.initialize(); +// client.ping(); + + McpSchema.ListToolsResult toolsList = client.listTools(); + System.out.println("Available Tools = " + toolsList); + + McpSchema.CallToolResult sumResult = client.callTool(new McpSchema.CallToolRequest("add", + Map.of("a", 1, "b", 2))); + System.out.println("add a+ b = " + sumResult.content().get(0)); + + + McpSchema.CallToolResult currentTimResult = client.callTool(new McpSchema.CallToolRequest("getCurrentTime", Map.of())); + System.out.println("current time Response = " + currentTimResult); + } + } + +} diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java new file mode 100644 index 00000000..c1d8e72c --- /dev/null +++ b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java @@ -0,0 +1,42 @@ +package com.ivy.mcp.sse.server; + +import org.springframework.ai.tool.ToolCallback; +import org.springframework.ai.tool.ToolCallbacks; +import org.springframework.ai.tool.annotation.Tool; +import org.springframework.ai.tool.annotation.ToolParam; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@SpringBootApplication +public class McpWebfluxServerApplication { + public static void main(String[] args) { + SpringApplication.run(McpWebfluxServerApplication.class, args); + } + + + @Bean + public List tools(MyTools myTools) { + return List.of(ToolCallbacks.from(myTools)); + } + + @Service + public static class MyTools { + + @Tool(description = "add two numbers") + public Integer add(@ToolParam(description = "first number") int a, + @ToolParam(description = "second number") int b) { + + return a + b; + } + + @Tool(description = "get current time") + public LocalDateTime getCurrentTime() { + return LocalDateTime.now(); + } + } +} diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties new file mode 100644 index 00000000..86fb3e7e --- /dev/null +++ b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties @@ -0,0 +1,7 @@ +spring.main.banner-mode=off +logging.pattern.console= +logging.file.name=mcp-server/spring-ai-mcp-webflux-server/target/target/mcp.mytools.log + +spring.ai.mcp.server.enabled=true +spring.ai.mcp.server.name=webflux-server +spring.ai.mcp.server.version=1.0.0 diff --git a/ruoyi-extend/ruoyi-mcp-server/pom.xml b/ruoyi-extend/ruoyi-mcp-server/pom.xml deleted file mode 100644 index d35402c7..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - 4.0.0 - - org.ruoyi - ruoyi-ai - ${revision} - ../../pom.xml - - - ruoyi-mcp-server - - - - - org.springframework.ai - spring-ai-bom - 1.0.0-M6 - pom - import - - - - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.ai - spring-ai-mcp-server-webmvc-spring-boot-starter - - - - org.springframework.ai - spring-ai-mcp - - - - - - - - - - - - - - - diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java deleted file mode 100644 index bf6b0ff1..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/McpServerApplication.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.ruoyi.mcp; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -/** - * @author ageer - */ -@SpringBootApplication -public class McpServerApplication { - - public static void main(String[] args) { - SpringApplication.run(McpServerApplication.class, args); - } - -} diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java deleted file mode 100644 index 4ba45e10..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/config/McpServerConfig.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.ruoyi.mcp.config; - -import org.ruoyi.mcp.service.McpCustomService; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.modelcontextprotocol.server.McpServerFeatures; -import io.modelcontextprotocol.spec.McpSchema; -import org.springframework.ai.tool.ToolCallbackProvider; -import org.springframework.ai.tool.method.MethodToolCallbackProvider; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; - - -/** - * @author ageer - */ -@Configuration -@EnableWebMvc -public class McpServerConfig implements WebMvcConfigurer { - - @Bean - public ToolCallbackProvider openLibraryTools(McpCustomService mcpService) { - return MethodToolCallbackProvider.builder().toolObjects(mcpService).build(); - } - - @Bean - public List resourceRegistrations() { - - // Create a resource registration for system information - var systemInfoResource = new McpSchema.Resource( - "system://info", - "System Information", - "Provides basic system information including Java version, OS, etc.", - "application/json", null - ); - - var resourceRegistration = new McpServerFeatures.SyncResourceRegistration(systemInfoResource, (request) -> { - try { - var systemInfo = Map.of( - "javaVersion", System.getProperty("java.version"), - "osName", System.getProperty("os.name"), - "osVersion", System.getProperty("os.version"), - "osArch", System.getProperty("os.arch"), - "processors", Runtime.getRuntime().availableProcessors(), - "timestamp", System.currentTimeMillis()); - - String jsonContent = new ObjectMapper().writeValueAsString(systemInfo); - - return new McpSchema.ReadResourceResult( - List.of(new McpSchema.TextResourceContents(request.uri(), "application/json", jsonContent))); - } - catch (Exception e) { - throw new RuntimeException("Failed to generate system info", e); - } - }); - - return List.of(resourceRegistration); - } - - - - @Bean - public List promptRegistrations() { - - var prompt = new McpSchema.Prompt("greeting", "A friendly greeting prompt", - List.of(new McpSchema.PromptArgument("name", "The name to greet", true))); - - var promptRegistration = new McpServerFeatures.SyncPromptRegistration(prompt, getPromptRequest -> { - - String nameArgument = (String) getPromptRequest.arguments().get("name"); - if (nameArgument == null) { - nameArgument = "friend"; - } - - var userMessage = new McpSchema.PromptMessage(McpSchema.Role.USER, - new McpSchema.TextContent("Hello " + nameArgument + "! How can I assist you today?")); - - return new McpSchema.GetPromptResult("A personalized greeting message", List.of(userMessage)); - }); - - return List.of(promptRegistration); - } - - - @Bean - public Consumer> rootsChangeConsumer() { - return roots -> { - System.out.println("rootsChange"); - }; - } - - - - -} diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java deleted file mode 100644 index 1e693762..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcp/service/McpCustomService.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.ruoyi.mcp.service; - -import org.springframework.ai.tool.annotation.Tool; -import org.springframework.stereotype.Service; - -/** - * @author ageer - */ -@Service -public class McpCustomService { - - public record User(String userName, String userBalance) { - } - - @Tool(description = "根据用户名称查询用户信息") - public User getUserBalance(String username) { - return new User("admin","99.99"); - } - -} diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml deleted file mode 100644 index 82b2bdd9..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml +++ /dev/null @@ -1,12 +0,0 @@ -server: - port: 6040 -spring: - application: - name: mcp-server - ai: - mcp: - server: - name: webmvc-mcp-server - version: 1.0.0 - type: SYNC - sse-message-endpoint: /mcp/messages diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index e2ed34a7..62578a0c 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -55,19 +55,17 @@ org.springframework.ai - spring-ai-mcp-client-spring-boot-starter + spring-ai-mcp-client-webflux-spring-boot-starter - - - - - - org.springframework.ai - spring-ai-openai-spring-boot-starter + io.modelcontextprotocol.sdk + mcp-spring-webflux + 0.8.0 + compile + diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java index 560f2d86..e49dce7d 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/config/ChatConfig.java @@ -36,7 +36,7 @@ public class ChatConfig { return openAiStreamClient; } - public OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey) { + public static OpenAiStreamClient createOpenAiStreamClient(String apiHost, String apiKey) { HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(new OpenAILogger()); httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.HEADERS); OkHttpClient okHttpClient = new OkHttpClient.Builder() diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java index 649fce17..fc070721 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/IChatService.java @@ -18,9 +18,4 @@ public interface IChatService { SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter); - /** - * 客户端发送消息到服务端 - * @param chatRequest 请求对象 - */ - void mcpChat(ChatRequest chatRequest,SseEmitter emitter); } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java index 65adeed0..c0256427 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/ISseService.java @@ -55,11 +55,4 @@ public interface ISseService { */ String wxCpChat(String prompt); - /** - * 联网查询 - * - * @param prompt 提示词 - * @return 查询内容 - */ - String webSearch (String prompt); } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index f2d12112..34585e22 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -1,78 +1,88 @@ package org.ruoyi.chat.service.chat.impl; +import cn.hutool.json.JSONUtil; +import io.modelcontextprotocol.client.McpClient; +import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; +import io.modelcontextprotocol.spec.McpSchema; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.chat.service.chat.IChatService; -import org.ruoyi.common.chat.entity.chat.Message; +import org.ruoyi.common.chat.entity.chat.ChatChoice; +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; +import org.ruoyi.common.chat.entity.chat.Parameters; +import org.ruoyi.common.chat.entity.chat.tool.ToolCallFunction; +import org.ruoyi.common.chat.entity.chat.tool.Tools; +import org.ruoyi.common.chat.entity.chat.tool.ToolsFunction; +import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; -import org.springframework.ai.chat.client.ChatClient; -import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; -import org.springframework.ai.chat.memory.ChatMemory; -import org.springframework.ai.chat.memory.InMemoryChatMemory; -import org.springframework.ai.chat.messages.UserMessage; -import org.springframework.ai.openai.OpenAiChatOptions; -import org.springframework.ai.tool.ToolCallbackProvider; import org.springframework.stereotype.Service; +import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import reactor.core.publisher.Flux; -import reactor.core.scheduler.Schedulers; import java.io.IOException; +import java.util.ArrayList; import java.util.List; +import java.util.Map; @Service @Slf4j +@RequiredArgsConstructor public class OpenAIServiceImpl implements IChatService { - private final ChatClient chatClient; + private final OpenAiStreamClient openAiStreamClient; - private final ChatMemory chatMemory = new InMemoryChatMemory(); - - - public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, ToolCallbackProvider tools) { - this.chatClient = chatClientBuilder - .defaultTools(tools) - .defaultOptions( - OpenAiChatOptions.builder() - .model("gpt-4o-mini") - .temperature(0.4) - .build()) - .build(); - } @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { - return emitter; - } + WebFluxSseClientTransport webFluxSseClientTransport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080")); + ChatCompletion completion = ChatCompletion + .builder() + .messages(chatRequest.getMessages()) + .model(chatRequest.getModel()) + .stream(false) + .build(); + List tools = new ArrayList<>(); + try (var client = McpClient.sync(webFluxSseClientTransport).build()) { + client.initialize(); + McpSchema.ListToolsResult toolsList = client.listTools(); - @Override - public void mcpChat(ChatRequest chatRequest, SseEmitter emitter) { - List msgList = chatRequest.getMessages(); - // 添加记忆 - for (int i = 0; i < msgList.size(); i++) { - org.springframework.ai.chat.messages.Message springAiMessage = new UserMessage(msgList.get(i).getContent().toString()); - chatMemory.add(String.valueOf(i), springAiMessage); + for (McpSchema.Tool mcpTool : toolsList.tools()) { + + McpSchema.JsonSchema jsonSchema = mcpTool.inputSchema(); + + Parameters parameters = Parameters.builder() + .type(jsonSchema.type()) + .properties(jsonSchema.properties()) + .required(jsonSchema.required()).build(); + + Tools tool = Tools.builder() + .type(Tools.Type.FUNCTION.getName()) + .function(ToolsFunction.builder().name(mcpTool.name()).description(mcpTool.description()).parameters(parameters).build()) + .build(); + tools.add(tool); + } + + completion.setTools(tools); + ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(completion); + String arguments = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getArguments(); + String name = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getName(); + Map map = JSONUtil.toBean(arguments, Map.class); + McpSchema.CallToolResult sumResult = client.callTool(new McpSchema.CallToolRequest(name, map)); + System.out.println("add a+ b = " + sumResult.content().get(0)); + + + McpSchema.Content content = sumResult.content().get(0); + + emitter.send(sumResult.content().get(0)); + + } catch (IOException e) { + emitter.completeWithError(e); } - var messageChatMemoryAdvisor = new MessageChatMemoryAdvisor(chatMemory, chatRequest.getUserId().toString(), 10); + emitter.complete(); + return emitter; - Flux content = chatClient - .prompt(chatRequest.getPrompt()) - .advisors(messageChatMemoryAdvisor) - .stream().content(); - - content.publishOn(Schedulers.boundedElastic()) - .doOnNext(text -> { - try { - emitter.send(text); - } catch (IOException e) { - emitter.completeWithError(e); - } - }) - .doOnError(error -> { - log.error("Error in SSE stream: ", error); - emitter.completeWithError(error); - }) - .doOnComplete(emitter::complete) - .subscribe(); } + } From 761d954ef136ee6fdff2748dcd81c41c814f933d Mon Sep 17 00:00:00 2001 From: ageer Date: Wed, 16 Apr 2025 21:56:05 +0800 Subject: [PATCH 22/27] feat: mcp 1.0.0 --- .../service/chat/impl/OpenAIServiceImpl.java | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index 34585e22..1f2f47e6 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -6,16 +6,15 @@ import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; import io.modelcontextprotocol.spec.McpSchema; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.ruoyi.chat.listener.SSEEventSourceListener; import org.ruoyi.chat.service.chat.IChatService; -import org.ruoyi.common.chat.entity.chat.ChatChoice; -import org.ruoyi.common.chat.entity.chat.ChatCompletion; -import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse; -import org.ruoyi.common.chat.entity.chat.Parameters; +import org.ruoyi.common.chat.entity.chat.*; import org.ruoyi.common.chat.entity.chat.tool.ToolCallFunction; import org.ruoyi.common.chat.entity.chat.tool.Tools; import org.ruoyi.common.chat.entity.chat.tool.ToolsFunction; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; +import org.ruoyi.common.core.exception.ServiceException; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; @@ -33,9 +32,27 @@ public class OpenAIServiceImpl implements IChatService { private final OpenAiStreamClient openAiStreamClient; - @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { + String toolString = mcpChat(chatRequest); + + Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.ASSISTANT).build(); + List messages = chatRequest.getMessages(); + messages.add(userMessage); + + SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(emitter); + ChatCompletion completion = ChatCompletion + .builder() + .messages(messages) + .model(chatRequest.getModel()) + .stream(true) + .build(); + openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + return emitter; + + } + + public String mcpChat(ChatRequest chatRequest) { WebFluxSseClientTransport webFluxSseClientTransport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080")); ChatCompletion completion = ChatCompletion .builder() @@ -44,6 +61,7 @@ public class OpenAIServiceImpl implements IChatService { .stream(false) .build(); List tools = new ArrayList<>(); + McpSchema.Content content = null; try (var client = McpClient.sync(webFluxSseClientTransport).build()) { client.initialize(); McpSchema.ListToolsResult toolsList = client.listTools(); @@ -63,26 +81,17 @@ public class OpenAIServiceImpl implements IChatService { .build(); tools.add(tool); } - completion.setTools(tools); ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(completion); String arguments = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getArguments(); String name = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getName(); Map map = JSONUtil.toBean(arguments, Map.class); McpSchema.CallToolResult sumResult = client.callTool(new McpSchema.CallToolRequest(name, map)); - System.out.println("add a+ b = " + sumResult.content().get(0)); - - - McpSchema.Content content = sumResult.content().get(0); - - emitter.send(sumResult.content().get(0)); - - } catch (IOException e) { - emitter.completeWithError(e); + content= sumResult.content().get(0); + } catch (Exception e) { + throw new ServiceException("请求失败"+e); } - emitter.complete(); - return emitter; - + return content.toString(); } } From 788b372e3273f4804e83d50608dc001c7fcf9b58 Mon Sep 17 00:00:00 2001 From: ageerle Date: Thu, 17 Apr 2025 16:23:32 +0800 Subject: [PATCH 23/27] =?UTF-8?q?feat:=20mcp=E6=94=AF=E6=8C=81=E8=BF=9C?= =?UTF-8?q?=E7=A8=8B=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 12 ++++++- .../src/main/resources/mcp-server.json | 12 +++++++ ruoyi-modules-api/ruoyi-chat-api/pom.xml | 29 ++++++++++++++--- .../service/chat/impl/OpenAIServiceImpl.java | 32 +++++++++++++++++-- 4 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/mcp-server.json diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index bc654111..29c367f1 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -319,5 +319,15 @@ wechat: secret: '' token: '' aesKey: '' - +spring: + ai: + openai: + api-key: sk-xXe1WMPjhlVb1aiI1b4c6c8934D8463f9e4b67Ed8718B772 + base-url: https://api.pandarobot.chat/ + mcp: + client: + enabled: true + name: call-mcp-server + stdio: + servers-configuration: classpath:mcp-server.json diff --git a/ruoyi-admin/src/main/resources/mcp-server.json b/ruoyi-admin/src/main/resources/mcp-server.json new file mode 100644 index 00000000..869ca5de --- /dev/null +++ b/ruoyi-admin/src/main/resources/mcp-server.json @@ -0,0 +1,12 @@ +{ + "mcpServers": { + "fileSystem": { + "command": "C:\\Program Files\\nodejs\\npx.cmd", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "D:\\software" + ] + } + } +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index 62578a0c..6fbae9ea 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -32,6 +32,14 @@ + + + io.modelcontextprotocol.sdk + mcp-spring-webflux + 0.8.0 + + + org.ruoyi ruoyi-common-chat @@ -55,16 +63,27 @@ org.springframework.ai - spring-ai-mcp-client-webflux-spring-boot-starter + spring-ai-openai-spring-boot-starter - io.modelcontextprotocol.sdk - mcp-spring-webflux - 0.8.0 - compile + org.springframework.ai + spring-ai-mcp-client-spring-boot-starter + + org.springframework.ai + spring-ai-mcp + + + + + org.springframework.ai + spring-ai-mcp-client-webflux-spring-boot-starter + + + + diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index 1f2f47e6..2c9fd28a 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -2,6 +2,7 @@ package org.ruoyi.chat.service.chat.impl; import cn.hutool.json.JSONUtil; import io.modelcontextprotocol.client.McpClient; +import io.modelcontextprotocol.client.McpSyncClient; import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; import io.modelcontextprotocol.spec.McpSchema; import lombok.RequiredArgsConstructor; @@ -15,6 +16,12 @@ import org.ruoyi.common.chat.entity.chat.tool.ToolsFunction; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; import org.ruoyi.common.core.exception.ServiceException; +import org.springframework.ai.chat.client.ChatClient; +import org.springframework.ai.chat.memory.ChatMemory; +import org.springframework.ai.chat.memory.InMemoryChatMemory; +import org.springframework.ai.mcp.SyncMcpToolCallbackProvider; +import org.springframework.ai.tool.ToolCallbackProvider; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; @@ -27,14 +34,33 @@ import java.util.Map; @Service @Slf4j -@RequiredArgsConstructor public class OpenAIServiceImpl implements IChatService { - private final OpenAiStreamClient openAiStreamClient; + @Autowired + private OpenAiStreamClient openAiStreamClient; + + private final ChatClient chatClient; + + private final ChatMemory chatMemory = new InMemoryChatMemory(); + + + + public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, List mcpSyncClients, ToolCallbackProvider tools) { + this.chatClient = chatClientBuilder + .defaultTools(new SyncMcpToolCallbackProvider(mcpSyncClients)) + .build(); + } + + + public String webMcpChat(String prompt){ + return this.chatClient.prompt(prompt).call().content(); + + } + @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { - String toolString = mcpChat(chatRequest); + String toolString = webMcpChat(chatRequest.getPrompt()); Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.ASSISTANT).build(); List messages = chatRequest.getMessages(); From 9cd97a4dc596aad1f31cf3a72b9ee4c04727945b Mon Sep 17 00:00:00 2001 From: ageerle Date: Fri, 18 Apr 2025 10:55:42 +0800 Subject: [PATCH 24/27] =?UTF-8?q?feat:=20mcp=E6=94=AF=E6=8C=81=E8=BF=9C?= =?UTF-8?q?=E7=A8=8B=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/resources/mcp-server.json | 10 ++++++++++ .../chat/service/chat/impl/OpenAIServiceImpl.java | 2 +- .../ruoyi/chat/service/chat/impl/SseServiceImpl.java | 4 +++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/resources/mcp-server.json b/ruoyi-admin/src/main/resources/mcp-server.json index 869ca5de..ab8ad189 100644 --- a/ruoyi-admin/src/main/resources/mcp-server.json +++ b/ruoyi-admin/src/main/resources/mcp-server.json @@ -7,6 +7,16 @@ "@modelcontextprotocol/server-filesystem", "D:\\software" ] + }, + "search1api": { + "command": "C:\\Program Files\\nodejs\\npx.cmd", + "args": [ + "-y", + "search1api-mcp" + ], + "env": { + "SEARCH1API_KEY": "92A3D8F1-9BFA-485A-90E9-7680914CB666" + } } } } diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index 2c9fd28a..85d3848f 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -62,7 +62,7 @@ public class OpenAIServiceImpl implements IChatService { public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { String toolString = webMcpChat(chatRequest.getPrompt()); - Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.ASSISTANT).build(); + Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.USER).build(); List messages = chatRequest.getMessages(); messages.add(userMessage); diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java index 178f58f4..ac9d8c5b 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java @@ -144,7 +144,9 @@ public class SseServiceImpl implements ISseService { String sysPrompt = chatModelVo.getSystemPrompt(); if(StringUtils.isEmpty(sysPrompt)){ sysPrompt ="你是一个由RuoYI-AI开发的人工智能助手,名字叫熊猫助手。你擅长中英文对话,能够理解并处理各种问题,提供安全、有帮助、准确的回答。" + - "当前时间:"+ DateUtils.getDate(); + "当前时间:"+ DateUtils.getDate()+ + "#注意:回复之前注意结合上下文内容。 "; + } // 设置系统默认提示词 Message sysMessage = Message.builder().content(sysPrompt).role(Message.Role.SYSTEM).build(); From 4af26fe4b42c4056f1226ba6f1e36e3fcc03a588 Mon Sep 17 00:00:00 2001 From: ageer Date: Sun, 20 Apr 2025 22:52:00 +0800 Subject: [PATCH 25/27] =?UTF-8?q?feat:=20mcp=E5=8D=87=E7=BA=A7=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 9 +- .../ruoyi-ai-mcp-webflux-server/pom.xml | 91 ------ .../com/ivy/mcp/sse/client/ClientWebflux.java | 34 --- .../server/McpWebfluxServerApplication.java | 42 --- .../src/main/resources/application.properties | 7 - ruoyi-extend/ruoyi-mcp-server/.gitattributes | 2 + .../.mvn/wrapper/maven-wrapper.properties | 19 ++ ruoyi-extend/ruoyi-mcp-server/HELP.md | 19 ++ ruoyi-extend/ruoyi-mcp-server/mvnw | 259 ++++++++++++++++++ ruoyi-extend/ruoyi-mcp-server/mvnw.cmd | 149 ++++++++++ ruoyi-extend/ruoyi-mcp-server/pom.xml | 76 +++++ .../mcpserve/RuoyiMcpServeApplication.java | 25 ++ .../ruoyi/mcpserve/service/ToolService.java | 34 +++ .../src/main/resources/application.yml | 10 + .../RuoyiMcpServeApplicationTests.java | 13 + ruoyi-modules-api/ruoyi-chat-api/pom.xml | 32 +-- .../service/chat/impl/OpenAIServiceImpl.java | 88 +----- 17 files changed, 633 insertions(+), 276 deletions(-) delete mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml delete mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java delete mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java delete mode 100644 ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties create mode 100644 ruoyi-extend/ruoyi-mcp-server/.gitattributes create mode 100644 ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties create mode 100644 ruoyi-extend/ruoyi-mcp-server/HELP.md create mode 100644 ruoyi-extend/ruoyi-mcp-server/mvnw create mode 100644 ruoyi-extend/ruoyi-mcp-server/mvnw.cmd create mode 100644 ruoyi-extend/ruoyi-mcp-server/pom.xml create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/RuoyiMcpServeApplication.java create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/service/ToolService.java create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml create mode 100644 ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 29c367f1..07508f78 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -319,15 +319,20 @@ wechat: secret: '' token: '' aesKey: '' + spring: ai: openai: - api-key: sk-xXe1WMPjhlVb1aiI1b4c6c8934D8463f9e4b67Ed8718B772 + api-key: sk-xxx base-url: https://api.pandarobot.chat/ mcp: client: enabled: true - name: call-mcp-server + name: ruoyi-ai-mcp + sse: + connections: + server: + url: http://127.0.0.1:8081 stdio: servers-configuration: classpath:mcp-server.json diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml deleted file mode 100644 index ef14457b..00000000 --- a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/pom.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.4.4 - - - - com.ivy.mcp - ruoyi-ai-mcp-webflux-server - 1.0.0-M6 - - spring-ai-mcp-webflux-server - Spring AI MCP Server example and invoke by stdio - - - 17 - 1.0.0-M6 - - - - - - org.springframework.ai - spring-ai-bom - ${spring-ai.version} - pom - import - - - - - - - org.springframework.ai - spring-ai-mcp-server-webflux-spring-boot-starter - ${spring-ai.version} - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - - - - Central Portal Snapshots - central-portal-snapshots - https://central.sonatype.com/repository/maven-snapshots/ - - false - - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - false - - - - - diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java deleted file mode 100644 index a66f61b9..00000000 --- a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/client/ClientWebflux.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.ivy.mcp.sse.client; - - -import io.modelcontextprotocol.client.McpClient; -import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; -import io.modelcontextprotocol.spec.McpSchema; -import org.springframework.web.reactive.function.client.WebClient; - -import java.util.Map; - -public class ClientWebflux { - - public static void main(String[] args) { - - var transport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080")); - try (var client = McpClient.sync(transport).build()) { - - client.initialize(); -// client.ping(); - - McpSchema.ListToolsResult toolsList = client.listTools(); - System.out.println("Available Tools = " + toolsList); - - McpSchema.CallToolResult sumResult = client.callTool(new McpSchema.CallToolRequest("add", - Map.of("a", 1, "b", 2))); - System.out.println("add a+ b = " + sumResult.content().get(0)); - - - McpSchema.CallToolResult currentTimResult = client.callTool(new McpSchema.CallToolRequest("getCurrentTime", Map.of())); - System.out.println("current time Response = " + currentTimResult); - } - } - -} diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java deleted file mode 100644 index c1d8e72c..00000000 --- a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/java/com/ivy/mcp/sse/server/McpWebfluxServerApplication.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.ivy.mcp.sse.server; - -import org.springframework.ai.tool.ToolCallback; -import org.springframework.ai.tool.ToolCallbacks; -import org.springframework.ai.tool.annotation.Tool; -import org.springframework.ai.tool.annotation.ToolParam; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.util.List; - -@SpringBootApplication -public class McpWebfluxServerApplication { - public static void main(String[] args) { - SpringApplication.run(McpWebfluxServerApplication.class, args); - } - - - @Bean - public List tools(MyTools myTools) { - return List.of(ToolCallbacks.from(myTools)); - } - - @Service - public static class MyTools { - - @Tool(description = "add two numbers") - public Integer add(@ToolParam(description = "first number") int a, - @ToolParam(description = "second number") int b) { - - return a + b; - } - - @Tool(description = "get current time") - public LocalDateTime getCurrentTime() { - return LocalDateTime.now(); - } - } -} diff --git a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties b/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties deleted file mode 100644 index 86fb3e7e..00000000 --- a/ruoyi-extend/ruoyi-ai-mcp-webflux-server/src/main/resources/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.main.banner-mode=off -logging.pattern.console= -logging.file.name=mcp-server/spring-ai-mcp-webflux-server/target/target/mcp.mytools.log - -spring.ai.mcp.server.enabled=true -spring.ai.mcp.server.name=webflux-server -spring.ai.mcp.server.version=1.0.0 diff --git a/ruoyi-extend/ruoyi-mcp-server/.gitattributes b/ruoyi-extend/ruoyi-mcp-server/.gitattributes new file mode 100644 index 00000000..3b41682a --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties b/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 00000000..d58dfb70 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +wrapperVersion=3.3.2 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip diff --git a/ruoyi-extend/ruoyi-mcp-server/HELP.md b/ruoyi-extend/ruoyi-mcp-server/HELP.md new file mode 100644 index 00000000..ad5a1917 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/HELP.md @@ -0,0 +1,19 @@ +# Getting Started + +### Reference Documentation + +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.4/maven-plugin) +* [Create an OCI image](https://docs.spring.io/spring-boot/3.4.4/maven-plugin/build-image.html) +* [Model Context Protocol Server](https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html) + +### Maven Parent overrides + +Due to Maven's design, elements are inherited from the parent POM to the project POM. +While most of the inheritance is fine, it also inherits unwanted elements like `` and `` from the +parent. +To prevent this, the project POM contains empty overrides for these elements. +If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides. + diff --git a/ruoyi-extend/ruoyi-mcp-server/mvnw b/ruoyi-extend/ruoyi-mcp-server/mvnw new file mode 100644 index 00000000..19529ddf --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/mvnw @@ -0,0 +1,259 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.2 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd b/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd new file mode 100644 index 00000000..249bdf38 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd @@ -0,0 +1,149 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.2 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' +$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" +if ($env:MAVEN_USER_HOME) { + $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" +} +$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/ruoyi-extend/ruoyi-mcp-server/pom.xml b/ruoyi-extend/ruoyi-mcp-server/pom.xml new file mode 100644 index 00000000..77e3da3b --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.4.4 + + + org.ruoyi + ruoyi-mcp-server + 0.0.1-SNAPSHOT + ruoyi-mcp-serve + ruoyi-mcp-serve + + + + + + + + + + + + + + + 17 + 1.0.0-M7 + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.ai + spring-ai-starter-mcp-server-webmvc + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + + + + + org.springframework.ai + spring-ai-bom + ${spring-ai.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/RuoyiMcpServeApplication.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/RuoyiMcpServeApplication.java new file mode 100644 index 00000000..54a01deb --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/RuoyiMcpServeApplication.java @@ -0,0 +1,25 @@ +package org.ruoyi.mcpserve; + +import org.ruoyi.mcpserve.service.ToolService; +import org.springframework.ai.tool.ToolCallbackProvider; +import org.springframework.ai.tool.method.MethodToolCallbackProvider; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; + +/** + * @author ageer + */ +@SpringBootApplication +public class RuoyiMcpServeApplication { + + public static void main(String[] args) { + SpringApplication.run(RuoyiMcpServeApplication.class, args); + } + + @Bean + public ToolCallbackProvider systemTools(ToolService toolService) { + return MethodToolCallbackProvider.builder().toolObjects(toolService).build(); + } + +} diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/service/ToolService.java b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/service/ToolService.java new file mode 100644 index 00000000..a12b1d20 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/src/main/java/org/ruoyi/mcpserve/service/ToolService.java @@ -0,0 +1,34 @@ +package org.ruoyi.mcpserve.service; + +import org.springframework.ai.tool.annotation.Tool; +import org.springframework.ai.tool.annotation.ToolParam; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.UUID; + + +/** + * @author ageer + */ +@Service +public class ToolService { + + @Tool(description = "获取一个指定前缀的随机数") + public String add(@ToolParam(description = "字符前缀") String prefix) { + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMdd"); + //根据当前时间获取yyMMdd格式的时间字符串 + String format = LocalDate.now().format(formatter); + //生成随机数 + String replace = prefix + UUID.randomUUID().toString().replace("-", ""); + return format + replace; + } + + @Tool(description = "获取当前时间") + public LocalDateTime getCurrentTime() { + return LocalDateTime.now(); + } +} diff --git a/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml new file mode 100644 index 00000000..f5ced666 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/src/main/resources/application.yml @@ -0,0 +1,10 @@ +server: + port: 8081 +spring: + ai: + mcp: + server: + name: ruoyi-mcp-serve + version: 1.0.0 + + diff --git a/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java b/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java new file mode 100644 index 00000000..ba95a374 --- /dev/null +++ b/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java @@ -0,0 +1,13 @@ +package org.ruoyi.mcpserve; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class RuoyiMcpServeApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/ruoyi-modules-api/ruoyi-chat-api/pom.xml b/ruoyi-modules-api/ruoyi-chat-api/pom.xml index 6fbae9ea..e2506bad 100644 --- a/ruoyi-modules-api/ruoyi-chat-api/pom.xml +++ b/ruoyi-modules-api/ruoyi-chat-api/pom.xml @@ -16,6 +16,7 @@ 17 17 UTF-8 + 1.0.0-M7
    @@ -23,7 +24,7 @@ org.springframework.ai spring-ai-bom - 1.0.0-M6 + ${spring-ai.version} pom import @@ -33,12 +34,11 @@ - - io.modelcontextprotocol.sdk - mcp-spring-webflux - 0.8.0 - - + + + + + org.ruoyi @@ -63,28 +63,14 @@ org.springframework.ai - spring-ai-openai-spring-boot-starter + spring-ai-starter-mcp-client org.springframework.ai - spring-ai-mcp-client-spring-boot-starter + spring-ai-starter-model-openai - - org.springframework.ai - spring-ai-mcp - - - - - org.springframework.ai - spring-ai-mcp-client-webflux-spring-boot-starter - - - - - diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java index 85d3848f..03fb18a5 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OpenAIServiceImpl.java @@ -1,123 +1,57 @@ package org.ruoyi.chat.service.chat.impl; -import cn.hutool.json.JSONUtil; -import io.modelcontextprotocol.client.McpClient; import io.modelcontextprotocol.client.McpSyncClient; -import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport; -import io.modelcontextprotocol.spec.McpSchema; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.ruoyi.chat.listener.SSEEventSourceListener; import org.ruoyi.chat.service.chat.IChatService; -import org.ruoyi.common.chat.entity.chat.*; -import org.ruoyi.common.chat.entity.chat.tool.ToolCallFunction; -import org.ruoyi.common.chat.entity.chat.tool.Tools; -import org.ruoyi.common.chat.entity.chat.tool.ToolsFunction; +import org.ruoyi.common.chat.entity.chat.ChatCompletion; +import org.ruoyi.common.chat.entity.chat.Message; import org.ruoyi.common.chat.openai.OpenAiStreamClient; import org.ruoyi.common.chat.request.ChatRequest; -import org.ruoyi.common.core.exception.ServiceException; import org.springframework.ai.chat.client.ChatClient; -import org.springframework.ai.chat.memory.ChatMemory; -import org.springframework.ai.chat.memory.InMemoryChatMemory; import org.springframework.ai.mcp.SyncMcpToolCallbackProvider; -import org.springframework.ai.tool.ToolCallbackProvider; +import org.springframework.ai.openai.OpenAiChatOptions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; - -import java.io.IOException; -import java.util.ArrayList; import java.util.List; -import java.util.Map; @Service @Slf4j public class OpenAIServiceImpl implements IChatService { - @Autowired private OpenAiStreamClient openAiStreamClient; private final ChatClient chatClient; - private final ChatMemory chatMemory = new InMemoryChatMemory(); - - - - public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, List mcpSyncClients, ToolCallbackProvider tools) { + public OpenAIServiceImpl(ChatClient.Builder chatClientBuilder, List mcpSyncClients) { this.chatClient = chatClientBuilder + .defaultOptions( + OpenAiChatOptions.builder().model("gpt-4o-mini").build()) .defaultTools(new SyncMcpToolCallbackProvider(mcpSyncClients)) .build(); } - - public String webMcpChat(String prompt){ - return this.chatClient.prompt(prompt).call().content(); - - } - - @Override public SseEmitter chat(ChatRequest chatRequest,SseEmitter emitter) { - String toolString = webMcpChat(chatRequest.getPrompt()); - + String toolString = mcpChat(chatRequest.getPrompt()); Message userMessage = Message.builder().content("工具返回信息:"+toolString).role(Message.Role.USER).build(); List messages = chatRequest.getMessages(); messages.add(userMessage); - - SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(emitter); + SSEEventSourceListener listener = new SSEEventSourceListener(emitter); ChatCompletion completion = ChatCompletion .builder() .messages(messages) .model(chatRequest.getModel()) .stream(true) .build(); - openAiStreamClient.streamChatCompletion(completion, openAIEventSourceListener); + openAiStreamClient.streamChatCompletion(completion, listener); return emitter; - } - public String mcpChat(ChatRequest chatRequest) { - WebFluxSseClientTransport webFluxSseClientTransport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080")); - ChatCompletion completion = ChatCompletion - .builder() - .messages(chatRequest.getMessages()) - .model(chatRequest.getModel()) - .stream(false) - .build(); - List tools = new ArrayList<>(); - McpSchema.Content content = null; - try (var client = McpClient.sync(webFluxSseClientTransport).build()) { - client.initialize(); - McpSchema.ListToolsResult toolsList = client.listTools(); - - for (McpSchema.Tool mcpTool : toolsList.tools()) { - - McpSchema.JsonSchema jsonSchema = mcpTool.inputSchema(); - - Parameters parameters = Parameters.builder() - .type(jsonSchema.type()) - .properties(jsonSchema.properties()) - .required(jsonSchema.required()).build(); - - Tools tool = Tools.builder() - .type(Tools.Type.FUNCTION.getName()) - .function(ToolsFunction.builder().name(mcpTool.name()).description(mcpTool.description()).parameters(parameters).build()) - .build(); - tools.add(tool); - } - completion.setTools(tools); - ChatCompletionResponse chatCompletionResponse = openAiStreamClient.chatCompletion(completion); - String arguments = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getArguments(); - String name = chatCompletionResponse.getChoices().get(0).getMessage().getToolCalls().get(0).getFunction().getName(); - Map map = JSONUtil.toBean(arguments, Map.class); - McpSchema.CallToolResult sumResult = client.callTool(new McpSchema.CallToolRequest(name, map)); - content= sumResult.content().get(0); - } catch (Exception e) { - throw new ServiceException("请求失败"+e); - } - return content.toString(); + public String mcpChat(String prompt){ + return this.chatClient.prompt(prompt).call().content(); } } From 9f257cf71242aee732409215fa7197483867b16d Mon Sep 17 00:00:00 2001 From: ageer Date: Sun, 20 Apr 2025 22:52:09 +0800 Subject: [PATCH 26/27] =?UTF-8?q?feat:=20mcp=E5=8D=87=E7=BA=A7=E4=BE=9D?= =?UTF-8?q?=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-extend/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml index 07094656..3fef2b70 100644 --- a/ruoyi-extend/pom.xml +++ b/ruoyi-extend/pom.xml @@ -14,7 +14,7 @@ pom - ruoyi-ai-mcp-webflux-server + ruoyi-mcp-server From fb19fb29ccc911389b8162f3fb10f334b9547898 Mon Sep 17 00:00:00 2001 From: ageerle Date: Mon, 21 Apr 2025 09:43:09 +0800 Subject: [PATCH 27/27] =?UTF-8?q?feat:=20=E7=A7=BB=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-extend/ruoyi-mcp-server/.gitattributes | 2 - .../.mvn/wrapper/maven-wrapper.properties | 19 -- ruoyi-extend/ruoyi-mcp-server/HELP.md | 19 -- ruoyi-extend/ruoyi-mcp-server/mvnw | 259 ------------------ ruoyi-extend/ruoyi-mcp-server/mvnw.cmd | 149 ---------- .../RuoyiMcpServeApplicationTests.java | 13 - 6 files changed, 461 deletions(-) delete mode 100644 ruoyi-extend/ruoyi-mcp-server/.gitattributes delete mode 100644 ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties delete mode 100644 ruoyi-extend/ruoyi-mcp-server/HELP.md delete mode 100644 ruoyi-extend/ruoyi-mcp-server/mvnw delete mode 100644 ruoyi-extend/ruoyi-mcp-server/mvnw.cmd delete mode 100644 ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java diff --git a/ruoyi-extend/ruoyi-mcp-server/.gitattributes b/ruoyi-extend/ruoyi-mcp-server/.gitattributes deleted file mode 100644 index 3b41682a..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -/mvnw text eol=lf -*.cmd text eol=crlf diff --git a/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties b/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index d58dfb70..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,19 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -wrapperVersion=3.3.2 -distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip diff --git a/ruoyi-extend/ruoyi-mcp-server/HELP.md b/ruoyi-extend/ruoyi-mcp-server/HELP.md deleted file mode 100644 index ad5a1917..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/HELP.md +++ /dev/null @@ -1,19 +0,0 @@ -# Getting Started - -### Reference Documentation - -For further reference, please consider the following sections: - -* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) -* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.4/maven-plugin) -* [Create an OCI image](https://docs.spring.io/spring-boot/3.4.4/maven-plugin/build-image.html) -* [Model Context Protocol Server](https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html) - -### Maven Parent overrides - -Due to Maven's design, elements are inherited from the parent POM to the project POM. -While most of the inheritance is fine, it also inherits unwanted elements like `` and `` from the -parent. -To prevent this, the project POM contains empty overrides for these elements. -If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides. - diff --git a/ruoyi-extend/ruoyi-mcp-server/mvnw b/ruoyi-extend/ruoyi-mcp-server/mvnw deleted file mode 100644 index 19529ddf..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/mvnw +++ /dev/null @@ -1,259 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.3.2 -# -# Optional ENV vars -# ----------------- -# JAVA_HOME - location of a JDK home dir, required when download maven via java source -# MVNW_REPOURL - repo url base for downloading maven distribution -# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven -# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output -# ---------------------------------------------------------------------------- - -set -euf -[ "${MVNW_VERBOSE-}" != debug ] || set -x - -# OS specific support. -native_path() { printf %s\\n "$1"; } -case "$(uname)" in -CYGWIN* | MINGW*) - [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" - native_path() { cygpath --path --windows "$1"; } - ;; -esac - -# set JAVACMD and JAVACCMD -set_java_home() { - # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched - if [ -n "${JAVA_HOME-}" ]; then - if [ -x "$JAVA_HOME/jre/sh/java" ]; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - JAVACCMD="$JAVA_HOME/jre/sh/javac" - else - JAVACMD="$JAVA_HOME/bin/java" - JAVACCMD="$JAVA_HOME/bin/javac" - - if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then - echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 - echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 - return 1 - fi - fi - else - JAVACMD="$( - 'set' +e - 'unset' -f command 2>/dev/null - 'command' -v java - )" || : - JAVACCMD="$( - 'set' +e - 'unset' -f command 2>/dev/null - 'command' -v javac - )" || : - - if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then - echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 - return 1 - fi - fi -} - -# hash string like Java String::hashCode -hash_string() { - str="${1:-}" h=0 - while [ -n "$str" ]; do - char="${str%"${str#?}"}" - h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) - str="${str#?}" - done - printf %x\\n $h -} - -verbose() { :; } -[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } - -die() { - printf %s\\n "$1" >&2 - exit 1 -} - -trim() { - # MWRAPPER-139: - # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. - # Needed for removing poorly interpreted newline sequences when running in more - # exotic environments such as mingw bash on Windows. - printf "%s" "${1}" | tr -d '[:space:]' -} - -# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties -while IFS="=" read -r key value; do - case "${key-}" in - distributionUrl) distributionUrl=$(trim "${value-}") ;; - distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; - esac -done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" -[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" - -case "${distributionUrl##*/}" in -maven-mvnd-*bin.*) - MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ - case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in - *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; - :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; - :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; - :Linux*x86_64*) distributionPlatform=linux-amd64 ;; - *) - echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 - distributionPlatform=linux-amd64 - ;; - esac - distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" - ;; -maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; -*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; -esac - -# apply MVNW_REPOURL and calculate MAVEN_HOME -# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ -[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" -distributionUrlName="${distributionUrl##*/}" -distributionUrlNameMain="${distributionUrlName%.*}" -distributionUrlNameMain="${distributionUrlNameMain%-bin}" -MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" -MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" - -exec_maven() { - unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : - exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" -} - -if [ -d "$MAVEN_HOME" ]; then - verbose "found existing MAVEN_HOME at $MAVEN_HOME" - exec_maven "$@" -fi - -case "${distributionUrl-}" in -*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; -*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; -esac - -# prepare tmp dir -if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then - clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } - trap clean HUP INT TERM EXIT -else - die "cannot create temp dir" -fi - -mkdir -p -- "${MAVEN_HOME%/*}" - -# Download and Install Apache Maven -verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." -verbose "Downloading from: $distributionUrl" -verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" - -# select .zip or .tar.gz -if ! command -v unzip >/dev/null; then - distributionUrl="${distributionUrl%.zip}.tar.gz" - distributionUrlName="${distributionUrl##*/}" -fi - -# verbose opt -__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' -[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v - -# normalize http auth -case "${MVNW_PASSWORD:+has-password}" in -'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; -has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; -esac - -if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then - verbose "Found wget ... using wget" - wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" -elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then - verbose "Found curl ... using curl" - curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" -elif set_java_home; then - verbose "Falling back to use Java to download" - javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" - targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" - cat >"$javaSource" <<-END - public class Downloader extends java.net.Authenticator - { - protected java.net.PasswordAuthentication getPasswordAuthentication() - { - return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); - } - public static void main( String[] args ) throws Exception - { - setDefault( new Downloader() ); - java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); - } - } - END - # For Cygwin/MinGW, switch paths to Windows format before running javac and java - verbose " - Compiling Downloader.java ..." - "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" - verbose " - Running Downloader.java ..." - "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" -fi - -# If specified, validate the SHA-256 sum of the Maven distribution zip file -if [ -n "${distributionSha256Sum-}" ]; then - distributionSha256Result=false - if [ "$MVN_CMD" = mvnd.sh ]; then - echo "Checksum validation is not supported for maven-mvnd." >&2 - echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 - exit 1 - elif command -v sha256sum >/dev/null; then - if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then - distributionSha256Result=true - fi - elif command -v shasum >/dev/null; then - if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then - distributionSha256Result=true - fi - else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 - echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 - exit 1 - fi - if [ $distributionSha256Result = false ]; then - echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 - echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 - exit 1 - fi -fi - -# unzip and move -if command -v unzip >/dev/null; then - unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" -else - tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" -fi -printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" -mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" - -clean || : -exec_maven "$@" diff --git a/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd b/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd deleted file mode 100644 index 249bdf38..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/mvnw.cmd +++ /dev/null @@ -1,149 +0,0 @@ -<# : batch portion -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.3.2 -@REM -@REM Optional ENV vars -@REM MVNW_REPOURL - repo url base for downloading maven distribution -@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven -@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output -@REM ---------------------------------------------------------------------------- - -@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) -@SET __MVNW_CMD__= -@SET __MVNW_ERROR__= -@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% -@SET PSModulePath= -@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( - IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) -) -@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% -@SET __MVNW_PSMODULEP_SAVE= -@SET __MVNW_ARG0_NAME__= -@SET MVNW_USERNAME= -@SET MVNW_PASSWORD= -@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) -@echo Cannot start maven from wrapper >&2 && exit /b 1 -@GOTO :EOF -: end batch / begin powershell #> - -$ErrorActionPreference = "Stop" -if ($env:MVNW_VERBOSE -eq "true") { - $VerbosePreference = "Continue" -} - -# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties -$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl -if (!$distributionUrl) { - Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" -} - -switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { - "maven-mvnd-*" { - $USE_MVND = $true - $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" - $MVN_CMD = "mvnd.cmd" - break - } - default { - $USE_MVND = $false - $MVN_CMD = $script -replace '^mvnw','mvn' - break - } -} - -# apply MVNW_REPOURL and calculate MAVEN_HOME -# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ -if ($env:MVNW_REPOURL) { - $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } - $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" -} -$distributionUrlName = $distributionUrl -replace '^.*/','' -$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' -$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" -if ($env:MAVEN_USER_HOME) { - $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" -} -$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' -$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" - -if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { - Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" - Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" - exit $? -} - -if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { - Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" -} - -# prepare tmp dir -$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile -$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" -$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null -trap { - if ($TMP_DOWNLOAD_DIR.Exists) { - try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } - catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } - } -} - -New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null - -# Download and Install Apache Maven -Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." -Write-Verbose "Downloading from: $distributionUrl" -Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" - -$webclient = New-Object System.Net.WebClient -if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { - $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) -} -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null - -# If specified, validate the SHA-256 sum of the Maven distribution zip file -$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum -if ($distributionSha256Sum) { - if ($USE_MVND) { - Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." - } - Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash - if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { - Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." - } -} - -# unzip and move -Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null -Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null -try { - Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null -} catch { - if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { - Write-Error "fail to move MAVEN_HOME" - } -} finally { - try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } - catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } -} - -Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java b/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java deleted file mode 100644 index ba95a374..00000000 --- a/ruoyi-extend/ruoyi-mcp-server/src/test/java/org/ruoyi/mcpserve/RuoyiMcpServeApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.ruoyi.mcpserve; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class RuoyiMcpServeApplicationTests { - - @Test - void contextLoads() { - } - -}